Mostrar mensagens com a etiqueta Drivers/Módulos. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Drivers/Módulos. Mostrar todas as mensagens

terça-feira, 19 de outubro de 2010

Aplicar um patch a um módulo existente no Kernel

Solução quick and dirty. Para documentação muito mais bem explicada consultar as referências em baixo.

Supõe-se que o Kernel em questão já foi compilado e está a ser usado no momento do modprobe.

$ cd /usr/src
$ patch -p0 < amazing_solution.patch
$ cd linux-version
$ make -j 2 M=drivers/.../
$ cp /lib/modules/version/kernel/drivers/.../whatever.ko ~/Backup/
# modprobe -rv whatever
# cp drivers/.../whatever.ko /lib/modules/version/kernel/drivers/.../
# modprobe -v whatever



Referências:
LinuxQuestions.org - Rebuilding a single kernel module
pixelbeat.org - Rebuilding a single kernel module
Documentação do Kernel Linux acerca de compilação de módulos

sexta-feira, 13 de novembro de 2009

Placa de Rede USRobotics 5416

...também conhecida por USR5416.


$ lspci | grep Wireless
01:0b.0 Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface

Esta é uma placa wireless PCI (802.11b/g). Foi a primeira placa wireless que tive, pelo que já tem uns aninhos. A instalação é muito fácil e está muito bem documentada na wiki do módulo acx. Este post apenas repete os passos lá indicados e serve só como um guia rápido e sujo. Para uma primeira instalação da placa deve acompanhar-se a wiki indicada.

A instalação resume-se a:

  1. # m-a prepare; m-a a-i acx100

  2. Sacar o firmware adequado e colocá-lo em /lib/firmware/.

  3. # modprobe acx100


Adicionalmente, pode ser útil definir o nível de debug num valor igual ou inferior a 2, para evitar que o syslog fique cheio de palha inútil: echo "options acx debug=2" >> /etc/modprobe.d/local.

Notas:

  • Testado em Debian stable (lenny) a 15/Fevereiro/2010.

  • Não consegui utilizar esta placa em OpenWRT. O módulo acx não está disponível como pacote para instalação em x86, e também não vi nada de relevante no código-fonte da distribuição relativo a este módulo. Tudo indica que foi removido. Por outro lado, o módulo vlynq está disponível (qual a relação entre acx e vlynq?), mas apenas para a arquitectura ar7. Não sei como compilar este módulo para x86. O buildroot também não tem uma opção para seleccionar estes módulos e não os consegui adicionar na compilação através da inclusão do seu código-fonte na distribuição.

  • Este módulo não suporta criptografia: chaves WEP e WPA não são suportadas.

  • Para a versão do kernel em testing da Debian tem de se usar a versão do módulo que está em unstable. Este módulo pode não funcionar com kernels mais recentes.

  • Este módulo não funciona com o NetworkManager. Utilizar o ficheiro /etc/network/interfaces para configurar a placa ou um gestor de ligação de rede com o qual a driver consiga interagir.

sexta-feira, 19 de setembro de 2008

Multifunções (Fotocopiadora, Impressora, Fax e Scanner) Brother MFC-240C

Multifunções 5 estrelas: drivers para Linux pelo fabricante, actualizadas, sem complicações desnecessárias e equivalência das funções existentes em Windows, em Linux.

