Archiv nach Schlagworten: Kernel

AVM Fritz CAPI Treiber unter Debian Lenny compilieren

Alle Jahre wieder kommt man in die Verlegenheit schlecht unterstützte Hardware unter Linux zum laufen zu bewegen. Ein solcher Fall sind die verschiedenen ISDN-Karten und Terminal Adapter der Fritz Serie von AVM. AVM hat irgendwann 2007 die Linux-Unterstützung aufgegeben und keine Treiber-Updates für neue Kernel released, leider sind die Treiber Closed-Source bzw. AVM wollte wohl auch nicht die weitere Entwicklung in Community Hände geben.

Im Netz findet man dazu jede Menge hilfereicher Tips und Tricks sowie Patches dazu. Doch mit jeder neuen Kernel-Gerneration kommen auch wieder neue Probleme hinzu und die alten Tricks helfen nicht mehr weiter. Und wenn man aus bestimmten Gründen nicht gleich einen kompletten Kernel samt der Fritz-Module compilieren will, dann wird es noch komplizierter. Das aktuellste was ich an gepatchen Sourcen gefunden habe, war ein Archiv für Kernel 2.6.24 und die Kanotix Distribution.

Weiterlesen »

Debian Linux – Kernel BUG in Kernel 2.6.32-trunk

Wer unter Debian Linux aktuell die testing „squeeze“-Repositories nutzt sollte etwas mit dem aktuellen Kernel-Package linux-image-2.6.32-trunk acht geben. Wie ich es am eigenen „Server“ erfahren musste, hat die dem Package zu Grunde liegende Kernel-Revision einen BUG im Quota Modul der sich bei Aktivierung der Quota (zumeist beim System-Start), wie folgende Meldungen produziert.


[ 4277.081805] ------------[ cut here ]------------
[ 4277.081811] kernel BUG at /tmp/buildd/linux-2.6-2.6.32/debian/build/source_i386_none/fs/quota/dquot.c:1398!
[ 4277.081815] invalid opcode: 0000 [#1] SMP
[ 4277.081941]
[ 4277.081944] Pid: 5251, comm: umount Not tainted (2.6.32-trunk-686 #1) System Product Name
[ 4277.081947] EIP: 0060:[] EFLAGS: 00010246 CPU: 1
[ 4277.081954] EIP is at dquot_transfer+0x123/0x4f5
[ 4277.081956] EAX: f80ed614 EBX: f667d710 ECX: 00000000 EDX: 00000000
[ 4277.081958] ESI: 00000001 EDI: 00000000 EBP: d8dc7f64 ESP: d8dc7ec4
[ 4277.081961]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 4277.081964] Process umount (pid: 5251, ti=d8dc6000 task=efa60440 task.ti=d8dc6000)
[ 4277.081966] Stack:
[ 4277.081968]  f69b30a8 c125a46c f667d69c f698f020 c10e1e1c 00001000 00000000c 10e1466
[ 4277.081974] <0> f667d69c 00000000 00000000 00000000 00000000 f698f000 00000000 f667d69c
[ 4277.081980] <0> d8dc7f64 00000000 d8dc7f64 c10df8f1 f69b30a8 f667d69c f80dfc0b 00001846
[ 4277.081986] Call Trace:
[ 4277.081992]  [] ? mutex_lock+0xb/0x24
[ 4277.081995]  [] ? dqget+0x238/0x27b
[ 4277.081999]  [] ? dqput+0x6c/0x1b8
[ 4277.082002]  [] ? vfs_dq_transfer+0x5c/0x76
[ 4277.082026]  [] ? ext3_setattr+0x90/0x198 [ext3]
[ 4277.082030]  [] ? notify_change+0x152/0x28d
[ 4277.082034]  [] ? chown_common+0x58/0x69
[ 4277.082038]  [] ? sys_chown+0x40/0x57
[ 4277.082042]  [] ? sysenter_do_call+0x12/0x28
[ 4277.082045] Code: ff 8b 5c 24 08 89 44 24 14 83 c3 74 89 d8 89 54 24 18 e8 62
 8a 17 00 8b 54 24 08 8b 82 a4 00 00 00 8b 40 24 8b 50 44 85 d2 75 04 <0f> 0b eb
 fe 8b 44 24 08 ff d2 8b 48 04 8b 10 89 4c 24 20 8b 4c
[ 4277.082080] EIP: [] dquot_transfer+0x123/0x4f5 SS:ESP 0068:d8dc7ec4
[ 4277.082086] ---[ end trace ae33fe0a16cabee7 ]---
[ 4277.082167] ------------[ cut here ]------------

Schnelle Abhilfe bietet das Kernel-Package linux-image-2.6.32-2-686 aus dem unstable „sid“-Repository. Wer verständlicherweise ungern die unstable repos in seine sources.lst eintragen will, kann dieses ausgewählte Kernel-Package mit folgenden Befehlen installen.


cd /tmp
wget http://ftp.de.debian.org/debian/pool/main/l/linux-2.6/linux-image-2.6.32-2-686_2.6.32-8_i386.deb
dpkg -i /tmp/linux-image-2.6.32-2-686_2.6.32-8_i386.deb

Zu Beachten ist natürlich das man das zur Systemarchitektur passende Kernel-Package installiert. Also gegebenfalls das „686“ gegen ein „amd64“ bei einem 64-Bit Linux austauschen.

 

Links

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=566532#10

http://packages.debian.org/sid/linux-image-2.6.32-2-686

Spass beim Linux-Kernel-Upgrade oder der „non-free firmware removal process“

Eigentlich sollte ein Kernel-Upgrade in der Regel eine undramatische Sache sein, wenn man nicht gerade die aller-neuste-bleeding-edge Hardware besitzt. Die Treiberunterstützung aktueller Stock-Kernel von Distributionen wie Debian ist recht breit gefächert, so das 1 bis 10 Jahre alte Hardware ad hoc booten sollte .. die Betonung liegt auf sollte.

Gäbe es da nicht so etwas wie den „non-free firmware removal process“ bei dem sich die Hardliner unter den Debian-Entwickler durchsetzten und mit der Zeit jeden noch so kleinen Binary-Blob aus den Quellcodes der Linux-Treiber verbannen wollen. Hintergrund ist das einige Treiber schon seit recht langer Zeit kleine Fragment binärer Codes enthalten die ähnlich einer Firmware geladen werden. Allerdings standen viele davon unter einem rechtlich ungeklärten Status [1], wobei deren Verwendung stillschweigend von den Hardwareherstellern geduldet wurde.

Weiterlesen »