Downgrade do kernel do fedora 20

0

Eu quero fazer o downgrade do kernel 20 (3.11) do fedora para a versão 2.6 porque eu tenho um pacote que suporta apenas esse kernel. Eu procurei em todos os lugares pelo kernel 2.6 para o fedora 20, mas sem sorte. Se eu tentar colocar o kernel 2.6 que é destinado ao fedora core 16, então o fedora simplesmente não inicializará. Alguém tem alguma sugestão?

    
por ASIS911 07.04.2014 / 15:58

1 resposta

1

O Fedora não deve (relativamente) ter problemas para inicializar com kernels mais antigos, nós fazemos isso o tempo todo para rodar o Fedora em plataformas ARM que não podem rodar compilações de kernel mainstream.

Existem dois problemas principais que devem ser resolvidos para o sistema funcionar corretamente.

O primeiro é o gerenciador de inicialização (GRUB, com toda a probabilidade). Isso é realmente uma preocupação se você não instalar um RPM oficial para o seu kernel - os RPMs oficiais irão gerar o initramfs para você e criar uma entrada de bootloader.

O segundo envolve o carregamento de firmware. A maioria das distros passou do carregamento do firmware do espaço do usuário para o carregamento do firmware no kernel em torno de 3,10 ou mais. Todas as versões atualmente suportadas do Fedora carregam o firmware dessa maneira. Então, mudar para um kernel mais antigo significa que o kernel espera que o sistema operacional carregue o firmware, e o sistema operacional espera que o kernel carregue o firmware. Precisamos reativar o carregamento de firmware no espaço do usuário em algum lugar.

Então, para começar, instale o kernel antigo da maneira que quiser. Para facilitar as coisas, instalei o kernel 2.6 mais novo que foi criado para o Fedora (o f15 foi o mais recente lançamento para suportar oficialmente o 2.6). Os pacotes ainda estão disponíveis no Koji, o sistema de compilação do Fedora [1].

Em seguida, verifiquei que a entrada do GRUB foi criada. Você deve ver a menção do kernel 2.6 em /boot/grub/grub.cfg (supondo que você não esteja em um sistema EFI).

Finalmente, precisamos resolver o problema de firmware. Eu vi duas soluções para isso: 1. Instale ou compile uma versão mais antiga do udev (agora incluída no systemd) que tenha o carregamento do firmware interno ativado. 2. Use firmware.sh como os velhos e maus dias.

O último é significativamente mais fácil neste cenário. Existem dois arquivos que precisam ser adicionados para que isso funcione: /usr/lib/udev/firmware.sh e /usr/lib/udev/rules.d/50-firmware.rules . Procure no Google para encontrar uma cópia desses arquivos [2] - Eu prefiro não ligar diretamente a qualquer um.

Quando estiverem no seu sistema, você precisará gerar novamente o initramfs para que o firmware possa ser carregado antes da raiz ser montada, se necessário. Isso é fácil no Fedora usando o dracut; executar:

dracut /boot/initramfs-2.6.43.8-2.fc15.x86_64.img 2.6.43.8-2.fc15.x86_64 --force

A primeira opção é o arquivo initramfs de destino, a segunda é a versão do kernel e --force é necessário para sobrescrever os initramfs que já fizemos (provavelmente durante a instalação do RPM).

E isso deve ser feito. Acabei de testar isso em uma VM e funcionou bem. Como nota final, esteja atento ao suporte do driver para o seu hardware. Pode não estar presente no kernel 2.6. Este foi o caso do adaptador de rede Hyper-V para minha VM. Mudar para o adaptador de rede "Legado" gerou resultados, no entanto.

[1] link

[2] link

    
por 18.01.2015 / 21:31