⬆️ Up

Exherbo - Install

https://www.exherbo.org/docs/install-guide.html

This guide uses ptr-get that's part of CRUX not exherbo. https://linuxmind.dev/2025/09/02/how-to-install-the-operating-system-exherbo-linux/

https://alexherbo2.github.io/wiki/exherbo/install-guide/

https://gist.github.com/s0dyy/905be36b2c39fb8c14906e15c05c68a3

Follow my KISS Linux Guide: https://imlauera.github.io/kisslinux/ and my archlinux install guide: https://imlauera.github.io/post/instalacion_arch_basica/.

It's better to read the whole Gentoo Handbook .



mount --mkdir /dev/sda3 /mnt/exherbo
mount -o rbind /dev /mnt/exherbo/dev/
mount -o rbind /sys /mnt/exherbo/sys/
mount -t proc none /mnt/exherbo/proc/
mount /dev/sda1 /mnt/exherbo/boot/
cp /etc/resolv.conf /mnt/exherbo/etc/resolv.conf
env -i TERM=$TERM SHELL=/bin/bash HOME=$HOME $(which chroot) /mnt/exherbo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
cave search is too slow use
ls /var/db/paludis/repositories/*/packages/sys-kernel/
cave search linux-stable 
cd /usr/src
Using the archlinux config file is a bad idea I was 10 hours compiling the kernel and I had to cancel it. Instead of doing this I ask claude ai to make me a .config file for my pc specs. LOL.

curl -O https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/raw/main/config 
cp config /usr/src/linux/.config
 
# OR

# I don't recommend this because I'll take alot of time:
# if you already have archlinux: zcat /proc/config.gz > /usr/src/linux/.config

cd linux

# keeps Arch’s choices.

# auto-answers new options with defaults.

# avoids interactive prompts


make olddefconfig
make -j$(nproc)
make modules_install
make install

cave resolve -x linux-headers

Observacion : Los linux headers NO son el kernel ni sirven para compilar el kernel completo.Linux-headers es la API del kernel. Son archivos de cabecera (.h) que describen la interfaz del kernel hacia el espacio de usuario y hacia módulos externos. Sirven para compilar modulos externos. Los headers deben coincidir con el kernel que estas usando


[I] esotericwarfare@arch ~> ls -ltr /mnt/exherbo/var/db/paludis/repositories/*/packages/sys-kernel/linux-headers/
total 112
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-5.16.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-5.15.exheres-0
-rw-r--r-- 1 root root  270 Jan  6 13:57 linux-headers-5.10.exheres-0
drwxr-xr-x 2 root root 4096 Jan  6 13:57 files
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.1.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.10.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.0.exheres-0
-rw-r--r-- 1 root root  270 Jan  6 13:57 linux-headers-5.4.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-5.19.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-5.18.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-5.17.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.16.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.15.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.14.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.13.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.12.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.11.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.6.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.5.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.4.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.3.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.2.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.18.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.17.exheres-0
-rw-r--r-- 1 root root 2193 Jan  6 13:57 linux-headers.exlib
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.9.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.8.exheres-0
-rw-r--r-- 1 root root  274 Jan  6 13:57 linux-headers-6.7.exheres-0
[I] esotericwarfare@arch ~> 

Los linux-headers deben coincidir con la version que descargas

https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel


ls -ltr /mnt/exherbo/var/db/paludis/repositories/*/packages/sys-kernel/linux-headers/

# OR
lynx kernel.org
# Latest Release - Download
tar xvf linux-*
cd linux-*
lspci -k
make defconfig
make help
make localyesconfig
make menuconfig

/ (slash)

CONFIG_PATA_ACPI

make localyesconfig

Or ask ClaudeAI to generate you a /usr/src/linux-version/.config file or a bash script based on your hardware with all the warnings that the command make localyesconfig outputs, lol.

This was the prompt that I used (in spanish):

Hola Claude AI. Estoy compilando mi propio kernel para usar Exherbo Linux sin módulos y quiero que sea lo mas minimalista posible porque quiero compilarlo en un tiempo razonable intente usar la configuracion del kernel de archlinux curl -O https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/raw/main/config y ponerla en el /usr/src/linux pero tomo demasiado tiempo 10 hora y todavia no habia terminado de compilar. ¿Que datos queres que te pase de mi computadora? Que archivos datos de procesador memoria ? que archivos para que puedas configurar el kernel o decime como configurarlo para compilar rapido. Esta es mi instalacion de archlinux estos son los paquetes que uso: acpi aichat alsa-utils base base-devel bc bridge-utils btop chawan-git dnsmasq dosfstools espeak-ng evince fastfetch festival fim firefox fish floorp-bin foot freetube-bin gimp git grim grub hugo imagemagick inetutils iptables-nft irssi jq kdenlive lib32-mesa libguestfs libreoffice-fresh libvirt linux linux-firmware man-db man-pages mpv mtools neomutt networkmanager noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra obs-studio os-prober pipewire pipewire-pulse plocate python-pip qbittorrent qemu-full qt5-wayland qt6-wayland rclone samba smtube speech-dispatcher sway telegram-desktop texlive-fontsextra texlive-fontsrecommended texlive-langspanish texlive-latex texlive-latexextra texlive-plaingeneric thunderbird tmux tor tor-browser-bin torsocks translate-shell tree unrar unzip v4l-utils vim virt-manager w3m wget wine wl-clipboard wmenu xdg-desktop-portal xdg-desktop-portal-wlr yay yay-debug yt-dlp

Al final agrego el script agrego el script que me genero ClaudeAI



make -j $(nproc)
# Si usas modulos tenes que usar initramsfs.
make modules_install 
# Copiara los archivos a /boot (tenes que tener la particion montada)
make install

lsinitrd /boot/initramfs-6.18.4.img | head -50
ls -la /etc/dracut.conf.d/
cat /etc/dracut.conf
cat /etc/dracut.conf.d/*.conf

# Este comando te deberia tirar los módulos.
lsinitrd /boot/initramfs-6.18.4.img | grep -i "ko.zst" | head -20

cat /etc/dracut.conf.d/wifi.conf
add_drivers+=" rtl8723be rtl8723-common rtlwifi rtl_pci btcoexist "

echo 'add_drivers+=" rtl8723be rtl8723-common rtlwifi rtl_pci btcoexist "' > /etc/dracut.conf.d/wifi.conf

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"


dracut --force --add-drivers "rtl8723be rtl8723-common rtlwifi rtl_pci btcoexist" /boot/initramfs-6.18.4.img 6.18.4

grep -r rtl8723 /etc/modprobe.d/
find /lib/modules/6.18.4 -name "*rtl8723*"
ls -la /lib/modules/6.18.4/kernel/drivers/net/wireless/realtek/rtlwifi/
grep -E "RTL8723|RTLWIFI" .config
ls -la /lib/firmware/rtlwifi/rtl8723befw*.bin


# Esto hace el make install:

cp arch/x86/boot/bzImage /boot/kernel

Systemd

https://www.exherbo.org/docs/systemd.html

vim /etc/paludis/options.conf

# Agrega la opcion: */* systemd

cave resolve -x sys-apps/systemd
Resolving: 1 steps, 3 metadata (3 arbor)

# Reinstall every package. cave resolve world -cx eclectic init list eclectic init set systemd echo "exherbo" | tee /etc/hostname /etc/vconsole.conf

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"


# These packages I installed on gentoo
# sys-kernel/installkernel dracut uki
# sys-apps/systemd-utils boot kernel-install
# sys-kernel/installkernel

kernel-install add 6.18.3 /boot/vmlinuz-6.18.3

# If that doesn't generate the initramfs try this command:

dracut --force --kver 6.18.4 /boot/initramfs-6.18.4.img

lspci -k | grep -A 3 -i network

dmesg | grep -i firmware

