isofli4l-HOWTO


Version: 0.9.2 vom 8. Juni 2002

Was ist isofli4l ?

isofli4l ist fli4l, mit Hilfe von isolinux direkt von CDROM gebootet.

isofli4l ist (noch) kein fertiges Paket, sondern eine Anleitung, wie man ein normales fli4l bootfähig auf CDROM bringt.

Vorteile und Nachteile

Vorteile

Nachteile

Benötigte Hard- und Software

Wenn Brenner und CDROM-Laufwerk des Routers mit CD-RW-Medien zurechtkommen, sollte man einen CD-RW-Rohling benutzen. Das spart i.d.R. einige CD-Rohlinge ein, und erlaubt spätere Änderungen durch erneutes Brennen. Falls das CDROM-Laufwerk des Routers keine CD-RW-Medien lesen kann, sollte man es durch ein etwas moderneres CD-RW-fähiges Laufwerk ersetzen.

Brenn- und Entwicklungssystem können identisch sein. Sind sie es nicht, muß das ISO-Image vom Entwicklungssystem zum Brennsystem übertragen werden.

Konfigurations- und Entwicklungssystem können identisch sein. Sind sie es nicht, müssen die konfigurierten fli4l-Dateien vom Konfigurationssystem zum Entwicklungssystem übertragen werden.

Router

Brenn-System

Konfigurationssystem

Entwicklungssystem

Die Datei modules.sh

Diese Datei muß im Unix-Format vorliegen, ggf. mit dos2unix o.ä. konvertieren.

#!/bin/sh
#
# /etc/modules.sh -- called inline from /etc/rc
#
if [ "$boot_dev" = "/dev/cdrom" ] ; then
	colecho "Searching for fli4l files on floppy"
	mount -t vfat /dev/fd0 /boot 2> /dev/null > /dev/null
	if [ -f /boot/rc.cfg -a -f /boot/opt.tgz ] ; then
		colecho "Found fli4l files (normal mode) on floppy, switching boot device to floppy." gn
		boot_dev=/dev/fd0
	elif [ -f /boot/recover.sh -a -f /boot/rc2.cfg -a -f /boot/opt2.tgz ] ; then
		colecho "Found fli4l files (recover mode) on floppy, switching boot device to floppy." gn
		boot_dev=/dev/fd0
	else
		colecho "No fli4l files on floppy, continuing." gn
	fi
	umount /boot 2> /dev/null > /dev/null
fi
if [ "$boot_dev" = "/dev/cdrom" ] ; then
	for i in cdrom ide-cd isofs ; do
		colecho "Loading required module $i" gn
		insmod $i
	done
	rm -f /dev/cdrom
	mkdir /cdrom
	colecho "Searching for IDE/ATAPI CDROM drive containing isofli4l ..." gn
	cdrom=""
	for i in hda hdb hdc hdd ; do
		if [ -f "/proc/ide/$i/media" ] ; then
			media=`cat /proc/ide/$i/media 2> /dev/null`
			if [ "$media" = "cdrom" ] ; then
				colecho "	Media in /dev/$i is 'cdrom', trying to mount ..." gn
				mount -t iso9660 -o ro "/dev/$i" /cdrom > /dev/null 2> /dev/null
				if [ -f /cdrom/isolinux/opt.tgz -a -f /cdrom/isolinux/rc.cfg ] ; then
					cdrom="$i"
					colecho "	Found isofli4l CDROM at /dev/$i" gn
					ln -s "$cdrom" /dev/cdrom
					rm -rf /boot
					ln -s /cdrom/isolinux /boot
					break
				fi
				umount /cdrom > /dev/null 2> /dev/null
			else
				colecho "	Media in /dev/$i is '$media', not 'cdrom'. Skipping." gn
			fi
		else
			colecho "	/dev/$i does not exist" gn
		fi
	done
	if [ "$cdrom" = "" ] ; then
		colecho "*** PANIC! Could not find IDE/ATAPI CDROM drive containing isofli4l ! ***" br x br
		exit
	else
		colecho "Continuing, mounting /boot will fail once now." gn
	fi
fi
# (end of file)

Die Datei isolinux.cfg

Diese Datei muß als ASCII-Text im Unix- oder DOS-Format vorliegen, d.h. als Zeilenende darf wahlweise LF oder CR/LF benutzt werden.

