Home | Downloads | Fórums | Notícias | Preferências | Galeria | Cadastro | Wiki-BR
 

[ Comunidade Fedora Brasil ]: Forums



Comunidade Fedora Brasil :: Exibir tópico - FC5 e softmodens
 FAQFAQ   PesquisarPesquisar   GruposGrupos   PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   LoginLogin 

FC5 e softmodens
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    Comunidade Fedora Brasil - Índice do Fórum -> Fedora Linux rodando como Desktop
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Hector
Membro Ouro
Membro Ouro


Registrado em: Feb 03, 2005
Mensagens: 910

MensagemEnviada: Seg Mai 22, 2006 9:38 am    Assunto: Responder com Citação

tosta escreveu:
O que preciso é informações de modems que não podem ser instalados por rpms. Para que possamos tentar gerar os rpms.

Oi Tosta, eu tb. tenho trabalhado nisto, mas parece que os drivers para os outros modems não server para FC5, tanto que já tentei instalar vários deles e nada (exceto os smartlinks). Eu topo ajudar neste sentido, já que tenho vários modems para testar. O que já tentei: Pctel789 : roda até o FC4, Intel537 tigerjet: roda até o FC3. Talvez saia alguma atualização em breve, mas estou sempre de olho nos foruns.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
weise
Entusiasta
Entusiasta


Registrado em: Feb 03, 2006
Mensagens: 185

MensagemEnviada: Seg Mai 22, 2006 10:28 am    Assunto: Responder com Citação

tosta escreveu:
weise escreveu:
acredito que não exista rpms para instalar os drivers dos modems SmartLink...


Existe sim, lembro de ter criado um pacote slmodem...


olá...

baixei o pacote slmodem-2.9.11-1fb.scr.rpm do repósitorio...

extrai os fontes...

gerei um patch pra kernel > 2.6.15

slmodem-2.9.11-usb.patch
Código:

