Archiv zur Kategorie Linux

DVB-T im Raum Köln/Bonn

Ich hab mir heute einen USB-DVB-T-Stick gekauft, nennt sich Hauppauge WinTV Nova-T Lite. Funktioniert hervorragend unter einem aktuellen Linux-Kernel (wenn man erstmal das richtige Modul kompiliert hat, dann fehlt nur noch die Firmware), allerdings sind die Frequenzinformationen für die Region Köln/Bonn nicht ganz aktuell.

In der /usr/share/dvb/dvb-t/de-Koeln-Bonn musste ich den Eintrag für 698 MHz anpassen, um die dritten Programme zu bekommen (Google sei Dank). Die entsprechenden Datei von Kaffeine, ~/.kde/share/apps/kaffeine/dvb-t/de-Koeln-Bonn, war offenbar noch älter; dort fehlte auch noch 706 MHz – und damit unter anderem Das Erste und Phoenix. Folgende Datei liefert sowohl mit dvbscan als auch mit Kaffeine alle Sender:

# DVB-T NRW/Bonn
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
T 650000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
T 698000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
T 826000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE

Die kleine Antenne, die dabei war – von der ich dachte, ich bräuchte sie nicht –, ist übrigends auch nicht schlecht, genauer gesagt sogar besser als das Riesending, das ich bisher für meinen DVB-T-Receiver hatte.

Nachtrag: Noch etwas mehr, wie man das Ding zum laufen bekommt: das Modul, das man braucht, heißt dvb-usb-dib0700, erreichbar in der Kernel-Konfiguration unter Support for various USB DVB devices, Punkt DiBcom DiB0700 USB DVB devices. Einen Link zur benötigten Firmware und weitere Informationen findet man im LinuxTVWiki.

Comments off

Kerneloptionen suchen

Ein gewisser Frank Paulsen schrieb heute in de.comp.os.unix.linux.misc (Message-ID <gdrrol$86n$1@ebel.dfakt.de>):

in ‚make menuconfig‘ kann man seit ein paar versionen mit ‚/‘ nach optionen suchen.

Stimmt. Praktisch. Im Usenet lernt man jeden Tag was dazu.

Comments off

Wikimedia-Server laufen zukünftig nur noch unter Ubuntu

Früher herrschte im Rechenzentrum der Wikimedia Foundation in Tampa, Florida ein ziemliches Durcheinander: praktisch alle Server benutzten Linux, aber unter verschiedensten Distributionen. In den letzten zwei Jahren wurde zwar schon fleißig daran gearbeitet, das zu ändern, aber jetzt geht es ans Eingemachte: auch die Webserver werden auf Ubuntu 8.04 umgestellt.

Den umfangreichsten Bericht hat Computerweek, allerdings nur in Englisch. Einen wirklich guten deutschsprachigen Bericht konnte ich nicht finden; Heise hat noch garnichts, und der Artikel bei Golem ist sehr kurz. Ich versuche mal, das wichtigste dazu zu schreiben – auch für diejenigen, die nicht soviel Ahnung von der Materie haben.

Ubuntu ist eine Linux-Distribution, die wiederum auf Debian basiert. Beide Distributionen sind heute sehr beliebt, Debian klassischerweise auf Servern, Ubuntu auf Desktop-Rechnern. Sie haben beide den Vorteil, kostenlos zu sein. Außerdem werden (bei Debian generell, bei Ubuntu für die so genannten LTS-Versionen) noch über Jahre Sicherheitsupdates angeboten, bei Ubuntu 8.04 LTS immerhin fünf Jahre.

Ubuntu auf Servern war mir ehrlich gesagt eher neu; aber ich hab in einem IRC-Log, das Aryeh Gregor auf Wikitech-l gepostet hat, eine schöne Aussage dazu gefunden:

Es ist Debian, aber mit einem vorhersagbaren Veröffentlichungszyklus.

