Schneller QR-Code ersteller

Johannes Widmer, Schnell einen Text oder eine lange Nummer vom PC aufs Handy übertragen? Eine SMS per Tastatur tippen und dann per Handy verschicken? Das geht einfach mit einem Handy, das eine Kamera hat und eine QR-Scanner-Software: Mit dem Computer erstellt man einen QR-Code (quadratischer Schwarz-Weiß-Code, wie im Beispiel rechts abgebildet), darin ist der Text, den man übertragen möchte, codiert. Diesen Code fotografiert man mit der Kamera des Handy ab, und die QR-Software rekonstruiert daraus zuverlässig den ursprünglichen Text. Als QR-Scan-Software benutze ich auf meinem Android-Telefon "QR Droid", jeder andere Scanner tut's sicher auch. Nun brauche ich in meinem Ubuntu noch einen schnellen Knopf, um ohne Umstände einen Text in einen QR-Code auf den Bildschirm zu zaubern:
  • Zuerst das Paket "qrencode" installieren. ("Ubuntu Software Center" starten, ins Suchfeld oben rechts "qrencode" eingeben, den entsprechenden gefundenen Eintrag "QR Code encoder ..." anklicken, dann auf "installieren" klicken)
  • Und genauso das Paket "zenity" ("Display graphical dialog boxes") installieren.
  • Im Heimatverzeichnis (home-folder) einen Ordner "bin" anlegen
  • Darin eine leere Datei mit Namen "qr.sh" anlegen. Die Datei öffnen (zB mit dem Text-Editor gedit) und den folgenden Code reinkopieren: #!/bin/sh qrtext=`zenity --entry --text="Please enter the text to generate the QR code from:"` qrencode -o /tmp/qr.png "$qrtext" gnome-open /tmp/qr.png
  • Nun diese Datei ausführbar machen (Rechts-Klick, Eigenschaften, Zugriffsrechte, Ausführbar als Programm). Nun ist das Skript fertig und kann getestet werden. Wenn es ausgeführt wird erscheint zuerst ein Fenster, wo man einen Text eingeben kann, nach Klick auf OK erscheint dann der QR-Code in dem der Text codiert ist.
  • Zuletzt noch das Skript im Unitiy-Hauptmenü aufrufbar machen, um schnell darauf zugreifen zu können:
  • Den oben abgebildeten QR-Code (oder ein beliebiges anderes geeignetes Symbol) im vorhin erstellten Verzeichnis "bin" im Home-Verzeichnis unter dem Namen qr.png abspeichern.
  • Im Datei-Manager (nautilus) versteckte Dateien anzeigen lassen (unter dem Menüpunkt "Ansicht") und ins Verzeichnis ".local/share/applications" wechseln.
  • Dort eine neue Datei mit Namen "qr.desktop" erstellen und den folgenden Code hinein kopieren, wobei "username" in der Zeile "icon" durch den eigenen Benutzernamen zu ersetzen ist (Das Erstellen der Datei geht analog zum oben beschriebenen Vorgehen):
    [Desktop Entry]
    Name=Quick QR code
    Comment=Create and display a QR code from text
    Exec=bin/qr.sh
    Icon=/home/username/bin/qr.png
    Terminal=false
    Type=Application
    OnlyShowIn=GNOME;Unity;
  • Zuletzt muss nun noch unity neu gestartet werden: Alt+F2 drücken, ins Befehl-Fenster "unity --restart" eingeben und Enter drücken.
  • Nun kann das QR-Skript direkt über das Unity-Hauptmenü gestartet werden (zB Windows-Taste drücken und dann qr eingeben).
Viel Spaß damit. :) Sonntag, 15. April 2012, 17:18

Schnell einen Text oder eine lange Nummer vom PC aufs Handy übertragen? Eine SMS per Tastatur tippen und dann per Handy verschicken? Das geht einfach mit einem Handy, das eine Kamera hat und eine QR-Scanner-Software: Mit dem Computer erstellt man einen QR-Code (quadratischer Schwarz-Weiß-Code, wie im Beispiel rechts abgebildet), darin ist der Text, den man übertragen möchte, codiert. Diesen Code fotografiert man mit der Kamera des Handy ab, und die QR-Software rekonstruiert daraus zuverlässig den ursprünglichen Text. Als QR-Scan-Software benutze ich auf meinem Android-Telefon „QR Droid“, jeder andere Scanner tut’s sicher auch. Nun brauche ich in meinem Ubuntu noch einen schnellen Knopf, um ohne Umstände einen Text in einen QR-Code auf den Bildschirm zu zaubern:

  • Zuerst das Paket „qrencode“ installieren. („Ubuntu Software Center“ starten, ins Suchfeld oben rechts „qrencode“ eingeben, den entsprechenden gefundenen Eintrag „QR Code encoder …“ anklicken, dann auf „installieren“ klicken)
  • Und genauso das Paket „zenity“ („Display graphical dialog boxes“) installieren.
  • Im Heimatverzeichnis (home-folder) einen Ordner „bin“ anlegen
  • Darin eine leere Datei mit Namen „qr.sh“ anlegen. Die Datei öffnen (zB mit dem Text-Editor gedit) und den folgenden Code reinkopieren: #!/bin/sh qrtext=`zenity –entry –text=“Please enter the text to generate the QR code from:“` qrencode -o /tmp/qr.png „$qrtext“ gnome-open /tmp/qr.png
  • Nun diese Datei ausführbar machen (Rechts-Klick, Eigenschaften, Zugriffsrechte, Ausführbar als Programm). Nun ist das Skript fertig und kann getestet werden. Wenn es ausgeführt wird erscheint zuerst ein Fenster, wo man einen Text eingeben kann, nach Klick auf OK erscheint dann der QR-Code in dem der Text codiert ist.
  • Zuletzt noch das Skript im Unitiy-Hauptmenü aufrufbar machen, um schnell darauf zugreifen zu können:
  • Den oben abgebildeten QR-Code (oder ein beliebiges anderes geeignetes Symbol) im vorhin erstellten Verzeichnis „bin“ im Home-Verzeichnis unter dem Namen qr.png abspeichern.
  • Im Datei-Manager (nautilus) versteckte Dateien anzeigen lassen (unter dem Menüpunkt „Ansicht“) und ins Verzeichnis „.local/share/applications“ wechseln.
  • Dort eine neue Datei mit Namen „qr.desktop“ erstellen und den folgenden Code hinein kopieren, wobei „username“ in der Zeile „icon“ durch den eigenen Benutzernamen zu ersetzen ist (Das Erstellen der Datei geht analog zum oben beschriebenen Vorgehen):
    [Desktop Entry]
    Name=Quick QR code
    Comment=Create and display a QR code from text
    Exec=bin/qr.sh
    Icon=/home/username/bin/qr.png
    Terminal=false
    Type=Application
    OnlyShowIn=GNOME;Unity;
  • Zuletzt muss nun noch unity neu gestartet werden: Alt+F2 drücken, ins Befehl-Fenster „unity –restart“ eingeben und Enter drücken.
  • Nun kann das QR-Skript direkt über das Unity-Hauptmenü gestartet werden (zB Windows-Taste drücken und dann qr eingeben).

Viel Spaß damit. :)

