Skip to main content

Thread: Using a USB winmodem with a Conexant driver in (K)Ubuntu 11.10 (Oneiric)


with information given diaco, lamp20, shizeon, backu, chiaseth , writers of http://help.ubuntu.com/community/dia...howto/conexant have used usb winmodem conexant driver in (k)ubuntu 11.10 (oneiric).

anyway, if had big problem conexant modem, remember written, not winmodems true modems, in https://help.ubuntu.com/community/di...howto/conexant: "note in general, can buy lucent or intel (smartlink, or other brand intel chipset) modem less 19.99 us".

when plugged conexant modem, executed
code:
lsusb
, said:
[...]
bus 006 device 002: id 0572:1300 conexant systems (rockwell), inc. softk56 data fax voice carp
[...]
so knew hsf modem recognized system.

had previous internet connection, upgraded system
code:
sudo apt-get update && sudo apt-get dist-upgrade
i checked had no previous conexant drivers installed. example: executed
code:
ls /usr/sbin/hsfconfig
and said that file did not exist; if existed have thought still installed.

made sure had "gcc" , "make" ready, executing
code:
sudo apt-get install gcc make
then executed steps told there:
code:
sudo -s cd /lib/modules/$(uname -r)/build/include/linux ln -s ../generated/utsrelease.h ln -s ../generated/autoconf.h exit
i prepared files driver compilation, executing
code:
mkdir ~/conexant_modem cd ~/conexant_modem
and if had 64-bit operating system executed
code:
wget http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-7.68.00.09x86_64oem.tar.gz tar xzf hsfmodem-7.68.00.09x86_64oem.tar.gz wget http://www.bargweb.net/images/2009/november/hsfmodem-7.80.02.05-diacoedition.zip unzip hsfmodem-7.80.02.05-diacoedition.zip cp -a hsfmodem-7.80.02.05-diacoedition/modules/imported/include/framewrk.h hsfmodem-7.68.00.09x86_64oem/modules/imported/include/framewrk.h cp -a hsfmodem-7.80.02.05-diacoedition/modules/imported/include/osservices.h hsfmodem-7.68.00.09x86_64oem/modules/imported/include/osservices.h
else, if had 32-bit operating system executed
code:
wget http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-7.68.00.09oem.tar.gz tar xzf hsfmodem-7.68.00.09oem.tar.gz wget http://www.bargweb.net/images/2009/november/hsfmodem-7.80.02.05-diacoedition.zip unzip hsfmodem-7.80.02.05-diacoedition.zip cp -a hsfmodem-7.80.02.05-diacoedition/modules/imported/include/framewrk.h hsfmodem-7.68.00.09oem/modules/imported/include/framewrk.h cp -a hsfmodem-7.80.02.05-diacoedition/modules/imported/include/osservices.h hsfmodem-7.68.00.09oem/modules/imported/include/osservices.h
a note curious ones: "framewrk.h" , "osservices.h" files different ones between directories "hsfmodem-7.68.00.09oem/modules/imported" , "hsfmodem-7.80.02.05-diacoedition/modules/imported".

if had 64-bit operating system executed
code:
wget http://www.linuxant.com/drivers/hsf/full/archive/hsfmodem-7.80.02.06x86_64full/hsfmodem-7.80.02.06x86_64full.tar.gz
else, if had 32-bit operating system executed
code:
wget http://www.linuxant.com/drivers/hsf/full/archive/hsfmodem-7.80.02.06full/hsfmodem-7.80.02.06full.tar.gz
a note curious ones: file newest 1 in http://www.linuxant.com/drivers/hsf/full/downloads.php

, then, if had 64-bit operating system executed
code:
tar xzf hsfmodem-7.80.02.06x86_64full.tar.gz rm -r hsfmodem-7.80.02.06x86_64full/modules/imported cp -r hsfmodem-7.68.00.09x86_64oem/modules/imported hsfmodem-7.80.02.06x86_64full/modules/ cp -r hsfmodem-7.68.00.09x86_64oem/modules/imported hsfmodem-7.80.02.06x86_64full/modules/
else, if had 32-bit operating system executed
code:
tar xzf hsfmodem-7.80.02.06full.tar.gz rm -r hsfmodem-7.80.02.06full/modules/imported cp -r hsfmodem-7.68.00.09oem/modules/imported hsfmodem-7.80.02.06full/modules/ cp -r hsfmodem-7.68.00.09oem/modules/imported hsfmodem-7.80.02.06full/modules/
the next step clean present directory.

if had 64-bit operating system executed
code:
rm -rf hsfmodem-7.68.00.09x86_64oem rm -rf hsfmodem-7.80.02.05-diacoedition rm hsfmodem-7.68.00.09x86_64oem.tar.gz rm hsfmodem-7.80.02.05-diacoedition.zip rm hsfmodem-7.80.02.06x86_64full.tar.gz
else, if had 32-bit operating system executed
code:
rm -rf hsfmodem-7.68.00.09oem rm -rf hsfmodem-7.80.02.05-diacoedition rm hsfmodem-7.68.00.09oem.tar.gz rm hsfmodem-7.80.02.05-diacoedition.zip rm hsfmodem-7.80.02.06full.tar.gz
then had change files adapt them work 3.0.0 version of linux kernel.
if had 64-bit operating system executed
code:
cd hsfmodem-7.80.02.06x86_64full xdg-open modules/gpl/serial_cnxt.c
else, if had 32-bit operating system executed
code:
cd hsfmodem-7.80.02.06full xdg-open modules/gpl/serial_cnxt.c
and text editor launched. searched string
code:
#ifndef found_uart_register_port
and below found string
code:
static declare_mutex(cnxt_port_sem);
i deleted last string, , wrote there
code:
static define_semaphore(cnxt_port_sem);
and saved , closed file. executed
code:
xdg-open modules/osdiag.c
and text editor launched. searched string
code:
this_module,
and below found string
code:
.ioctl    = diag_ioctl,
i deleted string, , wrote there
code:
.compat_ioctl = diag_ioctl,
and saved , closed file. executed
code:
xdg-open modules/osnvm.c
and text editor launched. searched string
code:
static list_head(nvm_newinst_list);
and below found string
code:
static declare_mutex(nvmelem_writelist_sem);
i deleted last string, , wrote there
code:
static define_semaphore(nvmelem_writelist_sem);
and saved , closed file.

