Eine Root-Konsole farblich kennzeichnen

Einer meiner Lieblingsfehler ist es versehenltich irgendwelche Dinge auf der Linux-Kommandozeile mit root-Rechten zu tun, die man besser nicht als root getan hätte. So z.B. das Auschecken eines SVN-Repositories. Später hat man das Problem, dass die ausgecheckten Dateien nicht lesbar sind, wenn man wieder als “normaler” User unterwegs ist…

Eine Lösung wie man eine root-Konsole deutlich als solche auszeichnen kann musste her. In den Weiten des WWW fand ich eine einfache Lösung. Man muss nur in das .bashrc-Script in seinem home-Verzeichnis  das folgende Snipplet einfügen:

if [ $UID != 0 ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[0m\]@\[\033[01;33m\]\h\[\033[0m\]:\[\033[01;32m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;41m\]\u\[\033[0m\]@\[\033[01;33m\]\h\[\033[0m\]:\[\033[01;32m\]\w\[\033[00m\]\$ '
fi

Um der Wahrheit die Ehre zu geben verstehe ich den näheren Sinn der seltsamen Zeichenfolgen nicht aber deren Wirkung ist exakt das, was ich haben wollte: Ist man als root eingeloggt, wird der Nutzername nett rot umrandet.

Howto: X10 OR22V and VDR

Some days ago I explained how to set up basically the X10 OR22V remote control on a ubuntu system.That post also contains the required hardware.conf and lirdc.conf files! The thing that still didn’t work on my system was the ability to control my VDR.

The missing link to get things to work is a mapping from the “lirc-codes” to functions of VDR. In /etc/vdr there is a symlink “remote.conf” to a missing(!)  file located in /var/lib/vdr/remote.conf. That file will contain the required mapping. For me it was enough (sometimes) just to create the missing file (touch /var/lib/vdr/remote.conf – take care that vdr owns the file), restart vdr( /etc/init.d/vdr restart) and start the video output (for my setup: xinit -e vdr-sxfe -f). Now some teaching dialogue will (most likely) appear that tells you to press buttons in some sequence (press 1, press 2, …) and that remembers the received “lirc-codes”. If you went through this and later edit the mapping file you’ll have something like this:

LIRC.Up Up
LIRC.Down Down
LIRC.Menu Home
LIRC.Ok OK
LIRC.Back Back
LIRC.Left Left
LIRC.Right Right
LIRC.Red Red
LIRC.Green Green
LIRC.Yellow Yellow
LIRC.Blue Blue
LIRC.0 Zero
LIRC.1 One
LIRC.2 Two
LIRC.3 Three
LIRC.4 Four
LIRC.5 Five
LIRC.6 Six
LIRC.7 Seven
LIRC.8 Eight
LIRC.9 Nine
LIRC.Info More
LIRC.Play Play
LIRC.Pause Pause
LIRC.Stop Stop
LIRC.Record Record
LIRC.FastFwd Forward
LIRC.FastRew Rewind
LIRC.Next Skip
LIRC.Prev Replay
LIRC.Power Power
LIRC.Channel+ ChanUp
LIRC.Channel- ChanDown
LIRC.Volume+ VolUp
LIRC.Volume- VolDown
LIRC.Mute Mute
LIRC.Schedule KEY_TIMESHIFTING
LIRC.Channels DVD
LIRC.Timers LiveTV
LIRC.Recordings Guide

It is also possible, just to copy and paste the listing above to the mapping file. Just restart vdr and be happy that the remote will work now for VDR.

How to: X10 OR22V and XBMC

I bought a cheap media center remote control that I want to use at my home theater pc to control xbmc and vdr. Unfortunately the remote doesn’t work out of the box. Googling for a howto took me to this thread which helped a lot but took quite a lot of time to read and find the useful hints in tons of posts. Now here’s the solution in brief:

First you need to blacklist (disable) some modules. Add the following lines to /etc/modprobe.d/blacklist.conf:

blacklist ati_remote
blacklist lirc_atiusb

Now add the following to /etc/lirc/hardware.conf:

#Chosen Remote Control
REMOTE=”mceusb”
REMOTE_MODULES=”"
REMOTE_DRIVER=”atilibusb”
REMOTE_DEVICE=”/dev/lirc0″
REMOTE_LIRCD_CONF=”/etc/lirc/lircd.conf”
REMOTE_LIRCD_ARGS=”"

#Chosen IR Transmitter
TRANSMITTER=”None”
TRANSMITTER_MODULES=”"
TRANSMITTER_DRIVER=”"
TRANSMITTER_DEVICE=”"
TRANSMITTER_LIRCD_CONF=”"
TRANSMITTER_LIRCD_ARGS=”"

#Enable lircd
START_LIRCD=”true”

#Don’t start lircmd even if there seems to be a good config file
#START_LIRCMD=”false”

#Try to load appropriate kernel modules
LOAD_MODULES=”true”

# Default configuration files for your hardware if any
LIRCMD_CONF=”"

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn’t have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to “false”
FORCE_NONINTERACTIVE_RECONFIGURATION=”false”
START_LIRCMD=”"

Now add the following to /etc/lirc/lircd.conf. This will translate the codes sent by the remote control to some (well known, standard) keyname:

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.4a(atilibusb) on Tue Sep  8 23:54:34 2009
#
# contributed by funnybox2006, modified by nebu
#
# brand:  X10
# model no. of remote control: OR22V with RF USB Dongle
# devices being controlled by this remote:
# note: use atilibusb driver for this remote and set device in hardware.conf to /dev$

begin remote

name        mceusb
bits           16
eps            30
aeps          100

one             0     0
zero            0     0
pre_data_bits   8
pre_data       0×14
post_data_bits  16
post_data      0×0
gap          139982
min_repeat      2
toggle_bit_mask 0×80800000

begin codes
Power                    0xD702
Red                      0x87B2
Yellow                0×0934
Green                0x88B3
Teletext             0x6B96
Blue                    0x0A35
Back                 0xF520
More              0x84AF
Up                   0xEF1A
Left                     0x729D
OK                   0xF31E
Right                0xF41F
Down                 0x77A2
KEY_TIMESHIFTING     0x6D98
Guide                0×0631
DVD                  0xD904
LiveTV               0x719C
VolUp                0xDE09
Home                 0x709B
ChanUp               0xE00B
VolDown              0x5D88
ChanUp               0x618C
Mute                 0xD500
Replay               0x76A1
Skip                 0xF823
Rewind               0x79A4
Play                 0xFA25
Forward              0x7BA6
Record               0xFC27
Stop                 0x7DA8
Pause                0xFE29
One                  0x628D
Two                  0xE30E
Three                0x648F
Four                 0xE510
Five                 0×6691
Six                  0xE712
Seven                    0×6893
Eight                0xE914
Nine                 0x6A95
Star                 0x8CB7
Zero                 0xEC17
Hash                 0x0D38
Clear                0x85B0
Enter                0x0B36
end codes

end remote

Now restart Lirc: /etc/lirc/lircd restart and type irw. You should get some output when you press buttons on the remote and see that the mapping created above will work. The remote will now work with xbmc without changing anything at xbmc’s keymaps or other files. The lircd.conf uses standard keynames which are already mapped by the standard xbmc configuration files to xbmc actions.

Now start xbmc and have fun!

Update: Here is a explanation how to get the remote to work with vdr.

Ubuntu Alternate von USB-Stick installieren

Installiert man Ubuntu von einem “Alternate” ISO von USB-Stick oder CD-ROM die in einem externen, per USB angeschlossenen Laufwerk liegt, so erhält man die Fehlermeldung, dass der Installer das CD-Rom Laufwerk nicht richtig initialisieren kann und zusätzliche Module geladen werden müssen. Tut man das nicht, bricht die Installation ab.

Dies kann man folgendermaßen abstellen. Zunächst bootet man den Ubuntu Alternate Installers bis zum Auswahlmenü (kommt nach der Sprachauswahl), dann drückt man F6. Nun erscheint ein kleines Auswahlfeld mit “Expertenmodus”, “Nur freie Software” usw…. Esc drücken. Das Feld wird geschlossen, man sieht nun aber einen recht langen String mit verschiedenen Konfigurationsparametern für den Installer. Man fügt am Ende des Strings

cdrom-detect/try-usb=true

hinzu und drückt Enter. Der Installer wird nun vom Stick laufen bzw. vom externen CD-ROM Laufwerk.

Eclipse “Galileo”, Tomcat 6 und Ubuntu 9.10

Versucht man sich mittels Eclipse EE zu einem Tomcat 6 Server auf Ubuntu 9.10 “Karmic” zu verbinden, schlägt dies fehl. Eclipse liefert die Meldung “The Tomcat installation directory is not valid. It is missing expected file or folder conf.” Scheinbar ist etwas mit den Pfaden in Ubuntu verbogen. Gibt man folgendes ein …

cd /usr/share/tomcat6
sudo ln -s /var/lib/tomcat6/conf conf

… klappt die Verbindung

Das funktioniert so nicht wirklich. Das Tomcat Paket aus Ubuntu ist scheinbar kaputter als angenommen. Der einfachere Weg ist in diesem Tutorial beschrieben!

TV-Browser + VDR

Ich habe vor Wochen kurz auf TV-Browser hingewiesen. Das ist ein Programm für Mac, Windows und ich glaube Linux mit dem das TV-Programm inspiziert und gefällige Sendungen selektiert werden können. Es gibt ein cooles Plugin, welches TV-Browser mit dem VDR verbindet: Lazy Bones

Mit LazyBones lassen sich Aufnahmen programmieren und v.a. Livestreams von VDR zum lokalen VLC sehr komfortabel starten.

Die Installation geht mittlerweile über das Plugin-Interface von TV-Browser.

Homeserver: Die Jukebox für die Stereoanlage

Gestern hatte ich eine interessante Einsicht: Mein “Homeserver”* steht quasi neben der Stereo-Anlage, leider können die beiden aber rein überhaupt gar nix miteinander anfangen. Zeit etwas daran zu ändern! Klar, man könnte irgendeine Anwendung auf der Kiste installieren und jedes Mal wenn man Mucke hören will hindackeln und das gewünschte Lied abspielen. Das ist aber doof. Cooler wäre doch, den Player irgendwie fernsteuern zu können…

Und siehe da: Nette Menschen haben genau so etwas gebaut! Das benötigte Programm heißt Media Player Daemon und ist (natürlich) über die Paketquellen von Ubuntu ratz-fatz auf dem Server installiert (apt-get install mpd). Nachdem die Software installiert ist muss die /etc/mpd.conf angefasst werden. Im Wesentlich muss man die Pfade wo die Musik liegt anpassen…

...
music_directory "/media/storage/Audio"
playlist_directory "/media/storage/Audio/Playlists"
...

… die Beschränkung mpd nur von localhost nutzen können auskommentieren …

...
#bind_to_address "127.0.0.1"
...

… und ALSA als Mixer eintragen …

...
mixer_type "alsa"
mixer_device "default"
mixer_control "PCM"
...

Jetzt noch den Cache für die Datenbank erzeugen /etc/init.d/mpd start-create-db (mpd ließt verschafft sich einen überblick was an Musik vorhanden ist und indiziert die Tags im mp3-file) und neustarten /etc/init.d/mpd restart.Fertig. Jetzt fehlt noch eine Client-Applikation mit der man die Kiste steuern kann.

Generell gibt es ein prima funktionierendes Command Line Tool, welches auf dem Server installiert wird und über SSH genutzt werden kann. Das Programm heißt ncmpc (apt-get install ncmpc). Vorteil ist hier, dass man mit jedem Rechner über SSH fernsteuern kann. Zugegriffen wird auf die Titel übrigens über die gewohnte Ordnerstruktur. Besonderen Charme entwickeltdas Programm in Verbindung mit einem Symbian Handy und putty. :-)  Alternativ kann man hier auch eine für Handy optimierte Weboberfläche nutzen, die ist aber entsetzlich langsam.

Möchte man ein “ordentliches” Client-Programm in Klicki-Bunti-Manier haben kommt man (unter Mac OS) wohl kaum an Theremin vorbei. Neben der Steuerung der Titel und Lautstärke wird hier als optisches Goodie noch ein Albumcover als briefmarkengroßes Bildchen oben links angezeigt. Wird der nächste Titel abgespielt wird ein hübsches halbtransparentes Notify eingeblendet…

theremin

Weniger gut an Theremin gefällt mir, dass die mp3′s nicht über meine Ordnerstruktur zugreifbar sind, sondern über die Datenbank die sich mpd zusammengebastelt hat.

__________
* mein oller eeePC mit einer Festplatte dran

Bug in Network Manager von Ubuntu 9.04?

Entweder bin ich zu dusslig den Network Manager (bzw. das VPNC-Plugin dafür) unter Ubuntu 9.04 so zu konfigurieren, dass er mich zu unserem Uni VPN (Cisco) verbindet oder ist da ein Bug drin. Egal ob ich ein neues Profil selbst anlege oder das pcf-File, welches der Windows Cisco Client der Uni mitliefert, importiere; immer der selbe Fehler:

VPN-Verbindung fehlgeschlagen
Die Verbindung <sowieso> konnte nicht hergestellt werden, da keine gültigen VPN-Geheimnisse vorliegen.

VPN-Geheimnisse? Die Passworte?? Die habe ich korrekt eingegeben. Konfiguriere ich nämlich vpnc nach alter Väter Sitte mit einem ordentlichen Konfig-File, steht die Verbindnug nach wenigen Sekunden. Die Fehlermeldung oben kommt derartig schnell, dass ich mir nicht vorstellen kann, dass die Anwendung wirklich mit dem VPN-Server kommuniziert. Tut sie auch nicht. Sniffe ich mit wireshark ein bisschen mit, sehe ich, dass keinerlei Nachrichten verschickt werden. Great.

Kennt jemand das Problem? Bzw. weiß jemand sogar einen Ausweg?

Update: Das Problem hat sich mittlerweile von selbst (apt-get upgrade!?) gelöst. VPN funktioniert jetzt bestens.

UMTS-Sticks und Ubuntu 9.04

Ich bin hochoffiziell beeindruckt. Gerade habe ich versucht meinen UMTS Stick unter Ubuntu zum laufen zu kriegen. Das geht normalerweise ja ganz ordentlich mit dem Tool umtsmon. Aber: 9.04 braucht kein umtsmon mehr. Stick einstecken. Ein Fenster poppt auf: “wählen sie ihren Anwender”. Fertig. Einrichtzeit: 3 Sekunden!

I’m deeply impressed.

Der neue Network-Manager von Ubuntu scheint um einige Funktionen erweitert worden zu sein (oder gabe es das schon unter 8.10?)

Ubuntu 9.04 auf eeePC 4G

Ich hätte ja nicht gedacht jemals wieder ein Posting zum eeePC zu verfassen… Aber heute muss es sein! Das heute veröffentlichte Ubuntu 9.04 rennt nämlich ganz phantastisch auf dem kleinen Rechner. Installation per USB-Stick ist in guten 5 Minuten geschehen, alles funktioniert, Suspend/Resume ist super flott, der Rechner bootet wirklich fix, … Toll!! Bisher war ein auf 2GB :D abgespecktes Windows XP die erste Wahl auf dem eeePC, aber ich glaube ich habe einen Gegenkandidaten gefunden.

Was man unbedingt einstellen sollte ist folgendes: gconf-editor aufmachen und zu

--> apps --> compiz --> plugins --> move --> allscreens --> options

navigieren und dort den Haken bei “constrain_y”  rausnehmen. Nun ist es möglich mit ALT+MAUS ein Fenster über den Rand der oberen Fensterkante hinaus zu schieben – das geht sonst nicht. Diese Möglichkeit ist v.a. dann wichtig, wenn ein Fenster höher als 600px ist und unterhalb der unteren Bildschirmkante z.B. ein Button angebracht ist…