CIFS (Samba) Laufwerk mit Benutzerrechten mounten

Johannes Widmer, Wenn die Benutzer ein Laufwerk selbst mounten können sollen, zB mit folgender fstab-Zeile
//server/share/ /local/dir smbfs users,pass=,iocharset=utf8
dann müssen erst die ausführbaren cifs-Mount-Dateien für Benutzer ausführbar gemacht sein:
sudo chmod u+s /sbin/mount.cifs
sudo chmod u+s /sbin/umount.cifs
Dann kann der Benutzer einfach mounten, mit
mount /local/dir
Freitag, 13. August 2010, 11:51

Wenn die Benutzer ein Laufwerk selbst mounten können sollen, zB mit folgender fstab-Zeile

//server/share/ /local/dir smbfs users,pass=,iocharset=utf8

dann müssen erst die ausführbaren cifs-Mount-Dateien für Benutzer ausführbar gemacht sein:

sudo chmod u+s /sbin/mount.cifs
sudo chmod u+s /sbin/umount.cifs

Dann kann der Benutzer einfach mounten, mit

mount /local/dir

Frequenz für externen Monitor einstellen

Johannes Widmer, Die Bildwiederholfrequenz meines externen Monitors wurde nach dem Update auf Ubuntu 10.04 Lucid Lynx nicht richtig erkannt. Anstatt das Bild mit 100 Hz anzuzeigen, flimmerte er mit unangenehmen 60 Hz, was insbesondere bei einer hellen Anzeige ziemlich unangenehm war. Hier nun also der Trick, wie man den externen Monitor zu einer höheren Bildwiederholrate überredet: Zuerst öffne ich mir eine Kommandozeile. Dort lasse ich mir anzeigen, welche Bildschirme angeschlossen sind und wie sie intern heißen, und zwar mit dem Kommando
xrandr
Dort finden sich – zwischen einigen Zahlenkolonnen – zwei Zeilen, die die internen Namen der angeschlossenen Monitore verraten, bei ist es CRT1 für den externen Monitor. Die Entsprechende Zeile sieht bei mir so aus:
CRT1 connected 1280x1024+1280+0 (normal left inverted  right x axis y axis) 0mm x 0mm
Nun muss ich mir eine sogenannte Modeline erstellen, mit der ich den Monitor dann konfigurieren kann. Das geschieht mit dem Kommando cvt. Ich möchte den Monitor mit einer Auflösung von 1280 x 1024 bei 100 Hz betreiben, also gebe ich ein:
cvt  1280 1024 100
und erhalte als Ergebnis
# 1280x1024 99.96 Hz  (CVT) hsync: 108.66 kHz; pclk: 189.50 MHz
Modeline  "1280x1024_100.00"  189.50  1280 1376 1512 1744  1024 1027 1034 1087  -hsync +vsync
Den Teil nach "Modeline" kopiere ich in die Zwischenablage (markieren per Maus, dann Shift+Strg+C), ich brauche ihn gleich im nächsten Kommando. Hier trage ich die neue Modeline ins System ein:
xrandr --newmode "1280x1024_100.00"  189.50  1280 1376 1512  1744  1024 1027 1034 1087 -hsync +vsync
(Einfügen aus der Zwischenablage mit Shift+Strg+V) Diese neue Modeline, die den Namen "1280x1024_100.00" trägt, kann ich nun dem externen Monitor zuweisen
xrandr  --addmode CRT1 "1280x1024_100.00"
und aktivieren
xrandr  --output CRT1 --mode "1280x1024_100.00"
Das schönste daran: Die neue Frequenz ist sofort aktiviert, ich muss den Rechner bzw. Gnome gar nicht neu starten. :) Die Einstellungen, die ich eben vorgenommen habe, sind zunächst nur temporär gültig. Ist man mit dem Ergebnis zufrieden, sollte man sie noch fest in die Konfiguration integrieren, damit die neuen Einstellungen bei jedem Rechnerstart automatisch angewandt werden. Hierfür müssen die drei xrandr-Kommandos in die Datei /etc/X11/Xsession.d/45custom_xrandr-settings geschrieben werden. Hierfür gibt man in der Kommandozeile folgenden Befehl ein:
gksudo gedit /etc/X11/Xsession.d/45custom_xrandr-settings &
Damit öffnet sich ein Editor-Fenster, in das man die drei Befehle hineinkopieren kann, das sieht bei mir dann so aus:
xrandr --newmode "1280x1024_100.00"  189.50  1280 1376 1512 1744  1024 1027 1034 1087 -hsync +vsync
xrandr --addmode CRT1 "1280x1024_100.00"
xrandr --output CRT1 --mode "1280x1024_100.00"
Datei speichern – fertig. :) Quelle: ubuntuusers.deSamstag, 15. Mai 2010, 12:06

Die Bildwiederholfrequenz meines externen Monitors wurde nach dem Update auf Ubuntu 10.04 Lucid Lynx nicht richtig erkannt. Anstatt das Bild mit 100 Hz anzuzeigen, flimmerte er mit unangenehmen 60 Hz, was insbesondere bei einer hellen Anzeige ziemlich unangenehm war.

Hier nun also der Trick, wie man den externen Monitor zu einer höheren Bildwiederholrate überredet:

Zuerst öffne ich mir eine Kommandozeile. Dort lasse ich mir anzeigen, welche Bildschirme angeschlossen sind und wie sie intern heißen, und zwar mit dem Kommando

xrandr

Dort finden sich – zwischen einigen Zahlenkolonnen – zwei Zeilen, die die internen Namen der angeschlossenen Monitore verraten, bei ist es CRT1 für den externen Monitor. Die Entsprechende Zeile sieht bei mir so aus:

CRT1 connected 1280x1024+1280+0 (normal left inverted  right x axis y axis) 0mm x 0mm

Nun muss ich mir eine sogenannte Modeline erstellen, mit der ich den Monitor dann konfigurieren kann. Das geschieht mit dem Kommando cvt. Ich möchte den Monitor mit einer Auflösung von 1280 x 1024 bei 100 Hz betreiben, also gebe ich ein:

cvt  1280 1024 100

und erhalte als Ergebnis

# 1280x1024 99.96 Hz  (CVT) hsync: 108.66 kHz; pclk: 189.50 MHz
Modeline  "1280x1024_100.00"  189.50  1280 1376 1512 1744  1024 1027 1034 1087  -hsync +vsync

Den Teil nach „Modeline“ kopiere ich in die Zwischenablage (markieren per Maus, dann Shift+Strg+C), ich brauche ihn gleich im nächsten Kommando. Hier trage ich die neue Modeline ins System ein:

xrandr --newmode "1280x1024_100.00"  189.50  1280 1376 1512  1744  1024 1027 1034 1087 -hsync +vsync

(Einfügen aus der Zwischenablage mit Shift+Strg+V) Diese neue Modeline, die den Namen „1280x1024_100.00“ trägt, kann ich nun dem externen Monitor zuweisen

xrandr  --addmode CRT1 "1280x1024_100.00"

und aktivieren

xrandr  --output CRT1 --mode "1280x1024_100.00"

Das schönste daran: Die neue Frequenz ist sofort aktiviert, ich muss den Rechner bzw. Gnome gar nicht neu starten. :)

