OpenMesh/Robin Bugs & Ideas

ipkg

Error 404 on http://downloads.openwrt.org/snapshots/atheros/packages/Packages

cat /etc/ipkg.conf
src snapshots http://downloads.openwrt.org/kamikaze/8.09/atheros/packages/
dest root /
dest ram /tmp

Security

Node-spezifisches custom.sh

Jeder Knoten sollte ein spezifisch auf ihn oder sein Netzwerk zugeschnittenes custom.sh bekommen. Das ließe sich zwar auch über verschiedene Pfade realisieren, bei einem zentralen Dashboard wäre das aber sehr unkomfortabel. Leichter geht es mit Identifizierung per MAC-Adresse wie auch im checkin_batman.php.

diff -urNad /tmp/update-functionsA.sh.old /etc/update-functionsA.sh 
--- /tmp/update-functionsA.sh.old   Tue May 19 20:41:57 2009
+++ /etc/update-functionsA.sh   Tue May 19 20:40:45 2009
@@ -128,7 +128,7 @@
    CUSTOM_MD5=$WDIR/custom.md5
    [ -e $CUSTOM_MD5 ] || echo "$(md5sum /etc/robin_version | head -c 32)" > $CUSTOM_MD5   
    
-   wget "http://${custom_host}custom.sh" -O /tmp/custom.sh
+   wget "http://${custom_host}custom.sh?mac=$(uci get node.general.myMAC)" -O /tmp/custom.sh
    if [ "$?" -ne 0 ] ; then
        logger -s -t  "$ME" "custom download failed!"
        return 1

Dieser Diff lässt sich wunderbar in ein default custom.sh stecken, das ausgeliefert wird, wenn keine MAC übermittelt wurde. Beim nächsten Mal greift dann der Diff und die Mac wird übermittelt und als Antwort kann eine spezifische custom.sh ausgeliefert werden.

#!/bin/sh

sed -i -e 's|"http://${custom_host}custom.sh"|"http://${custom_host}custom.sh?mac=$(uci get node.general.myMAC)"|' /etc/update-functionsA.sh

Da das custom.sh nur ausgeführt wird, wenn sich seine md5sum ändert, muss in Skripte, die nach Dashboard-Änderungen erneut ausgeführt werden sollen, eine Revisionsnummer oder ähnliches eingebaut werden.

Watchdog / Softdog

In den ganz billigen Routern wie etwa Fonera gibt’s keinen Watchdog-Chip. Mit dem Kernel-Modul Softdog sollte man allerdings einen emulieren können. Solange also der Kernel läuft, könnte sich das System mittels Reboot retten.

To be tested.

Chilli

Sollte eigentlich seine Konfig vom Dashboard beziehen (das klappt auch) und damit /etc/chilli/config updaten. Das klappt nicht. Erst nach manuellem Reboot ist es okay.

To be checked.

DHCP

/etc/init.d/configure konfiguriert per default auschließlich den Knoten selbst als Nameserver in der /etc/isc-dhcpd.conf. Dies zu ändern ist einfach:

@@ -203,6 +203,7 @@
    option broadcast-address $BROADCAST;
    option routers $pippo;
-   option domain-name-servers $pippo;
+   option domain-name-servers $(uci get general.services.name_srv), $pippo;
    range $ap_s_lease $ap_e_lease;  
 }
 eof_iscdhcpd_conf
@@ -234,6 +235,7 @@
    option broadcast-address $BROADCAST;
    option routers $pippo;
-   option domain-name-servers $pippo;
+   option domain-name-servers $(uci get general.services.name_srv), $pippo;
    range $Myap_s_lease $Myap_e_lease;  
 }
 eof_iscdhcpd_conf

maradns

meckert über /etc/mararc:

upstream_servers["."]="ticky"

Durch IP-Adresse ersetzen!