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.