Die Einstellungen, die ich eben vorgenommen habe, sind zunächst nur temporär gültig. Ist man mit dem Ergebnis zufrieden, sollte man sie noch fest in die Konfiguration integrieren, damit die neuen Einstellungen bei jedem Rechnerstart automatisch angewandt werden. Hierfür müssen die drei xrandr-Kommandos in die Datei /etc/X11/Xsession.d/45custom_xrandr-settings geschrieben werden. Hierfür gibt man in der Kommandozeile folgenden Befehl ein:

gksudo gedit /etc/X11/Xsession.d/45custom_xrandr-settings &

Damit öffnet sich ein Editor-Fenster, in das man die drei Befehle hineinkopieren kann, das sieht bei mir dann so aus:

xrandr --newmode "1280x1024_100.00"  189.50  1280 1376 1512 1744  1024 1027 1034 1087 -hsync +vsync
xrandr --addmode CRT1 "1280x1024_100.00"
xrandr --output CRT1 --mode "1280x1024_100.00"

Datei speichern – fertig. :)

Quelle: ubuntuusers.de

Text in vielen Dateien auf einmal ersetzen

Johannes Widmer, Um in allen '*.txt'-Dateien den Text 'asdf' durch 'qwert' zu ersetzen, kann der folgende Befehl verwendet werden: sed -i -e 's/asdf/qwert/g' *.txt Mittwoch, 8. Juli 2009, 13:39

Um in allen ‚*.txt‘-Dateien den Text ‚asdf‘ durch ‚qwert‘ zu ersetzen, kann der folgende Befehl verwendet werden:

sed -i -e 's/asdf/qwert/g' *.txt

VirtualBox im Headless-Mode

Johannes Widmer, Der Headless mode von VirtualBox kann verwendet werden, um eine virtuelle Maschine auf einem Host ohne grafisches Frontend zu betreiben.

Host-System

Betriebssystem

Ubuntu Server ohne grafische Benutzeroberfläche als Standard-Installation mit OpenSSH-Server. (Getestet mit 8.04)

VirtualBox installieren

Der Headless mode ist nur in der non-OSE-Version von VirtualBox verfügbar. Die non-OSE-Version ist nicht bei Ubuntu dabei, daher muss erst das VirtualBox-Repository hinzugefügt werden.
sudo bash -c "echo deb http://download.virtualbox.org/virtualbox/debian hardy non-free > /etc/apt/sources.list.d/virtualbox.list"
sudo wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install mc virtualbox-2.0
sudo adduser vboxuser
sudo usermod -a -G vboxusers vboxuser
sudo usermod -a -G admin vboxuser

Netzwerkbrücke einrichten (bridged networking)

Hinweis: Netzwerk-Bridging ist in der aktuellen Version von VirtualBox für die meisten Anwendungen nicht mehr nötig. Mein Tipp: Versuche erst, ob der Server nicht auch ohne Bridging läuft. ;) Damit ein Server-Dienst auf dem Gast erreichbar ist, muss die virtuelle Netzwerkkarte mit Hilfe einer Netzwerkbrücke an die Host-Netzwerkkarte angeschlossen werden (siehe auch http://wiki.ubuntuusers.de/VirtualBox). Achtung: Die Netzwerkkarte, an die die virtuellen Maschinen angekoppelt werden, muss als eth0 konfiguriert sein. (Dies kann ggf. in /etc/udev/rules.d/70-persistent-net.rules angepasst werden.) Auf dem Host werden die Pakete bridge-utils und uml-utilities benötigt:
sudo apt-get install bridge-utils uml-utilities
Beim Systemstart muss die Netzwerkbrücke erstellt und mit eth0 verbunden werden und für jede virtuelle Maschine wird ein virtuelles Netzwerkgerät tap erstellt:
sudo mcedit /etc/init.d/iapp-network-bridge.sh
Der Inhalt der Datei:
#!/bin/bash 

NUMBER_OF_TAPS=1

BRCTL=/usr/sbin/brctl
IFCONFIG=/sbin/ifconfig
DHCLIENT=/sbin/dhclient
CHMOD=/bin/chmod
CHGRP=/bin/chgrp
TUNCTL=/usr/sbin/tunctl

test -f $BRCTL || exit 0
test -f $IFCONFIG || exit 0
test -f $DHCLIENT || exit 0
test -f $CHMOD || exit 0
test -f $CHGRP || exit 0
test -f $TUNCTL || exit 0

. /lib/lsb/init-functions

case "$1" in
start)   log_daemon_msg "Starting network bridge" "iapp-network-bridge"
         $BRCTL addbr br0
         $BRCTL addif br0 eth0
         $DHCLIENT br0
         $IFCONFIG eth0 0.0.0.0
         $CHMOD 0660 /dev/net/tun
         $CHGRP vboxusers /dev/net/tun
         typeset -i i
         i=0
         while [ $i -lt $NUMBER_OF_TAPS ]
         do $TUNCTL -t tap$i -u vboxuser
            ifconfig tap$i up
            brctl addif br0 tap$i
            i=i+1
         done
         log_end_msg $?
         ;;
stop)    log_daemon_msg "Stopping network bridge" "iapp-network-bridge"
         typeset -i i
         i=0
         while [ $i -lt $NUMBER_OF_TAPS ]
         do ifconfig tap$i down
            brctl delif br0 tap$i
            i=i+1
         done
         $IFCONFIG br0 down
         $BRCTL delbr br0
         $DHCLIENT eth0
         log_end_msg $?
         ;;
restart) /etc/init.d/iapp-network-bridge.sh stop
         /etc/init.d/iapp-network-bridge.sh start
         ;;
esac
exit 0
Die Anzahl der virtuellen Netzwerkkarten (taps), die erstellt werden, kann in der ersten Programmzeile festgelegt werden. Die erstellten Devices werden, beginnend mit tap0, tap1 etc. durchnummeriert. Mit den folgenden Kommandos wird die Netzwerkbrücke automatisch beim Systemstart gestartet.
sudo chmod a+x /etc/init.d/iapp-network-bridge.sh
sudo ln -s ../init.d/iapp-network-bridge.sh /etc/rc2.d/S50iapp-network-bridge
sudo /etc/init.d/iapp-network-bridge.sh start

Virtuelle Maschine einrichten

Eine virtuelle Maschine neu erstellen und installieren

