Void Linux Tips
151 subscribers
3 photos
4 videos
16 links
Este canal tratará de tener el mayor número de consejos o soluciones a las dudas más frecuentes de los usuarios de Void Linux
Download Telegram
Media is too big
VIEW IN TELEGRAM
#kernel #xbps-src #custom

Cómo configurar y compilar el kernel en Void Linux.
👍3
#autologin #X11 #runit #startx

Void Linux brinda al usuario varias opciones para poder iniciar sesión y cargar xorg. Una opción es hacerlo de la forma tradicional a través de una interfaz de usuario: display manager (gdm, lxdm, lighdm, etc); otro modo es iniciar sesión a través de la consola virtual (tty) y posteriormente cargar manualmente xorg a través del comando startx, sin embargo, también existe otro modo de iniciar sesión y cargar automáticamente xorg y sin necesidad de configurar un display manager. Esta última opción es viable cuando se tiene la certeza de que el equipo será utilizado por un solo usuario/persona. Los pasos para dicha configuración se mencionan a continuación.

1. Instalar el paquete xinit y configurarlo para que cargue el entorno de escritorio o gestor de ventanas que deseamos. El archivo de configuración debe de estar oculto en el directorio home del usuario.
Procedemos a crear un fichero vacío oculto y llamado xinitrc en el home.

touch "$HOME"/.xinitrc

Ahora, dependiendo de cómo queremos iniciar xorg añadimos una de las siguientes lineas dentro de la configuración:

exec mate-session # Para iniciar Mate-Desktop
exec startxfce4 # Para iniciar XFCE
exec startlxde # Para iniciar LXDE
exec startkde # Para iniciar KDE-Plasma
exec gnome-session # Para iniciar Gnome
exec cinnamon-session # Para iniciar Cinnamon
exec startlxqt # Para iniciar LXQT
exec dwm # Para iniciar el gestor de ventanas DWM
exec openbox-session # Para iniciar el gestor de ventanas openbox
exec i3 # Para iniciar el gestor de ventas i3wm
exec awesome # Para awesome-wm
exec bspwm # Para iniciar el gestor de ventanas bspwm

2. Para el autologin primeramente hay que copiar la configuración de agetty-tty1 para poder crear la configuración que se usará para el autologin. Quizá se pregunten qué sentido tiene crear un nuevo servicio, sin embargo por alguna extraña razón la configuración de los otros agetty-tty están enlazadas simbólicamente a agetty-tty1.

# cp -R /etc/sv/agetty-tty1 /etc/sv/agetty-autologin-tty1

Es muy importante que el nombre del servicio que se va a crear termine con un nombre válido de alguna de las consolas virtuales activadas ya que de no ser así no funcionará.

3. Una vez se ha creado el nuevo servicio hay que editarlo con su editor de textos preferido:

vim /etc/sv/agetty-autologin-tty1/conf

Dentro de la configuración buscar la siguiente línea y reemplazar USUARIO por el de la cuenta con la que se iniciará sesión:

GETTY_ARGS="--autologin USUARIO --noclear"
BAUD_RATE=38400
TERM_NAME=linux

4. A partir de este punto es importante que si se inició sesión en tty1 cambiarse a otra ya que se desactivará su servicio.
Se procede a desactivar el servicio de la tty1 y reemplazarla por el servicio de autologin:

# rm /var/service/agetty-tty1
# ln -s /etc/sv/agetty-autologin-tty1 /var/service

Hasta este punto ya se tiene funcionando el autologin en TTY, lo que ahora hace falta es carga xorg automáticamente.

5. Para cargar X11 basta con añadir lo siguiente a la configuración del perfil del shell que estén usando (generalmente bash a menos que lo reemplacen con otro):

if [ -z "DISPLAY"] && [ "$(fgconsole)" -eq 1 ]; then
exec startx
fi

6. En el punto cuatro se desactivó el servicio de agetty-tty1, sin embargo, cuando runit tenga una actualización dicho servicio será restablecido y el autologin dejará de funcionar. Para evitar que el servicio se inicie automáticamente después de una actualización de runit hay que crear un archivo con el nombre down en el directorio del servicio agetty-tty1:

# touch /etc/sv/agetty-tty1/down
👍4
#xbps-query #nonfree #repo #repositorios
Si en alguna ocasión necesitan dar un vistazo rápido al repositorio nonfree de void para buscar un paquete que necesiten y sin necesidad de instalarlo, pueden hacerlo del siguiente modo:

xbps-query -Mi --repository=https://alpha.us.repo.voidlinux.org/current/nonfree -s\*

En caso de tener la versión con Musl, hacerlo del siguiente modo:

xbps-query -Mi --repository=https://alpha.us.repo.voidlinux.org/current/musl/nonfree -s\*

-M Almacena los datos del repositorio remoto en la memoria ignorando los datos guardados de forma local
-i Ignora los repositorios que se tengan definidos en xbps.d
--repository= Se especifica qué repositorio se utilizará para la búsqueda
-s Buscar coincidencias con la palabra definida
🤩1
#ignorepkg #xbps-install #xbps-remove

Complementando al video de José que compartió hoy, me tomé el atrevimiento de hacer este video para mostrar otro método para eliminar paquetes que son requeridos como dependencias añadiéndolos a la lista de paquetes ignorados por xbps

https://youtu.be/osNAlGM8k7k
👍1
En este repositorio podrán encontrar #guias de ayuda para poder realizar una instalación del sistema personalizada o crear un #contenedor para poder usar programas compilados con la librería C glibc en un sistema con musl.
Asimismo, podrán encontrar algunas #plantillas personalizadas para poder construir binarios estáticos.
En lo posible se procurará tener en español el contenido que se vaya agregando.
https://git.disroot.org/tuxliban/tutoriales_void/src/branch/master/README.md
👍1
#wifi #internet #wpa #supplicant

Para configurar una conexión inalámbrica con wpa_supplicant proceder del siguiente modo:

Identificar interfaz:
$ ip link

A continuación, encontrar el ssid (nombre) de las redes inalámbricas disponibles. Si conoce el nombre de la red, omitir este paso:
# iw dev INTERFAZ scan | grep -i ssid

Copiar la configuración predeterminada de wpa_supplicant y renombrarla con el nombre de nuestra interfaz (esto puede ser opcional):
# cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-INTERFAZ.conf

Crear la configuración inalámbrica
$ wpa_passphrase ssid password | sudo tee -a /etc/wpa_supplicant/wpa_supplicant-INTERFAZ.conf

Activar el servicio de wpa_supplicant y de dhcpcd (de ser necesario, instálelo):
# ln -s /etc/sv/{dhcpcd,wpa_supplicant} /var/service/

Establecer conexión:
# wpa_supplicant -B -D wext -i INTERFAZ -c /etc/wpa_supplicant/wpa_supplicant-INTERFAZ.conf
👍4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
#wifi #internet #wpa #supplicant
Ejemplo de lo anteriormente descrito
👍2
Para quienes también suelen usar salas en matrix, se pueden unir al siguiente grupo 👍
#voidlinux-es:matrix.org
#Digital #Signature #ca-certificates
Recientemente a partir del 30 de septiembre del 2021 algunos tuvieron problemas para actualizar el sistema y otros más también tuvieron problemas al intentar realizar una instalación nueva debido a la caducidad del certificado Let's Encrypt. La solución más rápida y sencilla es escribir lo siguiente en una terminal con el fin de actualizar los certificados de seguridad:

SSL_NO_VERIFY_PEER=true xbps-install -Su