Sprich: man weiß schon auf Monate im Voraus, wann die nächste Version rauskommt.

Ich hatte auch irgendwo ein Zitat von Brion Vibber gesehen – ich finde es leider nicht mehr wieder –, dass es praktisch ist, dieselbe Distribution auf den Servern zu benutzen, die viele der Server-Admins auch zu Hause einsetzen.

Die Umstellung soll sich jedenfalls lohnen. Ich zitiere Brion Vibber:

Wir können überall dieselbe Kombination laufen lassen, und sie macht dasselbe. Alles ist eine Million mal einfacher.

Comments off

Aktuelle Wikipedia-DVD unter Linux (2)

Mittlerweile habe ich die Datendateien, und dabei leider festgestellt, das die Binärversion doch nicht funktioniert. Sie startet zwar, stürzt aber beim ersten Zugriff ab. Auch die build.sh will nicht so recht. Ich habe selbst rumprobiert, bevor ich diesen Kommentar zum ersten Blogeintrag zu diesem Thema gerade eben freigeschaltet habe. Ich hatte zwar ähnlich auch selbst Erfolg, aber Jan hat es gut aufgeschrieben. Meine eigener Entwurf für eine Anleitung unter Benutzer:Dapete/TntReader unter Gentoo Linux, die entgegen des Seitentitels auch für andere Distributionen sinnvoll sein dürfte, ist nur leicht verändert. Was zählt ist, dass es funktioniert.

Comments off

Aktuelle Wikipedia-DVD unter Linux (1)

Die gerade in neuer Version erschienene Wikipedia-DVD ist endlich auch unter Linux (und MacOS X) direkt nutzbar. Das Prinzip ist das gleiche wie bei der Windows-Version: man startet einen kleinen Webserver, der seine Informationen aus den .zeno-Dateien der DVD bezieht und dem Benutzer per Webbrowser in einer Umgebung präsentiert, die der Wikipedia ähnelt.

Das Programm, das unabhängig vom Windows-Programm ZenoReader entwickelt wurde, nennt sich TntReader. Auf der Mitgliederversammlung von Wikimedia Deutschland Ende Juni hatte Entwickler Tommi Mäkitalo eine noch nicht ganz fertige Version vorgestellt, und die war schon gut. TntReader basiert auf seinem Webserver-Framework Tntnet. Mitgeliefert wird eine vorkompilierte Version für Ubuntu 7.0.4/x86 und natürlich der Quellcode.

Der Versuch, das ganze selbst zu kompilieren, scheiterte bisher. build.sh brach beim Kompilieren von Cxxtools ab. Da ich Gentoo verwende, gibt es zumindest Cxxtools und Tntnet auch als Distributions-eigene Pakete. Die ließen sich installieren, hier klappte dann das Kompilieren des Readers selber nicht. Wenn ich Zeit finde, will ich nochmal gucken, was genau beim Kompilieren schiefgeht.

Schließlich habe ich die mitgelieferten Binaries verwendet. Allerdings muss ich TntReader wie folgt starten, sonst werden die Libraries nicht gefunden:

LD_LIBRARY_PATH="." ./TntReader

Wirklich testen konnte ich das ganze leider noch nicht, denn die Datendateien fehlen mir noch. 75 % sind fertig, der Rest kommt über Nacht (dauert mit DSL 1000 halt etwas länger).

Kommentare (1)

Unter Linux auf x86-Systemen HIGHMEM vermeiden

Ich will nicht behaupten, dass ich das Problem bis ins letzte verstehe, aber Fakt ist: auf x86-Systemen ab 896 MB RAM hat man unter Linux ein Problem: HIGHMEM. Worum geht es?