Virtuelle Maschine erstellen und für die Installation der Betriebssystems konfigurieren:
VBOXNAME=Name_der_virtuellen_Maschine
TAPDEVICE=Tap-Device_der_virtuellen_Maschine
MAC=MAC-Adresse_ohne_Doppelpunkte_z.B._001122334455
INSTALL_ISO=ISO-Datei_der_Installations-CD_absoluter_Pfad
sudo -H -u vboxuser VBoxManage createvm -name $VBOXNAME -register
sudo -H -u vboxuser VBoxManage createvdi -filename $VBOXNAME.vdi -size 10240 -register
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -ostype ubuntu -memory 2000 -hda $VBOXNAME.vdi -nic1 hostif -hostifdev1 $TAPDEVICE -macaddress1 $MAC
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -pae off -dvd $INSTALL_ISO -boot1 dvd
Virtuelle Maschine für Betriebssystem-Installation starten:
sudo -H -u vboxuser VBoxHeadless -startvm $VBOXNAME -vrdp on &
Jetzt m.H.v. "rdesktop <IP-Adresse des Hosts>" mit der virtuellen Maschine verbinden und Betriebssystem installieren. Dabei ist darauf zu achten, dass auf der virtuellen Maschine ein SSH-Server installiert und aktiviert wird. Falls das Gast-System Ubuntu ist, muss der Generic-Kernel installiert werden, da der Standard-Kernel nur im PAE/NX-Modus mit der Virtuellen Maschine kompatibel ist. (Der PAE/NX-Modus kann nur bei aktiviert werden, wenn nur ein Gast auf dem Host läuft, sonst bricht die Zuverlässigkeit dramatisch ein; er sollte daher generell vermieden werden.)
  • Die virtuelle Maschine herunterfahren und die Installation-CD erneut einhängen
    sudo -H -u vboxuser VBoxManage controlvm $VBOXNAME poweroff
    sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -dvd none
    sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -dvd $INSTALL_ISO -boot1 dvd
  • Im Rettungsmodus starten, dort den Generic-Kernel installieren
    apt-get install linux-generic
    exit
  • Den Gast neu starten und von Festplatte booten, dabei per Escape-Taste ins Grub-Menü springen und den Generic-Kernel (dritter Eintrag) booten
  • Im Boot-Menü die Boot-Abschnitte so sortieren, dass der Generic-Kernel an erster Stelle steht
    sudo apt-get install mc
    sudo mcedit /boot/grub/menu.lst
  • Den Gast herunterfahren
    sudo halt
Nun kann die virtuelle Maschine für den regulären Betrieb vorbereitet werden (ISO-Image aushängen, PAE/NX-Modus deaktivieren):
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -dvd none -boot1 disk -pae off

Eine virtuelle Maschine umziehen

1. Auf der virtuellen Maschine Die virtuelle Maschine muss heruntergefahren werden:
sudo halt
2. Auf dem Ursprungs-Host Den Namen der virtuellen Maschine definieren:
VBOXNAME=Name_der_virtuellen_Maschine
Eine virtuelle Maschine kann nur umgezogen werden, wenn keine Datenträger an sie angeschlossen sind. Zunächst muss also die Festplatte ausgehängt werden:
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -hda none
Dann kann die virtuelle Maschine von VirtualBox abgemeldet werden:
sudo -H -u vboxuser VBoxManage unregistervm $VBOXNAME
3. Auf dem Ziel-Host Den Namen der virtuellen Maschine definieren:
VBOXNAME=Name_der_virtuellen_Maschine
VBOXSOURCEHOST=IP_des_Ursprungs-Hosts
Nun werden das Festplattenimage und die Virtuelle Maschine auf das Zielsystem kopiert:
sudo -H -u vboxuser mkdir -p ~vboxuser/.VirtualBox/VDI
sudo -H -u vboxuser mkdir -p ~vboxuser/.VirtualBox/Machines
sudo -H -u vboxuser scp -r $VBOXSOURCEHOST:/home/vboxuser/.VirtualBox/Machines/$VBOXNAME ~vboxuser/.VirtualBox/Machines
sudo -H -u vboxuser scp $VBOXSOURCEHOST:/home/vboxuser/.VirtualBox/VDI/$VBOXNAME.vdi ~vboxuser/.VirtualBox/VDI/
Nun müssen die Dateien bei VirtualBox registriert werden:
sudo -H -u vboxuser VBoxManage registerimage disk $VBOXNAME.vdi
sudo -H -u vboxuser VBoxManage registervm Machines/$VBOXNAME/$VBOXNAME.xml
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -hda $VBOXNAME.vdi
Ggf. muss nun noch das richtige TAP-Device angegeben werden:
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -hostifdev1 TAP-Device
Nun ist die virtuelle Maschine lauffähig.

Startup- und Shutdown-Skripte erstellen

Die Skripte sind notwendig, wenn die virtuelle Maschine automatisch beim Systemstart gestartet werden soll. Sie sorgen auch dafür, dass beim Herunterfahren des Systems auch die virtuelle Maschine automatisch eingefroren und beim nächsten Booten an derselben Stelle fortgesetzt wird. Zunächst wird das Skript erstellt:
VBOXNAME=Name_der_virtuellen_Maschine
sudo mcedit /etc/init.d/iapp-vbox-$VBOXNAME.sh
Der Inhalt der Datei:
#!/bin/bash

VBOXNAME=Name_der_virtuellen_Maschine
TAPDEVICE=Tap-Device_der_virtuellen_Maschine

VBOXHEADLESS=/usr/bin/VBoxHeadless
VBOXMANAGE=/usr/bin/VBoxManage
IFCONFIG=/sbin/ifconfig

test -f $VBOXHEADLESS || exit 0
test -f $VBOXMANAGE || exit 0
test -f $IFCONFIG || exit 0

. /lib/lsb/init-functions

case "$1" in
start)    log_daemon_msg "Starting virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXHEADLESS -startvm $VBOXNAME -vrdp off &
          sleep 1
          log_end_msg $?
          exit 0
          ;;
start_with_vrdp) log_daemon_msg "Starting virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXHEADLESS -startvm $VBOXNAME -vrdp on &
          sleep 1
          echo You can connect the virtual machine now using \"rdesktop `ifconfig br0 | grep -oe "inet addr:\\([0-9]\\+\\.\\?\\)\\+" | grep -oe "\\([0-9]\\+\\.\\?\\)\\+"`\"
          log_end_msg $?
          exit 0
          ;;
stop)     log_daemon_msg "Stopping virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXMANAGE -nologo controlvm $VBOXNAME savestate
          log_end_msg $?
          exit 0
          ;;
reset)    log_daemon_msg "Resetting virtual machine $VBOXNAME" ""
          $IFCONFIG $TAPDEVICE down
          $IFCONFIG $TAPDEVICE up
          sudo -H -u vboxuser $VBOXMANAGE -nologo controlvm $VBOXNAME reset
          log_end_msg $?
          exit 0
          ;;
poweroff) log_daemon_msg "Switching off virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXMANAGE -nologo controlvm $VBOXNAME poweroff
          $IFCONFIG $TAPDEVICE down
          $IFCONFIG $TAPDEVICE up
          log_end_msg $?
          exit 0
          ;;
esac
echo No valid option found. Valid options are: start, start_with_vrdp, stop, reset, poweroff
exit 0
... und dann ausführbar gemacht und ins System eingetragen:
sudo chmod a+x /etc/init.d/iapp-vbox-$VBOXNAME.sh
sudo ln -s ../init.d/iapp-vbox-$VBOXNAME.sh /etc/rc2.d/S99iapp-vbox-$VBOXNAME
sudo ln -s ../init.d/iapp-vbox-$VBOXNAME.sh /etc/rc0.d/K99iapp-vbox-$VBOXNAME
sudo ln -s ../init.d/iapp-vbox-$VBOXNAME.sh /etc/rc6.d/K99iapp-vbox-$VBOXNAME
sudo /etc/init.d/iapp-vbox-$VBOXNAME.sh start