a note curious ones: source of changes in files http://www.openmamba.org/showfile.ht...l-2.6.37.patch

user named chiaseth helped telling steps followed, way:

1. executed
code:
xdg-open modules/osservices.c
and text editor launched. searched string
code:
#include <linux/smp_lock.h>
and deleted string, , wrote there
code:
#include <linux/mutex.h> define_mutex(os_mutex);  // define mutex
in file searched strings
code:
unlock_kernel()
replacing of them with
code:
mutex_unlock(&os_mutex)
also, in file searched strings
code:
lock_kernel()
replacing of them with
code:
mutex_lock(&os_mutex)
and saved , closed file.

2. executed
code:
xdg-open modules/osdcp.c
in file searched string
code:
static spinlock_t dcp_lock = spin_lock_unlocked;
replacing with
code:
static define_spinlock(dcp_lock);
and saved , closed file.

3. executed
code:
xdg-open modules/osdiag.c
in file searched string
code:
static spinlock_t diag_lock = spin_lock_unlocked;
replacing with
code:
static define_spinlock(diag_lock);
and saved , closed file.

4. executed
code:
xdg-open modules/osfloat.c
in file searched string
code:
static spinlock_t fpstates_lock __attribute__((unused)) = spin_lock_unlocked;
replacing with
code:
static define_spinlock(fpstates_lock);
and saved , closed file.

5. executed
code:
xdg-open modules/osservices.c
in file searched string
code:
static spinlock_t atomic_lock __attribute__((unused)) = spin_lock_unlocked;
replacing with
code:
static define_spinlock(atomic_lock);
and saved , closed file.

6. executed
code:
xdg-open modules/gpl/oscompat.h
in file searched string
code:
static spinlock_t tqueue_lock __attribute__((unused)) = spin_lock_unlocked;
replacing with
code:
static define_spinlock(tqueue_lock);
and saved , closed file.


finally...
if executed
code:
sudo make install sudo hsfconfig
it asked "where linux source build directory matches running kernel?", pressed return key accept default answer. accepted default answer in other questions.

command reported that
code:
the /dev/modem alias (symlink) points ttyshsf0
i executed
code:
dmesg
and @ end saw
code:
    [59190.782005] hsfengine: module license 'see license file distributed driver' taints kernel.     [59190.782011] disabling lock debugging due kernel taint     [59192.564398] ttyshsf0 @ mmio 0x0 (irq = 0) 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 , 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 @ mmio 0x0 (irq = 0) conexant hsf softmodem (usb-0572:1300)     [59196.994150] usbcore: registered new interface driver hsfusbcd2
which meant, among other things, usb modem detected @ /dev/ttyshsf0.

note: said in https://help.ubuntu.com/community/di...howto/conexant: "do not delete or move source tree [in our case: ~/conexant_modem] from system after these steps, required uninstall , patch driver."

launched kppp (for example) , configured new "connection", specifying modem @ /dev/ttyshsf0. use program efax-gtk send faxes through modem.


notes maintenance:
if system upgrade changed kernel version of computer, , not connect internet or saw general protection fault due hsf driver error:

executed
code:
      sudo hsfconfig --uninstall
, rebooted computer (just in case).

if had 64-bit operating system executed
code:
      cd ~/conexant_modem/hsfmodem-7.80.02.06x86_64full
else, if had 32-bit operating system executed
code:
      cd ~/conexant_modem/hsfmodem-7.80.02.06full
executed
code:
      sudo make clean       sudo make install       sudo hsfconfig
, accepted default answer in questions.


further information
if find problem, or want make change method, please write in thread, can have proper final document.

thank you! tutorial helped me install driver, modem not found during installation or reboot. , suppose problem modem, though based on conexant chip, intel hda. , when type hsfconfig -i, returns following:

code:
note: hda support not compiled in driver  note: kernel module snd-via82xx-modem overridden hsfmc97via note: kernel module snd-intel8x0m overridden hsfmc97ich hsfmc97sis note: kernel module snd-atiixp-modem overridden hsfmc97ati  warning: no device detected hsf driver - hda modems may require reboot  note: hda support not compiled in driver  note: kernel module snd-via82xx-modem overridden hsfmc97via note: kernel module snd-intel8x0m overridden hsfmc97ich hsfmc97sis note: kernel module snd-atiixp-modem overridden hsfmc97ati
i not advanced in linux tell why so. believe need compile hda support driver, don't know whether right , how it. please me it? thank you!

update
hm. visited site of linuxant, , written there need install alsa driver provided them prior installing driver hsf modem. , of course, alsa driver linux 2.6 , on linux kernel 3.2.1 returns same fatal error modem driver: smp_lock.h missing =( wish knew how patch one, too.


Forum The Ubuntu Forum Community Ubuntu Official Flavours Support Networking & Wireless [SOLVED] Using a USB winmodem with a Conexant driver in (K)Ubuntu 11.10 (Oneiric)


Ubuntu

Comments

Popular posts from this blog

How to set the order of FAQs instead of alphabetical

Thread: Get UK Keyboard working

how do I change the e-mail address for my merchant account