Category: Tips und Tricks

  • 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. (more…)

  • 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…

  • 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: (more…)

  • 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:

    http://communities.vmware.com/servlet/JiveServlet/download/2103172-94260/vmware9_kernel35_patch.tar.bz2

    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.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:

    http://communities.vmware.com/servlet/JiveServlet/download/2103172-94260/vmware9_kernel35_patch.tar.bz2

    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
  • 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:

    1. Beide Platten mit einem SATA2USB-Adapter an den Linux-Desktop-Rechner angeschlossen

    2. Mit
      dd if=/dev/sdx of=/dev/sdy bs=1M
      die alte (sdx) auf die neue (sdy) Platte geklont

    3. 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

    4. Die Platte abgestöpselt und in den Mac eingebaut

    5. 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: (more…)