Virtuelle Maschine manuell starten/stoppen

  • Mit Hilfe des Startup-Skripts:
    • Starten: /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh start
    • Einfrieren für späteres Fortsetzen an derselben Stelle: /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh stop
    • Reset bei abgestürztem Gast-System: /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh reset
    • Ausschalten bei abgestürztem Gast-System: /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh poweroff
    • Starten mit rdp-Protokoll (zum Verbinden via rdesktop host-ip): /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh start_with_vrdp
  • Direkt mit den VirtualBox-Kommandos VBoxManage und VBoxHeadless (als Benutzer vboxuser):
    • Virtuelle Maschinen und ihre Konfigurationen anzeigen lassen: VBoxManage list vms | less
    • Aktuell laufende virtuelle Maschinen anzeigen lassen: VBoxManage list runningvms
    • Virtuelle Maschine konfigurieren: VBoxManage modifyvm Name_der_virtuellen_Maschine Dann wird eine Hilfe für die verfügbaren Argumente angezeigt.
    • Virtuelle Maschine starten: VBoxHeadless -s Name_der_virtuellen_Maschine -vrdp on|off
    • Virtuelle Maschine anhalten/resetten/etc.: VBoxManage controlvm Name_der_virtuellen_Maschine Dann wird eine Hilfe für die verfügbaren Argumente angezeigt.
    • Eine Liste aller verfügbaren Aktionen erscheint direkt nach Eingabe von VBoxManage

Quellen/Links

Sonntag, 28. September 2008, 19:49

Der Headless mode von VirtualBox kann verwendet werden, um eine virtuelle Maschine auf einem Host ohne grafisches Frontend zu betreiben.

Host-System

Betriebssystem

Ubuntu Server ohne grafische Benutzeroberfläche als Standard-Installation mit OpenSSH-Server. (Getestet mit 8.04)

VirtualBox installieren

Der Headless mode ist nur in der non-OSE-Version von VirtualBox verfügbar. Die non-OSE-Version ist nicht bei Ubuntu dabei, daher muss erst das VirtualBox-Repository hinzugefügt werden.

sudo bash -c "echo deb http://download.virtualbox.org/virtualbox/debian hardy non-free > /etc/apt/sources.list.d/virtualbox.list"
sudo wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install mc virtualbox-2.0
sudo adduser vboxuser
sudo usermod -a -G vboxusers vboxuser
sudo usermod -a -G admin vboxuser

Netzwerkbrücke einrichten (bridged networking)

Hinweis: Netzwerk-Bridging ist in der aktuellen Version von VirtualBox für die meisten Anwendungen nicht mehr nötig. Mein Tipp: Versuche erst, ob der Server nicht auch ohne Bridging läuft. ;)

Damit ein Server-Dienst auf dem Gast erreichbar ist, muss die virtuelle Netzwerkkarte mit Hilfe einer Netzwerkbrücke an die Host-Netzwerkkarte angeschlossen werden (siehe auch http://wiki.ubuntuusers.de/VirtualBox).

Achtung: Die Netzwerkkarte, an die die virtuellen Maschinen angekoppelt werden, muss als eth0 konfiguriert sein.
(Dies kann ggf. in /etc/udev/rules.d/70-persistent-net.rules angepasst werden.)

Auf dem Host werden die Pakete bridge-utils und uml-utilities benötigt:

sudo apt-get install bridge-utils uml-utilities

Beim Systemstart muss die Netzwerkbrücke erstellt und mit eth0 verbunden werden und für jede virtuelle Maschine wird ein virtuelles Netzwerkgerät tap erstellt:

sudo mcedit /etc/init.d/iapp-network-bridge.sh

Der Inhalt der Datei:

#!/bin/bash 

NUMBER_OF_TAPS=1

BRCTL=/usr/sbin/brctl
IFCONFIG=/sbin/ifconfig
DHCLIENT=/sbin/dhclient
CHMOD=/bin/chmod
CHGRP=/bin/chgrp
TUNCTL=/usr/sbin/tunctl

test -f $BRCTL || exit 0
test -f $IFCONFIG || exit 0
test -f $DHCLIENT || exit 0
test -f $CHMOD || exit 0
test -f $CHGRP || exit 0
test -f $TUNCTL || exit 0

. /lib/lsb/init-functions

case "$1" in
start)   log_daemon_msg "Starting network bridge" "iapp-network-bridge"
         $BRCTL addbr br0
         $BRCTL addif br0 eth0
         $DHCLIENT br0
         $IFCONFIG eth0 0.0.0.0
         $CHMOD 0660 /dev/net/tun
         $CHGRP vboxusers /dev/net/tun
         typeset -i i
         i=0
         while [ $i -lt $NUMBER_OF_TAPS ]
         do $TUNCTL -t tap$i -u vboxuser
            ifconfig tap$i up
            brctl addif br0 tap$i
            i=i+1
         done
         log_end_msg $?
         ;;
stop)    log_daemon_msg "Stopping network bridge" "iapp-network-bridge"
         typeset -i i
         i=0
         while [ $i -lt $NUMBER_OF_TAPS ]
         do ifconfig tap$i down
            brctl delif br0 tap$i
            i=i+1
         done
         $IFCONFIG br0 down
         $BRCTL delbr br0
         $DHCLIENT eth0
         log_end_msg $?
         ;;
restart) /etc/init.d/iapp-network-bridge.sh stop
         /etc/init.d/iapp-network-bridge.sh start
         ;;
esac
exit 0

Die Anzahl der virtuellen Netzwerkkarten (taps), die erstellt werden, kann in der ersten Programmzeile festgelegt werden. Die erstellten Devices werden, beginnend mit tap0, tap1 etc. durchnummeriert.

Mit den folgenden Kommandos wird die Netzwerkbrücke automatisch beim Systemstart gestartet.

sudo chmod a+x /etc/init.d/iapp-network-bridge.sh
sudo ln -s ../init.d/iapp-network-bridge.sh /etc/rc2.d/S50iapp-network-bridge
sudo /etc/init.d/iapp-network-bridge.sh start

Virtuelle Maschine einrichten

Eine virtuelle Maschine neu erstellen und installieren

Virtuelle Maschine erstellen und für die Installation der Betriebssystems konfigurieren:

VBOXNAME=Name_der_virtuellen_Maschine
TAPDEVICE=Tap-Device_der_virtuellen_Maschine
MAC=MAC-Adresse_ohne_Doppelpunkte_z.B._001122334455
INSTALL_ISO=ISO-Datei_der_Installations-CD_absoluter_Pfad
sudo -H -u vboxuser VBoxManage createvm -name $VBOXNAME -register
sudo -H -u vboxuser VBoxManage createvdi -filename $VBOXNAME.vdi -size 10240 -register
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -ostype ubuntu -memory 2000 -hda $VBOXNAME.vdi -nic1 hostif -hostifdev1 $TAPDEVICE -macaddress1 $MAC
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -pae off -dvd $INSTALL_ISO -boot1 dvd

Virtuelle Maschine für Betriebssystem-Installation starten:

sudo -H -u vboxuser VBoxHeadless -startvm $VBOXNAME -vrdp on &

Jetzt m.H.v. „rdesktop <IP-Adresse des Hosts>“ mit der virtuellen Maschine verbinden und Betriebssystem installieren. Dabei ist darauf zu achten, dass auf der virtuellen Maschine ein SSH-Server installiert und aktiviert wird.

