xref: /linux/Documentation/translations/pt_BR/process/changes.rst (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1.. SPDX-License-Identifier: GPL-2.0
2
3
4
5Requisitos mínimos para compilar o Kernel
6++++++++++++++++++++++++++++++++++++++++++
7
8Introdução
9===========
10
11Este documento foi projetado para fornecer uma lista das versões mínimas
12de software necessárias para executar a versão atual do kernel.
13
14Este documento é originalmente baseado no meu arquivo 'Changes' para os kernels
152.0.x e portanto, deve créditos às mesmas pessoas que aquele arquivo (Jared
16Mauch, Axel Boldt, Alessandro Sigala e inúmeros outros usuários em toda a rede).
17
18Requisitos Mínimos Atuais
19****************************
20
21Atualize para pelo menos estas revisões de software antes de pensar que
22encontrou um bug! Se não tiver certeza de qual versão está executando atualmente
23, o comando sugerido deve lhe informar. Para uma lista dos programas em seu
24sistema, incluindo as versões, execute ./scripts/ver_linux.
25
26Novamente, tenha em mente que esta lista pressupõe que você já possui um kernel
27Linux em execução funcional. Além disso, nem todas as ferramentas são
28necessárias em todos os sistemas; obviamente, se você não possui nenhum hardware
29PC Card por exemplo, provavelmente não precisará se preocupar com o pcmciautils.
30
31====================== ===============  ========================================
32Programa               Versão mínima    Comando para verificar a versão
33====================== ===============  ========================================
34GNU C                  8.1              gcc --version
35Clang/LLVM (optional)  17.0.1           clang --version
36Rust (optional)        1.85.0           rustc --version
37bindgen (optional)     0.71.1           bindgen --version
38GNU make               4.0              make --version
39bash                   4.2              bash --version
40binutils               2.30             ld -v
41flex                   2.5.35           flex --version
42gdb                    7.2              gdb --version
43bison                  2.0              bison --version
44pahole                 1.22             pahole --version
45util-linux             2.10o            mount --version
46kmod                   13               kmod -V
47e2fsprogs              1.41.4           e2fsck -V
48jfsutils               1.1.3            fsck.jfs -V
49xfsprogs               2.6.0            xfs_db -V
50squashfs-tools         4.0              mksquashfs -version
51btrfs-progs            0.18             btrfs --version
52pcmciautils            004              pccardctl -V
53quota-tools            3.09             quota -V
54PPP                    2.4.0            pppd --version
55nfs-utils              1.0.5            showmount --version
56procps                 3.2.0            ps --version
57udev                   081              udevadm --version
58grub                   0.93             grub --version || grub-install --version
59mcelog                 0.6              mcelog --version
60iptables               1.4.2            iptables -V
61openssl & libcrypto    1.0.0            openssl version
62bc                     1.06.95          bc --version
63Sphinx [#f1]_          3.4.3            sphinx-build --version
64GNU tar                1.28             tar --version
65gtags (opcional)       6.6.5            gtags --version
66mkimage (opcional)     2017.01          mkimage --version
67Python                 3.9.x            python3 --version
68GNU AWK (opcional)     5.1.0            gawk --version
69====================== ===============  ========================================
70
71.. [#f1] O Sphinx é necessário apenas para gerar a documentação do Kernel.
72
73Compilação do Kernel
74*********************
75
76GCC
77---
78
79Os requisitos da versão do gcc podem variar dependendo do tipo de CPU
80do seu computador.
81
82Clang/LLVM (opcional)
83---------------------
84
85A versão formal mais recente do clang e dos utilitários LLVM (de acordo com
86`releases.llvm.org <https://releases.llvm.org>`_) é suportada para a compilação
87de kernels. Versões anteriores não têm funcionamento garantido, e poderemos
88remover do kernel soluções de contorno (workarounds) que eram utilizadas para
89suportar versões mais antigas. Por favor, veja a documentação adicional em
90:ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
91
92Rust (opcional)
93---------------
94
95É necessária uma versão recente do compilador Rust.
96
97Por favor, consulte Documentation/rust/quick-start.rst para obter instruções
98sobre como atender aos requisitos de compilação do suporte a Rust. Em
99particular, o alvo (target) rustavailable do Makefile é útil para verificar por
100que a cadeia de ferramentas (toolchain) Rust pode não estar sendo detectada.
101
102bindgen (opcional)
103------------------
104
105O ``bindgen`` é utilizado para gerar os vínculos (bindings) Rust para o lado C
106do kernel. Ele depende da ``libclang``.
107
108Make
109----
110
111Você precisará do GNU make 4.0 ou superior para compilar o kernel.
112
113Bash
114----
115
116Alguns scripts bash são usados para a compilação do kernel.
117É necessário o Bash 4.2 ou mais recente.
118
119Binutils
120--------
121
122O binutils 2.30 ou mais recente é necessário para compilar o kernel.
123
124pkg-config
125----------
126
127O sistema de compilação, a partir da versão 4.18, requer o pkg-config para
128verificar as ferramentas kconfig instaladas e para determinar as configurações
129de flags para uso em 'make {g,x}config'. Anteriormente, o pkg-config já era
130utilizado, mas não era verificado nem documentado.
131
132Flex
133----
134
135Desde o Linux 4.16, o sistema de compilação gera analisadores léxicos durante a
136compilação. Isso requer o flex 2.5.35 ou superior.
137
138
139Bison
140-----
141
142Desde o Linux 4.16, o sistema de compilação gera analisadores sintáticos durante
143a compilação. Isso requer o bison 2.0 ou superior
144
145pahole
146------
147
148Desde o Linux 5.2, se CONFIG_DEBUG_INFO_BTF estiver selecionado, o sistema de
149compilação gera BTF (BPF Type Format) a partir do DWARF no vmlinux, e um pouco
150depois para os módulos do kernel também. Isso requer o pahole v1.22 ou superior.
151
152Ele pode ser encontrado nos pacotes ``dwarves`` ou ``pahole`` das
153distribuições, ou em https://fedorapeople.org/~acme/dwarves/.
154
155Perl
156----
157
158Você precisará do perl 5 e dos seguintes módulos: ``Getopt::Long``,
159``Getopt::Std``, ``File::Basename`` e ``File::Find`` para compilar o kernel.
160
161Python
162------
163
164Várias opções de configuração o exigem: ele é necessário para as configurações
165padrão (defconfigs) de arm/arm64, CONFIG_LTO_CLANG, algumas configurações
166opcionais de DRM, a ferramenta kernel-doc e a geração da documentação (Sphinx),
167entre outros.
168
169BC
170--
171
172Você precisará do bc para compilar kernels 3.10 ou superior.
173
174
175OpenSSL
176-------
177
178A assinatura de módulos e a manipulação de certificados externos utilizam o
179programa OpenSSL e a biblioteca de criptografia para realizar a criação de
180chaves e a geração de assinaturas.
181
182Você precisará do openssl para compilar kernels 3.7 e superiores se a assinatura
183de módulos estiver habilitada. Você também precisará dos pacotes de
184desenvolvimento do openssl para compilar kernels 4.3 e superiores.
185
186Tar
187---
188
189O GNU tar é necessário caso você deseje habilitar o acesso aos cabeçalhos do
190kernel via sysfs (CONFIG_IKHEADERS).
191
192gtags / GNU GLOBAL (optional)
193-----------------------------
194
195A compilação do kernel requer o GNU GLOBAL versão 6.6.5 ou superior para gerar
196arquivos de tags através de make gtags. Isso se deve ao uso da flag ``-C
197(--directory)`` pelo ``gtags``.
198
199mkimage
200-------
201
202Esta ferramenta é utilizada ao gerar uma Flat Image Tree (FIT), comumente usada
203em plataformas ARM. A ferramenta está disponível através do pacote ``u-boot-tools``
204ou pode ser compilada a partir do código-fonte do U-Boot. Veja as instruções em
205https://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linux
206
207GNU AWK
208-------
209
210O GNU AWK é necessário caso você deseje que a compilação do kernel gere dados de
211intervalo de endereços para
212módulos integrados (CONFIG_BUILTIN_MODULE_RANGES).
213
214Utilitários de sistema
215***********************
216
217Mudanças de arquitetura
218------------------------
219
220O DevFS tornou-se obsoleto em favor do udev
221(https://www.kernel.org/pub/linux/utils/kernel/hotplug/)
222
223O suporte a UIDs de 32 bits já está implementado. Divirta-se!
224
225A documentação das funções do Linux está migrando para a documentação embutida
226(inline), por meio de comentários com formatação especial próximos às suas
227definições no código-fonte. Esses comentários podem ser combinados com arquivos
228ReST no diretório Documentation/ para criar uma documentação enriquecida, que
229pode então ser convertida para arquivos PostScript, HTML, LaTeX, ePUB e PDF.
230Para converter do formato ReST para o formato de sua escolha, você precisará do
231Sphinx.
232
233Util-linux
234----------
235
236Novas versões do util-linux oferecem suporte no ``fdisk`` para discos maiores,
237suporte a novas opções para o mount, reconhecimento de mais tipos de partição e
238outras funcionalidades interessantes. Você provavelmente vai querer atualizar.
239
240Ksymoops
241--------
242
243Se o impensável acontecer e o seu kernel sofrer um oops, você pode precisar da
244ferramenta ksymoops para decodificá-lo, mas na maioria dos casos, não será
245necessário. É geralmente preferível compilar o kernel com ``CONFIG_KALLSYMS`` para
246que ele produza dumps legíveis que possam ser usados no estado em que se
247encontram (isso também gera uma saída melhor do que a do ksymoops).
248Se por algum motivo o seu kernel não for compilado com ``CONFIG_KALLSYMS`` e você
249não tiver como recompilar e reproduzir o oops com essa opção, você ainda poderá
250decodificá-lo com o ksymoops.
251
252Mkinitrd
253--------
254
255Estas mudanças no layout da árvore de arquivos ``/lib/modules`` também exigem que o
256mkinitrd seja atualizado.
257
258E2fsprogs
259---------
260
261A versão mais recente do ``e2fsprogs`` corrige diversos bugs no fsck e no debugfs.
262Obviamente, é uma boa ideia atualizar.
263
264JFSutils
265--------
266
267O pacote jfsutils contém os utilitários para o sistema de arquivos. Os seguintes
268utilitários estão disponíveis:
269
270- ``fsck.jfs`` - inicia a reprodução (replay) do log de transações, além de
271  verificar e reparar uma partição formatada em JFS.
272
273- ``mkfs.jfs`` - cria uma partição formatada em JFS.
274
275Outros utilitários de sistema de arquivos também estão disponíveis neste pacote.
276
277Xfsprogs
278--------
279
280A versão mais recente do ``xfsprogs`` contém os utilitários ``mkfs.xfs``,
281``xfs_db`` e ``xfs_repair``, entre outros, para o sistema de arquivos XFS. Ele é
282independente de arquitetura e qualquer versão a partir da 2.0.0 deve funcionar
283corretamente com esta versão do código do kernel XFS (recomenda-se a
284versão 2.6.0 ou posterior, devido a algumas melhorias significativas).
285
286PCMCIAutils
287-----------
288
289O PCMCIAutils substitui o pcmcia-cs. Ele configura corretamente os sockets
290PCMCIA na inicialização do sistema e carrega os módulos apropriados para
291dispositivos PCMCIA de 16 bits, caso o kernel esteja modularizado e o subsistema
292de hotplug seja utilizado.
293
294Quota-tools
295-----------
296
297O suporte a UIDs e GIDs de 32 bits é necessário caso você deseje utilizar o
298formato de cota versão 2 mais recente. O quota-tools versão 3.07 e superiores
299possuem esse suporte. Utilize a versão recomendada ou superior da tabela acima.
300
301Intel IA32 microcode
302--------------------
303
304Um driver foi adicionado para permitir a atualização do microcódigo Intel IA32,
305acessível como um dispositivo de caracteres comum (misc). Se você não estiver
306usando o udev, você poderá precisar de::
307
308  mkdir /dev/cpu
309  mknod /dev/cpu/microcode c 10 184
310  chmod 0644 /dev/cpu/microcode
311
312você poderá precisar executar os comandos
313acima como root antes de poder usar isso. Você provavelmente também desejará
314obter o utilitário de espaço de usuário ``microcode_ctl`` para utilizar em
315conjunto com este driver.
316
317udev
318----
319
320O udev é uma aplicação de espaço de usuário para popular o diretório /dev
321dinamicamente, apenas com entradas para dispositivos de fato presentes no
322sistema. O udev substitui a funcionalidade básica do devfs, permitindo ao mesmo
323tempo a nomeação persistente de dispositivos.
324
325FUSE
326----
327
328Necessita do libfuse 2.4.0 ou posterior. O mínimo absoluto é a versão 2.3.0,
329mas as opções de montagem direct_io e kernel_cache não funcionarão.
330
331Redes
332******
333
334Mudanças gerais
335----------------
336
337Caso você tenha necessidades avançadas de configuração de rede, você deve
338provavelmente considerar o uso das ferramentas de rede do iproute2.
339
340Filtro de Pacotes / NAT
341------------------------
342
343O código de filtragem de pacotes e NAT utiliza as mesmas ferramentas da série
344anterior de kernels 2.4.x (iptables). Ele ainda inclui módulos de
345retrocompatibilidade para o ipchains (estilo 2.2.x) e o ipfwadm (estilo 2.0.x).
346
347PPP
348---
349
350O driver PPP foi reestruturado para suportar multilink e permitir que opere
351sobre diversas camadas de mídia. Se você utiliza PPP, atualize o pppd para, no
352mínimo, a versão 2.4.0.
353
354Se você não estiver usando o udev, você deve possuir o arquivo de dispositivo
355``/dev/ppp``, o qual pode ser criado por::
356
357  mknod /dev/ppp c 108 0
358
359como root.
360
361NFS-utils
362---------
363
364Em kernels antigos (2.4 e anteriores), o servidor NFS precisava conhecer
365qualquer cliente que pretendesse acessar arquivos via NFS. Essa informação era
366fornecida ao kernel pelo mountd quando o cliente montava o sistema de arquivos,
367ou pelo exportfs na inicialização do sistema. O exportfs obtinha informações
368sobre clientes ativos a partir de /var/lib/nfs/rmtab.
369
370Esta abordagem é bastante frágil, pois depende da integridade do rmtab, o que
371nem sempre é fácil, particularmente ao tentar implementar fail-over. Mesmo
372quando o sistema está funcionando bem, o rmtab sofre com o acúmulo de muitas
373entradas antigas que nunca são removidas.
374
375Com kernels modernos, temos a opção de fazer o kernel informar ao mountd quando
376recebe uma requisição de um host desconhecido, permitindo que o mountd forneça
377as informações de exportação apropriadas ao kernel. Isso remove a dependência do
378rmtab e significa que o kernel só precisa conhecer os clientes ativos no
379momento.
380
381Para habilitar esta nova funcionalidade, você precisa::
382
383  mount -t nfsd nfsd /proc/fs/nfsd
384
385antes de executar o exportfs ou o mountd. Recomenda-se que todos os serviços NFS
386sejam protegidos da internet em geral por um firewall, sempre que possível.
387
388mcelog
389------
390
391Em kernels x86, o utilitário mcelog é necessário para processar e registrar
392eventos de machine check quando opção CONFIG_X86_MCE está ativada. Eventos de
393machine check são erros relatados pela CPU. O processamento desses eventos é
394fortemente recomendado.
395
396Documentação do Kernel
397***********************
398
399Sphinx
400------
401
402Por favor, consulte Documentation/doc-guide/sphinx.rst para detalhes sobre os
403requisitos do Sphinx.
404
405rustdoc
406-------
407
408O rustdoc é utilizado para gerar a documentação para código Rust. Por favor,
409consulte Documentation/rust/general-information.rst para mais informações.
410
411Obtendo software atualizado
412============================
413
414Compilação do kernel
415**********************
416
417gcc
418---
419
420- <ftp://ftp.gnu.org/gnu/gcc/>
421
422Clang/LLVM
423----------
424
425- :ref:`Getting LLVM <getting_llvm>`.
426
427Rust
428----
429
430- Documentation/rust/quick-start.rst.
431
432bindgen
433-------
434
435- Documentation/rust/quick-start.rst.
436
437Make
438----
439
440- <ftp://ftp.gnu.org/gnu/make/>
441
442Bash
443----
444
445- <ftp://ftp.gnu.org/gnu/bash/>
446
447Binutils
448--------
449
450- <https://www.kernel.org/pub/linux/devel/binutils/>
451
452Flex
453----
454
455- <https://github.com/westes/flex/releases>
456
457Bison
458-----
459
460- <ftp://ftp.gnu.org/gnu/bison/>
461
462OpenSSL
463-------
464
465- <https://www.openssl.org/>
466
467System utilities
468****************
469
470Util-linux
471----------
472
473- <https://www.kernel.org/pub/linux/utils/util-linux/>
474
475Kmod
476----
477
478- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
479- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
480
481Ksymoops
482--------
483
484- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
485
486Mkinitrd
487--------
488
489- <https://code.launchpad.net/initrd-tools/main>
490
491E2fsprogs
492---------
493
494- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
495- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
496
497JFSutils
498--------
499
500- <https://jfs.sourceforge.net/>
501
502Xfsprogs
503--------
504
505- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
506- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
507
508Pcmciautils
509-----------
510
511- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
512
513Quota-tools
514-----------
515
516- <https://sourceforge.net/projects/linuxquota/>
517
518
519Intel P6 microcode
520------------------
521
522- <https://downloadcenter.intel.com/>
523
524udev
525----
526
527- <https://www.freedesktop.org/software/systemd/man/udev.html>
528
529FUSE
530----
531
532- <https://github.com/libfuse/libfuse/releases>
533
534mcelog
535------
536
537- <https://www.mcelog.org/>
538
539Redes
540******
541
542PPP
543---
544
545- <https://download.samba.org/pub/ppp/>
546- <https://git.ozlabs.org/?p=ppp.git>
547- <https://github.com/paulusmack/ppp/>
548
549NFS-utils
550---------
551
552- <https://sourceforge.net/project/showfiles.php?group_id=14>
553- <https://nfs.sourceforge.net/>
554
555Iptables
556--------
557
558- <https://netfilter.org/projects/iptables/index.html>
559
560Ip-route2
561---------
562
563- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
564
565OProfile
566--------
567
568- <https://oprofile.sf.net/download/>
569
570Kernel documentation
571********************
572
573Sphinx
574------
575
576- <https://www.sphinx-doc.org/>
577