Problema paracompilar driver de Winmodem

Hola:
Tengo un Winmodem NetoDragon 56k voice modem, y estoy tratndo de desterrar windows en mi PC en la casa de mi novia, pero me encontré ante un problema, la cuentión es que nunca he compilado nada, por lo que estoy muy "verde" en esto, entonces, primero describo que tengo y he hecho hasta ahora...
1- Mi kernel es el 2.26.2.686.
2- Encontré un driver que al parecer sirve, para mi modem: slmdm-2.7.10_debug.tar.gz
3- Instalé los build-essential.
4- Traté de hacer make en esas condiciones y me da este error:

MYPC/LINUX/CAMINO/DRIVER/slmdm-2.7.10_debug# make
gcc -Wall -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -I. -I/usr/src/linux/include  -DMODVERSIONS --include /usr/src/linux/include/linux/modversions.h -DMODEM_DEBUG=1 -o sllog.o -c sllog.c
cc1: error: /usr/src/linux/include/linux/modversions.h: No existe el fichero o el directorio
sllog.c:47:26: error: linux/module.h: No existe el fichero o el directorio
sllog.c:49:24: error: linux/init.h: No existe el fichero o el directorio
sllog.c:50:30: error: linux/miscdevice.h: No existe el fichero o el directorio
sllog.c:51:24: error: linux/slab.h: No existe el fichero o el directorio
sllog.c:53:26: error: linux/bitops.h: No existe el fichero o el directorio
sllog.c:56:29: error: linux/interrupt.h: No existe el fichero o el directorio
.
.
.
El error continúa pero lo importante creo que es esto. termina así:

sllog.c:437: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
sllog.c:443: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
sllog.c:448: warning: data definition has no type or storage class
sllog.c:448: warning: type defaults to ‘int’ in declaration of ‘module_init’
sllog.c:448: warning: parameter names (without types) in function declaration
sllog.c:449: warning: data definition has no type or storage class
sllog.c:449: warning: type defaults to ‘int’ in declaration of ‘module_exit’
sllog.c:449: warning: parameter names (without types) in function declaration
sllog.c:451: warning: data definition has no type or storage class
sllog.c:451: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL_NOVERS’
sllog.c:451: warning: parameter names (without types) in function declaration
sllog.c:452: warning: data definition has no type or storage class
sllog.c:452: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL_NOVERS’
sllog.c:452: warning: parameter names (without types) in function declaration
make: *** [sllog.o] Error 1

5- San google me dijo que me faltaban los kernel-headers (que no se que son; TEAREA PENDIENTE), pero también me dijo (San Google) que no tenía que compilar el kernel para tenerlas.
6- Descargué con Synaptic el Linux-headers de mi kernel.
7- Edité el fichero Makefile del Driver del win-modem que me descargué y le puse el camino, hasta las linux-headers de mi kernel.
8- Intenté hacer make nuevamente y volvemos al error 4 cambiando el camino hasta el modversions.h
9- Busqué y dentro de las headers del kernel y no encontré el fichero "modversions.h"

¿Alguien pudiera arrojar un poco de luz sobre esto?
Gracias de antemano.
Abel

Lo del tema de modversion.h es una cosa que te la voy a dejar a vos mismo para que la investigues porque nada tiene que ver con el winmodem que ya que hablamos de el que te pongo al corriente que linux con los winmodem no se lleva muy bien por varias razones entre ellas la más importante tal vez sea que un winmodem para que funcione necesita emular todo su entorno de hardware a travez de un software con lo que con los problemas que ello contrae (que son obvios) para más información lee esto.
Con respecto a tu winmodem pues sugiero que te des un paseo por http://linmodems.org/ y verifiques hasta que punto ese winmodem salga funcionando adecuadamente dentro de tu Debian? (porque calculo que es Debian lo que estas usando ya que no lo aclaras...)ya se que hablas también de Synaptics pero eso no quiere decir mucho, ya que el mismo también existe en Ubuntu y otras deribadas de Debian.
Por otro lado al ponerte a compilar imagino que haz instalado los paquetes que realmente necesitas para hacerlo, por ejemplo build-essential y el verdadero header de tu kernel, pues mucha gente se confunde y termina instalando headers que no se corresponden con el kernel que tiene instalado, verifícalo porfavor.
Saludos
Sebas

Efectivamente, comprueba si tienes instalados los headers adecuados y si has hecho bien el enlace simbólico /usr/src/linux apuntando a /usr/src/linux-headers-elquesea.