Impressora (PC local):
NOTA: só funciona com versões do CUPS a partir da 1.3 (disponível em Debian Lenny)
  1. # mkdir /var/spool/lpd
    # mkdir /usr/share/cups/model
    # ln -s /etc/init.d/cups /etc/init.d/lpd
    # apt-get install cups a2ps psutils

  2. # if [ $(dpkg --print-architecture) == "amd64" ] ; then apt-get install ia32-libs ; fi

  3. Fazer o download da "lpr driver" e da "cupswrapper driver" e instalar os dois pacotes (importante: a "lpr driver" tem de ser instalada primeiro):
    # dpkg -i mfc240clpr-1.0.1-1.i386.deb
    # dpkg -i mfc240ccupswrapper-1.0.1-1.i386.deb

  4. Ir a http://localhost:631 e verificar que lá se encontra a impressora, com o URI: usb://Brother/MFC-240C. Se assim não for e a impressora não funcionar, apagar a impressora e voltar a adicioná-la apenas no CUPS, seguindo os passos na página "Administration".

  5. Para partilhar a impressora com outros PCs na rede, verificar que estas entradas figuram no ficheiro /etc/samba/smb.conf:
    [global]
    printing = cups
    printcap name = cups

    [printers]
    comment = All Printers
    browseable = no
    path = /var/spool/samba
    printable = yes
    public = yes
    writable = no
    create mode = 0700

  6. Para permitir que cada utilizador que pretende imprimir possa controlar o estado da sua impressão através do endereço http://Servidor-de-impressao:631, usar:
    # diff /etc/cups/cupsd.conf.old /etc/cups/cupsd.conf
    (...)
    < Listen localhost:631
    > Listen *:631
    ---
    (...)
    <Location />
    Order allow,deny
    > Allow From @LOCAL
    </Location>
    ---
    (...)
    < <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
    < Require user @OWNER @SYSTEM
    < Order deny,allow
    < </Limit>
    ---
    > # <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
    > # Require user @OWNER @SYSTEM
    > # Order deny,allow
    > # </Limit>


Impressora (PCs remotos):

Windows:
  1. Ir a Control Panel -> Printers and Faxes e seguir os passos para instalar a impressora, tendo em conta que está na rede e não no PC local. É necessário usar o CD com as drivers ou ir buscá-las ao site da Brother.
Linux:
  1. apt-get install smbclient

  2. Seguir os mesmos passos que para a instalação local até ao passo 3.

  3. No passo 3, ir a http://localhost:631 e modificar a impressora para que o seu URI aponte para a localização correcta na rede.
    OU
    Ir a System -> Administration -> Printing e editar as propriedades da impressora.
    Se esta opção não estiver disponível no menu, instalar o pacote system-config-printer.


Scanner:

  1. Fazer o download da driver (brscan2).

  2. # apt-get install gimp xsane # para digitalização através de interface gráfico
    OU
    # apt-get install sane-utils # para digitalização apenas por linhas de comandos
    # dpkg -i brscan2-0.2.5-1.i386.deb

  3. adicionar:
    #Brother
    ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"

    ao ficheiro /etc/udev/rules.d/40-libsane.rules

  4. # addgroup <utilizador-que-irá-usar-o-scanner> scanner
    # invoke-rc.d udev restart

  5. Reiniciar o PC.


Botão do scanner (para digitalizar sem ter de se mexer no PC):

  1. Fazer o download da driver (scan-key-tool).

  2. # apt-get install sane-utils libjpeg-progs
    # dpkg -i brscan-skey-0.2.1-3.i386.deb

  3. Editar o ficheiro /usr/local/Brother/sane/script/scantofile-0.2.1-3.sh a partir da linha 20:
    mv $output_file $output_file.jpg
    output_file=$output_file.jpg
    chmod 644 $output_file
    echo "scan from $2($device) to $output_file"
    scanimage --device-name "$device" --resolution $resolution | cjpeg -q 100 > $output_file

  4. Em System -> Preferences -> Startup Applications, Adicionar o programa brscan-skey

  5. Para que as imagens digitalizadas fiquem numa directoria partilhada na rede, para não ter de se tocar no servidor ao fazer uma digitalização, adicionar estas entradas ao ficheiro /etc/samba/smb.conf:

    [Scanner]
    path = /home/<user>/brscan/
    read only = No
    guest ok = Yes

    E dar permissão para leitura (e escrita) para todos à directoria /home/<user>/brscan.
    Com este passo basta colocar o documento a digitalizar no scanner, ir para o PC de trabalho e aceder à pasta partilhada "Scanner" para ir buscar a imagem.



