How-to :: Kernel mais enxuto no Gentoo


Visando perder menos tempo em compilações de kernel, resolvi compilar sempre o mais recente nos 3 sistemas que utilizo, mas utilizando a opção localmodconfig do comando make (que utilizará apenas os módulos necessários para a minha máquina), num exemplo rápido veremos como instalar e compilar o kernel 4.19.0 (acho que lançado hoje + os patches gentoo, a.k.a gentoo-sources.

Gentoo + BSPWM e o novo kernel 4.19.0

Como uso Gentoo Stable, para usar um kernel tão atual como visto na imagem acima, precisei adicionar a linha abaixo em /etc/portage/package.accept_keywords/zz-autounmask:

=sys-kernel/gentoo-sources-4.19.0 ~amd64

Feito isto, bastou o tradicional:
# emerge --sync
# emerge --ask --update --newuse --deep @world

Ou para aqueles que não o tem instalado:
# emerge --sync
# emerge -av sys-kernel/gentoo-sources

Estando instalado, proceda ao diretório /usr/src e efetue os passos abaixo:
# eselect kernel list

Tendo visto o número do kernel mais recente, selecione-o com:
# eselect kernel set nº
# eselect kernel show # para confirmar
# cd linux

Ou no modo bruto, você pode fazer assim
# cd /usr/src
# rm -rf linux
# ln -s linux-4.19.0-gentoo linux
# cd linux

Agora... para que tudo em seu PC funcione quando reiniciar no novo kernel recomendo que plugue TUDO o que for necessário (impressoras, pendrives, teste o som, etc). Certifique-se também se os seus módulos do firewall estão ativos, aqui em firewall doméstico, verifico as regras com:
# iptables -L -nv
# lsmod

Feito isto, configure o novo kernel com:
# make localmodconfig

E compile e instale com:

# make -s -j6 bzImage modules   ### ver observações abaixo
# make -s -j6 modules_install   ### idem!
# make install
# grub-mkconfig -o /boot/grub/grub.cfg

E compile e instale com:

Caso o seu processador não seja de múltiplos cores, remova a opção -jN, aqui é um six-core, logo, -j6

Remova a opção -s caso deseje ver a sopa-de-letrinhas rsrs

Em poucas imagens… quando o kernel ainda era o 4.18.15 e de extra ainda vai a recompilação dos módulos do VirtualBox ao reiniciar no novo kernel:

Este slideshow necessita de JavaScript.

Usar a opção localmodconfig já não é algo novo pra mim, lá na antiguidade kkk… fiz um artigo para o VOL nesses mesmos moldes, o que difere é a distribuição (Linux Mint Debian Edition), a versão do kernel e que lá demonstrei como empacotar o novo kernel, aos curiosos:

COMPILANDO O KERNEL 2.6.35 NO LINUX MINT DEBIAN EDITION

Além do fato de ser muito mais rápido, aqui todo o processo não leva nem 6 minutos!, você terá uma economia de espaço em disco de no mínimo uns 5GB, por exemplo um kernel compilado com um genkernel –all acupa quase 8GBs!

O que difere um modo de outro é a quantidades de módulos a serem compilados, aqui apenas 92, enquanto executando apenas um make fará com que o kernel seja compatível com toda a tralha de hardware, este make localmodconfig só será compatível com meu sistema.

gentoo ~ # ls /usr/src/linux/.tmp_versions/
8021q.mod                intel-gtt.mod              snd-hda-codec-realtek.mod
acpi_pad.mod             intel-rapl-perf.mod        snd-hda-codec.mod
agpgart.mod              intel_powerclamp.mod       snd-hda-core.mod
asus-wmi.mod             intel_rapl.mod             snd-hda-intel.mod
binfmt_misc.mod          ip_tables.mod              snd-hwdep.mod
button.mod               iptable_filter.mod         snd-pcm.mod
cfg80211.mod             ipv6.mod                   snd-timer.mod
coretemp.mod             irqbypass.mod              snd.mod
crc32-pclmul.mod         kvm-intel.mod              soundcore.mod
crc32c-intel.mod         kvm.mod                    sparse-keymap.mod
crct10dif-pclmul.mod     libphy.mod                 stp.mod
drm.mod                  llc.mod                    syscopyarea.mod
drm_kms_helper.mod       lzo.mod                    sysfillrect.mod
eeepc-wmi.mod            mei-me.mod                 sysimgblt.mod
evdev.mod                mei.mod                    thermal.mod
fan.mod                  mrp.mod                    uas.mod
fb_sys_fops.mod          nf_conntrack.mod           usb-storage.mod
fuse.mod                 nf_defrag_ipv4.mod         usbhid.mod
garp.mod                 nf_defrag_ipv6.mod         usblp.mod
ghash-clmulni-intel.mod  nfs_layout_flexfiles.mod   video.mod
hid-generic.mod          p8022.mod                  wmi-bmof.mod
hid.mod                  pcc-cpufreq.mod            wmi.mod
hwmon.mod                pcspkr.mod                 x86_pkg_temp_thermal.mod
i2c-algo-bit.mod         psnap.mod                  x_tables.mod
i2c-core.mod             r8169.mod                  xhci-hcd.mod
i2c-i801.mod             realtek.mod                xhci-pci.mod
i2c-smbus.mod            regmap-i2c.mod             xt_conntrack.mod
i915.mod                 rfkill.mod                 xt_tcpudp.mod
iTCO_vendor_support.mod  serio_raw.mod              zram.mod
iTCO_wdt.mod             snd-hda-codec-generic.mod  zsmalloc.mod
intel-cstate.mod         snd-hda-codec-hdmi.mod

t+
How-to :: Kernel mais enxuto no Gentoo

Um comentário sobre “How-to :: Kernel mais enxuto no Gentoo

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s