Linux-Tipps
Die Anleitung zur Inſtallation des USB-ISDN-Adapters, die den Hauptteil dieſer Tipp-Seite ausmacht, iſt ſchon recht alt und bei der heutigen Verbreitung von DSL nicht mehr ſo relevant.
Einen kleinen neuen (Anfänger-/Umſteiger-)Tipp gebe ich anläſſlich des Jubiläums-Umbaus 2008: Man ſollte, um flüſſiger zu arbeiten, bzw. überhaupt vernünftig mit dem vielfenſtrigen GIMP arbeiten zu können, in der verwendeten Fenſter-Verwaltung (KDE, Gnome oder andere) die Einſtellung für Fenſter-Aktivierung auf focuſ-followſ-mouſe ſtellen (ein aktuelles GIMP, ab 2.8, hat nicht mehr unbedingt viele Fenster - aber ich bevorzuge den „Normales-Fenster-Modus“ für Werkzeuge usw.). Mit vielen Fenstern ist es generell hilfreich, mehrere Arbeitſflächen zu haben, wie es bei GNU/Linux-Oberflächen ſeit jeher der Fall iſt und bei MacOSX im Jahr 2007 (in Version 10.5) mit „Spaces“ möglich wurde.
- Beſſere Taſtaturbelegung mit deutſchen Umlauten
- Teledat USB 2 a/b mit Capi2.0 unter Debian GNU/Linux inſtallieren
Beſſere Taſtaturbelegung mit deutſchen Umlauten
Zumindeſt für Leute, die gelegentlich ein Programm in C oder Java ſchreiben, wird die deutſche Taſtaturbelegung ſchnell zur Qual: eckige und geſchweifte Klammern nur mit AltGr-Taſte erreichbar, für das Semikolon an jedem Zeilenende die Umſchalttaſte, für jedes undo (Strg+Z) einen Fingerſpagat, Slash (/) nicht ſo bequem erreichbar... Das läſſt ſich einfach vermeiden, indem man das amerikaniſche Taſtaturlayout wählt. Jetzt fehlen nur die Umlaute, ſchließlich kommt es nicht ſo gut, in E-Mails immer ae, oe, ue... zu ſchreiben. In (Debian) GNU/Linux läſſt ſich das einfach erreichen:
xmodmap -e "keycode 94 = dead_diaeresis"
Damit wird (bei mir zumindeſt) die nicht benutzte Kleiner-/Größer-Taſte (bei deutschen und britischen Tastaturen zwiſchen linker Umſchalttaſte und Y bzw. Z) zu einer Art Accent-Taſte (wie die, mit denen man bei deutſcher Taſtaturbelegung normalerweiſe "à", "è" uſw. erzeugen kann), ſo daß Folgendes paſſiert:
<dead_diaeresis> <a> = ä <dead_diaeresis> <o> = ö <dead_diaeresis> <u> = ü <dead_diaeresis> <A> = Ä ...
Ein Compose-Key eröffnet weitere Möglichkeiten, dieſer kann z.B. mit
xmodmap -e "keycode 117 = Multi_key"
auf die "anderes Betriebſſyſtem"-Menue-Taſte gelegt werden.
Man kann natürlich auch gut "AltGr" dafür nehmen, das braucht man jetzt ja nicht mehr.
Die Taſtaturcodes der Taſten können leicht mit xev ermittelt werden.
Mehr Informationen zum Compoſe-Key gibt es im Belgian-HOWTO
Die Kombinationsmöglichkeiten können in der Datei /uſr/X11R6/lib/X11/locale/iſo8859-1/Compoſe nachgeſehen und verändert werden. Beiſpiele:
<Multi_key> <L> <-> = £ <Multi_key> <c> <o> = © <Multi_key> <s> <s> = ß ...
Eine weitere Verbeſſerung iſt es (zumindeſt bei meiner kleinen Strg-Taſte), einfach die Umſchaltfeſtſtelltaſte auch zur Strg-Taſte zu machen.
Das funktioniert wie oben beſchrieben, alſo mit xmodmap -e "keycode 66 = Control_L".
Oder mit folgendem Eintrag im Keyboard-Abſchnitt der /etc/X11/XF86Config-4:
Option "XkbOptions" "ctrl:nocaps"
Wenn man ſich nun mit xmodmap -e... eine individuelle Taſtaturbelegung erſtellt hat, kann man ſie auch mit xmodmap -pke [Datei] in einer Datei ſpeichern und mit xmodmap [Datei] wieder herſtellen. Normalerweise wird ~/.Xmodmap automatisch beim Systemstart geladen.
Dieſe Methode funktioniert auch, wenn man die XF86Config-4 des Syſtems nicht verändern kann oder möchte.
Meine Konfiguration: früher, aktuell (nur noch einige Tasten verändert).
Um die Befehle zum Verändern der Taſtaturbelegung nicht jedes Mal per Hand auſführen zu müſſen, ſollte man ſie in die Autoſtart-Datei des verwendeten Window- bzw. Login-Managers ſchreiben. Beim WindowManager WMaker iſt das z.B. /GNUſtep/Library/WindowMaker/autoſtart, beim Login-Manager XDM müſſte /.xſeſſion unabhängig vom verwendeten WindowManager funktionieren.
Umlaute für externe Android-Tastatur
Android ist ein Linux-System und insofern sollte nicht überraschen, daß es (ab Version 3) auch die oben beschriebene Umlaut-Taste dead_diaeresis unterstützt. Bei Android heißt sie Umlaut accent.
Konfigurationsdateien:
/system/usr/keylayout/Generic.kl /system/usr/keychars/Generic.kcm
Offensichtlich benötigt man Root-Zugriff auf sein Gerät, um die obigen Dateien zu verändern. Außerdem muss die System-Partition schreibbar sein, was bei meinem HTC-Gerät standardmäßig nicht der Fall ist, sich aber leicht ändern lässt:
# mount -o remount,rw /system
Eigentlich soll man die Generic-Dateien nicht verändern, sondern Dateien nach dem Muster Vendor_XXXX_Product_XXXX.kl erstellen, aber meine Vendor_05ac_Product_023a.kl wurde nie geladen, obwohl das die richtige ID sein sollte... egal. Die einzige Gefahr: hat man eine inkorrekte Generic-Datei, funktioniert die Hardware-Tastatur gar nicht mehr! Man sollte also immer die Original-Dateien behalten und sie gegebenenfalls z.B. mit Hilfe des Hacker's Keyboard wieder herstellen können. Diese Software-Tastatur ist sowieso empfehlenswert, denn mit dem standardmäßig aktivierten Touch Input funktioniert das Zusammensetzen von Umlauten bei meinem Android-Telefon nicht!
Da ich eine Apple-Bluetooth-Tastatur besitze, habe ich als Layout-Basis die mit meinem Telefon gelieferte Datei Vendor_05ac_Product_0239.kl verwendet. Meine zwei Änderungen: „key 41“ ist bei mir die Umlaut-Taste und bekam entsprechend den „Dummy“-Bezeichner MEDIA_PREVIOUS, statt „GRAVE“.
Neu eingefügt habe ich eine Zeile „key 86 GRAVE“, vor der Zeile „key 87 F11“.
Meine KCM-Datei enthält im Vergleich zur alten Generic-Datei nur einen neuen Block, eingefügt hinter „key APOSTROPHE“:
# 'COMBINING DIAERESIS' und scharfes S auf die Taste zwischen Shift_L und Y (bzw. Z): key MEDIA_PREVIOUS { label, number: '<' base: '\u0308' shift: '\u00df' ctrl, alt, meta: '\u007c' }
Hinweis: Schon völlig ohne Änderungen am System und ohne die spezielle Umlaut-Taste können die Wörter „grün“, „Straße“ und „Café“ geschrieben werden: dazu dienen die Alt-Belegungen von U, S und E.
Diskussionen mit hilfreichen Informationen zur Android-Tastatur-Belegung fand ich bei Android-Hilfe.de und bei xdadevelopers.
Teledat USB 2 a/b mit Capi2.0 inſtallieren
Zunächſt eine Warnung: dieſe Anleitung iſt im Weſentlichen ein Gedächniſſprotokoll. Sie ſoll es dem Leſer leichter machen, als ich es hatte, bei der Inſtallation von Capi 2 und USB-ISDN-Controllern von AVM unter Debian GNU/Linux. Ich habe es nach mehrtägigem Herumprobieren und Lektüre unterſchiedlicher, teils veralteter Anleitungen (ohne die ich es allerdings natärlich gar nicht geſchafft hätte, deſhalb mein Dank an alle Autoren!) erreicht, daß ich nun mit meinem Teledat USB 2 a/b mit dem jetzt (November 2001) aktuellen Debian GNU/Linux teſting/unſtable (aka Woody) ins Internet komme. Mit dieſer Anleitung hätte es ſchneller gehen können, aber Fallſtricke lauern überall...
Vorausſetzungen:
- Ein 2.4er Kernel (vielleicht geht auch ein 2.2er mit USB- und Capi-Patch), ich habe 2.4.14 bis 2.4.20 (update 2005: Kernel 2.6.11) erfolgreich geteſtet (neuere Kernel jeweils mit neueren Treiber-Verſionen)
- Die FritzX-USB-Treiber von AVM (nicht an der Bezeichnung ſtören, ich habe zuletzt fxuſb-ſuſe8.1-03.10.02.tar.gz verwendet)
- Die Debian-Pakete
libcapi20, iſdnactivecards, ppp, pppdcapiplugin
Nicht benötigt werden: iſdnutils, ipppd, uſbmgr - Die Fähigkeiten, einen Kernel zu kompilieren und zu inſtallieren und einen Editor zu bedienen (iſt ja nicht allzu ſchwer und eigentlich ſelbſtverſtändlich, bei Leuten die teſting verwenden)
Kernel konfigurieren
Mit "make menuconfig":
<*> ISDN support [*] Support synchronous PPP [*] Use VJ-compression with synchronous PPP [ ] Support generic MP (RFC 1717) <M> Support BSD compression [ ] Support audio via ISDN ISDN feature submodules ---> --- low-level hardware drivers Passive ISDN cards ---> < > HiSax SiemensChipSet driver support Active ISDN cards ---> ... <M> CAPI2.0 support [*] Verbose reason code reporting (kernel size +=7K) [*] CAPI2.0 Middleware support (EXPERIMENTAL) <M> CAPI2.0 /dev/capi support [*] CAPI2.0 filesystem support <M> CAPI2.0 capidrv interface support ...
"..." ſteht hier für mehr Optionen, die alle nicht aktiviert zu ſein brauchen.
Das mit der Kompreſſion kann man ſich vielleicht auch ſparen, aber es wird ſchon nicht ſchaden.
Natürlich muß der Kenel den eigenen USB-Controller unterſtützen und alles, was ſonſt noch ſo gebraucht wird...
Dann kompilieren z.B. mit
make dep clean bzImage && make modules
Nun als root den Kernel inſtallieren (z. B. mit lilo...) und auch an die Module denken:
make modules_install
Kernel-Modul kompilieren
tar xzf fxusb.suse[Versionsnummer].tar.gz cd fritz
Nun muß in der Datei src.drv/main.c die Zeile "#define PRODUCT_ID 0x2000" geändert werden in "#define PRODUCT_ID 0x2800".
make drv
Wenn die Kompilierung erfolgreich gelaufen iſt nun ein Verzeichniſs miſc im Modul-Verzeichniſs des Kernels erſtellen und darein das modul fxuſb.o aus ſrc.drv kopieren.
mkdir /lib/modules/[Version]/misc cp src.drv/fxusb.o /lib/modules/[Version]/misc
Capi-Pakete inſtallieren
Glück hat, wer auch ohne die Teledat noch eine Internet-Verbindung hinbekommt (vielleicht mit einem alten Modem), denn dann ſind die notwendigen Debian-Pakete ſuper-ſchnell inſtalliert:
apt-get install libcapi20 isdnactivecards ppp pppdcapiplugin
Falls weitere Pakete von den oben genannten abhängig ſein ſollten, werden dieſe automatiſch mit inſtalliert.
Natürlich können die Pakete auch anders beſorgt werden, zur Not über Windows vom Debian-HTTP oder -FTP-Server.
/etc/iſdn/capi.conf ?
Nun iſt einer der wenigen Zeitpunkte gekommen, wo auch ein Linux-Syſtem neu geſtartet werden kann.
Es geht ſicher auch ohne, aber dann muß man ſich ſelbſt mit den ganzen Modulen und init-ſcripten herumſchlagen...
Ein Blick in das Verzeichniſs /etc/init.d empfielt ſich aber trotzdem.
Ein eventuell vorhandenes iſdnutils-Script ſollte jetzt z.B. nicht mehr gebraucht werden (verſchieben, nicht löſchen!).
Nach dem Neuſtart kann das fxuſb-Modul mit dem interaktiven Debian-tool modconf geladen werden (ggf. vorher depmod -a aufrufen).
Ein Aufruf von lsmod ſollte jetzt unter anderem Folgendes liefern:
fxusb 558168 1 capi 17600 2 kernelcapi 28896 2 [fxusb capi] capifs 3424 1 [capi] capiutil 22208 0 [kernelcapi]
Man kann auch in /proc nachſehen, ob alles gut läuft:
vlado@mog:~$ cat /proc/capi/controller 1 fxusb running fritz-usb A1 3.09-10 3 vlado@mog:~$ cat /proc/capi/controllers/1 name fritz-usb dev 3 type A1 ver_driver 3.09-10 ver_cardtype fritz-usb protocol DSS1 linetype point to multipoint
Das war’s!
Verbindung teſten/konfigurieren
Eine Teſtverbindung zu AVM (wie in fritz/inſtall_paſſive.de beſchrieben) könnte jetzt direkt ſchon klappen. Zur Sicherheit kann man die Syſtemnachrichten mitverfolgen (mit tail -f /var/log/meſſages):
pppd call iſdn/avm
Damit wird das ſcript /etc/ppp/peerſ/iſdn/avm auſgeführt, was eine Teſtverbindung zum AVM-Rechner in Berlin erſtellt.
In dem ſelben Verzeichniſs kann man nun ein eigenes kurzes Script nach dem gleichen Muſter erſtelen.
Ein Beiſpiel:
# # PROVIDERNAME # debug sync noauth usepeerdns #idle 420 plugin userpass.so username BENUTZERNAME defaultroute plugin capiplugin.so #controller 1 #numberprefix 0 number TELEFONNUMMER protocol hdlc ipcp-accept-local ipcp-accept-remote /dev/null
In /etc/ppp/pap-secrets bzw. chap-secrets kommt dann noch entſprechend eine Zeile:
BENUTZERNAME PROVIDER PASSWORD
Wobei "PROVIDER" auch durch "*" erſetzt werden kann, was bedeutet "für alle provider".
Ein großes Problem war für mich noch, daß die "route" nicht erfolgreich geſetzt wurde (Teſt über tail -f /var/log/meſſages und route -n). Ich hatte zwar eine Verbindung zum Provider, konnte aber nichts machen. Da ich ziemlicher tcp/ip-Laie bin, konnte ich das nur löſen, indem ich die vorhandene (aus dem eigentlich nicht benötigten ipppd) /etc/ppp/ip-up.d/00-ipppd in eine /etc/ppp/ip-up.d/00-pppd (ohne i) umgewandelt habe. Alles, was ich in der Datei geändert habe, war wie im Namen ein "i" wegzulöſchen. Wobei der Name ſicher nicht ſo wichtig iſt... Hier meine Dateien für Leute, die noch welche brauchen:
/etc/ppp/ip-up.d/00-pppd /etc/ppp/ip-down.d/99-pppd
Aber Hauptſache es funktioniert endlich! Nachdem ich die Teledat ſchon über ein Jahr hier rumſtehen habe, mir deſwegen Anfang 2001 eine Fritz!PCI gekauft habe, nur um mit Linux ins Netz zu kommen...
Auch wichtig: die Verbindung wieder beenden (ISDN-Flatrates ſind ſelten geworden :-)
Unter Debian gibt es dafür das Script poff (aus dem Paket ppp).
poff isdn/PROVIDER
So wie ich das ſehe macht es nichts anderes, als genau den pppd-Prozeſs zu killen, der für die Verbindung zu PROVIDER verantwortlich iſt.
Wenn man poff ohne Parameter aufruft und es nur einen pppd gibt, wird dieſer beendet.
Es gibt auch die Möglichkeit in das Provider-Script eine idle-Zeit einzubauen.
Mehr Informationen zu den Möglichkeiten von pppd liefert
man pppd
Hilfſ-Programme
Das gute, alte xisdnload funtioniert mit Capi2 nicht mehr, aber dafür gibt es eine ganze Reihe ppp-Monitor-Programme (Debian-Paket-Namen): wmppp.app pppstatus (nicht-graphiſch) procmeter gkrellm gpppkill
Auch die KDE-Syſtemüberwachung (ksysguard) kann irgendwie PPP-Informationen anzeigen
Quellen / weitere Informationen
Rund um USB-Geräte für Linux
H Zero Seven - Development Team (ſince 1999)- Paſſte AVM-Fritz!X-Treiber für Teledat an und es gab dort auch ein Forum, woraus mir ein Eintrag beſonders geholfen hatte. Allerdings gibt es das Forum nun nicht mehr und das Projekt wird woanders weitergeführt:
Nun gibt es ein Sourceforge-Projekt zu Fritz!X USB/Teledat, wo auch verſucht wird das Kommunikationſ-Protokoll zu entſchlüſſeln, um irgendwann richtige OpenSource-Unterſtützung für dieſe Geräte zu bekommen. Zu dem Projekt gehört außerdem auch ein Forum, in dem ſich Nutzer und Entwickler austauſchen.
Kommentare, Verbeſſerungſvorſchläge, Erfolgſ- und Miſſerfolgſmeldungen zu dieſer Anleitung ſind ſehr willkommen!
E-Mail: vlado <bei> gmx.net
Beſonderen Dank an dieſer Stelle an Gottfried Schwieters! Er hatte eine Inſtallationsanleitung für Debian (unſtable) in o.g. Teledat-Board geſtellt und mir zu meiner Anleitung eine ganze Reihe Verbeſſerungſvorſchläge geſchickt, die ich natürlich ſofort geteſtet und eingebaut habe.