Arch Linux notes¶
Algunas de estas notas pueden estar deactualizadas.
Algún día podría pasar estas cosas a la wiki de Arch Linux si es digno.
Instalación¶
Instrucciones para instalar Arch Linux (en sistema UEFI) y tips de uso.
Casi todo es de la wiki oficial: https://wiki.archlinux.org/title/Installation_guide
Hay mucho material online, como este: https://denovatoanovato.net/instalar-arch-linux/
Notas de instalación¶
Previa¶
Instalar Arch desde un live USB.
Bajar la ISO https://www.archlinux.org/download/ y grabarla con dd
.
Si es una reinstalación desde otra partición con Arch, ver: proyectos/linux/arch
Network Shared Pacman Cache¶
Si hay otra PC con Arch en la LAN, conviene hacer un "Network Shared Pacman Cache":
En la otra compu, correr:
# ln /var/lib/pacman/sync/*.db /var/cache/pacman/pkg
$ sudo ufw allow proto tcp from 192.168.2.0/24 to any port 8080 # si UFW está andando
$ sudo -u http darkhttpd /var/cache/pacman/pkg --no-server-id
Y en la compu donde se está instalando Arch, agregar al principio de /etc/pacman.d/mirrorlist
:
Server = http://mymirror:8080
Reemplazando mymirror
por lo que corresponda (la IP de la otra compu por ejemplo).
Conectar a internet¶
Bootear desde el USB (tecla F10).
wpa_supplicant -B -i wlan0 -c <(wpa_passphrase SSID PASSWORD)
ping google.com
File-system setup¶
Usar parted /dev/nvme0n1
y el comando print free
para ver como esta distribuido el espacio libre. A veces está interrumpido!
Con gdisk /dev/nvme0n1
se puede borrar particiones:
IMPORTANTE: chequear antes si el disco tiene tabla de particion GTP, si no lo es, usar
fdisk
- Comando
m
para ayuda - Comando
p
para ver la tabla - Comando
i
para chequear que una particion es lo que es (se nombran por número, no por nombre) - Comando
d
para borrar. - Comando
w
para guardar y salir.
Crear particiones. Por ejemplo, para crear una partición EFI:
- Comando
n
para una nueva particion.- Numero de aprticion: por defecto
- Sector de inicio: por defecto
- Sector final:
+512M
- Hexcode:
ef00
(para el EFI), el valor por defecto8600
para Linux Filesystem, o8302
para/home
.
- Repetir para cada una de las particiones necesarias.
Para más info sobre hexcodes de MBR y GPT en gdisk
, ver: https://askubuntu.com/questions/703443/gdisk-hex-codes
Para más info sobre particiones EFI, ver: proyectos/linux
Ahora formatear las particiones usando mkfs
, y montarlas en /mnt
:
lsblk # para ver los nombres de las particiones en /dev
mkfs.ext4 /dev/nvme0n1p6 # Root
mount /dev/nvme0n1p6 /mnt
mkfs.ext4 /dev/nvme0n1p7 # Home
mkdir /mnt/home
mount /dev/nvme0n1p7 /mnt/home
mkfs.fat -F32 /dev/nvme0n1p5 # EFS for Arch's /efi
mkdir /mnf/efi
mount /dev/nvme0n1p5 /mnt/efi
También me hice una particion de 5gb para el cache de pacman: /usr/local/var/cache/pacman/pkg
mount /dev/nvme0n1p7 /mnt/usr/local/var/cache/pacman
Esa hay que montarla después del pacstrap
me parece.
Instalar¶
Acá quizás quiera hacer un pacstrap
más completo y omitir los pacman más adelante:
# Mínimo
pacstrap /mnt base linux linux-firmware base-devel dosfstools
# Extendido
pacstrap /mnt base linux linux-firmware base-devel dosfstools nano grub efibootmgr os-prober ntfs-3g intel-ucode networkmanager zsh zsh-completion pacman-contrib
fstab y chroot¶
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
passwd
Localizacion y red¶
ln -sf /usr/share/zoneinfo/America/Buenos_Aires /etc/localtime
hwclock --systohc
nano /etc/locale.gen # en_US.UTF-8 y es_AR.UTF-8
locale-gen
nano /etc/locale.conf # LANG=en_US.UTF-8
nano /etc/hostname
#myhostname
nano /etc/hosts
#127.0.0.1 localhost
#::1 localhost
#127.0.1.1 myhostname.localdomain myhostname
systemctl enable NetworkManager.service
Bootloader¶
sudo pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=archGRUB
pacman -S os-prober ntfs-3g intel-ucode
grub-mkconfig -o /boot/grub/grub.cfg
cat /boot/grub/grub.cfg | grep ucode
cat /boot/grub/grub.cfg | less
mkinitcpio -P
Reiniciar¶
exit # salir del chroot, desmontar todo y reiniciar
umount -R /mnt
reboot
nmcli WiFi¶
systemctl enable NetworkManager.service
systemctl start NetworkManager.service
nmcli device wifi list
nmcli device wifi connect "EL SSID DE TU WIFI" password CONTRASEÑΑ hidden yes
nmcli device wifi list
ping google.com
Crear usuario¶
sudo pacman -S zsh
useradd -m -s /bin/zsh TU_USUARIO
passwd TU_USUARIO
EDITOR=nano visudo
Agregar TU_USUARIO ALL=(ALL) ALL
y Defaults rootpw
, y cambiar de usuario:
su TU_USUARIO
Opcionalmente se puede elegir los mirrors más rápidos, pero toma un tiempo:
Rank mirrorlist¶
sudo pacman -S pacman-contrib
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bkp
rankmirrors -n 6 /etc/pacman.d/mirrorlist.bkp > /etc/pacman.d/mirrorlist
pacman -Syyu
Mirrorlist oficial: https://archlinux.org/mirrorlist/
Notas de mudanza o backup¶
Conservé mis particiones /home
y /data
tal cual.
También la partición /efi
pero le instalé otro GRUB (ver archGRUB2 abajo) y generé el grub.cfg
para el nuevo Arch.
Cuando todo salió bien, borré la vieja partición /
(y la del pacman cache), y extendí la nueva partición root para que ocupe ese espacio.
Vino bien tener un Ubuntu liveUSB para algunas cosas.
System setup¶
Improvisé una versión mia de esta guía:
- https://wiki.archlinux.org/title/Install_Arch_Linux_from_existing_Linux#From_a_host_running_Arch_Linux
- Y de mis notas de instalación en esta misma página.
Desde el Arch viejo (Arch1) borré todas las particiones de Windows (finalmente) liberando 80 GB de espacio.
Con un pendrive armé un Ubutu 20.04 al inicio, en una partición chica y reemplazando al Windows, solo por si rompía todo accidentalmente.
Instalé arch-install-scripts
.
Con KDE partition manager hice una particion de 80 GB para /
y la monté en /mnt
con el comando mount
.
Después monté /efi
en /mnt/efi
:
sudo mkdir /mnt/efi
sudo mount /dev/nvme0n1p4 /mnt/efi
Luego corrí pacstrap
:
sudo su
pacstrap /mnt base linux linux-firmware base-devel dosfstools sudo nano grub efibootmgr os-prober ntfs-3g intel-ucode intel-undervolt networkmanager bash-completion nmon nmap mlocate pacman-contrib xorg xf86-video-intel xorg-xinit plasma partitionmanager dolphin firefox openssh sshfs
Para el fstab
nuevo, hice:
sudo su
genfstab -U /mnt >> /mnt/etc/fstab
Luego abrí /etc/fstab
con nano
, copié todo excepto lo del viejo root, y lo pegué al final de /mnt/etc/fstab
.
Entré en el nuevo root con arch-chroot /mnt
.
Luego:
systemctl enable NetworkManager.service
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=archGRUB2
mkdir /data
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -P
Agregar mi usuario con useradd MIUSUARIO
y ponerle contraseña con passwd
.
Agregar el usuario a sudoers con visudo
.
Reiniciar y seleccionar el nuevo GRUB para bootear con el bootmenu del BIOS.
System backup¶
Configuraciones importantes para
sudo cp /etc/pacman.d/mirrorlist* /mnt/etc/pacman.
sudo cp /etc/hostname /mnt/etc/
sudo cp /etc/hosts /mnt/etc/hosts
sudo cp /etc/ssh/sshd_config /mnt/etc/ssh/sshd_config
sudo cp /etc/NetworkManager/system-connections /mnt/etc/NetworkManager/system-connections
sudo cp /etc/intel-undervolt.conf /mnt/etc/intel-undervolt.conf
# /etc/ImageMagick-7/policy.xml
# /etc/modprobe.d/modprobe.conf
# /etc/pulse/daemon.conf
# /etc/pulse/default.pa
# /etc/nsswitch.conf
Post-install¶
Cosas para hacer post-instalación:
- Nuevo usuario, agregar a sudoers.
- Cambiar sudoers para que tome rootpw y no la del usuario nuevo.
- Revisar la wiki de plasma para las fuentes, para compatibilidad con qt4 y gtk, y quitar los bordes feos.
Cosas para poder imprimir y escanear (sane iscan skanlite?)
CLI tools¶
sudo pacman -S nmon nmap mlocate lsusb
X11 o Wayland¶
Xorg/KDE: se puede instalar el "grupo" o mirarlo para elegir qué instalar del mismo
sudo pacman -S xorg xf86-video-intel plasma xorg-xinit
Para Wayland:
pacman -S xf86-video-intel xorg plasma plasma-wayland-session
# Iniciar en Wayland
XDG_SESSION_TYPE=wayland dbus-run-session startplasma-wayland
Aplicaciones¶
Un browser:
sudo pacman -S firefox
Un emulador de terminal:
sudo pacman -S konsole
Del grupo kde-applications
instalé algunos:
sudo pacman -S ark dolphin dolphin-plugins ffmpegthumbs filelight gwenview kaccounts-integration kbackup kcalc kcharselect kcolorchooser kcron kdenlive kio-extras kolourpaint kompare konsole ksystemlog kwalletmanager okular print-manager signon-kwallet-extension spectacle yakuake kwallet kwallet-pam ksshaskpass networkmanager-openvpn
ark
dolphin
dolphin-plugins
ffmpegthumbs
filelight
gwenview
kaccounts-integration
kbackup
kcalc
kcharselect
kcolorchooser
kcron
kdenlive
kio-extras
kolourpaint
kompare
konsole
ksystemlog
kwalletmanager
kwallet kwallet-pam ksshaskpass
okular
print-manager
signon-kwallet-extension
spectacle
yakuake
Instalar programas favoritos:
sudo pacman -S deluge python-cairo git partitionmanager telegram-desktop openssh sshfs mlocate firefox chromium minidlna kwalletmanager kwallet kwallet-pam ksshaskpass rsync kup syncthing gtk2 gtk3 flatpak sane skanlite hplip redshift qt5-graphicaleffects jre-openjdk-headless vlc imagemagick filezilla obs-studio
deluge python-cairo
git
partitionmanager
telegram-desktop
openssh sshfs
mlocate
firefox chromium
minidlna
bup rsync kup syncthing
gtk2 gtk3
flatpak # Para spotify, por ejemplo.
sane skanlite hplip
redshift qt5-graphicaleffects
jre-openjdk-headless
vlc
imagemagick
Media:
sudo pacman -S inkscape gimp vlc kdenlive handbrake krita blender simplescreenrecorder audacity libreoffice-still imagemagick ardour ffmpeg minidlna breeze-gtk
Pulseaudio:
sudo pacman -S pulseaudio pulseaudio-alsa pulseaudio-bluetooth pavucontrol-qt
Otros: (varios repetidos)
base-devel bash-completion xorg xf86-video-intel mesa networkmanager plasma plasma-nm firefox chrome vlc bup rsync kup gparted sublime text y addons deluge inkscape gimp krita imagemagick shotwell pycharm-community-edition zotero python3 python-pandas python-pip python-regex python-virtualenv python2-lxml python2-numpy python2-virtualenv
Display manager y startx¶
Para inhabilitar el login grafico:
systemctl set-default multi-user.target
Para iniciar KDE:
Editar .xinitrc
exec startplasma-x11
Y ejecutar:
startx
AUR Yay!¶
Instalar YAY:
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Cosas copadas que están ahí:
yay -S printrun zotero gitkraken sublime-text-3 rstudio-desktop-bin
Oh-my-zsh:
yay -S oh-my-zsh-git
sh /usr/share/oh-my-zsh/tools/install.sh
Serial permissions¶
Slic3rPE, Pronterface y Arduino IDE requieren acceso a estas cosas.
https://manual.prusa3d.com/Guide/Upgrading+the+firmware+v1.4/66?lang=en
Para que Slic3er pueda actualizar el firmware de la Impresora Prusa MK3 hay que agregar mi usuario al grupo uucp:
sudo gpasswd -a TU_USUARIO uucp
Networking¶
Wifi suddenly stopped working¶
De repente, dejó de funcionar internet, sin errores ni otra pista.
Corriendo "systemctl status wpa_supplicant" y después "rfkill list", me encontré con que el wifi estaba bloqueado, a la "Soft blocked".
Resulta que en el archivo /var/lib/NetworkManager/NetworkManager.state
de NetworkManager estaba configurado "WirelessEnabled=false". Yo ni siquiera estaba usando NM, estaba usando netctl
, pero según esta respuesta igual puede tener efecto: https://askubuntu.com/a/1143301/655678
La solución fué modificarlo para que diga "WirelessEnabled=true". Quedó como se muestra a continuación:
[main]
NetworkingEnabled=true
WirelessEnabled=true
WWANEnabled=true
Wifi Hotspot¶
create_ap
en Arch es muy fácil de usar. Permite estar conectado a otra red wifi como cliente, mientras tira wifi a otro dispositivo :) grosso.
Sysadmin stuff¶
Para que sudo pida la password de root y no la del usuario al ejecutar cosas con sudo: https://superuser.com/questions/161593/how-do-i-make-sudo-ask-for-the-root-password
systemd¶
Estoy usando esto para armar un python script como servicio: https://github.com/torfsen/python-systemd-tutorial
Una carpeta para poner los servicios/units es en .config/systemd/user/
.
Comandos utiles:
nano .config/systemd/user/python_demo_service.service # el servicio
systemctl --user daemon-reload # para que systemd encuentre o actualice el archivo ".service" nuevo.
sudo loginctl enable-linger $USER # para independizar los servicios del usuario de que se loguee o no.
journalctl --user-unit python_demo_service # una forma de ver los logs del servicio
grep 'Python Demo Service' /var/log/syslog # otra forma de ver los logs
Script: nano .config/systemd/user/python_demo_service.service
Lo de siempre, pero con --user
en ese tutorial:
systemctl --user start python_demo_service
systemctl --user stop python_demo_service
systemctl --user restart python_demo_service
systemctl --user status python_demo_service
systemctl --user enable python_demo_service
systemctl --user disable python_demo_service
Power management¶
Correr scripts antes/despues de ir a dormir: https://wiki.archlinux.org/index.php/Power_management#Hooks_in_/usr/lib/systemd/system-sleep
El sistema se puede suspender desde la CLI:
sudo systemctl suspend
WiFi singal strength¶
wavemon
https://askubuntu.com/a/169189/655678
NetworkManager¶
restart:
sudo systemctl restart NetworkManager.service
Sirve para cuando no aparecen la lista de WiFis.
Usar dos redes WiFi simultáneamente¶
Script funcional completo:
sudo iw dev wlp1s0 interface add wlp1s1 type managed # usé este
sudo ip link set wlp1s0 down
sudo ip link set dev wlp1s0 address fa:ba:ba:ba:a2:0b
sudo ip link set wlp1s0 up
sudo ip link set wlp1s1 down
sudo ip link set dev wlp1s1 address fa:ca:ca:ca:a2:0b
sudo ip link set wlp1s1 up
nmcli connection up uuid "9803b644-74ab-4442-be21-69cca77954d9" --ask ifname "wlp1s1" # Linksys17346
Añadir/borrar interfaz virtual:
sudo iw dev wlp1s0 interface add wlp1s1 type station
sudo iw dev wlp1s0 interface add wlp1s1 type managed # usé este
sudo iw dev wlp1s1 del
Cambiar MAC con "ip" (si hace falta).
sudo ip link set wlp1s0 down
sudo ip link set dev wlp1s0 address fa:ba:ba:ba:a2:0b
sudo ip link set wlp1s0 up
sudo ip link set wlp1s1 down
sudo ip link set dev wlp1s1 address fa:ca:ca:ca:a2:0b
sudo ip link set wlp1s1 up
Cambiar MAC con "macchanger"
sudo pacman -S macchanger
sudo macchanger -r wlp1s1
Lista conexiones con "nmcli":
nmcli connection show
Lista dispositivos:
nmcli device
Lista de redes wifi disponibles
nmcli device wifi list
Conctarse a una red:
Fibertel WiFi953 2.4GHz
nmcli connection up uuid "3a01be1d-8ae0-4bb4-8210-4d1ddab15993" --ask ifname "wlp1s0"
Linksys17346
nmcli connection up uuid "9803b644-74ab-4442-be21-69cca77954d9" --ask ifname "wlp1s1"
Nota: no toma el argumento
iface "wlp1s1"
, dice que es invalido.https://wiki.archlinux.org/index.php/NetworkManager#Additional_interfaces
El problema es que se no se llama así, el correcto es
ifname
.
- https://askubuntu.com/questions/488588/how-do-i-connect-to-multiple-wifi-networks
- https://unix.stackexchange.com/questions/470149/how-to-simultaneously-connect-to-two-different-networks-via-wifi-access-points
- https://unix.stackexchange.com/questions/328212/single-wifi-card-connect-to-multiple-access-points-simultaneously
- https://unix.stackexchange.com/a/283757/460609
OpenVPN¶
El comando push "route ..."
puede usarse varias veces en server.conf
para poder pasar varios rangos de IPs que no se puedan representar simplemente con un par IP/mask.
IPs CIDR y Subnets¶
Herramienta:
CPU¶
Información con lscpu
Governor¶
sudo pacman -S cpupower
sudo cpupower frequency-set -g performance
cpupower frequency-info
Undervolt¶
As found at: https://wiki.archlinux.org/title/Undervolting_CPU
sudo pacman -S intel-undervolt
Fui bajando los valores en /etc/intel-undervolt.conf
de a 20 mV hasta llegar a esto:
undervolt 0 'CPU' -120
undervolt 1 'GPU' 0
undervolt 2 'CPU Cache' -120
undervolt 3 'System Agent' -120
undervolt 4 'Analog I/O' -120
Repetir lo siguiente hasta llegar a no menos de -150 mV (puede ser más o menos, varía entre compus).
- Configurar nuevos valores de voltaje.
sudo nano /etc/intel-undervolt.conf
sudo intel-undervolt read # verificar valores actuales
- Aplicar cambios y poner a prueba el sistema con los nuevos valores.
## stress --cpu 4 & # para ver el descenso de temperatura, empezar stress antes de aplicar cambios
sudo intel-undervolt apply # aplicar valores nuevos
stress --cpu 4 # poner a prueba el sistema
sudo systemctl enable intel-undervolt.service # cargar los cambios al reiniciar
Está bueno ejecutar stress mientras se aplica el undervolt, para ver el efecto en la temperatura en vivo; esa supervisión se puede hacer con ksysguard system monitor de KDE.
- En teoría hay que repetir lo anterior hasta que el sistema crashee, pero me quedé contento con que el CPU quedara bajo 70°C a -120 mV.
Cosas que leí:
- https://wiki.archlinux.org/index.php/Undervolting_CPU#intel-undervolt
- https://wiki.archlinux.org/index.php/Stress_testing#stress
- https://www.reddit.com/r/overclocking/comments/cyyqst/undervolting_cpu_core_vs_cpu_cache/
- https://wiki.voidlinux.org/Undervolting#Undervolting_the_CPU
- https://linustechtips.com/main/topic/932186-i7-7700hq-undervolt/
- https://www.reddit.com/r/overclocking/comments/9s21kr/need_help_undervolting_laptop_i77700hq/
zram en Arch¶
Interesante para cuando me crashea la compu con esos scripts horribles de R.
https://wiki.archlinux.org/index.php/Improving_performance#Zram_or_zswap
https://wiki.archlinux.org/index.php/Swap#systemd-swap
Layouts, Xmodmap y XKB¶
Se movio a proyectos/linux/keyboard-layouts
Filesystem¶
Para migrar home a otra particion https://askubuntu.com/questions/205841/how-do-i-mount-a-folder-from-another-partition
Para linkear carpetas de una particion a otra # mount --bind /media/tc1/folder /home/dvad/home $ genfstab / # nano /etc/fstab https://askubuntu.com/questions/205841/how-do-i-mount-a-folder-from-another-partition
EFI¶
Acá hay un par de versos sobre en qué punto se puede montar la partición EFI https://wiki.archlinux.org/index.php/EFI_System_Partition#Mount_the_partition
Ordenar mi UEFI toda la posta:
- https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/
- tool: https://wiki.archlinux.org/index.php/EFISTUB#efibootmgr
- https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr
Esquema:
- EFI system partition:
fat32
de512MB
. - Arch EFI partition:
fat32
de512MB
, montada en/efi
. Contiene:/efi/EFI/archGRUB/grubx64.efi
El bootloader de Arch se instaló en la partición EFI con:
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=archGRUB
La configuración de GRUB se instaló en /boot
con:
grub-mkconfig -o /boot/grub/grub.cfg
KDE¶
Para borrar meta-paquetes de KDE con juegos y eso, hice esto:
Printers¶
Las impresoras se pueden administrar a través de la web de CUPS. La gente usa eso general.
Con KDE se puede usar el menú de configuración en System Settings:
Para configurar una impresora con KDE, tuve que instalar system-config-printer
para evitar un error. Ver: https://bbs.archlinux.org/viewtopic.php?id=218143
Luego elegí configurarla por IP (ver foto). Había otras dos opciones para la misma impresora (que aparece varias veces en la lista).
Automatic screen rotation¶
yay -S iio-sensor-proxy-git kded-rotation-git
KDE global shortcuts config file¶
Setting a shortcut with Meta+Tab resulted in the Tab keypress being interpreted not as part of the shortcut definition, but as a normal "move to next menu item". This way i could not set a shortcut as a plain "Meta + Tab" to switch to another virtual desktop.
So mannually editing the configs file should work:
nano .config/kglobalshortcutsrc
Find the lines starting with Switch One Desktop
and edit them accodringly, for example:
Switch One Desktop Down=none,Meta+Ctrl+Down,Switch One Desktop Down
Switch One Desktop Up=none,Meta+Ctrl+Up,Switch One Desktop Up
Switch One Desktop to the Left=Meta+Shift+Tab,Meta+Ctrl+Left,Switch One Desktop to the Left
Switch One Desktop to the Right=Meta+Tab,Meta+Ctrl+Right,Switch One Desktop to the Right
Logitech MK470¶
Se movio a: proyectos/linux/keyboard-layouts
Stylus configuration¶
sudo pacman -S xf86-input-wacom kcm-wacomtablet
Lista de inputs:
xinput list
xsetwacom list devices
Para probar botones en xinput o xev:
xinput test 11 | grep -v motion # para ver el stylus
xinput test 17 | grep -v motion # para ver el eraser
xev -event button
xev devuelve, por defecto, un valor solamente para el segundo botón (desde la punta):
ButtonPress event, serial 40, synthetic NO, window 0x6400001,
root 0x1a0, subw 0x0, time 267011, (84,70), root:(1316,99),
state 0x0, button 2, same_screen YES
ButtonRelease event, serial 40, synthetic NO, window 0x6400001,
root 0x1a0, subw 0x0, time 267216, (88,72), root:(1320,101),
state 0x200, button 2, same_screen YES
xinput hace lo mismo, solo ve el botón de arriba (el más alejado de la punta del stylus).
Ni xev ni xinput detectan el botón de "eraser" como un input. Pero en Krita sucede que el "eraser" funciona: cuando se lo toca, cambia temporalmente a una herramienta que borra, mientras se lo mantenga apretado. Ni dea como funciona.
En Graphic Tablet settings de KDE se puede configurar la acción del "botón 2" que corresponde al botón más alejado. El botón 1 sería la punta del lápiz supongo y la acción del eraser no se puede cambiar desde ahí.
Para listar las opciones de configuración del stylus/eraser con xinput:
xinput list-props 11
xinput list-props 17
Para cambiar el eraser a right click con xsetwacom:
xsetwacom get "Wacom HID 50FB Pen eraser" Button 1 # por defecto es button +1
xsetwacom set "Wacom HID 50FB Pen eraser" Button 1 3 # right mouse button
xsetwacom set "Wacom HID 50FB Pen eraser" Button 1 2 # middle mouse button
xsetwacom set no es muy persistente.
A ver con xinput:
xinput --set-prop "Wacom HID 50FB Pen eraser" "button 1 action" --format=32 --type=int 1572874
Archivos de configuración¶
La wiki dice que edite 72-wacom-options.conf
pero ese archivo no existe. Están:
/usr/share/X11/xorg.conf.d/40-libinput.conf
/usr/share/X11/xorg.conf.d/70-wacom.conf
Según esto, no importa, así que se puede crear /etc/X11/xorg.conf.d/72-wacom-options.conf
Section "InputClass"
Identifier "local wacom tablet tweaks"
# Product to configure – supply your own product identifier.
MatchProduct "Wacom HID 50FB Pen eraser"
# Driver to use for this device.
# (Identical to the default, so not essential to mention.)
Driver "wacom"
# Configuration options: set button 1 (tip) to middle button
Option "Button1" "2"
EndSection
O bien:
Section "InputClass"
Identifier "WACOM OPTIONS pen"
MatchDriver "wacom"
MatchProduct "Pen"
NoMatchProduct "eraser"
NoMatchProduct "cursor"
EndSection
Section "InputClass"
Identifier "WACOM OPTIONS pad"
MatchDriver "wacom"
MatchProduct "Pad"
EndSection
Section "InputClass"
Identifier "WACOM OPTIONS eraser"
MatchDriver "wacom"
MatchProduct "eraser"
Option "Button1" "2"
EndSection
Section "InputClass"
Identifier "WACOM OPTIONS cursor"
MatchDriver "wacom"
MatchProduct "cursor"
EndSection
Botón bluetooth¶
El botón bluetooh funciona completamente por separado. Para probar si el botoncito bluetooth funciona:
sudo libinput debug-events
Al conectarlo por bluetooth dice:
-event21 DEVICE_ADDED Lenovo Active Pen2 Keyboard seat0 default group12 cap:k
-event21 DEVICE_REMOVED Lenovo Active Pen2 Keyboard seat0 default group12 cap:k
Mientras udevadm monitor
muestra esto cuando toco el botón:
KERNEL[1716.637734] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:7 (bluetooth)
UDEV [1716.642903] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:7 (bluetooth)
KERNEL[1717.899647] remove /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:7 (bluetooth)
UDEV [1717.902551] remove /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:7 (bluetooth)
Parece que el botón bluetooth no anda:
Y xinput test-xi2
no reacciona.
Lenovo Active Pen settings¶
xsetwacom set "Wacom HID 50FB Pen eraser" Button 1 2 # middle mouse button
- https://wiki.archlinux.org/index.php/wacom_tablet
- https://wiki.archlinux.org/index.php/Tablet_PC
- https://www.reddit.com/r/thinkpad/duplicates/do9c0z/thinkpad_yoga_260_on_linux_any_way_to_remap_the/
- http://debdeep777.blogspot.com/2017/09/using-the.html
- https://www.spinics.net/lists/linux-input/msg54195.html
- https://wiki.archlinux.org/index.php/wacom_tablet#Some_examples
- https://github.com/linuxwacom/xf86-input-wacom/wiki/Tablet-Configuration-1:-xsetwacom-and-xorg.conf
- https://askubuntu.com/questions/9242/how-do-i-change-xsetwacom-and-make-the-settings-stay-on-startup
- https://wiki.archlinux.org/index.php/wacom_tablet#Permanent_configuration
- https://github.com/linuxwacom/xf86-input-wacom/wiki/Button-action-properties
- https://github.com/linuxwacom/xf86-input-wacom/wiki/Bluetooth-Button
Wacom Tablet - map to one display only¶
Find the tablet name and display name:
xsetwacom --list
# Wacom HID 50FB Pen stylus id: 10 type: STYLUS
# Wacom HID 50FB Finger touch id: 11 type: TOUCH
# Wacom HID 50FB Pen eraser id: 18 type: ERASER
# Wacom Intuos S 2 Pad pad id: 20 type: PAD
# Wacom Intuos S 2 Pen stylus id: 21 type: STYLUS
Map the tablet to display DP1:
xsetwacom -v set "Wacom Intuos S 2 Pen stylus" MapToOutput DP1
Done!
Read: https://askubuntu.com/questions/852699/map-wacom-intuos-to-one-monitor
Touchpad¶
Arch configurar touchpad o=con libinput para que reconozca los "taps" https://wiki.archlinux.org/index.php/Libinput#Via_Xorg_configuration_file
Agregar a la sección de touchpad en /usr/share/X11/xorg.conf.d/40-libinput.conf la opción:
Option "Tapping" "on"
Y reiniciar X
Bluetooth¶
Ver: https://wiki.archlinux.org/title/Bluetooth
sudo pacman -S bluez bluez-utils pulseaudio-bluetooth [bluez-hid2hci]
sudo subl /etc/pulse/system.pa
Agregar:
### Load bluetooth modules
load-module module-bluetooth-policy
load-module module-bluetooth-discover
- https://bbs.archlinux.org/viewtopic.php?id=222083
- https://wiki.archlinux.org/index.php/bluetooth#Audio
- https://wiki.archlinux.org/index.php/bluetooth#Using_your_computer.27s_speakers_as_a_bluetooth_headset
- https://wiki.archlinux.org/index.php/Bluetooth_headset
- https://medium.com/@djorborn/bluetoothctl-failed-to-connect-org-bluez-error-failed-54040f12b4f8
- https://bbs.archlinux.org/viewtopic.php?id=230638
- https://unix.stackexchange.com/questions/508221/bluetooth-service-running-but-bluetoothctl-says-org-bluez-error-notready
Laptop as Bluetooth Speaker¶
Ver: https://unix.stackexchange.com/questions/205378/use-desktop-as-bluetooth-headset
sudo pacman -S bluez bluez-utils pulseaudio-bluetooth
sudo usermod -a -G pulseaudio $USER
sudo systemctl restart bluetooth
Despues de aparear bien, deberia andar de una!
Notas:
hciconfig
ya no existe, aunque hay un paquete en el AUR, no hace falta.- App de android (con bastante lag): https://play.google.com/store/apps/details?id=com.grace.microphone&hl=en&gl=US
Screencast¶
Con simple screen recorder, hay que apagar "vsync" en compositor settings para que no haya cosas raras en el video.
Me pasaba que al grabar aparecian y desaparecian muy rapidamente pedazos de otras ventanas o del fondo de pantalla.
Historia de carga de la batería¶
Ver: https://askubuntu.com/a/47346/655678
Proxy config¶
El archivo es ~/.config/kioslaverc
y contiene:
AutoResume=true
ProxyUrlDisplayFlags=7
[Proxy Settings]
NoProxyFor=web.whatsapp.com,192.168.0.1/16,192.168.10.155,192.168.11.171,157.92.39.145,192.168.12.185,192.168.11.237
Proxy Config Script=
ProxyType=0
ReversedException=false
ftpProxy=ftp://proxy.fcen.uba.ar:8080
httpProxy=http://proxy.fcen.uba.ar:8080
httpsProxy=http://proxy.fcen.uba.ar:8080
socksProxy=
Está así aunque en los settings esté deshabilitado el proxy (i.e. No Proxy
).
Automatizar cambios¶
Setup a crontab as regular user, using crontab -e
:
*/1 * * * * ~/Software/Scripts/change_proxy.sh
Crear un script en ~/Software/Scripts/change_proxy.sh
que contenga lo siguiente:
#!/bin/bash
# set crontab
# */1 * * * * ~/Software/Scripts/change_proxy.sh
LOGFILE="${HOME}/.config/wpa_cli_status.log"
UUID=`nmcli --fields UUID,DEVICE connection show --active | grep wlp1s0 | cut -d \ -f 1`
DATE=`date`
if [ "$UUID" = '' ]
then
echo "${DATE} No active WiFi network, leaving unchanged." > "$LOGFILE"
else
UUID=`cat /home/nicomic/.config/wpa_cli_status.txt | grep uuid | cut -d \= -f 2`
if [ $UUID = "50afbed1-b648-5948-8d74-492f54975c45" ]
then
echo "${DATE} We are connected to IFIBYNE's WiFi, enabling proxy." > "$LOGFILE"
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key ProxyType "1"
else
echo "${DATE} We are elsewhere, disabling proxy." > "$LOGFILE"
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key ProxyType "0"
fi
fi
Usando las notificaciones de KDE5:
#!/bin/bash
# set crontab
# */1 * * * * ~/Software/Scripts/change_proxy.sh
LOGFILE="${HOME}/.config/wpa_cli_status.log"
UUID=`nmcli --fields UUID,DEVICE connection show --active | grep wlp1s0 | cut -d \ -f 1`
DATE=`date`
if [ "$UUID" = '' ]
then
MESSAGE="${DATE} No active WiFi network, leaving unchanged."
else
# old stuff UUID=`cat /home/nicomic/.config/wpa_cli_status.txt | grep uuid | cut -d \= -f 2`
if [ $UUID = "50afbed1-b648-5948-8d74-492f54975c45" ] || [ $UUID = "9f981375-88b1-4e30-8403-55e01612137b" ]
then
MESSAGE="${DATE} We are connected to IFIBYNE's WiFi, enabling proxy."
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key ProxyType "1"
else
MESSAGE="${DATE} We are elsewhere, disabling proxy."
kwriteconfig5 --file kioslaverc --group 'Proxy Settings' --key ProxyType "0"
fi
fi
echo "${MESSAGE}" > "$LOGFILE"
notify-send "${MESSAGE}" -a "IFIBYNE proxy script" -i /usr/share/icons/breeze-dark/status/64/dialog-information.svg
La magia está en kwriteconfig5
y en el 1
al final.
1
significa use manually specified configuration que reside en~/.config/kioslaverc
0
significa deshabilitar el proxy.
Fuentes:
- https://askubuntu.com/questions/919215/how-can-i-extract-the-ssids-of-available-networks-using-the-nmcli-command
- https://askubuntu.com/questions/398581/is-there-a-terminal-command-to-verify-if-wifi-is-enabled
- https://bbs.archlinux.org/viewtopic.php?id=82391
- https://stackoverflow.com/questions/31375195/every-7-5-minutes-with-cron
- https://gulvi.com/serie/curso-programacion-bash/capitulo/if-else-bash
- https://unix.stackexchange.com/a/261871
- https://wiki.archlinux.org/index.php/Cron#Crontab_format
- https://askubuntu.com/questions/668782/check-security-mode-of-connected-wi-fi-network
- https://askubuntu.com/questions/282671/how-to-get-the-connected-wifi-network-ssid
- https://www.reddit.com/r/kde/comments/aezzjw/how_to_apply_systemsettings_with_commandline/
- https://stackoverflow.com/questions/48137501/how-to-setup-network-proxy-in-kde-desktop-system/52091049#52091049
- https://stackoverflow.com/questions/48137501/how-to-setup-network-proxy-in-kde-desktop-system
- http://patrick-nagel.net/scripts/kproxyswitch/kproxyswitch.sh
- https://forum.kde.org/viewtopic.php?f=66&t=119350
- https://forum.kde.org/viewtopic.php?f=18&t=128230
Video¶
Chromecast 2015 - Cast offline video¶
- https://www.reddit.com/r/htpc/comments/f7ld64/vlc_to_chromecast_doesnt_support_srt_subtitles_is/
- https://wiki.archlinux.org/index.php/VLC_media_player#Chromecast_support
- https://wiki.archlinux.org/index.php/Plex
Webcam virtual¶
sudo pacman -S v4l2loopback-dkms v4l-utils linux-headers
sudo modprobe v4l2loopback
ls -al /dev | grep -i video
ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -vf "hflip" -f v4l2 /dev/video2
- https://superuser.com/a/713100
- https://forum.manjaro.org/t/fatal-module-v4l2loopback-not-found-in-directory-lib-modules/142344/8
- https://wiki.archlinux.org/index.php/Webcam_setup#Invert_the_video_stream
- https://wiki.archlinux.org/index.php/Kernel_module
- https://github.com/umlaeute/v4l2loopback
- https://blog.jbrains.ca/permalink/using-obs-studio-as-a-virtual-cam-on-linux
- https://unix.stackexchange.com/questions/113893/how-do-i-find-out-which-process-is-using-my-v4l2-webcam
Con OBS¶
ls -al /dev | grep -i video
Compilar OBS con un patch... ver: https://blog.jbrains.ca/permalink/using-obs-studio-as-a-virtual-cam-on-linux
Canon EOS 200D y gphoto¶
En KDE funciona joya.
Tuve que instalar libgphoto2
y gphoto2
para poder bajar fotos.
Con kamera
se puede integrar la cámara a KDE (aunque no sé qué hace eso exactamente).
Con entangle
se puede sacar fotos con live preview! En la GUI hay atajos para cambiar el foco. La tecla a
se usa para accionar el autofoco, pero en mi caso eso hace que todo deje de funcionar.
Leer:
- https://wiki.archlinux.org/index.php/GPhoto
- https://entangle-photo.org/
- https://github.com/jesperpedersen/entangle
Cannon EOS 200D como webcam¶
Se puede!
Primero hay que instalar las cosas del loopback, ver comandos más arriba (en la parte de "webcam virtual").
Después correr:
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video2
Y en OBS se puede ver el resultado:
Los settings de gphoto tienen que configurarse de antemano para tener una buena imagen, no pude cambiarlos on-the-fly.
Por ejemplo:
gphoto2 --set-config iso=0
gphoto2 --set-config shutterspeed=34
En modo video hay control manual¶
Poniendo la perilla en modo video, y corriendo el mismo comando (lo copio a continuacion) se puede cambiar los settings desde la cámara: autofoco, región de foco, iso, shutterspeed, etc.
gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video2
Viene bien porque no lo estaba logrando controlar en el modo "cámara" normal.
Leer¶
- http://www.gphoto.org/doc/remote/
- https://stackoverflow.com/questions/44780991/no-element-ffmpegcolorspace-in-gstreamer
- https://stackoverflow.com/questions/10428814/gstreamer-missing-plugins
- https://wiki.archlinux.org/index.php/GStreamer
Audio¶
Pulseaudio¶
No se reproduce el audio/video¶
En 2022 se estuvo reemplazando pulseaudio por pipewire, y paquetes como kwin requirieron wireplumber (que interfiere con pulseaudio). Sin embargo pacman no reemplazó pulseaudio por otra cosa, y empezaron los problemas: no se reproducen cosas con audio, no podía cambiar de device, y cosas así.
La solución fue instalar pipewire-pulse
, reemplazando a pulseaudio
.
Me ayudó mientras tanto:
systemctl status --user pulseaudio
Chequear si dice algo raro, y correr:
systemctl restart --user pulseaudio
Monitorear inputs¶
pactl load-module module-loopback
pactl unload-module module-loopback
Refs:
- https://thelinuxexperiment.com/pulseaudio-monitoring-your-line-in-interface/
- https://unix.stackexchange.com/a/263275
Deshabilitar Automatic Gain Control (AGC)¶
Para las videollamadas por meet, esto es lo que jodía mi micrófono.
- https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Microphone_distorted_due_to_automatic_adjustment
- https://askubuntu.com/questions/279407/how-to-disable-microphone-from-auto-adjusting-its-input-volume/912502#912502
Pasar música en una videollamada¶
Ver: https://askubuntu.com/a/258369/655678
pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2
Mono audio output¶
Ver: https://askubuntu.com/questions/17791/can-i-downmix-stereo-audio-to-mono
$ pacmd list-sinks | grep name:
name: <alsa_output.usb-Focusrite_Scarlett_Solo_USB-00.analog-stereo>
name: <alsa_output.pci-0000_00_1f.3.analog-stereo>
$ pacmd load-module module-remap-sink sink_name=mono master=alsa_output.usb-Focusrite_Scarlett_Solo_USB-00.analog-stereo channels=2 channel_map=mono,mono
Y aparece un nuevo device en pulseaudio:
Audio de una ventana en OBS¶
https://obsproject.com/forum/threads/capture-single-pulseaudio-stream.35170/
pactl load-module module-null-sink sink_name="webstream_sink" sink_properties=device.description="web_stream"
pactl list short sinks
pactl load-module module-loopback source=webstream_sink.monitor sink=alsa_output.pci-0000_00_1f.3.analog-stereo rate=44100
Y en OBS:
JACK¶
Instalar y configurar¶
- https://wiki.archlinux.org/index.php/Professional_audio#JACK
- https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit
Hay dos "versiones" de jack
para instalar:
- jack
- jack2
Instalar Jack, Cadence, Ardour, etc.
# 2019
sudo pacman -S jack2 alsa-utils pulseaudio-jack cadence pavucontrol cpupower patchage alsa-plugins ardour
# 2020
sudo pacman -S jack2 python-dbus cadence pulseaudio-jack gst-plugins-good alsa-plugins pavucontrol cpupower
Para que funcione bien con pulseaudio
:
- Una opción es evitar que se inicie durante el arranque para que no tome el control sobre Jack: https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit#PulseAudio
- If you want both to play along, see: PulseAudio/Examples#PulseAudio through JACK. Ahí usan
jack2
,cadence
ypulseaudio-jack
. Recomiendan desinstalarqjackctl
. Avisan que esto usa más CPU.
The ALSA audio bridge should be set to ALSA -> PulseAudio -> JACK, and the PulseAudio bridge should be enabled.
Make sure in pavucontrol that all output devices besides Jack sink are muted, and all input devices besides Jack input are muted.
Start JACK using the Force Restart button, and if it starts successfully PulseAudio programs should begin outputting to JACK.
Para que funciones bien con ALSA:
To allow Alsa programs to play while jack is running you must install the jack plugin for alsa with
alsa-plugins
.
Para que funcione bien con GStreamer:
GStreamer requires the
gst-plugins-good
package to work with JACK
Jack GUI¶
https://wiki.archlinux.org/index.php/JACK_Audio_Connection_Kit#A_GUI-based_example_setup
sudo pacman -S jack2 python-dbus
sudo pacman -S cadence
También está qjackctl
pero no es recomendado por el tutorial de PulseAudio through Jack.
Guitarix¶
Metal!
https://sourceforge.net/p/guitarix/wiki/How_to_get_a_tone_that_rocks/
Scarlett Solo¶
Audio en Arch, configurando Scarlett Solo https://superuser.com/questions/626606/how-to-make-alsa-pick-a-preferred-sound-device-automatically
Muy piola reumen de paquetes para musica en linux https://wiki.archlinux.org/index.php/Professional_audio#Getting_Started
Temas de XRUNs https://askubuntu.com/questions/539406/how-to-avoid-xrun-callback-skips https://community.ardour.org/node/10663
Dejó de andar, y tuve que aplicar el fix por el tema del GDM. sudo mkdir -p ~gdm/.config/systemd/user sudo ln -s /dev/null ~gdm/.config/systemd/user/pulseaudio.socket
Monitorear el input de scarlett solo con pulseaudio https://askubuntu.com/questions/355082/pulseaudio-loopback-unload-audio-output-devices el único tema es que tiene alta latencia!
Instalar el kernel realtime linux-rt del AUR https://wiki.archlinux.org/index.php/Professional_audio#Realtime_Kernel https://wiki.archlinux.org/index.php/Realtime_kernel#Installation https://bbs.archlinux.org/viewtopic.php?id=191954 http://allanmcrae.com/2015/01/two-pgp-keyrings-for-package-management-in-arch-linux/
Parece que faltaba instalar "patch" https://bbs.archlinux.org/viewtopic.php?id=46248
Cambiar la prioridad (niceness) de un proceso existente con "renice" donde -20 es el máximo, 0 es el default y 19 el mínimo (en prioridad) https://www.nixtutor.com/linux/changing-priority-on-linux-processes/
Realtime Kernel¶
Yaourt hizo timeout esperando la contraseña después de compilar y hay que empezar de nuevo (qué estupidez) Mejor lo hago a mano y listo: https://wiki.linuxfoundation.org/realtime/start https://stackoverflow.com/questions/28136815/linux-kernel-how-to-obtain-a-particular-version-right-upto-sublevel https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-4.13.y&id=b762de8221691f3fabb3ea583ac777c0baea3641
Para compilar un kernel se puede usar varios cores con la opcion -j de make https://stackoverflow.com/questions/2499070/gnu-make-should-the-number-of-jobs-equal-the-number-of-cpu-cores-in-a-system https://wiki.archlinux.org/index.php/makepkg#Parallel_compilation
Hice git clone de acá https://aur.archlinux.org/packages/linux-rt/
Y las intrucciones de acá https://wiki.archlinux.org/index.php/Kernels/Arch_Build_System
Al principio estaba usando bastante CPU, pero después bajó a ~13% total (igual que cuando lo arranqué por yaourt) ¿no le dio bola a la opción -j4? ¿-j8 hubiera sido mejor?
Éxito! despues de editar la grub tengo casi nada de xruns.
Buscando "tolerable xruns" encontré un blog gracioso y útil que pone a punto su setup: "Enter: THE SCIENTIFIC METHOD" http://mountainbikesandtrombones.blogspot.com.ar/2012/03/problems-with-xrun.html https://wiki.archlinux.org/index.php/CPU_frequency_scaling#cpupower https://bbs.archlinux.org/viewtopic.php?id=201100 https://bbs.archlinux.org/viewtopic.php?id=159482
Instalé cpupower
le di systemctl enable ...
y las frecuencias pasaron de 800mhz a 3.47ghz :) Tengo dos governors: powersave y performance, tendré que cambiarlos manualmente o hacer un script:
sudo cpupower frequency-set -g performance
cpupower frequency-info
A fin de cuentas, sigo teniendo algunos xrun, pero también graba de corrido sin uno solo.
Bluetooth¶
Temas del Bluetooth https://wiki.archlinux.org/index.php/bluetooth#Configuration_with_a_graphical_front-end https://wiki.archlinux.org/index.php/Bluetooth_headset#A2DP_not_working_with_PulseAudio https://antergos.com/wiki/hardware/bluetooth/get-bluetooth-headphone-auto-connected-with-a2dp/
Para que funcionara el bluetooth: Ma faltaba instalar pulseaudio-bluetooth https://bbs.archlinux.org/viewtopic.php?id=222083 Y tuve que conectarme por bluetoothctl https://wiki.archlinux.org/index.php/Bluetooth_headset#A2DP_sink_profile_is_unavailable
Canon ESO 200D (Rebel SL2)¶
Instalé todo: sudo pacman -S libgphoto2 gphoto2 kamera digikam
Y finalmente al conectar la cámara pude bajar las fotos clickeando en la notificacion de KDE que decía "bajar fotos con digikam".
Antes configuré la Canon en los settings de KDE. No sé si eso influyó.
Nunca la pude "montar" o abrir en Dolphin.
Bajar fotos con cable USB:
- https://wiki.archlinux.org/title/GPhoto
- https://askubuntu.com/a/707989/655678
- https://askubuntu.com/a/1317989/655678
Java¶
Cambiar la versión de java que se usa por defecto:
archlinux-java status
sudo archlinux-java set java-8-openjdk/jre
sudo archlinux-java set java-11-openjdk
Ver: https://wiki.archlinux.org/index.php/Java
R y RStudio¶
Algunos paquetes requieren instalar cosas desde pacman:
sudo pacman -S imagemagick gsfonts # para magick, https://github.com/rstudio/r-system-requirements/pull/82
sudo pacman -S gcc-fortran tk libgit2
Si no están instalados ya, posiblemente sean importantes:
sudo pacman -S git base-devel openssh
Para V8
, que solo está en el AUR, se puede hacer esto: https://stackoverflow.com/a/63203853/11524079
# For Linux: download libv8 during installation
Sys.setenv(DOWNLOAD_STATIC_LIBV8=1)
install.packages("V8")