Jaja, ich weiss, ich hab lange nichts mehr geschrieben - frohes Fest und guten Rutsch noch nachträglich ;)
Ich hab mir diese Woche endlich mein neues Handy gekauft - ein Nokia N900. Im Prinzip ist das ein Linux-Rechner mit Telefonfunktion im Smartphone-Format. Geiles Spielzeug. Worauf ich eigentlich hinaus will: Der /etc/resolv.conf auf dem Teil fehlt ein "search $localdomain", was dazu führt, dass Hostnamen im LAN vollqualifiziert angegeben werden müssen. In Bug
#995 ist ein Workaround beschrieben (die Zeile "domain-needed" in /etc/dnsmasq.conf auskommentieren). Hatte ich gemacht, anschliessend aber wieder zurück geändert, weil ich irgendwo was von Nebenwirkungen gelesen hatte und mich das mit den lokalen Domain-Namen eigentlich auch nicht gestört hat. Die eigentliche Falle kommt jetzt: Beim Update auf die aktuelle Firmware "PR1.1" wird unter anderem auch /etc/dnsmasq.conf" aktualisiert. Da ich die nun aber schon ange-toucht hatte, wurde sie nicht überschrieben. Stattdessen wurde die neue Version unter /etc/dnsmasq.conf.dpkg-dist angelegt. Wär an sich alles nicht problematisch. Wenn nicht genau bei diesem Versionswechsel die verbindungsspezifischen resolv.confs von /tmp nach /var/run verschoben worden wären. Denn genau die sind in /etc/dnsmasq.conf referenziert. Nach dem Update stand in meiner dnsmasq.conf nun also immer noch
resolv-file=/tmp/resolv.conf.wlan0
resolv-file=/tmp/resolv.conf.ppp0
resolv-file=/tmp/resolv.conf.lo
resolv-file=/tmp/resolv.conf.gprs
drin. Die Dateien existieren dort jetzt aber nicht mehr sondern in /var/run. In dnsmasq.conf.dpkg-dist zeigen sie korrekt auf
resolv-file=/var/run/resolv.conf
resolv-file=/var/run/resolv.conf.wlan0
resolv-file=/var/run/resolv.conf.ppp0
resolv-file=/var/run/resolv.conf.lo
resolv-file=/var/run/resolv.conf.gprs
Effekt: Die Internet-Verbindungen (GPRS, WLAN, ...) werden zwar aufgebaut, Namensauflösung funktioniert jedoch nicht mehr. Für unbedarfte User sieht das dann einfach nach einem "Update hat Internet kaputt gemacht" aus. Stattdessen wollte das Update lediglich nicht meine Änderungen überschreiben und hat dabei leider einen Folgefehler ausgelöst.
Lösung: Entweder die "/etc/dnsmasq.conf.dpkg-dist" nach "/etc/dnsmasq.conf" umbenennen und dabei die eigene Version überschreiben oder die Pfade der "resolv-file"-Einträge in "/etc/dnsmasq.conf" manuell von "/tmp" auf "/var/run" ändern. Ein Reboot ist nicht notwendig - ein "/etc/init.d/dnsmasq restart" (natürlich als Root) genügt.
Unter
http://talk.maemo.org/showpost.php?p=472596&postcount=56 hat das jemand schön zusammengefasst.
Fazit: Spiele nicht an Systemdateien eines Handys oder wisse, was du tust ;)
PS: Wär das N900 nicht ein ganz banales Linux-System incl. Terminal, hätte ich den Fehler sicher nicht so leicht finden können ;)
Update: Ich habs inzwischen übrigens wieder zurückgeschickt. Maemo war mir dann doch etwas zu exotisch. Ich warte jetzt noch, bis der Preis für das Motorola Milestone wieder etwas gefallen ist.