%Instalación complementaria de Arch Linux en un RbPi

Instalación complementaria de Arch Linux en un RbPi

La instalación complementaria y de los drivers de la tarjeta wifi está basada en este vídeo y en las entradas fstab, Persistent block device naming y Autofs del wiki de Arch Linux.

Aquí suponemos que ha accedido a su sistema RbPi por una sesión remota de SSH mediante la interfaz Ethernet (que lo más probable es que el sistema use el designador eth0 para referirse a ella). La cuenta a la que deberá acceder es a root, con contraseña root, si no la ha cambiado. Deberá conocer la dirección MAC de la interfaz eth0 del RbPi. Si no la conoce, puede entrar en la configuración de su router y verla ahí. Una vez que la conozca, es aconsejable configurar el router para que asigne siempre una misma dirección IP a dicha dirección MAC. Así accederá por SSH a la misma dirección siempre; de lo contrario, tendría que buscar qué dirección IP tiene asignada su interfaz eth0 tras cada reinicio. También puede configurar un nombre, para acceder sin necesidad de escribir la dirección, en su fichero /etc/hosts (en el del ordenador desde el que establecerá la sesión remota por SSH con el RbPi).

Otro inconveniente para poder acceder por sesión de SSH es que, tras la instalación básica, la única cuenta que tiene en su sistema es root y viene deshabilitada la opción de acceder por SSH a la cuenta root del sistema. Así, pues, para habilitarla deberá editar /etc/ssh/sshd_config y, si tiene descomentado

PermitRootLogin without-password

cámbielo por

PermitRootLogin yes

Puede hacerlo también, si no tiene un teclado y pantalla donde conectarlo, montando la tarjeta microSD en su sistema.

Luego puede, bien reiniciar el sistema, o bien reiniciar el servidor SSH:

#? systemctl restart sshd.service

Una vez que ha accedido a su RbPi por SSH, lo primero que suelo hacer es copiar los ficheros de configuración de mi ordenador, en el directorio /home//Dropbox/Docuentos/rasp//:

#? scp -r /home/{{miUsuario}}/Dropbox/Documentos/rasp/ root@{{rbpiHostname}}-en0:/root/

Ahora actualice el RbPi. Una vez terminada la actualización, puede instalar los paquetes que siempre suele usar:

#? pacman -S vim vim-spell-en vim-spell-es vim-colorsamplerpack wpa_supplicant bash-completion sudo wget

Ahora puede introducir desde su RbPi el siguiente comando

#? cat /root/rasp/bashrc-add >> /etc/bash.bashrc
#? rm /root/rasp/bashrc-add

para añadir a /etc/bash.bashrc la configuración a mi gusto. También puede hacer lo mismo con el fichero de configuración global de Vim:

#? cat /root/rasp/vimrc-add >> /etc/vimrc
#? rm /root/rasp/vimrc-add

Ahora deberá reiniciar su RbPi. También puede, luego, si lo desea, eliminar los paquetes huérfanos que pueda tener, aunque es raro que tenga alguno justo tras instalar el sistema.

Luego, cambie los nombres de host. Como puede que haya comprobado, no se le permite usar acentos gráficos ahora mismo; no es que no lo permita el comando hostnamectl, sino que su shell aún no tiene configurada la entrada de teclado en español. También puede ahora configurar la fecha y la hora de su sistema. Ahora reinicie el sistema y comprobará que el prompt del shell mostrará el nuevo static hostname; ya no se llamará alarmpi, sino hostname.

Ahora debería cambiar el idioma a su gusto. Para ello, introduzca lo siguiente:

#? mv /root/rasp/locales/zfur_e{n,s}_* /usr/share/i18n/locales/

También deberá mover lo siguiente:

#? mv /root/rasp/keymap/zfur_es.map.gz /usr/share/kbd/keymaps/i386/qwerty/