#SERIAL 0 9600
TIMEOUT 0
DEFAULT kernel
APPEND load_ramdisk=1 initrd=rootfs.gz root=/dev/ram0 boot=/dev/cdrom

Dies ist prinzipiell die Datei syslinux.cfg aus fli4l, jedoch ist der Kernel-Parameter boot auf /dev/cdrom geändert.

Erzeugen des ISO-Images

Um das ISO-Image zu erzeugen, muß man root sein, also entweder als root eingeloggen oder su benutzen.

  1. fli4l wie gewohnt und gewünscht konfigurieren und opt.tgz erzeugen, das OPT-Paket hd.tar.gz nicht benutzen!
  2. mkdir -p $HOME/isofli4l/cdromfs/isolinux
  3. Die Dateien kernel, opt.tgz, rc.cfg und rootfs.gz aus dem img-Unterverzeichnis von fli4l nach $HOME/isofli4l/cdromfs/isolinux kopieren.
  4. Die Datei isolinux.bin aus dem syslinux-Paket nach $HOME/isofli4l/cdromfs/isolinux kopieren.
  5. Die Datei isolinux.cfg (siehe oben) nach $HOME/isofli4l/cdromfs/isolinux kopieren.
  6. gunzip $HOME/isofli4l/cdromfs/isolinux/rootfs.gz
  7. mount -o loop $HOME/isofli4l/cdroms/isolinux/rootfs /mnt
  8. Die Datei modules.sh (siehe oben) nach /mnt/etc/modules.sh kopieren.
  9. Das Verzeichnis opt/files/lib/modules aus hd.tar.gz mit allen Dateien und Unterverzeichnissen nach /mnt/lib/modules kopieren.
  10. umount /mnt
  11. gzip $HOME/isofli4l/cdromfs/isolinux/rootfs
  12. Ggf. weitere Dateien und Verzeichnisse nach $HOME/isofli4l/cdromfs kopieren
  13. Falls du -h $HOME/isofli4l/cdromfs weniger als 4 MByte ergibt (normal für fli4l ohne Extra-Dateien sind etwa 1,5 MByte), muß mit dd if=/dev/zero of=$HOME/isofli4l/cdromfs/fillfile bs=1M count=3 eine Fülldatei angelegt werden, sonst wird das ISO-Image zu klein.
  14. mkhybrid -o image.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V 'isofli4l' $HOME/isofli4l/cdromfs

Brennen

Linux

Einrichten:
Wie man einen Brenner unter Linux einrichtet, sollte in der Dokumentation der Distribution stehen. Ansonsten bitte die CD-Writing-HOWTO lesen. Insbesondere sollten die Environment-Variablen CDR_DEVICE und CDR_SPEED gesetzt sein.
Simulieren:
cdrecord -dummy -v image.iso
Brennen:
cdrecord -v image.iso
Löschen (CD-RW):
cdrecord -v blank=fast

Andere Systeme

Bitte die Anleitung / Dokumentation lesen. üblicherweise bringt man das Brennprogramm dazu, die Datei image.iso als CD-Image zu lesen und als CD zu brennen. Der Menüpunkt heißt meistens "CD from Image" oder "CD von Abbilddatei". Wenn nach dem Brennen auf der CD nur eine Datei namens image.iso vorhanden ist, ist etwas schiefgelaufen. Diese CD ist dann unbrauchbar und wird nicht booten.

Booten von CDROM

Changelog

Version 0.9.2
Version 0.9.1
Fehlende Datei isolinux.cfg hinzugefügt
Version 0.9
Erste Version, zunächst nur auf Anfrage ausgeliefert

Copyright, Ausschluß jeglicher Gewährleistung

Jede Haftung meinerseits wegen evtl. entstandender Schäden oder Kosten ist ausgeschlossen. Sie benutzen diese Anleitung und die darin enthaltene Script-Datei modules.sh auf eigenes Risiko. Ich übernehme keinerlei Gewährleistung für die Funktion des hier beschriebenen Verfahrens.

Diese Anleitung unterliegt meinem Copyright, sie darf in unveränderter Form beliebig oft weitergegeben werden.

Kontakt

Alexander Foken
http://www.foken.de/alexander/
eMail: isofli4l (at) foken (punkt) de


Copyright © Alexander Foken