As funções de envio de fax através do computador não foram testadas (supostamente também deverão funcionar, uma vez que também existem drivers para isso).


Testado em:
Debian stable Etch, em 19/Setembro/2008.
Debian stable Lenny, em 17/Fevereiro/2009.
Debian stable Squeeze, em 17/Abril/2011.
Debian testing Wheezy, em 21/Outubro/2012.

Os passos aqui indicados são sempre para a distribuição testada mais recentemente.


Referências:
Brother Drivers for Linux® distributions
Brother drivers for Linux > before the installation
https://help.ubuntu.com/community/Printers/BrotherMFC-240CPrinter
http://iclbiz.com/brothermfc
http://ubuntuforums.org/showthread.php?t=590793
http://www.debian-administration.org/articles/425
http://www.linuxquestions.org/questions/linux-networking-3/samba-client-access-denied-unable-to-connect-122851/

quarta-feira, 5 de março de 2008

Impressão local com CUPS e remota com SAMBA

Impressoras: HP Deskjet 895Cxi e HP Photosmart 2760

PC local:

  1. # apt-get install cupsys hplip hpijs

  2. Usar o hp-toolbox (encontra-se no menu System -> Preferences do Gnome), ir a Device -> Setup New Device... e adicionar as duas impressoras, uma a seguir à outra.

  3. Testar as impressoras. Em princípio, tudo deverá estar a funcionar.

  4. Editar o ficheiro /etc/samba/smb.conf, para incluir as entradas:
    [global]
    printing = cups
    printcap name = cups

    [printers]
    comment = All Printers
    browseable = no
    path = /var/spool/samba
    printable = yes
    public = yes
    writable = no
    create mode = 0700

É importante que a entrada public tenha o valor yes ou, em alternativa, que exista uma entrada guest ok = yes.
Por pré-definição, em Debian não é isto que acontece. Se não se alterar este valor, não será possível imprimir através de máquinas remotas em Linux.


PCs remotos:
Windows (apenas testado em XP):

  1. Ir a Control Panel -> Printers and Faxes e adicionar uma impressora.

  2. Seguir os passos para instalar as impressoras, tendo em conta que estão na rede e não no PC local. Para o modelo Photosmart 2760 pode ser necessário usar o CD com as drivers.


Linux:

  1. # apt-get install cupsys hpijs-ppd

  2. Ir a http://localhost:631 e adicionar as impressoras, seguindo os passos

quinta-feira, 28 de fevereiro de 2008

Scanner Mustek 1200 UB Plus


  1. Ligar o scanner

  2. # apt-get install xsane
    # vim /etc/sane.d/gt68xx.conf # descomentar a linha correspondente
    # addgroup scanner <utilizador-que-ira-usar-o-scanner>
    # invoke-rc.d udev restart

  3. Fazer logout e login de novo


Poder-se-á digitalizar imagens através do XSane ou do GIMP, caso esteja instalado.

quinta-feira, 31 de janeiro de 2008

Testar um teclado

O programa xev serve para verificar a forma como o ambiente gráfico X interpreta eventos de input. Se se pretender testar a integridade de um teclado através desse programa, torna-se muito fácil através do comando
$ xev | grep keysym
que mostrará em tempo real o nome da tecla que foi pressionada.

No caso de se estar em modo texto, num terminal pode-se usar o comando
$ showkey
que não mostra os nomes das teclas, mas sempre dá para ter uma confirmação de que está a haver comunicação entre o teclado e o computador.

domingo, 30 de dezembro de 2007

Aceleração 3D com placas intel (e possivelmente outras)

Se programas com objectos 3D ou que usam funcionalidades do OpenGL não estão a funcionar correctamente e isto acontece:
$ cat /var/log/Xorg.0.log | grep EE
(EE) AIGLX error: dlopen of /usr/lib/dri/i915_dri.so failed (/usr/lib/dri/i915_dri.so: cannot open shared object file: No such file or directory)
(EE) AIGLX: reverting to software rendering


