Don't understand german? Read or subscribe to my english-only feed.

git: einen spezifischen Commit holen

January 9th, 2006

Bei meiner Arbeit am grml-kernel heisst es natürlich auch Changelog studieren. Das Changelog für Linux-Kernel 2.6.15 wiegt 2.6MB, da ist aber noch kein Sourcecode drin. ;-) Natürlich gibt es aber einige Commits, die mich näher interessieren. Als Beispiel sowas wie:

commit d0be4a7d29ad0bd3ce2209dd9e46d410b632db59
Author: Christoph Hellwig <hch@lst.de>
Date:   Mon Oct 31 18:31:40 2005 +0100

    [SCSI] remove Scsi_Host_Template typedef                                                                                                        

    Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

Wie aber kommt man jetzt an diesen einen Commit mit der nichts-aussagendenden ID ‘d0be4a7d29ad0bd3ce2209dd9e46d410b632db59’? Ich möchte keinen ganzen Tree klonen, da ich Kernelchanges an sich via RSS-Feed verfolge (siehe kernel.org/git/) und möglichst wenig Daten lokal halten will. Meine Lösung ist folgender Eintrag in der zshrc:

# get specific git commitdiff
  git-get-diff() {
    if [ -z $GITTREE ] ; then
      GITTREE='linux/kernel/git/torvalds/linux-2.6.git'
    fi
    if ! [ -z $1 ] ; then
     $BROWSER "http://kernel.org/git/?p=$GITTREE;a=commitdiff;h=$1"
    else
      echo "Usage: git-get-diff <commit>"
    fi
  }
# get specific git commit
  git-get-commit() {
    if [ -z $GITTREE ] ; then
      GITTREE='linux/kernel/git/torvalds/linux-2.6.git'
    fi
    if ! [ -z $1 ] ; then
     $BROWSER "http://kernel.org/git/?p=$GITTREE;a=commit;h=$1"
    else
      echo "Usage: git-get-commit <commit>"
    fi
  }

Mit einem ‘git-get-commit d0be4a7d29ad0bd3ce2209dd9e46d410b632db59’ bekomm ich jetzt den Commit selbst, den Patch/Diff sehe ich dann mit ‘git-get-diff d0be4a7d29ad0bd3ce2209dd9e46d410b632db59’. Tut genau was ich will.

Da das vermutlich auch für andere Leute nützlich sein könnte, wandert das mal in /etc/skel/.zshrc von grml und wird mit der nächsten Release ausgeliefert. Works-for-me, works-for-you. ;-)

PS: Ich stehe mit git ein wenig auf Kriegsfuß, falls jemand eine elegantere Variante (sei es direkt via git oder cogito) kennen sollte: her damit!

music players on Linux / Debian (Update)

January 2nd, 2006

There exists such a lot of music players on Linux that nearly everyone uses a different player. ;-) I was using xmms for some time and switched to mp3blaster and other clients some time ago. I was not really happy with the situation, so it was time to evaluate the existing clients. This should give you a short overview about music players on Linux (more precise: Debian).