diff -urN slmodem-2.9.11-20051101/drivers/st7554.c slmodem-2.9.11-20051101_new/drivers/st7554.c
--- slmodem-2.9.11-20051101/drivers/st7554.c   2005-11-01 13:31:45.000000000 -0200
+++ slmodem-2.9.11-20051101_new/drivers/st7554.c   2006-05-16 23:50:10.000000000 -0300
@@ -1150,7 +1150,9 @@
 MODULE_DEVICE_TABLE (usb, st7554_ids);
 
 static struct usb_driver st7554_usb_driver = {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
    .owner =       THIS_MODULE,
+#endif
    .name =          "ST7554 USB Modem",
    .probe =       st7554_probe,
    .disconnect =  st7554_disconnect,


peguei o patch mais recente do Andreas pro daemon...

slmodem-2.9.11-daemon.patch
Código:

--- slmodem-2.9.11-20051101/modem/modem_main.c.daemon   2006-03-29 13:57:07.172434936 +0200
+++ slmodem-2.9.11-20051101/modem/modem_main.c   2006-03-29 13:59:37.552573680 +0200
@@ -57,6 +57,7 @@
 #include <signal.h>
 #include <limits.h>
 #include <grp.h>
+#include <syslog.h>
 
 #ifdef SUPPORT_ALSA
 #define ALSA_PCM_NEW_HW_PARAMS_API 1
@@ -70,8 +71,8 @@
 #include <modem.h>
 #include <modem_debug.h>
 
-#define INFO(fmt,args...) fprintf(stderr, fmt , ##args );
-#define ERR(fmt,args...) fprintf(stderr, "error: " fmt , ##args );
+#define INFO(fmt,args...) (daemonize) ? syslog(LOG_INFO, fmt, ##args) : fprintf(stderr, fmt , ##args );
+#define ERR(fmt,args...) (daemonize) ? syslog(LOG_ERR, "error: " fmt, ##args) : fprintf(stderr, "error: " fmt , ##args );
 
 #define DBG(fmt,args...) dprintf("main: " fmt, ##args)
 
@@ -131,6 +132,7 @@
 #define INTERNAL_DELAY 40 /* internal device tx/rx delay: should be selfdetectible */
 
 extern unsigned use_alsa;
+extern unsigned daemonize;
 static snd_output_t *dbg_out = NULL;
 
 static int alsa_mixer_setup(struct device_struct *dev, const char *dev_name)
@@ -966,6 +968,10 @@
    INFO("modem `%s' created. TTY is `%s'\n",
         m->name, m->pty_name);
 
+   // daemonize
+   if (daemonize)
+      daemon(0, 0);
+
    sprintf(path_name,"/var/lib/slmodem/data.%s",basename(dev_name));
    datafile_load_info(path_name,&m->dsp_info);
 
@@ -984,7 +990,7 @@
    signal(SIGINT, mark_termination);
    signal(SIGTERM, mark_termination);
 
-   INFO("Use `%s' as modem device, Ctrl+C for termination.\n",
+   INFO("Modem device: `%s'\n",
         *link_name ? link_name : m->pty_name);
 
    /* main loop here */
--- slmodem-2.9.11-20051101/modem/modem_cmdline.c.daemon   2006-03-29 13:59:45.413378656 +0200
+++ slmodem-2.9.11-20051101/modem/modem_cmdline.c   2006-03-29 14:00:42.213743688 +0200
@@ -74,6 +74,7 @@
 unsigned int ring_detector = 0;
 #endif
 unsigned int use_alsa = 0;
+unsigned int daemonize = 0;
 unsigned int use_short_buffer = 0;
 const char *modem_group = "uucp";
 mode_t modem_perm  = 0660;
@@ -86,6 +87,7 @@
    OPT_COUNTRY,
    OPT_COUNTRYLIST,
    OPT_ALSA,
+   OPT_DAEMON,
    OPT_GROUP,
    OPT_PERM,
 #ifdef MODEM_CONFIG_RING_DETECTOR
@@ -113,6 +115,7 @@
    {'c',"country","default modem country name",MANDATORY,STRING,"USA"},
    { 0 ,"countrylist","show list of supported countries"},
    {'a',"alsa","ALSA mode (see README for howto)"},
+   {'d',"daemon","Daemon mode"},
    {'g',"group","Modem TTY group",MANDATORY,STRING,"uucp"},
    {'p',"perm","Modem TTY permission",MANDATORY,INTEGER,"0660"},
 #ifdef MODEM_CONFIG_RING_DETECTOR
@@ -252,6 +255,8 @@
 #endif
       use_alsa = 1;
    }
+   if(opt_list[OPT_DAEMON].found)
+      daemonize = 1;
    if(opt_list[OPT_GROUP].found)
       modem_group = opt_list[OPT_GROUP].arg_val;
    if(opt_list[OPT_PERM].found) {


alterei o spec...

slmodem.spec
Código:

%define rpm_build                  2fb
%define rpm_status                 stable
%define product            Fedora-Brasil

%define filever 2.9.11-20051101

%define kname %(echo `uname -r`)
%define kver  %(echo %{kname} | sed -e 's/smp//' -e 's/bigmem//' -e 's/enterprise//')
%define kvar  %(echo %{kname}|sed -e 's/%{kver}//' -e 's/-$//')
%define ktype %(echo kernel-%{kvar})
%define krel  %(echo %{kname} | sed -e 's/-/_/g')

Summary: Drivers for the Smart Link HAMR5600 winmodem
Name: slmodem
Version: 2.9.11
Release: %{rpm_build}%{?rpmstatus:.%{rpmstatus}}
Epoch: 0
Group: System Environment/Daemons
License: BSD w/binary object
#URL: http://www.smlink.com/content.aspx?id=132
Source0: http://linmodems.technion.ac.il/packages/smartlink/slmodem-%{filever}.tar.gz
Source1: slmodemd.sysconfig
Source2: slmodemd.init
Patch0: slmodem-2.9.11-daemon.patch
Patch1: slmodem-2.9.11-usb.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
BuildRequires: alsa-lib-devel
Requires(post): /sbin/chkconfig
Requires(post): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service

%description
This package contains the userspace application to control modem chipsets such
as the Intel ICH chipset, which is used in most of todays laptops.

After starting the slmodem daemon on a supported system, /dev/ttySL0 can be
used to dial out with the internal softmodem.

%package -n kmod-slmodem-%{kvar}
Summary: Kernel modules for slmodem under kernel %{kver}
Release: %(echo %{release}.%{kver} | tr - _)
BuildRequires: %{ktype}-devel = %{kver}
Requires: %{name} = %{version}
Requires: %{ktype} = %{kver}
Group: System Environment/Kernel Modules
License: BSD w/binary object

%description -n kmod-slmodem-%{kvar}
Kernel modules for slmodem under kernel %{kver}

%prep
%setup -q -n slmodem-%{filever}
%patch0 -p1 -b .daemon
%patch1 -p1 -b .usb

%build
pushd modem
make SUPPORT_ALSA=1 EXTRA_CFLAGS="$RPM_OPT_FLAGS"
popd
export KERNEL_VER=%{kver}
make KERNEL_DIR=/lib/modules/%{kname}/build drivers

%install
rm -rf %{buildroot}
install -D -m 755 modem/slmodemd %{buildroot}%{_sbindir}/slmodemd
install -d -m 750 %{buildroot}%{_localstatedir}/lib/slmodem

install -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/sysconfig/slmodemd
install -D -m 755 %{SOURCE2} %{buildroot}%{_sysconfdir}/init.d/slmodemd

install -D -m 0644 drivers/slamr.ko %{buildroot}/lib/modules/%{kname}/misc/slamr.ko
install -D -m 0644 drivers/slusb.ko %{buildroot}/lib/modules/%{kname}/misc/slusb.ko

%post
/sbin/chkconfig --add slmodemd

%preun
if [ $1 = 0 ]; then
        /sbin/service slmodemd stop >/dev/null 2>&1
        /sbin/chkconfig --del slmodemd
fi

%postun
if [ "$1" -ge "1" ]; then
        /sbin/service slmodemd condrestart >/dev/null 2>&1
fi

%post -n kmod-slmodem-%{kvar}
/sbin/depmod -a

%postun -n kmod-slmodem-%{kvar}
/sbin/depmod -a

%clean
rm -rf %{buildroot}

%files -n kmod-slmodem-%{kvar}
/lib/modules/%{kname}/misc/slamr.ko
/lib/modules/%{kname}/misc/slusb.ko

%files
%defattr (-,root,root)
%doc README Changes COPYING
%{_sbindir}/slmodemd
%{_sysconfdir}/init.d/slmodemd
%config(noreplace) %{_sysconfdir}/sysconfig/slmodemd
%dir %{_localstatedir}/lib/slmodem

%changelog
* Wed May 17 2006 Jurandy G. A. Junior <jurandy.junior@students.ic.unicamp.br> 2.9.11-2fb
- 2.9.11-20051101 build for FC5

* Wed Jan 25 2006 Christian Tosta <tosta.users.sourceforge.net> 2.9.11-1fb
- 2.9.11-20051101

* Sun Jul 24 2005 Christian Tosta <tosta.users.sourceforge.net> 2.9.10-1fb
- 2.9.10 build for FC4

* Tue Jun 28 2005 Andreas Thienemann <andreas@bawue.net> 2.9.9d-0.lvn.1
- Repackaged for rpm.livna.org
- Added daemonize patch, cleaned up init file
- Added %pre and %post scriptlets

* Tue Jun 28 2005 Andreas Thienemann <andreas@bawue.net> 2.9.9d-1
- Initial package


executei:

Código:

rpmbuild -ba --target=i686 smodem.spec


gerou os seguintes rpms:

Código:

slmodem-2.9.11-2fb.src.rpm
slmodem-2.9.11-2fb.i686.rpm
kmod-slmodem-smp-2.9.11-2fb.2.6.16_1.2111_FC5.i686.rpm


preciso alterar o spec pra gerar os arquivos:

Código:

/dev/slamr0
/dev/slamr1
/dev/slamr2
/dev/slamr3
/dev/slusb0
/dev/slusb1
/dev/slusb2
/dev/slusb3


e adicionar o seguinte arquivo em /etc/modprobe.d/

slmodem
Código:

alias char-major-212 slamr
alias char-major-213 slusb


que gerei manualmente...

o problema é o seguinte...

qdo executo:

Código:

[root@weise misc]# /sbin/modprobe slamr
FATAL: Error inserting slamr (/lib/modules/2.6.16-1.2111_FC5smp/misc/slamr.ko): Invalid argument

[root@weise misc]# /sbin/modprobe slusb
FATAL: Error inserting slusb (/lib/modules/2.6.16-1.2111_FC5smp/misc/slusb.ko): Invalid argument


você sabe como posso resolver isso???

abraço,

Weise
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Hector
Membro Ouro
Membro Ouro


Registrado em: Feb 03, 2005
Mensagens: 910

MensagemEnviada: Seg Mai 22, 2006 10:44 am    Assunto: Responder com Citação

Manda os rpm para mim que testo no meu smartlink usb. Não sei se precisava do pathc alsa. O erro que está dando é o mesmo quando se tenta instalar com o arquivo fonte. Tenta usar esta solução do Carlos Morimoto: su -
# mknod -m 600 /dev/slamr0 c 212 0 ; mknod -m 600 /dev/slamr1 c 212 1 ; mknod -m 600 /dev/slamr2 c 212 2 ; mknod -m 600/dev/slamr3 c 212 3
# slmodemd --country=BRAZIL /dev/slamr0 &
# slmodemd --country=BRAZIL /dev/slusb &

O que acho que está acontecendo é que o kernel não sabe como criar o device. Bom trabalho o seu Wise.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
Hector
Membro Ouro
Membro Ouro


Registrado em: Feb 03, 2005
Mensagens: 910

MensagemEnviada: Seg Mai 22, 2006 10:55 am    Assunto: Texto na integra referencia: guiadoharware Responder com Citação

"A versão atual do driver da Smartlink (slmodem) trabalha de uma forma um pouco diferente das antigas. É importante entender como o driver funciona, já que é muito comum aparecerem problemas diversos ao tentar conectar.

Ao instalar, além dos módulos do Kernel, copiados para a pasta "/lib/modules/2.x.x/extra", é instalado um aplicativo de gerenciamento, o "/usr/sbin/slmodemd", que cria uma pasta de logs, a "/var/lib/slmodem".

Estes são os passos para ativar o driver manualmente caso necessário:

a) Criar os dispositivos:

# mknod -m 600 /dev/slamr0 c 212 0 ; mknod -m 600 /dev/slamr1 c 212 1 ; mknod -m 600 /dev/slamr2 c 212 2 ; mknod -m 600/dev/slamr3 c 212 3

b) Carregar o módulo do modem:

