mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-29 16:18:09 -04:00
Pull documentation updates from Jonathan Corbet:
"Things have calmed down a bit on the docs front, with no earthshaking
changes this time around:
- Ongoing work on the Japanese and Portuguese translations
- Better integration of the MAINTAINERS file into the rendered
documents, including a search interface
- A seemingly infinite supply of fixes for typos, minor grammatical
issues, and related problems that LLMs find with abandon"
* tag 'docs-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux: (93 commits)
docs: pt_BR: Translate 3.Early-stage.rst into Portuguese
docs: pt_BR: update "Purpose of Defconfigs" section in maintainer-soc.rst
Documentation: bug-hunting.rst: fix grammar
docs/ja_JP: translate submitting-patches.rst (interleaved-replies)
docs: Fix minor grammatical error
docs/{it_it,sp_SP,zh_CN,zh_TW}: update references to removed CONFIG_DEBUG_SLAB
Documentation: process: fix brackets
Documentation: arch: fix brackets
docs/dyndbg: explain flags parse 1st
docs/dyndbg: update examples \012 to \n
docs: kernel-parameters: Fix stale sticore file paths
docs: real-time: Fix duplicated sched(7) text
docs: kgdb: Fix stale source file paths
docs: sonypi: Fix stale header file path
docs: kernel-parameters: Remove sa1100ir IrDA parameter
iommu: Documentation: rearrange, update kernel-parameters
docs: md: fix grammar in speed_limit description
docs: changes.rst: restore pahole 1.26 minimum (regressed by sort)
Documentation: Fix syntax of kmalloc_objs example in coding style doc
docs: pt_BR: update maintainer-handbooks
...
577 lines
17 KiB
ReStructuredText
577 lines
17 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
|
|
|
Requisitos mínimos para compilar o Kernel
|
|
++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
Introdução
|
|
===========
|
|
|
|
Este documento foi projetado para fornecer uma lista das versões mínimas
|
|
de software necessárias para executar a versão atual do kernel.
|
|
|
|
Este documento é originalmente baseado no meu arquivo 'Changes' para os kernels
|
|
2.0.x e portanto, deve créditos às mesmas pessoas que aquele arquivo (Jared
|
|
Mauch, Axel Boldt, Alessandro Sigala e inúmeros outros usuários em toda a rede).
|
|
|
|
Requisitos Mínimos Atuais
|
|
****************************
|
|
|
|
Atualize para pelo menos estas revisões de software antes de pensar que
|
|
encontrou um bug! Se não tiver certeza de qual versão está executando atualmente
|
|
, o comando sugerido deve lhe informar. Para uma lista dos programas em seu
|
|
sistema, incluindo as versões, execute ./scripts/ver_linux.
|
|
|
|
Novamente, tenha em mente que esta lista pressupõe que você já possui um kernel
|
|
Linux em execução funcional. Além disso, nem todas as ferramentas são
|
|
necessárias em todos os sistemas; obviamente, se você não possui nenhum hardware
|
|
PC Card por exemplo, provavelmente não precisará se preocupar com o pcmciautils.
|
|
|
|
====================== =============== ========================================
|
|
Programa Versão mínima Comando para verificar a versão
|
|
====================== =============== ========================================
|
|
GNU C 8.1 gcc --version
|
|
Clang/LLVM (optional) 17.0.1 clang --version
|
|
Rust (optional) 1.85.0 rustc --version
|
|
bindgen (optional) 0.71.1 bindgen --version
|
|
GNU make 4.0 make --version
|
|
bash 4.2 bash --version
|
|
binutils 2.30 ld -v
|
|
flex 2.5.35 flex --version
|
|
gdb 7.2 gdb --version
|
|
bison 2.0 bison --version
|
|
pahole 1.22 pahole --version
|
|
util-linux 2.10o mount --version
|
|
kmod 13 kmod -V
|
|
e2fsprogs 1.41.4 e2fsck -V
|
|
jfsutils 1.1.3 fsck.jfs -V
|
|
xfsprogs 2.6.0 xfs_db -V
|
|
squashfs-tools 4.0 mksquashfs -version
|
|
btrfs-progs 0.18 btrfs --version
|
|
pcmciautils 004 pccardctl -V
|
|
quota-tools 3.09 quota -V
|
|
PPP 2.4.0 pppd --version
|
|
nfs-utils 1.0.5 showmount --version
|
|
procps 3.2.0 ps --version
|
|
udev 081 udevadm --version
|
|
grub 0.93 grub --version || grub-install --version
|
|
mcelog 0.6 mcelog --version
|
|
iptables 1.4.2 iptables -V
|
|
openssl & libcrypto 1.0.0 openssl version
|
|
bc 1.06.95 bc --version
|
|
Sphinx [#f1]_ 3.4.3 sphinx-build --version
|
|
GNU tar 1.28 tar --version
|
|
gtags (opcional) 6.6.5 gtags --version
|
|
mkimage (opcional) 2017.01 mkimage --version
|
|
Python 3.9.x python3 --version
|
|
GNU AWK (opcional) 5.1.0 gawk --version
|
|
====================== =============== ========================================
|
|
|
|
.. [#f1] O Sphinx é necessário apenas para gerar a documentação do Kernel.
|
|
|
|
Compilação do Kernel
|
|
*********************
|
|
|
|
GCC
|
|
---
|
|
|
|
Os requisitos da versão do gcc podem variar dependendo do tipo de CPU
|
|
do seu computador.
|
|
|
|
Clang/LLVM (opcional)
|
|
---------------------
|
|
|
|
A versão formal mais recente do clang e dos utilitários LLVM (de acordo com
|
|
`releases.llvm.org <https://releases.llvm.org>`_) é suportada para a compilação
|
|
de kernels. Versões anteriores não têm funcionamento garantido, e poderemos
|
|
remover do kernel soluções de contorno (workarounds) que eram utilizadas para
|
|
suportar versões mais antigas. Por favor, veja a documentação adicional em
|
|
:ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
|
|
|
|
Rust (opcional)
|
|
---------------
|
|
|
|
É necessária uma versão recente do compilador Rust.
|
|
|
|
Por favor, consulte Documentation/rust/quick-start.rst para obter instruções
|
|
sobre como atender aos requisitos de compilação do suporte a Rust. Em
|
|
particular, o alvo (target) rustavailable do Makefile é útil para verificar por
|
|
que a cadeia de ferramentas (toolchain) Rust pode não estar sendo detectada.
|
|
|
|
bindgen (opcional)
|
|
------------------
|
|
|
|
O ``bindgen`` é utilizado para gerar os vínculos (bindings) Rust para o lado C
|
|
do kernel. Ele depende da ``libclang``.
|
|
|
|
Make
|
|
----
|
|
|
|
Você precisará do GNU make 4.0 ou superior para compilar o kernel.
|
|
|
|
Bash
|
|
----
|
|
|
|
Alguns scripts bash são usados para a compilação do kernel.
|
|
É necessário o Bash 4.2 ou mais recente.
|
|
|
|
Binutils
|
|
--------
|
|
|
|
O binutils 2.30 ou mais recente é necessário para compilar o kernel.
|
|
|
|
pkg-config
|
|
----------
|
|
|
|
O sistema de compilação, a partir da versão 4.18, requer o pkg-config para
|
|
verificar as ferramentas kconfig instaladas e para determinar as configurações
|
|
de flags para uso em 'make {g,x}config'. Anteriormente, o pkg-config já era
|
|
utilizado, mas não era verificado nem documentado.
|
|
|
|
Flex
|
|
----
|
|
|
|
Desde o Linux 4.16, o sistema de compilação gera analisadores léxicos durante a
|
|
compilação. Isso requer o flex 2.5.35 ou superior.
|
|
|
|
|
|
Bison
|
|
-----
|
|
|
|
Desde o Linux 4.16, o sistema de compilação gera analisadores sintáticos durante
|
|
a compilação. Isso requer o bison 2.0 ou superior
|
|
|
|
pahole
|
|
------
|
|
|
|
Desde o Linux 5.2, se CONFIG_DEBUG_INFO_BTF estiver selecionado, o sistema de
|
|
compilação gera BTF (BPF Type Format) a partir do DWARF no vmlinux, e um pouco
|
|
depois para os módulos do kernel também. Isso requer o pahole v1.22 ou superior.
|
|
|
|
Ele pode ser encontrado nos pacotes ``dwarves`` ou ``pahole`` das
|
|
distribuições, ou em https://fedorapeople.org/~acme/dwarves/.
|
|
|
|
Perl
|
|
----
|
|
|
|
Você precisará do perl 5 e dos seguintes módulos: ``Getopt::Long``,
|
|
``Getopt::Std``, ``File::Basename`` e ``File::Find`` para compilar o kernel.
|
|
|
|
Python
|
|
------
|
|
|
|
Várias opções de configuração o exigem: ele é necessário para as configurações
|
|
padrão (defconfigs) de arm/arm64, CONFIG_LTO_CLANG, algumas configurações
|
|
opcionais de DRM, a ferramenta kernel-doc e a geração da documentação (Sphinx),
|
|
entre outros.
|
|
|
|
BC
|
|
--
|
|
|
|
Você precisará do bc para compilar kernels 3.10 ou superior.
|
|
|
|
|
|
OpenSSL
|
|
-------
|
|
|
|
A assinatura de módulos e a manipulação de certificados externos utilizam o
|
|
programa OpenSSL e a biblioteca de criptografia para realizar a criação de
|
|
chaves e a geração de assinaturas.
|
|
|
|
Você precisará do openssl para compilar kernels 3.7 e superiores se a assinatura
|
|
de módulos estiver habilitada. Você também precisará dos pacotes de
|
|
desenvolvimento do openssl para compilar kernels 4.3 e superiores.
|
|
|
|
Tar
|
|
---
|
|
|
|
O GNU tar é necessário caso você deseje habilitar o acesso aos cabeçalhos do
|
|
kernel via sysfs (CONFIG_IKHEADERS).
|
|
|
|
gtags / GNU GLOBAL (optional)
|
|
-----------------------------
|
|
|
|
A compilação do kernel requer o GNU GLOBAL versão 6.6.5 ou superior para gerar
|
|
arquivos de tags através de make gtags. Isso se deve ao uso da flag ``-C
|
|
(--directory)`` pelo ``gtags``.
|
|
|
|
mkimage
|
|
-------
|
|
|
|
Esta ferramenta é utilizada ao gerar uma Flat Image Tree (FIT), comumente usada
|
|
em plataformas ARM. A ferramenta está disponível através do pacote ``u-boot-tools``
|
|
ou pode ser compilada a partir do código-fonte do U-Boot. Veja as instruções em
|
|
https://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linux
|
|
|
|
GNU AWK
|
|
-------
|
|
|
|
O GNU AWK é necessário caso você deseje que a compilação do kernel gere dados de
|
|
intervalo de endereços para
|
|
módulos integrados (CONFIG_BUILTIN_MODULE_RANGES).
|
|
|
|
Utilitários de sistema
|
|
***********************
|
|
|
|
Mudanças de arquitetura
|
|
------------------------
|
|
|
|
O DevFS tornou-se obsoleto em favor do udev
|
|
(https://www.kernel.org/pub/linux/utils/kernel/hotplug/)
|
|
|
|
O suporte a UIDs de 32 bits já está implementado. Divirta-se!
|
|
|
|
A documentação das funções do Linux está migrando para a documentação embutida
|
|
(inline), por meio de comentários com formatação especial próximos às suas
|
|
definições no código-fonte. Esses comentários podem ser combinados com arquivos
|
|
ReST no diretório Documentation/ para criar uma documentação enriquecida, que
|
|
pode então ser convertida para arquivos PostScript, HTML, LaTeX, ePUB e PDF.
|
|
Para converter do formato ReST para o formato de sua escolha, você precisará do
|
|
Sphinx.
|
|
|
|
Util-linux
|
|
----------
|
|
|
|
Novas versões do util-linux oferecem suporte no ``fdisk`` para discos maiores,
|
|
suporte a novas opções para o mount, reconhecimento de mais tipos de partição e
|
|
outras funcionalidades interessantes. Você provavelmente vai querer atualizar.
|
|
|
|
Ksymoops
|
|
--------
|
|
|
|
Se o impensável acontecer e o seu kernel sofrer um oops, você pode precisar da
|
|
ferramenta ksymoops para decodificá-lo, mas na maioria dos casos, não será
|
|
necessário. É geralmente preferível compilar o kernel com ``CONFIG_KALLSYMS`` para
|
|
que ele produza dumps legíveis que possam ser usados no estado em que se
|
|
encontram (isso também gera uma saída melhor do que a do ksymoops).
|
|
Se por algum motivo o seu kernel não for compilado com ``CONFIG_KALLSYMS`` e você
|
|
não tiver como recompilar e reproduzir o oops com essa opção, você ainda poderá
|
|
decodificá-lo com o ksymoops.
|
|
|
|
Mkinitrd
|
|
--------
|
|
|
|
Estas mudanças no layout da árvore de arquivos ``/lib/modules`` também exigem que o
|
|
mkinitrd seja atualizado.
|
|
|
|
E2fsprogs
|
|
---------
|
|
|
|
A versão mais recente do ``e2fsprogs`` corrige diversos bugs no fsck e no debugfs.
|
|
Obviamente, é uma boa ideia atualizar.
|
|
|
|
JFSutils
|
|
--------
|
|
|
|
O pacote jfsutils contém os utilitários para o sistema de arquivos. Os seguintes
|
|
utilitários estão disponíveis:
|
|
|
|
- ``fsck.jfs`` - inicia a reprodução (replay) do log de transações, além de
|
|
verificar e reparar uma partição formatada em JFS.
|
|
|
|
- ``mkfs.jfs`` - cria uma partição formatada em JFS.
|
|
|
|
Outros utilitários de sistema de arquivos também estão disponíveis neste pacote.
|
|
|
|
Xfsprogs
|
|
--------
|
|
|
|
A versão mais recente do ``xfsprogs`` contém os utilitários ``mkfs.xfs``,
|
|
``xfs_db`` e ``xfs_repair``, entre outros, para o sistema de arquivos XFS. Ele é
|
|
independente de arquitetura e qualquer versão a partir da 2.0.0 deve funcionar
|
|
corretamente com esta versão do código do kernel XFS (recomenda-se a
|
|
versão 2.6.0 ou posterior, devido a algumas melhorias significativas).
|
|
|
|
PCMCIAutils
|
|
-----------
|
|
|
|
O PCMCIAutils substitui o pcmcia-cs. Ele configura corretamente os sockets
|
|
PCMCIA na inicialização do sistema e carrega os módulos apropriados para
|
|
dispositivos PCMCIA de 16 bits, caso o kernel esteja modularizado e o subsistema
|
|
de hotplug seja utilizado.
|
|
|
|
Quota-tools
|
|
-----------
|
|
|
|
O suporte a UIDs e GIDs de 32 bits é necessário caso você deseje utilizar o
|
|
formato de cota versão 2 mais recente. O quota-tools versão 3.07 e superiores
|
|
possuem esse suporte. Utilize a versão recomendada ou superior da tabela acima.
|
|
|
|
Intel IA32 microcode
|
|
--------------------
|
|
|
|
Um driver foi adicionado para permitir a atualização do microcódigo Intel IA32,
|
|
acessível como um dispositivo de caracteres comum (misc). Se você não estiver
|
|
usando o udev, você poderá precisar de::
|
|
|
|
mkdir /dev/cpu
|
|
mknod /dev/cpu/microcode c 10 184
|
|
chmod 0644 /dev/cpu/microcode
|
|
|
|
você poderá precisar executar os comandos
|
|
acima como root antes de poder usar isso. Você provavelmente também desejará
|
|
obter o utilitário de espaço de usuário ``microcode_ctl`` para utilizar em
|
|
conjunto com este driver.
|
|
|
|
udev
|
|
----
|
|
|
|
O udev é uma aplicação de espaço de usuário para popular o diretório /dev
|
|
dinamicamente, apenas com entradas para dispositivos de fato presentes no
|
|
sistema. O udev substitui a funcionalidade básica do devfs, permitindo ao mesmo
|
|
tempo a nomeação persistente de dispositivos.
|
|
|
|
FUSE
|
|
----
|
|
|
|
Necessita do libfuse 2.4.0 ou posterior. O mínimo absoluto é a versão 2.3.0,
|
|
mas as opções de montagem direct_io e kernel_cache não funcionarão.
|
|
|
|
Redes
|
|
******
|
|
|
|
Mudanças gerais
|
|
----------------
|
|
|
|
Caso você tenha necessidades avançadas de configuração de rede, você deve
|
|
provavelmente considerar o uso das ferramentas de rede do iproute2.
|
|
|
|
Filtro de Pacotes / NAT
|
|
------------------------
|
|
|
|
O código de filtragem de pacotes e NAT utiliza as mesmas ferramentas da série
|
|
anterior de kernels 2.4.x (iptables). Ele ainda inclui módulos de
|
|
retrocompatibilidade para o ipchains (estilo 2.2.x) e o ipfwadm (estilo 2.0.x).
|
|
|
|
PPP
|
|
---
|
|
|
|
O driver PPP foi reestruturado para suportar multilink e permitir que opere
|
|
sobre diversas camadas de mídia. Se você utiliza PPP, atualize o pppd para, no
|
|
mínimo, a versão 2.4.0.
|
|
|
|
Se você não estiver usando o udev, você deve possuir o arquivo de dispositivo
|
|
``/dev/ppp``, o qual pode ser criado por::
|
|
|
|
mknod /dev/ppp c 108 0
|
|
|
|
como root.
|
|
|
|
NFS-utils
|
|
---------
|
|
|
|
Em kernels antigos (2.4 e anteriores), o servidor NFS precisava conhecer
|
|
qualquer cliente que pretendesse acessar arquivos via NFS. Essa informação era
|
|
fornecida ao kernel pelo mountd quando o cliente montava o sistema de arquivos,
|
|
ou pelo exportfs na inicialização do sistema. O exportfs obtinha informações
|
|
sobre clientes ativos a partir de /var/lib/nfs/rmtab.
|
|
|
|
Esta abordagem é bastante frágil, pois depende da integridade do rmtab, o que
|
|
nem sempre é fácil, particularmente ao tentar implementar fail-over. Mesmo
|
|
quando o sistema está funcionando bem, o rmtab sofre com o acúmulo de muitas
|
|
entradas antigas que nunca são removidas.
|
|
|
|
Com kernels modernos, temos a opção de fazer o kernel informar ao mountd quando
|
|
recebe uma requisição de um host desconhecido, permitindo que o mountd forneça
|
|
as informações de exportação apropriadas ao kernel. Isso remove a dependência do
|
|
rmtab e significa que o kernel só precisa conhecer os clientes ativos no
|
|
momento.
|
|
|
|
Para habilitar esta nova funcionalidade, você precisa::
|
|
|
|
mount -t nfsd nfsd /proc/fs/nfsd
|
|
|
|
antes de executar o exportfs ou o mountd. Recomenda-se que todos os serviços NFS
|
|
sejam protegidos da internet em geral por um firewall, sempre que possível.
|
|
|
|
mcelog
|
|
------
|
|
|
|
Em kernels x86, o utilitário mcelog é necessário para processar e registrar
|
|
eventos de machine check quando opção CONFIG_X86_MCE está ativada. Eventos de
|
|
machine check são erros relatados pela CPU. O processamento desses eventos é
|
|
fortemente recomendado.
|
|
|
|
Documentação do Kernel
|
|
***********************
|
|
|
|
Sphinx
|
|
------
|
|
|
|
Por favor, consulte Documentation/doc-guide/sphinx.rst para detalhes sobre os
|
|
requisitos do Sphinx.
|
|
|
|
rustdoc
|
|
-------
|
|
|
|
O rustdoc é utilizado para gerar a documentação para código Rust. Por favor,
|
|
consulte Documentation/rust/general-information.rst para mais informações.
|
|
|
|
Obtendo software atualizado
|
|
============================
|
|
|
|
Compilação do kernel
|
|
**********************
|
|
|
|
gcc
|
|
---
|
|
|
|
- <ftp://ftp.gnu.org/gnu/gcc/>
|
|
|
|
Clang/LLVM
|
|
----------
|
|
|
|
- :ref:`Getting LLVM <getting_llvm>`.
|
|
|
|
Rust
|
|
----
|
|
|
|
- Documentation/rust/quick-start.rst.
|
|
|
|
bindgen
|
|
-------
|
|
|
|
- Documentation/rust/quick-start.rst.
|
|
|
|
Make
|
|
----
|
|
|
|
- <ftp://ftp.gnu.org/gnu/make/>
|
|
|
|
Bash
|
|
----
|
|
|
|
- <ftp://ftp.gnu.org/gnu/bash/>
|
|
|
|
Binutils
|
|
--------
|
|
|
|
- <https://www.kernel.org/pub/linux/devel/binutils/>
|
|
|
|
Flex
|
|
----
|
|
|
|
- <https://github.com/westes/flex/releases>
|
|
|
|
Bison
|
|
-----
|
|
|
|
- <ftp://ftp.gnu.org/gnu/bison/>
|
|
|
|
OpenSSL
|
|
-------
|
|
|
|
- <https://www.openssl.org/>
|
|
|
|
System utilities
|
|
****************
|
|
|
|
Util-linux
|
|
----------
|
|
|
|
- <https://www.kernel.org/pub/linux/utils/util-linux/>
|
|
|
|
Kmod
|
|
----
|
|
|
|
- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
|
|
- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
|
|
|
|
Ksymoops
|
|
--------
|
|
|
|
- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
|
|
|
|
Mkinitrd
|
|
--------
|
|
|
|
- <https://code.launchpad.net/initrd-tools/main>
|
|
|
|
E2fsprogs
|
|
---------
|
|
|
|
- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
|
|
- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
|
|
|
|
JFSutils
|
|
--------
|
|
|
|
- <https://jfs.sourceforge.net/>
|
|
|
|
Xfsprogs
|
|
--------
|
|
|
|
- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
|
|
- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
|
|
|
|
Pcmciautils
|
|
-----------
|
|
|
|
- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
|
|
|
|
Quota-tools
|
|
-----------
|
|
|
|
- <https://sourceforge.net/projects/linuxquota/>
|
|
|
|
|
|
Intel P6 microcode
|
|
------------------
|
|
|
|
- <https://downloadcenter.intel.com/>
|
|
|
|
udev
|
|
----
|
|
|
|
- <https://www.freedesktop.org/software/systemd/man/udev.html>
|
|
|
|
FUSE
|
|
----
|
|
|
|
- <https://github.com/libfuse/libfuse/releases>
|
|
|
|
mcelog
|
|
------
|
|
|
|
- <https://www.mcelog.org/>
|
|
|
|
Redes
|
|
******
|
|
|
|
PPP
|
|
---
|
|
|
|
- <https://download.samba.org/pub/ppp/>
|
|
- <https://git.ozlabs.org/?p=ppp.git>
|
|
- <https://github.com/paulusmack/ppp/>
|
|
|
|
NFS-utils
|
|
---------
|
|
|
|
- <https://sourceforge.net/project/showfiles.php?group_id=14>
|
|
- <https://nfs.sourceforge.net/>
|
|
|
|
Iptables
|
|
--------
|
|
|
|
- <https://netfilter.org/projects/iptables/index.html>
|
|
|
|
Ip-route2
|
|
---------
|
|
|
|
- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
|
|
|
|
OProfile
|
|
--------
|
|
|
|
- <https://oprofile.sf.net/download/>
|
|
|
|
Kernel documentation
|
|
********************
|
|
|
|
Sphinx
|
|
------
|
|
|
|
- <https://www.sphinx-doc.org/>
|