Esta es una solución temporal en la que se omite la verificación del certificado únicamente para la ejecución en curso, por lo que no se recomienda dejarla como permanente
#xbps #intall #temporal
Hoy me encontraba haciendo unas pruebas en las que necesitaba instalar temporalmente algunos paquetes para probar o hacer pruebas de depuración. Posiblemente algunos hayan hecho algo similar y después no recuerden qué paquetes instalaron y terminan teniendo paquetes que quizá ya no utilizarán después. Si dichos paquetes los instalan con xbps-install foo sucede que nunca serán eliminados porque fueron instalados explícitamente por el usuario, en esos casos, si instalarán paquetes temporales entonces podrían hacerlo con xbps-install -A foo para marcarlos como instalados automáticamente, de este modo cuando ejecuten xbps-remove -O (para la versión 20.1 de XBPS) o xbps-remove -o (para la versión 0.59.1) serán eliminados al no ser considerados como dependencias de otro paquetes
👍10🤩4
Os dejo una guía express para BTRFS en Void Linux del amigo Visione, gracias !

#### Btrfs config básica

Partimos de una partición /dev/boot y otra /dev/root, se pueden usar todas las particiones que se quieran, no limita en nada.

1.- Particionamos al gusto

2.- Creamos fs para $boot

3.- Creamos fs para $root (y en caso de haber, para el resto de particiones a usar) mksf.btrfs --csum xxhash $root

4.- Opciones de montaje
- Parto de que se esta instalando arch o alguna otra distro sin instalador grafico. Sino, las opciones de montaje se pueden editar después en el fstab
- BTRFS_OPTS="rw,noatime,ssd,compress-force=zstd,space_cache=v2,commit=120"
- La opción de compresión tiene diferentes opciones, zstd es ma que mas ratio de compresión tiene y mas rapidez da.
- Si no se usa ssd, eliminar esa opción y usar space_cache

5.- Montando discos
- montamos raíz mount -o $BTRFS_OPTS /dev/$root /mnt

6.- Creando los su volúmenes
- Una explicación fácil seria que son como particiones dentro de una misma partición, así evitamos que los snapshots se creen con directorios que no necesitamos.
- Creamos subvolumen @ -- es el subvolumen principal, como la partición /root
btrfs subvolume create /mnt/@
- Creamos subvolumen @home
btrfs subvolume create /mnt/@home
- Creamos subvolumen snapshots // asi evitamos que en los snapshots también se guarde este directorio
btrfs subvolume create /mnt/@snapshots
- Estos serian los básicos, pero al igual que las particiones se pueden crear los que uno necesite.

7.- Se desmonta / para montar los subvolúmenes en sus correspondientes directorios
umount /mnt

8.- Se montan los subvolúmenes
- mount -o $BTRFS_OPTS,subvol=@ /dev/$root /mnt
- mkdir -p /mnt/{.snapshots,home,var/cache,boot/efi}
- mount /dev/$boot /mnt/boot/efi
- mount -o $BTRFS_OPTS,subvol=@snapshots /dev/$root /mnt/.snapshots
- mount -o $BTRFS_OPTS,subvol=@home /dev/$root /mnt/home
- Si se usan diferentes particiones eidtar los dispositivos según el particionado

9.- Se crean subvolumenes para evitar el nesteo de directorios en los snapshots. Estos son los que uso en void-linux, para arch serian otros directorios pero es fácil de entender. Temporales, cache del pkg-manager y srv.
- btrfs subvolume create /mnt/var/cache/xbps
- btrfs subvolume create /mnt/var/tmp
- btrfs subvolume create /mnt/srv

10.- Chroot en un btrfs
- Se tienen que usar las opciones de montaje de los subvolúmenes para entrar al chroot.
BTRFS_OPTS=$BTRFS_OPTS chroot /mnt/ /bin/bash

11.- Fstab
- Este seria el formato del fstab con un systma btrfs
UUID=$ROOT_UUID / btrfs $BTRFS_OPTS,subvol=@ 0 1
UUID=$UEFI_UUID /efi vfat noatime 0 2
UUID=$ROOT_UUID /home btrfs $BTRFS_OPTS,subvol=@home 0 2
UUID=$ROOT_UUID /.snapshots btrfs $BTRFS_OPTS,subvol=@snapshots 0 2

12.- Instalar btrfs-progs grub-btrfs durante la instalación. El segundo añade al grub los snapshots que tengas creados de / para poder arrancar desde ellos