...pode significar que falta instalar isto:
# apt-get install libgl1-mesa-dri

...pelo menos funcionou aqui:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Express Chipset Family Graphics Controller (rev 04)

E a usar a driver 'intel'.

quarta-feira, 14 de novembro de 2007

Ter uma "applet" de sensores do sistema num painel do Gnome


# apt-get install sensors-applet
Adicionar o "Hardware Sensors Monitor" a um dos panels e configurá-lo.
Se não aparecer nenhum sensor,
# apt-get install lm-sensors
# sensors-detect

quarta-feira, 7 de novembro de 2007

Placa gráfica nVidia Geforce2 Go

$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 Go] (rev b2)


Infelizmente, os pacotes do Debian para esta placa gráfica não estão bons há uns tempos...
Como tal, para desenvolver aplicações em OpenGL para uma cadeira da faculdade, vi-me obrigado a instalar a driver do site da NVIDIA.

Hoje (2 de Dezembro de 2007) consegui instalar os módulos dos repositórios. Bastou-me virar os repositórios para a unstable e fazer:
# apt-get install nvidia-glx-legacy-96xx
# module-assistant prepare
# module-assistant auto-install nvidia-kernel-legacy-96xx
# apt-get install nvidia-xconfig
# nvidia-xconfig

Se este último comando der algum erro, apagar (ou mover para uma localização de backup) o ficheiro /etc/X11/xorg.conf e voltar a executar o comando.



...caso este método não funcione, pode-se sempre recorrer ao método aqui postado anteriormente:

  1. Fazer o download da driver. É a que diz "Legacy GPU version (1.0-96xx series)"

  2. Fazer logout do Gnome

  3. <Ctrl>+<Alt>+<F1>

  4. Fazer login na consola como root

  5. Fazer # init 3, só para ter a certeza

  6. # apt-get install linux-headers-2.6-686
    # export CC=gcc-4.1 #...ou o compilador usado para compilar o kernel a usar
    # cd /directoria/onde/ficou/o/download
    # sh NVIDIA-Linux-x86-96.XX.XX-pkg01.run
    # cd /etc/X11
    # nvidia-xconfig -c xorg.conf
    # /etc/init.d/gdm restart

E está feito.
Para desactivar o logotipo irritante ao início, é só editar o ficheiro /etc/X11/xorg.conf e adicionar a linha
Option "NoLogo" "true"
à secção "Device".

Finalmente, convém reiniciar o PC para ter a certeza que está tudo bem (o que deve estar, se depois do "restart" ao GDM, se viu alguma coisa).

É interessante consultar as páginas do README da nVidia relativas ao processo de instalação.

Esta solução foi testada a 7 de Novembro de 2007 com o kernel 2.6.22-2-686 dos repositórios oficiais do Debian.

sábado, 27 de outubro de 2007

Montar drives/"pens" USB em Unicode

$ gconf-editor
Ir até /system/storage/default_options/vfat/ e editar a chave mount_options para incluír o valor: utf8.
Deve ficar algo como:
[shortname=lower,uid=,utf8]

Isto também podia ser feito pelo ficheiro /etc/fstab, estendendo o âmbito desta afectação a todo o sistema e não só ao Gnome: isso significa criar uma directoria para montar as drives USB (uma para cada entrada USB), definir todas as restantes opções de montagem e ter mais trabalho do que aquele que estou disposto a ter neste momento.

sábado, 22 de setembro de 2007

...ao instalar um PC com Windows XP + Linux, NÃO ESQUECER:

1-> O Windows XP gosta de dizer que um disco de 200GB tem 130GB e de dizer que as partições de Linux não estão lá.
Solução: O Windows XP tem de ser O PRIMEIRO Sistema Operativo a ser instalado no disco.

2-> Ao criar as partições para Linux, swap, etc, NÃO ESQUECER DE REMOVER A FLAG DE BOOT da partição do Windows XP... A menos que se esteja com vontade de começar tudo de novo.

