I know this is kind of against the rules, but in another attempt to get a working driver other than the redflag kernel, I am tempted/have been tempted to try the AGERE code http://linmodems.technion.ac.il/packages/ltmodem/sv92/agrsm-20080203.tar.gz The above code compiles and is very similar to the one provided in the link by Frank http://service.one.de/download/index.php?&direction=0&order=&directory=NOTEBOOKS/ONE_A1xx/Linux%20Drivers/Source-code/Modem root@slax:~# unzip AGERE\ D40\ 11c1-1040\ src.zip Archive: AGERE D40 11c1-1040 src.zip inflating: src/8250.h inflating: src/AgereMdmDaemon inflating: src/agrinst inflating: src/agrmodem.h inflating: src/agrmodem.mod.c inflating: src/agrmodemlib.o inflating: src/agrserial.mod.c inflating: src/agrsoftmodem.c inflating: src/agruninst inflating: src/agr_auxinst inflating: src/agr_softmodem inflating: src/config.h inflating: src/HDA.c inflating: src/hda_codec.h inflating: src/LICENSE inflating: src/linuxif.h inflating: src/Makefile extracting: src/Module.symvers inflating: src/README inflating: src/serial26.c root@slax:~# tar -zxvf agrsm-20080203.tar.gz agrsm/ agrsm/agrsm_core.o agrsm/agrmodemlib.o agrsm/agrsm_howto.txt agrsm/README agrsm/agr.h agrsm/lib.c agrsm/ReadmeUpdate.txt agrsm/agrsoftmodem.c agrsm/8250.h agrsm/agrmodem.h agrsm/agrsm.rules agrsm/linuxif.h agrsm/Makefile agrsm/.#Readme.1st agrsm/LICENSE agrsm/serial26.c I see many things simiilar and many differences as well. The second one agrsm/ here creates the modules and places them in /lib/modules/`uname -r`/extra/ while the first one, the 11c11040 one places them in /lib/modules/`uname -r`/kernel/chars/. The bad thing is that the final step does not succeed :( make install fails in both cases. I tried the agrsm-20080203 just to see what I was going to get and all seemed to be fine, the code compiles, I modprobed agrmodem, and agrserial and then wvdialconf /etc/wvdial.conf did not find the modem. I typed dmesg and I got agrsm: created 0 infos Loading module Agere Modem Controller driver version 2.1.60.0.Linspire (2005-11-16) ttyAGS3 at I/O 0x400 (irq = 3) is a AgereModem agrserial: Loading module Agere Modem Interface driver version 2.1.60.0.Linspire (2005-11-16) BUG: unable to handle kernel NULL pointer dereference at virtual address 00000004 printing eip: f9af6e53 *pde = 00000000 Oops: 0000 [#1] SMP Modules linked in: agrserial agrmodem(P) sg i915 drm snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss fuse lp parport_pc parport pcspkr wlan_scan_sta ath_rate_sample pcmcia snd_hda_intel snd_pcm snd_timer snd_page_alloc ath_pci snd_hwdep yenta_socket rsrc_nonstatic pcmcia_core tifm_7xx1 wlan sdhci mmc_core intel_agp snd tifm_core ath_hal(P) iTCO_wdt pata_acpi ata_generic iTCO_vendor_support video soundcore output agpgart i2c_i801 r8169 serio_raw psmouse evdev aufs squashfs sqlzma unlzma Pid: 26236, comm: wvdial Tainted: P (2.6.24.5 #1) EIP: 0060:[<f9af6e53>] EFLAGS: 00010296 CPU: 1 EIP is at LXSoftModemStart+0x23/0x230 [agrmodem] EAX: 00000008 EBX: f9584988 ECX: fffa9000 EDX: f9583500 ESI: 00000000 EDI: ee7a9138 EBP: e0823e34 ESP: e0823dac DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process wvdial (pid: 26236, ti=e0822000 task=e0fe5540 task.ti=e0822000) Stack: 00000000 00000008 f9b31801 fffffffc 00000001 c141f720 c141f720 c141f720 c141f720 c015935b 00000001 00000044 00000001 00000044 e0fb9000 00000000 00000000 c08b2d00 00000001 00000000 000280d0 c08b679c 00000202 00000000 Call Trace: [<c015935b>] get_page_from_freelist+0x25b/0x3e0 [<c015956a>] __alloc_pages+0x5a/0x370 [<f9af2426>] linux_modem_open+0x26/0x110 [agrmodem] [<f9a4c4b5>] modemPortOpen+0x5/0x10 [agrmodem] [<f9581ef5>] serial8250_startup+0x1b5/0x2f0 [agrserial] [<c043ac99>] uart_startup+0x49/0x160 [<c043c4fa>] uart_open+0xfa/0x410 [<c04254f4>] check_tty_count+0x14/0xb0 [<c03cfb2f>] kobject_get+0xf/0x20 [<c0429443>] tty_open+0x143/0x2e0 [<c0429300>] tty_open+0x0/0x2e0 [<c0179ce3>] chrdev_open+0xa3/0x190 [<c01752af>] __dentry_open+0xbf/0x1c0 [<c0175465>] nameidata_to_filp+0x35/0x40 [<c0179c40>] chrdev_open+0x0/0x190 [<c01754c0>] do_filp_open+0x50/0x60 [<f8d3f9e7>] set_h_fptr+0x37/0x60 [aufs] [<c0175162>] get_unused_fd_flags+0x52/0xd0 [<c0175520>] do_sys_open+0x50/0xf0 [<c01755fc>] sys_open+0x1c/0x20 [<c0104352>] syscall_call+0x7/0xb ======================= Code: 00 89 d8 eb a7 8d 76 00 55 b8 01 18 b3 f9 89 e5 57 56 53 83 ec 7c 8b 75 08 89 44 24 08 c7 45 e4 78 56 34 12 8d 46 08 89 44 24 04 <8b> 46 04 89 04 24 e8 e2 13 00 00 85 c0 89 c3 0f 88 68 01 00 00 EIP: [<f9af6e53>] LXSoftModemStart+0x23/0x230 [agrmodem] SS:ESP 0068:e0823dac ---[ end trace 4d0effe1422cd7f1 ]--- They are similar and they are also very different.. This is just an observation and do not expect responses back. /*** removed to save space ***/ /root/src/HDA.c:302: warning: unused variable 'CodecAddress' /root/src/HDA.c: In function 'LnxTransferCodecVerbsWrite': /root/src/HDA.c:323: warning: unused variable 'CodecAddress' /root/src/HDA.c: In function 'findHDACodec': /root/src/HDA.c:270: warning: control reaches end of non-void function CC [M] /root/src/serial26.o /root/src/serial26.c: In function 'serial8250_startup': /root/src/serial26.c:1434: warning: assignment from incompatible pointer type /root/src/serial26.c: In function 'serial8250_set_termios': /root/src/serial26.c:1699: warning: passing argument 2 of 'uart_get_baud_rate' from incompatible pointer type /root/src/serial26.c:1699: warning: passing argument 3 of 'uart_get_baud_rate' from incompatible pointer type /root/src/serial26.c: At top level: /root/src/serial26.c:2115: warning: initialization from incompatible pointer type /root/src/serial26.c:2116: warning: initialization from incompatible pointer type /root/src/serial26.c:2123: warning: initialization from incompatible pointer type LD [M] /root/src/agrmodem.o LD [M] /root/src/agrserial.o Building modules, stage 2. MODPOST 2 modules CC /root/src/agrmodem.mod.o LD [M] /root/src/agrmodem.ko CC /root/src/agrserial.mod.o LD [M] /root/src/agrserial.ko make[1]: Leaving directory `/usr/src/linux-2.6.24.5' root@slax:~/src# make install ./agrinst make: execvp: ./agrinst: Permission denied make: *** [install] Error 127 This is what I do not understand. Permission denied? I am running as root. :( Regards, Antonio