Afinando Arch Linux en una Lenovo Thinkpad

Las Thinkpad en general tienen muy buena compatibilidad con Linux; sin embargo, en esta entrada voy a resumir algunos detalles que hay que tener en cuenta para explotar este nivel de compatibilidad. En la entrada anterior relate los cambios que fui haciendo a nivel de hardware en una Thinkpad T440p, además de ella, soy el feliz propietario de una mini colección de la serie X, donde tengo una X220, X230 y una X240. Así que los trucos y tips que pondré aquí en general aplican a cualquier equipo. Los específicos para estos modelos estarán al final de la guía.

No pretendo hacer una guía tampoco de como instalar Arch Linux, pues para ello está la documentación oficial que es muy completa, o bien, acá una guía de It’s FOSS bastante completa también.

Instalando yay

yay es un excelente asistente para el AUR escrito en go y su única dependencia aparte del lenguaje en si y de git que necesitamos para descargarlo, es pacman. Esto suele ser lo primero que pongo en una instalación de Arch Linux. Instalarlo es tan sencillo como clonarlo de su repositorio y luego crear el paquete:

$ sudo pacman -S git
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

Actualización del BIOS

El BIOS suele ser una de esas partes de la que uno se olvida en una PC bajo la premisa: «si funciona, no lo toques». Lo cierto es que uno se acuerda del BIOS cuando da algún problema o necesita habilitar o deshabilitar ciertas características. Al momento de escribir esta guía, la última versión para la T440p es la 2.55 publicada en mayo 2020. Para la X220, la última versión es la 1.46 publicada en junio 2018. Para la X230, la última versión es la 2.77 publicada en octubre 2019. Para la X240, la última versión es la 2.49 publicada en abril 2020.

Para actualizar el BIOS desde Arch Linux y cualquier distro en general, requeriremos un script llamado geteltorito que extrae la imagen del archivo ISO y que luego podremos volcar a nuestro pendrive para instalar. Instalarla es tan simple como:

$ yay -S geteltorito

A continuación podremos extraer la imagen de arranque del ISO y luego volcarla al pendrive USB.

$ geteltorito.pl iso-original.iso > img-extraido.img
$ sudo dd if=img-extraido.img of=/dev/sdX bs=512K

Al reiniciar la PC, presionando F12 podremos acceder al menú de arranque y seleccionamos el pendrive USB para actualizar el BIOS. El proceso producirá algunos reinicios.

Ajustes al BIOS

Los ajustes que mencionaré están dirigidos a deshabilitar ciertas características innecesarias, activar otras útiles y en general optimizar el proceso de arranque.

  • Deshabilitar Computrace: Security > Anti-Theft > Computrace (es un backdoor potencial, que realmente desconozco si funciona o no en distros Linux, he leído opiniones a favor y en contra), también, por está misma línea deshabilitar Intel (R) AT Module Activation.
  • Deshabilitar wake on LAN: Config > Network > Wake On LAN, UEFI IPv4 and IPv6
  • Habilitar las teclas de función: Config > Keyboard/Mouse > F1-F12 as Primary Function
  • Deshabilitar Intel Rapid Start: Config > Power > Intel (R) Rapid Start
  • Deshabilitar Intel AMT Control: Config > Intel (R) AMT-Intel (R) AMT Control
  • Habilitar Secure Boot en modo estándar: Security > Secure Boot verificar siempre que está activo el modo «Standard Mode»

Gestión de energía

La gestión energética es un punto importante para la movilidad de un equipo portátil. En el mundo del software libre contamos con tlp que gestiona todos los aspectos que tienen que ver con la energía y potencia del equipo. Instalarlo en Arch Linux es tan sencillo como:

$ yay -S tlp

Lo siguiente que suelo editar son los límites de carga de la batería. La peor situación en la que se puede encontrar una batería es cuando esta completamente cargada y cuando esta casi completamente vacía. Estas son las dos situaciones de estrés más importantes para una batería y que impactan más en su vida útil. Las baterías son felices entre 40 y 80% de carga, así que con tlp podemos hacer que empiece a cargar la batería al llegar al 40% de carga y detener la carga en otro porcentaje.

Para lograr esto vamos a editar el archivo /etc/tlp.conf y editamos dos variables:

START_CHARGE_THRESH_BAT0=40
STOP_CHARGE_THRESH_BAT0=90

Una vez hecho esto, podemos configurar tlp en el arranque

$ sudo systemctl start tlp
$ sudo systemctl enable tlp

Podemos verificar estos parámetros de la batería con el comando tlp-stat -b. En el ejemplo siguiente, verán la salida actual del comando usando la X230.

--- TLP 1.3.1 --------------------------------------------

