Slackware 10.2 com dois kernels na mesma instalação

Descreve-se como configurar o sistema de forma a poder escolher um entre dois e possivelmente mais kernels automaticamente durante o boot. Cada um tendo suas especificidades definidas nos scripts de inicialização rc.S e rc.M. Não são descritos os passos de configuração, compilação e instalação dos kernels. Presume-se que isso já tenha sido feito pelo usuário.

[ Hits: 17.355 ]

Por: Elias Zoby em 05/12/2007 | Blog: http://concordancia.webs.com


Resultados e discussão



A cada boot é determinada automaticamente a versão do kernel e carregados os respectivos rc.modules, rc.local, sistema de hotpluging, som e software de modem.

Ambas as versões permitem acesso discado à internet, sendo mais veloz o download no 2.4.31.

Os dispositivos USB são montados e desmontados automaticamente no kernel 2.6.22.7 com Udev, e semi-automaticamente no 2.4.31 com Hotplug. Neste é preciso abrir o konqueror e clicar no ícone respectivo em Storage Media, ou digitar linha de comando.

O pendrive USB 2 é lido pelo controlador EHCI (480 Mbit/s) no kernel 2.6 e pelo UHCI (12 Mbit/s) no kernel 2.4. Isso só tem importância quando da transferência de grandes volumes de dados.

Como desativei o rc.hotplug para o kernel 2.6, o KinfoCenter nada informa sobre USB Devices. Essa pequena perda é plenamente compensada pelas vantagens do sistema Udev na velocidade de boot, montagem e desmontagem de dispositivos USB após sua inserção.

Instalei o ALSA para kernel 2.6, portanto estou sem som para 2.4.

O tempo que leva do ENTER no GRUB ao KDE disponível ao usuário é de 41 s para o 2.4.31 e 37 s para o 2.6.22.7, igual ao que levava antes da automação do processo. Cerca de metade desse tempo é para carregamento do KDE, em modo texto ou ambientes mais leves será mais rápido. Entretanto o tempo de boot é influenciado por outros fatores de soft e hardware.

Sugestões para simplificação dos scripts e melhorias são bem vindas, assim como resolução do sistema de som, dicas para fazer a mesma coisa no Slack 12, e regras para Udev.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Aos scripts!
   3. Resultados e discussão
   4. Apêndice
Outros artigos deste autor

Por que e como referenciar artigos nos sites de informática

Caracteres especiais no teclado Linux: como adaptar às necessidades do escritor

Autofs-4.1.4 para Slackware 12: Compilação, instalação, configuração

Softmodem em Linux com dois kernels

Softmodem compatível com Smart Link em kernel Linux 2.6.24 ou superior

Leitura recomendada

Novidades do Kernel 2.6.35

Placas NVIDIA com kernel 2.6.8

Mascarando conexões PPTP de clientes

Conheçam a linguagem D (saiu do forno)!

Guerra Infinita, uma análise da Ciência da Computação

  
Comentários
[1] Comentário enviado por massinha em 08/12/2007 - 23:53h

belo artigo,
porem , nao seria simples, apenas compilar o novo kernel e adicionar os arquivos corretos no lilo ou grub ( vmlinux kernel.image ..... ) ?
[]s

[2] Comentário enviado por zoby em 09/12/2007 - 23:46h

massinha

Compilar e adicionar as entradas dos kernéis ao boot loader são os primeiros e mais simples passos. Depois é que vem o assunto de que trata o artigo, basicamente resolver as 3 incompatibilidades citadas na introdução.
*********************
Apêndice 3 - Hotplug

Talvez seja possível colocar comandos "/sbin/mount" e "/sbin/umount" diretamente nos arquivos já existentes do Hotplug, mas não sei fazer. Então criei duas regras no /etc/hotplug/usb.usermap (pode ser criado se não existir) e dois scripts - /etc/hotplug/usb/mp3 e /etc/hotplug/usb/pen - para os mesmos dispositivos citados no Apêndice 2. Dei permissão de execução aos scripts mp3 e pen.

Necessário saber quais os IDs. É só plugar todos os dispositivos usb e verificar a saída de lsusb.
root@darkstar:/# lsusb
Bus 002 Device 002: ID 10d6:1100 Actions Semiconductor Co., Ltd
Bus 001 Device 003: ID 0951:1603 Kingston Technology

Conteúdo do MEU usb.usermap:
***********************
# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
# Primeiro campo é o script ou módulo. Segundo campo match_flags: 0x0003 = dispositivos que preencham ambos os ids. Terceiro e quarto campos referem-se aos ids, precedidos de 0x.
mp3 0x0003 0x10d6 0x1100 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
pen 0x0003 0x0951 0x1603 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
**************************
Não pode haver quebra de linha no lugar errado, na dúvida copie o padrão do usb.distmap. São 4 linhas, começando por #, #, mp3, pen. As linhas comentadas servem apenas de ilustração.

Criados os diretórios /mnt/sda e /mnt/usb. No /etc/fstab acrescentei três linhas:
/dev/sda /mnt/sda auto noauto,users,rw 0 0
/dev/sda1 /mnt/usb auto noauto,users,rw 0 0
/dev/sdb1 /mnt/usb auto noauto,users,rw 0 0

Conteúdo de MEU mp3:
**********************
#!/bin/sh
umount /mnt/sda; sleep 1
mount /mnt/sda
***********************

Conteúdo de pen:
***********************
#!/bin/sh
umount /mnt/usb; sleep 1
mount /mnt/usb
***********************

Certifique-se de que rc.hotplug (chmod +x /etc/rc.d/rc.hotplug) tem permissão de execução, se não colocou o comando em rc.M, e reinicie o sistema.

Antes de desplugar os dispositivos, é bom desmontá-los, principalmente se acabou de gravar dados neles.

Quem não quisesse alterar o fstab, acho que poderia somente acrescentar os dispositivos (mount /dev/sda /mnt/sda) antes dos pontos de montagem. Embora, no meu caso, teria de resolver a questão do pendrive que ora é reconhecido como sda1, ora como sdb1.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts