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