E.5 Adicionando ou atualizando drivers LAN

Ao desenvolverem e lançarem novos adaptadores de LAN, os fabricantes de placas LAN geralmente também lançam drivers novos ou atualizados. Algumas vezes, a nova placa LAN funciona corretamente com um driver anterior e, outras vezes, o driver anterior não reconhece a nova placa LAN e não carrega. Ocasionalmente, o driver antigo é carregado, mas a placa LAN apresenta sérios problemas de desempenho. Para obter o desempenho total de uma nova placa LAN, você deve usar o novo driver.

As seções a seguir explicam como obter ou compilar drivers:

Se precisar carregar seus drivers com parâmetros específicos, consulte a Section E.5.3, Carregando drivers com parâmetros.

E.5.1 Obtendo drivers

Os novos drivers LAN devem ser obtidos com o fabricante. A maioria dos fabricantes dessas placas tem drivers disponíveis para download gratuito de seu site na Web. Alguns drivers estão disponíveis em www.scyld.com/network, e o código-fonte do driver Broadcom BCM5700 pode ser transferido por download de http://www.broadcom.com/drivers/downloaddrivers.php.

Se um fabricante tiver um driver binário compilado especificamente para a versão de kernel usada pelo ZENworks, você poderá obtê-lo e usar um dos métodos de atualização para adicionar o driver. O ZENworks 7 baseia-se no SLES 9 SP2, versão de kernel 2.6.5-7.191. Se o driver não corresponder a essa versão específica, você deverá obter o código-fonte e compilá-lo para essa versão. Para obter mais informações, consulte a Section E.5.2, Criando drivers.

E.5.2 Criando drivers

Praticamente todos os drivers Linux são distribuídos no formato de código-fonte e devem ser compilados antes de serem usados. Siga as instruções do fabricante incluídas no novo driver para criar o módulo do driver. Vários drivers podem ser criados para serem incorporados ao próprio kernel; entretanto, é recomendável que os drivers LAN sejam criados como módulos de kernel externos.

Ao criar seus drivers LAN, verifique se sua máquina de criação usa o mesmo kernel do ambiente de criação de imagens. Se você tiver um driver LAN que não carregue em seu ambiente de criação de imagens, isso geralmente indicará uma incompatibilidade entre seu ambiente de criação e o ambiente de criação de imagens.

Para localizar a versão atual do kernel de seu ambiente Linux, use o seguinte comando:

uname -r

Entretanto, talvez seja necessário modificar os resultados do comando uname para obter as versões de kernel correspondentes. Para obter mais informações, consulte a Section E.6, Usando uname.

Para criar drivers:

Obtendo a árvore de códigos-fonte do Linux

Para compilar um módulo, você precisa da árvore de códigos-fonte do Linux contendo a configuração correspondente ao kernel do ZENworks. Para obter o código-fonte necessário, consulte o TID 10091818 no Novell Support Knowledgebase.

Para usar a árvore de códigos-fonte do Linux:

  1. Descompacte o arquivo e instale a árvore de códigos-fonte no diretório /usr/src.

    Por exemplo, o arquivo tar cria estes diretórios:

    /usr/src/linux-2.6.5-7.191
    /usr/src/linux-2.6.5-7.191-obj
    
  2. Obtenha o arquivo de configuração apropriado de uma destas localizações:

  3. Copie esse arquivo de configuração para o diretório criado na Step 1.

    Por exemplo, /usr/src/linux-2.6.5-7.191.

  4. Para criar um vínculo para a árvore de códigos-fonte:

    1. Para alternar para o diretório /usr/src, digite:

      cd /usr/src
      
    2. Se houver uma conexão virtual Linux no diretório, apague-a.

    3. Crie a conexão virtual Linux, por exemplo:

      ln -s linux-2.6.5-7.191 linux
      

Agora a árvore de códigos-fonte do kernel do Linux e a conexão virtual estão prontas para a compilação do módulo. Continue em Compilando o módulo.

Compilando o módulo

Para compilar manualmente o módulo:

  1. Instale o código-fonte.

    Siga as instruções do fabricante para instalar o código-fonte.

    Normalmente, o código-fonte do módulo está localizado em um diretório de /usr/src. Os arquivos de código-fonte do módulo geralmente são fornecidos no formato de um arquivo tar compactado com gzip (.tar.gz ou .tgz). O arquivo também pode ser um tipo compactado com bzip (.bz2).

  2. Para compilar o código-fonte:

    1. Alterne os diretórios para o código-fonte.

    2. Se tiver modificado uname para mudar para a versão do kernel apropriada, emita um comando make.

  3. Quando seu módulo estiver compilado para o ZENworks, instale o arquivo de módulo .ko gerado (verifique se selecionou o nome correto do módulo, e não um arquivo de trabalho .ko) usando o método de atualização de driver ou inserindo-o no sistema de arquivos initrd.

E.5.3 Carregando drivers com parâmetros

Se quiser carregar determinado módulo durante o tempo de processamento do linuxrc e se o linuxrc não reconhecer que ele precisa ser carregado ou se você quiser especificar os parâmetros de carregamento, poderá digitar uma linha no arquivo linuxrc.config ou /info. Em seguida, esse arquivo precisará ser atualizado no sistema de arquivos initrd.

Talvez seja necessário carregar um módulo de driver LAN com parâmetros específicos. Para fazer isso, use uma linha como esta:

insmod="moduleName parm=xxx"

Esse tipo de linha é mais usado para carregar um driver LAN com parâmetros específicos, como full duplex ou com uma velocidade específica.