Da es in der x86-Architektur nur 4 GB Adressraum gibt, muss man den irgendwie aufteilen. Linux benutzt dafür normalerweise eine Aufteilung namens 3G/1G: Jeder Prozess im Userspace kann 3 GB Speicher logisch ansprechen, der Kernel 1 GB. Der Kernel muss aber irgendwie auf den gesamten physikalischen Speicher zugreifen können: um das zu erreichen, wird von dem Speicher, der über 1 GB hinausgeht – HIGHMEM genannt –, immer nur ein Teil in den Kernel-Adressraum eingeblendet. Wer noch mit DOS gearbeitet hat, wird sich an EMS erinnern, das funktionierte im Prinzip genauso.

Bei 2.4er-Kerneln wurde bei 1 GB Speicher noch geraten, aus Geschwindigkeitsgründen lieber HIGHMEM komplett abzuschalten und nur 896 MB zu nutzen, als mit 128 MB HIGHMEM zu leben. Bei 2.6er-Kerneln soll das nicht mehr so schlimm sein, aber genaue Zahlen konnte ich nirgendwo finden. Hier muss jeder abwägen, ob er mit den Problemen (dazu später) leben kann.

Lösung

Seit Kernelversion 2.6.16 gibt es die Möglichkeit, diese Aufteilung zu ändern. Als Gentoo-Nutzer ist der Kernel eh selbstkompiliert, also kein Problem, auch wenn die Option gut versteckt ist. Man muss zunächst folgendes aktiviert haben:

General setup --->
[*] Prompt for development and/or incomplete code/drivers

[*] Configure standard kernel features (for small systems) --->

Dann kann man auch das hier einstellen:

Processor type and features --->

Memory split (…) --->

In diesem Unterpunkt hat man dann die Wahl zwischen den verschiedenen Aufteilungen (diese gibt es in 2.6.23):

  • 3G/1G (896 MB ohne HIGHMEM),
  • echtem 3G/1G (damit ist wirklich 1 GB ohne HIGHMEM möglich),
  • 2G/2G (2 GB − 128 MB),
  • „echte“ 2G/2G (2 GB) sowie
  • 1G/3G-Aufteilung (3 GB − 128 MB ohne HIGHMEM).

Probleme

Ganz problemlos ist das ganze leider nicht. Hier eine Auflistung einiger Probleme, die ich gefunden habe:

  • Die Größe von Prozessen ist, unabhängig von vorhandenem RAM oder Swap, auf den ersten Wert begrenzt. Bis zu den echten 2G/2G würde ich das mitmachen, aber 1G/3G könnte problematisch sein. Wer über 2 GB RAM hat, will wahrscheinlich auch Programme laufen lassen, die mehr als 1 GB belegen.
  • Binärmodule, die für 3G/1G kompiliert wurden, funktionieren möglicherweise nicht. Der aktuelle proprietäre NVIDIA-Treiber ist allerdings davon nicht betroffen; wie das bei anderen Dingen aussieht, weiß ich nicht.
  • Wine funktioniert nicht richtig. Ich hab es nicht genau recherchiert, da ich Wine eigentlich nicht brauche, aber soweit ich es verstehe, benutzt Windows normalerweise 3G/1G, und das simuliert Wine auch; ab Windows 2000 als Kompatibilitätseinstellung geht aber auch 2G/2G. Wenn man also nichts mit Wine laufen lässt, das nur unter simuliertem Windows 9x läuft, sollte es trotzdem gehen.

Links

Comments off

Sun Disklabel auf Platten über 32GB

Dieser Beitrag stammt aus meinem alten Blog und wurde nachträglich übertragen. Etwaige Links auf alte Blogeinträge wurden angepasst.

Ich wollte das Gentoo Linux auf meiner Sun Ultra 5 endlich mal neu installieren, und zwar diesmal komplett auf die 40GB-IBM-Platte statt der mitgelieferten 10GB-Hitachi, die furchtbar laut ist.

Das Problem: Statt einer vom IBM-PC bekannten DOS-Partitionstabelle ist ein Sun-Disklabel nötig, damit das BIOS der SPARC den Bootloader findet und läd. Nicht ganz trivial, denn ich konnte es nicht richtig anlegen.