13.- Crear snapshots ----- Esta parte es donde toca leer, como siempre la wiki de arch o la wiki de btrfs son de ayuda.

14.- Aquí teméis un scripts para crear snapshots fácilmente
https://visone-wiki.000webhostapp.com/pages/visnapper.html
👍5
INSTALACIÓN EXPRESS VOID LINUX

Sistema de archivos
# mkfs.vfat /dev/sda1
# mkfs.ext4 /dev/sda2 | mkfs.xfs /dev/sda2
---
# mount /dev/sda2 /mnt/
# mount /dev/sda1 /mnt/boot/

Instalación método XBPS
=> Variables
XBPS_ARCH=x86_64
XBPS_ARCH=x86_64-musl
—-
xf86-video-amdgpu
xf86-video-ati
xf86-video-intel
xf86-video-nouveau
—-
# export XBPS_ARCH=x86_64 && xbps-install -S -R https://alpha.de.repo.voidlinux.org/current -r /mnt base-minimal alsa-utils bash bc bgs dejavu-fonts-ttf dhcpcd dmenu dracut dwm ethtool eudev ffmpeg file firefox gcc git grub herbe iproute2 iputils kbd kmod less libreoffice man-pages mesa-vaapi mksh mpv ngetty nnn opendoas pciutils scrot setxkbmap slock slstatus st sxiv tabbed telegram-desktop traceroute trash-cli unzip usbutils vim xclip xdotool xf86-video-ati xfsprogs xorg-minimal xrandr xtools xz zathura-pdf-poppler

Chroot
# for i in sys dev proc; do $(mount --rbind /$i /mnt/$i && mount --make-rslave /mnt/$i); done && cp /etc/resolv.conf /mnt/etc && PS1='(chroot) # ' chroot /mnt /bin/bash

/etc/fstab

# <fs> <dir> <type> <options> <dump> <pass>
/dev/sda1 / xfs defaults,noatime 0 1
tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
tmpfs /home/luis/Git/void-packages/masterdir/builddir tmpfs defaults,noatime,size=16G 0 0

/etc/fstab (EFI)

# <fs> <dir> <type> <options> <dump> <pass>
/dev/sda1  /boot  vfat  defaults,noatime   0     2
/dev/sda2 / xfs defaults,noatime 0 1
tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
tmpfs /home/luis/Git/void-packages/masterdir/builddir tmpfs defaults,noatime,size=16G 0 0

/etc/rc.local
# Default rc.local for void; add your custom commands here.
#
# This is run by runit in stage 2 before the services are executed
# (see /etc/runit/2).
ip link set wlp2s0 up
ip a add 192.168.1.7/24 dev wlp2s0
ip route add default via 192.168.1.1 dev wlp2s0
wpa_supplicant -B -D nl80211,wext -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf

Locales (Glibc)
# sed -i "s/#es_ES.UTF-8 UTF-8/es_ES.UTF-8 UTF-8/g" /etc/default/libc-locales && xbps-reconfigure -f glibc-locales

Root
# passwd
# chown root:root / && chmod 755 /

Kernel
=>linux-firmware subpackages
linux-firmware-amd
linux-firmware-intel
linux-firmware-nvdia
linux-firmware-network
linux-firmware-broadcom (dependencia de linux-firmware-network)
linux-firmware-qualcom (target armv7*|aarch64*)
linux-firmware-dvb

# xbps-install linuxX.XX dracut linux-firmware

Grub
# xbps-install -y grub && grub-install --target=i386-pc /dev/sdX

Grub EFI
# xbps-install -y grub-x86_64-efi && grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Void"

Reconfigurar el sistema
# xbps-reconfigure -fa

Usuario
# useradd -m -s /bin/bash -U -G wheel,disk,lp,audio,video,optical,storage,scanner,network,plugdev,xbuilder USUARIO
# passwd USUARIO

Doas
# touch /etc/doas.conf && echo "permit nopass keepenv :wheel" > /etc/doas.conf

Ngetty
# rm -f /var/service/{agetty-tty3,agetty-tty4,agetty-tty5,agetty-tty6} && ln -s /etc/sv/ngetty /var/service

