Ich habe einen alten iPod touch der zweiten Generation gefunden (ca. 2009 gekauft), den die Kinder nutzen können, Videos anzuschauen und Musik zu hören ohne dass die Eltern Gefahr laufen, dass wieder mal ein Tablet mit gebrochenem Display endet. Mit 128MB RAM und einem sehr betagten PowerVX-Grafikchip ist das Ding allerdings recht wählerisch bei den Codecs. Heruntergeladenes Videomaterial muss also erst einmal transkodiert werden, nach H.264 Baseline 3.0 mit AAC Audio. Dabei skaliere ich auch 320px Breite bei variabler Höhe.
Continue reading
Category Archives: Linux
Nuage – Arduino Yùn Bridge auf Debian (Raspberry Pi, Banana Pi)
Als ich den ersten Arduino Yún im Herbst 2013 in den Händen gehalten habe, war ich begeistert von der Eleganz der enthaltenen Bridge-Bibliothek. Die erlaubt es, den Yún per SSH zu programmieren und sie stellt viele Netzwerkfunktionen des Linux-Systems sehr simpel in Arduino bereit. Aaaaber: Das OpenWRT des Yún ist relativ unflexibel, RAM und Prozessor sind knapp und die Platine ist recht teuer.
Ich habe daher die Bridge-Bibliothek, die Scripte zum Flashen der Arduino-Seite und das Webinterface aus Yún herausgezogen, teilweise neu implementiert und auf Debian portiert. Unterstützt wird derzeit Wheezy mit SysV Init (Raspbian, Bananian), Ubuntu wird bald folgen.
www.arduino-hausautomation.de/nuage/
Post bei G+ (Arduino-Gruppe)
Ubuntu 14.10 auf dem Raspberry Pi 2
Cross-Post, Original ist hier: https://plus.google.com/u/0/+MattiasSchlenker1/posts/CBxSBLkspdv – dort bitte auch vorzugsweise kommentieren (hier schalte ich Kommentare nach ein paar Tagen ab).
Ich habe ein minimales Ubuntu 14.10 Image für den Raspberry Pi 2 erstellt. Das Image gibt es hier:
http://cdprojekte.mattiasschlenker.de/Public/PiBuntu/
Nehmt nach der Installation gparted, um die zweite Partition der SD-Karte zu strecken. Dann bootet den Pi und logt Euch als “root” ein (Passwort: “raspberry” – Achtung: US-Tastatur). Anschließend müssen noch die /etc/fstab und die /etc/network/interfaces und die /etc/apt/sources.list (Beispiel: https://gist.github.com/mschlenker/5f236a669c2177b9ee7e) angepasst werden. Besser auch einen unpriviligierten Nutzer anlegen, deutsche locales erzeugen undsoweiter:
adduser locale-gen de_DE.UTF-8 apt-get update apt-get -y dist-upgrade apt-get install xubuntu-desktop
Oder natürlich “lubuntu-desktop” oder “mate-desktop-environment”. Gerne auch nur lightdm und einen Windowmanager, warum nicht schlank loslegen? Mein Favorit ist übrigens http://i3wm.org/ mit dmenu (aus den suckless-tools)…
Wichtig: Das Image ist Pre-Alpha und nicht für Produktivsysteme empfohlen. Ich werde bei Gelegenheit Scripte fürs Kernel-Update ergänzen, Unterstützung für Banana Pi (der ist auch ARMv7) hinzufügen und erklären, wie man auf Basis dieses Images ein eigenes debootstrapt.
Medienstreaming: Vom Heimserver zur Chromecast
Wegen der anfänglichen Internetfixiertheit (frühe Firmware spielte nur Medien ab, deren URLs im Internet zugänglich waren) hält sich hartnäckig das Gerücht, dass die Chromecast nicht fürs lokale Medienstreaming geeignet ist. Des Gegenteils kann man sich leicht überzeugen. Einfach eine MKV-Datei mit h.264 Video und MP3 auf dem heimischen Webserver ablegen, dafür sorgen, dass diese Datei mit dem Mime-Type “video/mp4” ausgeliefert wird, dann die minimale Demo-App github.com/googlecast/CastHelloVideo-chrome auf dem Webserver ausrollen und die Seite in Chrome ansteuern. Nun können “Big Buck Bunny” und Co. auf die Chromecast gestreamt werden. Netterweise hat die Demo-App ein Eingabefeld, in das man die URL des oben erwähnten MKV eintragen kann – et voilá: Chromecast spielt lokale Dateien!
Um das ganze etwas komfortabler zu machen habe ich auf Basis der zweiten Demo-App, die einen Player mitbringt, etwas gescriptet: Zunächst ein Ruby-Script, welches eine Verzeichnisstruktur nach .mkv und .mp4 durchsucht und daraus ein (statisches) HTML baut. Dazu den Javascript-Code so angepasst, dass er geklickte Links ausliest und fertig ist das simple Webfrontend um Videos von NAS oder Heimserver zur Chromecast zu schicken.
Wer sich für die Scripte interessiert, findet sie hier: github.com/mschlenker/RollerCaster
Wer helfen möchte: Am meisten würde ich mich über durchdachte Mockups für die Überarbeitung der Oberfläche freuen!
PS: Nach Schmökern in der Doku ist klar, dass auch MPEG2-TS geht. Damit muss ich mal schauen, wie ich Live-Streams des TVheadend zur Chromecast bekomme.
Seitenprojekt: TinyCrossLinux
Mittlerweile hat es sich fast eingebürgert, für “kleine” Linux-Anforderungen ein Ubuntu oder Debian zu nehmen und dieses abzuspecken. Je nach Vehemenz landet man dabei meistens so bei 200MB, mit ein wenig Herumgetrickse auch mal bei 80 bis 100MB. Ich bin der Ansicht, dass nicht die Benutzung einer “klassischen” Distribution und deren Abspecken der beste Weg ist, sondern der Aufbau auf Null. Doch ganz auf den Morast einer unerschlossenen Sumpflandschaft möchte man nicht bauen – ich habe daher ein minimales Fundament erstellt, nicht viel mehr als eine Bodenplatte. Continue reading
Der twitternde Weihnachtsbaum
Ich habe bereits vor ein paar Wochen über mein neues Projekt geschrieben. Nun trägt es erste Früchte. Dank des Linux basierten Arduino Yún twittert unser Weihnachtsbaum:
www.arduino-hausautomation.de/category/horst-von-forst/
Alle Codebeispiele stehen im Blog bereit, bislang abstahiert das Bridge-API komplett vom Linux des Yún, das muss aber nicht so bleiben, ich werde mittelfristig auch Scripte auf der Linux-seite triggern.
Ein neues (Linux-) Projekt…
Ein neues Projekt wird gerade angegangen: Hausautomatisierung mit Arduino. Als Buch, bei Franzis. Was das Ganze mit Linux zu tun hat? So einiges. Zentrale Schalt- und Waltstelle im Buch wird wohl der Arduino Yún werden. Arduinos Einstieg in die Linux-Welt: Ein Atmega32u4-Microcontroller auf der einen Seite und ein MIPS basierter Linux-Rechner auf der anderen. MIPS kennen wir von DSL-Routern und einigen Smartphones. MIPS und Microcontroller kommunizieren über eine serielle Schnittstelle. Neu ist die enge Integration der beiden: Arduino 1.5.4 bringt eine Bibliothek mit, die es erlaubt, ganz ohne serverseitige Programmierung Arduino-Pins direkt per Webserver anzusteuern.
Und noch mehr Linux wird seinen Weg ins Buch finden: weil ich davon ausgehe, dass nicht jeder einen Yún kaufen will (weil er/sie bereits einen Raspberry Pi hat) oder kaufen kann (die nächste Lieferung wird Anfang Dezember erwartet und auch zum Buchstart gehe ich davon aus, dass nicht überall Yúns ausliegen werden), wird die alternative Schaltzentrale ein Raspberry Pi, der via I2C mit einem mit ihm verbundenen Arduino Uno oder Mega kommuniziert.
Das Blog zum Buchprojekt habe ich heute freigeschaltet, auf Wunsch geht es direkt zum heutigen Eintrag, einer Kurzvorstellung des Yún.
Caps Lock auf Shift umbelegen – Linux und Windows
Wozu dient bitte Caps Lock? Seit rund zwanzig Jahren fällt mir kein Grund mehr ein, diese Taste zu benutzen. Also belegen wir sie um.
Windows
Unter Windows verwendet man die Registry, um Caps Lock umzubelegen, der folgende Eintrag mach Shift draus:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,2a,00,3a,00,00,00,00,00
Einfacher: Hier die Registry-Datei herunterladen und per Doppelklick aufnehmen: http://cdprojekte.mattiasschlenker.de/Public/Windows_misc/disablecapslock.reg
Linux
Ich verwende eine ~/.xinitrc und darin die Zwei Zeilen:
xmodmap -e 'remove Lock = Caps_Lock' xmodmap -e 'keysym Caps_Lock = Shift_L'
Wer möchte, kann auch eine ~/.Xmodmap anlegen, die folgendes enthält:
remove Lock = Caps_Lock keysym Caps_Lock = Shift_L
und beim Start des Windowmanagers oder der Desktopumgebung sicherstellen, dass xmodmap gestartet wird und die ~/.Xmodmap verwendet wird.
VMware – UEFI-Boot simulieren
Mit weiteren Verbreitung von UEFI steigt die Relevanz, in Live-Distributionen den UEFI-Bootloader zu konfigurieren und zu testen und – als Autor – mit Screenshots Artikel zum Thema garnieren zu können. Bei mir betrifft das konkret das eigene Live-System LessLinux, derzeit primär ein Notfall- und Rettungssystem und die Multiboot-Linux-CDs, die ich für Verlage wie WEKA, Data-Becker, Heise erstelle oder miterstelle. Einen Teil der notwendigen Screenshots muss ich auf echter Hardware mit einer Capture Card erstellen (BIOS, UEFI-Setup). Für viele andere taugt die virtuelle Maschine.
Als Virtualisierungssoftware setze ich beim Desktop noch auf VMware, konkret den Player. Der ist nicht mehr kostenlos, aber dank Fusion-Lizenz ist er bei mir immerhin lizenziert (Unternehmen, die bislang den kostenlos nutzbaren Player einsetzten, müssen nach meiner Lesart der Lizenz pro Standort wohl rund 80€ investieren). Dass ich mittelfristig plane, auf VirtualBox zu wechsel, ist eine andere Geschichte.
Nun habe ich mich gewundert, dass ich weder in Fusion, noch im VMware Player irgenwo ein Option finde, BIOS/MBR oder UEFI/GPT als Firmware-Modell zu wählen. Es ist ganz einfach. Die .vmx-Datei, in der die Konfiguration gespeichert ist, lässt sich als einfache Textdatei an beliebiger Stelle um die Zeile
firmware = "efi"
ergänzen. Danach verhält sich VMware wie ein UEFI-Rechner, der vom Betrieb im CSM in den UEFI-Modus umgeschaltet wurde. Beim Neuaufsetzen virtueller Maschinen, bedeutet das, dass man zunächst zwar die Maschine konfigurieren, aber unbedingt “I will install the Operating System later” wählen sollte. Anschließend fügt man die EFI-Zeile in die VMX-Datei ein und startet dann die Installation im UEFI-Modus.
MokList gesemmelt, Boot unmöglich – MokList corruptet, boot impossible
Please scroll down for an English version!
In den letzten Monaten habe ich viele Experimente mit UEFI Secure Boot durchgeführt, mit so ziemlich allen Bootloadern und mit den gewonnenen Erfahrungen so einige Secure Boot kompatible Boot-Medien aufgebaut: Heise Desinfect, PC Magazin Superpremium 7/2013, Data Becker Linux Extra 5 und natürlich diverse LessLinux-Builds. Seit gestern ließen sich irgendwie nur originale Ubuntu- und Windows-Systeme booten, was für meine Zwecke natürlich ziemlich bescheuert ist. Der Grund: Die MokList im UEFI NVRAM, in der Shim und PreLoader.efi (respektive deren Schlüsselverwaltungstools) vom Nutzer freigegebene Schlüssel speichern, war irgendwie beschädigt oder einfach zu groß. Alle Schlüssel per UEFI Setup auf Werkseinstellungen zurückzusetzen, hatte keinen Effekt und KeyTool.efi hängte sich sofort auf. Wie weiter und die MokList löschen?
Ich habe herausgefunden, dass der einfachste Weg ist, entweder rEFInds flash drive image oder das demo image “sb-usb.img” der LinuxFoundation herunterzuladen und auf einen USB-Stick (per “dd”) zu ziehen. Damit bootet man bei deaktiviertem Secure Boot in die EFI Shell und gibt folgendes Kommando ein:
dmpstore -d MokList
Beim nächsten Start geht es mit einer leeren MokList weiter…
…and in English
The last months I did lots of experiments with UEFI secure boot and created some boot media that was secure boot compatible: Heise Desinfect, PC Magazin Superpremium 7/2013, Data Becker Linux Extra 5, various build of LessLinux with various bootloaders. Yesterday my MokList got corrupted or just too large – the MokList (or Machine Owners Key list is a database stored in the UEFI NVRAM that contains the keys and hashes that the owner of a machine added, for example when booting with Shim or PreLoader). Secure boot just worked with loaders that dit not access the MokList, which is not very useful for my purpose. Resetting all Keys via UEFI setup did not work. And KeyTool.efi just hung when editing the MokList. So how do I clear it?
I found out that the easiest way is to download either rEFInds flash drive image or the demo image “sb-usb.img” from the LinuxFoundation. Dd either of those to an USB thumb drive, disable secure boot in the UEFI setup and boot into the EFI shell. there you can simply delete the MokList with the command:
dmpstore -d MokList
Next time you boot, the MokList is empty/noexistent…
Bootfähigen USB-Stick für UEFI Secure Boot erstellen – 1. PreLoader der Linux-Foundation plus Gummiboot
Disclaimer: Dieses kleine Tutorial richtet sich an all jene, die entweder einen Admin-Stick mit verschiedenen Installern und Notfallsystemen erstellen wollen oder einfach eine Fingerübung suchen, um den Bootvorgang von UEFI Secure Boot besser nachvollziehen zu können. Die anfängliche Installation von LessLinux Search and Rescue kann nach und nach um weitere Linuxe erweitert werden. Als Bootloader verwende ich zunächst den unkomplizierten PreLoader.efi der Linux-Foundation in Kombination mit Gummiboot, möglicherweise folgt demnächst eine auf Shim (mit MOK) angepasste Anleitung. Auf den EFI-Boot von 32-Bit-Systemen möchte ich nicht eingehen, weil praktisch nur ältere Apple iBooks und MacMinis (CoreDuo, nicht Core2Duo) mit einem 32-Bit-EFI ausgeliefert wurden. Die paar Netbooks von Asus, die ebenfalls 32-Bit-EFI an Bord haben, sind in der Regel auf das CSM eingestellt (Compatibility Support Module = BIOS-Emulation zum Boot von MBR-Medien).
Hinweis: Auf dieses Tutorial folgt ein weiteres, das die hier gezeigte Konfiguration um GRUB erweitert (um 32-Bit-Systeme booten zu können) und eines, das erklärt, wie schließlich ein hybrider Stick entsteht, der auf MBR- und UEFI-Systemen startet. Wer aus dem dritten Tutorial das Optimum herausholen möchte, sollte eine dritte, 100 bis 200MB große, leere FAT32-Partition einplanen.
Wie bootet UEFI sicher vom Stick?
Der Vorgang von USB ist etwas einfacher als von Festplatte, zumindest wenn es sich um einen GPT partitionierten Stick mit einer einzigen FAT32-Partition handelt. In diesem Fall genügt es, eine Ordnerstruktur “BOOT/EFI” anzulegen, die den Bootloader “BOOTX64.EFI” enthält. Hintergrund dieser Vereinfachung ist wohl, dass es ermöglicht werden soll, alleine durch das Entpacken eines Zips mit den Bootdateien einen Stick bootfähig zu machen – aber das ist Spekulation, weder habe ich nachgeprüft welche UEFI-Implementierungen den einfachen Start unterstützen, noch habe ich getestet, ob in nennenswerten Stückzahlen USB-Sticks am Markt sind, die sowohl GPT als auch BIOS-MBR aufweisen. Continue reading
Das Gespenst UEFI Secure Boot
In den letzten Tagen hatte ich etwas Gelegenheit, mich mit UEFI Secure Boot näher zu beschäftigen: Ich erstelle bekanntlich die Notfall-CDs für einige Computerzeitschriften oder arbeite intensiv daran mit (von Computer Bild bis desinfec’t gibt es einige). Ziel war, alle aktuellen, von Microsoft signierten EFI-Loader unter die Lupe zu nehmen und auf ihre Praktikabilität abzuklopfen. Die gute Nachricht vorweg: Wer Ubuntu oder Fedora verwendet und keine Kernel selbst kompiliert, muss sich nicht mit dem Schlüsselmanagement herumärgern. Beide Distributionen verwenden einen von Microsoft signierten Loader (auf Basis von Shim), der wenigstens sicherstellt, dass GRUB2 und der anschließend geladene Kernel “vertrauenswürdig” ist. Zu Funktionsweise, Unterschieden und Restriktionen der verwendeten gepatchten GRUB2-Varianten hat sich Thorsten Leemhuis in der c’t 5/2013 zur Genüge ausgelassen. Wirklich spannend ist die Thematik aber für den Start selbst kompilierter Kernel, für kleine Distributionen, die verteilt und schnell entwickelt werden und für Administratoren, die Linux basierte Deployment- und Notfall-Systeme per Netz oder vom Wechseldatenträger starten wollen.
In diesem Beitrag möchte ich die eher theoretischen Hintergründe erläutern und Entscheidungshilfen geben, demnächst folgen dann Beiträge zur praktischen Umsetzung von Secure Boot eigener Kernel auf USB-Sticks, optischen Datenträgern und via Netzwerk. Continue reading
DVD nach MKV rippen
Dieser Blogpost soll in erster Linie eine Notiz für mich selbst sein, wie man eine DVD in eine MKV mit H.264-Video, Untertiteln und mehreren Audiospuren umwandelt. Ich verwende Stereo-Audio im MP3 kodiert – einfach weil an keinem unserer Abspielgeräte 5.1 Audio angeschlossen ist. Wer 5.1 haben möchte, kann gerne die rohen AC3-Spuren übernehmen. Die Beispiele legen alle Dateien im aktuellen Arbeitsverzeichnis ab. Daher empfehle ich, einen neuen Ordner anzulegen, der nach dem Merge von Audio- und Videospuren gelöscht werden kann.
DVD kopieren
Als allererstes kopiere ich die DVD mittels dvdbackup. Damit das mit CSS verschlüsselten DVDs funktioniert, muss eine entsprechende Version der libdvdcss installiert sein. Irgendwo unterhalb von /usr/share/doc gibt es ein Shell-Script, welches dies erledigt:
find /usr/share/doc -name '*css*.sh'
Üblicherweise kopiere ich die ganze DVD und nicht nur das Main-Feature. Das erledigt der Schalter “-M” wie “Mirror”, daneben sind Eingabegerät und Zielordner notwendig: Continue reading
Ubuntu 12.10 und VMware Workstation 9 oder Player 5
Die Kernelmodule von VMware greifen reicht stark in die Speicherverwaltung ein, beziehungsweise sind allergisch auf Änderungen an den APIs der Netzwerktreiber. Kommt ein Kernel nach Fertigstellung von VMwares Treiberpaket auf den Markt, gibt es lange Gesichter: VMware-Module lassen sich nicht kompilieren oder kompilieren und nicht laden oder VMware – und schlimmstenfalls der Kernel – stürzen ab. Für Nutzer von VMware Workstation 9 oder Player 5 gibt es hier Abhilfe:
Um den Patch anzuwenden, gegebenenfalls zunächst auf Ubuntu 12.10 aktualisieren, dann die VMware-Dienste stoppen:
service vmware stop
Anschließend den Patch entpacken und das enthaltene Script anwenden:
tar xvjf vmware9_kernel35_patch.tar.bz2 cd vmware9_kernel3.5_patch bash patch-modules_3.5.0.sh
Jetzt noch die Dienste neu starten, dann klappt es wieder mit dem VMware Player…
service vmware restart vmplayer
Ubuntu 12.04 auf GPT “debootstrappen”
Ein neuer Hetzner-Server – der wieder dank Xen fast 30 Linux-Instanzen aufnehmen wird – machte es erstmalig erforderlich, ein Linux remote auf einer großen Platte (größer als 2TB) zu installieren. Statt dem im Büronetz eingesetzten PXE-Netinstaller musste hier “debootstrap” zum Einsatz kommen – und es klappte fast auf Anhieb. Grund für die Neuinstallation war – mal wieder – der Wunsch, ein eigenes Partitionslayout vergeben zu können, eine Flexbilität, die Hetzner natürlich für das Standardimage nicht bieten kann. Ich entschied mich daher dafür, den Server mit aktiviertem Rettungssystem zu übernehmen. Das ist bei Hetzner Debian basiert, so dass “debootstrap” in Ubuntus Version mit wenigen Handgriffen installiert werden kann. Der einzige Haken: Festplatten über zwei Terabyte erfordern entweder eine GUID Partition Table (“GPT”) oder eben, dass man damit lebt, dass rund ein Drittel der Plattenkapazität nicht erhältlich ist. Ich entschied mich für ersteres. Continue reading
USB-Geräte im Netz durchreichen
Für einen Kunden arbeite ich gerade an einem Thin-Client-Netzwerk: Dünne, unter Linux laufende Clients sollen per RDP-Client auf Windows-7-Pro-Instanzen zugreifen, die gesammelt auf einem Xen-Host ausgeführt werden. Für die Nicht-Verwendung von Windows Server 2008 mit Terminaldiensten gibt es den simplen Grund, dass einige der eingesetzten Anwendungen nicht in Terminalserverumgebungen lauffähig sind. Der Haken an der Geschichte: Es muss ein komfortabler Zugriff auf lokale USB-Geräte – Speichersticks, Chipkartenleser und ähnliches – möglich sein.
Wir haben daher zunächst mit USB-Servern fürs Netz experimentiert, derartige Geräte gibt es für netto 30 Euro (Ein-Port-Versionen mit unbekanntem chinesischen Hersteller, z.B. bei Conrad) bis 300 Euro (zwei oder vier Ports, Hutschienenmontage, Industriequalität, PoE, z.B. bei WuT). Mir gefiel aber nicht, neben dem Thinclient ein weiteres Gerät mit eigenem Netzteil (günstige Geräte können kein PoE) am Arbeitsplatz zu haben und habe daher nach Softwarelösungen für Linux gesucht. Gestoßen bin ich zunächst auf die kommerzielle Software USB Redirector, die jedoch für unser Szenario mit 75 oder 89US$ je Arbeitsplatz zu Buche schlagen würde. Gelandet bin ich schließlich beim freien Projekt USBIP, das jedoch nicht ganz trivial zur Zusammenarbeit zu bewegen ist. Geschafft habe ich es dennoch, Testsystem ist ein Ubuntu 12.04, die im nachfolgenden Text beschriebenen Schritte dürften so auch auf andere Systeme mit Kernel 3.1 oder höher anzuwenden sein. Als Client habe ich bislang nur Windows probiert über meine Erfahrungen mit Linux werde ich ggf. später berichten.
Continue reading
Windows 7 oder Server 2008 als Xen domU (HVM)
Mit der besseren Integration von Xen in die aktuelle LTS Version von Ubuntu bietet es sich an, als Virtualisierungslösung auf den freien Xen zu setzen, wenn es darum geht, einen Windows TS (Terminal Services) oder RDS (Remote Desktop Services) Server im kleinen SOHO Netzwerk zu virtualisieren. Dieser Workshop setzt einen funktionierenden Xen-Host voraus, d.h. eine paravirtualisierte domU konnte bereits erfolgreich gestartet werden. Continue reading
Ubuntu 12.04 LTS als Xen Dom0 einrichten
Bislang habe ich Ubuntu immer mit den Vanilla-Sourcen von Xen eingerichtet, einfach weil der Support für Dom0 (priviligierte Domain) teils fehlte, teils veraltet und instabil war. 12.04 ist die erste LTS-Version, die sich zufriedenstellend “out of the box” als Domain 0 einrichten lässt. Mit verantwortlich ist, dass sich Kernel ab Version 3.0 auf dem Hypervisor Xen starten lassen, gepatchte spezielle Kernel sind heute überflüssig. Die Einrichtung ist recht geradlinig, lediglich einige Kleinigkeiten sind zu beachten.
Weniger geradlinig ist noch immer der Betrieb: Der Einsatz von HVM-Gästen benötigt VME- bzw. SVM-Erweiterungen des Prozessors (in billigen PCs hart per BIOS deaktiviert) und einige Grafikkarten mit KMS bereiten Ärger, genauso wie die proprietären Grafiktreiber von AMD und nVidia. Um schnell ein Demo-Virtualisierungssystem einzurichten, taugt Xen nicht (dafür sind VMware Player oder VirtualBox viel besser geeignet). Wer dagegen extrem flexible Servervirtualisierung mit geringem Overhead und hoher Flexibilität sucht, wird mit Xen jedoch fündig. Continue reading
Asus x101 – wieder ein echter Eee PC?
Seit einigen Tagen liefert Asus den Eee PC x101 aus. Die Eckdaten – vorinstalliertes Linux als Betriebssystem, extrem abgespeckte Hardware, 8GB Solid State Drive – erinnern an den ersten Eee PC, den 701. Aber auch der daraus resultierende Preis von 25% bis 30% unter der bisherigen Untergrenze und das geringe Gewicht von etwa 950 Gramm lassen Erinnerungen wach werden. Und 169€ brutto sind schwer zu unterbieten.
Linux zieht OS X um
Wir haben noch ein altes Powerbook (Unibody, 2008), bei dem die serienmäßige 160GB-Platte arg klein geworden ist. Die sollte nun gegen eine Momentus-Hybrid-Platte ausgetauscht werden. Geplant war, die Platte mit “dd” zu klonen und anschließend mit dem “diskutil” oder dem Festplattendienstprogramm zu strecken. Ging nicht, weil das Festplattendienstprogramm irritiert davon ist, dass die Schattenkopie der GPT nicht am Ende der Platte liegt.
Ich bin dann so vorgegangen:
-
Beide Platten mit einem SATA2USB-Adapter an den Linux-Desktop-Rechner angeschlossen
-
Mit
dd if=/dev/sdx of=/dev/sdy bs=1M
die alte (sdx) auf die neue (sdy) Platte geklont -
Mit
gdisk /dev/sdy
die Platte im GPT-Partitionierungstool geöffnet und eine Partition vom Typ 0700 auf dem Rest der Platte angelegt, mit w bestätigt – das korrigiert die Position der Backup-GPT -
Die Platte abgestöpselt und in den Mac eingebaut
-
Den Mac gebootet und dort im Festplattendienstprogramm die leere Partition gelöscht und die OS X Partition etwas gestreckt
Klappte prima und erspart mir eine Neuinstallation von OS X. Ich habe jetzt noch Platz, um demnächst Ubuntu drauf unterzubringen.
Cross compiling uClibc and busybox
There are a few articles from this blog that are old, but still known an read – even outside the small area of people speaking German. Thus this article written in English. My intention is to show how to cross compile uClibc and a BusyBox that is statically linked with this uClibc. The resulting BusyBox can be used to build some minimal Linux system. Around three or four Megabytes if you keep it really small. Nearly five years ago I wrote a tutorial on this topic (in German) on which I still receive feedback quite often. Since this tutorial is very outdated (module loading, initrd vs. initramfs, multiple initramfs), I plan to update it. This tutorial will show a quick alternative to get a working cross compiled BusyBox.
The content of this blog entry is partially based on the “semi official tutorial” how to cross compile BusyBox and partially on my experience with Linux from Scratch, especially Chapter 5 – Constructing a temporary system. At the time of this being written, I tried to make sure that very few patches are necessary – this will not always be the way, maybe GCC 4.7 will need more patches or BusyBox 1.19 does. uClibc 0.9.32 does not yet build cleanly on x86, thus I stay with uClibc 0.9.31.1 for this time: Continue reading
Randnotizen, 22. September 2010
So, heute mal etwas persönliche Randnotizen.
-
LessLinux: Die CD “DE-Cleaner-Rettungs-System” (Pressemitteilung) basiert auf meinem LessLinux. War viel Arbeit, weniger im technischen Sinne, mehr im Sinne der Koordination der Projektpartner. Ich bin handwerlich zufrieden mit dem Ergebnis, würde aber aber nach einer Zwischenauswertung der Leserfragen eine deutlich simplere Nutzerführung bevorzugen. Das war in der kurzen Projektphase nicht möglich, also bleibt es bei dieser Oberfläche. Ärgerlich: Es wurden wohl ein paar Tausend fehlgepresste Datenträger ausgeliefert, so dass ich bei Supportanfragen nie weiss, ob ein Problem nun eher auf problematische Hardware, meine Erkennungsroutinen oder eine kaputte CD zurückzuführen ist.
-
LessLinux, nochmal: Ich arbeite gerade an einer Funktion, die anhand von Strace-Logs prüft, auf welche Dateien während eines Builds zugegriffen wird und welche gesucht, aber nicht gefunden werden. Ziel ist ein Abhängigkeitsmanagement, welches auch vorschlägt, welche Bibliotheken vorher installiert werden, könnten, beispielsweise wenn ./configure zur Laufzeit anhand installierter Programme festlegt, welche Eigenschaften einkompiliert werden. Momentan läuft eine Analyse einer Glibc-Kompilation — die Strace-Logdatei hat 1,4GB oder 13 Millionen Zeilen und will natürlich komplett durchs RAM und dort analysiert werden…
-
Nokia: Wie etwas so sucken kann… Ich habe seit ein paar Tagen ein E5, Nachfolger meines E71. Schönere Kamera, bessere Nutzerführung, toller, übersichtlicher Email-Client. Flotter Webbrowser, spielt Youtube. 3.5mm Klinke. Aaaaber: Um VoIP einzurichten musste ich ein Zusatzprogramm runterladen. Mein Bluetooth-Keyboard will noch immer nicht. Auf der Nokia World stellt Ihr tolle Hardware wie das E7 vor, aber kein Wort zu MeeGo? Sicher ist Symbian^3 nicht wirklich schlecht, sogar richtig viel besser als S60 5th, aber das Highend bedient Ihr damit nicht!
-
Auf Wolken gehen: Peter Voit war ein Nachbarjunge, einer der großen, sechs oder sieben Jahre älter als ich. Irgendwie ist aus ziemlich vielen der Nachbarjungen (ich schließe mich da nicht aus) etwas geworden. Peter wurde Mitgründer von Transsolar und die machen nun Wolken. Das kann praktisch sein, wenn man die Lichteintrahlung in einem Gebäude beeinflußen will: Video bei Youtube.
Frischer LessLinux-Build zum Wochenende
So, in den letzten Tagen entstand wieder ein frischer LessLinux Development-Build. Neu sind vor allem die Funktion, dass das ISO-Image nicht nur dank ISOhybrid auch auf einem USB-Stick eingesetzt werden kann, sondern dieser beim Start gleich wieder mit einem FAT-Dateisystem versehen wird. Neu ist auch ein pvops-tauglicher Kernel und einige kleinere Änderungen an den Bootscripten, womit sich LessLinux nun als Xen domU booten lässt.
Einige weitere Modifikationen wie Bootsplash mit fbsplash, die demnächst in einem kommerziellen Derivat sichtbar sein werden, sind noch nicht aktiv. Hier geht’s lang zum Blogpost:
http://blog.lesslinux.org/fresh-development-build-isohybrid-conversion-and-boot-on-xen/
Ubuntu 10.04 als DomU (Xen) “debootstrappen”
Nach vier Jahren ist es mal wieder Zeit für ein kleines Tutorial zur Installation von Ubuntu-domUs via debootstrap. Dank Aufnahme der pvops-DomU in den Vanilla-Kernel bringt Ubuntu einen Kernel mit, der lediglich kleine Anpassungen am Initramfs benötigt, um sauber auf einem aktuellen Xen 4.0 zu starten.
Installation von Debootstrap
Zuerst muss debootstrap vorhanden sein, am einfachsten natürlich mit apt-get install debootstrap. Unter Ubuntu kann mit debootstrap auch die Folgeversion installiert werden. Debian-User können das Ubuntu-Debootstrap direkt von http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/ herunterladen und mit dpkg -i installieren. Nutzer von RPM-Distributionen sollten ein Konvertierungstool installieren oder Debootstrap direkt aus dem .tar.gz installieren.
Vorbereitung eines Images
Für Xen DomUs haben Sie die Möglichkeit, physikalische Festplatten oder deren Partitionen zu nutzen oder Festplattenimages zu verwenden. Bei den Images wiederum gibt es zwei Möglichkeiten: Tap-Disks, die wachsen können und beispielsweise VMware VMDK-Format unterstützen oder “Plain-Images”, die als Loopback-Device gemountet werden können. Ich empfehle bei Testkonfigurationen grundsätzlich und bei Produktivsystemen für die Systempartitionen Images von Partitionen. Die Gründe: Continue reading
Installation von Xen 4.0.1 mit pvops-Dom0 auf Ubuntu 10.04
Xen 4.0 hat einige interessante Features eingeführt. Am Auffälligsten dürfte die Umstellung des vom Xen-Projekt gepflegten Dom0-Kernels auf “pvops” sein. Es handelt sich dabei um eine Technologie, mithilfe derer ein Kernel erkennt, ob er auf “nacktem Metall” (“bare metal” = direkt auf Hardware) oder auf dem Xen-Hypervisor läuft. Für unpriviligierte Domains (domU) ist dieses Feature bereits seit geraumer Zeit im Linux-Kernel enthalten, für dom0s is es neu und muss über den Kernel des Xen-Projektes installiert werden.
Ich habe einmal testweise ein Setup auf einer AMD64-Maschine erstellt, auf 32-Bit-Systemen sind lediglich einige Kleinigkeiten anders: Der Kernel muss PAE-Support haben und es muss zwingend ein Prozessortyp ausgewählt werden, der über Virtualisierungserweiterungen verfügt. Da heutzutage kaum Rechner als Xen-Host zum Einsatz kommen dürften, die nicht 64-Bit-tauglich sind, sollte sich die Frage nach pvops-Dom0s auf 32-Bit-Hardware kaum stellen. Continue reading