• BlueTooth unter Linux

    (This is a German article from my old homepage.)

    Einführung

    BlueTooth ist ein Standard zur Datenübertragung per Funk, speziell ausgelegt für geringe Reichweiten. Diese Technologie ermöglicht direkte drahtlose Kommunikation zwischen Handys und Headsets, aber auch zwischen PDAs bzw. Notebooks und Handys. Letztere können dann als Modem zur Internet-Anbindung im Mobilfunknetz verwendet werden.

    Für den LinuxKernel gibt es für BlueTooth ein Treiberpaket namens
    Bluez. Bluez ist inzwischen Bestandteil gängiger Linux-Distributionen.

    Um einen PC oder Notebook BT-fähig zu machen, eignen sich USB-Dongles am besten. Dies sind kleine Stecker für den USB-Port, die die ganze nötige Hardware enthalten. Es sind aber auch PCMCIA-Karten erhältlich und viele Laptops wie der Lenovo R52 haben BT auch bereits eingebaut.

    Welche BT-Geräte unter Linux unterstützt werden, können Sie bei Marcel Holtmann nachlesen.

    Installation

    Bei allen Distributionen ist BlueTooth-Unterstützung inzwischen bereits im mitgelieferten Standard-Kernel integriert.

    Neben den Kernelmodulen sind ggf. noch die folgenden Pakete zu installieren:

    • bluez-libs
    • bluez-utils
    • bluez-sdp
    • bluez-pan

    Sind in der jeweiligen Linux-Distribution die aktuellen Pakete nicht enthalten, ist der Download von der Bluez-Website sinnvoll.

    Inbetriebnahme

    Konfiguration und Starten des HCI-Daemons

    Der "Bluetooth Host Controller Interface"-Daemon (hcid) ist der zentrale BT-Dienst.

    Seine Konfiguration ist in der Datei /etc/bluetooth/hcid.conf abgelegt.

    Der hcid wird von root mit einem der Kommandos

    $ /etc/init.d/hcid start
    $ /etc/init.d/bluez-utils start

    aktiviert. Nach Änderungen an der Konfiguration muss er mit dem Argument "restart" statt "start" neu initialisiert werden.

    Erster Test

    Mit dem Kommando hcitool scan sucht der Rechner nach erreichbaren BT-Geräten. Ein BT-fähiges Handy (zB Nokia 6310, Ericson T68i) sollte hierzu mit aktiviertem BT-Empfang bereitliegen. Andere BT-Geräte wie zB ein Headset sollten vom Handy abgekoppelt sein, um Störungen zu vermeiden. Als Ausgabe liefert hcitool scan eine Liste der gefundenen Geräte mit einer Geräteadresse und ihrem Namen:

    Scanning ...
    00:60:48:6D:5A:D3    Nokia 6310i

    BT-Handy als Modem verwenden

    Konfiguration des hcid

    Für die Nutzung eines BT-Geräts als Modem (z.B. ein UMTS-Handy) ist es wichtig, im device-Block die richtige Geräteklasse zu setzen:

    class 0x100100;

    Kopplung

    Das Kommando

    $ rfcomm bind 0 00:60:48:6D:5A:D3

    öffnet eine Verbindung vom Rechner zum Handy ("Pairing", s.u.) anhand dessen Geräteadresse.

    Eine feste Zuordnung der Geräte erfolgt in /etc/bluetooth/rfcomm.conf. Damit wird direkt beim Zugriff auf die Gerätedatei (i.d.R. /dev/rfcomm0) die Kopplung ausgelöst.

    rfcomm0 {
      bind yes;
      # Bluetooth address of the phone
      device 00:12:D1:7D:33:A9;
      # RFCOMM channel for the connection
      channel 2;
      # Description of the connection
      comment "UMTS dial-up";
    }

    Pairing

    Beim "Pairing" nehmen den beiden Geräte Kontakt miteinander auf. Beim Erstkontakt muss sich der Rechner mit einer mindestens vierstelligen PIN-Nummer authentifizieren.

    Die PIN-Nummer muss in der Datei /etc/bluetooth/pin abgelegt werden.

    In KDE eignet sich zur Abfrage der PIN am besten das Programm kbluepin, das in /etc/bluetooth/hcid.conf wie folgt eingetragen werden muss:

    pin_helper /usr/lib/kdebluetooth/kbluepin

    Den Erstkontakt löst man einfach durch ein kurzes Modemkommando aus:

    $ echo "ATZ" > /dev/rfcomm0

    Nun ist auf dem Handy die PIN einzugeben. Für die Zukunft erspart man sich die Eingabe, indem man die erfolgreiche Paarung im Handy speichern lässt. Dies geschieht bei manchen Handies (Nokia 6310) automatisch, bei anderen (Ericsson T68i) muss es manuell im Menü ausgewählt werden.

    Internet-Anbindung

    Ist das Pairing erst einmal vollzogen, kann /dev/rfcomm0 wie eine gewöhnliche Modem-Schnittstelle genutzt werden. Mit den üblichen Mitteln kann also darüber eine PPP-Verbindung ins Internet aufgebaut werden.

    In Ubuntu Linux habe ich für den UMTS-Zugang in /etc/ppp/peers/umts folgende Daten abgelegt:

    hide-password
    noauth
    connect "/usr/sbin/chat -v -f /etc/chatscripts/umts"
    debug
    /dev/rfcomm0
    460800
    defaultroute
    noipdefault
    user "vodafone"
    remotename nokia-e61
    ipparam nokia-e61
    usepeerdns

    Das passende Chatscript liegt in /etc/chatscripts/umts:

    # ispauth PAP
     # abortstring
     ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 
     'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
     # modeminit
     '' "ATZ"
     OK "AT+CGDCONT=1,42IP42,42web.vodafone.de42"
     # ispnumber
     OK-AT-OK "ATDT*99***1#"
     # ispconnect
     CONNECT dc
     # prelogin
    
    
            

    Read on →

  • Konfigurationen verwalten mit SCPM

    (This is a German article from my old homepage.)

    Wer mit dem selben Rechner wechselweise in verschiedenen Netzwerken arbeitet, wird des Aufwands, immer wieder die Netzwerk-Konfiguration ändern zu müssen, schnell überdrüssig werden. Das betrifft vor allem Notebook-Anwender, die zum Beispiel sowohl in der Firma als auch zu Hause ein Netzwerk nutzen. Immer wieder müssen IP-Adresse, Netzwerkmaske, Nameserver-Adressen, Mail-Konfiguration usw. geändert werden, was manuell eine nervige Aufgabe ist. Abhilfe schafft SCPM.

    SCPM ("System Configuration Profile Manager") ist ein Hilfsprogramm, das seit Version 8.1 zur SuSE Linux Distribution gehört. Es verwaltet unterschiedliche Netzwerk-Konfigurationen und ermöglicht es der Anwenderin, mit einem kurzen Kommando zwischen diesen Konfigurationen, "Profile" genannt, zu wechseln.

    Verwendung von SCPM

    In YaST2 findet sich SCPM unter dem Punkt "Profilmanager" im "System"-Menü. Im Terminal wird SCPM wie folgt verwendet.

    Mit dem Kommando

    scpm enable

    muss SCPM vor der eigentlichen Nutzung einmalig aktiviert werden. An dieser Stelle wird das "Repository" angelegt, in dem SCPM die verschiedenen Konfigurations-Profile ablegt. Im Dateisystem findet sich das Repository unter /var/lib/scpm.

    Ein zweites Mal lässt sich scpm enable nur mit der Zusatzoption -f ("force" = erzwingen) ausführen. Dann wird das Repository mit allen Profilen gelöscht und ein neues angelegt.

    scpm add «profil»

    fügt die aktuelle Netzwerk-Konfiguration dem Repository unter dem Namen «profil» hinzu. Dies muss für jede Konfiguration nur ein Mal erfolgen. Eine Aktualisierung des Profils gehört zum Funktionsumfang des switch Kommandos.

    scpm switch «profil»

    überschreibt die aktuelle Systemkonfiguration mit den Daten des anschließend aktiven Profils «profil». Bei Bedarf
    wird dann das Netzwerk neu gestartet, damit die Konfigurationsänderung zum Tragen kommt.

    Sollte beim Aufruf von scpm switch die aktuelle Systemkonfiguration nicht den für das noch aktive Profil abgelegten Daten entsprechen, fragt scpm für jede betroffene Datei ab, ob der neue Zustand im Repository abgelegt werden soll. Man kann dies nutzen, um das momentan aktive Profil auf den aktuellen Stand zu bringen, indem man mit scpm switch zum bereits aktiven Profil "wechselt".

    Soll ein anderes Profil aktiviert werden, ohne die aktuelle Konfiguration zu speichern, ist die Option -f zu verwenden:

    scpm -f switch «profil»

    Profil beim Booten auswählen

    Mit der Kerneloption PROFILE kann bereits beim Booten ein bestimmtes Profil ausgewählt werden. Diese Kerneloption kann nach Bedarf im Menü des Bootloaders eingegeben oder in seiner Konfigurationsdatei (/etc/lilo.conf bzw. /boot/grub/menu.lst) fest eingestellt werden.

    Bei GRUB könnte zum Beispiel ein entsprechender Eintrag so aussehen:

    title Office
      kernel (hd0,5) /boot/vmlinuz
      root=/dev/hda6 PROFILE=office
      initrd (hd0,5)/boot/initrd

    Eigene Ressourcen definieren

    Welche Ressourcen SCPM verwaltet, wird in sogenannten "resource sets" (RS) definiert. Dies sind Textdateien, in denen die Pfade der Dateien aufgelistet sind, die SCPM in seiner Datenbank ablegen soll. Abgelegt sind die RS im Verzeichnis /lib/scpm/resource_sets. Hier sind bereits in der
    Grundinstallation mehrere verschiedene Dateien vorhanden, von denen gemäß dem Eintrag RESOURCE_SET="typical" in der SCPM-Konfigurationsdatei /etc/scpm.conf die Variante "typical" verwendet wird.

    Ein eigenes RS kann somit einfach dadurch definiert werden, dass man eine vorhandene Datei mit neuem Namen kopiert, sie modifiziert und in /etc/scpm.conf einträgt.

    Zum Beispiel enthält das RS "typical" keinen Eintrag, der den Host- und Dateinamen des Rechners im Profil speichert. Somit ist es nicht möglich, diese Namen zwischen Profilen zu variieren. Dies kann einfach behoben werden. Mit

    cp typical myscpm

    wird zunächst ein neues RS erzeugt, das dann auch in die Konfigurationsdatei /etc/scpm.conf einzutragen ist:

    RESOURCE_SET="myscpm"

    Für die Verwaltung des Host- und Domainnamens muss eine Datei-Ressource /etc/HOSTNAME hinzugefügt werden. Mit einem Texteditor ist also die folgende Zeile in myscpm einzutragen:

    file /etc/HOSTNAME

    Ab sofort verwaltet SCPM auch die Namensinformationen.

  • Yes, EDS, I know what you mean

    [youtube=http://www.youtube.com/watch?v=YdwrYiNJc_E]

    If they don't need me as a team lead any more, I could become a fine cat herder anytime.

  • LPI certification tutorials from IBM

    Today, I found two series of tutorials for the Linux Professional Institute (LPI) certification programme on IBM's DeveloperWorks website.

    In my opinion, a certification is a good thing because the employer can instantly see that you've put some work into your qualifications. But just answering some questionnaire will not bring you far when you've got to do real work, so you'd better add quite some practical experience to the mix.

    Those tutorials provide you with the means to get some of this practice. Therefore, if you're interested in getting an LPI certification (and I know quite a few folks who do), check them out:

  • A year without a car

    A year ago, when it had become clear that once we had moved to Freiburg, I wouldn't do the 150 km commute by car, I canceled my leasing contract and switched to public transportation.

    I've got myself a "Bahncard 100" that enables me to take (almost) every Deutsche Bahn (German Railways) train I want to for a flat monthly fee. So, if I'd like to visit a friend in Hannover or to go to the next Barcamp Cologne, I just hop on the train. The monthly rate for the Bahncard 100 is about the same as my leasing fee was, and there are no extra costs for fuel, insurance, repair, parking etc. Even with the occasional taxi, I spend less money for the train than I used to for the car.

    Although my commute now is five times longer than it was when I lived in Philippsburg, it is much more environmentally friendly. I now share the same vehicle with hundreds of other passengers.

    It takes me about an hour to get to work, and over this time I don't sit behind a wheel cursing at other drivers but at my laptop, doing some work, typing blog entries like this one, reading my Twitter stream, or just relaxing, listening to a podcast or audio book. Thanks to my in-ear earbuds, I don't get disturbed by crying babies, loudly talking business buffoons or other crazy people.

    Of course, not having a car has its downsides. If I want to go on an IKEA rampage or buy five crates of beer, I need to rent a car or ask a friend to help me out. In urgent cases, I have to get a taxi. And there's always the train schedule that I have to adhere to. Sometimes, the train doesn't.

    But over all, it's simply comfortable to sit in a soft chair and wait until the conductor has taken me there. I don't miss the car.