Falls das Gast-System Ubuntu ist, muss der Generic-Kernel installiert werden, da der Standard-Kernel nur im PAE/NX-Modus mit der Virtuellen Maschine kompatibel ist. (Der PAE/NX-Modus kann nur bei aktiviert werden, wenn nur ein Gast auf dem Host läuft, sonst bricht die Zuverlässigkeit dramatisch ein; er sollte daher generell vermieden werden.)

  • Die virtuelle Maschine herunterfahren und die Installation-CD erneut einhängen
    sudo -H -u vboxuser VBoxManage controlvm $VBOXNAME poweroff
    sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -dvd none
    sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -dvd $INSTALL_ISO -boot1 dvd
  • Im Rettungsmodus starten, dort den Generic-Kernel installieren
    apt-get install linux-generic
    exit
  • Den Gast neu starten und von Festplatte booten, dabei per Escape-Taste ins Grub-Menü springen und den Generic-Kernel (dritter Eintrag) booten
  • Im Boot-Menü die Boot-Abschnitte so sortieren, dass der Generic-Kernel an erster Stelle steht
    sudo apt-get install mc
    sudo mcedit /boot/grub/menu.lst
  • Den Gast herunterfahren
    sudo halt

Nun kann die virtuelle Maschine für den regulären Betrieb vorbereitet werden (ISO-Image aushängen, PAE/NX-Modus deaktivieren):

sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -dvd none -boot1 disk -pae off

Eine virtuelle Maschine umziehen

1. Auf der virtuellen Maschine

Die virtuelle Maschine muss heruntergefahren werden:

sudo halt

2. Auf dem Ursprungs-Host

Den Namen der virtuellen Maschine definieren:

VBOXNAME=Name_der_virtuellen_Maschine

Eine virtuelle Maschine kann nur umgezogen werden, wenn keine Datenträger an sie angeschlossen sind. Zunächst muss also die Festplatte ausgehängt werden:

sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -hda none

Dann kann die virtuelle Maschine von VirtualBox abgemeldet werden:

sudo -H -u vboxuser VBoxManage unregistervm $VBOXNAME

3. Auf dem Ziel-Host

Den Namen der virtuellen Maschine definieren:

VBOXNAME=Name_der_virtuellen_Maschine
VBOXSOURCEHOST=IP_des_Ursprungs-Hosts

Nun werden das Festplattenimage und die Virtuelle Maschine auf das Zielsystem kopiert:

sudo -H -u vboxuser mkdir -p ~vboxuser/.VirtualBox/VDI
sudo -H -u vboxuser mkdir -p ~vboxuser/.VirtualBox/Machines
sudo -H -u vboxuser scp -r $VBOXSOURCEHOST:/home/vboxuser/.VirtualBox/Machines/$VBOXNAME ~vboxuser/.VirtualBox/Machines
sudo -H -u vboxuser scp $VBOXSOURCEHOST:/home/vboxuser/.VirtualBox/VDI/$VBOXNAME.vdi ~vboxuser/.VirtualBox/VDI/

Nun müssen die Dateien bei VirtualBox registriert werden:

sudo -H -u vboxuser VBoxManage registerimage disk $VBOXNAME.vdi
sudo -H -u vboxuser VBoxManage registervm Machines/$VBOXNAME/$VBOXNAME.xml
sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -hda $VBOXNAME.vdi

Ggf. muss nun noch das richtige TAP-Device angegeben werden:

sudo -H -u vboxuser VBoxManage modifyvm $VBOXNAME -hostifdev1 TAP-Device

Nun ist die virtuelle Maschine lauffähig.

Startup- und Shutdown-Skripte erstellen

Die Skripte sind notwendig, wenn die virtuelle Maschine automatisch beim Systemstart gestartet werden soll. Sie sorgen auch dafür, dass beim Herunterfahren des Systems auch die virtuelle Maschine automatisch eingefroren und beim nächsten Booten an derselben Stelle fortgesetzt wird.

Zunächst wird das Skript erstellt:

VBOXNAME=Name_der_virtuellen_Maschine
sudo mcedit /etc/init.d/iapp-vbox-$VBOXNAME.sh

Der Inhalt der Datei:

#!/bin/bash

VBOXNAME=Name_der_virtuellen_Maschine
TAPDEVICE=Tap-Device_der_virtuellen_Maschine

VBOXHEADLESS=/usr/bin/VBoxHeadless
VBOXMANAGE=/usr/bin/VBoxManage
IFCONFIG=/sbin/ifconfig

test -f $VBOXHEADLESS || exit 0
test -f $VBOXMANAGE || exit 0
test -f $IFCONFIG || exit 0

. /lib/lsb/init-functions

case "$1" in
start)    log_daemon_msg "Starting virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXHEADLESS -startvm $VBOXNAME -vrdp off &
          sleep 1
          log_end_msg $?
          exit 0
          ;;
start_with_vrdp) log_daemon_msg "Starting virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXHEADLESS -startvm $VBOXNAME -vrdp on &
          sleep 1
          echo You can connect the virtual machine now using \"rdesktop `ifconfig br0 | grep -oe "inet addr:\\([0-9]\\+\\.\\?\\)\\+" | grep -oe "\\([0-9]\\+\\.\\?\\)\\+"`\"
          log_end_msg $?
          exit 0
          ;;
stop)     log_daemon_msg "Stopping virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXMANAGE -nologo controlvm $VBOXNAME savestate
          log_end_msg $?
          exit 0
          ;;
reset)    log_daemon_msg "Resetting virtual machine $VBOXNAME" ""
          $IFCONFIG $TAPDEVICE down
          $IFCONFIG $TAPDEVICE up
          sudo -H -u vboxuser $VBOXMANAGE -nologo controlvm $VBOXNAME reset
          log_end_msg $?
          exit 0
          ;;
poweroff) log_daemon_msg "Switching off virtual machine $VBOXNAME" ""
          sudo -H -u vboxuser $VBOXMANAGE -nologo controlvm $VBOXNAME poweroff
          $IFCONFIG $TAPDEVICE down
          $IFCONFIG $TAPDEVICE up
          log_end_msg $?
          exit 0
          ;;
esac
echo No valid option found. Valid options are: start, start_with_vrdp, stop, reset, poweroff
exit 0

… und dann ausführbar gemacht und ins System eingetragen:

sudo chmod a+x /etc/init.d/iapp-vbox-$VBOXNAME.sh
sudo ln -s ../init.d/iapp-vbox-$VBOXNAME.sh /etc/rc2.d/S99iapp-vbox-$VBOXNAME
sudo ln -s ../init.d/iapp-vbox-$VBOXNAME.sh /etc/rc0.d/K99iapp-vbox-$VBOXNAME
sudo ln -s ../init.d/iapp-vbox-$VBOXNAME.sh /etc/rc6.d/K99iapp-vbox-$VBOXNAME
sudo /etc/init.d/iapp-vbox-$VBOXNAME.sh start

