Jumat, 04 Juni 2004

Report on Compatible Devices in FreeBSD

Sometimes it helps to know what hardware is compatible with non-Windows operating systems like FreeBSD. I wanted to buy a CompactFlash card and reader to work with my Soekris net4801 platform. I used the list at the flashdist site to guide my product purchase. I bought a SanDisk ImageMate 8 in 1 Reader/Writer, model SDDR-88-A15, pictured at above left. I also bought a 256 MB Type 1 CompactFlash card (product ID SDCFB-256-A10). Although the reader supports USB 2.0, my laptop natively only supports USB 1.1. I do own an Adaptec DuoConnect adapter, but only the FireWire port works. I have not had any luck with FreeBSD 5.2.1 REL and the ehci. driver.

Here is what dmesg reports when I attach the CF reader (with CF card inserted) to the USB port on my laptop:

umass0: SanDisk ImageMate 8 in 1, rev 2.00/91.39, addr 2

GEOM: create disk da0 dp=0xc3a81450

da0 at umass-sim0 bus 0 target 0 lun 0

da0: Removable Direct Access SCSI-0 device

da0: 1.000MB/s transfers

da0: 245MB (501760 512 byte sectors: 64H 32S/T 245C)

GEOM: create disk da1 dp=0xc3ab2850

da1 at umass-sim0 bus 0 target 0 lun 1

da1: Removable Direct Access SCSI-0 device

da1: 1.000MB/s transfers

da1: Attempt to query device size failed: NOT READY, Medium not present

...truncated...


You see the CF card is present on device da0, but devices da1 and up aren't ready as there's nothing inserted in those slots.


Using the device for storage is simple:


orr:/home/richard$ sudo mount -t msdos /dev/da0s1 /floppy

orr:/home/richard$ ls /floppy/

orr:/home/richard$ df -h

Filesystem Size Used Avail Capacity Mounted on

/dev/ad0s2a 5.8G 3.3G 2.0G 62% /

devfs 1.0K 1.0K 0B 100% /dev

/dev/ad0s2d 1.9G 1.2G 589M 68% /home

/dev/ad0s2f 739M 17M 662M 3% /tmp

/dev/ad0s2e 4.4G 135M 3.9G 3% /var

linprocfs 4.0K 4.0K 0B 100% /usr/compat/linux/proc

neely:/usr/ports 12G 8.1G 2.5G 76% /usr/ports

/dev/da0s1 244M 8.0K 244M 0% /floppy


I tried the CF reader in a machine with ehci support compiled in to the kernel, since it has USB 2.0 ports built-in. I got errors saying "usb3: unrecoverable error, controller".
As I mentioned the Adaptec DuoConnect earlier, here is how it appears in dmesg when attached:


cardbus1: Resource not specified in CIS: id=10, size=800

cardbus1: Resource not specified in CIS: id=14, size=4000

fwohci0: mem 0x88000000-0x88003fff,0x88004000-0x88 0047ff irq 11 at device 0.0 on cardbus1

fwohci0: OHCI version 1.10 (ROM=1)

fwohci0: No. of Isochronous channel is 4.

fwohci0: EUI64 08:00:28:56:02:00:49:8a

fwohci0: Phy 1394a available S400, 3 ports.

fwohci0: Link S400, max_rec 2048 bytes.

firewire0: on fwohci0

fwe0: on firewire0

if_fwe0: Fake Ethernet address: 0a:00:28:00:49:8a

sbp0: on firewire0

fwohci0: Initiate bus reset

fwohci0: BUS reset

fwohci0: node_id=0xc000ffc0, gen=1, CYCLEMASTER mode

firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)

firewire0: bus manager 0 (me)

cardbus1: Resource not specified in CIS: id=10, size=1000

ohci0: mem 0x88000000-0x88000fff irq 11 at device 0.4 on cardbus1

usb1: OHCI version 0.0

usb1: unsupported OHCI revision

ohci0: USB init failed

device_probe_and_attach: ohci0 attach returned 5

cardbus1: Resource not specified in CIS: id=10, size=1000

ohci0: mem 0x88000000-0x88000fff irq 11 at device 0.5 on cardbus1

usb1: OHCI version 15.15, legacy support

usb1: unsupported OHCI revision

ohci0: USB init failed

device_probe_and_attach: ohci0 attach returned 5

cardbus1: Resource not specified in CIS: id=10, size=100

cardbus1: at device 0.6 (no driver attached)

Although USB 2.0 doesn't work with this adapter, FireWire appears to be supported. I'm not the only person who has experience with this NEC chipset and USB 2.0 (see this thread.) I bought a Plextor 708UF external DVD burner, which offers USB 2.0 and FireWire support. Here is how it appears when connected to the Adaptec DuoConnect:


fwohci0: BUS reset

fwohci0: node_id=0xc000ffc1, gen=3, CYCLEMASTER mode

firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 (me)

firewire0: bus manager 1 (me)

fwohci0: BUS reset

fwohci0: node_id=0xc000ffc1, gen=4, CYCLEMASTER mode

firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 (me)

firewire0: bus manager 1 (me)

firewire0: New S400 device ID:00d0a910023005cd

GEOM: create disk cd0 dp=0xc4220e00

cd0 at sbp0 bus 0 target 0 lun 0

cd0: Removable CD-ROM SCSI-0 device

cd0: 50.000MB/s transfers

cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed


Notice the "1.06" in the output. That is the drive's firmware version. If I need to update it, I can use PXUpdate, as explained here.

Since this DuoConnect supports FireWire so well, maybe I should have bought a SanDisk Ultra Firewire ImageMate Reader (CDW sells them for $42). If I only wanted to use the CF card with my laptop, I could have also purchased a SanDisk PC Card Adapter .

I'm making this blog entry using a USB 200M 10/100 NIC. While I can't boot with it attached, once I insert it into my USB port it appears like this to dmesg:



axe0: Linksys product 0x2226, rev 2.00/0.01, addr 2

axe0: Ethernet address: 00:10:60:25:a4:1a

miibus1: on axe0

rlphy0: on miibus1

rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto


It's easy to configure it:


orr:/home/richard$ sudo ifconfig axe0 inet 192.168.2.5 netmask 255.255.255.0 up

orr:/home/richard$ sudo route add default 192.168.2.1

add net default: gateway 192.168.2.1

orr:/home/richard$ ping www.google.com

PING www.google.akadns.net (216.239.39.104): 56 data bytes

64 bytes from 216.239.39.104: icmp_seq=0 ttl=240 time=23.568 ms

^C


Since USB 1.1 "Full speed" supports 12 Mbps, I can't make full utilization of a 100 Mbps link. Since this NIC connects to a wireless 802.11b bridge, which eventually connects to a cable modem, the NIC isn't the bottleneck. USB 2.0 "High speed" supports 480 Mbps, and IEEE 1394a ("FireWire 400") supports 400 Mbps.

0 komentar:

Posting Komentar