Construindo o Kernel

0

Quando eu construo / compilo um Kernel, eu faço de / home / username / build. Após a conclusão, há obviamente um diretório do Kernel no diretório / home / username / build. Este diretório é enorme! Minha pergunta, é seguro remover esse diretório após inicializar com sucesso o Kernel compilado? Existem partes ou todo o diretório que eu devo mover para minha partição? Eu nunca compilei / construí um Kernel usando a conta de usuário root, ou da partição /. Se eu deveria estar construindo como o usuário root, então onde na partição / eu deveria fazer a minha construção?

Desculpe, sei que é mais do que uma pergunta ...

    
por jedi 15.02.2016 / 02:30

1 resposta

1

O local tradicional para construir kernels é /usr/src/linux-{version} , com um symlink de lá para /usr/src/linux para o benefício do código-fonte que procura pelos arquivos de cabeçalho do kernel do Linux. Outros locais (como o seu diretório pessoal) devem funcionar, no entanto. Eu não verifiquei recentemente se há algum novo local que se tornou o padrão desde que eu aprendi muitas luas atrás.

Sim, os arquivos do kernel e os kernels compilados consomem muito espaço. A menos que você esteja trabalhando em uma mídia com muito espaço restrito (como um tablet ou netbook com um minúsculo "disco" do MMC), recomendo que você mantenha o kernel compilado por perto - pelo menos por um tempo. Eu sempre acho que um kernel compilado localmente pode parecer funcionar bem, mas então eu me deparo com um problema - um driver ausente ou uma necessidade de ajustar uma opção de tempo de compilação que eu ignorei. Nesses casos, geralmente é muito mais rápido e fácil ajustar uma configuração e recompilar (o que pode envolver apenas compilar um ou dois arquivos em vez do kernel inteiro, dependendo do que precisa ser ajustado) do que começar do zero.

Uma alternativa intermediária para excluir toda a árvore de diretórios é fazer um make clean no diretório do kernel. Isso deve remover todos os arquivos de objeto ( *.o ) enquanto preserva o código-fonte e sua configuração de kernel exclusiva. Você ainda vai acabar usando espaço em disco, mas não tanto quanto o kernel compilado consome.

Quanto à conta usada, eu uso minha conta de usuário normal para compilar o kernel; mas é necessário ser root (ou usar sudo ) para copiar o arquivo do kernel para /boot , para copiar os módulos para /lib/modules (via make modules_install ) e para criar um disco RAM inicial (via comandos que variam de uma distribuição para outra). Existem várias maneiras alternativas de compilar e instalar um kernel, algumas das quais têm outras necessidades. Além disso, para gravar em /usr/src , você deve ser root na maioria das distribuições. Se você compilar como um usuário normal, isso exigirá o ajuste de permissões, seja em /usr/src como um todo ou na árvore de kernel do Linux após você extraí-lo como root . (Ou eu suponho que você poderia extraí-lo em outro lugar como um usuário normal e, em seguida, movê-lo para /usr/src as root .) Qualquer abordagem tem implicações de segurança, especialmente em um sistema multiusuário.

    
por 15.02.2016 / 03:11