IDE to CF issue

David Kelly dkelly at HiWAAY.net
Sat Dec 20 14:13:58 PST 2003


On Dec 19, 2003, at 5:00 PM, Cybertime Hostmaster wrote:

> I have been trying to get FreeBSD onto a CF, and had an assortment of
> issues.

[...]

> Anyone have an idea where to start?

Others have been slow to respond so I'll kick in altho its been 9 
months since I've done what you are attempting, and then it was 4.8 or 
4.7, not 5.1.

I wrote my CFs using a USB-to-CF adapter. That might make a difference. 
disklabel(8) has morphed into bsdlabel(8) with 5.x. The CF was then 
used as the primary storage device for running FreeBSD on a Soekris 
NET4501 SBC.

There are some CF memory cards which do not support multi block 
transfers. There is a way around this problem that I think you could 
find in the mail archives at http://www.soekris.com/. Also pretty sure 
you'll find more FreeBSD people using CF media there than here.

For starters I'd triple check to make sure /dev/ad2 is the correct 
device for your interface. Just because your friends use ad2 doesn't 
mean its right for you. IIRC ad8 is a likely candidate. Don't remember 
this was the name used in 4.x but in 5.x usbdevs(8) should list your CF 
card if its connected via USB. Also if using usb you need usbd(8) 
running.

Next, /dev/ad2c should be the "entire media surface" partition. Is my 
impression that if a BSD label is not on the media most device drivers 
fake a partition table. The scripts I wrote (which I don't have access 
to) for a former employer nuked the first 32k or 64k of a CF card with 
/dev/null then used disklabel to create new paying careful attention to 
make sure I changed both on-media and in-core labels. Most CF cards 
have a FAT filesystem and partition table on them to start with.

Brief experiments converting my script to work with bsdlabel(8) failed. 
Wasn't being paid to do 5.x so I didn't pursue it further.

Know you are saying that you have a filesystem image that you are 
trying to lay on a CF card. That works OK as long as all of your CF 
cards are identical and from the same batch. Two CF cards of same 
model, size, and "manufacturer" are not necessarily the same inside.

If you can create your own disk/bsd label on the media, then newfs(8) 
it, then you will be 90% done.

We were placing about 40MB of data on 256MB cards. I found it much 
faster to script disklabel(8) and newfs(8) then tar(1) or restore(8) 
our content than to block copy filesystem images. The first wrote 
little more than 40MB, the other had to write 256MB.


--
David Kelly N4HHE, dkelly at HiWAAY.net
========================================================================
Whom computers would destroy, they must first drive mad.



More information about the freebsd-questions mailing list