Esto ejecutalo desde tu otra distribucion de Linux y vas a tener que agregar un /etc/grub.d/40_custom probablemente porque no va a detectar bien el os-prober.

Probablemente no necesitas ejecutar grub-install en tu otra distro (si estas instalando exherbo solo si)


# efi
grub-install --target=x86_64-efi --efi-directory=/boot --removable

# legacy bios

grub-install --boot-directory=/mnt/boot /dev/sda --recheck 


vim /etc/grub.d/40_custom 

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Exherbo Linux' --class exherbo --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  57c5ee6d-dee8-43be-bfa4-d7f91eb993e7
        else
          search --no-floppy --fs-uuid --set=root 57c5ee6d-dee8-43be-bfa4-d7f91eb993e7
        fi
        linux (hd0,gpt1)/vmlinuz-6.18.4 root=UUID=57c5ee6d-dee8-43be-bfa4-d7f91eb993e7 rw
        initrd (hd0,gpt1)/initramfs-6.18.4.img
}

grub-mkconfig -o /boot/grub/grub.cfg



cat< /etc/hosts
127.0.0.1       localhost
::1 localhost
127.0.0.1       exherbo.localdomain        exherbo
EOF

Ahora para instalar linux-firmware, necesitás habilitar el repositorio ::hardware en Exherbo.


sudo cp /etc/paludis/repositories/arbor.conf /etc/paludis/repositories/hardware.conf

Add the repositories

sudo cp /etc/paludis/repositories/arbor.conf /etc/paludis/repositories/x11.conf sudo cp /etc/paludis/repositories/arbor.conf /etc/paludis/repositories/desktop.conf sudo cp /etc/paludis/repositories/arbor.conf /etc/paludis/repositories/net.conf sudo cp /etc/paludis/repositories/arbor.conf /etc/paludis/repositories/kde.conf sudo cp /etc/paludis/repositories/arbor.conf /etc/paludis/repositories/python.conf sudo cp /etc/paludis/repositories/arbor.conf /etc/paludis/repositories/media.conf sudo vim /etc/paludis/repositories/repo_name.conf format = e location = ${root}/var/db/paludis/repositories/repo_name ........ cave sync sudo cp /etc/paludis/repositories/perl.conf /etc/paludis/repositories/perl.conf sudo cp /etc/paludis/repositories/perl.conf /etc/paludis/repositories/gnome.conf sudo cp /etc/paludis/repositories/python.conf /etc/paludis/repositories/python.conf

Now open every single file


sudo vim /etc/paludis/repositories/repo_name.conf

format = e
location = ${root}/var/db/paludis/repositories/repo_name
sync = git+https://gitlab.exherbo.org/exherbo/repo_name.git

For example


format = e
location = ${root}/var/db/paludis/repositories/x11
sync = git+https://gitlab.exherbo.org/exherbo/x11.git

Do this to every file created before.

cave sync

cave resolve -x linux-firmware

# Luego de instalar el firmware deberas regenerar el initramfs.

dracut --force --kver 6.18.4 /boot/initramfs-6.18.4.img


passwd

localedef -i en_US -f ISO-8859-1 en_US
vim /etc/locale.gen # en_US.UTF-8
locale-gen
echo LANG="en_US.UTF-8" > /etc/env.d/99locale
ln -s /usr/share/zoneinfo/America/Buenos_Aires /etc/localtime
# You need to create your user now and add it to the groups.

useradd -m -G adm,disk,wheel,cdrom,audio,video,usb,users ${username}
passwd username


reboot

# For to boot into tty.
sudo systemctl set-default multi-user.target 
sudo systemctl enable sshd
sudo systemctl enable gpm

# Al intentar instalar fastfetch te dira que no esta disponible.
# Tenes que agregar el repositorio.

cave resolve -x fastfetch


sudo nano /etc/paludis/repositories/tombriden.conf

format = e
location = /var/db/paludis/repositories/tombriden
sync = git+https://git.exherbo.org/dev/tombriden.git

cave sync

cave resolve -x fastfetch