Das Problem ist, dass in dem Disklabel Informationen (Sektoren, Köpfe, Spuren usw.) stehen. Die automatische Erkennung des Linux-fdisk ist unfähig, gab mir eine 80MB (Megabyte, jawoll!) große Platte. Na dann Prost Mahlzeit. Grlücklicherweise hab ich in der Ausbildung ja Leute, die mit Suns arbeiten. Dort konnte ich eine Solaris-8-CD abstauben, um damit die Platte zu partitionieren.

Wie ich mittlerweile weiß, müßig: es gab ein Problem, dass bei IDE nur 32GB-Platten unterstützt wurden. Durch einen Überlauf war für Solaris meine Platte also nur knapp 8GB groß. Ich habe eine CD von Juni 2000, ab Oktober 2000 war das gefixt. Allerdings brachte mich Jan auf die Idee, ob parted nicht Sun-Disklabels könnte.

In der Tat, das kann es. Ich baute die Platte in meinen Hauptrechner, schrieb ein neues Disklabel, und voila, große Platte für Linux auf SPARC. Einziges Problem: ich hätte direkt Partitionen anlegen sollen, ich konnte nur die 3. Partition – bei Sun Disklabels immer „die ganze Platte“ – ansprechen, weil fdisk jetzt dasselbe Problem wie das alte Solaris 8 hat und nur auf den ersten etwa 8GB Partitionen anlegen will. Aber das lässt sich später noch fixen, erstmal installiere ich jetzt.

Also, wer ein Problem hat, dass eine Platte ein Sun-Disklabel braucht, parted ist die Lösung.

Comments off

Gentoo: mplayer als DVD-Encoding-Zwischenstufe

Dieser Beitrag stammt aus meinem alten Blog und wurde nachträglich übertragen. Etwaige Links auf alte Blogeinträge wurden angepasst.

Wer unter Linux DVDs erstellen will, der wird das kennen: unzählige Howtos, die man vielleicht nichtmal so schwer findet, die dann aber nicht das tun, was man will. Das ist zum Teil auch so ein Howto, aber ich denke, es beleuchtet einen Aspekt, der einiges einfacher macht.

Meine Versuche fanden unter Gentoo Linux sowohl auf einem Athlon XP als auch auf meinem Notebook mit Athlon 64 statt, auf dem auch eine amd64-Version läuft. Die Ergebnisse sollten sich also auch auf andere Architekturen als x86 anwenden lassen.

Bevor ich zu meinem gefundenen Kniff komme, will ich doch noch zumindest den Anschein erwecken, ein allgemeines HowTo zu schreiben.

Allgemeine Videokonvertierungen leistet an der Konsole mencoder, der zum mplayer gehört. Für die Freunde von VirtualDub, die sich etwas ähnliches auch in der Linux-Welt wünschen, ist Avidemux gut geeignet.

Was ich hier nicht erwähne: Wer den Ton separat verwerten will, kann ihn zum Beispiel auch mit mplayer extrahieren („-oa pcm“) die die Wave-Datei mit lame o.ä. encoden. Oder mit ffmpeg, wenn es AC3 sein soll. Für die finale Zusammenstellung ist dvdstyler mittlerweile mit ruhigem Gewissen zu empfehlen. Hier kann man manuell Menüs bauen und MPEG2-Dateien als Datentracks einfügen, und daraus dann ein ISO-Image bauen, mit dem man eine DVD brennen kann.

Ich hatte eigentlich garkein Problem, aber ich wollte es wissen: ich habe eine TV-Serie in HDTV (1280×720) auf der Platte liegen, in XviD kodiert. Ich wollte mal eine DVD zum Testen machen, die aus dieser hohen Qualität gefertigt ist. Das Problem: es handelt sich um einen Anime, bei dem die Untertitel als separate Datei dabei sind. Nur mplayer ließ sich bewegen, diese Untertitel abzuspielen.

