[Previous] [Contents] [Index] [Next]


Driver for ATA/IDE disk interface and ATAPI CD-ROM interface (QNX Neutrino)

Note: You must be root to start this driver.


devb-eide [blk option[,option]...]
          [cam option[,option]...]
          [cdrom option[,option]...]
          [disk option[,option]...]
          [eide option[,option]...] &


Note: Use commas (,) to separate the options. You can put the blk, cam, cdrom, disk, and eide groups of options in any order.

blk options

The blk options control io-blk.so. If specified, they must follow the blk keyword.

cam options

Be quiet: don't display any information on startup.
Be verbose.

cdrom options

The cdrom options control the driver's interface to cam-cdrom.so. If specified, they must follow the cdrom keyword.

disk options

The disk options control the driver's interface to cam-disk.so. If specified, they must follow the disk keyword.

eide options

The eide options control the driver's interface to the EIDE controller. If you've installed multiple controllers, you can repeat these options for each controller. Remember, however, to specify the eide keyword before each controller's set of options.

Interface-specific options:

The channel number of the controller (0 or 1).
Set the layout between I/O registers. The default is 0.
The device ID of the controller.
The I/O port of the interface. By default, it's detected automatically.
The interrupt used by the controller.
Specify master device options. For device-specific options, see below.
Do not use BIOS transfer mode settings. The default is to use them.
Do not use busmastering. Specify this option if you want to disable DMA.
Don't allow concurrent access to both channels.
Don't scan legacy addresses (0x1f0, 0x170).
Don't scan for master devices.
Don't reset devices at initialization.
Don't scan for slave devices.
The PCI index of the controller in the machine, where index is a value between 0 and the number of adapters.
Set the priority of the processing thread. The default is 21.
Specify slave device options. For device-specific options, see below.
Set the spacing offset between I/O ports (IDE command registers). E.g. if the ports are located on 4-byte boundaries, set space to 4. The default is 1.
Set the I/O request timeout in seconds. The default is 10.
The vendor ID of the controller.

Device-specific options:

Set the device type to ATA.
Set the device type to ATAPI.
Use Cylinder-Head-Sector mode instead of Logical Block Addressing. LBA is used by default.
Specify drive geometry.
Enable LBA 48-bit addressing (off by default).
Set multi-word DMA mode. Values for mode can be 0-2 (or off to disable).
Set the number of blocks per interrupt for multiblk mode.
Report the device as nonremovable.
Set PIO mode. Values for mode can be 0-4 (or off to disable PIO).
Enable SMART monitoring.
Set ultra DMA mode. Values for mode can be 0-6 (or off to disable).
Enable the device write cache.
Set the I/O access width (8, 16, or 32 bits).


The devb-eide driver is for IDE (Integrated Drive Electronics), EIDE (Enhanced IDE) and ATA (AT Attachment) hard disk interface, as well as the ATAPI (ATA Packet Interface) CD-ROM interface. This driver autodetects all interfaces.

Note: If you're installing multiple operating systems on the drive, make sure they all use a compatible mode. For example, if your drive is >= 528M and DOS will also be installed on the drive, the driver should be configured to use LBA.

The devb-eide driver uses DMA by default. If you want to disable DMA, specify the nobmstr command-line option.

By default, the driver uses LBA (Logical Block Addressing) modes if the drive supports them. If you want the device programmed to CHS (Cylinder-Head-Sector) mode, specify the chs option.

The devb-eide driver closes its standard input, standard output, and standard error immediately after completing its initializations. Any error messages produced during the initialization phase are written to standard error.


Detect all IDE controllers, and list all connected devices:

devb-eide &

Detect an IDE controller at a specific I/O port address and IRQ number, and list all connected devices:

devb-eide eide ioport=0x1f0,irq=14

Detect a PCMCIA disk that is configured in contiguous I/O mapped addressing at a specific I/O port address and IRQ number:

devb-eide eide ioport=0x320:0x32c,irq=7,noslave

Note: For PCMCIA devices configured in contiguous I/O mapped addressing, you should always specify the control block address of the interface by adding an offset (usually 12) to the base address of the port. This is not required for legacy addressing (0x1f0 or 0x170), where the driver adds the standard control block offset (0x200) automatically.

Detect an IDE controller with a specific vendor and device identity, and list all connected devices:

devb-eide eide vid=0x8086,did=0x2411,pci=0,chnl=0

Detect an IDE controller with a specific vendor ID, device ID, and channel number, and disable ultra DMA on the master:

devb-eide eide vid=0x8086,did=0x2411,pci=0,chnl=1,master=udma=off

Pass cache and delwri options to io-blk.so, uid and gid options to fs-cd.so, and vollabel option to fs-dos.so:

devb-eide blk cache=2m,delwri=2s cd uid=234,gid=120 dos vollabel=ignore &

The cd and dos options apply to any filesystems of those types that are mounted (either by the automatic mounter or a later explicit mount).

You can also pass generic mount options (as described in io-blk.so) as follows:

devb-eide blk noatime dos hidden=show,noexec qnx4 ro &

This sets the ST_NOATIME mount bit for all filesystems, the ST_RDONLY bit for any QNX 4 filesystem, and the ST_NOEXEC bit for any DOS filesystem. The mount message also has these bits, which apply only to that mountpoint.


The devb-eide driver causes io-blk.so to adopt various block special devices under /dev. These devices are normally named hdn (or cdn for CD-ROMs), where n is the physical unit number of the device.

This driver could also require the following shared objects:

Binary Required
cam-cdrom.so For CD-ROM access
cam-disk.so For hard-disk access
libcam.so Always

Exit status:

The devb-eide driver terminates only if an error occurs during startup, or if it has successfully forked itself upon startup because it hadn't been initially started in the background.

The devb-eide driver wasn't started in the background and therefore forked itself. The original process terminated with a zero exit status, the forked process continued.
An error occurred during startup.


Unless overridden with the blk automount= option (see io-blk.so), devices are mounted as:

Device Mountpoint Filesystem type
/dev/hd0t77 /hd qnx4
/dev/cd0 /cd cd
/dev/hd0t6 /dos dos
/dev/hd0t11 /dos dos

While there's no limit to the size of a disk or partition, I/O (i.e. the lseek(), read(), and write() functions) is currently limited to 2 gigabytes per partition (or disk). This I/O limit has no effect on the partition size for mounted filesystems.

Known supported functions include:

chmod(), chown(), close(), closedir(), creat(), devctl(), dup(), dup2(), fcntl(), fpathconf(), fstat(), lseek(), mkdir(), mkfifo(), mknod(), open(), opendir(), pathconf(), read(), readdir(), readlink(), rewinddir(), rmdir(), stat(), symlink(), unlink() (not supported for directories), utime(), write()

Note that certain calls (such as pipe(), as well as read() and write() on FIFOs) may require the pipe manager.

See also:


"Block-oriented drivers (devb-*)," "Common access method (cam-*)," and "Filesystem drivers (fs-*)" in the Utilities Summary

Controlling How Neutrino Starts and Connecting Hardware in the Neutrino User's Guide

[Previous] [Contents] [Index] [Next]