+++ Battery Features: Charge Thresholds and Recalibrate
natacpi    = active (data, thresholds)
tpacpi-bat = active (recalibrate)
tp-smapi   = inactive (ThinkPad not supported)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = LGC
/sys/class/power_supply/BAT0/model_name                     = 45N1029
/sys/class/power_supply/BAT0/cycle_count                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  93240 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  94190 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  75770 [mWh]
/sys/class/power_supply/BAT0/power_now                      =  33660 [mW]
/sys/class/power_supply/BAT0/status                         = Charging

/sys/class/power_supply/BAT0/charge_start_threshold         =     40 [%]
/sys/class/power_supply/BAT0/charge_stop_threshold          =     90 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0

Charge                                                      =   80.4 [%]
Capacity                                                    =  101.0 [%]

Un detalle importante aquí, sobre todo con modelos oscuros y antiguos que emanan un poder ancestral, es que necesitaremos el módulo tp_smapi, esto va sobre todo con la X220 (procesadores Sandy Bridge o anteriores). Para habilitar tp_smapi solo necesitamos instalarlo, ya que al reiniciar el kernel se encargará de cargarlo automáticamente. De la serie xx30 (procesadores Ivy Bridge o superiores) en adelante no es necesario este módulo.

$ yay -S tp_smapi

tlp provee muchas opciones de monitoreo, tanto del procesador, discos duros, tarjetas gráficas, temperatura y todas ellas pueden ser modificadas a través del archivo /etc/tlp.conf.

Ajustes SSD

Las unidades SSD por lo general funcionan bien en Linux, pero podemos afinar aún más su funcionamiento usando trim. Está utilidad marca los bloques para borrado y ejecuta una sola operación una vez a la semana evitando así que se escriban y muevan datos cada vez que se borra algo, de manera tal que mejoran la vida útil de las unidades SSD. Para activarlo debemos instalar antes el paquete util-linux, luego solo es cuestión de activar el servicio usando systemd.

$ sudo systemctl start fstrim.timer
$ sudo systemctl enable fstrim.timer

Hasta aquí estos ajustes aplican a cualquier instalación de Arch Linux en una laptop, con el detalle particular que los ajustes de batería en tlp solo aplican a las Thinkpads. Ahora veamos algunos ajustes específicos para ciertos modelos.

Seguridad con ufw

Hay aspectos fundamentales en la seguridad que debemos cubrir y este consejo es para cualquier distro. Para mí, que ingreso remotamente a cada rato a servidores y computadoras en casa, es importante SSH. Suele ser el único puerto abierto en mis laptop a menos que necesite algún servicio en específico.

Las reglas básicas para mí serían deshabilitar cualquier conexión entrante, habilitar todas las salientes y abrir el puerto dónde esté SSH.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
$ sudo ufw allow ssh
$ sudo ufw enable

Esto es lo básico, más básico. Fuera de esto uso LUKS para mis particiones encriptadas y endurecer así más el acceso a mi instalación de Arch Linux y mis archivos, fail2ban para cuando hay algunos necios que desean intentar fuerza bruta.

Bugs & workarounds

No sé hasta que puntos son bugs, pero aquí dejo constancia de como he solucionado algunos problemas que han sido comunes en más de un modelo Thinkpad.

Entradas de audio en OBS Studio

A veces gestiono y modero reuniones, conferencias y actividades de educación médica continua usando Jitsi y OBS Studio. La primera vez que utilice OBS Studio en Arch Linux no tenía manera de capturar audio a través del micrófono porque no se mostraba entrada alguna. La solución vino «matando» el proceso pulseaudio, eliminando su configuración y luego reiniciando pulseaudio, luego de esto, no he vuelto a tener problemas.

$ killall pulseaudio
$ mv .config/pulse .config/pulse.old
$ systemctl --user start pulseaudio
$ systemctl --user enable pulseaudio

Este problema me ocurrió tanto en la T440p como en la X230.

T440p – Ajustes de sonido

La salida de sonido por defecto en la T440p es la salida HDMI, lo cual es incorrecto. Luego de instalar alsa-utils, podemos abrir alsamixer y presionamos F6 y veremos qué la tarjeta 0 es HDA Intel HDMI.

Salidas de alsamixer

Para corregir este comportamiento, crearemos un archivo .asoundrc en nuestro directorio /home/usuario con el siguiente contenido:

defaults.ctl.card 1
defaults.pcm.card 1

Esto obliga a la distro a emplear por defecto la interfaz HDA Intel PCM.

X240 – Ajustes de sonido

Al igual que como ocurre con la T440p, en la X240 hay un problema bastante parecido.


avatar
Moisés Serrano Samudio Médico de atención primaria, fotógrafo aficionado, apasionado de las tecnologías relacionadas con el EdTech y el eHealth y diseñador/desarrollador de sitios web de salud. Médico, apasionado del EdTech/eHealth y diseñador/desarrollador de sitios web de salud.

Entradas relacionadas

  1. Aún no hay comentarios...

Deja una respuesta

Su email no será publicado. Required fields are marked *