mpeg2enc, der MPEG-Encoder, benötigt rohe Bilddaten im YUV-Format. Die kann mplayer auch liefern, allerdings nur in eine Datei. Es ging um eine 30minütige Episode; meine Hochrechnung für den Platzbedarf ging stark in Richtung 100GB. Nicht gut. Ein Pipe, ja, ein Pipe das wäre schön gewesen.

Und so hab ich mich auf meinen Hosenboden gesetzt und mir endlich mal „named pipes“ angesehen. Die Bezeichnung hatte ich irgendwo aufgeschnappt. Es geht einfach darum, dass man, statt Befehle mit | zu verketten, auch ein „named pipe“ verwenden kann. Dies legt man mit mkpipe dateiname an und kann dann ein Programm starten, dass mit > dateiname aufgerufen wird, und eins mit < dateiname, und voila, übergeben die sich die Daten über dieses „named pipe“.

Also legte ich ein „named pipe“ namens stream.yuv an, so nennt mplayer die Datei, fest verdrahtet…

# mkpipe stream.yuv

Dann startete ich mplayer:

# mplayer eingabe.avi -nosound -benchmark -vo yuv4mpeg weitere Optionen

(-nosound schaltet die Soundausgabe ab, -benchmark schaltet auf maximale Decodiergeschwindigkeit.)

In einer anderen Konsole konnte ich jetzt die Codierung starten. Dabei musste ich eine Vorskalierung dazwischenschalten (yuvscaler von dem mjpegtools), um auf DVD-Format zu kommen, und schließlich in mpeg2enc hinein:

# cat stream.yuv | yuvscaler -n n -o DVD | mpeg2enc -o ausgabe.m2v -f 8 -b 3800 -n n -a 3

(-n n steht hier für NTSC – so war meine Quelle, und so sollte auch die DVD werden –, -f 8 für den Codiermodus (DVD, vorbereitet zur Weiterverarbeitung mit dvdstyler), -b 3800 für die Bitrate und -a 3 für das 16:9 Format.)

Ich halte diese Methode für die simpelste, die Möglich ist. Auch wenn mich ich mplayer nur benutzen wollte, weil es ein spezifisches Problem gab, ist das sehr praktisch. mplayer kann so gut wie alles abspielen, also kann man so aus vielen Formaten – auch Containern wie OGG oder Matroska (MKV) – die Quellendaten für MPEG2-Komprimierung bekommen.

Comments off

athcool hält den Athlon kühl

Dieser Beitrag stammt aus meinem alten Blog und wurde nachträglich übertragen. Etwaige Links auf alte Blogeinträge wurden angepasst.

Ich habe gelernt, dass es sich immer lohnt, auf Linux-Rechnern mit Athlon-CPUs athcool laufen zu lassen. Bisher hatte ich Temperaturen von dauerhaft über 50 °C am Prozessor. Nachdem ich eigentlich nach einem Programm suchen wollte, um den Takt runterzusetzen (OK. das kann ein Athlon XP nicht wirklich, aber es gibt einen langsameren und weniger Hitze erzeugenden Modus, den ich nutzen wollte).

Unter Gentoo recht einfach – emerge athcool zum kompilieren/installieren, und dann mit rc-update add athcool boot das beiliegende init-Skript automatisch beim Systemstart starten. Achtung: zuerst ein manuelles athcool on machen und sehen, ob alles noch OK läuft. VIA Boards haben angeblich gerne Probleme mit dem Ton, und schlimmeres kann angeblich auch passieren.

Dafür ist das Ergebnis sehenswert – 34 °C in Ruhe sind eine ganze Ecke besser!

Comments off

Tastaturen mit Spezialtasten nutzen

Dieser Beitrag stammt aus meinem alten Blog und wurde nachträglich übertragen. Etwaige Links auf alte Blogeinträge wurden angepasst.

Meine neue Tastatur hat, wie das besonders bei kabellosen gerne so ist, auch einige Spezialtasten. Diese wollte ich gerne unter Linux nutzen, und nachdem das tolle Programm (lineak), welches das eigentlich können sollte, nicht funktioniert hat und wenn ich das nicht falsch verstanden habe eh nur unter X funktionieren kann, hab ich mich gestern über andere Möglichkeiten informiert.

Dazu zählt, ganz einfach die Scancodes, die diese Tasten wie die normalen auch produzieren, entweder in spezielle Anweisungen (auf die nächste Konsole wechseln z.B.) oder in andere Tastendrücke (oder auch ganze Folgen von Tastendrücken) umzuwandeln. Das klappt dann allerdings nur auf der Konsole.

Alle folgenden Schritte sollte man als root und möglichst auch and der Konsole durchführen, nicht unter X.

Zunächst braucht man die Scancodes. Dafür ruft man showkey -s auf. Das zeigt direkt die Scancodes aller Tastendrücke an. Dabei gibt es (meist) jeweils einen Code, der beim Drücken ausgelöst wird (und auch beim Halten der Taste, immer wieder wiederholt wird) und einen Code beim Loslassen. Interessieren dürfte meist nur der zum Drücken, auch wenn es vielleicht Fälle gibt, wo man beides benutzen kann. Die Ausgabe zeigt z.B. 0xe0 0x30 an, wenn man eine Taste drückt. Der Scancode ist dann e030. (Nicht wie ich in Panik geraten, dass man showkey nicht wieder beendet bekommt – einfach 10 Sekunden warten. Das steht auch da, wenn man das Programm startet, aber man überliest es schnell…)

(Edit: Ich habe ein seltsames Phänomen gefunden – zwei der Spezialtasten („Favoriten“ und „E-Mail“) haben bei meiner Tastatur dieselben Scancodes wie die linke bzw. rechte Windows-Taste. Wie die je unterschieden werden sollen, ist mir ein Rätsel. Schickt der da noch mehr mit, das showkey nicht sehen kann? Oder kann die Tastatur gar umprogrammiert werden? Die Tastatur hat auch eine Taste, um F1 bis F12 für andere Funktionen zu nutzen – dann bekomme ich garkeinen Scancode von diesen Tasten. Ob das irgendwie zusammenhängt?)

Mit dumpkeys | less zeigt man sich nun die Liste der Zuweisungen an. In meinem Fall waren die Keycodes 120-127 unbenutzt, was mir genau die 8 Positionen gibt, die ich brauche. Je nach Konfiguration können auch sehr viel mehr verfügbar sein.

Jetzt muss man einem freien Keycodes einen der Scancodes zuweisen, die man vorher besorgt hat. In meinem Fall für die „Volume +“ Taste ist das
setkeycodes 121 e030

Die folgenden Anweisungen schreibt man am besten in eine Datei. Als erstes ein Beispiel, wo dem gerade definierten Keycode ein String zugeordnet wird (ich benutze oft mplayer, wo „0“ die Lautstärke erhöht):

string F121 = "0"
keycode 121 = F121

Hier ein Beispiel für eine andere Möglichkeit – damit kann man durch die Konsolen „blättern“:

keycode 121 = Decr_Console

Das muß man dann noch mit loadkeys < Datei auführen, und Voila, hat man die Tasten einer (hoffentlich) sinnvollen Verwendung zugeführt.

Mehr informationen findet man natürlich in den Manpages der einzelnen Programme, oder in der Ausgabe von dumpkeys – man findet genug Beispiele für alle Möglichkeiten, wie z.B. Boot (das, was Standardmäßig Strg-Alt-Entf zugeordnet ist). Und wenn es alles funktioniert, kann man die nötigen Aufrufe z.B. in der /etc/init.d/boot.local fest einbauen.

Comments off

« vorherige Einträge