Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

29 de junio de 2024

Mis optimizaciones al instalar un sistema Linux

Anoto por aquí una serie de cosas a tener en cuenta al instalar un nuevo sistema Linux para optimizarlo todo lo posible: 

- Habilitar zram. En Debian instalo el paquete zram-tools y habilito el servicio zramswap.service en systemctl

- Usar noatime,nodiratime o relatime en los sistemas de ficheros de Linux para evitar escrituras innecesarias (/etc/fstab)

- Añadir los parámetros --disk-cache-dir=/dev/null --disk-cache-size=1 al arranque de Chrome / Chromium para deshabilitar la caché y evitar escrituras innecesarias en disco (/etc/chromium.d/default-flags).

- Establecer browser.cache.disk.enable=false en about:config de Firefox para deshabilitar la caché y evitar escrituras innecesarias en disco.

- Deshabilitar servicios innecesarios en systemctl.

- Deshabilitar ipv6 si no vamos a usarlo: 

  net.ipv6.conf.all.disable_ipv6 = 1 

  net.ipv6.conf.default.disable_ipv6 = 1 

  net.ipv6.conf.lo.disable_ipv6 = 1 

  net.ipv6.conf.tun0.disable_ipv6 = 1 

- Deshabilitar ipv6 en NetworkManager, ya que por defecto escucha en el puerto 546/udp:

 nmcli connection modify <nombre_conexion> ipv6.method ignore 

- Montar /tmp y /var/tmp como tmpfs

 

Etiquetas: , ,

22 de octubre de 2023

Aceleracion hardware en el navegador

Hay muchos artículos donde explican cómo habilitar la aceleración por hardware en el navegador pero no es tan sencillo encontrar la forma de consultar en los principales navegadores de Linux si la aceleración por hardware está funcionando por lo que dejo las URLs necesarias para Chrome / Chromium y Firefox:

Chrome / Chromium: chrome://gpu/

Firefox: about:support

En el caso de Chrome y derivados podemos consultar información interna sobre las reproducciones que estemos realizando, si por ejemplo estamos reproduciendo un vídeo en Youtube, abriendo otra pestaña con la URL chrome://media-internals/

Hay una lista de las URLs internas de Chrome y derivados para obtener todo tipo de información en https://beebom.com/chrome-urls/

Etiquetas: , , , , ,

2 de junio de 2023

Recargar configuración de Jenkins desde disco

Si hemos modificado alguna configuración de Jenkins o una tarea directamente accediendo a los ficheros en disco y queremos recargar esa configuración hay que hacerlo desde la Script Console ejecutando el siguiente comando:

Jenkins.instance.getAllItems(AbstractItem.class).each { it.doReload() }; 
No funcionará hacerlo de otra forma porque tanto la opción de recarga de configuración que ofrece Jenkins en la pantalla de administración como intentarlo con Jenkins-cli no produce el resultado esperado. Hay un bug en esta funcionalidad que sigue abierto en la URL https://issues.jenkins.io/browse/JENKINS-30870

Etiquetas: , ,

8 de junio de 2022

ModSecurity en Nginx Ingress Controller - Kubernetes

Para habilitar ModSecurity en una publicación concreta al usar Nginx Ingress Controller en Kubernetes hay que añadir las siguientes anotaciones:
nginx.ingress.kubernetes.io/enable-modsecurity: "true"
nginx.ingress.kubernetes.io/enable-owasp-core-rules: "true"
nginx.ingress.kubernetes.io/modsecurity-transaction-id: "$request_id"
nginx.ingress.kubernetes.io/modsecurity-snippet: |
  SecRuleEngine On

Fuente: ModSecurity with ingress-nginx

Etiquetas: , ,

10 de noviembre de 2014

Instalando adaptador Wifi MT7601U en Raspbian

Si has comprado un adaptador Wifi USB con chipset MT7601U, identificado como 148f:7601 al ejecutar lsusb, tienes que compilar el driver del fabricante si quieres hacerlo funcionar en Raspbian. La última versión del driver está en este enlace de la web del fabricante. Al compilar el driver probablemente te muestre un error al compilar el fichero rt_linux.o
/usr/src/linux-headers-3.12-1-common/scripts/Makefile.build:308: recipe for target '/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_linux.o' failed
make[4]: *** [/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/../../os/linux/rt_linux.o] Error 1
/usr/src/linux-headers-3.12-1-common/Makefile:1245: recipe for target '_module_/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux' failed
make[3]: *** [_module_/root/DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux] Error 2
Makefile:130: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.12-1-rpi'
Makefile:401: recipe for target 'LINUX' failed
make: *** [LINUX] Error 2

Según he encontrado en los foros de Ubuntu, el problema se soluciona cambiando en el fichero include/os/rt_linux.h del driver el tipo de dato de dos campos en la estructura _OS_FS_INFO_. Esta estructura está sobre la línea 280 del fichero include/os/rt_linux.h
typedef struct _OS_FS_INFO_
{
        int                             fsuid;
        int                             fsgid;
        mm_segment_t    fs;
} OS_FS_INFO;
Hay que cambiar el tipo de dato int por los que indico más abajo, guardar los cambios y ejecutar lo siguiente para recompilar: make clean && make && make install
typedef struct _OS_FS_INFO_
{
        kuid_t                             fsuid;
        kgid_t                             fsgid;
        mm_segment_t    fs;
} OS_FS_INFO;
El parche completo sería el siguiente:
--- include/os/rt_linux.h 2013-09-12 13:27:14.000000000 +0800
+++ include/os/rt_linux.h.patched 2014-03-23 11:45:03.907628847 +0800
@@ -279,8 +279,8 @@ typedef struct file* RTMP_OS_FD;
 
 typedef struct _OS_FS_INFO_
 {
- int    fsuid;
- int    fsgid;
+ kuid_t    fsuid;
+ kgid_t    fsgid;
  mm_segment_t fs;
 } OS_FS_INFO;
 
Fuentes: Can't compile driver for TP link WN727n v4 USB wireless adapter
Compiling MT7601U/RT2870 WiFi Driver in Fedora

Etiquetas: , , ,