Hola a disculpen la demora en contestar... estuve muy liado... pero he resuelto una parte de los problemas ya... pero sigo con otros problemas... dejando el preámbulo.

  1. Es un Debian Lenny R2
  2. Utilizando el scanmodem noté que mi Neto Dragon lo reconoce como NAME="Modem: Smart Link Ltd. Device 8800 "
    CLASS=0703
    PCIDEV=2003:8800
    SUBSYS=1801:2800
    IRQ=22
    HDA2=00:1b.0
    IDENT=slamr
    y me dice que tengo que instalar esto: ungrab-winmodem-20070505.tar.gz además del driver
  3. me recomienda al parecer el mismo driver pero una versión superior esta: slmodem-2.9.11-20080126.tar.gz Estaba utilizando un versión más vieja del driver
  4. Cree el link simbólico correctamente a las cabeceras de mi kernel

primero complé el winmodem-20070505.tar.gz y le hice un make y luego make install como sigue:

# make
make modules -C /lib/modules/2.6.26-2-686/build SUBDIRS=/home/abel/Desktop/winmodLinux/ungrab-winmodem-20070505
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.26-2-686'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.26-2-686'
#
# make install
make modules -C /lib/modules/2.6.26-2-686/build SUBDIRS=/home/abel/Desktop/winmodLinux/ungrab-winmodem-20070505
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.26-2-686'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.26-2-686'
install -D -m 644 ungrab-winmodem.ko /lib/modules/2.6.26-2-686/extra/ungrab-winmodem.ko
/sbin/depmod -a
#

Creo que bien hasta ahí­....

ahora cuando complilo el driver (fijense especialmente en la parte final donde comienza a dar errores)sale esto:

# make
make -C modem all
make[1]: se ingresa al directorio `/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/modem'
make[1]: se sale del directorio `/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/modem'
make -C drivers KERNEL_DIR=/lib/modules/2.6.26-2-686/build
make[1]: se ingresa al directorio `/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers'
cc -I/lib/modules/2.6.26-2-686/build/include -o kernel-ver kernel-ver.c
make all KERNEL_VER=2.6.26-2-686
make[2]: se ingresa al directorio `/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers'
make modules -C /lib/modules/2.6.26-2-686/build SUBDIRS=/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers
make[3]: se ingresa al directorio `/usr/src/linux-headers-2.6.26-2-686'
CC [M]  /home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.o
/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.c: In function ‘amrmo_pci_probe’:
/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.c:612: error: ‘SA_SHIRQ’ undeclared (first use in this function)
/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.c:612: error: (Each undeclared identifier is reported only once
/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.c:612: error: for each function it appears in.)
/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.c: In function ‘amrmo_init’:
/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.c:752: warning: ‘pci_find_device’ is deprecated (declared at include/linux/pci.h:514)
make[4]: *** [/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers/amrmo_init.o] Error 1
make[3]: *** [_module_/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers] Error 2
make[3]: se sale del directorio `/usr/src/linux-headers-2.6.26-2-686'
make[2]: *** [all] Error 2
make[2]: se sale del directorio `/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers'
make[1]: *** [all] Error 2
make[1]: se sale del directorio `/home/abel/Desktop/winmodLinux/slmodem-2.9.11-20080126/drivers'
make: *** [drivers] Error 2

Despues de esto nada fluye... La verdad es que no se que hacer... voy a seguir buscando en internet, pero me vendría bien un poco de ayuda...
Gracias de antemano

Perdona si te contesto a una cuestión diferente a la tuya, pero:

Si tienes la versión estable de debian y el kernel oficial, ¿no podrías intentar instalar el módulo desde los repositorios oficiales de Debian con la herramienta module-assistan?

Si habilitas los repositorios non-free verás que aparecen las fuentes:

http://packages.debian.org/search?keywords=sl-modem&searchon=names&suite...

Y una vez habilitaddos, instala module-assistant y las dependencias que te pida, en este foro hay más entradas al respecto del uso de module-assistant para compilar módulos.

Saludos.

La última versión es ésta:
http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-200902...

Borra todos esos directorios donde tienes descomprimidas las versiones anteriores (por experiencia, a veces te puedes confundir y liarte aún más) y prueba con él.

Acabo de compilar esta última versión (en Lenny) y ha ido todo suavesiiiiiiiitoooooooooooo.

Gracia leo, pruebo todo eso y escribo... como me fue.