http://0pointer.de/blog/projects/the-new-configuration-files

Post-installation Tasks

https://www.exherbo.org/docs/install-guide.html


cave show stages
cave purge
cave update-world sys-devel/gdb
cave update-world -s stages


cave resolve -x tmux fastfetch falkon


cave resolve ImageMagick --lazy --recommendations take --suggestions take

cave resolve falkon --lazy -r take -s take

cave resolve -x w3m

cave resolve -c net-www/w3m -x --skip-phase test

fbpdf and dillo are deleted packages lol


!   app-text/fbpdf
    Reasons: target
    Unsuitable candidates:
      * app-text/fbpdf-scm:0::graveyard
        Masked by graveyard (Package has been deleted)




Failed to compile w3m:

Packages that I use on ArchLinux.

openssh ttyd whois fzf bash-completion pipewire pipewire-pulse tmux fastfetch os-prober sudo fish sway wmenu foot alsa-utils mpv imagemagick translate-shell git hugo python-pip wl-clipboard grim btop imv yt-dlp neomutt firefox falkon irssi w3m links imlib2 rsync fbida samba obs-studio gimp qt6-wayland qt5-wayland(para smtube) thunderbird tor torsocks v4l-utils unrar unzip qbittorrent kdenlive extra/texlive-latex extra/texlive-latexextra extra/texlive-plaingeneric texlive-fontsextra extra/texlive-fontsrecommended evince extra/texlive-langspanish wget acpi telegram-desktop festival espeak-ng speech-dispatcher libreoffice tree rclone inetutils bc xorg-xwayland feh chromium newsboat telegram-desktop

ClaudeAI:

Looking at your build log, w3m is failing to compile due to several issues with modern C compilers and OpenSSL 3:

Main Issues

  1. Missing function declaration: prepare_sys_errlist() is no longer available in modern glibc
  2. longjmp() macro issue: The LONGJMP macro is incorrectly defined for your system
  3. Type incompatibility: Pointer type mismatch with wtf_parse1()

Quick Fix

The simplest solution is to apply patches for modern systems. Here's what you need to do:

Create a patch file in /var/db/paludis/repositories/net/packages/net-www/w3m/files/ called modern-glibc-fixes.patch:

--- a/main.c
+++ b/main.c
@@ -407,7 +407,9 @@ main(int argc, char **argv, char **envp)
     mySignal(SIGPIPE, SigPipe);
 #endif
 
+#ifdef HAVE_SYS_ERRLIST
     prepare_sys_errlist();
+#endif
 
 #ifdef USE_MOUSE
     if (use_mouse)

And fix the longjmp issue by editing config.h after configure runs, or better yet, create another patch fix-longjmp.patch:

--- a/config.h.in
+++ b/config.h.in
@@ -180,7 +180,7 @@
 #define SETJMP(env) sigsetjmp(env,1)
 #define LONGJMP(env,val) siglongjmp(env,val)
 #else
-#define LONGJMP(env,val) longjmp(env)
+#define LONGJMP(env,val) longjmp(env,val)
 #define SETJMP(env) setjmp(env)
 #endif

Then update your ebuild to apply these patches in the src_prepare phase.

Alternative Solution

Since w3m-0.5.3 is quite old (from 2011), consider using w3m-img or the maintained fork at https://github.com/tats/w3m which has fixes for modern systems. The maintained version should compile cleanly on modern Linux systems.

Would you like help modifying the ebuild to apply these patches, or would you prefer to try the maintained fork instead?


Instalar samba:

cave resolve -x samba

n net-libs/ngtcp2:0::net 1.19.0 to ::installed

"Implementation of the QUIC protocol which is now being discussed in the IETF QUICWG"

You need to change: PROVIDERS: -gnutls -> gnutls No changes needed: -debug -examples build_options: symbols=split jobs=2 -dwarf_compress recommended_tests -trace work=tidyup

Reasons requiring changes: net-fs/samba-4.23.4:0::net

