Subject: Re: Embedded NetBSD Install
To: Luke Mewburn <>
From: Loren M. Lang <>
List: tech-embed
Date: 10/21/2004 23:49:42
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Oct 22, 2004 at 10:30:08AM +1000, Luke Mewburn wrote:
> On Thu, Oct 21, 2004 at 03:13:36PM -0700, Loren M. Lang wrote:
>   | I'm looking at replacing Linux used on an embedded device we are sell=
>   | with NetBSD, mostly for licensing reason.  This is a more high-end
>   | embedded device with an AMD 586 running apache and php for it's
>   | interface to the world.  It uses compact flash for it's hard drive.  =
>   | default install of NetBSD using the installer and sets provided I thi=
>   | is over 100 megs, maybe like 300 if I'm right.  My question is how do
>   | people install NetBSD on small foot prints like in under 8 megs?  Do
>   | they just pick and choice from the base sets what they need or are th=
>   | already put together sets for building small system?  I can probably
>   | remove what I don't need, but I was curious if there is an easier way.
> For a functional NetBSD system you only need the `base' & `etc' sets.
> It's possibly to cut down the install to just the shared libraries and
> user programs you need, but that's an issue of "trial and error".
> For example, I have a very functional embedded appliance that uses a
> 10-20MB file system embedded in a kernel that ends up being 4-7MB in
> size.

You mean something like a compressed ramdisk embedded in the netbsd
kernel which expands to 10-20 megs in ram after it's booted?

Also, how much does this system do?  The linux system uses the cf disk
for it's fs, no ramdisk involved, and takes about 16 megs which includes
apache and php.  Does netbsd do all that in around 16-20 megs?

>   | Secondly, the host system is Linux right now.  I was thinking I could
>   | just copy what I need to the Flash card using a reader attached to the
>   | linux system, but how do I partition/disklabel and format the drive.
>   | I'm not sure if linux supports disklabel, but I don't think it can
>   | format UFS, not to mention load the BSD bootloader.  Is there an easy
>   | way to do this or do I need to install a NetBSD system somewhere?
> We don't have a "host tool" version of disklabel or newfs at this time,
> so you'll need to do that on a NetBSD box.
> It is possible to make an ffs file system using 'makefs' and then dd
> that onto a drive.
> Another alternative is use the 'embedded filesystem' trick I mention
> above and boot the kernel off a bootable FAT CF card (I do this);
> installboot(8) has more information on how do do the latter..

Actually, I tried installing netbsd in vmware on linux and am able to
use it to access the usb flash drive.  The only problem is that netbsd
doesn't seem to add it to the scsi bus.  Here are the lines from dmesg:

cd0: no disk label
umass0 at uhub0 port 1 configuration 1 interface 0
umass0: Alcor Micro Mass Storage Device, rev 1.10/1.00, addr 2
umass0: using SCSI over Bulk-Only
umass0: Get Max Lun failed: IOERROR
umass0: unable to get Max Lun: IOERROR

No lines about scsibus and I can't run fdisk on sd0 or sd1.  It says
device not configured.  I'm using a GENERIC kernel which seems to have
all the appropriate lines as listed in the umass web page.  Is there
something I missed?

The only other option I can think of is using a loopback device, but I
don't think I can use that with a partitioned drive, only floppy and
cdrom images.

> !DSPAM:4178577b12337772117217!

I sense much NT in you.
NT leads to Bluescreen.
Bluescreen leads to downtime.
Downtime leads to suffering.
NT is the path to the darkside.
Powerful Unix is.

Public Key:
Fingerprint: B3B9 D669 69C9 09EC 1BCD  835A FAF3 7A46 E4A3 280C

Content-Type: application/pgp-signature
Content-Disposition: inline

Version: GnuPG v1.2.1 (GNU/Linux)