Virtuelle Maschine manuell starten/stoppen

  • Mit Hilfe des Startup-Skripts:
    • Starten:
      /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh start
    • Einfrieren für späteres Fortsetzen an derselben Stelle:
      /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh stop
    • Reset bei abgestürztem Gast-System:
      /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh reset
    • Ausschalten bei abgestürztem Gast-System:
      /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh poweroff
    • Starten mit rdp-Protokoll (zum Verbinden via rdesktop host-ip):
      /etc/init.d/iapp-vbox-Name_der_virtuellen_Maschine.sh start_with_vrdp
  • Direkt mit den VirtualBox-Kommandos VBoxManage und VBoxHeadless (als Benutzer vboxuser):
    • Virtuelle Maschinen und ihre Konfigurationen anzeigen lassen:
      VBoxManage list vms | less
    • Aktuell laufende virtuelle Maschinen anzeigen lassen:
      VBoxManage list runningvms
    • Virtuelle Maschine konfigurieren:
      VBoxManage modifyvm Name_der_virtuellen_Maschine
      Dann wird eine Hilfe für die verfügbaren Argumente angezeigt.
    • Virtuelle Maschine starten:
      VBoxHeadless -s Name_der_virtuellen_Maschine -vrdp on|off
    • Virtuelle Maschine anhalten/resetten/etc.:
      VBoxManage controlvm Name_der_virtuellen_Maschine
      Dann wird eine Hilfe für die verfügbaren Argumente angezeigt.
    • Eine Liste aller verfügbaren Aktionen erscheint direkt nach Eingabe von VBoxManage

Quellen/Links

Viele Dateien auf einmal umbenennen

Johannes Widmer, Es passiert doch immer wieder, dass man eine größere Menge von Dateien umbenennen möchte, indem einzelne Teile des Dateinamens ersetzt, erweitert oder weggelassen werden sollen, und zwar bei allen Dateien auf die gleiche Weise. Während der klassische Linuxer sich hier wahrscheinlich ellenlange Kommandozeilen zusammenbaut, habe ich im "mc" einen schönen Menüpunkt gefunden, das auch ohne viel Kommandozeilen-Vorwissen zu bewerkstelligen. Hierfür muss man zunächst den "mc" installieren, am einfachsten über die Synaptec-Paketverwaltung unter "System" > "Systemverwaltung". Dann kann man den "mc" starten, indem man Alt+F2 drückt, in das Eingabefeld "mc" eingibt, ein Häkchen bei "Im Terminal ausführen" setzt und dann auf "Ausführen" klickt. Nun navigiert man mit Hilfe der Pfeiltasten und der Enter-Taste in das Verzeichnis, in dem sich die Dateien befinden und markiert dann alle Dateien, die umbenannt werden, mit der Einfügen-Taste (sie müssen dann in gelber Schrift erscheinen). Dann drückt man F6 (für "Umbenennen") und gibt in die beiden grünen Eingabefelder ein, wie die Datei umbenannt werden soll. Ein Sternchen (*) steht dabei für veränderliche Teile des Dateinamens. Wenn man zum Beispiel eine Reihe Fotos von "Image 1.jpg", "Image 2.jpg" usw. nach "Bild 1.jpg", "Bild 2.jpg" usw. umbenennen möchte, gibt man in das erste Feld "Image*.jpg" ein und ins zweite Feld "Bild*.jpg". Das ganze bestätigt man zB per Enter-Taste und schon sind alle Dateien umbenannt.Mittwoch, 20. August 2008, 00:48

Es passiert doch immer wieder, dass man eine größere Menge von Dateien umbenennen möchte, indem einzelne Teile des Dateinamens ersetzt, erweitert oder weggelassen werden sollen, und zwar bei allen Dateien auf die gleiche Weise. Während der klassische Linuxer sich hier wahrscheinlich ellenlange Kommandozeilen zusammenbaut, habe ich im „mc“ einen schönen Menüpunkt gefunden, das auch ohne viel Kommandozeilen-Vorwissen zu bewerkstelligen. Hierfür muss man zunächst den „mc“ installieren, am einfachsten über die Synaptec-Paketverwaltung unter „System“ > „Systemverwaltung“. Dann kann man den „mc“ starten, indem man Alt+F2 drückt, in das Eingabefeld „mc“ eingibt, ein Häkchen bei „Im Terminal ausführen“ setzt und dann auf „Ausführen“ klickt. Nun navigiert man mit Hilfe der Pfeiltasten und der Enter-Taste in das Verzeichnis, in dem sich die Dateien befinden und markiert dann alle Dateien, die umbenannt werden, mit der Einfügen-Taste (sie müssen dann in gelber Schrift erscheinen). Dann drückt man F6 (für „Umbenennen“) und gibt in die beiden grünen Eingabefelder ein, wie die Datei umbenannt werden soll. Ein Sternchen (*) steht dabei für veränderliche Teile des Dateinamens. Wenn man zum Beispiel eine Reihe Fotos von „Image 1.jpg“, „Image 2.jpg“ usw. nach „Bild 1.jpg“, „Bild 2.jpg“ usw. umbenennen möchte, gibt man in das erste Feld „Image*.jpg“ ein und ins zweite Feld „Bild*.jpg“. Das ganze bestätigt man zB per Enter-Taste und schon sind alle Dateien umbenannt.

Video-DVD brennen

Johannes Widmer, , 00:24

Nun habe ich eine wunderschöne neue Digital-Videokamera vor mir liegen und möchte die Videos, die ich damit aufgenommen habe, auf DVD brennen, so dass sie von einem normalen DVD-Player am Fernseher abgespielt werden können, inklusive hübschem Auswahlmenü. Nach einigem Herumprobieren bin ich nun auf die sehr einfache und sofort funktionsfähige Software DeVeDe gestoßen. Nach der Installation (ist bei Ubuntu 8.04 zum Installieren dabei) funktioniert sie sofort mit dem gewünschten Ergebnis. Zunächst schließe ich die Videokamera per USB an den Rechner an und kopieren die Videodateien auf die Festplatte. Dann DeVeDe starten, als Disk-Typ „Video-DVD“ auswählen, dann kann man die DVD zusammenstellen: Zunächst erstellt man für jeden Titel, der im DVD-Menü erscheinen soll, einen „Titel“ in der linken Spalte, dann fügt man zu jedem Titel die Video-Datei(en) hinzu, die beim Auswählen des entsprechenden Menüpunkts vom DVD-Abspielgerät gespielt werden sollen. Zum Hinzufügen einer Datei gehe ich folgendermaßen vor: Ich klicke auf „Hinzufügen“ unter der „Dateien“-Liste, dann klicke ich auf „(keine)“ und wähle im erscheinenden Dialog die gewünschte Video-Datei aus. Nun habe ich durch ein paar Tests noch herausgefunden, dass für eine halbwegs ordentliche Qualität ein DeInterlacing ganz wichtig ist (das muss nicht für jede Kamera zutreffen), das stelle ich ein, indem ich „Erweiterte Optionen“ ausklappe und unter „Qualitätseinstellungen“ den „FFMpeg-Deinterlacing-Filter“ auswähle (das muss bei jeder Datei einzeln angeklickt werden). Zum Abschluss wähle ich die Aktion „Erzeuge ein brennfertiges ISO- oder BIN/CUE-Abbild“ und starte die Konvertierung der Dateien mit Klick auf „Vor“. Die .iso-Datei, die nun erstellt wird, klicke ich nach Abschluss der (recht lange dauernden) Konvertierungsprozedur einfach doppelt an, woraufhin Ubuntu gleich den Dialog zum Brennen des Abbilds auf DVD anzeigt, mit dem ich den Brennvorgang starte – und fertig ist die Video-DVD. :)