What’s important for me? The player should be fast and stable. The player has to play all common file formats (mp3, ogg, flac,…). The interface must be easy to handle, even without reading a manpage. Some kind of a playlist would be nice, exporting it to a humane readable format would be perfect. A search function within the playlist would be fine. Very important: the player should be maintained nowadays. I don’t need another dead-project-at-sourceforge-ng++. A debian package should be available. Console players are welcome. If the player requires X it should integrate smooth in the desktop environment (fluxbox, KDE,…). What I’ve not tested is access via NFS, sshfs,… and long time stability (handling of corrupt files, /dev/snd/*-handling,…).

This collection of course does not handle all available music player on linux. You might find some more players browsing the sound section of Debian or running “debtags search ‘sound::player'” but I tried to test the most promising ones. So, there we go:


alsaplayer: the “PCM player designed for ALSA” is available in a console version (alsaplayer-text) and in a graphical (alsaplayer-gtk). The speed bar is a nice feature. Output is not limited to alsa, there exist plugins for NAS, EsounD, OSS,… The textinterface is very minimalistic and the gtk-interface is not that intiutive as it could be IMO. The changelog shipped with the debian packages says that the last upstream changes have taken place in 2003.
screenshot alsaplayer


amaroK: “versatile and easy to use audio player for KDE” can output to different sound systems (aRts, GStreamer and XINE). It requires kdelibs and even then it wants “34.4MB of additional disk space”. It uses a database for storing information about the used soundfiles, sqlite is the default. Fetching covers from amazon rocks. Fetching lyrics rocks awfully. The interface is nice and if you are playing a little bit with it you might even get it under control. ;-) It provides a lot of configuration possibilities. Integration into desktop (even fluxbox) is nice. Using the kdemultimedia-kio-plugins package provides the ‘audiocd:/’ kioslave. After reading the FAQ I found out why it did not work for me (fixed that by changing engine to gstreamer). Quitting amaroK fades out sound. :-) amaroK is maintained and still under development (latest release on 2005-11-08). There’s a big community around amaroK, check out the amaroK wiki.
screenshot of amarok


beep-media-player: “Versatile audio player that supports Winamp skins”. A player that supports Winamp skins, with a customizable interface based on GTK2. It has various output plugins and can read various audio formats. A debian package is available, but BMP itself is discontinued: it’s developed unter the name BMPx. BMPx is the codename for the next generation of BMP. As written on the BMPx-homepage: “Please be aware that BMPx is still in development, and not all features might work to your satisfaction, as well as features may be altered during the still ongoing development process, or possibly entirely go away, as we are designing not only by theory, but also by practice and experience.” Latest version of BMP (0.9.7.1) was released on 22 October 2005.


cdcd: “command line or console based CD player”. cdcd plays only audio cds using libcdaudio. Easy to use command line interface. Last upstream changes on 2004-04-03.


cdtool: “text-based audio CD player and CD-ROM control commands”. cdtool provides several binaries namend cdplay, cdstop, cdvolume, cdeject and so on. Easy to handle but plays only audios cds. Last upstream changes on 2005-11-09.


cmus: “C* Music Player – ncurses based, small and fast”. Supports several file formats (FLAC, Ogg/Vorbis, MP3, Wav, mod, s3m) and output plugins (ALSA, ARTS, OSS, Sun). Nice: can be controlled via UNIX socket using cmus-remote command. I’ve created a debian package for grml Linux live-cd, it’s available through the grml-repository. Last upstream changes on 2006-01-02.


cplay: “A front-end for various audio players”. Minimalistic. If you find the ‘h’ key for help (why does not ‘?’ work as well?) it’s easy to use. Last upstream changes on 2005-11-10.


juk: “music organizer and player for KDE”. Requires kdelibs but is smaller than amaroK whileas it looks quite similar to amaroK. Supports several audio formats (MP3, Ogg Vorbis, FLAC, MPC) and multiple audio output backends (aRts, GStreamer 0.8, aKode). Nice features: cover art management via google image search, “guess tag information via internet”. Still under development (in package kdemultimedia).
screenshot of juk


juke: “A curses-based jukebox program”. Very simple interface, not really comfortable. juke-0.7 was relead on 2001.2.11, does not seem to be maintained anymore outside of debian.


kscd: audio CD player for KDE. Part of the kdemultimedia suite and maintained as part of it also in Debian. Simple interface but only useful for audio cds of course.


mcdp: “Small console cd player”. Another audio cd player. Last release on 2004-02-20.
screenshot of mcdp


mikmod: “Portable tracked music player”. Strange command line interface. Does not take a list of audio files as command line arguments. :-( Last release on 2004-02-02.
screenshot of mikmod


moc: “ncurses based console audio player”. Easy to handle ncurses interface. Supported file formats are: MP3, OGG Vorbis, FLAC, WAVE, SPEEX, Musepack (MPC), AIFF and AU. But searching in the help menu is not possible. Using themes for look’n’feel is possible (and for me necessary as I don’t like the default blue theme). Detaching mocp (the executable) is possible [press ‘q’] and lets you restore later again while continue playing in the meantime. Quiting mocp is possible via ‘Q’. I basically like moc but I could not find a way to play an audio CD.
screenshot of moc


mpd (music Player Daemon) plays MP3, Ogg Vorbis, FLAC, MP4/AAC, Mod, Musepack, and wave files. It’s possible to remotely control MPD over a network (IPv4 and IPv6 supported) and play MP3 and Ogg Vorbis streams. More details of mpd’s features are available in the wiki. mpd supports a lot of different clients. For example ncmpc or mpc on console and Pygmy as graphical interface. mpd is still maintained upstream. (Notice: I’ve not taken a closer look at the clients, it’s on my todolist.)


mpg123: “MPEG layer 1/2/3 audio player”. It’s not available under a free license. There are security issues and it’s not maintained any more. Nothing you want to use.


mpg321: “A Free command-line mp3 player, compatible with mpg123”. Better than mpg123 but can’t handle different files than MPEG 1.0 layer III files. With irmp3 you can control mpg321 to play songs, lists, and lists of play lists. No updates since 2002-03-24.


mp3blaster: “Full-screen console mp3 and ogg vorbis player”. Basically a nice interface. But does not take directories as arguments. No updates since 2004-11-28.
screenshot of mp3blaster


mplayer: “The Ultimate Movie Player For Linux”. Hehe, yes – it’s a movie player. But it supports sound files as well and compared to some other players much more audio formats. ;-)


muine: “Simple playlist based music player”. Depends on mono (“27.7MB of additional disk space”). Supports Ogg Vorbis, FLAC, AAC and MP3. Strange handling of playlist: play song vs play album. The interface icons are broken here:

(muine:17880): Gtk-WARNING **: Error loading theme icon for stock: Icon 'stock_media-rew' not present in theme

screenshot of muine


music123: “A command-line shell for sound-file players”. Very minimalistic. Last update on 2004-06-12.


ncmpc: “text based audio player” [curses Music Player Daemon (MPD) client]
screenshot of ncmpc


ogg123: part of debian package vorbis-tools. ogg123 is mpg123/mpg321 for ogg files. Files can be read from the file system, or URLs can be streamed via HTTP.


orpheus: “Light-weight text mode menu- and window-driven audio player”. It does not seem to be able to load directories but only files. Playing audio cds is possible via pressing ‘f5’. It supports MP3 and Vorbis OGG. Last release on 2004-03-10.
screenshot of orpheus


pytone: “Music jukebox with advanced features for DJs and a text-mode user interface”.

mika@grml ~ % pytone
Traceback (most recent call last):
  File "/usr/share/pytone/pytone.py", line 115, in ?
    songdbid = songdbmanager.addsongdb(songdbname, config.database[songdbname])
  File "/usr/share/pytone/services/songdb.py", line 168, in addsongdb
    songdb = songdbs.local.songdb(id, config, self.songdbhub)
  File "/usr/share/pytone/services/songdbs/local.py", line 173, in __init__
    raise errors.configurationerror("musicbasedir '%s' of database %s is not a directory." % (self.basedir, self.id))
errors.configurationerror: PyTone configuration error: "musicbasedir '"of database main is not a directory."

Great. Ok, after creating a minimal ~/.pytone/pytonerc according to the homepage and /usr/share/doc/pytone/README.Debian it started up. I could not find a way to play an audio cd. Last upstream release on 2005-09-13, still mantained.

screenshot of pytone


randomplay: “command-line based shuffle music player that remembers songs between sessions”. Perlscript with minimalistic command line interface. Randomplay defaults to using ogg123 for ogg files and mpg321 for mp3 files, but you can specify other programs which should be used to play files.


rhythmbox: “music player and organizer for GNOME”. It provides audio format support through GStreamer and even supports DAAP. Using the sound-juicer package it’s possible to play audio-cds as well. Last upstream release (version 0.9.2) on 28th November 2005.
screenshot of rhythmbox


workbone: “A simple text-based CD player”. It’s again an interactive text-mode program for controlling and playing audio cds. Last debian package change on 2004-12-31, last upstream release in 1997/1998.


xmms: “Versatile X audio player”. xmms is “the winamp for Linux”. It’s able to read and play mp3, ogg, CDAudio, WAV, RAW, AU, MOD, XM, S3M,… It has eSound, OSS, and disk writer support for outputting sound. There are more than 50 xmms-related debian packages available (being all kinds of plugins and addons). Lots of skins are available. It provides a very fast search function. Still maintained but xmms2 is under development.
screenshot of xmms


zinf: “Extensible, cross-platform audio player”
screenshot of zinf


Personal conclusion: On the command line I’m still not sure which one I’ll buy for daily use. No one provides all the features I need. I think I’ve to check out the clients for mpd first. In the meanwhile moc looks promising (and maybe supports playing audio-cds in the near future? ;-)). For playing audio-cds on the command line I’m currently using orpheus and cdcd. As a graphical client xmms (if no kdelibs are available) and amaroK are my favourites. Now, let me know which one you like best!

Update [20060102]: Thanks for your comments. I added cmus and beep-media-player.

Du weisst, dass ein neues Jahr beginnt…

January 1st, 2006

… wenn centericq verhältnismäßig viele Geburtstagserinnerungen meldet.

Bananensoftware

December 13th, 2005

Ja. Bananensoftware sollte man laut der heutigen Millionenshow kennen. Oder zumindest den Begriff. ;-)

Kaputte Partitionstabelle

December 12th, 2005

*

Heute durfte zur Abwechslung wieder mal grml an die Reihe. ;-)

Problemkind: ein Freund hat auf seinem Laptop “schnell mal Windows installieren” wollen. Leider hat er eine Recovery-CD herangezogen. Diese hat die Partitionstabelle und die 1. Partition (FAT32) anscheinend schneller geschrottet, als man Amen sagen kann. Das Backup in Form eines Images liegt natürlich wo? Genau, in der 2. Partition (ebenfalls FAT32). 8-) Nur war keine 2. Partition mehr vorhanden, sondern die Recovery-CD hat auch gleich eine neue Partition über die ganze Platte hinweg angelegt. :-(

Als erster Schritt stand natürlich einmal das Sichern der Partition auf dem Plan. Ich hab einfach die Partition direkt via netcat auf einen anderen Rechner kopiert:

% dd if=/dev/hda1 | nc 192.168.1.2 30000 -w 3

Am Backuprechner entsprechend ein:

% nc -v -l -p 30000 > hda1.img

Dann hab ich mal gpart auf die Platte losgelassen. Es hat zwar eine Partition, allerdings nicht den passenden Partitionsbereich gefunden. strings(1) und ein manuelles Betrachen der ersten paar Sektoren haben mir aber gezeigt, dass wirklich noch Daten drauf sind. Mit testdisk hab ich auch in die Partition schauen können, und irgendwann hatte ich dann auch eine funktionierende Partitionstabelle zusammengebastelt. Aus dem unpartitionierten Bereich noch eine “erste Partition” via cfdisk gemacht, die zweite dann endlich erfolgreich gemountet. Image zurückspielen – und ferdisch. Und wie das mit dem Backup wirklich geht,… ;-)

swaks – SMTP command-line test tool

December 10th, 2005

swaks ist ein Perlskript, um sich die manuelle telnet-Tipperei beim Versenden von Mails zu ersparen. Wer öfters an Mailservern rumschraubt, wird z.B. die eingebauten Mechanismen fürs Testen von STARTTLS, TLS, SPA & CO schätzen.

Und wer – wie ich – im VC-Graz sitzt (in dem Port 25 deaktiviert ist), kein vollwertiges Mailserversetup wie z.B. mit Postfix besitzt und die Mails auch nicht via ssh tunnelt, kann mit swaks trotzdem Mails rausblasen (ähnlich wie mit Tools wie msmtp, aber halt direkt ohne Setup):

% swaks -s mail.vc-graz.ac.at -tlsc -a -au $ACCOUNT -ap $PASSWORD -f $MAILADRESSE -t $MAILADRESSE

Et voila ist die Testmail raus.

Debianer machen ein ‘apt-get install swaks‘. Ich brauch wohl nicht zu erwähnen, dass swaks bei grml mitgeliefert wird. ;-)

Balanka? Ballanka? Balanca?

December 8th, 2005

*

Tischfußball oder Kicker, hannöversch Krökeln, österreichisch Wuzeln, schweizerisch Töggelen oder Jöggelen ist der Name einer Sportart, die auf einem Spielgerät gespielt wird, das häufig in Gaststätten aufgestellt ist und bei dem man mit hölzernen, um die Mitte drehbaren Fußballspielerfiguren an Griffstangen versucht, eine vorgegebene Anzahl von Plastikbällen ins gegnerische Tor zu schießen (= kicken).

Quelle: Tischfußball@Wikipedia

Und Kärnter sagen dazu Balanka. Oder Ballanka? Balanca? Im Internet gibt es keine zuverlässige Quelle zu dem Wort. Nicht mal die slowenisch sprechende Mitbewohnerin kann weiterhelfen. Mein Kärnter-Wörterbuch ist leider nicht griffbereit, vermutlich steht es aber nicht mal drin. 8-) Weiß einer meiner werten Mitleser mehr dazu? Ansonsten wird es Zeit, einmal auf ein Sprachinstitut auf der Uni zu schauen… Und vielleicht verstehen mich ja jetzt wieder ein paar Leute mehr, wenn ich sie auf eine Runde Tischfußball einlade. :-)

Es ist schon was Feines…

December 7th, 2005

…wenn man ein kleines Skript irgendwo ins Web stellt. Dieses Skript macht eine kleine Serverstatistik für den Hausgebrauch. Die Mailadresse, an die der Cronjob-Output gehen soll, beinhaltet die eigene Domain. Es gibt dann Leute, die sowas nicht anpassen und das Skript einfach ausführen. Man bekommt dann interessante Daten in die Inbox frei Haus. 8-)

Mein letzter Patient verwendet Fedora (running 2.6.10-1.771_FC2smp) und hat Cpanel zur Administration am Laufen. Braverweise wird schon mdadm eingesetzt. So, und das nächste Mal das Skript zuerst lesen und erst dann ausführen, gell? ;-)

Note-to-self: das Skript aktualisieren und sensiblere Daten des Hosts in die Mail reinpacken. Man kann schließlich nie genug Rootserver haben…

VPN über Bluetooth mit Linux

December 4th, 2005

Verrückte Idee des Tages beim grml-Develmeeting: machen wir VPN über Bluetooth. Gegeben: 2 Laptops mit grml, 1 Nokia 770 mit Linux 2.6.12.3-omap1. Ein Laptop spielt Gateway, der andere Laptop und das Nokia-Teil wollen über das Gateway ins Netz…

Am Laptop, der den Server/Gateway spielt:

root@grml ~ # Start bluez-utils       # macht ein '/etc/init.d/bluez-utils start'
root@grml ~ # pand -s -r NAP
root@grml ~ # echo 1 > /proc/sys/net/ipv4/ip_forward
root@grml ~ # iptables -t nat -A postrouting -o atheros0 -j masquerading
(... dann warten bis der Client verbunden ist - kontrollieren via 'pand -l')
root@grml ~ # ifconfig bnep0 192.168.20.1
root@grml ~ # grml-vpn -k 2005 add 1000 192.168.20.1 192.168.20.2

Zugangskontrolle kann man dann noch via /etc/bluetooth/hcid.conf machen. Und am Laptop, der nur Client ist, macht man Folgendes:

root@grml ~ # Start bluez-utils # macht ein '/etc/init.d/bluez-utils start'
root@grml ~ # pand -Q 10
root@grml ~ # ifconfig bnep0 192.168.20.2
root@grml ~ # grml-vpn -k 2005 add 1000 192.168.20.1 192.168.20.2

Das war’s auch schon. Wenn man jetzt am Client das Gateway pingt:

root@grml ~ # ping 192.168.20.1
PING 192.168.20.1 (192.168.20.1) 56(84) bytes of data.
64 bytes from 192.168.20.1: icmp_seq=1 ttl=64 time=26.6 ms
64 bytes from 192.168.20.1: icmp_seq=2 ttl=64 time=20.0 ms
[...]

… sieht man am Gateway mit tcpdump, dass die Daten schon verschlüsselt laufen:

tcpdump: listening on bnep0, link-type EN10MB (Ethernet), capture size 96 bytes
15:49:47.408101 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: ESP (50), length: 124) 192.168.20.1 > 192.168.20.2: ESP(spi=0x000003e8,seq=0x32), length 104
15:49:47.455697 IP (tos 0x0, ttl  64, id 7662, offset 0, flags [none], proto: ESP (50), length: 124) 192.168.20.2 > 192.168.20.1: ESP(spi=0x000003e9,seq=0x37), length 104

Am Nokia 770 richtet man sich mit dem nap-Installer gemäß dem HOWTO-BluetoothNetworking im maemowiki das Bluetooth-Setup ein. JFTR: Mangels setkey aber ohne VPN Richtung Gateway. (Gebi hat dann auch noch schnell das nap-Paket angepasst.) Et voila:

grml-webpage am nokia 770

Der grml-Laptop kann jetzt also ohne großem Aufwand Internet-Gateway für bis zu 7 Clients spielen. :-)

Artec Ultima 2000 Scanner mit Linux

December 4th, 2005

Ich hab jetzt einen Scanner der Marke Billigteil-von-Komplett-PC zum Testen in die Hände bekommen. Und weil wir im grml-Team gerade eine kleine Diskussion führen, ob /proc/bus/usb wirklich noch relevant ist, hat mich der Ehrgeiz gepackt. ;-)

Auf dem Scanner selbst steht “Artec Ultima 2000”. hwinfo meint dazu:

04: USB 00.0: 10c00 Scanner
  [Created at usb.122]
  Unique ID: ADDn.Y8xC1YfwFy5
  Parent ID: k4bc.aBPORg3loEB
  SysFS ID: /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1:1.0
  SysFS BusID: 1-1:1.0
  Hardware Class: scanner
  Model: "Lifetec LT9385"
  Hotplug: USB
  Vendor: usb 0x05d8 "Lifetec"
  Device: usb 0x4002 "LT9385"
  Revision: "1.00"
  Speed: 12 Mbps
  Module Alias: "usb:v05D8p4002d0100dcFFdscFFdpFFicFFiscFFipFF"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #3 (Hub)

Nach einem ‘apt-get install xsane sane-utils’ meint scanimage:

root@grml ~ # scanimage -L
device `gt68xx:libusb:1:4' is a Mustek BearPaw 1200 CU flatbed scanner

Gebraucht wird also das SANE GT68xx-Backend (man sane-gt68xx) und es gibt dafür auch eine nette Webseite von Henning Meier-Geinitz. Auf der beigepackten CD mit den Windows-Treibern gibt es die Firmeware GT680XFW.USB. Wenn man diese in /usr/share/sane/gt68xx/ platziert und die Datei /etc/sane.d/gt68xx.conf wie folgt anpasst:

usb 0x05d8 0x4002
override "artec-ultima-2000"
firmware "GT680XFW.USB"

dann spuckt scanimage auch Folgendes aus:

root@grml ~ # scanimage -L
device `gt68xx:libusb:1:7' is a Artec Ultima 2000 flatbed scanner

Und scanimage bzw. xsane werkeln dann – wie erwartet – auch schon brav.

PS: Man braucht natürlich kein /proc/bus/usb. 8-)

Schädlingsbekämpfung mit Linux

November 28th, 2005

Gegegeben: infizierte Dateien auf einer NTFS-Partition
Todo: infizierte Dateien ohne Zuhilfenahme von Windows/BartPE entfernen

Erster Schritt: grml booten. Einbinden der verseuchten Partition (‘mount /mnt/hda1’). Nun aktualisiert man die Datenbank von clamav und und startet anschliessend den Scanvorgang:

# freshclam
# clamscan -r --log=$HOME/clamscan.report --infected /mnt/hda1

Gegen captive-ntfs bin ich allergisch, also muss Ersatz her: ntfscp – “overwrite file on an NTFS volume”.

Um “NTFS-fs warning (device hda1): ntfs_setattr(): Changes in inode size are not supported yet, ignoring.” zu vermeiden, überschreiben wir die Originaldatei mit einer genullten Datei gleicher Größe. Mein 2-Minuten-Hack um eine Datei gewünschter Größe zu bekommen:

#!/bin/sh
if [ $# -eq 1 ] ; then
  SIZE=$(/usr/bin/stat -c '%s' $1)
  echo "creating /tmp/empty_$SIZE with size $SIZE"
  dd if=/dev/zero of=/tmp/empty_$SIZE count=1 bs=$SIZE
  echo "
Now run something like:

ntfscp /dev/ice /tmp/empty_$SIZE <file_to_overwrite>

Exiting."
else
  echo "Usage: $0 <filename>"
  exit 1
fi

Angewendet auf die einzelnen Dateien, die clamscan als infiziert gemeldet hat, bekommt man dann in /tmp leere Dateien, die genau der gewünschten Dateigröße entsprechen. Nun also noch ein:

ntfscp /dev/hda1 /tmp/empty_passende_dateigroesse_fuer_datei_zum_loeschen ordner/datei_zum_loeschen

Schon ist die infizierte Datei ausser Gefecht gesetzt. Word fangt mit einer genullten .doc-Datei nichts mehr an:

screenshot

Wer eine Warnung “Volume is dirty” bekommt (das passiert vornehmlich dann, wenn es die Systempartition ist), sollte – wie empfohlen – chkdsk auf die Partition loslassen. Wenn das nicht möglich ist, muss halt die force-Option von ntfscp ran. Aber wie bei jeder Dateisystem-Operation, sollte man vor dem Einsatz auf Produktivdaten natürlich ein Backup ziehen und das Ganze erstmal in einem Testlauf probieren.

Schön wäre jetzt natürlich ein Skript, das einen clamscan-Report einliest und ntfscp automatisch auf die infizierten Dateien anwendet. ;-) Mit Kernel 2.6.15 soll übrigens extended write support für NTFS verfügbar sein.

ksudoku: Sudoku mit Linux

November 26th, 2005

Seit kurzem im Debian-Repository zu finden: ksudoku. ksudoku zaubert das, was man in Tageszeitungen im Rätselteil als Sudoku findet auf den Bildschirm:

screenshot of ksudoku

Für Einstieger gibt’s einen “Give Hint!”-Knopf, für Fortgeschrittene einen 3D-Modus. ;-)

Elektor: R8C-Mikrocontroller

November 25th, 2005

*

Gerd Suppan hat in der TUG-Newsgroup tu-graz.diverses darauf hingewiesen, dass bei der aktuellen Ausgabe der Zeitschrift Elektor ein R8C-Mikrocontroller mitgeliefert wird.

Für die R8C/Tiny-Familie des Herstellers RENESAS sprechen drei gewichtige Argumente. Erstens bekommt man 16-bit-Rechenpower für wenig Geld, zweitens einen kostenlosen und dennoch sehr leistungsfähigen C-Compiler, und drittens ist kein Programmiergerät erforderlich, weil einfach über die RS232-Schnittstelle geflasht wird.

Nach einem Intro-Artikel in Heft 11 erhalten alle ELEKTOR-Leser mit dem Dezemberheft als kostenlose Heft-Beilage ein kleines, aber feines R8C/13-Mikrocontroller-Board von GLYN inklusive Software-CD mit Tools, Assembler, C-Compiler und Programmbeispielen. Damit kann man sofort loslegen!
In ELEKTOR 01/2006 folgt der dritte Artikel, der eine Basis-Platine für den R8C mit RS232-, USB- und LCD-Schnittstelle vorstellt und den einfachen Einstieg in die C-Programmierung fortsetzt.

Die ELEKTOR-R8C-Mikrocontroller-Seite

Ich habe das letzte Exemplar der Ausgabe 12/05 bei einer Buchhandlung ergattern können. 8-) Ich bin gespannt, wann ich Zeit finde damit herum zu spielen. Falls sich jemand aus meinem Bekanntkreis an den Experimenten beteiligen möchte – you are welcome.

ZyXEL ZyAIR G-220 und Linux

November 21st, 2005

*

ZyXEL ZyAIR G-220 ist ein 802.11g Wireless USB 2.0 Adapter. Klein und transportabel. Und mit den zd1211-Treibern auch unter Linux lauffähig:

# hwinfo --usb
[...]
09: USB 00.0: 0000 Unclassified device
  [Created at usb.122]
  Unique ID: UfPf.kDwh+JlDvL1
  Parent ID: 2XnU.ROAEyGyksmF
  SysFS ID: /devices/pci0000:00/0000:00:1d.7/usb5/5-1/5-1:1.0
  SysFS BusID: 5-1:1.0
  Hardware Class: unknown
  Model: 'ZyXEL ZyAIR G-220'
  Hotplug: USB
  Vendor: usb 0x0586 'ZyXEL Communications Corp.'
  Device: usb 0x3401 'ZyAIR G-220'
  Revision: '43.30'
  Driver: 'zd1211'
  Device File: wlan0
  Speed: 480 Mbps
  HW Address: 00:a0:c5:ca:83:45
  Module Alias: 'usb:v0586p3401d4330dcFFdscFFdpFFicFFisc00ip00'
  Driver Info #0:
    Driver Status: zd1211 is active
    Driver Activation Cmd: 'modprobe zd1211'
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #8 (Hub)

Benötigt wird dafür das Paket aus non-free namens zd1211-firmware und das dazu passende Kernelmodul zd1211-source. Wer grml 0.5 hat, kann das mit zd1211-module-2.6.13-grml natürlich out-of-the-box in Betrieb nehmen.

Wie auch schon der Sitecom Bluetooth USB Adapter, wurde mir auch dieser Adapter freundlicherweise von Jürgen Oesterle im Zuge der grml-donations gesponsert. Auch an dieser Stelle noch einmal ein herzliches Dankeschön, Jürgen!

b0rken Hardware…

November 16th, 2005

Und wieder einmal Ärger mit Hardware die nicht so tut wie man will:

ISOLINUX 2.11 2004-08-16 isolinux: Loading spec packet failed, trying to wing it...

isolinux: Extremly broken BIOS detected, last ditch attempt with drive = 9F
isolinux: Disk error 01, AX = 422E, drive 9F

Boot failed: press a key to retry...

Das ist ein phoenix AwardBIOS [v6.00PGN – KV200/35101A (Jul.31.2000)] mit einem SCSI-CD-ROM-Laufwerk an einem QLogic-SCSI-Controller. Nexenta bootet interessanterweise mit seinem Grub, hängt dann aber natürlich gleich einmal, weil es den SCSI-Controller nicht wirklich mag. Andere Live-CDs mit Grub hängen mit “GRUB loading, please wait… Error 17”. Ein Test mit dem aktuellen isolinux 3.11 (vom 02.09.2005) spuckt nicht mal mehr eine Fehlermeldung aus, sondern hängt einfach.

grml auf der SCSI-Festplatte (ich hacke gerade initrd-Support in grml2hd rein) bootet aber einwandfrei. Jetzt hab ich halt einmal ein IDE-CD-ROM fürs Booten reingesteckt. Vielleicht finde ich ja noch Zeit um ein isolinux im Debugmodus zu testen. Hmpf.

Sitecom Bluetooth USB Adapter und Linux

November 16th, 2005

Über meinen MSI Bluetooth Transceiving Key/Dongle hab ich ja schon mal gebloggt. Jetzt habe ich einen weiteren Bluetooth USB Adapter zum Testen und füttere hiermit Google: ‘Cambridge Silicon Radio Bluetooth Device’. Auf dem Adapter steht noch der Firmenname Sitecom und auch vom Aussehen her entspricht er dem CN-500 – Bluetooth USB Adapter.

Das Gerät nimmt man ganz einfach in Betrieb, anstecken und im Kernellog sollte Folgendes auftauchen:

Nov 15 23:44:37 grml kernel: usb 1-1: new full speed USB device using uhci_hcd and address 4
Nov 15 23:44:37 grml kernel: Bluetooth: Core ver 2.7
Nov 15 23:44:37 grml kernel: NET: Registered protocol family 31
Nov 15 23:44:37 grml kernel: Bluetooth: HCI device and connection manager initialized
Nov 15 23:44:37 grml kernel: Bluetooth: HCI socket layer initialized
Nov 15 23:44:37 grml kernel: Bluetooth: HCI USB driver ver 2.9
Nov 15 23:44:37 grml kernel: usbcore: registered new driver hci_usb

Und im Einsatz mit einer Bluetooth-Maus funktioniert der Adapter auch einwandfrei:

root@grml ~/bin # hwinfo --bluetooth
02: USB 00.0: 11500 Bluetooth Device
  [Created at usb.122]
  Unique ID: ADDn.nQKjiuCfL84
  Parent ID: k4bc.aBPORg3loEB
  SysFS ID: /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1:1.0
  SysFS BusID: 1-1:1.0
  Hardware Class: bluetooth
  Model: 'Cambridge Silicon Radio Bluetooth Device'
  Hotplug: USB
  Vendor: usb 0x0a12 'Cambridge Silicon Radio Ltd.'
  Device: usb 0x0001 
  Revision: '5.25'
  Driver: 'hci_usb'
  Speed: 12 Mbps
  Module Alias: 'usb:v0A12p0001d0525dcE0dsc01dp01icE0isc01ip01'
  Driver Info #0:
    Driver Status: hci_usb is active
    Driver Activation Cmd: 'modprobe hci_usb'
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #1 (Hub)

Der Adapter wurde mir freundlicherweise von Jürgen Oesterle im Zuge der grml-donations gesponsert. Auch an dieser Stelle noch einmal ein herzliches Dankeschön, Jürgen!

wipe: sicheres Löschen

November 14th, 2005

Da ich es gerade selbst wieder mal brauche und ich immer wieder nach so einem Tool gefragt werde: wipe

wipe – A UNIX tool for secure deletion
There are things you’d bettwe wipe… before they get you.

Wipe is a little command for securely erasing files from magnetic media. It compiles under various unix platforms, including Linux 2.*, (Open+Net+Free)BSD, aix 4.1, SunOS 5.5.1, Solaris 2.6.

Funktioniert natürlich nicht nur für einzelne Dateien oder Verzeichnisse, sondern auch für ganze Partitionen. Aber Achtung: während dem wipe-Lauf gehen sich mehrere Tassen Kaffee aus. 8-)

Und es versteht sich natürlich von selbst, dass wipe bei grml mitgeliefert wird. ;-)

Danke fürs Feedback!

November 14th, 2005

Danke an all jene die sich auf meinen Aufruf hin in den Kommentaren verewigt haben! Danke auch an all jene, die sich per Mail bei mir gemeldet haben!

Wer sich noch verewigen will, darf das natürlich gerne auch noch weiterhin machen.

Hab mich wirklich gefreut, danke!

HowTO: Samsung X20 und Linux

November 13th, 2005

*

Lange hat’s gedauert, aber gestern hab ich meinen Tag dem HowTO – Installation and use of grml/Debian Linux on Samsung X20 XVM 1600 V Laptop geopfert.

Das HowTo beschreibt den Einsatz von Linux auf dem Samsung X20 und ist so weit als möglich distributionsunabhängig gehalten. Die Tipps für spezielle Features beziehen sich aber natürlich auf grml. Wer sich grml auf die Festplatte geholt hat, sollte sich mein Debianpaket grml-samsung-x20 holen. Dann hat man wirklich einen Laptop der unter Linux ohne Ende rockt! 8-)

Kann ich den Laptop empfehlen? Jupp. Ich habe noch nie einen so rockenden Laptop für Linux in der Hand gehabt. DRI funktioniert out-of-the-box. Keinerlei Kernel- und X-modul-Ärgereien. Auch das Synaptics-Touchpad läuft mit all seinen Features einwandfrei, nachdem ich festgestellt habe, dass man einfach nur noch das Kernelmodul evdev laden muss. Dass der Rest wie Ethernet, WLAN und Sound funktioniert, muss ich wohl nicht erwähnen. ;-) Der Oberhammer: Suspend-to-Disk (ACPI S4) und auch Suspend-to-RAM (ACPI S3) funktionieren. Probleme hatte ich da nur mit dem Framebuffer vesafb-tng. Nachdem ich jetzt aber einen 2.6.14-grml ohne vesafb-tng gebaut habe, tut Suspend sogar mit Framebuffer. (Jetzt werd ich noch schauen, ob ein aktueller vesafb-tng das Problem behebt, ansonsten wird vesafb-tng vermutlich gekickt…)

Nachdem ich schon mehrere Leute kenne, die auch einen Samsung X20 besitzen (und einige davon bereits grml darauf fahren): bitte Probelesen! Any Feedback welcome.

Und wer grad auf der Suche nach einem Laptop (<1.300 Euro) ist (servus murphy!) findet hier ja vielleicht eine Kaufempfehlung. Wer sich schliesslich und endlich für eine grml-Installation auf seinem Samsung X20 entscheiden sollte, darf mit Support aus erster Hand rechnen. Meine Mailbox ist geöffnet. ;-)

Padix (Rockfire) USB, Vibration 3D Joystick und Linux

November 12th, 2005

picture of joystick

Mein Bruder hat für seine Flugsimulator-Spielereien einen Joystick, den ich jetzt einfach mal unter Linux testen wollte. Ist ein billiges Teil namens ‘Padix (Rockfire) USB, Vibration 3D Joystick ‘ der Firma Rockfire.com (Achtung: die Homepage ist ein Verbrechen an der Menschheit).

Die Inbetriebnahme war denkbar einfach: anstecken und vibrieren ;-):

04: USB 00.0: 0000 Unclassified device
  [Created at usb.122]
  Unique ID: ADDn.DPTnpEXZqH2
  Parent ID: k4bc.O2BYK_CVJs7
  SysFS ID: /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1:1.0
  SysFS BusID: 1-1:1.0
  Hardware Class: unknown
  Model: 'Padix (Rockfire) USB, Vibration 3D Joystick'
  Hotplug: USB
  Vendor: usb 0x0583 'Padix (Rockfire) Co. Ltd.'
  Device: usb 0x688f 'USB, Vibration 3D Joystick'
  Revision: '1.20'
  Driver: 'usbhid'
  Device File: /dev/input/js0
  Device Number: char 13:0
  Speed: 1.5 Mbps
  Module Alias: 'usb:v0583p688Fd0120dc03dsc00dp00ic*isc*ip*'
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #3 (Hub)

Mit dem Tool jstest aus dem Paket joystick lässt sich die Funktionsweise auch schnell und einfach testen:

mika@grml ~ % /usr/bin/jstest /dev/input/js0
Driver version is 2.1.0.
Joystick (Padix Co. Ltd. USB, Vibration 3D Joystick) has 7 axes (X, Y, Rz, Throttle, Hat0X, Hat0Y, (null))
and 6 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn).
Testing ... (interrupt to exit)
Axes:  0:-17229  1: -8446  2:-10473  3:   337  4:     0  5:     0  6:-32767 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off

Jetzt bin ich grad eine Runde mit flightgear geflogen (Achtung: #334349 und #334446), für eine Kalibrierung via jscal war ich grad zu faul, aber der Joystick scheint zu funktionieren. :-)

PS: Die Hardware-Spielereien nehmen kein Ende – darum hab ich jetzt mal eine neue Kategorie ‘Hardware’ in meinem Blog hinzugefügt.