Como posso modificar o kernel quando já tenho o Ubuntu rodando na minha máquina?

3

Desculpe se esta é uma pergunta extremamente estúpida, mas eu sou novo no Linux e gostaria de tentar descobrir como modificar meu próprio sistema. Pelo pouco que sei até agora sobre o Linux, imagino que o que estou realmente procurando é o código-fonte do kernel. Eu sei que existem alguns recursos por aí que me permitiriam baixar uma cópia do kernel (como o kernel.org), mas presumivelmente isso é apenas uma cópia, e eu teria que mudar do meu kernel atual para o novo depois modificando-o para ver as mudanças que eu fiz entrarem em vigor. Existe uma maneira de evitar isso e apenas modificar o kernel que eu já tenho? E se não, como eu digo ao Ubuntu para usar o novo Kernel que eu baixei ao invés do original? E como sei se minhas alterações estragariam o sistema? Agradecemos antecipadamente por sua ajuda!

    
por BPD 11.12.2012 / 02:02

3 respostas

1

Sua pergunta pode ser dividida em duas partes, já que você pode ajustar alguns parâmetros do kernel durante o tempo de execução e também bytepatching, mas como iniciante eu não aconselharia que você tentasse usar o bytepatching.

No seu caso, para começar, sugiro strongmente que você faça modificações no código-fonte, recompile-o e instale-o e teste-o. Existem também maneiras de testar seu kernel em emuladores, por exemplo. sem a necessidade de reiniciar o seu sistema, por exemplo. O QEMU é um ...

Existem várias maneiras de fazer o desenvolvimento do kernel, aqui está uma maneira que deve ser simples se você tiver alguma expiração com o uso do Ubuntu.

Rápido e sujo (você precisa completar alguns argumentos \ caminhos):

sudo apt-get install libncurses5-dev binutils-dev linux-source 
sudo apt-get install fakeroot build-essential crash kernel-wedge kernel-package  

mkdir ~/src
cd ~/src
apt-get source linux-image-$(uname -r)
cd linux-3._LINUX_SRC_FOLDER_

Basta digitar o menu se quiser ou apenas sair e salvar.

make menuconfig

O nível de paralelismo ao compilá-lo. (número de núcleos do processador +1)

export CONCURRENCY_LEVEL=5

Escolha o sistema segmentado, pesquise-o ou deixe-o de fora. Dois exemplos

export CHOST="x86_64-pc-Linux-gnu"
export CHOST="i686-pc-linux-gnu"

Se você quiser que o compilador otimize, por exemplo.

export CFLAGS="-march=native -O2 -pipe"
export CXXFLAGS="$CFLAGS"

Faça seus ajustes, por exemplo.

vim ~/src/LINUX_SRC_FOLDER/include/linux/hid.h 
cd  ~/src/LINUX_SRC_FOLDER

Compile o kernel e faça os pacotes deb, e relate o tempo usado.

time fakeroot make-kpkg --initrd --append-to-version=-tweak-CUSTOM-NAME kernel-image kernel-headers

Instale seu kernel compilado e os cabeçalhos.

sudo dpkg -i ../linux-image-3._YOUR_DEB_FILE_
sudo dpkg -i ../linux-headers-3._YOUR_DEB_FILE_

Seu kernel deve ser instalado e mostrado no seu menu de inicialização. Reinicie.

sudo reboot

Ative o menu de inicialização do grub ou toque em shift algumas vezes durante a inicialização.

Selecione o seu kernel desejado para inicializar.

Se você usar este guia, fique à vontade para melhorá-lo.

    
por Anders F. U. Kiær 03.10.2013 / 13:45
0

Existem algumas maneiras diferentes de fazê-lo, mas é bom saber o máximo que puder sobre o seu computador (em termos de hardware). Eu usei as instruções aqui: http: //www.howtogeek.com/howto/ubuntu/how-to-customize-your-ubuntu-kernel/. Eu tive que fazer algumas coisas diferentes porque o site tinha uma versão mais antiga do kernel do que a que eu tenho.

    
por kyle_hamblett 11.12.2012 / 02:14
0

O Ubuntu Wiki tem um artigo sobre isso: Kernel / Compile

O artigo é um pouco datado, mas a diferença importante com outros métodos é que eles explicam como obter a fonte do repositório Git do kernel, o que é importante se você planeja atualizar sua árvore de trabalho para uma nova versão.

    
por Sergey 11.12.2012 / 02:25