Netboot-scratchpad
From Funtoo Linux
Draft for an experiment in progress. Accuracy here is random!
Contents |
Warning
Information here may vary from day to day and hour to hour. It is a "pad" to help us to take various notes on a future and more complete tutorial on how produce netboot images for SPARC machines. Free feel to annotate if you wish.
Tools
- Tilo (seems a bit buggy especially with large image => segfaults)
- Linux kernel in itself
The Linux kernel way
- Magic command (/in /usr/src/linux) : make tftpboot.img
- Scans System.map to get ELF entries (espcially _star and _end)
- Requires a root.img file in /usr/src. This file is a ramdisk image (!= initrd ?). The smaller the better, so cramfs can be used therem of course busybox is required.
- cramfs must be included built-in
- Some Sun machines does not initialize their MMU so everything must fit in 4 Mb in their case (1 page)
Cramfs
- Designed for having a small footprint, ideal (to check with rw mount points ? The Fs is readonly and limited around 272Mb in size, no possibility to remount it rw...).
- Must be built in in kernel !
- Basic structure:
├── bin ├── dev ├── etc ├── lib ├── lib64 -> lib ├── mnt │ ├── cdrom │ ├── floppy │ └── funtoo ├── proc ├── sbin ├── sys ├── tmp ├── usr │ ├── bin │ └── sbin └── var
- Creation (mkdir and cd into it first) :
# mkdir -p bin sbin lib usr/bin usr/sbin usr/lib etc var sys proc sys dev etc mnt/floppy mnt/cdrom mnt/funtoo # chmod -R 755 * # chmod 1777 tmp # ln -s lib64 lib
- Emerge busybox in this subtree and remove unwanted files (eg. /usr/share/doc, and such). Ok because we ask for a static build (this stuff can be built with ulibc also... see also buildroot)
# CFLAGS="-O2 -pipe -mcpu=v9" USE="static make-symlinks" emerge --nodeps --root=/path/to/ramdisk/tree busybox
- Recompile a Linux kernel and put the modules in the cramfs directory sttructure (make modules_install INSTALL_MOD_PATH=
- put something useful in /bin/init: