xref: /linux/Documentation/translations/pt_BR/process/changes.rst (revision 5181afcdf99527dd92a88f80fc4d0d8013e1b510)
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.
24
25Novamente, tenha em mente que esta lista pressupõe que você já possui um kernel
26Linux em execução funcional. Além disso, nem todas as ferramentas são
27necessárias em todos os sistemas; obviamente, se você não possui nenhum hardware
28PC Card por exemplo, provavelmente não precisará se preocupar com o pcmciautils.
29
30====================== ===============  ========================================
31        Programa        Versão mínima       Comando para verificar a versão
32====================== ===============  ========================================
33GNU C                  8.1              gcc --version
34Clang/LLVM (optional)  15.0.0           clang --version
35Rust (optional)        1.78.0           rustc --version
36bindgen (optional)     0.65.1           bindgen --version
37GNU make               4.0              make --version
38bash                   4.2              bash --version
39binutils               2.30             ld -v
40flex                   2.5.35           flex --version
41bison                  2.0              bison --version
42pahole                 1.16             pahole --version
43util-linux             2.10o            mount --version
44kmod                   13               depmod -V
45e2fsprogs              1.41.4           e2fsck -V
46jfsutils               1.1.3            fsck.jfs -V
47xfsprogs               2.6.0            xfs_db -V
48squashfs-tools         4.0              mksquashfs -version
49btrfs-progs            0.18             btrfs --version
50pcmciautils            004              pccardctl -V
51quota-tools            3.09             quota -V
52PPP                    2.4.0            pppd --version
53nfs-utils              1.0.5            showmount --version
54procps                 3.2.0            ps --version
55udev                   081              udevd --version
56grub                   0.93             grub --version || grub-install --version
57mcelog                 0.6              mcelog --version
58iptables               1.4.2            iptables -V
59openssl & libcrypto    1.0.0            openssl version
60bc                     1.06.95          bc --version
61Sphinx\ [#f1]_         3.4.3            sphinx-build --version
62GNU tar                1.28             tar --version
63gtags (opcional)       6.6.5            gtags --version
64mkimage (opcional)     2017.01          mkimage --version
65Python                 3.9.x            python3 --version
66GNU AWK (opcional)     5.1.0            gawk --version
67====================== ===============  ========================================
68
69.. [#f1] O Sphinx é necessário apenas para gerar a documentação do Kernel.
70
71Compilação do Kernel
72*********************
73
74GCC
75---
76
77Os requisitos da versão do gcc podem variar dependendo do tipo de CPU
78do seu computador.
79
80Clang/LLVM (opcional)
81---------------------
82
83A versão formal mais recente do clang e dos utilitários LLVM (de acordo com
84releases.llvm.org <https://releases.llvm.org>_) é suportada para a compilação
85de kernels. Versões anteriores não têm funcionamento garantido, e poderemos
86remover do kernel soluções de contorno (workarounds) que eram utilizadas para
87suportar versões mais antigas. Por favor, veja a documentação adicional em:
88ref:Building Linux with Clang/LLVM <kbuild_llvm>.
89
90Rust (opcional)
91---------------
92
93É necessária uma versão recente do compilador Rust.
94
95Por favor, consulte Documentation/rust/quick-start.rst para obter instruções
96sobre como atender aos requisitos de compilação do suporte a Rust. Em
97particular, o alvo (target) rustavailable do Makefile é útil para verificar por
98que a cadeia de ferramentas (toolchain) Rust pode não estar sendo detectada.
99
100bindgen (opcional)
101------------------
102
103O ``bindgen`` é utilizado para gerar os vínculos (bindings) Rust para o lado C
104do kernel. Ele depende da ``libclang``.
105
106Make
107----
108
109Você precisará do GNU make 4.0 ou superior para compilar o kernel.
110
111Bash
112----
113
114Alguns scripts bash são usados para a compilação do kernel.
115É necessário o Bash 4.2 ou mais recente.
116
117Binutils
118--------
119
120O binutils 2.30 ou mais recente é necessário para compilar o kernel.
121
122pkg-config
123----------
124
125O sistema de compilação, a partir da versão 4.18, requer o pkg-config para
126verificar as ferramentas kconfig instaladas e para determinar as configurações
127de flags para uso em make {g,x}config. Anteriormente, o pkg-config já era
128utilizado, mas não era verificado nem documentado.
129
130Flex
131----
132
133Desde o Linux 4.16, o sistema de compilação gera analisadores léxicos durante a
134compilação. Isso requer o flex 2.5.35 ou superior.
135
136
137Bison
138-----
139
140Desde o Linux 4.16, o sistema de compilação gera analisadores sintáticos durante
141a compilação. Isso requer o bison 2.0 ou superior
142
143pahole
144------
145
146Desde o Linux 5.2, se CONFIG_DEBUG_INFO_BTF estiver selecionado, o sistema de
147compilação gera BTF (BPF Type Format) a partir do DWARF no vmlinux, e um pouco
148depois para os módulos do kernel também. Isso requer o pahole v1.16 ou superior.
149
150Ele pode ser encontrado nos pacotes ``dwarves`` ou ``pahole`` das
151distribuições, ou em https://fedorapeople.org/~acme/dwarves/.
152
153Perl
154----
155
156Você precisará do perl 5 e dos seguintes módulos: Getopt::Long,
157Getopt::Std, File::Basename e File::Find para compilar o kernel.
158
159Python
160------
161
162Várias opções de configuração o exigem: ele é necessário para as configurações
163padrão (defconfigs) de arm/arm64, CONFIG_LTO_CLANG, algumas configurações
164opcionais de DRM, a ferramenta kernel-doc e a geração da documentação (Sphinx),
165entre outros.
166
167BC
168--
169
170Você precisará do bc para compilar kernels 3.10 ou superior.
171
172
173OpenSSL
174-------
175
176A assinatura de módulos e a manipulação de certificados externos utilizam o
177programa OpenSSL e a biblioteca de criptografia para realizar a criação de
178chaves e a geração de assinaturas.
179
180Você precisará do openssl para compilar kernels 3.7 e superiores se a assinatura
181de módulos estiver habilitada. Você também precisará dos pacotes de
182desenvolvimento do openssl para compilar kernels 4.3 e superiores.
183
184Tar
185---
186
187O GNU tar é necessário caso você deseje habilitar o acesso aos cabeçalhos do
188kernel via sysfs (CONFIG_IKHEADERS).
189
190gtags / GNU GLOBAL (optional)
191-----------------------------
192
193A compilação do kernel requer o GNU GLOBAL versão 6.6.5 ou superior para gerar
194arquivos de tags através de make gtags. Isso se deve ao uso da flag -C
195(--directory) pelo gtags.
196
197mkimage
198-------
199
200Esta ferramenta é utilizada ao gerar uma Flat Image Tree (FIT), comumente usada
201em plataformas ARM. A ferramenta está disponível através do pacote u-boot-tools
202ou pode ser compilada a partir do código-fonte do U-Boot. Veja as instruções em
203https://docs.u-boot.org/en/latest/build/tools.html#building-tools-for-linux
204
205GNU AWK
206-------
207
208O GNU AWK é necessário caso você deseje que a compilação do kernel gere dados de
209intervalo de endereços para
210módulos integrados (CONFIG_BUILTIN_MODULE_RANGES).
211
212Utilitários de sistema
213***********************
214
215Mudanças de arquitetura
216------------------------
217
218O DevFS tornou-se obsoleto em favor do udev
219(https://www.kernel.org/pub/linux/utils/kernel/hotplug/)
220
221O suporte a UIDs de 32 bits já está implementado. Divirta-se!
222
223A documentação das funções do Linux está migrando para a documentação embutida
224(inline), por meio de comentários com formatação especial próximos às suas
225definições no código-fonte. Esses comentários podem ser combinados com arquivos
226ReST no diretório Documentation/ para criar uma documentação enriquecida, que
227pode então ser convertida para arquivos PostScript, HTML, LaTeX, ePUB e PDF.
228Para converter do formato ReST para o formato de sua escolha,você precisará do
229Sphinx.
230
231Util-linux
232----------
233
234Novas versões do util-linux oferecem suporte no fdisk para discos maiores,
235suporte a novas opções para o mount, reconhecimento de mais tipos de partição e
236outras funcionalidades interessantes. Você provavelmente vai querer atualizar.
237
238Ksymoops
239--------
240
241Se o impensável acontecer e o seu kernel sofrer um oops, você pode precisar da
242ferramenta ksymoops para decodificá-lo, mas na maioria dos casos, não será
243necessário. É geralmente preferível compilar o kernel com CONFIG_KALLSYMS para
244que ele produza dumps legíveis que possam ser usados no estado em que se
245encontram (isso também gera uma saída melhor do que a do ksymoops).
246Se por algum motivo o seu kernel não for compilado com CONFIG_KALLSYMS e você
247não tiver como recompilar e reproduzir o oops com essa opção, você ainda poderá
248decodificá-lo com o ksymoops.
249
250Mkinitrd
251--------
252
253Estas mudanças no layout da árvore de arquivos /lib/modules também exigem que o
254mkinitrd seja atualizado.
255
256E2fsprogs
257---------
258
259A versão mais recente do e2fsprogs corrige diversos bugs no fsck e no debugfs.
260Obviamente, é uma boa ideia atualizar.
261
262JFSutils
263--------
264
265O pacote jfsutils contém os utilitários para o sistema de arquivos. Os seguintes
266utilitários estão disponíveis:
267
268- ``fsck.jfs`` - inicia a reprodução (replay) do log de transações, além de
269  verificar e reparar uma partição formatada em JFS.
270
271- ``mkfs.jfs`` - cria uma partição formatada em JFS.
272
273- Para o seu arquivo changes.rst, a tradução técnica adequada é:
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
312Se você não estiver usando o udev, você 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 fat 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