xref: /linux/Documentation/translations/pt_BR/admin-guide/README.rst (revision 14c897740388216acd59477a382de327d5e27ba4)
1.. SPDX-License-Identifier: GPL-2.0
2
3.. _pt_BR_readme:
4
5Versão 6.x do kernel Linux <http://kernel.org/>
6===============================================
7
8Estas são as notas de lançamento da versão 6 do Linux. Leia-as com atenção,
9pois elas dizem do que se trata tudo isso, explicam como instalar o kernel e
10o que fazer se algo der errado.
11
12O que é o Linux?
13----------------
14
15  O Linux é um clone do sistema operacional Unix, escrito do zero por Linus
16  Torvalds com a ajuda de uma equipe pouco organizada de hackers espalhados
17  pela Internet. Ele busca a conformidade com o POSIX e com a Single UNIX
18  Specification.
19
20  Possui todos os recursos que você esperaria de um Unix moderno e completo,
21  incluindo multitarefa real, memória virtual, bibliotecas compartilhadas,
22  carregamento sob demanda (demand loading), executáveis compartilhados com
23  cópia-na-escrita (copy-on-write), gerenciamento de memória adequado e rede
24  multipilha, incluindo IPv4 e IPv6.
25
26  É distribuído sob a GNU General Public License v2 --- veja o arquivo
27  COPYING que o acompanha para mais detalhes.
28
29Em qual hardware ele roda?
30--------------------------
31
32  Embora tenha sido originalmente desenvolvido primeiro para PCs de 32 bits
33  baseados em x86 (386 ou superior), hoje o Linux também roda (pelo menos)
34  nas arquiteturas Compaq Alpha AXP, Sun SPARC e UltraSPARC, Motorola 68000,
35  PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell, IBM S/390, MIPS, HP PA-RISC,
36  Intel IA-64, DEC VAX, AMD x86-64 Xtensa e ARC.
37
38  O Linux é facilmente portável para a maioria das arquiteturas de propósito
39  geral de 32 ou 64 bits, desde que possuam uma unidade de gerenciamento de
40  memória paginada (PMMU) e um port do compilador C da GNU (gcc), parte da
41  GNU Compiler Collection (GCC). O Linux também já foi portado para diversas
42  arquiteturas sem PMMU, embora a funcionalidade fique, obviamente, um tanto
43  limitada.
44  O Linux também foi portado para si mesmo. Você pode agora executar o kernel
45  como uma aplicação de espaço de usuário --- isso se chama UserMode Linux
46  (UML).
47
48Documentação
49------------
50
51 - Há muita documentação disponível, tanto em formato eletrônico na Internet
52   quanto em livros, tanto específica do Linux quanto referente a questões
53   gerais do UNIX. Eu recomendaria procurar nos subdiretórios de documentação
54   de qualquer site FTP do Linux pelos livros do LDP (Linux Documentation
55   Project). Este README não pretende ser a documentação do sistema: existem
56   fontes muito melhores disponíveis.
57
58 - Existem vários arquivos README no subdiretório Documentation/: eles
59   normalmente contêm notas de instalação específicas do kernel para alguns
60   drivers, por exemplo. Por favor, leia o arquivo
61   Documentation/translations/pt_BR/process/changes.rst, pois ele contém
62   informações sobre os problemas que podem resultar da atualização do seu
63   kernel.
64
65Instalando o código-fonte do kernel
66-----------------------------------
67
68 - Se você instalar as fontes completas, coloque o tarball do kernel em um
69   diretório no qual você tenha permissões (por exemplo, o seu diretório
70   pessoal) e o descompacte::
71
72     xz -cd linux-6.x.tar.xz | tar xvf -
73
74   Substitua "X" pelo número da versão do kernel mais recente.
75
76   NÃO use a área /usr/src/linux! Essa área possui um conjunto (geralmente
77   incompleto) de cabeçalhos do kernel que são usados pelos arquivos de
78   cabeçalho da biblioteca. Eles devem corresponder à biblioteca, e não ser
79   bagunçados por qualquer que seja o kernel-do-dia.
80
81 - Você também pode atualizar entre versões 6.x aplicando patches. Os patches
82   são distribuídos no formato xz. Para instalar aplicando patches, obtenha
83   todos os arquivos de patch mais novos, entre no diretório de nível
84   superior do código-fonte do kernel (linux-6.x) e execute::
85
86     xz -cd ../patch-6.x.xz | patch -p1
87
88   Substitua "x" para todas as versões maiores que a versão "x" da sua árvore
89   de fontes atual, **em ordem**, e deve dar tudo certo. Talvez você queira
90   remover os arquivos de backup (algum-nome-de-arquivo~ ou
91   algum-nome-de-arquivo.orig) e certificar-se de que não há patches que
92   falharam (algum-nome-de-arquivo# ou algum-nome-de-arquivo.rej). Se
93   houver, ou você ou eu cometemos um erro.
94
95   Diferentemente dos patches para os kernels 6.x, os patches para os kernels
96   6.x.y (também conhecidos como kernels -stable) não são incrementais; em vez
97   disso, eles se aplicam diretamente ao kernel 6.x base. Por exemplo, se o
98   seu kernel base é o 6.0 e você quer aplicar o patch 6.0.3, você não deve
99   aplicar antes os patches 6.0.1 e 6.0.2. Da mesma forma, se você está
100   rodando a versão 6.0.2 do kernel e quer saltar para a 6.0.3, você deve
101   primeiro reverter o patch 6.0.2 (ou seja, patch -R) **antes** de aplicar o
102   patch 6.0.3. Você pode ler mais sobre isso em
103   Documentation/translations/pt_BR/process/applying-patches.rst.
104
105   Como alternativa, o script patch-kernel pode ser usado para automatizar
106   esse processo. Ele determina a versão atual do kernel e aplica quaisquer
107   patches encontrados::
108
109     linux/scripts/patch-kernel linux
110
111   O primeiro argumento no comando acima é a localização do código-fonte do
112   kernel. Os patches são aplicados a partir do diretório atual, mas um
113   diretório alternativo pode ser especificado como segundo argumento.
114
115 - Certifique-se de que não há arquivos .o e dependências obsoletos espalhados
116   por aí::
117
118     cd linux
119     make mrproper
120
121   Agora você deve ter as fontes instaladas corretamente.
122
123Requisitos de software
124----------------------
125
126   Compilar e executar os kernels 6.x exige versões atualizadas de vários
127   pacotes de software. Consulte
128   Documentation/translations/pt_BR/process/changes.rst para os números de
129   versão mínimos exigidos e como obter atualizações desses pacotes. Esteja
130   ciente de que usar versões excessivamente antigas desses pacotes pode
131   causar erros indiretos, muito difíceis de rastrear; portanto, não presuma
132   que basta atualizar os pacotes quando problemas óbvios surgirem durante a
133   compilação ou a execução.
134
135Diretório de compilação do kernel
136---------------------------------
137
138   Ao compilar o kernel, todos os arquivos de saída serão, por padrão,
139   armazenados junto com o código-fonte do kernel.
140   Usar a opção ``make O=output/dir`` permite especificar um local alternativo
141   para os arquivos de saída (incluindo o .config).
142   Exemplo::
143
144     código-fonte do kernel:    /usr/src/linux-6.x
145     diretório de compilação:   /home/nome/build/kernel
146
147   Para configurar e compilar o kernel, use::
148
149     cd /usr/src/linux-6.x
150     make O=/home/nome/build/kernel menuconfig
151     make O=/home/nome/build/kernel
152     sudo make O=/home/nome/build/kernel modules_install install
153
154   Observe: se a opção ``O=output/dir`` for usada, ela deve ser usada em todas
155   as invocações do make.
156
157Configurando o kernel
158---------------------
159
160   Não pule esta etapa, mesmo que você esteja atualizando apenas uma versão
161   menor. Novas opções de configuração são adicionadas a cada lançamento, e
162   problemas estranhos aparecerão se os arquivos de configuração não estiverem
163   preparados como esperado. Se você quiser levar a sua configuração existente
164   para uma nova versão com o mínimo de trabalho, use ``make oldconfig``, que
165   perguntará apenas as respostas para as novas questões.
166
167 - Comandos alternativos de configuração são::
168
169     "make config"      Interface em texto puro.
170
171     "make menuconfig"  Menus coloridos, listas de seleção e diálogos, em
172                        modo texto.
173
174     "make nconfig"     Menus coloridos aprimorados, em modo texto.
175
176     "make xconfig"     Ferramenta de configuração baseada em Qt.
177
178     "make gconfig"     Ferramenta de configuração baseada em GTK.
179
180     "make oldconfig"   Assume o padrão para todas as questões com base no
181                        conteúdo do seu arquivo ./.config existente e
182                        pergunta sobre os novos símbolos de configuração.
183
184     "make olddefconfig"
185                        Como o anterior, mas define os novos símbolos com
186                        seus valores padrão, sem perguntar.
187
188     "make defconfig"   Cria um arquivo ./.config usando os valores padrão
189                        dos símbolos, vindos de
190                        arch/$ARCH/configs/defconfig ou de
191                        arch/$ARCH/configs/${PLATFORM}_defconfig,
192                        dependendo da arquitetura.
193
194     "make ${PLATFORM}_defconfig"
195                        Cria um arquivo ./.config usando os valores padrão
196                        dos símbolos vindos de
197                        arch/$ARCH/configs/${PLATFORM}_defconfig.
198                        Use "make help" para obter uma lista de todas as
199                        plataformas disponíveis para a sua arquitetura.
200
201     "make allyesconfig"
202                        Cria um arquivo ./.config definindo os valores dos
203                        símbolos como 'y' sempre que possível.
204
205     "make allmodconfig"
206                        Cria um arquivo ./.config definindo os valores dos
207                        símbolos como 'm' sempre que possível.
208
209     "make allnoconfig" Cria um arquivo ./.config definindo os valores dos
210                        símbolos como 'n' sempre que possível.
211
212     "make randconfig"  Cria um arquivo ./.config definindo os valores dos
213                        símbolos aleatoriamente.
214
215     "make localmodconfig" Cria uma configuração baseada na configuração
216                           atual e nos módulos carregados (lsmod). Desativa
217                           qualquer opção de módulo que não seja necessária
218                           para os módulos carregados.
219
220                           Para criar um localmodconfig para outra máquina,
221                           armazene o lsmod daquela máquina em um arquivo e
222                           o passe como parâmetro LSMOD.
223
224                           Além disso, você pode preservar módulos em certas
225                           pastas ou arquivos kconfig especificando seus
226                           caminhos no parâmetro LMC_KEEP.
227
228                   alvo$ lsmod > /tmp/mylsmod
229                   alvo$ scp /tmp/mylsmod host:/tmp
230
231                   host$ make LSMOD=/tmp/mylsmod \
232                           LMC_KEEP="drivers/usb:drivers/gpu:fs" \
233                           localmodconfig
234
235                           O acima também funciona em compilação cruzada.
236
237     "make localyesconfig" Semelhante ao localmodconfig, exceto que converte
238                           todas as opções de módulo em opções embutidas
239                           (=y). Você também pode preservar módulos com o
240                           LMC_KEEP.
241
242     "make kvm_guest.config"   Habilita opções adicionais para suporte a
243                               kernel convidado do kvm.
244
245     "make xen.config"   Habilita opções adicionais para suporte a kernel
246                         convidado dom0 do xen.
247
248     "make tinyconfig"  Configura o menor kernel possível.
249
250   Você pode encontrar mais informações sobre o uso das ferramentas de
251   configuração do kernel Linux em Documentation/kbuild/kconfig.rst.
252
253 - NOTAS sobre o ``make config``:
254
255    - Ter drivers desnecessários deixará o kernel maior e, em algumas
256      circunstâncias, pode levar a problemas: sondar uma placa controladora
257      inexistente pode confundir as suas outras controladoras.
258
259    - Um kernel com emulação matemática compilada ainda usará o
260      coprocessador, se houver um presente: a emulação matemática
261      simplesmente nunca será usada nesse caso. O kernel ficará um pouco
262      maior, mas funcionará em máquinas diferentes, independentemente de
263      terem ou não um coprocessador matemático.
264
265    - Os detalhes de configuração de "kernel hacking" normalmente resultam em
266      um kernel maior ou mais lento (ou ambos), e podem até tornar o kernel
267      menos estável, ao configurar algumas rotinas para tentar ativamente
268      quebrar código ruim e encontrar problemas no kernel (kmalloc()).
269      Portanto, você provavelmente deve responder 'n' às questões sobre
270      recursos de "development", "experimental" ou "debugging".
271
272Compilando o kernel
273-------------------
274
275 - Certifique-se de ter pelo menos o gcc 8.1 disponível.
276   Para mais informações, consulte
277   Documentation/translations/pt_BR/process/changes.rst.
278
279 - Execute um ``make`` para criar uma imagem compactada do kernel. Também é
280   possível executar ``make install`` se você tiver o lilo instalado ou se a
281   sua distribuição possuir um script de instalação reconhecido pelo
282   instalador do kernel. A maioria das distribuições populares terá um script
283   de instalação reconhecido. Talvez você queira verificar antes a
284   configuração da sua distribuição.
285
286   Para fazer a instalação de fato, você precisa ser root, mas nada da
287   compilação normal deve exigir isso. Não tome o nome de root em vão.
288
289 - Se você configurou qualquer parte do kernel como ``modules``, também terá
290   que executar ``make modules_install``.
291
292 - Saída detalhada (verbose) da compilação do kernel:
293
294   Normalmente, o sistema de compilação do kernel roda em um modo bastante
295   silencioso (mas não totalmente). No entanto, às vezes você ou outros
296   desenvolvedores do kernel precisam ver os comandos de compilação, de
297   ligação (link) ou outros exatamente como são executados. Para isso, use o
298   modo de compilação "verbose". Isso é feito passando ``V=1`` ao comando
299   ``make``, por exemplo::
300
301     make V=1 all
302
303   Para que o sistema de compilação também informe o motivo da recompilação
304   de cada alvo, use ``V=2``. O padrão é ``V=0``.
305
306 - Mantenha um kernel de backup à mão, caso algo dê errado. Isso é
307   especialmente verdadeiro para as versões de desenvolvimento, já que cada
308   novo lançamento contém código novo que não foi depurado. Certifique-se de
309   manter também um backup dos módulos correspondentes àquele kernel. Se
310   você estiver instalando um novo kernel com o mesmo número de versão do seu
311   kernel em funcionamento, faça um backup do seu diretório de módulos antes
312   de executar um ``make modules_install``.
313
314   Como alternativa, antes de compilar, use a opção de configuração do kernel
315   "LOCALVERSION" para acrescentar um sufixo único à versão normal do kernel.
316   A LOCALVERSION pode ser definida no menu "General Setup".
317
318 - Para inicializar o seu novo kernel, você precisará copiar a imagem do
319   kernel (por exemplo, .../linux/arch/x86/boot/bzImage após a compilação)
320   para o local onde o seu kernel inicializável habitual se encontra.
321
322 - Inicializar um kernel diretamente de um dispositivo de armazenamento, sem
323   a ajuda de um gerenciador de inicialização como o LILO ou o GRUB, não é
324   mais suportado na BIOS (sistemas não EFI). Em sistemas UEFI/EFI, no
325   entanto, você pode usar o EFISTUB, que permite à placa-mãe inicializar
326   diretamente no kernel. Em estações de trabalho e desktops modernos,
327   geralmente recomenda-se usar um gerenciador de inicialização, pois podem
328   surgir dificuldades com múltiplos kernels e com o secure boot.
329   Para mais detalhes sobre o EFISTUB, veja
330   "Documentation/admin-guide/efi-stub.rst".
331
332 - É importante observar que, desde 2016, o LILO (LInux LOader) não está mais
333   em desenvolvimento ativo, embora, por ter sido extremamente popular,
334   apareça com frequência na documentação. Alternativas populares incluem
335   GRUB2, rEFInd, Syslinux, systemd-boot ou EFISTUB. Por diversas razões, não
336   é recomendável usar software que não esteja mais em desenvolvimento ativo.
337
338 - É provável que a sua distribuição inclua um script de instalação e que
339   executar ``make install`` seja tudo o que é necessário. Caso não seja
340   assim, você terá que identificar o seu gerenciador de inicialização e
341   consultar a documentação dele, ou configurar a sua EFI.
342
343Instruções legadas do LILO
344--------------------------
345
346
347 - Se você usa o LILO, as imagens do kernel são especificadas no arquivo
348   /etc/lilo.conf. O arquivo de imagem do kernel geralmente é /vmlinuz,
349   /boot/vmlinuz, /bzImage ou /boot/bzImage. Para usar o novo kernel, salve
350   uma cópia da imagem antiga e copie a nova imagem por cima da antiga.
351   Então, você DEVE EXECUTAR O LILO NOVAMENTE para atualizar o mapa de
352   carregamento! Se não fizer isso, não conseguirá inicializar a nova imagem
353   do kernel.
354
355 - Reinstalar o LILO geralmente é uma questão de executar /sbin/lilo. Talvez
356   você queira editar o /etc/lilo.conf para especificar uma entrada para a
357   sua imagem antiga do kernel (digamos, /vmlinux.old), caso a nova não
358   funcione. Veja a documentação do LILO para mais informações.
359
360 - Após reinstalar o LILO, deve estar tudo pronto. Desligue o sistema,
361   reinicie e aproveite!
362
363 - Se algum dia você precisar alterar o dispositivo raiz padrão, o modo de
364   vídeo, etc. na imagem do kernel, use as opções de inicialização do seu
365   gerenciador de inicialização onde for apropriado. Não é necessário
366   recompilar o kernel para alterar esses parâmetros.
367
368 - Reinicie com o novo kernel e aproveite.
369
370
371Se algo der errado
372------------------
373
374Se você tiver problemas que pareçam ser causados por bugs do kernel, por
375favor, siga as instruções em
376'Documentation/admin-guide/reporting-issues.rst'.
377
378Dicas sobre como entender os relatórios de bugs do kernel estão em
379'Documentation/admin-guide/bug-hunting.rst'. Mais sobre depuração do kernel
380com o gdb está em
381'Documentation/process/debugging/gdb-kernel-debugging.rst' e
382'Documentation/process/debugging/kgdb.rst'.
383