Identifica o módulo SCSI usado pelo instalador do anaconda do EL6?

1

Estou tentando instalar o CentOS 6 em um servidor Dell Poweredge 800 mais antigo. Ele possui um controlador Intel RAID SRCS14L, com um volume lógico RAID 5 apresentado.

Eu não tenho problemas com o anaconda do CentOS 5.x reconhecendo o dispositivo, mas o anaconda do CentOS 6 não.

Eu li em algum lugar para verificar quais módulos são carregados dentro do anaconda, e se o módulo instalado suporta o controlador RAID, você deve ser bom. No entanto, há uma grande diferença nos módulos carregados pelo anaconda para o CentOS 5.x install versus o 6 .

Eu também instalei o pacote kernel-devel para el6 , e o arquivo do driver megaraid não lista explicitamente o (s) adaptador (es) Intel RAID SRCS14L; mas alguns outros adaptadores Intel RAID da série SRC.

Como faço para identificar o driver ou módulo usado pelo anaconda CentOS 5.x para meu controlador SCSI? Como eu adiciono suporte para o Intel RAID SRCS14L no anaconda para CentOS 6 ?

Obrigado.

[atualizado]

Eu localizei a origem do módulo mas eu não entendo como simplesmente compilar um módulo do kernel que pode ser carregado no anaconda em tempo de execução. Pelo que estou lendo, não tenho certeza se essa é a maneira correta de fazer isso. Um módulo do kernel pode ser compilado e carregado no anaconda em tempo de execução? Existe outro método que estou faltando?

[atualização 2]

  • Eu utilizarei lspci -k e / ou lspci -nn enquanto estiver no console durante a instalação (anaconda) do CentOS 5 (pressionando ctrl + alt + f2) para determinar qual módulo é usado para acessar o dispositivo RAID.
  • Eu precisarei então compilar o módulo do kernel com a fonte do kernel especificada em uname -r do anaconda.
  • Vou precisar adicioná-lo a um arquivo initrd.img e usar esse arquivo ao inicializar a instalação do CentOS 6 (clicando na guia "Welcome to CentOS 6.0!")

Estou preocupado com as atualizações do kernel e com a recompilação do módulo do driver a cada atualização. Então, novamente, suponho que se eu fosse compilar o driver contra o novo kernel, esta é a única maneira.

[atualização 3]

  • O gdth driver / module source está localizado dentro dos fontes do kernel para o kernel que é usado ao carregar o CentOS a partir da mídia 6.0 (2.6.32-71.el6), mas não está localizado no initrd.img que está localizado na mídia de instalação do CentOS 6
  • A opção do kernel CONFIG_SCSI_GDTH [ consulte lkddb ] precisa ser definida para que o módulo a ser compilado ao compilar o kernel através do arquivo de configuração localizado na árvore de origem em /kernel-2.6.32-71.el6/linux-2.6.32-71.el6.i686/configs/kernel-2.6.32-i686.config ou via make menuconfig at Device Drivers> SCSI device support> SCSI low-level drivers< Intel/ICP (former GDT SCSI Disk Array) RAID Controller support .

[atualização 4]

Fui aconselhado a arquivar um RFE com o ELrepo para solicitar a gdth driver, como tem sido descontinuado no RHEL upstream .

[atualização 5]

Alguns caras da ELRepo compilaram um disco de driver para a gdth que funcionou.

    
por mbrownnyc 11.11.2011 / 22:34

3 respostas

1

How do I identify the driver or module used by CentOS 5.x's anaconda for my SCSI controller?

Você pode extrair o arquivo de imagem initrd:

# mkdir /tmp/initrd
# cp /boot/initrd-'uname -r'.img /tmp/initrd
# cd /tmp/initrd
# gzip -dc initrd-'uname -r'.img | cpio -id

e dê uma olhada no arquivo init ou na pasta lib :

# grep scsi init
echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko 

# ls -l lib/ | grep scsi
-rw------- 1 root root 294024 Nov 15 16:20 scsi_mod.ko

how to simply compile a kernel module that can be loaded into anaconda at run time.

Eu não tentei, mas sugiro que você faça os seguintes passos:

  • extrai o initrd da mídia de instalação
  • adicione os módulos
  • e empacote tudo em uma imagem
  • carrega o novo com o parâmetro initrd

Por favor, consulte os links abaixo para mais informações:

por 15.11.2011 / 11:00
1

A Dell implementou isso há muito tempo usando o DKMS . Existem duas maneiras de obter um módulo do kernel em funcionamento:

  1. Faça o download do Dell-DKMS-SRC para RedHat 6 e instale o gcc em seu servidor, inicialize duas vezes depois que um novo kernel tiver sido inicializado (a primeira inicialização criará o módulo e o colocará no initrd, a segunda inicialização ativará o novo módulo durante a inicialização)
  2. Se você não quiser o gcc no seu live-server: Crie o módulo DKMS em um servidor de compilação e transfira-o para seu servidor ( dkms ldtarball )

Atualização 2011-11-17: Já que você precisa do driver para o processo de boot durante a instalação, você deve ler este .

    
por 16.11.2011 / 21:56
0

Você pode identificar os módulos atualmente carregados executando o comando lsmod . No entanto, noto ao comparar um Centos 5 e 6, que existem diferentes módulos scsi carregados para configurações quase idênticas (pelo menos configurações de VM).

Uma ideia pode ser carregar o pacote fonte do kernel e examinar as origens do driver envolvidas.

    
por 11.11.2011 / 22:50