^ Não cumprir uma destas duas situações dá resultados engraçados tais como passar uma tarde e uma noite inteiras à espera de instalações que ficam danificadas poucas horas depois. :)

terça-feira, 26 de junho de 2007

Adeus, 915resolution para monitores widescreen!

...pelo menos com placas gráficas da Intel. (original aqui)

O pacote 915resolution tornou-se obsoleto com a introdução do xserver-xorg-video-intel. Para monitores widescreen (com resoluções como 1440x900, p.ex.), já se pode fazer
# apt-get remove --purge 915resolution

...mas só depois de actualizar o kernel:
# vim /etc/apt/sources.list # <- virar os repositórios para 'unstable'
# apt-get update
# apt-get upgrade
# apt-get install linux-image-2.6.21-1-686 linux-headers-2.6.21-1-686
(não esquecer que o ndiswrapper vai precisar de ser recompilado... Daí os headers)

# dpkg-reconfigure xserver-xorg
e/ou
# vim /etc/X11/xorg.conf
...e remover a linha de "Modelines" ou outras alterações feitas anteriormente para o 915resolution.

...e reverter o apt para 'testing'.

quinta-feira, 7 de junho de 2007

Configurações para o portátil Toshiba Satellite 5005-s504

Teclado:
Não esquecer: o layout do teclado é us-latin1.

Escolher "pc / qwerty / US american / Standard / With latin1" em:
dpkg-reconfigure console-data

E escolher "U.S. English Alternative international (former us_intl)" em:
Desktop -> Preferences -> Keyboard Preferences / Layouts

...e arranjar paciência para conseguir habituar ao layout.

Como referência, o teclado é um destes:

(ena, uma imagem neste blog!)

NOTA: Este teclado não tem a tecla do C de cedilha (ç / Ç) ou se tem, está bem escondida. Note-se ainda que fazer ctrl+c / ctrl+v para o estar a escrever no meio de um texto não dá jeito. Para escrever um C de cedilha, usar a combinação <RIGHT-ALT> + <,> + <c> .
Finalmente descobri também como escrever os caracteres 'a' e 'o' em sobrescrito! Primeiro, tem de se alterar o layout temporariamente, através da combinação: <LEFT-ALT>+<RIGHT-ALT>. Agora, a tecla <'> resulta num º. <SHIFT>+<'> resulta num ª. Usar de novo a combinação <LEFT-ALT>+<RIGHT-ALT> repõe o layout "normal" deste teclado. (Se é que há alguma coisa de "normal" neste teclado) :S


Mais: Funções da tecla <Fn>:
# apt-get install fnfxd
# modprobe toshiba_acpi

...e adicionar a linha:
toshiba_acpi
ao ficheiro /etc/modprobe .
^ Dá um jeitaço para diminuir a luminosidade do monitor.

Outras funções do hardware:
# apt-get install toshset toshutils
# modprobe toshiba
# modprobe toshiba_acpi

...e adicionar as linhas:
toshiba
toshiba_acpi

ao ficheiro /etc/modprobe .
Com isto, ficam disponíveis vários comandos úteis para configurar o hardware da máquina. Para ver quais, usar
# man toshset
e
# toshset

Existe também o pacote toshutils, que também pode ser instalado, mas que, apesar de depender de um ambiente gráfico e usar janelas para ser configurado, não me pareceu funcionar tão bem (a maior parte das funções não funcionaram aqui).

Mais!
# apt-get install hibernate
Até parece mentira, mas funciona mesmo! :)

Configuração da placa de rede wireless Linksys WUSB11 v2.6

Já é (de novo) possível instalar esta placa de rede através dos repositórios da Debian. A forma antiga fica abaixo, como um "plano B", no caso de este método não funcionar.

# apt-get install at76c503a-source atmel-firmware
# cd /usr/src/
# rm -r modules/at76c503a
# tar -xvzf at76c503a.tar.gz
# cd modules/at76c503a
# make
# make install
# depmod
# modprobe at76_usb
# ifup wlan0


