<emphasis>usbdevfs</emphasis> although it wasn't solving what
<emphasis>devfs</emphasis> was.
Every USB device will appear in usbfs, regardless of whether or
- not it has a kernel driver; but only devices with kernel drivers
- show up in devfs.
+ not it has a kernel driver.
</para>
<sect1>
Conversely, when the device is removed from the USB bus, the disconnect
function is called with the device pointer. The driver needs to clean any
private data that has been allocated at this time and to shut down any
- pending urbs that are in the USB system. The driver also unregisters
- itself from the devfs subsystem with the call:
+ pending urbs that are in the USB system.
</para>
- <programlisting>
-/* remove our devfs node */
-devfs_unregister(skel->devfs);
- </programlisting>
<para>
Now that the device is plugged into the system and the driver is bound to
the device, any of the functions in the file_operations structure that
> 7 = /dev/cusa2 Callout device for ttySA2
>
-If you're not using devfs, you must create those inodes in /dev
-on the root filesystem used by your SA1100-based device:
+You must create those inodes in /dev on the root filesystem used
+by your SA1100-based device:
mknod ttySA0 c 204 5
mknod ttySA1 c 204 6
Linux tty naming conventions: ttyF0 - ttyF255 for normal devices, and
cuf0 - cuf255 for callout devices.
-If you are using devfs, existing devices are automatically created within
-the devfs name space. Normal devices will be tts/F0 - tts/F255 and callout
-devices will be cua/F0 - cua/F255. With devfs installed, ip2mkdev will
-create symbolic links in /dev from the old conventional names to the newer
-devfs names as follows:
-
- /dev/ip2ipl[n] -> /dev/ip2/ipl[n] n = 0 - 3
- /dev/ip2stat[n] -> /dev/ip2/stat[n] n = 0 - 3
- /dev/ttyF[n] -> /dev/tts/F[n] n = 0 - 255
- /dev/cuf[n] -> /dev/cua/F[n] n = 0 - 255
-
-Only devices for existing ports and boards will be created.
-
-IMPORTANT NOTE: The naming convention used for devfs by this driver
-was changed from 1.2.12 to 1.2.13. The old naming convention was to
-use ttf/%d for the tty device and cuf/%d for the cua device. That
-has been changed to conform to an agreed-upon standard of placing
-all the tty devices under tts. The device names are now tts/F%d for
-the tty device and cua/F%d for the cua devices. If you were using
-the older devfs names, you must update for the newer convention.
-
-You do not need to run ip2mkdev if you are using devfs and only want to
-use the devfs native device names.
-
4. USING THE DRIVERS
use the ip2mkdev script, you must have procfs enabled and the proc file
system mounted on /proc.
-You do not need to run ip2mkdev if you are using devfs and only want to
-use the devfs native device names.
-
-
-6. DEVFS
-
-DEVFS is the DEVice File System available as an add on package for the
-2.2.x kernels and available as a configuration option in 2.3.46 and higher.
-Devfs allows for the automatic creation and management of device names
-under control of the device drivers themselves. The Devfs namespace is
-hierarchical and reduces the clutter present in the normal flat /dev
-namespace. Devfs names and conventional device names may be intermixed.
-A userspace daemon, devfsd, exists to allow for automatic creation and
-management of symbolic links from the devfs name space to the conventional
-names. More details on devfs can be found on the DEVFS home site at
-<http://www.atnf.csiro.au/~rgooch/linux/> or in the file kernel
-documentation files, .../linux/Documentation/filesystems/devfs/README.
-
-If you are using devfs, existing devices are automatically created within
-the devfs name space. Normal devices will be tts/F0 - tts/F255 and callout
-devices will be cua/F0 - cua/F255. With devfs installed, ip2mkdev will
-create symbolic links in /dev from the old conventional names to the newer
-devfs names as follows:
-
- /dev/ip2ipl[n] -> /dev/ip2/ipl[n] n = 0 - 3
- /dev/ip2stat[n] -> /dev/ip2/stat[n] n = 0 - 3
- /dev/ttyF[n] -> /dev/tts/F[n] n = 0 - 255
- /dev/cuf[n] -> /dev/cua/F[n] n = 0 - 255
-
-Only devices for existing ports and boards will be created.
-
-IMPORTANT NOTE: The naming convention used for devfs by this driver
-was changed from 1.2.12 to 1.2.13. The old naming convention was to
-use ttf/%d for the tty device and cuf/%d for the cua device. That
-has been changed to conform to an agreed-upon standard of placing
-all the tty devices under tts. The device names are now tts/F%d for
-the tty device and cua/F%d for the cua devices. If you were using
-the older devfs names, you must update for the newer convention.
-
-You do not need to run ip2mkdev if you are using devfs and only want to
-use the devfs native device names.
-
-7. NOTES
+6. NOTES
This is a release version of the driver, but it is impossible to test it
in all configurations of Linux. If there is any anomalous behaviour that
does not match the standard serial port's behaviour please let us know.
-8. ip2mkdev shell script
+7. ip2mkdev shell script
Previously, this script was simply attached here. It is now attached as a
shar archive to make it easier to extract the script from the documentation.
- info on the cram filesystem for small storage (ROMs etc).
dentry-locking.txt
- info on the RCU-based dcache locking model.
-devfs/
- - directory containing devfs documentation.
directory-locking
- info about the locking scheme used for directory operations.
dlmfs.txt
tmpfs /dev/shm tmpfs defaults 0 0
Remember to create the directory that you intend to mount tmpfs on
- if necessary (/dev/shm is automagically created if you use devfs).
+ if necessary.
This mount is _not_ needed for SYSV shared memory. The internal
mount is used for that. (In the 2.3 kernel versions it was
crw-r--r-- 1 root root 13, 63 Mar 28 22:45 mice
- This device has to be created, unless you use devfs, in which case it's
-created automatically. The commands to do create it by hand are:
+ This device has to be created.
+ The commands to create it by hand are:
cd /dev
mkdir input
2.2 Device nodes
~~~~~~~~~~~~~~~~
-For applications to be able to use the joysticks, in you don't use devfs,
+For applications to be able to use the joysticks,
you'll have to manually create these nodes in /dev:
cd /dev
Description: Very nice 92 pages GPL book on the topic of modules
programming. Lots of examples.
- * Title: "Device File System (devfs) Overview"
- Author: Richard Gooch.
- URL: http://www.atnf.csiro.au/people/rgooch/linux/docs/devfs.html
- Keywords: filesystem, /dev, devfs, dynamic devices, major/minor
- allocation, device management.
- Description: Document describing Richard Gooch's controversial
- devfs, which allows for dynamic devices, only shows present
- devices in /dev, gets rid of major/minor numbers allocation
- problems, and allows for hundreds of identical devices (which some
- USB systems might demand soon).
-
* Title: "I/O Event Handling Under Linux"
Author: Richard Gooch.
URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
config3270.sh. Inspect the output script it produces,
/tmp/mkdev3270, and then run that script. This will create the
necessary character special device files and make the necessary
- changes to /etc/inittab. If you have selected DEVFS, the driver
- itself creates the device files, and /tmp/mkdev3270 only changes
- /etc/inittab.
+ changes to /etc/inittab.
Then notify /sbin/init that /etc/inittab has changed, by issuing
the telinit command with the q operand:
Now, your osst driver is inside the kernel or available as a module,
depending on your choice during kernel config. You may still need to create
-the device nodes by calling the Makedevs.sh script (see below) manually,
-unless you use a devfs kernel, where this won't be needed.
+the device nodes by calling the Makedevs.sh script (see below) manually.
To load your module, you may use the command
modprobe osst
- Default: 1
- For auto-loading more than one card, specify this
option together with snd-card-X aliases.
- device_mode
- - permission mask for dynamic sound device filesystem
- - This is available only when DEVFS is enabled
- - Default: 0666
- - E.g.: device_mode=0660
Module snd-pcm-oss
options of snd-pcm-oss module.
-DEVFS support
-=============
-
-The ALSA driver fully supports the devfs extension.
-You should add lines below to your devfsd.conf file:
-
-LOOKUP snd MODLOAD ACTION snd
-REGISTER ^sound/.* PERMISSIONS root.audio 660
-REGISTER ^snd/.* PERMISSIONS root.audio 660
-
-Warning: These lines assume that you have the audio group in your system.
- Otherwise replace audio word with another group name (root for
- example).
-
-
Proc interfaces (/proc/asound)
==============================
13. What to do when UML doesn't work
13.1 Strange compilation errors when you build from source
- 13.2 UML hangs on boot after mounting devfs
+ 13.2 (obsolete)
13.3 A variety of panics and hangs with /tmp on a reiserfs filesystem
13.4 The compile fails with errors about conflicting types for 'open', 'dup', and 'waitpid'
13.5 UML doesn't work when /tmp is an NFS filesystem
bug fixes and enhancements that have gone into subsequent releases.
- If you build your own kernel, and want to boot it from one of the
- filesystems distributed from this site, then, in nearly all cases,
- devfs must be compiled into the kernel and mounted at boot time. The
- exception is the SuSE filesystem. For this, devfs must either not be
- in the kernel at all, or "devfs=nomount" must be on the kernel command
- line. Any disagreement between the kernel and the filesystem being
- booted about whether devfs is being used will result in the boot
- getting no further than single-user mode.
-
-
- If you don't want to use devfs, you can remove the need for it from a
- filesystem by copying /dev from someplace, making a bunch of /dev/ubd
- devices:
-
-
- UML# for i in 0 1 2 3 4 5 6 7; do mknod ubd$i b 98 $i; done
-
-
-
-
- and changing /etc/fstab and /etc/inittab to refer to the non-devfs
- devices.
-
-
-
2\b2.\b.2\b2.\b. C\bCo\bom\bmp\bpi\bil\bli\bin\bng\bg a\ban\bnd\bd i\bin\bns\bst\bta\bal\bll\bli\bin\bng\bg k\bke\ber\brn\bne\bel\bl m\bmo\bod\bdu\bul\ble\bes\bs
UML modules are built in the same way as the native kernel (with the
+\bo None - device=none
- This causes the device to disappear. If you are using devfs, the
- device will not appear in /dev. If not, then attempts to open it
- will return -ENODEV.
+ This causes the device to disappear.
- 1\b13\b3.\b.2\b2.\b. U\bUM\bML\bL h\bha\ban\bng\bgs\bs o\bon\bn b\bbo\boo\bot\bt a\baf\bft\bte\ber\br m\bmo\bou\bun\bnt\bti\bin\bng\bg d\bde\bev\bvf\bfs\bs
-
- The boot looks like this:
-
-
- VFS: Mounted root (ext2 filesystem) readonly.
- Mounted devfs on /dev
-
-
-
-
- You're probably running a recent distribution on an old machine. I
- saw this with the RH7.1 filesystem running on a Pentium. The shared
- library loader, ld.so, was executing an instruction (cmove) which the
- Pentium didn't support. That instruction was apparently added later.
- If you run UML under the debugger, you'll see the hang caused by one
- instruction causing an infinite SIGILL stream.
-
-
- The fix is to boot UML on an older filesystem.
-
-
-
1\b13\b3.\b.3\b3.\b. A\bA v\bva\bar\bri\bie\bet\bty\by o\bof\bf p\bpa\ban\bni\bic\bcs\bs a\ban\bnd\bd h\bha\ban\bng\bgs\bs w\bwi\bit\bth\bh /\b/t\btm\bmp\bp o\bon\bn a\ba r\bre\bei\bis\bse\ber\brf\bfs\bs f\bfi\bil\ble\bes\bsy\bys\bs-\b-
t\bte\bem\bm
Unfortunately many modems and most ISDN TAs use proprietary interfaces and
thus won't work with this drivers. Check for ACM compliance before buying.
- The driver (with devfs) creates these devices in /dev/usb/acm:
-
- crw-r--r-- 1 root root 166, 0 Apr 1 10:49 0
- crw-r--r-- 1 root root 166, 1 Apr 1 10:49 1
- crw-r--r-- 1 root root 166, 2 Apr 1 10:49 2
-
- And so on, up to 31, with the limit being possible to change in acm.c to up
-to 256, so you can use up to 256 USB modems with one computer (you'll need
-three USB cards for that, though).
-
- If you don't use devfs, then you can create device nodes with the same
-minor/major numbers anywhere you want, but either the above location or
-/dev/usb/ttyACM0 is preferred.
-
To use the modems you need these modules loaded:
usbcore.ko
Currently the driver can handle up to 256 different serial interfaces at
one time.
- If you are not using devfs:
The major number that the driver uses is 188 so to use the driver,
create the following nodes:
mknod /dev/ttyUSB0 c 188 0
mknod /dev/ttyUSB254 c 188 254
mknod /dev/ttyUSB255 c 188 255
- If you are using devfs:
- The devices supported by this driver will show up as
- /dev/usb/tts/{0,1,...}
-
When the device is connected and recognized by the driver, the driver
will print to the system log, which node(s) the device has been bound
to.
module will be called umem.
The umem driver has not yet been allocated a MAJOR number, so
- one is chosen dynamically. Use "devfs" or look in /proc/devices
- for the device number
+ one is chosen dynamically.
config BLK_DEV_UBD
bool "Virtual block device"
Accessing the driver
--------------------
-You must also create a node for the driver. Without devfs:
+You must also create a node for the driver:
mkdir -p /dev/modems
mknod --mode=660 /dev/modems/mwave c 10 219
-With devfs:
- mkdir -p /dev/modems
- ln -s ../misc/mwave /dev/modems/mwave
---help---
Choose Y here if you want to see RDS/RBDS information like
RadioText, Programme Service name, Clock Time and date, Programme
- TYpe and Traffic Announcement/Programme identification. You also
- need to say Y to "miroSOUND PCM20 radio" and devfs!
+ Type and Traffic Announcement/Programme identification.
It's not possible to read the raw RDS packets from the device, so
the driver cant provide an V4L interface for this. But the
- If a device node is already occupied, registration will fail and
the webcam is not available.
- You can have up to 64 video devices; be sure to make enough device
- nodes in /dev if you want to spread the numbers (this does not apply
- to devfs). After /dev/video9 comes /dev/video10 (not /dev/videoA).
+ nodes in /dev if you want to spread the numbers.
+ After /dev/video9 comes /dev/video10 (not /dev/videoA).
- If a camera does not match any dev_hint, it will simply get assigned
the first available device node, just as it used to be.
* timer interrupts. We use a timer to periodically
* reset 'stopped' watchdogs on affected platforms.
*
- * TODO: DevFS support (/dev/watchdogs/0 ... /dev/watchdogs/2)
- *
* Copyright (c) 2000 Eric Brower (ebrower@usa.net)
*/