# modprobe slamr

c) Ativar o slmodemd. Ele precisa ficar ativo, pois ao fechá-lo o modem deixa de funcionar. Por isso, o executamos incluindo o "&":

# slmodemd --country=BRAZIL /dev/slamr0 &

d) Ao abrir o slmodemd é criado o dispositivo /dev/ttySL0. Crie o link /dev/modem apontando para ele:

# ln -sf /dev/ttySL0 /dev/modem

O driver oferece suporte também a modems PC-Tel USB (raros aqui no Brasil). Caso você tenha um destes, use o módulo "slusb" no lugar do "slamr".


Em casos de problemas na hora de discar, experimente abrir o kppp como root. Isso evita muitos problemas relacionados a permissões de acesso a dispositivos e arquivos de configuração.

Caso a conexão seja efetuada normalmente, mas você não consiga navegar, verifique se o endereço do servidor DNS do provedor (ou qualquer outro DNS válido) foi adicionado corretamente ao arquivo "/etc/resolv.conf". Isto é muito comum quando o kppp é aberto com um login normal de usuário.

Caso o problema persista, pode ser que o sistema não esteja usando o modem como rota padrão (isso é comum caso você tenha também uma placa de rede). Para ajustar isso manualmente, use o comando:

# route add default ppp0

Em versões antigas, era necessário usar o comando "route del default" (que remove a rota padrão anterior) antes do "route add default ppp0" (que indica o uso do modem). Atualmente apenas o segundo comando basta.


Este procedimento básico se aplica a todas as versões do Kernel 2.6, até o 2.6.12. A partir do 2.6.13, as coisas se complicaram um pouco, pois restrições no acesso às funções internas do Kernel impostas a módulos que não são GPL fizeram com que o driver deixasse de funcionar.

O driver não compila acusando um erro no arquivo "modem.c" e, mesmo depois que o erro dentro do código é manualmente corrigido, ele continua não funcionando, exibindo um erro ao carregar o módulo:

insmod: error inserting '/lib/modules/2.6.14-kanotix-6/misc/slamr.ko':
-1 Unknown symbol in module

Este erro é conhecido e afeta todas as distribuições recentes, baseadas no Kernel 2.6.13 em diante. A Smartlink ainda não disponibilizou uma versão corrigida do driver e nem existe previsão para isto, já que a última versão do driver foi lançada em abril de 2005, quando o problema já existia.

Mesmo na lista do Kernel, a única referência sobre o problema é esta mensagem, que simplesmente recomenda o uso dos drivers open-source incluídos recentemente no Alsa (veja a seguir), sem indicar uma solução para o driver original:
http://www.kernel-traffic.org/kernel-traffic/kt20041019_278.txt

Pesquisando mais a fundo, encontrei dois patches distintos, um postado na lista do Fedora e outro no Linux-on-Laptops. Isoladamente, nenhum dos dois corrige o problema, mas combinando ambos é possível chegar a uma versão corrigida do driver, que funciona perfeitamente no Kernel 2.6.14 e, possivelmente, qualquer outra versão recente onde o driver regular apresenta o problema.