Cannot proceed without: user configuration changes


This is output from a package manager (looks like Paludis from Exherbo Linux) showing a dependency resolution for installing Samba. Let me break down what's happening:

What will be installed

The package manager plans to install 11 packages as dependencies for Samba 4.23.4, including:

The problem

You have two blocking issues:

1. Configuration Change Required (Blocking)

The net-libs/ngtcp2 package needs the gnutls provider enabled, but it's currently disabled. This is preventing the installation from proceeding.

Add net-libs/ngtcp2 PROVIDERS: gnutls to /etc/paludis/options.conf

To fix this, you need to change the provider for ngtcp2 from the default to gnutls. The exact method depends on your configuration files, but typically you'd add something like:

net-libs/ngtcp2 PROVIDERS: gnutls

to your package configuration.

2. Missing Dependencies (Errors)

Several Python packages are in unavailable repositories (::perl and ::python repositories are not accessible):

To fix this, you need to either:

Optional packages not being installed

Two suggested packages were skipped:

You can add these later with --take if needed.

ClaudeAI


#!/bin/bash
# Script de configuración minimalista del kernel para Exherbo Linux
# Hardware: Intel Celeron N2806, 2 cores, USB 2.0
# Objetivo: Compilación rápida (30-50 min vs 10+ horas)

set -e

# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}Configuración Minimalista del Kernel${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""

# Verificar que estamos en el directorio correcto
if [ ! -f "Makefile" ] || [ ! -d "kernel" ]; then
    echo -e "${RED}Error: No estás en el directorio del kernel (/usr/src/linux)${NC}"
    echo "Ejecuta: cd /usr/src/linux"
    exit 1
fi

# Verificar permisos
if [ "$EUID" -eq 0 ]; then
    echo -e "${YELLOW}Advertencia: No ejecutes este script como root${NC}"
    echo "Solo necesitas root para make modules_install e install"
    exit 1
fi

echo -e "${YELLOW}Paso 1: Cargando módulos actuales...${NC}"
# Cargar todos los módulos que usa tu sistema actual
sudo modprobe -a snd_seq snd_hrtimer dvb_core vfat fat \
  snd_hda_codec_hdmi snd_hda_codec_realtek rtl8723be \
  r8169 btusb mac80211 uvcvideo bluetooth cfg80211 \
  snd_hda_intel ahci xhci_hcd i915 2>/dev/null || true

echo -e "${GREEN}✓ Módulos cargados${NC}"
echo ""

echo -e "${YELLOW}Paso 2: Generando configuración base con localmodconfig...${NC}"
echo "Esto creará una config basada SOLO en los módulos actualmente cargados"
make localmodconfig

echo -e "${GREEN}✓ Config base creada${NC}"
echo ""

echo -e "${YELLOW}Paso 3: Desactivando debugging (reduce 30-40% del tiempo)...${NC}"
scripts/config --disable DEBUG_KERNEL
scripts/config --disable DEBUG_INFO
scripts/config --disable DEBUG_INFO_BTF
scripts/config --disable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
scripts/config --disable DEBUG_INFO_DWARF4
scripts/config --disable DEBUG_INFO_DWARF5
scripts/config --disable GDB_SCRIPTS
scripts/config --disable KASAN
scripts/config --disable UBSAN
scripts/config --disable KCOV
scripts/config --disable PROVE_LOCKING
scripts/config --disable LOCK_STAT

echo -e "${GREEN}✓ Debugging desactivado${NC}"
echo ""

echo -e "${YELLOW}Paso 4: Optimizando para CPU Silvermont (Celeron N2806)...${NC}"
scripts/config --disable GENERIC_CPU
scripts/config --enable MSILVERMONT

echo -e "${GREEN}✓ Optimización de CPU configurada${NC}"
echo ""

echo -e "${YELLOW}Paso 5: Desactivando virtualización...${NC}"
scripts/config --disable KVM
scripts/config --disable KVM_INTEL
scripts/config --disable VHOST_NET
scripts/config --disable VHOST
scripts/config --disable VIRTIO_PCI
scripts/config --disable VIRTIO_BALLOON
scripts/config --disable VIRTIO_BLK
scripts/config --disable VIRTIO_NET

echo -e "${GREEN}✓ Virtualización desactivada${NC}"
echo ""

echo -e "${YELLOW}Paso 6: Configurando USB 2.0...${NC}"
scripts/config --enable USB_XHCI_HCD
scripts/config --enable USB_EHCI_HCD
scripts/config --disable USB_UHCI_HCD

echo -e "${GREEN}✓ USB configurado${NC}"
echo ""

echo -e "${YELLOW}Paso 7: Optimizando para 2 cores...${NC}"
scripts/config --set-val NR_CPUS 2
scripts/config --disable NUMA
scripts/config --disable MAXSMP

echo -e "${GREEN}✓ Configuración de cores optimizada${NC}"
echo ""

echo -e "${YELLOW}Paso 8: Desactivando GPUs innecesarias...${NC}"
scripts/config --disable DRM_AMDGPU
scripts/config --disable DRM_RADEON
scripts/config --disable DRM_NOUVEAU
scripts/config --disable DRM_VMWGFX
scripts/config --disable DRM_VGEM
scripts/config --disable DRM_VKMS

echo -e "${GREEN}✓ GPUs innecesarias desactivadas${NC}"
echo ""

echo -e "${YELLOW}Paso 9: Habilitando hardware esencial...${NC}"
# GPU Intel
scripts/config --enable DRM_I915
scripts/config --enable DRM_I915_GVT

# Audio
scripts/config --enable SND_HDA_INTEL
scripts/config --enable SND_HDA_CODEC_REALTEK
scripts/config --enable SND_HDA_CODEC_HDMI

# Red
scripts/config --enable RTL8723BE
scripts/config --enable R8169

# SATA
scripts/config --enable AHCI
scripts/config --enable SATA_AHCI

# Filesystems
scripts/config --enable EXT4_FS
scripts/config --enable VFAT_FS
scripts/config --enable FAT_FS

# Bluetooth
scripts/config --enable BT
scripts/config --enable BT_INTEL
scripts/config --enable BT_RTL

echo -e "${GREEN}✓ Hardware esencial habilitado${NC}"
echo ""

echo -e "${YELLOW}Paso 10: Desactivando opciones innecesarias adicionales...${NC}"
scripts/config --disable WIRELESS_EXT
scripts/config --disable INFINIBAND
scripts/config --disable NET_VENDOR_BROADCOM
scripts/config --disable NET_VENDOR_INTEL  # Solo necesitas Realtek
scripts/config --disable WLAN_VENDOR_INTEL

echo -e "${GREEN}✓ Opciones innecesarias desactivadas${NC}"
echo ""

echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}Configuración completada!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo -e "${YELLOW}Ahora ejecuta:${NC}"
echo ""
echo -e "  ${GREEN}make -j2${NC}                    # Compilar (30-50 min estimado)"
echo -e "  ${GREEN}sudo make modules_install${NC}  # Instalar módulos"
echo -e "  ${GREEN}sudo make install${NC}          # Instalar kernel"
echo ""
echo -e "${YELLOW}Opcional: Ver la configuración antes de compilar${NC}"
echo -e "  ${GREEN}make menuconfig${NC}            # Interfaz gráfica para revisar"
echo ""
echo -e "${YELLOW}Tiempo estimado de compilación: 30-50 minutos${NC}"
echo -e "${YELLOW}(vs 10+ horas con la config de Arch Linux)${NC}"
echo ""


# 1. Guarda el script
cd /usr/src/linux
nano configurar_kernel.sh
# Copia el contenido del artifact

# 2. Dale permisos de ejecución
chmod +x configurar_kernel.sh

# 3. Ejecuta (NO como root)
./configurar_kernel.sh

# 4. Compila
make -j2

# 5. Instala
sudo make modules_install
sudo make install