Category: Linux

  • Randnotizen, 26. Juni 2009: LessLinux, Android, SkyOS

    Nach langer Abstinenz wieder einmal ein paar Randnotizen zu Dingen, die in den letzten Tagen so aufgefallen sind:

    • LessLinux: Auch mit “meiner” eigenen, lose auf Linux From Scratch aufbauenden Live-Distribution LessLinux ging es in den letzten Wochen in vielen kleinen Schritten weiter. Mittlerweile wird viel Standard-Netzwerk-Hardware automatisch erkannt, WLAN kann mit WICD angesprochen werden, einige eigene Ruby-Gtk-Scripte sorgen für eine komfortable Installation auf USB-Stick oder die Erstellung von Containern mittels Cryptsetup.

      Jetzt kommt die Stelle, an der Ihr helfen könnt: Bitte ladet Euch den aktuellsten Build herunter und erstellt ein Hardware-Protokoll. Mit diesem Hardware-Protokoll (es enthält die Ausgaben von lspci, lsusb und lshw), habe ich es leichter, die Hardwareerkennung zu verbessern.

    • Android: Das Handy-Linux kommt nun auch mit einem Native Development Kit, mit dem sich native Linux-Anwendungen erstellen lassen, die direkt auf dem Linux des Android und nicht auf der aufgesetzten Dalvik VM laufen. Insbesondere die Portierung von Emulatoren und einigen Spielen, die SDL verwenden, dürfte vom NDK profitieren.

      Unterdessen zeigt Android bereits erste Fragmentierungserscheinungen: HTC stellte auf dem eigenen Telefon eine erweiterte Oberfläche “Sense UI” vor, die leider nicht auf die Telefone mit Google Branding kommen soll. Mal gespannt, ob das Resultat bald drei verschiedene Adressbuch-APIs sind.

    • SkyOS: Bei SkyOS handelte es sich bislang um proprietäres ein Ein-Mann-Betriebssystem. Ein C++-lastig implementiertes OS für 32-Bit-x86, das mit einer gut durchdachten Architektur glänzen kann. Als Problem stellte sich in den letzten Jahren jedoch die Treiber-Unterstützung heraus, zuletzt kam die Entwicklung fast zum Erliegen. Nun hat der Entwickler Robert Szeleney einen radikalen Schritt gewagt und SkyOS auf einen Linux-Kernel und ein minimales Linux-Userland gestellt. Die Vorgehensweise erinnert etwas an NeXTstep bzw. MacOS X. Auf jeden lohnt es sich, ein Auge auf die weitere Entwicklung zu werfen. Mehr im Blog von Robert Szeleney

    • Netbooks: In den letzten Monaten hat sich hier wenig getan. Netbooks sind beinahe eine Commodity und unterscheiden sich nur noch im Preis. Die letzten Juli für 399 Euro verkauften Medion Akoya E1210 gibt es nun als B-Ware für 219 Euro. Da fällt es umso positiver auf, dass HP mit dem hübschen, wenn auch nicht ganz billigen HP 5101 zeigt, dass Alu und Magnesium im Understatement-Gehäuse noch ihre Berechtigung haben. Nachtrag, 30. Juni: Golem hat Details und Bilder der hierzulande verkauften Version mit UMTS.

  • Mal wieder: Mattias und Mobiltelefone

    Ach, wenn es doch so einfach wäre: Im letzten Jahr bin ich zum richtigen Mobiltelefon-Afficionado gereift, lieb gewonnen habe ich besonders das minimalistische F3 und mein ständig E71, das — dank wunderbarer Daumen-Tastatur — auch als mobile Blog- und Twitter-Maschine dient.

    Dennoch juckt es mich irgendwie in den den Fingern und ich hätte gerne ein zweites, etwas weniger vernünftiges “modernes” Telefon. Ein Spielzeug, an dem man sehen kann, was zur Zeit Stand der Technik ist: Location Based Services, Social Networking, Medienplayer, aber auch Geek-Spielzeug und ein wenig Testumgebung für eigene Programme. Heiss sind derzeit:

    • iPhone 3GS
    • Palm Pre
    • Nokia N97
    • T-Mobile G1
    • HTC Magic

    Dumm nur, dass alle irgendwie nerven: (more…)

  • Teilerfolg mit Broadcom BCM4312

    Ich habe am Wochenende die Stunde Zeit gefunden, mit der Broadcom unseres HP2133 zu experimentieren. Erfolgreich war ich schließlich mit Ndiswrapper und der aktuellen Version von HPs Treiber für XP. Mit den originalen Broadcom-Treibern konnte ich lediglich zuverlässig Kernelfreezes produzieren.

    Das Kuriose: Die Kontaktaufnahme mit meinen Netzen funktioniert zuverlässig nur mit einer /etc/wpa_supplicant/wpa_supplicant.conf und nur wenn ich den wpa-supplicant mit -d im Debug-Modus starte, einige Sekunden warte und dann den dhclient ausführe. Sowohl mit wpa-supplicant im stillen Background-Modus -B als auch mit dem Network-Manager schlägt die Verbindung fehl.

    Nichts wildes, erstelle ich halt ein kleines Shellscript, welches die Verbindungsaufnahme triggert. Was mich stutzig macht, ist das ich ähnliche Probleme — ebenfalls mit Ubuntu 9.04 mit meinem Medion Akoya E1210 habe. Der dort enthaltene Ralink-Chipsatz funktionierte mit älteren Ubuntu-Versionen problemlos.

  • LessLinux: Erste Alpha zum Download

    So, hier steht nun die erste Alpha zum Download bereit:

    http://cdprojekte.mattiasschlenker.de/Public/LessLinux/

    Das Live-System macht noch nicht viel mehr, als einen Xvesa-Server mit simplem XFCE 4.6-Desktop und Firefox 3.0.8 zu starten. Die meisten gängigen Ethernet-Treiber werden geladen und Karten per DHCP konfiguriert.

    Zum gegenwärtigen Zeitpunkt dürfte das System vor allem für Nutzer interessant sein, die Ideen für eigene Live-Distributionen (das Konzept der “narrow purpose” oder “single purpose distribution” für eingeschränkten oder auf eine Applikation spezialisierten Anwendungszweck) erwähnte ich ja schon. Die Distribution erstellt Hardware-Protokolle, mit denen auch technisch weniger versierte Nutzer einen Beitrag zur Weiterentwicklung leisten können.

    Cheatcodes in der Alpha (mit Tab im Bootmenü erreichbar)

    • toram=… Schwellwert in kB für das Kopieren ins RAM, wer es ganz vermeiden möchte, gibt einen unsäglich hohen Wert, bspw. 999999999999 an.
    • skipcheck=1 Überspringt die SHA1-Prüfung von Bootdateien und Container
    • skipservices=|service1|service2|…| Überspringt den Start einzelner Dienste, hier kann bspw. dropbear entfernt werden, damit der SSH-Daemon auf Port 22222 startet.
    • xmode=BREITExHOEHE[xFARBTIEFE] Bevorzugte Bildschirmauflösung für den Xvesa-Server, hier kann bspw. 1680×105 oder 1280×800 übergeben werden, um die native Auflösung eines Breitbild-Displays zu verwenden.
    • rootpwhash=… MD5-Hash des Root- und Userpasswortes, bspw. mit openssl passwd -1 erzeugt. Standardhash entspricht dem Passwort test

    Hardwareprotokoll

    Beim Start wird in /tmp/ eine Protokolldatei hwinfo.unkown.zeitstempel.tgz angelegt. Wenn beim Start ein USB-Stick anwesend ist, der einen Ordner hwinfo enthält, wird die Datei automatisch dorthin kopiert. Ich wäre dankbar, diese Hardwareprotokolle von möglichst vielen Rechnern zu erhalten. Außer der MAC-Adresse von Netzwerkkarten und dem Partitionierungsschema (Ausgabe von fdisk -l) enthalten diese Dateien keine eindeutig einem bestimmten PC zuordnenbare Informationen — ich behandle die Hardware-Protokolle natürlich vertraulich.

    Bitte schickt mir Eure Hardware-Protokolle per Mail an ms@mattiasschlenker.de. Falls Ihr mit CD und Stick von Rechner zu Rechner zieht, könnt Ihr auch mit dem Cheatcode hwid=modell (bspw. hwid=akoya_e1210) eindeutigere Dateinamen ereugen lassen. Falls Ihr einen Webmailer nutzt, könnt Ihr natürlich auch die Datei in /tmp ohne Umwege versenden.

    Boot von USB-Stick

    Wenn ein Stick mit Syslinux bootfähig vorbereitet wurde, genügt es den Inhalt der CD auf den Stick zu kopieren.

    Und weiter?

    Im Laufe des Wochenendes folgen die vollständigen Quellcodes und nächste Woche dann eine erste Version der Build-Umgebung.

  • Linux-Distribution oder Auto — der Aufwand, es zusammenzubauen ist etwa der gleiche

    Ich hatte vor gut zehn Jahren das Vergnügen hin und wieder am Aufbau von Autos mitwirken zu dürfen. Das waren entweder Oldtimer oder wüste Rekombinationen vorhandener Teile, also der Bodenplatte eines Schräglenker-Käfers mit Subaru- oder Alfa-Romeo-Wasserboxern, Porsche-Schräglenkern und was sonst noch so herumliegt. Darauf kommt eine Karrosserie, die vom Radstand her eben passt, gerne auch mal aus Fiberglas. Heute würde man wahrscheinlich noch eine Megasquirt in den Ring werfen, und erstmal einen gepatchten GCC dazu verwenden, Firmware zu kompilieren.

    Damit sind wir schon ziemlich nahe am Thema: Auch eine Linux-Distribution besteht aus “am Markt erhältlichen Komponenten”, die einfach zusammengefügt werden müssen — in der Theorie. Primär aus Neugier, aber auch weil das eine oder andere Projekt, an dem ich arbeite, eine simple “single purpose live distribution” erfordert, habe ich vor etwa zwei Jahren damit angefangen, eine Distribution auf Basis von BusyBox und einer minimalen Ramdisk aufzubauen.

    In den letzten Wochen hatte ich etwas Zeit, daran weiterzuarbeiten und habe ein rudimentäres Paket- und Abhängigkeitsmanagement und eine Buildumgebung für ein glibc basiertes Rootdateisystem drumherum gebaut. Daraus ist bislang ein kleines Desktopsystem mit Xvesa und XFCE 4.6 entstanden, das derzeit 50 bis 70MB Squash-Container belegt und in einer bekannten Umgebung (nur wenige Kernelmodule werden geladen) etwa 12 Sekunden bis zum Desktop braucht. Kompiliert wird in einer Chroot-Umgebung, was die Integration neuer Pakete recht einfach macht: man kann jederzeit eine Kopie der Chroot-Umgebung erstellen, reinwechseln, basteln und das resultierende Buildscript sichern. (more…)

  • Das erste (?) Linux-Botnet

    Durch einen Artikel auf Linuxdevices.com bin ich auf eine kurze Reportage zu einem Linux-Botnet aus “geknackten” Kabel- und DSL-Routern gestoßen: Larry Seltzer berichtet in der eWeek von einem Psyb0t getauften Netz, das ausschließlich aus DSL- und Kabelroutern der MIPSEL-Architektur basiert.

    Betroffen sind offensichtlich Router mit schwachen Administrationspasswörtern, bei denen teilweise das Administrationsfrontend auf der WAN-Seite zugänglich war. Offenbar fand keine Modifikation des persistenten Speichers statt, so dass ein harter Reset genügt, um dem Spuk ein Ende zu bereiten — das Botnet soll abgeschaltet sein und keine weiteren Router identifizieren. Mit Routern wie der FRITZ!Box hätten die Botnet-Programmierer die Möglichkeit gehabt, durch ein paar Zeilen in der /var/flash/debug.cfg die Änderungen zu speichern.

    Angesichts der weiter steigenden Fähigkeiten moderner DSL-Router, die als Datenablage im Heimnetz dienen und mittlerweile moderate Rechenleistung bereitstellen, entsteht ein interessantes Bedrohungsszenario, bei dem gehackte Boxen den Datenverkehr belauschen, Mail- oder Login-Passwörter für Shoppingportale über unverschlüsselte Verbindungen abhören oder Spam verschicken — einzelne Spam-Mails, Listen mit Mailadressen und einen SMTP-Client für den Versand, der auch mit Queueing auf Greylisting reagiert, lassen sich in wenigen hundert kB unterbringen.

    Seltzer behauptet, dass der Hauptgrund dafür, dass es keine Botnets für Linux-Desktops gibt, darin liegt, dass der durchschnittliche Nutzer erfahrener als sein Windows-Kollege ist. Dem kann ich mich weitgehend anschließen. Nicht ganz d’accord bin ich mit der Behauptung, dass es sich um das erste Linux-Botnet handelt: Viele schlecht gewartete und anschließend “aufgemachte” Linux-Rootserver, die zum Spam-Versand oder für Wörterbuch-Passwort-Attacken missbraucht werden, weisen Botnet-Charakter auf — auch wenn es sich meist nur um Dutzende bis wenige Hundert beteiligte Rechner handeln dürfte und nicht um eine sechsstellige Zahl wie im vorliegenden Fall.

  • HP2133 — kein Austausch der Netzwerkkarte

    Weil Broadcoms BCM4312 unter Linux Ärger bereitet wollte ich sie gestern gegen eine Intel 4965AGN austauschen. Allerdings muss man, um an die an der Unterseite des Mainboards befindliche WLAN-Karte heranzukommen, das Gerät komplett zerlegen. Mit dem Repair and Maintenace Manual geht das erstaunlich gut. Man benötigt lediglich einen Satz Feinmechanikerschraubendreher, kleine Torx-Schlüssel, einen flachen Schraubendreher für die Kunststofflaschen und etwas Zeit.

    Die Ernüchterung kam dann, als das Mini-Note über fünf Minuten bis zum BIOS gebraucht hat: Das BIOS erkennt die Karte nicht und weigert sich, diese anzusprechen. Also die ganze Prozedur nochmal von vorne und Broadcom-Karte wieder reingebaut. Jetzt muss ich mal bei HP nachfragen, ob es einen versteckten BIOS-Menüpunkt gibt, mit dem sich andere Karten einstellen lassen. Wenn dann ein weiterer Versuch mit der Intel-Karte fällig ist, weiss ich, dass ich soviel Übung habe, dass Zerlegung und Zusammenbau in einer Viertelstunde erledigt ist.

    Achja: Die Festplatte ist keine 1,8er, sondern eine normale 2,5er. Hier existiert also noch Upgradepotential. Zudem sind RAM und Platte nach Ausbau der Tastatur erreichbar und folglich auch von ungeübten Schraubern schnell getauscht.

  • Via zurück im Netbook-Spiel?

    Via kommt Netbook-Herstellern sprichwörtlich entgegen: Mit dem fertigen Netbook-Motherboard “Via Surfboard” sollen auch Hersteller, die wenig Erfahrung mit dem Aufbau komplexer Systemplatinen haben, vom Netbook-Boom profitieren können. Weil lediglich ein Gehäuse entworfen werden muss, dürften sich auf diesem Board basierende Geräte auch in kleineren Serien lohnen. Denkbar wären beispielsweise “Rugged Netbooks”, mit geringen Änderungen (Verzicht auf das Touchpad auf der Rückseite) auch Tablets mit neun oder zehn Zoll, aber auch einfache Kiosksysteme, bei denen das Netbookboard unter der Tastatur liegt und gleich das Touchpad bereitstellt.

    Wie Vias Vorstoß angenommen wird, bleibt abzuwarten. Der OpenBook-Standard ist zwar eine tolle Idee, wurde aber von der Industrie kaum angenommen. Immerhin hat sich in den letzten Monaten einiges getan: Via hat Harald Welte als OSS-Beauftragten ins Boot geholt und auch die Linux-Treiberunterstützung macht gewaltige Fortschritte. So ist das fertige Mainboard auch für die Hersteller von Billiggeräten, welche die Windows-Lizenz sparen sollen, eine Option.

    Ein wenig skeptisch bin ich hinsichtlich der Zukunftsfähigkeit der Prozessor-Chipsatz-Kombination: Zwar ist der VX855 mit der MPEG-Hardwarebschleunigung in der Northbridge “HD tauglicher” als der dem Atom meist zur Seite gestellte GMA945/950, als Prozessor selbst wird jedoch noch der C7-M ULV verwendet, der im 90nm-Prozess hergestellt wird (Atom 45nm). Einen stromhungrigen Prozessor steht also ein recht leistungstarker und sparsamer Chipsatz zur Seite — beim Atom ist es noch genau umgekehrt.

    Update, 20. März 2009: Auf YouTube findet sich ein Video von HowtoBeMobile.com, in dem das Board vorgestellt und in der Praxis demonstriert wird: (more…)

  • Hardware, die saugt — heute: Broadcom 4312

    Weil EeePC und Akoya derzeit als Testumgebung benutzt werden und ein ständiges Hin- und Her-Imagen mit Test- und Produktivsystemen nervig und zeitaufwendig ist, habe ich bei einem Billigangebot in Form eines HP2133 zugeschlagen. Das Gerät ist gut verarbeitet, hat eine 1,8-Zoll-Festplatte und erreicht unter Linux auch passable Akkulaufzeiten. Und vor allem ist es so exotisch, dass kaum Gefahr besteht, dass es als Testumgebung mißbraucht wird.

    Installiert habe ich Ubuntu 9.04 (Jaunty) Alpha 6, natürlich per Netinstall, schließlich wird der Broadcom Tigon bereits von der Installations-Initrd unterstützt. Handarbeit war bei der xorg.conf notwendig, da auch mit dem Openchrome-Treiber X dachte, das Panel habe 1366×768 Pixel Auflösung. Die xorg.conf reiche ich nach kann hier heruntergeladen werden. Auch Sound funktioniert einwandfrei, die Webcam habe ich noch nicht getestet ebenso.

    Ärgerlich ist die WLAN-Karte Broadcom BCM4312

    PCIID: 14e4:4315

    die weder vom bc43-Treiber des Kernels erkannt wird, noch von dem von Ubuntu mitinstallierten wl.ko, noch von einem selbstgebauten wl.ko von Broadcoms Webseite. Auch mit Ndiswrapper kein Erfolg. Einmal konnte ich einige Sekunden lang pingen — nachdem ich direkt von Windows nach Linux mit wl.ko gebootet habe. Auf einem cleanen System (Akku raus und Stützkondensatoren leeren vor dem Anschalten) ging gar nix.

    Ich bin am Überlegen, ob ich die 30 Euro in eine gescheite Mini-PCI(e)-WLAN-Karte investieren will, schrecke aber ein wenig davor zurück, das ganze HP2133 zu zerlegen, um an die unter dem Motherboard verbaute Karte heranzukommen. Sinnvoll wäre es vielleicht schon angesichts der auch unter XP schlechten Empfangsleistung.

    Vielleicht hat jemand eine Idee, eine Version des STA-Treibers, die mit bestimmten Kernelversionen harmoniert (notfalls Vanilla 2.6.27 oder 2.6.29-RC) oder einen Treiber, der sich mit Ndiswrapper ohne Probleme verwenden lässt? Ansonsten werde ich wohl noch ein paar Tage auf WLAN verzichten (nicht wild, weil das Gerät eh im Außeneinsatz verwendet wird) und mich dann ans Zerlegen machen.

    Update, 19. März: Gleiches Problem mit 2.6.27.20 und Broadcoms Binärtreiber (ja, die als Source veröffentliche Layer ist ziemlich dünn) 5.10.79.10: Beim Insmod bekomme ich in der Ausgabe von “dmesg” einen “Error 13”. To be continued, zunächst stehen andere Baustellen auf dem Programm.

  • Busybox-Merkwürdigkeiten

    Kann sich jemand dieses verhalten der Shell ash der Busybox erklären?

    http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20090307_busybox_ash.png

    Zweimal wird mit Backticks die Ausgabe eines Befehls in eine Variable eingelesen. Einmal ein simples echo, einmal ein ganzes Script, das ein paar verschachtelte if und case hat. Beim einfachen echo evaluiert grep korrekt zu true, beim Script nicht.

    Ich habe jetzt einen Workaround, bei dem ich nicht per Übergabe eines Parameters die Startup-Scripte sagen lasse, was sie tun, sondern verwende speziell formatierte Kommentare, die ich direkt greppe. Das ganze ist Teil eines etwas umfangreicheren, modularen Mini-Linux, an dem ich gerade arbeite — mehr dazu in den nächsten Tagen.

    Wer mit meinem Build der Busybox spielen möchte: busybox-1.13.2-static-ulibc-i686.tar.gz