http://forums.fedoraforum.org/showthread.php?t=60278
http://linux-on-laptops.com/forum/archive/index.php/t-3.html

Aplicar os patches envolve modificar o código fonte da camada do driver que faz a junção com o Kernel, o que é trabalhoso. O primeiro patch pode ser aplicado diretamente usando o comando "patch", enquanto o outro precisa ser aplicado manualmente. Outro problema é que, para que o driver funcione, é necessário alterar a linha com a licença para "GPL".

Isso é mais problemático (do ponto de vista legal) do que pode parecer à primeira vista. Nas versões atuais do Kernel, muitas funções estão disponíveis apenas para uso de módulos marcados como GPL. A alteração da licença dentro do código do driver burla isso, fazendo com que o driver da Smartlink seja tratado como se fosse um módulo GPL pelo Kernel, embora seja um módulo proprietário.

Tecnicamente, isto é uma violação tanto da licença da Smartlink, quanto da própria licença GPL, sob a qual é distribuído o Kernel.

Embora você possa aplicar a modificação e gerar o módulo para uso pessoal, não é permitido redistribuir o módulo modificado. Você pode ver mais detalhes sobre esta parte legal aqui: http://www.ussg.iu.edu/hypermail/linux/kernel/0511.0/0285.html .

Este parece ser o principal motivo de não existir até hoje uma versão atualizada do driver. Para não violar a GPL, a Smartlink precisaria ou disponibilizar o código, transformando-o num módulo GPL, ou modificar o driver de forma que ele não utilize nenhuma das funções restritas do Kernel (o que seria trabalhoso e provavelmente demorado).

A única solução imediata é que cada um aplique as modificações e compile o módulo localmente, sem redistribuir o módulo gerado. Você pode ensinar seu amigo a compilar o driver, pode escrever um script para fazer isso automaticamente para ele, mas ele é quem deve apertar o botão. Bem, você já deve ter entendido o espírito da coisa Wink.

Voltando à parte técnica, baixe o arquivo "slmodem-2.9.10.tar.gz" aqui:
http://www.guiadohardware.net/kurumin/download/slmodem-2.9.10.tar.gz

Baixe o patch com as modificações aqui, salvando-o na mesma pasta que o driver:
http://www.guiadohardware.net/kurumin/download/slmodem-2.9.10.patch

Descompacte o arquivo do driver:

$ tar -zxvf slmodem-2.9.10.tar.gz

Aplique o patch (você deve ter o pacote "patch" instalado):

$ patch -p0 < slmodem-2.9.10.patch

Acesse agora a pasta com o driver e compile da forma usual:

$ cd slmodem-2.9.10
$ make
# make install

Isto conclui a instalação normal do driver, fica faltando apenas iniciar o slmodemd com o comando que vimos a pouco e discar usando o Kppp ou outro discador. O default dos discadores é já utilizar o "/dev/modem", por isso você só precisa se preocupar em criar a conexão com o provedor.

Caso o Kppp não exiba o modem na lista "Modems", adicione-o manualmente, clicando no "Modems > Novo...". Dê um nome qualquer e marque a opção "/dev/modem" no campo "Dispositivo de Modem".
Fim da citação
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    Comunidade Fedora Brasil - Índice do Fórum -> Fedora Linux rodando como Desktop Todos os horários são GMT - 3 Hours
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.

Powered by phpBB © 2001, 2005 phpBB Group

Forums ©
_