This page (revision-6) was last changed on 09-Jun-2010 10:48 by ThomasUndGuido 

This page was created on 06-Mar-2009 19:06 by ThomasBayen

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
6 09-Jun-2010 10:48 7 KB ThomasUndGuido to previous
5 08-Jun-2010 20:45 7 KB ThomasBayen to previous | to last Neue Schritt-für-Schritt Anleitung
4 08-Jun-2010 20:05 6 KB ThomasUndGuido to previous | to last
3 08-Jun-2010 19:53 6 KB ThomasBayen to previous | to last Neue Schritt-für-Schritt Anleitung
2 07-Mar-2009 18:36 3 KB ThomasBayen to previous | to last Fertiggestellt und bootcd eingeführt
1 06-Mar-2009 19:06 2 KB ThomasBayen to last Einstieg in den neuen NAT-Router

Page References

Incoming links Outgoing links

Version management

Difference between version and

= NAT-Router =

Ich möchte einen NAT-Router auf einem embedded Board haben. Dazu sind wir folgendermassen vorgegangen: Als erstes habe ich ein neues Linux-System in einem chroot-Jail erzeugt und dieses nach meinen Vorstellungewn angepasst:

 # cd MeinProjektVerzeichnis
 # debootstrap lenny router
 
Jetzt haben wir ein hübsches Basis-Debian (lenny-Distribution), das in dem Unterverzeichnis "natrouter" erzeugt wurde.
 
 # chroot router
 # mount proc /proc -t proc
 
Wir betreten das Verzeichnis mit "chroot", was dazu führt, daß wir uns (fast) wie in einem neuen, eigenen Linux-System fühlen. Natürlich arbeiten wir immer noch auf dem originalen System, daher empfehle ich nach Abschluss der ganzen Aktion einen Reboot des ganzen Systems. Das proc-System mounte ich, weil das chroot-System dadurch etwas "echter" wirkt, was bei der Installation weiterer Pakete ansonsten zu Fehlern führen kann.
 
 # aptitude install locales
 # dpkg-reconfigure locales
 # aptitude install joe less ssh>>
 # aptitude install shorewall<< ntpdate>>
 # aptitude install grub
 # aptitude install linux-image-2.6.26-486

Das sind ein paar Pakete, die immer bzw. speziell für unseren Router sinnvoll sind. Arbeitet man auf einem deutsch konfigurierten Muttersystem, sollte man "locales" als erstes installieren und konfigurieren, um Warnings bei den weiteren Paketinstallationen zu vermeiden.

 # umount /proc
 # exit

Jetzt habe ich das chroot-System wieder ordentlich verlassen und schreibe das Verzeichnis dann auf die CF-Karte.

 # cfdisk /dev/sdc
 
Ich erzeuge eine einzige, grosse Partition mit Filesystemtyp "Linux ext3". Diese mache ich z.B. 512 MB gross. Indem ich nicht die ganze Platte benutze, stelle ich sicher, daß das Image später auch auf verschieden grosse CF-Karten kopiert werden kann.

 # mke2fs -j /dev/sdc1
 # mount /dev/sdc1 /mnt
 # cp -a router /mnt

Jetzt installiere ich den <<grub-Bootloader (näheres siehe LinuxOhneBildschirm):grub-Bootloader:

 # chroot router
 # cp -r /usr/lib/grub/i386-pc /boot/grub
 # exit
 # grub
 grub> device (hd0) /dev/sdb
 grub> root (hd0,0)
 grub> setup (hd0)
 grub> quit

<<Einige Kleinigkeiten zur Konfiguration innerhalb des chroot sind noch empfehlenswert. Auf LinuxOhneBildschirm ist ein Beispiel, wie man die inittab anpasst. Dazu empfehle ich noch folgendes:

 # echo "router" >/etc/hostname


Im laufenden System sollte man übrigens Datum und Uhrzeit richtig gesetzt haben:

 # date 030715212009       (bedeutet 7.3.09, 15:21)
 # hwclock --systohc


Jetzt haben wir ein funktionierendes System, das wir bereits produktiv einsetzen können.

== bootcd ==

Mit dem Debian-Paket "bootcd" können wir dieses System nun für ein embedded board noch etwas besser anpassen. Dazu installieren wir bootcd im Master-System, konfigurieren "/etc/bootcd/bootcdwrite.conf" (langsam und mit nachdenken) und starten "bootcdwrite". Die Besonderheit bei einem embedded System ist, daß man von der ersten Partition statt von einer Floppy bootet. Bei unserem System konnte man leider auch nicht direkt vom CD-Image booten (wurde vom embedded-BIOS nicht unterstützt). Dazu benutzen wir den grub-Bootblock (wie oben installiert), kopieren das "/boot"-Verzeichnis des Masters auf die erste Partition der Festplatte/CF-Karte und tragen in der "grub/menu.lst" in der Kernel-Zeile die zweite Partition als Bootdevice für den Kernel ein. Auf diese zweite Partition kopieren wir dann das CD-Image, das bootcd erzeugt hat.