Instalando o modem HSF 56k HSFi Conexant oem no Arch Linux

Eu tinha tudo configurado no meu Arch Linux, inclusive os periféricos, a única coisa que eu não tinha configurado era o meu modem, pra mim sempre foi uma luta conseguir rodar o driver do meu modem no linux, com o advento da banda larga isso passou a ser desnecessário, mas como eu sempre tive problemas com isso, achei que fosse um desafio a ser vencido.

Meu modem é um HSF 56k HSFi, da Conexant:

[root@mosdef ~]# lspci -nn|grep Modem
00:06.0 Communication controller [0780]: Conexant HSF 56k HSFi Modem [14f1:2f00] (rev 01)
[root@mosdef ~]# 

Procurando no google encontrei rapidamente o site da linuxant.com que comercializa o driver para o linux, existia tambem uma versão gratuita, porém com uma limitação de uso muito incomoda de permitir apenas 14 kbps de transferência.

Embora já tivesse encontrado o driver, inclusive ele estando presente no repositorio AUR do Arch Linux, resolvi buscar uma solução para a limitação e foi quando descobri que a dell disponibilizava em seu site a versão registrada do driver para os consumidores de seus produtos.

No AUR, repositório da comunidade Arch Linux, existia o driver para download, porém a versão gratuita com a limitação, e ela vinha em dois pacotes distintos: hsfmodem e hsfmodem-utils. O que você precisa fazer ao instalar o driver é durante o comando yaourt -S hsfmodem , editar os PKGBUILD's tanto do hsfmodem quanto do hsfmodem-utils apontando para o pacote do site da dell.

[deadcow@mosdef ~]$ yaourt -Ss hsfmodem
aur/hsfmodem 7.68.00.11full-1
    Linux drivers for the Conexant HSF Softmodem family (kernel modules)
aur/hsfmodem-utils 7.68.00.11full-1
    Linux drivers for the Conexant HSF Softmodem family (userspace tools and libraries)
[deadcow@mosdef ~]$

A versão do driver no site da dell é uma versão anterior, mas com a mesma funcionalidade e sem nenhum impedimento quanto a versão do kernel, como antigamente havia em modems PCTel. (update: aparentemente, essa versão do driver NÃO funciona no kernel2.6.26-ARCH) Você então irá editar o PKGBUILD do hsfmodem para:

# $Id: PKGBUILD 41 2008-06-30 17:45:49Z djclue917 $
# Maintainer: Darwin Bautista <djclue917@gmail.com>
# Contributor: Darwin Bautista <djclue917@gmail.com>

pkgname=hsfmodem
pkgver=7.68.00.09oem
pkgrel=1
pkgdesc="Linux drivers for the Conexant HSF Softmodem family (kernel modules) (DELL VERSION: Registered)"
arch=('i686' 'x86_64')
url="http://www.linuxant.com/drivers/hsf/"
license=('GPL' 'custom')
depends=("hsfmodem-utils>=$pkgver" 'kernel26')
install=hsfmodem.install
source=(http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-$pkgver.tar.gz)
[ "$CARCH" = "x86_64" ] && source[0]=http://http://linux.dell.com/files/ubuntu/hardy /modem-drivers/hsf/hsfmodem-${pkgver%oem}x86_64oem/hsfmodem-${pkgver%oem}x86_64oem.tar.gz
md5sums=('71bccfcb8caed31b91e605889e94bcc9')
[ "$CARCH" = "x86_64" ] && md5sums[0]='9cfa801c88f9c61cb26db786d64872c7'

build() {
    cd $srcdir/hsfmodem-${pkgver%oem}*oem/modules/

    make CNXT_MODS_DIR=$pkgdir/lib/modules/$(uname -r)/extra modules_install || return 1
    make CNXTLIBDIR=$pkgdir/usr/lib/hsfmodem
    CNXT_MODS_DIR=$pkgdir/lib/modules/$(uname -r)/extra modules_install
}

