Diretório do artigo
- Compilação do kernel Linux e adição de etapas de chamada do sistema
- 1 Verifique a versão antiga do kernel
- 2 Código fonte
- 3 Digite as permissões de root
- 4 Descompacte o código-fonte e coloque-o em uma pasta específica
- 5 Adicionar chamada do sistema
- 6 Instale cada pacote de pré-requisito
- 7 Limpe os arquivos .config .o restantes
- 8 Configure o kernel
- 9 Compile o kernel
- 10 Módulo de compilação
- 11 Instale o kernel e os módulos
- 12 Configurar o gerenciador de inicialização grub
- 13 arquivos intermediários limpos
- 14 Reiniciar
- 15 Ver versão do kernel
- 16 Excluir o kernel antigo
- 17 Teste a chamada do sistema que você adicionou
Compilação do kernel Linux e adição de etapas de chamada do sistema
O autor está usando o ubuntu18.04 , compila e instala a versão do kernel linux-5.3.17
1 Verifique a versão antiga do kernel
Compare com a nova versão do kernel após a instalação
uname -a
2 Código fonte
https://www.kernel.org/
baixe o código fonte para qualquer pasta do ubuntu
3 Digite as permissões de root
Evitar erros causados por permissões insuficientes
su
4 Descompacte o código-fonte e coloque-o em uma pasta específica
-J Use o algoritmo xz para compactar e descompactar arquivos
-x Descompactar
-f Parâmetros necessários
-C Especifique a pasta para descompactar
tar -Jxf linux-5.3.17.tar.xz -C /usr/src/
5 Adicionar chamada do sistema
No total, 3 etapas, defina você mesmo o conteúdo adicionado
1. Atribua o número de chamada do sistema e modifique a tabela de chamadas do sistema
gedit ./arch/x86/entry/syscalls/syscall_64.tbl
2. Declarar a rotina do serviço de chamada do sistema
gedit ./include/linux/syscalls.h
3. Implemente a rotina do serviço de chamada do sistema
gedit ./kernel/sys.c
6 Instale cada pacote de pré-requisito
Ao compilar e instalar o kernel, você precisa de alguns pacotes de software, instale-os com antecedência para evitar erros posteriormente
apt install libncurses5-dev make openssl libssl-dev bison flex
7 Limpe os arquivos .config .o restantes
Limpe o arquivo .config .o que sobrou devido ao último erro de compilação; se for a primeira compilação, poderá ser ignorado (é claro, não haverá problemas ao executar o comando)
cd /usr/src/linux-5.3.17
make mrproper
8 Configure o kernel
Configure as opções do kernel, todos podem sair por padrão
make menuconfig
9 Compile o kernel
-j6 compila com 6 núcleos de CPU e redireciona os erros de saída para o arquivo error.log para facilitar a visualização.Claro
, se houver apenas dois núcleos,
é mais demorado mudar para -j2 . 2 horas. O autor i7 9a geração, compilação de 6 núcleos por 40 minutos, como referência
// make -j6 2> error.log
make -j2 2> error.log
10 Módulo de compilação
Cerca de 10 minutos
make modules
11 Instale o kernel e os módulos
Instale o módulo primeiro e depois instale o núcleo por
cerca de 10 minutos
// 安装模块
make modules_install
// 安装内核
make install
12 Configurar o gerenciador de inicialização grub
update-grub
13 arquivos intermediários limpos
Limpe os arquivos intermediários.Os arquivos ocupam muito espaço e não têm significado para experimentos subsequentes
make clean
14 Reiniciar
reboot
15 Ver versão do kernel
uname -a
16 Excluir o kernel antigo
su
// 查询并删除旧内核
dpkg --get-selections|grep linux
apt purge ....
17 Teste a chamada do sistema que você adicionou
Escreva um programa de linguagem C, solicite a rotina de serviço do sistema operacional através do número de chamada do sistema