/[gentoo]/xml/htdocs/doc/en/usb-guide.xml
Gentoo

Contents of /xml/htdocs/doc/en/usb-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download) (as text)
Tue May 3 17:37:35 2005 UTC (9 years, 7 months ago) by neysx
Branch: MAIN
Changes since 1.2: +178 -172 lines
File MIME type: application/xml
Improved coding style
Added missing $Header$
Used <ul> instead of <p>1)....</p>
Split long comments in <pre>

No actual content change

1 swift 1.1 <?xml version='1.0' encoding="UTF-8"?>
2 neysx 1.3 <!-- $Header$ -->
3 swift 1.1
4     <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
5    
6     <guide link="/doc/en/usb-guide.xml">
7     <title>Gentoo Linux USB Guide</title>
8    
9     <author title="Author">
10     <mail link="fox2mike@gmail.com">Shyam Mani</mail>
11     </author>
12    
13     <abstract>
14     This document helps a user setup USB on a Gentoo system and configure various
15     USB devices as well.
16     </abstract>
17    
18     <!-- The content of this document is licensed under the CC-BY-SA license -->
19     <!-- See http://creativecommons.org/licenses/by-sa/2.0 -->
20     <license/>
21    
22 neysx 1.3 <version>1.2</version>
23     <date>2005-05-03</date>
24 swift 1.1
25     <chapter>
26     <title>Introduction</title>
27     <section>
28     <title>What is USB?</title>
29     <body>
30    
31     <p>
32 neysx 1.3 USB stands for Universal Serial Bus and is basically an external interface
33     standard that enables communication between the computer and various other
34     peripherals. Some of the most commonly used USB devices today are keyboards,
35     mice, pen drives, digital cameras, external CD &amp; DVD writers, printers etc.
36 swift 1.1 </p>
37    
38     <p>
39 neysx 1.3 There are currently two versions of USB in use, i.e. USB 1.1 and USB 2.0.
40     Since USB has always been backward compatible with its previous versions,
41     USB 2.0 is backwards compatible with USB 1.1. The latest USB devices are
42     typically USB 2.0 compatible. USB 2.0 supports a maximum data transmission
43     speed of 480 Mbps or 60 MBps and this is the major difference between the two
44     standards. Another advantage with USB is that the devices are all
45     <e>hot-pluggable</e>, which means that you do not have to restart your system
46 swift 1.1 in order for you to be able to use these devices.
47     </p>
48    
49     </body>
50     </section>
51     <section>
52     <title>A Technical Perspective</title>
53     <body>
54    
55     <p>
56 neysx 1.3 Before we go onto the exact configuration options in the kernel, it would
57     be apt to look at USB in a little more detail. If you're in a hurry or want
58 swift 1.1 to skip this section, please go to <uri link="#kernel">Kernel Configuration</uri>.
59     </p>
60    
61     <p>
62 neysx 1.3 A USB system has a host controller, hubs, a <e>root hub</e> amongst others
63     and can support up to 127 USB devices including the hubs. The host controller
64     is nothing but the hardware interface between the USB device and the
65     operating system. There are a couple of HCI (Host Controller Interface)
66     in use today and they are the OHCI (Open HCI) by Compaq, UHCI (Universal HCI)
67     and EHCI (Enhanced HCI), both from Intel. The OHCI/UHCI are the two industry
68 swift 1.1 standard USB 1.1 interfaces whereas the EHCI is for USB 2.0.
69     </p>
70    
71     <p>
72 neysx 1.3 The hardware vendor provides an interface for the programmer that allows
73     the system to interact with the hardware and this is called the HCD or Host
74     Controller Device. It is through this HCD that the device interacts with the
75 swift 1.1 system software. The following diagram should make things easier to comprehend.
76     </p>
77    
78     <pre caption="General USB Architecture">
79 neysx 1.3 <comment>(Software consists of other components as well like the device driver, but
80     for the sake of simplicity, they are not shown)</comment>
81 swift 1.1
82 neysx 1.3 + ---- Hardware ---- + ---- Software ---- +
83 swift 1.1 | | |
84 neysx 1.3 | [USB Dev] -+-> {EHCI} -+---> ( EHCD ) |
85 swift 1.1 | | | | User
86     | `-> {UHCI} -+---> ( UHCD ) |
87     | | |
88     + ---- Hardware ---- + ---- Software ---- +
89 neysx 1.3 </pre>
90 swift 1.1
91     <p>
92 neysx 1.3 A USB device can either use a custom driver or use one already present in
93     the system and this is based on the concept of a device <e>class</e>. This
94     means that if a device belongs to a certain <e>class</e>, then other devices
95     belonging to the same <e>class</e> can make use of the same device driver.
96     Some of these <e>classes</e> are the USB HID (Human Interface Devices) class
97     which covers input devices like keyboards and mice, the USB Mass Storage
98     devices class which covers devices like pen drives, digital cameras, audio
99     players etc and the USB CDC (Communication Devices Class) which essentially
100 swift 1.1 covers USB modems and similar devices.
101     </p>
102    
103     </body>
104     </section>
105     <section id="#lspci">
106     <title>What's on your machine?</title>
107     <body>
108    
109     <p>
110     It is very simple to find out whether your machine has USB 2.0 support or not.
111     We make use of the <c>lspci</c> command for this purpose.
112     </p>
113    
114     <note>
115 neysx 1.3 The <c>lspci</c> tool is a part of the <c>sys-apps/pciutils</c> package. If
116     you do not have this installed, please <c>emerge pciutils</c>. Please note
117 swift 1.1 that you have to be root while running the <c>lspci</c> command.
118     </note>
119    
120     <pre caption="Various lspci outputs">
121     <comment>(In system that is USB 1.1 compliant, note the UHCI only)</comment>
122    
123     # <i>lspci -v | grep USB</i>
124     0000:00:04.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
125    
126     <comment>(A system that is USB 2.0 compliant, note the EHCI and UHCI)</comment>
127    
128     00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 01) (prog-if 00 [UHCI])
129     00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 01) (prog-if 00 [UHCI])
130     00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 01) (prog-if 00 [UHCI])
131     00:1d.7 USB Controller: Intel Corp. 82801DB USB EHCI Controller (rev 01) (prog-if 20 [EHCI])
132     </pre>
133    
134     <p>
135 neysx 1.3 So using the <c>lspci</c> command, we can find out if the system supports
136     USB 2.0. This is useful as we will be enabling the corresponding options in
137 swift 1.1 the kernel.
138     </p>
139    
140     </body>
141     </section>
142     </chapter>
143    
144     <chapter id="kernel">
145     <title>Kernel Configuration</title>
146     <section>
147     <title>Getting the kernel</title>
148     <body>
149    
150 yoswink 1.2 <note>
151 neysx 1.3 Since the 2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Unless
152     you are specifically using the 2.4 profile, <c>gentoo-sources</c> will be a
153     2.6 kernel on <e>most</e> architectures. Please check your kernel version and
154 yoswink 1.2 then proceed with the configuration accordingly.
155     </note>
156    
157 swift 1.1 <p>
158 neysx 1.3 First emerge the kernel sources of your choice. Here we'll use the
159     <c>gentoo-sources</c> For more information on the various kernel sources
160     available on Portage, please look up the <uri
161     link="/doc/en/gentoo-kernel.xml">Gentoo Linux Kernel Guide</uri>.
162 swift 1.1 </p>
163    
164     <pre caption="Getting the kernel sources">
165 neysx 1.3 # <i>emerge gentoo-sources</i>
166 swift 1.1 </pre>
167    
168     <p>
169     Now, lets get on with the task of configuring the kernel.
170     </p>
171    
172     <pre caption="Heading over to the source">
173 neysx 1.3 # <i>cd /usr/src/linux</i>
174     # <i>make menuconfig</i>
175 swift 1.1 </pre>
176    
177     <note>
178 neysx 1.3 The above example assumes that <path>/usr/src/linux</path> symlink points to
179 swift 1.1 the kernel sources you want to use. Please ensure the same before proceeding.
180     </note>
181    
182     </body>
183     </section>
184     <section id="2.6.xconfig">
185     <title>Config options for the 2.6.x kernel</title>
186     <body>
187    
188     <p>
189 neysx 1.3 Now we will look at some of the options we will have to enable in the 2.6
190     kernel to ensure proper USB support for our devices. If you are using a 2.4
191     kernel, please proceed with <uri link="#2.4.xconfig">Config options for the
192 swift 1.1 2.4.x kernel</uri>.
193     </p>
194    
195     <note>
196 neysx 1.3 Examples in this document will show configuration options for basic USB
197     support as well as those needed commonly, for example a USB mass storage
198     device (most cameras and USB pen drives). If you have a specific USB device
199     that needs to be configured, please look up your device's manual or search
200     online to see if that device has support built-in into the kernel or custom
201     drivers that you can use. Please note that for the sake of ease, all examples
202     have the options compiled into the kernel. If you would like to have a modular
203     kernel, ensure that you note down the various modules and adjust your config
204 swift 1.1 files accordingly.
205     </note>
206    
207     <pre caption="make menuconfig options for 2.6 kernels">
208     Device Drivers ---&gt;
209     SCSI device support ---&gt;
210    
211 neysx 1.3 <comment>(Although SCSI will be enabled automatically when selecting USB Mass Storage,
212     we need to enable disk support.)</comment>
213 swift 1.1 --- SCSI support type (disk, tape, CD-ROM)
214     &lt;*&gt; SCSI disk support
215    
216     <comment>(Then move back a level and go into USB support)</comment>
217     USB support ---&gt;
218    
219 neysx 1.3 <comment>(This is the root hub and is required for USB support.
220     If you'd like to compile this as a module, it will be called usbcore.)</comment>
221     &lt;*&gt; Support for Host-side USB
222 swift 1.1
223 neysx 1.3 <comment>(Enable this option to see your USB devices in /proc/bus/usb.
224     This is recommended.)</comment>
225 swift 1.1 [*] USB device filesystem
226    
227     <comment>(Select at least one of the HCDs. If you are unsure, picking all is fine.)</comment>
228 neysx 1.3 --- USB Host Controller Drivers
229 swift 1.1 &lt;*&gt; EHCI HCD (USB 2.0) support
230     &lt; &gt; OHCI HCD support
231     &lt;*&gt; UHCI HCD (most Intel and VIA) support
232    
233     <comment>(Moving a little further down, we come to CDC and mass storage.)</comment>
234     &lt; &gt; USB Modem (CDC ACM) support
235     &lt;*&gt; USB Printer support
236     &lt;*&gt; USB Mass Storage support
237     [*] USB Mass Storage Write-Protected Media Detection (EXPERIMENTAL)
238    
239 neysx 1.3 <comment>(Then the HID bits.
240     You have to select HID input support if you have a USB keyboard,
241     mouse, joystick or any other USB input device)</comment>
242 swift 1.1 --- USB Input Devices
243     &lt;*&gt; USB Human Interface Device (full HID) support
244     [*] HID input layer support
245    
246     <comment>(If you have a USB Network Card like the RTL8150, you'll need this)</comment>
247     USB Network Adapters --->
248     &lt;*&gt; USB RTL8150 based ethernet device support (EXPERIMENTAL)
249    
250     <comment>(If you have a serial to USB converter like the Prolific 2303, you'll need this)</comment>
251     USB Serial Converter support --->
252     &lt;*&gt; USB Serial Converter support
253 neysx 1.3 &lt;*&gt; USB Prolific 2303 Single Port Serial Driver (NEW)
254 swift 1.1 </pre>
255    
256     <p>
257 neysx 1.3 Now that your options are set, you can (re)compile the kernel and USB support
258     should be functional once you reboot into the new kernel. You can now proceed
259     to <uri link="#postkern">Seeing USB at work</uri> and see if everything is
260 swift 1.1 working as it should.
261     </p>
262 neysx 1.3
263 swift 1.1 </body>
264     </section>
265     <section id="2.4.xconfig">
266     <title>Config options for the 2.4.x kernel</title>
267     <body>
268    
269     <p>
270 neysx 1.3 We will look at the options the we will have to enable in the 2.4 kernel to
271     ensure proper USB support for our devices. If you are using a 2.6 kernel,
272     please look at <uri link="#2.6.xconfig">Config options for the 2.6.x
273 swift 1.1 kernel</uri>.
274     </p>
275    
276     <note>
277 neysx 1.3 Examples in this document will show configuration options for basic USB
278     support as well as those needed commonly, for example a USB mass storage
279     device (most cameras and USB pen drives). If you have a specific USB device
280     that needs to be configured, please look up your device's manual or search
281     online to see if that device has support built-in into the kernel or custom
282     drivers that you can use. Please note that for the sake of ease, all examples
283     have the options compiled into the kernel. If you would like to have a modular
284     kernel, ensure that you note down the various modules and adjust your config
285 swift 1.1 files accordingly.
286     </note>
287    
288     <pre caption="make menuconfig options for 2.4 kernels">
289 neysx 1.3 <comment>(This immediate config is only for those who have USB input devices.
290     Input core support is needed by USB HID later.)</comment>
291 swift 1.1 Input core support ---&gt;
292     &lt;*&gt; Input core support
293     &lt; &gt; Keyboard support
294     &lt; &gt; Mouse support
295     &lt; &gt; Event interface support
296    
297     USB support ---&gt;
298    
299 neysx 1.3 <comment>(This is the root hub and is required for USB support.
300     If you'd like to compile this as a module, it will be called usbcore.o)</comment>
301 swift 1.1 &lt;*&gt; Support for USB
302    
303 neysx 1.3 <comment>(Enable this option to see your USB devices in /proc/bus/usb.
304     This is recommended.)</comment>
305 swift 1.1 [*] Preliminary USB device filesystem
306    
307     <comment>(Select at least one of the HCDs. If you are unsure, picking all is fine.)</comment>
308 neysx 1.3 --- USB Host Controller Drivers
309 swift 1.1 &lt;*&gt; UHCI Alternate Driver (JE) support
310     &lt; &gt; OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support
311    
312     <comment>(This is the device section. Select only what you need.)</comment>
313 neysx 1.3 --- USB Device Class drivers
314 swift 1.1 &lt; &gt; USB Audio support
315     &lt;*&gt; USB Mass Storage support
316     &lt; &gt; USB Modem (CDC ACM) support
317     &lt;*&gt; USB Printer support
318    
319     <comment>(Followed by the HID section. This is needed if you have an USB based input device.)</comment>
320     --- USB Human Interface Devices (HID)
321     &lt;*&gt; USB Human Interface Device (full HID) support
322     [*] HID input layer support
323    
324     <comment>(If you have a serial to USB converter like the Prolific 2303, you'll need this)</comment>
325     USB Serial Converter support --->
326     &lt;*&gt; USB Serial Converter support
327     &lt;*&gt; USB Prolific 2303 Single Port Serial Driver (NEW)
328     </pre>
329    
330     <p>
331 neysx 1.3 Now that the options are set, you can (re)compile the kernel and USB support
332 swift 1.1 should be functional once you reboot into the new kernel.
333     </p>
334 neysx 1.3
335 swift 1.1 </body>
336     </section>
337     </chapter>
338    
339     <chapter id="postkern">
340     <title>Seeing USB at work</title>
341     <section>
342     <title>dmesg is your friend!</title>
343     <body>
344    
345     <p>
346 neysx 1.3 The time has finally come to play with those USB devices :) So let's get
347     started. In this chapter, we'll see how the system responds to various USB
348     devices. We'll start by plugging in a USB 512 MB Memory Stick/Pen Drive. You
349     could use some other similar mass storage device. We will primarily use
350     <c>dmesg</c> to see what is happening and how the system responds to the
351 swift 1.1 device.
352     </p>
353    
354     <note>
355 neysx 1.3 <c>dmesg</c> will generally give a lot of output up front before coming to the
356 swift 1.1 info we need, as it reads the kernel ring buffer that has all the boot up
357 neysx 1.3 messages as well. The output in the following examples have only the relevant
358     portion(s) and extra spaces in between to enable better readability. If needed
359     please use a <c>dmesg | more</c> or <c>dmesg | less</c> to see the output
360 yoswink 1.2 better in your system.
361 swift 1.1 </note>
362    
363     <pre caption="dmesg output for Memory Stick">
364     <comment>(Plug in Memory Stick into available USB port and then..)</comment>
365 yoswink 1.2 # <i>dmesg | less</i>
366 swift 1.1
367 neysx 1.3 <comment>(The device is picked up as a USB 1.1 and allocated an address.
368     Also says what HCD it is using.)</comment>
369 swift 1.1 usb 1-1: new full speed USB device using uhci_hcd and address 2
370    
371     <comment>(SCSI emulation automatically kicks in)</comment>
372     scsi0 : SCSI emulation for USB Mass Storage devices
373     usb-storage: device found at 2
374    
375     <comment>(Now the device information including model number is retrieved)</comment>
376     usb-storage: waiting for device to settle before scanning
377     Vendor: JetFlash Model: TS512MJF2A Rev: 1.00
378     Type: Direct-Access ANSI SCSI revision: 02
379     SCSI device sda: 1003600 512-byte hdwr sectors (514 MB)
380    
381     <comment>(The write-protect sense is EXPERIMENTAL code in the later kernels)</comment>
382     sda: Write Protect is off
383     sda: Mode Sense: 0b 00 00 08
384     sda: assuming drive cache: write through
385     SCSI device sda: 1003600 512-byte hdwr sectors (514 MB)
386     /dev/scsi/host0/bus0/target0/lun0: p1
387     Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
388     Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0
389     usb-storage: device scan complete
390     <comment>(At this point, the device is generally accessible by mounting /dev/sda1)</comment>
391    
392     <comment>(When the device is disconnected, the system acknowledges the same)</comment>
393     usb 1-1: USB disconnect, address 2
394     </pre>
395    
396     <p>
397 neysx 1.3 Once the device is connected and mounted, you can access it like a normal hard
398     disk. Usual operations like <c>cp</c>, <c>mv</c>, <c>rm</c> etc work fine. You
399 swift 1.1 could also create a filesystem on the USB stick/format it.
400     </p>
401    
402     <pre caption="Accessing the Memory Stick">
403     # <i>mount /dev/sda1 /mnt/usb</i>
404     # <i>df -h</i>
405     Filesystem Size Used Avail Use% Mounted on
406     /dev/hda8 9.4G 7.5G 1.9G 80% /
407     /dev/hda9 11G 8.1G 2.4G 78% /usr
408     none 189M 0 189M 0% /dev/shm
409     /dev/sda1 490M 34M 457M 7% /mnt/usb
410     </pre>
411    
412     <note>
413 neysx 1.3 Digital cameras can be accessed the same way as memory sticks. I have a Nikon
414     Coolpix 5200 and this is the way I access it. The camera is set to behave like
415     a USB mass storage device (as against PTP mode, which most cameras have these
416     days) and the procedure is exactly the same, because of which I have not
417     explained in detail about the same. Please note that this may NOT work in all
418 swift 1.1 cases and with all digital cameras that have USB support.
419     </note>
420    
421     <p>
422 neysx 1.3 How would a USB mouse show up in case you had one? It will show up as an HID
423 swift 1.1 device.
424     </p>
425    
426     <pre caption="USB Optical Mouse">
427     # <i>dmesg | grep USB</i>
428     drivers/usb/input/hid-core.c: v2.0:USB HID core driver
429     usb 1-1: new low speed USB device using address 2
430     input: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:07.2-1
431     </pre>
432    
433     <p>
434 neysx 1.3 Another nifty command you can use to see the status of your USB ports is
435     <c>lsusb</c>. This is part of <c>sys-apps/usbutils</c> and will be covered in
436 swift 1.1 the next chapter.
437     </p>
438    
439     </body>
440     </section>
441     </chapter>
442    
443     <chapter>
444     <title>Userspace USB</title>
445     <section>
446     <title>Nifty tools</title>
447     <body>
448    
449     <p>
450 neysx 1.3 So far we've seen how much support exists on the kernel/system side for USB on
451     Linux. Now we'll take a peek into what kind of support is provided by Gentoo
452 swift 1.1 for USB in the userspace.
453     </p>
454    
455     <p>
456 neysx 1.3 One of the most useful tools around is <c>lsusb</c>. This lists all the usb
457 swift 1.1 devices connected to the system. Installing it is a breeze.
458     </p>
459    
460     <pre caption="Installing usbutils">
461     # <i>emerge usbutils</i>
462     </pre>
463    
464     <p>
465 neysx 1.3 Once installed, you can just run <c>lsusb</c> to get simple info on the USB
466 swift 1.1 devices attached to the machine.
467     </p>
468    
469     <note>
470     You have to be root in most cases to run <c>lsusb</c>.
471     </note>
472    
473     <warn>
474 neysx 1.3 <c>lsusb</c> reads the information for the USB devices from
475     <path>/proc/bus/usb</path>. If you have not enabled that in your kernel,
476     chances are that <c>lsusb</c> may not work at all. Please ensure you have
477 swift 1.1 <path>/proc</path> filesystem support enabled in your kernel and that
478     <c>usbfs</c> is mounted at <path>/proc/bus/usb</path> (which should happen
479     automatically).
480     </warn>
481    
482     <pre caption="lsusb at work">
483     # <i>lsusb</i>
484     <comment>(This is the 512 MB Memory Stick from Transcend)</comment>
485     Bus 001 Device 003: ID 0c76:0005 JMTek, LLC. USBdisk
486     <comment>(This is the Optical Mouse)</comment>
487     Bus 001 Device 002: ID 046d:c00e Logitech, Inc. Optical Mouse
488     <comment>(This is the root hub)</comment>
489     Bus 001 Device 001: ID 0000:0000
490     </pre>
491    
492     <p>
493 neysx 1.3 If you are one of those types who love to see lots of information, you have
494     the option of running <c>lsusb -v</c>. Try that and see the amount of info it
495     gives out. Another good option is that <c>lsusb</c> dumps the current physical
496     USB hierarchy as a tree and thus makes it easier to understand the exact
497 swift 1.1 device map. The command is <c>lsusb -t</c>. For example,
498     </p>
499    
500     <pre caption="lsusb showing USB hierarchy">
501     # <i>lsusb -t</i>
502     Bus# 1
503     `-Dev# 1 Vendor 0x0000 Product 0x0000
504     |-Dev# 2 Vendor 0x046d Product 0xc00e
505     `-Dev# 3 Vendor 0x0c76 Product 0x0005
506     </pre>
507    
508     <p>
509 neysx 1.3 You can easily correlate the outputs of <c>lsusb</c> and <c>lsusb -t</c>,
510 swift 1.1 which helps debugging as well as understanding how USB works.
511     </p>
512    
513     </body>
514     </section>
515     <section>
516     <title>Hot or Cold plug??</title>
517     <body>
518    
519     <p>
520 neysx 1.3 Gentoo uses two packages, <c>sys-apps/hotplug</c> and <c>sys-apps/coldplug</c>
521     to do some magic with <e>hot-pluggable</e> devices. Just like any other magic
522     trick, there is a simple logic behind this one too. We shall now see what that
523     is, and in the process hopefully we will be able to understand these twins
524 swift 1.1 better.
525     </p>
526    
527     <p>
528 neysx 1.3 Firmware can be defined as the software on a piece of hardware that is loaded
529     and executed but can't be modified easily. Many devices have firmware in them
530     to ensure that they work properly and often firmware may contain code that is
531     critical to ensure that the hardware performs as expected. Firmware is present
532     in a wide variety of computer devices ranging from ROM chips to state of the
533     art USB and PCMCIA cards. When a device is plugged in, the firmware (which may
534     in some cases be the driver as well) is read and loaded onto memory after
535 swift 1.1 which the device can be used by the system.
536     </p>
537    
538     <p>
539 neysx 1.3 To cut the long story short, Gentoo uses <c>sys-apps/hotplug</c> to handle
540     the firmware side of things in <e>hot-pluggable</e> devices.
541     <c>sys-apps/hotplug</c> will use the required firmware to make that device
542     usable. The firmware should be put in the <path>/lib/firmware</path> directory
543 swift 1.1 and is picked up from there. Getting it is simple, the usual emerge will do.
544     </p>
545    
546     <pre caption="Installing hotplug">
547     # <i>emerge hotplug</i>
548     </pre>
549    
550     <p>
551 neysx 1.3 Now the obvious question would be, what is coldplug and why is it needed?
552     <c>sys-apps/coldplug</c> does what hotplug does, but it does it for
553     <e>hot-pluggable</e> devices that are already connected at boot time. A good
554     example of this would be a USB Network card. Earlier hotplug was the package
555     responsible for handling both but then it was split into hotplug and coldplug,
556     each with their distinct purposes. Emerge it if you have <e>hot-pluggable</e>
557     devices that you need activated on boot up.
558 swift 1.1 </p>
559    
560     <pre caption="Installing coldplug">
561     # <i>emerge coldplug</i>
562     <comment>(And you can add it to the boot runlevel)</comment>
563     # <i>rc-update add coldplug boot</i>
564     * coldplug added to runlevel boot
565     * rc-update complete.
566     </pre>
567    
568     <note>
569 neysx 1.3 The above initscript does what hotplug's initscript used to do (for already
570     attached hot-pluggable devices). hotplug does not have an initscript of its
571 swift 1.1 own as of now.
572     </note>
573    
574     </body>
575     </section>
576     </chapter>
577    
578     <chapter>
579     <title>And thanks to...</title>
580     <section>
581     <title>References</title>
582     <body>
583    
584     <p>
585 neysx 1.3 A good number of documents online helped me during writing this, and there are
586     some that are that are highly technical but truly interesting. I thought they
587 swift 1.1 all deserve some credit. So here we go!
588     </p>
589 neysx 1.3
590     <ul>
591     <li><uri link="http://www.usb.org">The Official USB Website</uri></li>
592     <li><uri link="http://www.usb.org/faq">The USB FAQ</uri></li>
593     <li>
594     <uri
595     link="http://h18000.www1.hp.com/productinfo/development/openhci.html">Compaq's
596     OHCI Standard</uri>
597     </li>
598     <li>
599     <uri link="http://developer.intel.com/technology/usb/uhci11d.htm">Intel's
600     UHCI Standard</uri>
601     </li>
602     <li>
603     <uri link="http://www.intel.com/technology/usb/ehcispec.htm">Intel's EHCI
604     Standard</uri>
605     </li>
606     </ul>
607 swift 1.1
608     </body>
609     </section>
610     </chapter>
611     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20