# vim:set ts=2 sw=2 et:

E o PKGBUILD do hsfmodem-utils para:

# $Id: PKGBUILD 40 2008-06-30 17:45:31Z djclue917 $
# Maintainer: Darwin Bautista <djclue917@gmail.com>
# Contributor: Darwin Bautista <djclue917@gmail.com>

pkgname=hsfmodem-utils
pkgver=7.68.00.09oem
pkgrel=1
pkgdesc="Linux drivers for the Conexant HSF Softmodem family (userspace tools and libraries) (DELL VERSION: Registered)"
arch=('i686' 'x86_64')
url="http://www.linuxant.com/drivers/hsf/"
license=('GPL' 'custom')
backup=('etc/hsfmodem/nvm/dynamic')
install=hsfmodem-utils.install
options=(!emptydirs)
source=(http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-$pkgver.tar.gz)
[ "$CARCH" = "x86_64" ] && source[0]=http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-${pkgver%oem}x86_64oem/hsfmodem-${pkgver%oem}x86_64oem.tar.gz
md5sums=('71bccfcb8caed31b91e605889e94bcc9')
[ "$CARCH" = "x86_64" ] && md5sums[0]='9cfa801c88f9c61cb26db786d64872c7'

build() {
    cd $srcdir/hsfmodem-${pkgver%oem}*oem/

    make ROOT=$pkgdir install || return 1

    echo "TAR hsfmodem-$pkgver" > $pkgdir/etc/hsfmodem/package

    # Fix paths in scripts
    sed -e "s|$pkgdir/usr/sbin:||" -e "s|$pkgdir||g" -i $pkgdir/usr/sbin/hsf{config,dcpd}

    rm -R $pkgdir/etc/hsfmodem/nvm/hsfpcibasic2hsfi/Region
    ln -s ../hsfpcibasic2/Region $pkgdir/etc/hsfmodem/nvm/hsfpcibasic2hsfi/

    # Install license for non-GPL'ed components
    install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/license.txt

    rm $pkgdir/usr/lib/hsfmodem/{config.mak,LICENSE}
    rm $pkgdir/usr/lib/hsfmodem/modules/Makefile
    rm $pkgdir/usr/lib/hsfmodem/modules/GPL/{COPYING,hda/Makefile}
}

# vim:set ts=2 sw=2 et:

Após a instalação dos pacotes é necessario executar como root o hsfconfig:

[root@mosdef ~]# hsfconfig
Conexant HSF softmodem driver, version 7.68.00.09oem

If you need assistance or more information, please go to:
http://www.linuxant.com/

When reporting a problem for the first time, please send
us the file generated by "hsfconfig --dumpdiag".

Warning: existing driver modules found under:
/lib/modules/2.6.25-ARCH/
Would you like to keep using them? [no] yes

Please enter region name for modem unit 0 [BRAZIL]: 

Setting region for modem unit 0: "BRAZIL"

To change, use "hsfconfig --region" or "AT+GCI=<T35code>"
The current region can be displayed by entering "ATI9" in a terminal
program.

Current parameters: ("hsfconfig --info")

Config for modem unit 0: /dev/ttySHSF0
            Device instance: 0-PCI-14f1:2f00-14f1:2004
            HW revision    : Basic2 2.18 Standard DAA 3VoltsIA
            HW profile name: hsfpcibasic2hsfi
            Current region : BRAZIL (T.35 code: 0016)

The /dev/modem alias (symlink) points to ttySHSF0
[root@mosdef ~]#

Como vocês podem perceber, a versão oem do driver é registrada, já que não solicita nenhum tipo de licença durante a configuração. Para sua comodidade aqui estão os dois pacotes, assim como seus respectivos PKGBUILD's editados hsfmodem-utils-7.68.00.09oem.tgz e hsfmodem-7.68.00.09oem.tgz

 

1 comentários:

  1. Anônimo said,

    Licença é com cê cedilha.

    on 11/08/2008 22:39:00  


Postar um comentário