Bin-Datei starten

Johannes Widmer, Einige Programme (z.B. Google Earth) werden als ".bin"-Dateien angeboten. (Bin ist die Abkürzkung für "Binär-Datei".) Das sind ausführbare Dateien, das heißt man muss die Datei direkt starten. (Man öffnet die Datei also nicht, wie z.B. eine deb- oder rpm-Paketdatei, mit Hilfe eines Paketmanagers oder einer anderen Software.) Damit das möglich ist, muss die Datei aber zuerst ausführbar gemacht werden. Das geht mit Rechtsklick auf die Datei -> Eigenschaften -> Zugriffsrechte -> ein Häkchen bei "Datei als Programm ausführen" setzen. Danach kann man die Datei direkt per Doppelklick starten. In einigen Fällen kommt an dieser Stelle immer noch die Fehlermeldung "[...] konnte nicht angezeigt werden. Für diesen Dateitypen ist keine Anwendung installiert.". In diesem Fall muss man die Datei per Kommandozeile starten. Dafür sollte man die Datei zuerst so umbenennen (rechte Maustaste -> Umbenennen), dass keine Leerzeichen oder Sonderzeichen mehr enthalten sind. Dann kann's los gehen: Zuerst das Terminal starten (Anwendungen -> Zubehör -> Terminal), dort in den entsprechenden Ordner wechseln (falls die Datei z.B. auf dem Desktop liegt, gibt man "cd ↵ cd Desktop" ein; steht dabei für die Enter-Taste) und dann den Dateinamen mit vorangestelltem "./" eingeben und wieder mit Enter bestätigen. Falls die Datei also zum Beispiel "MeinProgramm.bin" heißt und auf dem Desktop liegt, startet man das Programm mit folgenden drei Befehlen:
cd cd Desktop ./MeinProgramm.bin
Voraussetzung dafür ist natürlich, dass man die Datei zuvor ausführbar gemacht hat (s.o. "Datei als Programm ausführen").Donnerstag, 24. Juli 2008, 11:02

Einige Programme (z.B. Google Earth) werden als „.bin“-Dateien angeboten. (Bin ist die Abkürzkung für „Binär-Datei“.) Das sind ausführbare Dateien, das heißt man muss die Datei direkt starten. (Man öffnet die Datei also nicht, wie z.B. eine deb- oder rpm-Paketdatei, mit Hilfe eines Paketmanagers oder einer anderen Software.) Damit das möglich ist, muss die Datei aber zuerst ausführbar gemacht werden. Das geht mit Rechtsklick auf die Datei -> Eigenschaften -> Zugriffsrechte -> ein Häkchen bei „Datei als Programm ausführen“ setzen. Danach kann man die Datei direkt per Doppelklick starten. In einigen Fällen kommt an dieser Stelle immer noch die Fehlermeldung „[…] konnte nicht angezeigt werden. Für diesen Dateitypen ist keine Anwendung installiert.“. In diesem Fall muss man die Datei per Kommandozeile starten. Dafür sollte man die Datei zuerst so umbenennen (rechte Maustaste -> Umbenennen), dass keine Leerzeichen oder Sonderzeichen mehr enthalten sind. Dann kann’s los gehen: Zuerst das Terminal starten (Anwendungen -> Zubehör -> Terminal), dort in den entsprechenden Ordner wechseln (falls die Datei z.B. auf dem Desktop liegt, gibt man „cd ↵ cd Desktop“ ein; steht dabei für die Enter-Taste) und dann den Dateinamen mit vorangestelltem „./“ eingeben und wieder mit Enter bestätigen. Falls die Datei also zum Beispiel „MeinProgramm.bin“ heißt und auf dem Desktop liegt, startet man das Programm mit folgenden drei Befehlen:

cd
cd Desktop
./MeinProgramm.bin

Voraussetzung dafür ist natürlich, dass man die Datei zuvor ausführbar gemacht hat (s.o. „Datei als Programm ausführen“).

Mit Inkscape zaubern

Johannes Widmer, Eine wunderbare Seite mit einer Menge Anleitungen, wie man mit Inkscape die tollsten Sachen zeichnen kann, findet sich auf dem Inkscape Tutorials weblog – unbedingt einen Besuch wert!Montag, 24. März 2008, 20:19

Eine wunderbare Seite mit einer Menge Anleitungen, wie man mit Inkscape die tollsten Sachen zeichnen kann, findet sich auf dem Inkscape Tutorials weblog – unbedingt einen Besuch wert!

Vektorgrafik unter Linux

Johannes Widmer, , 20:15

Inkscape vs. OpenOffice.org Draw

Da ich immer mal wieder Plakate, Poster, Pläne, Flyer, T-Shirts, Postkarten oder ähnliches gestalte, bin ich regelmäßiger Benutzer von Vektorgrafik-Programmen. Unter Windows war ich treuer CorelDraw-Nutzer, aber als ich dann auf Linux umstieg, stellte sich da natürlich gleich die Frage, welches Programm hier am besten geeignet ist. Und ich war überrascht: Es gibt gleich zwei ganz gute Alternativen. Leider sind beide nicht ganz perfekt, aber bisher habe ich jede Herausforderung mit einem der beiden gemeistert. Beide Programme sind bei Ubuntu 7.04 schon dabei, man kann sie direkt über die Paketverwaltung installieren.

  1. Inkscape kommt CorelDraw sicher am nächsten, und das schönste ist, dass es mit dem SVG-Dateityp arbeitet, der sich derzeit langsam aber sicher als Vektorgrafik-Standard herauskristallisiert und inzwischen sogar von Firefox von Haus aus angezeigt wird. Leider befindet es sich derzeit noch merklich im Entwicklungsstadium und neben Problemen beim Export in andere Dateiformate macht mir vor allem die schlechte Performance beim Bearbeiten großer und komplexer Bilder mit vielen Effekten und Tranzparenzen zu schaffen. (Die aktuelle Versionsnummer 0.45 weist ja schon darauf hin, dass es sich noch nicht um ein komplett ausgereiftes Produkt handelt.)
  2. Deutlich besser macht sich da OpenOffice.org Draw, das ist die Grafik-Komponente des OpenOffice.org-Projekts (ich nutze derzeit Version 2.3). Das ist ein rundum tolles, reifes, stabiles Produkt, das wenige Wünsche bezüglich Performance und Anwenderfreundlichkeit offen lässt und einen sehr soliden Funktionsumfang hat … wenn … ja wenn da nicht das große Problem mit den Farben wäre. OOo Draw erlaubt es nicht, die Farbe eines Objekts frei einzustellen, man kann eine Farbe lediglich aus einer vorher definierten Palette auswählen, was die Bedienung unnötig kompliziert macht. Man kann zwar inzwischen die Palette sehr einfach um neue Farben erweitern, aber zur Feinabstimmung der Farben per Try-and-error ist das ganze dann doch leider nicht so gut geeignet.