Salir
# exit
# umount -R /mnt
# shutdown -r now
—-
Referencias:
Guía instalación mínima Void Linux
Guía postinstall Void Linux

Enlaces de interés:
BTRFS configuración básica
Principales bases de sistema (minimal, voidstrap, system)
Reemplazar agetty por ngetty (Si habéis seguido este tip, omitir pasos 1, 2 y 4)
👍71
PRINCIPALES BASES DE SISTEMA PARA VOID LINUX

base-minimal
base-files coreutils findutils diffutils dash grep gzip sed gawk util-linux which tar shadow procps-ng iana-etc xbps nvi tzdata runit-void removed-packages

base-voidstrap
base-files ncurses coreutils findutils diffutils dash bash grep gzip file sed gawk less util-linux which tar man-pages  mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs f2fs-tools dosfstools kbd  procps-ng tzdata pciutils iana-etc eudev runit-void openssh dhcpcd  iproute2 iputils iw xbps nvi sudo traceroute kmod removed-packages

base-system
base-files>=0.77 ncurses coreutils findutils diffutils libgcc dash bash grep gzip file sed gawk less util-linux which tar man-pages mdocml>=1.13.3 shadow e2fsprogs btrfs-progs xfsprogs f2fs-tools dosfstools procps-ng tzdata pciutils usbutils iana-etc openssh dhcpcd kbd iproute2 iputils iw wpa_supplicant xbps nvi sudo wifi-firmware void-artwork traceroute ethtool kmod acpid eudev runit-void removed-packages
👍6
Pasos para reemplazar agetty por ngetty:

1. Partimos de un entorno ideal con 2 agetty-tty, en caso de tener las 6 activas, las podemos eliminar:
# rm -f  /var/service/{agetty-tty3,agetty-tty4,agetty-tty5,agetty-tty6}

2. Instalar el paquete:
# xbps-install -S ngetty

3. Cambiar a una tty distinta a la que se utiliza para levantar X11 y que exceda +1 del número de agetty, por ejemplo la tty 3 ya sería de ngetty, lo mejor sería no estar con sesión activa en ninguna, dejo los atajos :
Si estamos en tty => Alt + F3
Si estamos en X => Ctrl + Alt + F3

4. Activar el servicio de ngetty:
# ln -s /etc/sv/ngetty /var/service

5. Verificamos que el servicio está activo y funcionando:
# sv status /var/service/*
run: /var/service/ngetty: (pid 314) 5363s

6. Desactivar los servicios de agetty:
# rm -fv /var/service/agetty*
👍7
Autor: @Visone_Selektah

*El modelo exacto de tu gpu puedes averiguarlo usando lscpi o inxi, es una aplicación que procura información sobre el sistema

# Nvidia Drivers Guía

1.- Después de los recientes cambios en los drivers nvidia y la división de drivers según el modelo de tu gpu, y el abandono de los drivers legacy, se puede hacer esta clasificación según la serie de tu gpu.

1.1. - Para modelos desde la serie GTX 800 tienen que usar los drivers 510, en Manjaro corresponden al driver Nvidia

1.2. - Existen 3 modelos de la serie 7xx que todavía siguen teniendo soporte con los últimos drivers, 510, estos modelos son:
* GTX 750 ti
* GTX 750
* GTX 445

1.3. - El resto de modelos de la serie 7xx usaran los drivers 470 que en Manjaro corresponden al driver nvidia470xx

1.4. - Para modelos anteriores o modelos que usen el driver legacy se usara nvidia390

2.- Instalación de drivers recomendados Nvidia en Manjaro:
doas xbps-install -S nvidia Para los drivers privativos
doas xbps-install -S xf86-video-nouveau mesa-nouveau-dri Para los drivers libres (nouveau)

3.- Dual GPU

3.1- Existen varias formas de manejar dual-gpu dependiendo de las marcas/modelos del combo

3.2- Bumblebee

3.2.1- Comprobar funcionamiento bumblebee
   optirun glxgears -info 