Ahora edite /etc/locale.gen y descomente los locales que desea generar (es decir, elimine el # a su izquierda); en mi caso:

en_US.ISO-88591-1
en_US.UTF-8 UTF-8
es_ES.ISO-88591-1
es_ES.UTF-8 UTF-8
zfur_en_US.UTF-8 UTF-8
zfur_es_ES.UTF-8 UTF-8

Las entradas zfur_es_ES.UTF-8 UTF-8 y zfur_en_US.UTF-8 UTF-8 no se han descomentado, sino que he tenido que escribirlas, como es lógico. Ahora podrá generar los locales. Para ello, introduzca:

#? locale-gen

Ojo, debe usar siempre este comando para generar los locales nuevos; no vale con reiniciar.

Luego deberá establecer los locales, pero no como lo hizo antes, ahora deberá seleccionar el mapeado de teclas zfur_es, en lugar de es, tanto en el mapeado de teclas de la consola virtual (VC Keymap), como en el de la disposición en X11 (X11 Layout):

#? localectl set-locale LANG=en_US.utf8 LANGUAGE=en_US \
> LC_NUMERIC=zfur_es_ES.utf8 LC_TIME=es_ES.utf8 LC_MONETARY=zfur_es_ES.utf8 \
> LC_PAPER=es_ES.utf8 LC_NAME=es_ES.utf8 LC_ADDRESS=es_ES.utf8 \
> LC_TELEPHONE=es_ES.utf8 LC_MEASUREMENT=es_ES.utf8 LC_IDENTIFICATION=es_ES.utf8
#? localectl set-keymap zfur_es
#? localectl set-x11-keymap zfur_es

Debe ejecutar dos veces el comando para que VC Keymap acepte los el valor que desea usted. Deberá comprobar que ha realizado correctamente los cambios con el siguiente comando:

$ localectl status
System Locale: LANG=en_US.utf8
               LANGUAGE=en_US
               LC_NUMERIC=zfur_es_ES.utf8
               LC_TIME=es_ES.utf8
               LC_MONETARY=zfur_es_ES.utf8
               LC_PAPER=es_ES.utf8
               LC_NAME=es_ES.utf8
               LC_ADDRESS=es_ES.utf8
               LC_TELEPHONE=es_ES.utf8
               LC_MEASUREMENT=es_ES.utf8
               LC_IDENTIFICATION=es_ES.utf8
    VC Keymap: zfur_es
   X11 Layout: zfur_es

Reinicie ahora su RbPi (vea TKTK).

También puede sustituir ahora su fichero /etc/fstab por uno a su gusto:

#? mv /root/fstab /etc/fstab

Con el comando lsblk puede ver los nombres descriptores del kernel de las particiones de los dispositivos de almacenamiento de su sistema:

$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0 28.8G  0 disk
|- mmcblk0p1 179:1    0  100M  0 part /boot
|- mmcblk0p2 179:2    0    8G  0 part /
`- mmcblk0p3 179:3    0 20.7G  0 part

Esto es sólo un ejemplo; no tiene que coincidir con lo que le aparezca a usted. Ahora debe asignarle un sistema de ficheros a la partición que reservó para datos (si es que no lo hizo ya):

#? mkfs.ext4 /dev/mmcblk0p3

Si desea que, por ejemplo, el uso de la partición sea el de guardar copias de seguridad, cree primero un directorio llamado backups en el directorio personal del usuario (/home/username/); es aconsejable que lo haga con el usuario que ha creado antes, pues así será éste el propietario de dicho directorio y el grupo al que pertenezca será users; si no lo hace así, tendrá que cambiarlo luego. Ahora introduzca:

#? mount /dev/mmcblk0p3 /home/username/backups

Si desea que sea, por ejemplo, para descargar ficheros por BitTorrent, lo puede llamar downloads. No es del todo necesario que introduzca este último comando. Simplemente puede esperar a que se monte tras el reinicio que haga después de modificar /etc/fstab.

Si quiere que se monte automáticamente así siempre durante el arranque del sistema, deberá editar el fichero /etc/fstab y hacer que quede algo similar a esto:

# <filesystem>    <dir>   <type>  <options>   <dump>  <pass>
  /dev/mmcblk0p1  /boot   vfat    defaults    0       0
  /dev/mmcblk0p2  /       ext4    defaults    0       0
  /dev/mmcblk0p3  /home   ext4    defaults    0       2

También puede hacer que /etc/fstab tenga en la columna de la izquierda los identificadores únicos de los dispositivos, es decir, los UUIDs. Según dicen en la wiki de Arch Linux, es mejor. Ubuntu lo hace sin necesidad de tener que configurarlo. Para ello, primero vea los UUIDs de su sistema:

$ lsblk -f
NAME        FSTYPE LABEL UUID                                 MOUNTPOINT
mmcblk0
  mmcblk0p1 vfat         7E6C-040E                            /boot
  mmcblk0p2 ext4         c4779d91-211c-496f-9ce3-04eacd9c9592 /
  mmcblk0p3 ext4         d4e6f401-ef9e-4e61-998f-db45048978c8 /home

Éstos son los que aparecen en una de mis RbPi; en la suya deberán ser distintos los valores. Ahora, edite /etc/fstab y cambie los nombres descriptores del kernel por sus correspondientes UUIDs, sin olvidar poner UUID= a la izquierda, donde antes ponía /dev/. En mi ejemplo, sería

#
# /etc/fstab: static file system information
#
# <file system>                               <dir>   <type>  <options> <dump>  <pass>
  UUID=7E6C-040E                              /boot   vfat    defaults  0       0
  UUID=c4779d91-211c-496f-9ce3-04eacd9c9592   /       ext4    defaults  0       0
  UUID=d4e6f401-ef9e-4e61-998f-db45048978c8   /home   ext4    defaults  0       2

Ahora, deberá guardar el fichero, salir y reiniciar el sistema. Si no ha metido la pata, el sistema debería reiniciar correctamente. Algo que he advertido al hacer esto es que se crea un servicio nuevo de fsck (chequeo) de la unidad que tiene pass con valor 2. Otra cosa que sucede es que el directorio /home/username/backups/ (o el que haya creado), tras este reinicio, se ha vuelto propiedad de root y del grupo root. Si lo cambia, ya no volverá a dar este problema.

TKTKTKTKTK Ahora debe configurar el automontado de sistemas de ficheros. Deberá instalar primero el pquete Autofs:

man -S autofs ------------- Creo que se puede también con systemd. Sería cuestión de dar la opción automount a la entrada correspondiente

TKTKTKTKTKTKTKTKTK

Si va a instalar algún entorno de escritorio en su sistema, no tiene que seguir los pasos que se explican aquí, pues la instalación de dicho entorno lo hará por usted. Sin embargo, si desea no tener un entorno de escritorio porque desea usar su equipo para un propósito muy específico y no desea que consuma más recursos de los justos y necesarios, tendrá que seguir las explicaciones que se dan aquí. En mi caso, prefiero que los equipos que uso para un propósito muy específico no tengan configurado el montaje de dispositivos de almacenamiento por USB; en caso de que lo desee en algún caso concreto, haré manualmente el montado. Otra cosa es configurar el montado de alguna unidad por NFS o CIFS. Para esto, puede ver ésto.

Creo que ahora sería un buen momento de cambiar la contraseña de root. Para ello, deberá introducir

#? passwd

Se le pedirá entonces dos veces que introduzca la contraseña nueva.

Ahora puede crear los grupos que desee (vea Crear un grupo nuevo). El único que a veces necesito y no viene de serie es kodi; los demás, como power, wheel, etc., vienen de serie en Arch Linux.

También puede crear una cuenta de usuario ahora, si lo desea (vea Crear una cuenta de usuario. Es conveniente que el grupo principal al que pertenezca el usuario sea users y también hago que pertenezca a los grupos wheel y power:

#? useradd -m -g users -G wheel,power,ftp,audio,video,storage,network -k /etc/skel/ -s /bin/bash username

Ahora lo que suelo hacer es crear al usuario ctafur con permisos de administración que se los voy dando con Polkit. Una vez que le he dado los permisos necesarios, lo usaré para configurar el sistema. El usuario alarm viene de forma predeterminada. Este usuario será el que use para el uso normal del sistema. Eso sí, lo añadiré también a algunos de los grupos, como power, ftp, audio, video y storage.

También deberá crear una contraseña para dicho usuario:

#? passwd username

Se le pedirá dos veces que introduzca la contraseña que desea.

Si desea poder emplear el comando #? para poder dar privilegios de administración a ciertos usuarios, tendrá que instalar el paquete sudo:

#? pacman -S sudo

Una vez instalado sudo, deberá editar el fichero /etc/sudoers, pero éste es un fichero especial y debe editarlo con el comando visudo, que, entre otras cosas, impide que varios usuarios puedan editar dicho fichero al mismo tiempo; porque, recuerde, Linux es multiusuario en todas sus versiones; tampoco se le permitiría editar /etc/sudoers desde root si no cambia los permisos de dicho fichero. Para ello, deberá usar el comando:

#? visudo

Una vez dentro, descomente (elimine el símbolo de almohadilla (#) de) la última línea del listado siguiente:

##
## User privilege specification
##
#%wheel ALL=(ALL) ALL

Si también lo desea, puede dar privilegios de forma individual a los usuarios añadiendo lo siguiente:

username ALL=(ALL) ALL

Pero yo prefiero dar privilegios añadiéndolos al grupo wheel; así es más rápido. Otra cosa que suelo hacer es dar privilegios a los usuarios del grupo power para que puedan apagar, reiniciar y suspender el sistema sin que se les pida que introduzcan su contraseña. Para ello, añada a la última línea lo siguiente:

%power hostname=(ALL) NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot

Una vez habilitado sudo, es aconsejable configurar varias cosas en /etc/bash.bashrc. Una es cambiar el tipo de terminal; la otra, la creación de algunos alias. Para ello, necesitará añadir lo suguiente al fichero /etc/bash.bashrc:

set -o vi
TERM=xterm-256color
alias l2='ls -lah'
alias rboot2='sudo systemctl reboot'
alias pwoff2='sudo systemctl poweroff'
alias hlt2='sudo systemctl halt'

Tras reiniciar, podrá usar estos comandos y podrá también usar la funcionalidad tab completion con ellos. Intenté introducir, también, alias ls='ls --color=auto' para que también se mostrara con colores los resultados del comando ls para root, pero no funcionaba. Aun así, pensándolo bien, creo que es buena idea que se diferencie visualmente lo que hago como root, así que lo dejaré así. Para comprobar que su terminal tiene ahora 256 colores, puede introducir el comando:

$ tput colors

También podría crear configuraciones personalizadas para cada usuario, creando y/o modificando el fichero /home/username/.bashrc.

Creo que es bueno que ahora reinicie el sistema. A partir de ahora, es preferible hacer las cosas desde el usuario username en lugar de desde root, por seguridad. Aunque aquí vea el prompt #?, lo único que quiere decir es que el comando debe ejecutarse con privilegios que normalmente no tiene un usuario no administrador. Podría ejecutarlos desde una sesión de usuario precediéndolos de sudo. Así que lo mejor es reiniciar el sistema y entrar por sesión de SSH con el usuario username.

También suelo instalar Vim, es decir, Vi Improved. Para ello, basta con introducir:

#? pacman -S vim vim-spell-en vim-spell-es vim-colorsamplerpack

Luego, modifique el fichero de configuración global de Vim para todo el sistema. Dicho fichero es /etc/vimrc. En éste, añada lo siguiente:

syntax on
set encoding=utf8
set fileencoding=utf8
set textwidth=112
set tabstop=2
set softtabstop=2
set ai shiftwidth=2
set t_Co=256
set expandtab
colorscheme xoria256

Ésta es la configuración que suelo usar. Si quiere ver qué hace cada línea, puede buscar en internet. También podría crear un fichero de configuración distinto para cada usuario, al igual que se dijo antes para la configuración de BASH. En tal caso, debería crear el fichero /home/username/.vimrc y añadir las configuraciones que desee para el usuario username.

Otro paquete que puede venir bien instalar es base-devel, pero tampoco es tan necesario; depende de la función a la que quiera asignar el sistema:

#? pacman -S base-devel

Una vez instalado, sería conveniente reiniciar el sistema. El reinicio, lógicamente, terminará la sesión de SSH y tendrá que volver a entrar.