Não esquecer a habitual configuração no ficheiro /etc/network/interfaces :
auto wlan0
iface wlan0 inet dhcp
wireless-essid ESSID
wireless-key PASSWORD


Ligar a placa de rede e estar atento ao syslog para detectar alguma mensagem estranha:
# tail -f /var/log/syslog



Plano B
Ir buscar a última versão da driver e do firmware aqui: http://at76c503a.berlios.de

Extraír:
$ tar -xvzf at76_usb-xxx.tar.gz
$ tar -xvzf at76_usb-firmware-yyy.tar.gz


Executar:
$ cd at76_usb-firmware-yyy
# mkdir /lib/firmware
# cp *.bin /lib/firmware
$ cd ..
$ cd at76_usb-xxx
$ make
# make install
# modprobe at76_usb
# ifup wlan0



Depois disto, e depois de configurar o /etc/apt/sources.list, deverá ser possível instalar a driver existente no repositórios.... Mas ainda não testei isto. Aparentemente, há algo que não deve estar bem no pacote das sources vindas do repositório oficial. Dão alguns erros na compilação.
(...)

SIM! Foi a minha primeira submissão para o submit@bugs.debian.org! :)

...e que resultou na conclusão de que...:
A versão dos módulos que estão nos repositórios não permite que estes sejam compilados num kernel de versão inferior à 2.6.20. Portanto, até que surja um kernel mais actual no ramo testing, para quem o usa, não será possível usar essa versão.


Uma vez que o kernel 2.6.21 já chegou ao Debian testing, já é possível instalar esta placa de rede a partir dos repositórios.

segunda-feira, 7 de maio de 2007

Configuração do hardware do meu computador em Linux

Como configurar o hardware do meu computador para ser reconhecido em Linux (testado em Ubuntu 6.06, kernel 2.6.15):


Placa de rede Wireless Linksys WUSB54GS (v1 e v2) - http://ubuntuforums.org/showthread.php?t=225206 :
# apt-get install cpp gcc build-essential linux-headers-$(uname -r)
# cd ndiswrapper-source-dir
# rm -fR /lib/modules/$(uname -r)/kernel/drivers/net/ndiswrapper # may not be necessary
# make uninstall
# make
# make install
# ndiswrapper -m
# cd linksys-drivers-dir
# ndiswrapper -i WUSB54GS.inf
# cp usb8023.sys /etc/ndiswrapper/wusb54gs/
# cp rndismp.sys /etc/ndiswrapper/wusb54gs/
# ndiswrapper -l
# modprobe ndiswrapper



Scanner Mustek 1200 UB Plus
# vim /etc/sane.d/gt68xx.conf # uncomment the corresponding line
Mais informações no caso de serem necessárias.


Webcam "tipo caneta" NHJ, Ltd Che-ez! Snap / iClick Tiny VGA Digital Camera - http://ubuntuforums.org/showthread.php?t=435463:
# apt-get install gcc make
$ cvs -z3 -d:pserver:anonymous@sqcam.cvs.sourceforge.net:/cvsroot/sqcam co -P sqcam26
$ cd sqcam26
$ vim Makefile # replace KERNEL_DIR := /lib/modules/`uname -r`/build
$ vim sq905.c
~~~~~
Comentar a partir da linha 1185:
//#ifdef HAS_REMAP_PAGE_RANGE
// if (remap_page_range(vma, start, page, PAGE_SIZE,
// PAGE_SHARED)) {
//#else
if (remap_pfn_range(vma, start, page >> PAGE_SHIFT, PAGE_SIZE,
PAGE_SHARED)) {
//#endif
~~~~~
$ make makegamma
$ make
# mkdir /lib/modules/`uname -r`/kernel/drivers/usb/media
# make install
# depmod -a
# modprobe sqcam

Testar a cam:
# apt-get install xawtv
$ xawtv



Impressora Lexmark 1100:
Ainda sem sucesso - problema das drivers para Linux