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.354 ]

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


Apêndice



Apêndice 1 - GRUB

Seções do meu menu.lst.

default 0
timeout 9
color cyan/blue white/blue
gfxmenu (hd1,5)/boot/message


title Slackware 12
root (hd1,1)
kernel /boot/vmlinuz ro quiet vga=773
savedefault
boot

title Slack 10.2 kernel 2.6.22.7
root (hd1,6)
kernel /boot/vmlinuz root=/dev/hdb7 ro vga=773
savedefault
boot

title Slack 10.2 kernel 2.4.31
root (hd1,6)
kernel /boot/other/vmlinuz root=/dev/hdb7 ro vga=normal
savedefault
boot

title Puppy 2.17
rootnoverify (hd1,0)
kernel /vmlinuz root=/dev/ram0 pmedia=idehd acpi=force
initrd /initrd.gz

title Kurumin Linux
root (hd1,5)
kernel /boot/vmlinuz-2.6.18.1-slh-up-2 ro nomce quiet
apm=power-off vga=791
initrd /boot/initrd.img-2.6.18.1-slh-up-2

Apêndice 2: Udev

Criei o arquivo /etc/udev/rules.d/010-storage.rules com o seguinte conteúdo:

# Para obter informações: $ udevinfo -a -p $(udevinfo -q path -n /dev/sda1) ou sdb1, sda etc.
# udevinfo -a -p /sys/block/sda
# Não pode misturar informações de blocos diferentes.

ACTION=="remove", KERNEL=="sda", RUN+="/sbin/umount /mnt/sda"
ACTION=="add", KERNEL=="sda", RUN+="/sbin/mount /dev/sda"

ACTION=="remove", KERNEL=="sd*", RUN+="/sbin/umount /mnt/usb"
ACTION=="add", KERNEL=="sdb?", NAME{all_partitions}="%k", RUN+="/sbin/mount /dev/sdb1"
ACTION=="add", KERNEL=="sda?", NAME{all_partitions}="%k", RUN+="/sbin/mount /mnt/usb"

É imprescindível que a extensão seja .rules e que as linhas não sejam quebradas. Cada # e cada ACTION começa uma linha. Os arquivos do udev são lidos na ordem de numeração dos nomes, as regras na ordem em que aparecem no arquivo (a posterior não sobrepuja uma anterior), e a regra de remover deve preceder a de inserção. Essas regras servem para mim, que desejava a montagem automática de um Mp3 (sempre sda) e um pendrive Kingston (sda1 ou sdb1, de acordo à porta na qual for inserido).

Referências

KOK, Daniël de. Slackware Linux Basics. 2006.
Piter Punk (pseudônimo). Inicialização do Slackware. 2004.
VOLKERDING, Patrick. Scripts e documentação do Slackware 10.2 e
http://www.slackware.com

Sobre Udev:

DRAKE, Daniel. Writing udev rules.
http://www.reactivated.net/writing_udev_rules.html

MADEIRA, Tiago. Udev e suas regras maravilhosas.
http://tiagomadeira.net/udev-e-suas-regras-maravilhosas

MORIMOTO, Carlos E. Acessando dispositivos USB e escrevendo regras.
http://www.guiadohardware.net
(Neste deve ser feita uma correção: ohci NÃO dá suporte aos controladores usados pela Via, mas sim ehci e uhci.) 2006.

Piter Punk (pseudônimo). Testing new udev packages in Slackware-current (post-17 Mar 2007).

Página anterior    

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

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

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

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

Montar MP3 e pendrives USB automaticamente com Hotplug

Softmodem em Linux com dois kernels

Leitura recomendada

Layer7 e compilação do kernel mole-mole com Conectiva 10

kernel-ck para Arch Linux

Kernel 2.6.7 compilado e configurado para nVIDIA

Instalando e configurando os módulos do kernel 2.6 no Slackware

Recompilando o Kernel no Ubuntu Linux 9.04

  
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