Horstbox Professional mit Asterisk 1.8 - OpenHorst

Hier entsteht eine Schritt für Schritt Anleitung um die experimentelle Firmware „OpenHorst / potc-firmware“ für die Horstbox Professional zu erstellen. Weitere Hinweise zum Projekt:

Zuletzt angepasst für SVN Revision 250:

config.mk

Wichtiger Hinweis:

Sämtliche Installationen und Modifikationen auf eigene Gefahr!

Host System installieren

In diesem Beispiel wird das Host System als virtuelle Maschine installiert. Zusätzliche Hardware ist für diesen Weg nicht notwendig. Ziel soll es sein, ein minimales System mit allen für den Firmwarebau notwendigen Paketen zu installieren.

  • Oracle (Sun) Virtual Box Installieren (Stand 2011-02: VirtualBox-4.0.4-70112-Win.exe)
  • Debian GNU/Linux herunterladen (Stand 2011-02: debian-6.0.0-i386-netinst.iso)
  • Erstellen einer neuen Virtuellen Maschine (VM)
  • Ausreichend[*] RAM, Netzwerkbrücke
    • [*] Hinweis: Der Kernel ist lzma-komprimiert. Wenn der Arbeitsspeicher zu gering gewählt wird, erhältm man beim Erstellen des Kernels (make kernel_build) die Fehlermeldung: lzma: Cannot allocate memory
  • Einbinden des heruntergeladenen CD-Image (starten von CD-Rom)
  • Booten und installieren:
    • Choose language: German, Deutschland, deutsch
    • Tastaturbelegung: Deutsch
    • Rechnername:
    • Domainname:
    • Partitionsmethode: verwende vollständige Festplatte
    • Festplatte auswählen
    • alle Daten …
    • Partitionierung beenden und Änderungen übernehmen
    • Änderungen auf die Festplatte schreiben? <Ja>
    • Root Passwort:
    • Benutzer anlegen:
    • Paketmanager: Deutschland
    • Proxy:
    • Popularity Contest: <Nein>
    • Softwareauswahl: alles abwählen, Sterne entfernen (Leertaste)
    • Grub Bootloader MBR: <Ja>
    • Installation abgeschlossen: <weiter>
    • Nachdem das System einmal hochgefahren wurde (Funktionscheck), kann die VM per ACPI ausgeschaltet werden.
    • Vor dem nächsten Neustart, Image aus VBox ausbinden
    • Damit ist die Installation abgeschlossen
  • Anmeldung als super user root
  • Secure Shell installieren
    • aptitude install ssh
  • Nun kann man sich beispielsweise mit putty via ssh anmelden und Befehle durch copy & paste (rechte Maustaste) übertragen.

Anpassen des Repositories

  • In diesem Beispiel wird der Texteditor nano verwendet.
    • nano /etc/apt/sources.list
    • # deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official i386 NETINST Binary-1 20110205-14:34]/ squeeze main
       
      #deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official i386 NETINST Binary-1 20110205-14:34]/ squeeze main
       
      deb http://ftp.de.debian.org/debian/ squeeze main
      deb-src http://ftp.de.debian.org/debian/ squeeze main
       
      deb http://security.debian.org/ squeeze/updates main
      deb-src http://security.debian.org/ squeeze/updates main
       
      deb http://ftp.de.debian.org/debian/ squeeze-updates main
      deb-src http://ftp.de.debian.org/debian/ squeeze-updates main 

FIXME Hier je nach Bedarf andere oder eigene Quellen eintragen

Paket- und Sicherheitsupdates installieren

  • Aktualisieren des Repository
    • aptitude update
  • Paket- und Sicherheitsupdates
    • aptitude upgrade

Für den Bau der Firmware relevante Pakete des Hostsystems

  • Installation ausgewählter Pakete und Liste der Abhängigkeiten:
    • aptitude -y install libcurl4-openssl-dev flex bison automake libtool libtiff4 mtd-utils fakeroot make gcc sun-java6-jdk texinfo gettext g++ patch gcj zip libsox-fmt-mp3 subversion tar bzip2 rsync libncurses5-dev unzip lzma
  • Um Syntax-Probleme beim konvertieren der MoH-Dateien in das gsm-Format zu vermeiden, ist es ratsam, SoX 14.3.0 oder aktueller zu verwenden.
    • aptitude -V -t unstable install sox
  • Im Zweifelsfall:
    • sox --version
  • Entweder sun-java6-jdk oder openjdk-6-jdk verwenden

Checkout des Quellcodes

  • Der name horst-trunk ist natürlich frei wählbar und entspricht dem späteren Arbeitsverzeichnis:
    • svn co --username anonymous http://gforge.willwebhosting.de/svn/horstbox/Horstbox/trunk/build_env/ horst-trunk
    • cd horst-trunk

Individuelle Anpassungen

  • An dieser Stelle können eigenen individuelle Anpassungen vorgenommen werden.

ixp425-ledman.c

FIXME Achtung: In der aktuellen Revision (svn > 250) gibt es ein Problem im File: ixp425-ledman.c

  • Hier den String „ioctl“ gegen „unlocked_ioctl“ ersetzen.
  • Danach läuft make durch.

config.mk

Relativer Pfad: ../scripts/config.mk
Hier werden die im Makefile ausgewählten Pakete und Patches definiert:

spandsp

Wenn der build mit einer Fehlermeldung bzgl. libtiff abbricht, sollte man überprüfen, welche Version von libtiff auf dem hostsystem installiert ist. Einen guten Überblick erhält man beispielsweise mit:

aptitude search libtiff
Wenn mehr als eine Version installiert ist, kann dies zum Abbruch führen, siehe hier. Oft genügt es, die zusätzlich zu libtiff4 installierte Entwicklerversion libtiff4-dev du deinstallieren. Falls der build mit spandsp-0.0.6 immer noch nicht fehlerfrei durchläuft, kann auf spandsp-0.0.5 zurückgegriffen werden (siehe Forenbeitrag #342).
Beispiel:

SPANDSP_URL     = http://www.soft-switch.org/downloads/spandsp/$(SPANDSP_FILE)
SPANDSP_FILE    = spandsp-0.0.5.tgz
SPANDSP_DIR     = $(PWD)/spandsp-0.0.5
SPANDSP_PATCH   = patch.spandsp

WebIF

Toolchain

  • Auswahl der Pakete die in das Image sollen:
    • make toolchain_config
    • Je nach persönlichen Vorlieben kann z.B. der Text-Editor nano mit in das Image aufgenommen werden. Hierzu einfach in der Rubrik Package Selection for the targetText Editors die entsprechende Auswahl treffen, usw.

Asterisk Features verwalten

  • Siehe folgender Forenbeiträg von Peter (potc):
    • […] Um diverse Features in asterisk ein oder auszubauen muss im Verzeichnis scripts die entsprechende asteriskxxx.mk angepasst werden (xxx ist die Version) […]

Kompilieren der Firmware

  • Optional: Die Firmware kann in einem screen kompiliert werden, was den Vorteil bietet, die laufende SSH-Verbinung unterbrechen zu können, ohne dass make abbricht, siehe auch Forenbeitrag von Shadowrun.
    • aptitude install screen
    • screen
  • Starten des Vorgangs, dies kann mehrere Stunden dauern … :-D
    • make && make install
  • Wer nun wissen möchte, wie lange der gesamte Vorgang wirklich dauert, kann alternativ folgenden String verwenden:
    • time (make; make install)

Flashen der neuen Firmware

  • Nach dem erfolgreichen Erstellen der Firmware befinden sich zImage und main-fs im Ordner ~/horst-trunk/image/
  • Um die Horstbox mit der neuen Firmware zu flashen, müssen zImage und main-fs nach /tmp/ auf die Horstbox kopiert werden, z.B. mittels scp zImage main-fs 192.168.0.1:/tmp oder WinSCP
  • Nun ist der richtige Zeitpunkt, um Sicherungen einzelner Dateien auf der Horstbox vorzunehmen, z.B. den Inhalt von /etc/asterisk/ .
  • Um den Flashvorgang zu starten, folgende Befehle auf der Horstbox shell ausführen:
    • flashcp /tmp/zImage /dev/mtd/2
      flashcp /tmp/main-fs /dev/mtd/3
  • Der Flashvorgang kann ein bis zwei Minuten dauern (Geduld!)
  • Nach einem Neustart der Horstbox Pro sollte das neue Image verfügbar sein.
  • Wichtiger Hinweis: Es hat sich gezeigt, dass ein Neustart mit dem Befehl „reboot“ das frisch geflashte Image zerstören kann. Daher sollte die Box durch ziehen des Netzsteckers neu gestartet werden. Sonst hilft unter Umständen nur noch die serielle Konsole.
  • Viel Spaß!

Inbetriebnahme nach dem Flash

FIXME Hier bitte die Informationen zur ersten Inbetriebnahme mit der erstellten Firmware eingeben.

Konfigurationsbeispiele

  • Besonderheit seit Asterisk 1.6.1
    • Da sich das Context matching geändert hat, sollte man besonders darauf achten, dass der erste passende Context bei eingehenden Gesprächen angesprungen wird.

Alternativ: Flashen per serieller Konsole und xmodem

  • Die Horstbox Pro hat intern bereits eine serielle Konsole vorbereitet. Zur Verwendung benötigt man folgende Teile:
  • Die Pfostenbuchse verbindet man 1:1 mit dem Stecker.
  • Hier noch ein Hinweis wenn man das Flachbandkabel an einen D-Sub Stecker mit Lötösen anschliessen will:
  • Hier entspricht die Nummerierung des Steckers nicht der Nummerierung der Pfostenleiste!
    • In diesem Fall muss wie folgt verbunden werden:
    • Pfostenleiste Pin 3 –> D-Sub Stecker Pin 2
    • Pfostenleiste Pin 5 –> D-Sub Stecker Pin 3
    • Pfostenleiste Pin 9 –> D-Sub Stecker Pin 5 (Masse)
  • Per Nullmodem-Kabel (Buchse:Buchse) wird die serielle Konsole mit dem PC verbunden. Die Kommunikation erfolgt z.B. per HyperTerminal (Windows) oder per minicom (Linux):
    • 115200 Bits/s
    • 8 Datenbits
    • keine Parität
    • 1 Stoppbit
    • keine Flusssteuerung
    • kurz 115200 8-N-1
  • Nach der Aufforderung enter ^C to abort unterbricht man mit Strg+C (geht nur, wenn die Flusssteuerung deaktiviert wurde) worauf hin sich RedBoot meldet und Befehle entgegen nimmt:
  • +
    Trying NPE-B...no PHY found
    Trying NPE-C...success. Using NPE-C with PHY 1.
    Ethernet eth1: MAC address 00:03:47:df:32:aa
    IP: 0.0.0.0/255.255.255.0, Gateway: 0.0.0.0
    Default server: 0.0.0.0
    
    RedBoot(tm) bootstrap and debug environment [ROM]
    Red Hat certified release, version 2.02 - built 09:49:23, May  9 2006
    
    Platform: D-Link Horstbox Backpack (Maxina) (IXP42X 533MHz) BE
    Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
    
    RAM: 0x00000000-0x04000000, [0x00026250-0x03fc1000] available
    FLASH: 0x50000000 - 0x51000000, 128 blocks of 0x00020000 bytes each.
    == Executing boot script in 3.000 seconds - enter ^C to abort
    ^C
    RedBoot> 
  • Die Firmware kann nun nach dieser Anleitung geladen werden.
  • Hinweis für Einsteiger: Nach dem Befehl load wartet RedBoot auf die zu übertragende Datei. Den Vorgang startet man z.B. im HyperTerminal über das Menü Übertragung > Datei senden (Protokoll = Xmodem).

Rückmeldungen

  • Diese Anleitung ist als „Fahrplan“ für Einsteiger gedacht und soll den Anwender unterstützen, die Firmware aus dem jeweils aktuellen Quellcode zu erstellen.
  • Die Mitarbeit an diesem Dokument ist ausdrücklich erwünscht!
  • Hier geht es zur Diskussion: Forenbeitrag.
 
router/dlink/hortsbox/professional/openhorst.txt · Zuletzt geändert: 2011/08/10 22:01 von wilmsn
 
Impressum
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki