mini howto fuer flexibleren Asterisk Zugang

moepmoep

Neuer User
Mitglied seit
17 Aug 2007
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Wir brauchen ausser der HorstBox Professional einen 9-poligen RS-232 Adapter (z.B. Conrad ArtikelNr 976253), ein Null-Modem-Kabel (z.B. Conrad ArtikelNr 979970) und einen Rechner mit serieller Schnittstelle.
Die HorstBox sollte die aktuellste Firmware nutzen und ggf. aktualisiert werden.

Als erstes schrauben wir die HorstBox auf und stecken den RS-232 Adapter auf die groessere Platine. Die entsprechenden Kontakte findet man in "Verlaengerung " der LED-Reihe am Platinenrand. Richtig herum aufgesteckt befindet sich die rote Markierung des Flachbandkabels auf der Seite, wo die Kontakte der Platine mit 1 und 2 beschriftet sind, auf der anderen Seite steht 9 und 10.
Nun verbinden wir die serielle Schnittstelle unseres Rechners mit dem RS-232 Adapter ueber das Null-Modem-Kabel und starten ein Terminal-Programm, z.B. puTTY. Auf die serielle Schnittstelle muss mit speed 115200 zugegriffen werden, die Einstellungen 8 Datenbit, 1 Stopbit und kein (None) Paritybit sind i.d.R. voreingestellt.
(detailiertere Info dazu gibts hier)

Als naechstes schaffen wir uns einen SSH-Zugang. Dafuer erstellen wir z.B. mit puTTYgen ein private/public Schluesselpaar und fuegen unseren eben erstellten public key auf der Horstbox der Datei /etc/dropbear/authorized_keys hinzu.
Jetzt sollte man sich bereits z.B. mittels puTTY auf der Horstbox IP anmelden koennen, sofern man dabei den private key nutzt. Wenn das wie gewuenscht funktioniert, kann man diesen Zugang durch die Ausfuehrung von:
nvram -f /etc/dropbear/authorized_keys ssh.authorized_keys
dauerhaft ermoeglichen (sonst ist's nach dem naechsten reboot weg).

Auf der HorstBox fuehren wir nun
nvram -L | grep URL
aus und erfahren so, wo man das main-fs downloaden kann (derzeit: http://upd.dlink.de/hbx/pro/main-fs). Diese Datei downloaden wir auf einen Linux-PC und packen sie aus. Dafuer benoetigen wir dort die squashfs-tools, die Bestandteil der squashfs Software sind und ggf. separat kompiliert werden koennen. Jedoch ist squashfs meist in aktuellen Linux-Distributionen oder Live-CDs (z.B. grml) bereits enthalten. Der Aufruf von
unsquash main-fs
entpackt die Datei ins Verzeichnis squashfs-root. Darin findet man den Grossteil der auf der HorstBox befindlichen Dateien und passt diese nun an seine Wuensche an.
Wenn man z.B. in das Skript squashfs-root/etc.ro/hotplug.d/8.hotplug als letztes Kommando der add action folgendes hinzufuegt:
[ -e $mountpoint/myhorstconfig/run.sh ] && {
cd $mountpoint/myhorstconfig/
$mountpoint/myhorstconfig/run.sh
}

, dann wird bei jedem Anstecken eines USB-Speichers geprueft, ob darauf myhorstconfig/run.sh existiert und diese dann ggf. ausgefuehrt. Damit kann man beliebige Modifikationen zur Laufzeit vornehmen.
Um ein main-fs mit unseren Aenderungen (my-main-fs) zu erzeugen, fuehren wir anschliessend
mksquashfs squashfs-root my-main-fs -b
aus. Die so erzeugte Datei my-main-fs hinterlegen wir auf einem fuer die HorstBox erreichbaren WebServer als main-fs.

Nun stoppen wir auf der HorstBox ein paar Services:
/etc/init.d/ntp stop
/etc/init.d/snmp stop
/etc/init.d/stunc stop
/etc/init.d/httpd stop
/etc/init.d/asterisk stop

und vergroessern unser /tmp mittels
mount -o remount,mode=1777,size=32M -ttempfs tmpfs /tmp
Jetzt wechseln wir auf der HorstBox nach /tmp und downloaden unser main-fs mittels wget hierhin:
/tmp# wget http://mein-web-space/main-fs
Wenn das geklappt hat, koennen wir nun durch ausfuehren von
flashcp -v main-fs /dev/mtd/3
nvram -s
reboot

das eigentliche Update vornehmen (... bzw. im worst case die HorstBox schrotten). Anschliessend sollte HorstBox mal stromlos gemacht und "richtig" neu gestartet werden (zumindest meine brauchte das).

Immer wenn ich nun einen USB-Stick an die HorstBox stecke (bzw. auch beim booten), wird die darauf befindliche myhorstconfig/run.sh ausgefuehrt. Bei mir sieht die derzeit so aus:
#!/bin/sh
#
cp modules.conf /etc/asterisk/
cp iax.conf /etc/asterisk/
cp iaxprov.conf /etc/asterisk/
cp extensions.conf /etc/asterisk/
asterisk -r -x "restart now"
#

Viel Glueck
 
Kleiner Hinweis, für die Leute, die erst mal etwas ausprobieren wollen:
nachdem man den private key in /etc/dropbear/authorized_keys eingetragen hat muss man sicherstellen, das die Einträge auch beim Reboot erhalten bleiben.
Dazu erstmal
nvram -f /etc/dropbear/authorized_keys ssh.authorized_keys
ausführen, das schreibt die Variablenzuweisung.
Allerdings wird dabei nicht zwingend gleich ins physikalische NVRAM geschrieben.
Das geschieht erst mit
nvram -s

Hab mich gerade mehrfach durch einen Reboot wieder ausgesperrt gehabt - aber die serielle Konsole funktioniert ja auch so ...
 
hallo zusammen,

irgend wie funst das bei mir nicht mksquashfs verlangt ne block size, hab schon paar werte durchprobiert, bin leider zu keinem ergebnis gekommen. Hat vielleicht jemand einen tipp.

Bei mir krachts mit ner Kernel Panic.

Gruß Gregor
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.