3.2.2- Lanzar aplicaciones con GPU Nvidia
   optirun [opciones] aplicación [parámetros-de-la-aplicación] 

3.2.3- Utilizar nvidia-settings
   optirun nvidia-settings -c:8 

3.2.4- Ejemplos
   optirun wine app/win.exe 

   optirun blender 

3.2.5- Archivo de configuración
  /etc/bumblebee/bumblebee.conf 


3.2.6- Mas información
https://wiki.archlinux.org/index.php/Bumblebee
https://forum.manjaro.org/

3.3- Prime

3.3.1- Lanzar aplicaciones con GPU Nvidia
      prime-run aplicación 

3.3.2- Editar aplicaciones especificas para que usen GPU Nvidia
- Busca en el menú la aplicación, clicka con el botón derecho, elige preferencias y añade en "comando" prime-run al principio.

3.3.3 Mas información
https://wiki.archlinux.org/index.php/NVIDIA_Optimus#Use_switchable_graphics

3.4.- PRIME con Nouveau

3.4.1.- Por defecto los drivers libres en Linux son compatibles con PRIME.
Con la variable de entorno DRI_PRIME podemos elegir con que gpu usar para aplicaciones especificas.
Por defecto las gpu integradas son las que se utilizan por defecto y tienen asignado en valor 0, las gpu dedicadas el 1.
Así para lanzar una aplicación con la gpu dedicada se utilizara:
$DRI_PRIME=1 aplicación

Por Ejemplo para lanzar google-chrome con la gpu dedicada se utilizara:
      $DRI_PRIME=1 google-chrome

3.4.2.- Este método es valido tanto para los drivers nouveau,amdgpu, video-ati, video-intel

3.4.3.- Para comprobar la lista de gpu's disponibles se utiliza:
      xrandr --listprovidersa

3.4.4.- Podemos verificar la información de cada una de las GPU con:

3.4.4.1.- GPU Integrada
DRI_PRIME=0 glxinfo

3.4.4.2.- GPU Dedicada
DRI_PRIME=1 glxinfo

3.5- Optimus switch

3.5.1- Esta opción solo permite usar una gpu a la vez, no como las opciones anteriores.
Tu eliges que gpu usar en cada momento.

3.5.2- Combo Intel/Nvidia

3.5.2.1- Usuarios con LightDM
https://github.com/dglt1/optimus-switch

3.5.2.2- Usuarios con GMD
https://github.com/dglt1/optimus-switch-gdm

3.5.2.3- Usuarios con SDDM
https://github.com/dglt1/optimus-switch-sddm

3.5.3- Combo AMD/Nvidia

3.5.3.1- Usuarios con LighDM
https://github.com/dglt1/optimus-switch-amd

3.5.3.2- Usuarios con GDM
https://github.com/dglt1/optimus-switch-amd-gdm

3.5.3.3- Usuarios con SDDM
https://github.com/dglt1/optimus-switch-amd-sddm
👍7
Media is too big
VIEW IN TELEGRAM
#xbps-src #kernel #custom #nueva #version

Os dejo este vídeo dónde se explica como instalar una nueva versión de kernel que aún no está publicada en los repos oficiales, partiendo de una versión anterior.
👍117
#xbps #xlocate #files #view

Si por alguna razón llegan a eliminar la configuración predeterminada de un archivo del sistema y quieren recuperar el contenido, pueden recurrir a xbps-query:

$ xbps-query -R --cat /path foo

Ejemplo:

$ xbps-query -R --cat /etc/rc.conf runit-void

Nota: si no saben qué paquete contiene el archivo que buscan utilicen xlocate para averiguarlo. Ejemplo:

$ xlocate /etc/rc.conf
👌13🔥3👏2
Media is too big
VIEW IN TELEGRAM
#shell #korn #ksh93 #caracteristicas

A través de este video quiero mostrarles funcionalidades interesantes de este shell, funcionalidades que pocos se han atrevido a usar y que podrían ayudar a mejorar la productividad
🔥12👏1