WRAP: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Grundkonfiguration: Firewall deinstallieren)
(Meshnode: cat)
 
(33 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
x86 Wireless Router Application Platform Boards, siehe http://www.pcengines.ch/wrap.htm
 
x86 Wireless Router Application Platform Boards, siehe http://www.pcengines.ch/wrap.htm
  
=== OpenWrt Installation ===
+
== Überblick ==
 +
=== Hardware ===
  
Auf diesem x86-basiertem Board läuft neben zahlreichen Debian/GNU-Linux Deviraten auch OpenWrt Kamikaze, dem aktuellen Entwicklungszweig von http://openwrt.org.  
+
Es existieren verschiedene Versionen. Wir setzen vor allem das WRAP 2e ein:
 +
* 233 MHz Geode SC1100 CPU
 +
* 64 oder 128 MB RAM
 +
* Compact Flash Interface
 +
* 2x Mini-PCI Schnittstelle (z.B. zwei Wifi-Karten)
 +
* 1x drahtgebundene Ethernet Schnittstelle mit PoE
 +
* Serieller Anschluss (Console)
  
Opennet-Repository für vorkompiliertes Images und Pakete: http://www.opennet-initiative.de/firmware/kamikaze/
+
WRAP-Gehäuse: [[Bauanleitungen#Umbau_WRAP_Box_N-Buchse]] (preiswert) od. [[Meshnode]] (professionell)
  
==== Kurzanleitung ====
+
=== OpenWrt ===
* OpenWrt Kamikaze Quellen via ''svn'' besorgen, siehe http://dev.openwrt.org
+
* ''make menuconfig'' -- x86 Plattform, alle weiteren Einstellungen nach Bedarf
+
* ''make'' -- OpenWrt Images bauen, sind dann in ''bin/'' zu finden
+
* ''dd if=<openwrt-x86-?-?.image> of=<ziel-device>'' -- Festplattenimage auf die CompactFlash-Karte schreiben (am besten über einen Cardreader, <ziel-device> ist der Cardreader-Devicenode)
+
* Booten, bei DMA-Problemen via Grub noch ''ide=nodma'' als Bootoption hinzufügen (ggf. bei menuconfig fest vorgeben: Target Images > Extra kernel boot options)
+
* Konfiguration vornehmen, vgl. http://wiki.openwrt.org/OpenWrtDocs/KamikazeConfiguration
+
* Fertig!
+
  
==== Hinweise zum Dateisystem ====
+
Auf diesem x86-basiertem Board läuft neben zahlreichen Debian/GNU-Linux Deviraten auch OpenWrt Kamikaze, dem aktuellen Entwicklungszweig von http://openwrt.org.  
* *.image-Dateien sind komplette Festplatten-Images incl. Partitionstabelle und MBR mit GRUB
+
* *.fs-Dateien sind reine Partitionsimages
+
* Wahl zwischen Squashfs+Jffs2 (mit mini_fo Overlay), nur Jffs2 oder Ext2 als Root-Dateisystem; bei größeren CF-Karten ist ext2 statt jffs2 zu empfehlen (1024 Zylinergrenze beachten, sonst LBA notwendig, ideal -> Partition < 490 MB)
+
 
+
=== OpenWrt Konfiguration ===
+
  
==== Grundkonfiguration ====
+
== Opennet x86 WRAP Firmware Anpassung, OpenWrt Kamikaze 7.07 ==
* Passwort mit ''passwd' setzen; ggf. ''/etc/dropbear/authorized_keys'' mit Public-Key versorgen
+
* da es einige Probleme mit nicht reagierenden WRAPs gab, wurde im aktuellen Image der hardware-watchdog aktiviert.
* ggf. Opennet-Paketsourcen einbinden; ''ipkg.conf'' mit ''src opennet http://www.opennet-initiative.de/firmware/kamikaze/packages''
+
* die Systemzeit wird nun opennet-spezifisch mit unseren Gateways synchronisiert, reboots werden im Start-Banner vermerkt so dass watchdog-reboots nachvollzogen werden können.
* ggf. Firewall deinstallieren mit ''ipkg remove iptables''
+
* als default ssh-deamon läuft nun openssh auf Port 22, dropbear läuft auf Port 10022, in der Hoffnung, dass bei auftretenden Problemen wenigstens einer erreichbar bleibt.
* Autostart-Dienste mit ''/etc/init.d/<dienst> enable|disable'' einrichten
+
aktuelle WRAP-Systeme im Opennet haben 4 ext2fs Partitionen, zwei boot- (hda1 / hda3, je 4MB) und zwei root- (hda2 / hda4, je 16MB) Partitionen. Dies erlaubt ein remote update im laufenden Betrieb, indem die jeweils anderen Partitionen mit dem neuen System überschrieben werden. Die folgenden scripte setzen entsprechend konfigurierte Partitionen voraus.
* Drahtgebundenes Netzwerk entspr. http://wiki.openwrt.org/OpenWrtDocs/KamikazeConfiguration in ''/etc/config/network'' konfigurieren
+
** sync_spare_partition_config: Synchronisiert Netzwerkeinstellungen, Passwort und host-keys vom Ersatz-System mit dem Arbeitssystem (oder umgekehrt, Quelle ist jeweils das aktuell aktive System)
* Drahtloses Netzwerk z.B. mit Atheros siehe http://madwifi.org/wiki/UserDocs/FirstTimeHowTo
+
** grub-install-wrap: schreibt den Boot-Loader neu, Parameter erlauben die Auswahl zwischen normaler oder zusätzlicher Boot-Partition.
 +
** grub-switch-active-system: Wechselt das aktuelle System (vom Arbeitssystem zum Ersatzsystem oder zurück). Nach dem Aufruf muss der WRAP neu gestartet werden.
 +
** install_new_system: erwartet ein neues kernel (boot) und ein neues filessystem Image in /tmp und installiert dieses auf den unbenutzten Partitionen.
 +
** clean_restart_log: Startzeiten werden beim login angezeigt. Mit diesem Script werden aufgezeichnete Startzeiten aus dem log entfernt.
 +
** reboot: ein script ersetzt den vorhandenen reboot-Befehl und sync't die Partition vor einem Neustart
  
==== madwifi Ad-Hoc Device ====
+
== Downloads ==
 +
* [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/bin/openwrt-x86-2.6-ext2.image gesamtes Image], enthält die boot und die root Partition. Nach der Installation müssen mit fdisk zwei weitere Partitionen angelegt werden, sonst ist ein remote-update oder ein Wechsel zum backup-system nicht möglich.
 +
* [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/bin/openwrt-x86-2.6-ext2.image.kernel boot-] [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/bin/openwrt-x86-2.6-ext2.fs root-] Image für die Installation mit dem 'install_new_system'-script
 +
* weitere Downloads unter http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/
  
* iPK Pakete ''kernel'', ''madwifi'' und ''wireless-tools'' installieren
+
=== Aktualisierung eines bestehenden Systems ===
* Datei /etc/init.d/madwifi-opennet anlegen (beispielhaft):
+
* (Partitionen /dev/hda3 mit >=4MB und /dev/hda4 mit >=16MB erstellen, wenn nicht vorhanden)
#!/bin/sh /etc/rc.common
+
* [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/bin/openwrt-x86-2.6-ext2.image.kernel boot-Image] auf den WRAP in /tmp laden
START=45
+
* [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/bin/openwrt-x86-2.6-ext2.fs root-Image] auf den WRAP in /tmp laden
boot() {
+
* install_new_system aufrufen
        wlanconfig ath0 create wlandev wifi0 wlanmode adhoc
+
** wenn das script noch nicht vorhanden ist, [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/install_new_system install_new_system] herunterladen und nach /usr/sbin kopieren.
        iwconfig ath0 essid olsr.opennet-initiative.de
+
* Ausgabe des scripts vor einem Neustart prüfen. Wenn Fehler aufgetreten sind und grub dennoch ausgeführt wurde, kann es sein das nach einem reboot ein nicht funktionierendes System gestartet werden soll.
        iwconfig ath0 channel 40
+
* WRAP neu starten
        iwconfig ath0 txpower 10 
+
        ifconfig ath0 192.168.33.27 netmask 255.255.0.0
+
}
+
* diese ausführbar machen per ''chmod +x madwifi-opennet''
+
* als Autostart festlegen durch ''./madwifi-opennet enable''
+
  
==== ntpclient Zeitsyncronisation ====
+
=== Erstinstallation eines WRAP ===
 +
* [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/bin/openwrt-x86-2.6-ext2.image gesamtes Image] herunterladen und z.B. mit ''dd if=openwrt-x86-2.6-ext2.image of=<ziel-device> bs=512k'' -- Festplattenimage auf die CompactFlash-Karte schreiben (am besten über einen Cardreader, <ziel-device> ist der Cardreader-Devicenode)
 +
* (Karte einbauen, WRAP starten)
 +
* /etc/config/network /etc/config/wireless müssen angepasst werden, default IP ist 192.168.33.42 im opennet-olsr
 +
* mit fdisk zwei neue Partitionen (hda3 4MB, hda4 16MB) anlegen
 +
* (am besten gleich parallel ein weiteres System installieren, ist sinnvoll als Backup-Lösung und für spätere remote-updates. Genau wie bei [[WRAP#Aktualisierung eines bestehenden Systems]] beschrieben vorgehen)
  
* iPK Paket ''ntpclient'' installieren
+
== Image-Erstellung ==
* Datei /etc/init.d/ntpclient anlegen (beispielhaft):
+
* aktuellen [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/OpenWrt-ImageBuilder-x86-2.6-for-Linux-i686.tar.bz2 Kamikaze-ImageBuilder] herunterladen und entpacken.
#!/bin/sh /etc/rc.common         
+
* Anpassungen (http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/files.tgz) herunterladen und im ImageBuider-Verzeichnis entpacken.
START=80
+
* [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/grub_0.97-1_i386.ipk Paket grub], [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/7.07/diffutils_2.8.1-1_i386.ipk Paket diffutils] ins Verzeichnis packages laden
ntp=izumi.on
+
* Image compilieren, dabei darauf achten, dass alle notwendigen Pakete gefunden werden. (Als Paketquelle ist neben http://downloads.openwrt.org/snapshots/x86-2.6/packages/ auch http://downloads.x-wrt.org/xwrt/kamikaze/x86-2.6/packages/ gut geeignet) - [http://www.opennet-initiative.de/firmware/kamikaze/kamikaze-x86-rene/r7275/make_it.sh hier] gibts das folgende als script.
boot() {
+
make image PACKAGES="haserl ip kmod-madwifi kmod-natsemi libopenssl libpthread ntpclient olsrd olsrd-mod-httpinfo
      while true; do
+
olsrd-mod-nameservice openssl-util webif webif-lang-de webif-theme-xwrt webif-theme-zephyr wireless-tools zlib
            ping -c 1 $ntp >/dev/null 2>&1 && ntpclient -s -c 0 \
+
  tcpdump iptables-mod-extra kmod-ipt-extra kmod-scx200-wdt kmod-scx200-gpio kmod-nsc-gpio openssh-server e2fsprogs
              -i 5 -g 1000000 -h $ntp && return
+
fdisk grub diffutils" FILES=files/ V=99
            sleep 3
+
      done
+
  }
+
* diese ausführbar machen per ''chmod +x ntpclient''
+
* als Autostart festlegen durch ''./ntpclient enable''
+
  
==== monit Diensteüberwachung ====
+
== Problemlösung ==
 +
* '''neues System ist doch nicht so toll''': Wurde das System mit 'install_new_system' installiert, sollte der WRAP noch zwei zusätzliche Partitionen mit einem älteren System enthalten. In dieses System kann durch Aufruf von grub-switch-active-system und einen anschliessenden Neustart gewechselt werden.
  
* iPK Paket ''monit'' installieren
+
== Meshnode ==
* Konfigurationsdatei bearbeiten, zur Überwachung von olsrd z.B.
+
set daemon  120
+
set logfile syslog facility log_daemon
+
set httpd port 2812 # and
+
    allow localhost      # allow localhost to connect to the server and
+
    allow 192.168.0.0/16
+
check process olsrd
+
    with pidfile "/var/run/olsrd.pid"
+
    start program = "/etc/init.d/olsrd start"
+
    stop program = "/etc/init.d/olsrd stop"
+
* hierzu noch die Erstellung eines pid-Files in ''/etc/init.d/olsrd'' ergänzen
+
#!/bin/sh /etc/rc.common
+
BIN=olsrd
+
DEFAULT=/etc/default/olsrd
+
RUN_D=/var/run
+
PID_F=$RUN_D/$BIN.pid
+
start() {
+
        [ -f $DEFAULT ] && . $DEFAULT
+
        mkdir -p $RUN_D
+
        $BIN $OPTIONS
+
        pidof $BIN > $PID_F
+
}
+
stop() {
+
        [ -f $PID_F ] && kill $(cat $PID_F)
+
}
+
* monit starten per ''/etc/init.d/monit start''
+
* Webzugriff per http://<node-ip>:2812/
+
  
==== maradns DNS-Server ====
+
Siehe [[Meshnode]].
  
* iPK Paket ''maradns'' installieren
+
[[Kategorie:Access points]]
* Konfigurationsdatei ''/etc/mararc'' bearbeiten und z.B. für rekursive Namensauflösung über zwei Upstream-Server konfigurieren:
+
hide_disclaimer="YES"
+
chroot_dir="/etc/maradns"
+
bind_address="172.0.0.1""
+
maradns_uid=65534
+
maxprocs=10
+
random_seed_file="/dev/urandom"
+
recursive_acl="127.0.0.1/8"
+
upstream_servers = {}
+
upstream_servers["."] = "192.168.0.250, 192.168.0.254"
+
verbose_level=3
+
verbose_query=1
+
* maradns starte per ''/etc/init.d/maradns start'', dauerhaft per ''maradns enable''
+
* Anfragen per ''askmara'' oder wie üblich ''nslookup'' & Co.
+

Aktuelle Version vom 16. Juni 2011, 20:58 Uhr

x86 Wireless Router Application Platform Boards, siehe http://www.pcengines.ch/wrap.htm

Inhaltsverzeichnis

[Bearbeiten] Überblick

[Bearbeiten] Hardware

Es existieren verschiedene Versionen. Wir setzen vor allem das WRAP 2e ein:

  • 233 MHz Geode SC1100 CPU
  • 64 oder 128 MB RAM
  • Compact Flash Interface
  • 2x Mini-PCI Schnittstelle (z.B. zwei Wifi-Karten)
  • 1x drahtgebundene Ethernet Schnittstelle mit PoE
  • Serieller Anschluss (Console)

WRAP-Gehäuse: Bauanleitungen#Umbau_WRAP_Box_N-Buchse (preiswert) od. Meshnode (professionell)

[Bearbeiten] OpenWrt

Auf diesem x86-basiertem Board läuft neben zahlreichen Debian/GNU-Linux Deviraten auch OpenWrt Kamikaze, dem aktuellen Entwicklungszweig von http://openwrt.org.

[Bearbeiten] Opennet x86 WRAP Firmware Anpassung, OpenWrt Kamikaze 7.07

  • da es einige Probleme mit nicht reagierenden WRAPs gab, wurde im aktuellen Image der hardware-watchdog aktiviert.
  • die Systemzeit wird nun opennet-spezifisch mit unseren Gateways synchronisiert, reboots werden im Start-Banner vermerkt so dass watchdog-reboots nachvollzogen werden können.
  • als default ssh-deamon läuft nun openssh auf Port 22, dropbear läuft auf Port 10022, in der Hoffnung, dass bei auftretenden Problemen wenigstens einer erreichbar bleibt.

aktuelle WRAP-Systeme im Opennet haben 4 ext2fs Partitionen, zwei boot- (hda1 / hda3, je 4MB) und zwei root- (hda2 / hda4, je 16MB) Partitionen. Dies erlaubt ein remote update im laufenden Betrieb, indem die jeweils anderen Partitionen mit dem neuen System überschrieben werden. Die folgenden scripte setzen entsprechend konfigurierte Partitionen voraus.

    • sync_spare_partition_config: Synchronisiert Netzwerkeinstellungen, Passwort und host-keys vom Ersatz-System mit dem Arbeitssystem (oder umgekehrt, Quelle ist jeweils das aktuell aktive System)
    • grub-install-wrap: schreibt den Boot-Loader neu, Parameter erlauben die Auswahl zwischen normaler oder zusätzlicher Boot-Partition.
    • grub-switch-active-system: Wechselt das aktuelle System (vom Arbeitssystem zum Ersatzsystem oder zurück). Nach dem Aufruf muss der WRAP neu gestartet werden.
    • install_new_system: erwartet ein neues kernel (boot) und ein neues filessystem Image in /tmp und installiert dieses auf den unbenutzten Partitionen.
    • clean_restart_log: Startzeiten werden beim login angezeigt. Mit diesem Script werden aufgezeichnete Startzeiten aus dem log entfernt.
    • reboot: ein script ersetzt den vorhandenen reboot-Befehl und sync't die Partition vor einem Neustart

[Bearbeiten] Downloads

[Bearbeiten] Aktualisierung eines bestehenden Systems

  • (Partitionen /dev/hda3 mit >=4MB und /dev/hda4 mit >=16MB erstellen, wenn nicht vorhanden)
  • boot-Image auf den WRAP in /tmp laden
  • root-Image auf den WRAP in /tmp laden
  • install_new_system aufrufen
    • wenn das script noch nicht vorhanden ist, install_new_system herunterladen und nach /usr/sbin kopieren.
  • Ausgabe des scripts vor einem Neustart prüfen. Wenn Fehler aufgetreten sind und grub dennoch ausgeführt wurde, kann es sein das nach einem reboot ein nicht funktionierendes System gestartet werden soll.
  • WRAP neu starten

[Bearbeiten] Erstinstallation eines WRAP

  • gesamtes Image herunterladen und z.B. mit dd if=openwrt-x86-2.6-ext2.image of=<ziel-device> bs=512k -- Festplattenimage auf die CompactFlash-Karte schreiben (am besten über einen Cardreader, <ziel-device> ist der Cardreader-Devicenode)
  • (Karte einbauen, WRAP starten)
  • /etc/config/network /etc/config/wireless müssen angepasst werden, default IP ist 192.168.33.42 im opennet-olsr
  • mit fdisk zwei neue Partitionen (hda3 4MB, hda4 16MB) anlegen
  • (am besten gleich parallel ein weiteres System installieren, ist sinnvoll als Backup-Lösung und für spätere remote-updates. Genau wie bei WRAP#Aktualisierung eines bestehenden Systems beschrieben vorgehen)

[Bearbeiten] Image-Erstellung

make image PACKAGES="haserl ip kmod-madwifi kmod-natsemi libopenssl libpthread ntpclient olsrd olsrd-mod-httpinfo 
olsrd-mod-nameservice openssl-util webif webif-lang-de webif-theme-xwrt webif-theme-zephyr wireless-tools zlib 
tcpdump iptables-mod-extra kmod-ipt-extra kmod-scx200-wdt kmod-scx200-gpio kmod-nsc-gpio openssh-server e2fsprogs
fdisk grub diffutils" FILES=files/ V=99

[Bearbeiten] Problemlösung

  • neues System ist doch nicht so toll: Wurde das System mit 'install_new_system' installiert, sollte der WRAP noch zwei zusätzliche Partitionen mit einem älteren System enthalten. In dieses System kann durch Aufruf von grub-switch-active-system und einen anschliessenden Neustart gewechselt werden.

[Bearbeiten] Meshnode

Siehe Meshnode.

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge