Ethan Benson wrote: > On Sat, Jun 10, 2000 at 08:05:41PM -0700, Chris Baker wrote: > > > > Maybe I can stand to lose something else in there. I'm not insisting > > that anyone support my ideosyncrasies; I just want to know how to hack > > it together myself 8-) > > there may already be enough space, im not sure, have not checked > lately. > > however deleting most of the files there will do you no good since > most of them are hard links to /bin/busybox. > > what you need to do is this: > > gzip -dc root.bin > root.bin.nogz > mount -t ext2 -o loop root.bin.nogz /floppy > cp /sbin/nvsetenv /floppy/sbin/ > umount /floppy > rm root.bin > gzip root.bin.nogz > mv root.bin.nogz.gz root.bin > dd if=/dev/zero of=/dev/fd0 bs=512 count=2880 > dd if=root.bin of=/dev/fd0 bs=512 > > > > it would probably be better to integrate nvsetenv into busybox to save > > > the overhead of a fully linked executable. i think it does belong > > > there, perhaps for woody where we will hopefully be able to map /dev > > > nodes to OF devices. > > > > I trust you know what you're talking about, since I haven't faintest > > idea what this means.... > > ;-) > > busybox is a bunch of stripped down basic unix utilities, ls, chmod, > chown grep etc etc all compiled into ONE executable program. this > program changes its behaviour based on the name its called as, so what > you do is create a hard link from busybox to ls and run ls you get ls > behaviour, make another link chown, and run chown you get chown's > behaviour, etc. > > so when you look around on the boot floppies you will find most of the > utilities have a link count of 60 or so, that is because they are all > hard links to busybox. hard links take no disk space at all (unlike > symlinks). > > why would anyone do such a strange hack? heres why: > > [EMAIL PROTECTED] eb]$ echo 'main(){}' > nothing.c > [EMAIL PROTECTED] eb]$ cat nothing.c > main(){} > [EMAIL PROTECTED] eb]$ gcc nothing.c -o nothing > [EMAIL PROTECTED] eb]$ ls -l nothing > -rwxr-x--- 1 eb eb 4706 Jun 10 19:27 nothing > [EMAIL PROTECTED] eb]$ strip nothing > [EMAIL PROTECTED] eb]$ ls -l nothing > -rwxr-x--- 1 eb eb 2972 Jun 10 19:27 nothing > [EMAIL PROTECTED] eb]$ ./nothing > [EMAIL PROTECTED] eb]$ > > even a program that does absolutly nothing, contains no real code at > all, has nearly 3K of overhead when stripped. > > this is because the executable has other various information embedded, > such as the archecture and the shared library linking information, > even though nothing.c contains no real code it is still linked against > libc (main()): > > [EMAIL PROTECTED] eb]$ ldd nothing > libc.so.6 => /lib/libc.so.6 (0x0feea000) > /lib/ld.so.1 => /lib/ld.so.1 (0x30000000) > [EMAIL PROTECTED] eb]$ > > what busybox does is eliminate all that redunancy by wrapping all the > base utilities into ONE executable. > > you won't really need to do this probably, unless there is not enough > space, but the boot floppies people would assuming they decide to add > this. that is what they did for mktemp which i needed for > ybin/mkofboot to work. > > as for mapping /dev nodes to OF devices, the problem is that even > though we know your root partition is /dev/hda2 on /dev/hda we have NO > IDEA what that translates to in OpenFirmware, and there is currently > no way to find out from the kernel. this means there can be no > automated way for quik (oldworld) or ybin (newworld) to set the > boot-device for you. (though on newworld its usually not necessary > since the defaults usually work fine) > > > > you mean a non-miboot floppy? i think you can do that by putting a > > > > Yes, that's what I meant, but alternatives are welcome. I don't > > really know what miboot is. I suppose boot-hfs-image (or whatever > > it's called) is a miboot floppy, right? I just did a google search on > > miboot, which didn't really come up with much aside from benh's page. > > Are there any docs for it lying around? > > not really, miboot is intended for boot floppies/CDs not so much for > disk bootstrap (which users are interested in) due to the problems > with macos. (it likes to ruin miboot partitions) > > what miboot is is a fake System file, that actually contains boot > loader code. its designed to look and load like the MacOS System > file, this way the MacROM will load it like it would load macos and > end up loading a boot loader instead. moboot also requires the MacOS > boot blocks to be installed on the disk (in the fisrt 1K block of the > filesystem) for a miboot floppy to work your OF boot-device must be > /AAPL,ROM the hardware Mac ROM. > > > > COFF format kernel on a floppy and doing a boot fd: or something. im > > > not sure i don't have an oldworld mac to tinker with, and newworlds > > > have an annoying lack of a floppy.. > > > > Ah! This is starting to sound familiar. It needs to be in COFF > > format. How would one make such a thing? Let me guess: it's a > > propriatary Apple format which isn't supported except for some hacked > > together binutils from four years ago that everyone would just as soon > > forget ever existed. Am I close? > > of course not! COFF is a standard executable format used by some > unices, including Digital UNIX. all that is required to get a COFF > format kernel is:
Note that this is automatically done by make-kpkg. If you have a kernel-image package installed, just copy /boot/vmlinux.coff-`uname -r` to the floppy. Zeen, -Adam P.