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