Como construir um disco de driver para uma instalação do anaconda (CentOS 6)

5

Eu preciso fazer um disco de driver para anaconda. Esse disco deve conter um módulo atualizado para a placa de rede de um laptop recente e o objetivo é obter uma instalação de rede do CentOS 6.2 funcionando. Eu estou usando o cobbler, então mesmo o próprio arquivo de kickstart está na rede. Eu não me importo se a instalação não é completamente autônoma e eu não me importo de colocar um pendrive com a imagem de disco do driver durante a instalação e selecionar manualmente o item correto, mas eu quero manter todo o resto na rede (kernel imagem, initrd, arquivo kickstart, repositórios RPM).

Já tenho o driver atualizado criado e até tenho um RPM "kmod" construído com a ajuda de / usr / lib / rpm / redhat / kmodtool. Infelizmente, não encontrei absolutamente nenhuma documentação sobre como é um disco de driver.

link é o único link que eu encontrei e descreve a luta de alguém que fez a mesma coisa que eu fiz - baixei discos de drivers e tentei explorá-los. Infelizmente o formato no CentOS 6 parece ter mudado e o melhor que eu pude fazer é fazer com que o anaconda me diga que: "O disco do driver é inválido para esta versão do CentOS." O próprio log diz "não é possível encontrar / tmp / drivers / rpms / x86_64 / repodata" e até agora eu não vi um disco de driver com "repodata" nele.

Atualmente mergulhando no código-fonte do anaconda mas espero que alguém possa me apontar na direção certa.

    
por chutz 29.03.2012 / 16:43

2 respostas

7

Eu posso ter encontrado minha resposta em a fonte anaconda depois de tudo.

Para gerar um disco de driver compatível com o CentOS 6, você pode criar uma imagem do squashfs (outros sistemas de arquivos também podem funcionar, mas o squashfs é de longe o mais fácil de criar) com o seguinte layout:

  • rhdd3 - um arquivo com um simples comentário de uma linha para descrever o disco
  • .rundepmod - a presença deste arquivo diz ao instalador que ele deve executar depmod para pegar os módulos
  • rpms/x86_64 - um repositório yum opcional contendo os RPMs do kmod
  • lib/modules/2.6.32-220.el6.x86_64/... - os módulos atuais do kernel estão aqui; se o disco do driver contiver um driver atualizado de um driver upstream, a estrutura do diretório aqui deve corresponder ao local do módulo do kernel upstream. A versão do kernel deve, naturalmente, coincidir com a versão do instalador.

E como uma imagem vale mais que mil palavras, aqui está o disco de driver de amostra que usamos para dar o kickstart em laptops recentes que precisam de um driver atl1c.ko atualizado:

$ unsquashfs -ls driver-disk.dd 
Parallel unsquashfs: Using 2 processors
8 inodes (26 blocks) to write

squashfs-root
squashfs-root/.rundepmod
squashfs-root/lib
squashfs-root/lib/modules
squashfs-root/lib/modules/2.6.32-220.el6.x86_64
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net/atl1c
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/kernel/drivers/net/atl1c/atl1c.ko
squashfs-root/lib/modules/2.6.32-220.el6.x86_64/updates
squashfs-root/rhdd3
squashfs-root/rpms
squashfs-root/rpms/x86_64
squashfs-root/rpms/x86_64/kmod-compat-wireless-3.3_2_n-2.el6.x86_64.rpm
squashfs-root/rpms/x86_64/repodata
squashfs-root/rpms/x86_64/repodata/filelists.xml.gz
squashfs-root/rpms/x86_64/repodata/other.xml.gz
squashfs-root/rpms/x86_64/repodata/primary.xml.gz
squashfs-root/rpms/x86_64/repodata/repomd.xml
    
por 09.05.2012 / 11:56
0

Eu encontrei isso ao procurar por instruções sobre como criar um disco de driver para o Centos 7.4. No meu caso, eu precisava de um driver RAID para instalação em um HP Microserver, onde os únicos discos internos são parte do RAID.

Comecei com um disco de driver de dispositivo antigo (na verdade, uma chave USB), que tinha as seguintes pastas (entre alguns outros arquivos):

/rpms/x86_64/
/rpms/x86_64/repodata/

O seguinte processo pareceu funcionar para mim:

  1. Remova o conteúdo da pasta /rpms/x86_64/ na chave USB
  2. Faça o download do driver correto / mais recente como um arquivo RPM
  3. Mova este RPM para uma pasta sozinha
  4. Verifique se o pacote createrepo está instalado
  5. Execute o seguinte comando, onde sua_pasta é onde o RPM é encontrado:

    createrepo your_folder/

  6. Verifique se isso criou uma pasta repodata em sua_pasta

  7. Copie o conteúdo de sua_pasta para /rpms/x86_64 na chave USB

Embora isso não aborde diretamente o OP, pode ser útil para alguém que encontrou esta página ao tentar descobrir como criar um disco de driver de dispositivo para instalações do CentOS.

    
por 24.04.2018 / 17:13