Primero boteá ArchLinux descargá la ISO de acá: https://archlinux.org/download/
Quemá la ISO en un pendrive usando
dd if=archlinux.iso of=/dev/sdb status=progress bs=4098
https://kisslinux.github.io Está obsoleto, el creador desapareció pero la comunidad de KISS decidió forkearlo acá: https://kisscommunity.org/kiss/install/
Al bootear ArchLinux particionemos el disco.
Si estás en una VM podes directamente crear una única partición
o
n
p
1
Enter
Enter
w
g (gpt disk label)
n
1 (partition number [1/128])
2048 first sector
+300M last sector (boot sector size)
t
1 (EFI System)
n
2
default
+4G
t
2
swap
n
3
default (fill up partition)
default (fill up partition)
w (write)
Descargá el último release kiss-chroot de acá: https://codeberg.org/kiss-community/repo/releases
Extraélo como root
.
mkfs.fat -F 32
(explicado en el artículo de ArchLinux)mkfs.ext4 /dev/sda1
mount /dev/sda1 /mnt
cd /mnt
lynx https://kisscommunity.org/kiss/install/
De ahí dale a `latest-release` bajá hasta donde dice `Downloads` y descargá `kiss-chroot-24.12.18.tar.xz`, **Download and Save to Disk**.
tar xvf kiss-chroot-24.12.18.tar.xz # Descomprimí como root
genfstab -U /mnt >> /mnt/etc/fstab
bin/kiss-chroot .
En el archivo /etc/profile.d/kiss_path.sh
vi /etc/profile.d/kiss_path.sh
:
export REPOS_DIR='/var/db/kiss'
export KISS_PATH=''
KISS_PATH=$KISS_PATH:$REPOS_DIR/repo/core
KISS_PATH=$KISS_PATH:$REPOS_DIR/repo/extra
KISS_PATH=$KISS_PATH:$REPOS_DIR/repo/wayland
KISS_PATH=$KISS_PATH:$REPOS_DIR/community/community
export CFLAGS="-O2 -march=native"
export CXXFLAGS="$CFLAGS"
export MAKEFLAGS="-j2"
export KISS_SU=su
Cargamos las variables:
cp /etc/profile.d/kiss_path.sh .profile
source ~/.profile
echo $KISS_PATH
cd /var/db/kiss
git clone https://codeberg.org/kiss-community/repo
git clone https://codeberg.org/kiss-community/community
cd repo
git config gpg.ssh.allowedSignersFile .allowed_signers
git config merge.verifySignatures true
kiss update
cd /var/db/kiss/installed && kiss build *
kiss b e2fsprogs dosfsprogs xfsprogs util-linux dhcpcd libelf ncurses perl baseinit
# Quedó obsoleto eudev
mkdir -p /etc/rc.d
echo "dhcpcd 2> /dev/null" > /etc/rc.d/dhcpcd.boot
echo kiss > /etc/hostname
vi /etc/hosts
127.0.0.1 kiss
ping kiss
cd /var/db/kiss
Descargá el linux kernel:
lynx kernel.org
Latest Release - Download
tar xvf linux-*
cd linux-*
Es recomendable bootear con ArchLinux porque carga todo lo que necesitás para que tu sessión sea exitosa, ahora todos los módulos están cargados en la memoria si ejecutás:
lspci -k
Verás que el ethernet está cargado, etc. Es un buen comienzo pero no es todo.
Ahora podes descargar linux-firmware
pero en este caso lo omnitiremos.
Primero tenemos que crear la configuración por defecto del kernel
make defconfig
Si ejecutamos:
make help
Encontrarás un argumento llamado localyesconfig (update current config converting local mods to core)
make localyesconfig
Hay que habilitar CONFIG_FRAMEBUFFER_CONSOLE
Sacale una foto o una screenshot a la salida de ese comando para buscar uno por uno más rápido.
Ese comando convierte lo que está en memoria cargado con ArchLinux pero se da cuenta de que no está configurado todavía, así que no puedo convertirlo lo que significa que lo necesito.
Parece mucho pero hay varios sub-modulos
.
Ejemplo: pata_acpi
si copiás CONFIG_PATA_ACPI
(podes copiar si habilitas el mouse systemctl start gpm en otra consola lo pegas con botón derecho).
make menuconfig
/ (slash)
CONFIG_PATA_ACPI
Te dice [=n]
y abajo en Depends:
y en Selects: [=n]
(esa tenes que seleccionarlo y habilitarlo con *
para que quede todo en [=y]
)
Si apretás el número lo podes convertir como core
si lo pones con *
(asterisco) - Save - Exit - Exit
Ahora ejecutá:
make localyesconfig
Si lo hiciste bien debería haber desaparecido el mensaje.
make localyesconfig
…Con bluetooth hay un problema BT es una subsección no es algo… BT [=n]
dice no para habilitar esas cosas, cuando ves eso posponelo.
Dice [=n]
pero si mirás abajo en Selects:
dice: CRC16[=y] && CRYPTO[=y]...
tiene varias habilitadas pero para que quede habilitado BT [=n]
todo debería estar en [=y]
.
Pero si copias el que dice [=n] (CRYPTO_ECB)
haces una búsqueda no lo encontrarás porque no es un módulo, es una opción.
bluetooth
Si es una sección es mejor no tocarla y mientras hacés las demás esa sección desaparecerá. Si no ves un número al buscar, no podes hacer nada ignoralo y habilitando los demás desaparecerá el mensaje.
VMware usa CONFIG_SND_EN5171
Hacé lo mismo para cada CONFIG_
CONFIG_...
no lo encuentra pero si pones la mitad del nombre si lo encuentra.Al final cuando ejecutás make localyesconfig
no te debería salir ningun mensaje solo:
using config: .config
Ahora que hicimos todo los modulos:
make menuconfig
Si vez Kernel .config support
con un <M>
Deshabilitá en General Setup - Initial RAM filesystem and RAM disk (initramfs/initrd) support
En Processor type and features - Processor family
seleccioná Core 2/newer Xeon
.
En General setup - Default hostname - kiss
En device drives - USB support
En filesystem
debería estar habilitado ext4
.
make -j $(nproc)
# Ignorá el mensaje Cannot find LILO
make install
mv /boot/vmlinuz /boot/vmlinuz-VERSION
mv /boot/System.map /boot/System.map-VERSION
# Fijate que esté bien el fstab
cat /etc/fstab
kiss b grub
Legacy BOOT
Desde KISS Linux
sudo grub-install /dev/sda --recheck
grub-mkconfig -o /boot/grub/grub.cfg
Desde ArchLinux
grub-install --boot-directory=/mnt/boot /dev/sda --recheck
Descargá el linux-firwamre
:
cd /usr/lib
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Si estás en VirtualBox abrí la configuración en Experto y en Display poné Graphics Controller
en VBoxsSVGA
.
Ahora en el archivo /etc/default/grub
agregamos en la línea GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nomodeset"
vi /etc/default/grub
+GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nomodeset # (no carga los drivers de video)
grub-mkconfig -o /boot/grub/grub.cfg
passwd
adduser esotericwarfare
addgroup esotericwarfare audio
addgroup esotericwarfare video
addgroup esotericwarfare input
exit
exit
reboot
Con lspci -k
podes ver que módulos cargó.
dhcpcd # Levantar network
cd /var/db/kiss/community/community - Paquetes disponibles en el repositorio
ls
Probamos si podemos instalar un paquete.
kiss b neofetch
neofetch
Agregado.
El built me tardo 10 horas Desde ArchLinux
root@archiso ~ # grub-install --efi-directory=/mnt/boot --boot-directory=/mnt/boot --target=x86_64-efi --bootloader-id=grub_uefi --removable
Agrega kiss b grub lm-sensors links
al comienzo
2:42 AM
La compilacion del kernel me tardo 2 horas y 40 minutos
El linux-firmware
pesa 2.4g
Habilita todos estos y nodemodeset en el GRUB_CMDLINE
CONFIG_FB
CONFIG_FRAMEBUFFER_CONSOLE
CONFIG_FB_EFI
CONFIG_FB_VESA
Cuando bootee no tenia imagen pero igual podia escribir usuario: root y la clave y apagar mi computadora o pude ver videos con mpv e iniciar el entorno grafico con seatd-launch sway
esto lo hice despues de bootear la máquina usando nomodeset
e instalar los siguientes paquetes:
Los primeros paquetes que instale despues de iniciar Linux.
kiss b openssh imagemagick qpdf lm-sensors links vis vim mpv swayfx swagbg firefox-privacy links
(root) pip install yt-dlp
Tuve que compilar irssi
desde la págian porque no estaa en el repo de kiss ni el de community.
addgroup esotericwarfare audio
addgroup esotericwarfare video
addgroup esotericwarfare input
Clang 04:09 AM - 38%
Para instalar el driver i915
:
su
git clone ...linux-firware /usr/bin/firmware
cd /var/db/kiss/linux-VERSION
make menuconfig
Device Driver
Generic Driver Options
Firmware loader
Ahi en Firmware blobs root directory
agregue: /lib/firmware
y en Build named firmware blobs into the kernel binary
puse *
(Aunque no deberia hacer eso sino elegir una por una la que tengo que usar.)
Si no funciona nada fijate si podes escribir el usuario y contraseña en ciego y ejecutar y luego bootealo con nomodeset
.
dmesg > dmesg.txt
Para instalar las fonts de sway: kiss b terminus-font
.
Estos son los paquetes que estan en el repositorio de community
:
9base abduco aerc age amfora aml android-tools appstream apulse aria2 asciinema autoconf autoconf-archive automake axel bandwhich bash bat bc bemenu birch
bit-bin boost bottom brlaser brotli btop btrfs-progs bubblewrap cantarell-fonts catgirl cava ccrypt cfm chicken cloc cmark-gfm cmus containerd coreutils
cproc crosstool-ng cryptsetup ctags cups cups-filters curlpp darkhttpd dash dejavu-ttf delta dialog discount diskonaut djvulibre dmidecode docker docker-buildx
docker-compose-bin dogefetch dvtm ecl elinks emacs emacs-compat emacs-kiss-git emacs-tsort entr erlang evremap evtest exa execline exfatprogs exiftool
extra-cmake-modules falkon fdk-aac fdm fff fftw file flac flatpak fmt fnf fortune fossil freeglut fuse fuse2 fzy gawk gc gcompat gdb ghostscript girara github-cli
globe-cli glorytun glow-bin gnu-netcat gnupg1 gnupg2 gnutls go go-bootstrap go-ipfs goimports gopls gperf gpgme gphoto2 groff gron-git gsl gspt gt5 gtar gtest
guile3 guile3-fibers-git gumbo-parser hack hexyl hostapd htop hugo hummingbird-git icu idmap imagemagick imath inih iniparser init-hooks iosevka-nerd-fonts
iperf iproute2 iptables isync iw jbig2dec jo jq json-glib kak-lsp-bin kakoune kexec-tools keyutils kfc kiss-find kmod lcms ldns less libaio libarchive
libassuan libatomic_ops libbpf libburn libcap libconfig libcupsfilters libdvdcss libedit libev libevent libexif libgcrypt libgpg-error libgphoto2 libisoburn
libisofs libjpeg libksba libmupdf libnl libpcap libportaudio2 libppd libpsl libseccomp libsixel libslirp libsndfile libsodium libssh libtermkey libtool libtorrent
libunistring liburing libusb libutemper libuv libvncserver libwebsockets libxdp libxml2 libxmlb libxslt libyaml limine links lm-sensors lpeg lsof lua luajit lux lvm2
lz4 lzo mblaze mdev-usb mediainfo mg minikube mksh mosh msgpack-c msmtp mtools mtpaint mtr nano nawk-git ncdu1 neatvnc neofetch neomutt neovim nettle nmap npth
nq nsd ntfs-3g numactl oksh openjpeg2 openntpd optipng ostree ox pandoc-bin pash patch patchelf pciutils perl pfetch pick pinentry pipewire pkcs11-helper pmount
poppler poppler-data popt pounce powertop pqiv procps-ng protobuf protobuf-c pv pybind11 pystring qbe qemu qpdf qrencode qt5 qt5-declarative qt5-svg qt5-wayland
qt5-webchannel qt5-webengine ranger readline reptyr retrogram-rtlsdr ripgrep rsync rtorrent ruby runc runit rustup-bin s6 s6-linux-init s6-rc sane sbase sbcl sc
sc-im sccache scenefx scrcpy scroll scryer-prolog sdl2 secret sed sed-i senpai sfeed sgt-puzzles shellcheck-bin shepherd shfm shfmt-bin shinit sinit slang slides
slirp4netns smu-karlb spotify-player spotifyd squashfs-tools sudo swappy swaybg swayfx swayidle swaylock swww syncthing sysmgr tcc tdb tea terminus-font tiff tig
tinygo-bin tinyramfs-git tiv tmate tmux tokei totp transmission tre tree ttf-font-awesome ttf-jetbrains-mono ttyd tuitube twemoji-color-font typescript-language-server
uacme ubase ugrep umurmur unbound unzip uthash virglrenderer vis viu vmwh vundle wayvnc wireguard-tools wireless_tools wl-clipboard wl-screenrec wlr-randr
wmenu xxd yajl yarn yash yasm yt-dlp ytfzf zathura zathura-cb zathura-djvu zathura-pdf-mupdf zathura-pdf-poppler zig-bin zip zls-bin zsh zzz
Paquetes que esta en el repo de repo/extra
(tiene 2 mas: core y wayland)
adwaita-icon-theme alsa-lib alsa-utils bkeymaps cairo cbindgen ccache clang cmake cyrus-sasl dhcpcd dosfstools e2fsprogs efibootmgr efivar eiwd expat
ffmpeg firefox firefox-privacy fontconfig freetype-harfbuzz gdk-pixbuf glib gnugrep gtk+3 hicolor-icon-theme hwdata intel-vaapi-driver json-c kirc lame
libass libclc libdisplay-info libelf libepoxy libffi libjpeg-turbo libnl-tiny libogg libplacebo libpng libretls libtheora libudev-zero libva
libva-utils libvorbis libvpx libwebp llvm man-pages mandoc mdevd mesa meson mold mpv mutt nasm ncurses nodejs nspr nss opendoas openresolv openssh opus
pango pcre2 pkgconf python python-docutils python-flit-core python-glad python-gpep517 python-installer python-jinja2 python-mako python-markupsafe
python-packaging python-setuptools python-wheel python-yaml rust samurai scdoc skalibs spirv-headers spirv-llvm-translator spirv-tools sqlite ssu
strace ttf-croscore tzdata util-linux vim wpa_supplicant x264 x265 xvidcore zstd
Acá fue cuando ejecuté make localyesconfig
en la carpeta del kernel descargado y fui habilitando uno por uno los CONFIG_
saqué una foto porque eran demasiados.