He aquí otro tutorial largo y ameno, con lo que, querido lector, le recomiendo antes de empezar que se prepare su brebaje favorito... ya lo tiene en la mano? Bien, empezemos pues!
Introducción
Reconozcámoslo, el mundo Linux es muy delicado con el hardware. Muchos dispositivos sólo funcionan en Windows, y claro, los módems no iban a ser menos (llamados WinModems).
Muchísimos de estos WinModems usan el mismo chip (Conexant / Rockwell), y afortunadamente pueden ser usados en Linux, pero no es nada fácil.
Conexant no ofrece drivers para Linux, pero en cambio hay
drivers comerciales de la casa Linuxant. Es un poco paradógico que, disponiendo de drivers gratuitos en Windows, se dediquen a comercializar los drivers en entorno Linux (la licencia cuesta $20 USD anual!). Además, por si no fuera suficiente, el fabricante Dell ha ido ofreciendo gratuítamente estos drivers... ¿lo entienden? Yo tampoco.
En resumen, los drivers sin licencia están limitados a 14.4Kbps... pero hecha la ley hecha la trampa. Sin embargo, el principal problema que encontraremos es que no hay paquetes .deb para las últimas versiones de Ubuntu, ya que además usan nuevos kernels. Así que, no nos toca más remedio que compilarnos nuestro propio módulo.
Más info y literatura recomendada:
https://help.ubuntu.com/community/Dia...o/Conexant
Preparación
Para este tutorial estoy usando Ubuntu 12.10 (Quantal Quetzal), con el Kernel 3.5.0-21-generic (lo pueden consultar con el comando
uname -r ).
Primero, actualizaremos nuestro OS y instalaremos los paquetes necesarios para empezar a usar el módem y poder compilar el módulo.
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install mgetty ppp wvdial
sudo apt-get install build-essential linux-headers-generic linux-source
Comprobad que tenéis un módem con chipset Conexant o Rockwell con los comandos
lspci o
lsusb:
Bus 006 Device 002: ID 0572:1300 Conexant Systems (Rockwell), Inc. SoftK56 Data Fax Voice CARP
Listos, ahora toca compilar el módulo
génerico hsfmodem. La última versión en estos momentos es la 7.80.02.06. Para ahorraros complicaciones, os descargáis el adjunto:
- Es el módulo para x86, y
ya parcheado para no tener limitaciones.
- Además, está modificado para que compile con el kernel 3.5x (no vale para kernel superior).
Si necesitáis para un kernel anterior (2.6, 3.0 o 3.1), os recomiendo visitar la siguiente Web (hay drivers para x86 y x64):
http://www.naguissa.com/blog.php?verp...ntario=958
Compilación:
tar -xfzf hsfmodem-7.80.02.06_x86_full_3.5.tar.gz
cd hsfmodem-7.80.02.06_x86_full_3.5
sudo make clean
sudo make install
sudo hsfconfig
Cuando pregunte "Where is the linux source build directory that matches your running kernel?", simplemente pulsad Enter para aceptar la pregunta por defecto.
Si el último comando os da un error similar a éste: /usr/sbin/hsfconfig: Cannot find major device number for hsfdcp in range 240-249
Es un error conocido y explicado aquí:
http://www.linuxant.com/pipermail/hsf...01543.html.
Para arreglarlo se ha de editar (como root) el archivo /usr/sbin/hsfconfig , buscar first= y cambiar el número (creo que pone 240) por 220. Después volvemos a ejecutar: sudo hsfconfig
Al final de la compilación, hsfconfig pregunta por el país. En mi caso, escribí SPAIN.
Si todo fue correctamente veréis una frase como esta:
The /dev/modem alias (symlink) points to ttySHSF0 . Si ejecutáis el comando
dmesg lo podréis comprobar:
[59190.782005] hsfengine: module license 'see LICENSE file distributed with driver' taints kernel.
[59190.782011] Disabling lock debugging due to kernel taint
[59192.564398] ttySHSF0 at MMIO 0x0 (irq = 0) is a Conexant HSF softmodem (USB-0572:1300)
[59192.600274] usbcore: registered new interface driver hsfusbcd2
[59194.416241] usbcore: deregistering interface driver hsfusbcd2
[59194.600064] usb 6-1: reset full speed USB device using uhci_hcd and address 2
[59194.811746] cnxthsf_DcpDestroy: units still active, waiting..
[59194.811764] cnxthsf_DcpDestroy: units still active, waiting..
[59194.811778] cnxthsf_DcpDestroy: units still active, waiting..
[59196.967466] ttySHSF0 at MMIO 0x0 (irq = 0) is a Conexant HSF softmodem (USB-0572:1300)
[59196.994150] usbcore: registered new interface driver hsfusbcd2
Simplemente ejecutad
sudo wvdialconf y os detectará el módem. Ya lo podéis usar! :)
Notas finales:
IMPORTANTE: NO eliminar ni mover la carpeta de donde lo hemos compilado, ya que es necesaria para desinstalar el driver de la siguiente forma:
sudo hsfconfig --uninstall
cd hsfmodem-7.80.02.06_x86_full_3.5
sudo make uninstall
sudo make clean