wiki:n4d-hardware

Este plugin de N4D permite ejecutar scripts personalizados para entornos concretos de Hardware, arquitectura y versión del kernel. Aunque funciona como un servicio local, expone todos sus metodos por n4d para poder consultar y gestionar este servicio.

N4D hardware dispone de tres puntos donde ejecutar scripts, En el arranque, durante el autostart de la sesión gráfica y en el apagado.

  • Inicio: Se ejecuta en el momento que carga n4d, que aunque es pronto, para algunas tareas ya puede resultar tarde, como por ejemplo ajustar el Kernel Mode Setting. Por ahora no existe una solución aceptable a esto. Los scripts se dejan en /var/lib/n4d-hardware/boot.d/ y reciben los siguientes argumentos: [Nombre del Producto] [Numero de Serie] [Arquitectura] [Versión mayor del kernel] [Versión menor del kernel]
  • Xdg: Se ejecuta en el autostart cuando inicia la sesión de escritorio, los scripts se encuentran en /var/lib/n4d-hardware/xdg.d/ y reciben los siguientes argumentos: [Nombre del Producto] [Numero de Serie] [Arquitectura] [Versión mayor del kernel] [Versión menor del kernel] [Display X11]. En esta fase se comprueba mediante la variable de entorno DISPLAY, si estamos ejecutando una sesión X11 remota, y si es el caso, procede a invocar los scripts del cliente remoto.
  • Apagado: Se ejecuta cuando se cambia a los runlevel 0 o 6. La ruta de los scripts es /var/lib/n4d-hardware/shutdown.d/ y se reciben los mismos argumentos que en el inicio.

Caso de uso:

Tenemos un PC de la marca Acme, modelo Pro+ que no carga el módulo de sonido adecuado, pero esto solo sucede con kernel inferior al 4.0. Procedemos a crear el archivo: /var/lib/n4d-hardware/boot.d/10-acme.sh

#!/bin/sh

if [ $1 == "ACME_PRO_PLUS" ]; then
    if [ $4 == "3" ]; then
         echo "Loading intel audio driver"
         modprobe snd_hda_intel
    fi
fi

El script será llamado con unos argumentos similares a estos:

10-acme.sh ACME_PRO_PLUS 34D2E5A348FE 64bit 3 16

Para obtener el nombre del producto y su numero de serie, necesitamos tener instalados o bien, n4d-hardware o bien el paquete dmidecode.

Con la herramienta dmidecode ejecutaremos en una terminal lo siguiente:

sudo dmidecode --type 1

Lo que nos devolvera algo parecido a esto:

SMBIOS 2.7 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: ASUSTeK COMPUTER INC.
	Product Name: BM6AD_BM1AD_BP1AD
	Version: System Version
	Serial Number: E5PFCG00021R
	UUID: 724A562D-E6E0-B278-DA5D-40167E177907
	Wake-up Type: Power Switch
	SKU Number: All
	Family: Desktop

Con n4d-hardware instalado, podemos hacer lo siguiente:

n4d-client -h localhost -m get_product_name -c Hardware

o bien:

n4d-client -h localhost -m get_serial_number -c Hardware

Last modified 2 years ago Last modified on Jul 15, 2015, 1:47:46 PM