The aero's PCMCIA-floppy drive is not automatically found by linux. You have to take several steps to use it.
Also there are limits in use: So the PCMCIA-floppy won't work if the pcmcia-driver is loaded. Hot swapping is not possible.
David Hinds, who wrote the pcmcia-cs-package (which is quite the standard package for pcmcia-drivers under linux and included in kernel 2.4) wrote in his PCMCIA-HowTo:
----------------------snip--------------------------
The PCMCIA floppy interface used in the Compaq Aero
and a few other laptops is not yet supported by this
package. The snag in supporting the Aero floppy is
that the Aero seems to use a customized PCMCIA
controller to support DMA to the floppy. Without
knowing exactly how this is done, there isn't any
way to implement support under Linux.
If the floppy adapter card is present when an Aero
is booted, the Aero BIOS will configure the card, and
Linux will identify it as a normal floppy drive. When
the Linux PCMCIA drivers are loaded, they will notice
that the card is already configured and attached to a
Linux driver, and this socket will be left alone. So,
the drive can be used if it is present at boot time,
but the card is not hot swappable.
----------------------snap----------------------------
Regarding this there are additional two steps to make the aeros-floppy drive work, if inserted at boot.
Step 1: Making the PCMCIA-floppy visible to linux
The Aero Linux-FAQ says:
"Remove /dev/fd0, and replace with a symlink to fd0H1440.
This defeats autodetection of formats, which failed."
That means: The format of the aeros pcmcia-floppy-drive is not automatically detected by linux. Normally linux uses the device "fd0" for the floppy, this is wrong. It has to be the device "fd0H1440". Because of this misunderstanding you will get an error code everytime you try to connect to the floppy.
As you should know (if you read the "From DOS/WINDOWS to Linux HOWTO") physical machines like a floppy or a harddisk partition are treated by linux as special files in the directory "/dev" (devices). So you have to tell linux not to open (and to mount) the "file" fd0 but the file fd0H1440 if it wants to reach the floppy. Because the OS and most software expect the floppy to be "fd0" we use another nice trick of linux which is called "symlink".
A symlink is the short name for symbolic link - the symlink works just as if it would be the directory or file it points to. It is comparable but much better than the links in Windows 9x: It doesn't need a graphical interface to work and it doesn't need all the information of a pif-file. I am really beginning to miss this feature on my DOS/Windows PC.
So what we have to do is to delete the file "fd0" which can be found in the directory "/dev". Then we create a symlink which is called fd0 but behind this name is only pointer to the correct file fd0H1440. Every time the system now calls up fd0 it calls fd0H1440.
To do that:
Delete fd0 with the command:
rm -f /dev/fd0
Make the symlink with the command:
ln -s /dev/fd0H1440 /dev/fd0
I didn't like to work much with cryptical commands so I used the midnight commander.
Start it with the command "mc"
doubleclick the directory "/dev"
click the file "fd0"
Hit F8 to delete it or choose delete from the menu "File"
Click on the file "fd0H1440"
Choose "symlink" from the menu "File".
In the field at the top give in: "/dev/fd0H1440".
In the field at the bottom give in "/dev/fd0"
Hit enter
Step 2: Mount the floppy drive
Now make sure that the floppy can be "mounted" (That means that you can access its contents). Therefore you have to look into the file "/etc/fstab". If you use midnight commander go to "/etc", select the file "fstab" and hit F4 for editing it.

Make sure there is a line like
----------
/dev/fd0 /mnt/floppy ext2 noauto,users 0 0
----------
The first information is the device that is called. The second is the mount-point - this is the place where the contents of the device (i.e. the content of the floppy" will be displayed. The third information is the filesystem, the next are options.
You see that the floppy is mounted with the linux-native ext2 filesystem. In my case many floppys are coming from the windows pc - so I need the dos/windows-filesystem to be detected too.
So I inserted also another, additional line:
----------
/dev/fd0 /mnt/msfloppy vfat noauto,users 0 0
----------
to get access to dos-floppys.
If you have floppy with other file-systems (f.i apple macintosh) you have to change vfat into the another text. The supported fs types depend on the kernel konfiguration. If you use clean dos you can also use "msdos" instead of "vfat". "auto" seems to be not possible with floppys.
Now you have to make the "mount-points" (the directory where the floppy will be found in the linux root tree).
Make sure that there are two subdirectories "floppy" and "msfloppy" in the directory /mnt.
cd /mnt (change to that directory)
ls (list all files in that directory)
If the directories are missing create them with
mkdir /mnt/floppy
mkdir /mnt/msfloppy
You now get access to the floppy by mounting them with
mount /mnt/msfloppy
or
mount /mnt/floppy
If you want to exchange the floppy you have to unmount the directory first.
umount /mnt/msfloppy
(You can not command this while you still are in the directory /mnt/msfloppy).
Then insert the next floppy and mount it again.
Normally you have to plug in the pcmcia-floppy right from the start if you want it to work. In the aeros setup you may choose "Power ON in PCMCIA slot when suspended" - may be the floppy-drive then will work if suspended or temporarily removed. I can't confirm that. In my case it wasn't possible to mount the pcmcia floppy-drive again after it was removed.
I didn't have success with mounting the pcmcia-floppy when the pcmcia- and network drivers were loaded. So be sure to restart the aero without any pcmcia-, network- or network-related daemons to get access to the floppy.
Additional and more common information about using the floppy drive under linux can be found at:
http://www.linuxheadquarters.com/howto/basic/floppy.shtml
|