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