Deshabilitar /ASPM/ en /BIOS/ /ProDesk 400 G5 Desktop Mini/ desde /GNU/Linux/ utilizando =hp-repsetup=

· osiux's blog

.org | .md | .gmi | .html

El módulo del Kernel r8169 para las placas de red Realtek RTL8111/8168/8411 tienen soporte para ASPM (Active State Power Management), pero el mismo presenta inconvenientes que terminan por congelar e incluso hasta reiniciar el equipo, por ello es necesario deshabilitar desde la BIOS la Administración de energía de estado activo.

Existen 3 maneras posibles de realizar esta tarea:

A. Deshabilitar manualmente desde la BIOS.

B. Deshabilitar desde USB utilizando la Instalación replicada.

C. Deshabilitar desde GNU/Linux utilizando hp-repsetup.

En breve voy a crear un rol de ansible para automatizar el deshabilitar ASPM y también establecer otros ajustes de BIOS desde AWX garantizando que todos los equipos queden con la misma configuración.

# [A] Deshabilitar ASPM manualmente

encendido*/

# [B] Deshabilitar ASPM mediante Instalación replicada

Es posible generar una copia en USB de los ajustes de BIOS de un equipo y luego restaurarlos en otros equipos.

Antes de continuar, deshabilitar ASPM como se indica en el paso [A]

dispositivo USB*/

La copia de seguridad de los ajustes actuales de BIOS se almacenan en un archivo HpSetup.txt (en formato UTF-16) en el dispositivo USB.

Para restaurar los ajustes desde un dispositivo (previamente guardados), es necesario seleccionar en el menú Principal la opción Instalación Replicada, insertar el dispositivo USB y luego ir a la opción Restaurar los ajustes actuales desde un dispositivo USB.

salir*/

# [C] Deshabilitar ASPM desde GNU/Linux utilizando hp-repsetup

HP provee una serie de herramientas de consola para interactuar con la BIOS de los equipos ProDesk 400 G5 Desktop Mini.

Tener en cuenta que estas utilidades son experimentales y sin garantía:

DISCLAIMER OF WARRANTY

The following software: 'hp-flash' and 'hp-repsetup' are experimental
and is provided as a courtesy, free of charge, "AS-IS" by HP Development Company, L.P.
HP shall have no obligation to maintain or support this software.
HP MAKES NO EXPRESS OR IMPLIED WARRANTY OF ANY KIND REGARDING THIS
SOFTWARE INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. HP SHALL NOT BE LIABLE
FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
WHETHER BASED ON CONTRACT, TORT OR ANY OTHER LEGAL THEORY, IN CONNECTION
WITH OR ARISING OUT OF THE FURNISHING, PERFORMANCE OR USE OF THIS SOFTWARE.

# Descargar sp111455.tgz

En el FTP público de HP estan disponibles las tools necesarias en sp111455.tgz

1wget https://ftp.hp.com/pub/softpaq/sp111001-111500/sp111455.tgz
2

# Descomprimir sp111455.tgz

 1tar xvf sp111455.tgz
 2
 3-rwxrwxrwx 0/0          172890 2020-08-07 16:00 docs/HP Linux Tools Readme.pdf
 4-rwxrwxrwx 0/0          117825 2020-08-07 16:00 docs/HP Linux Tools Readme.rtf
 5-rwxrwxrwx 0/0           12913 2020-08-07 16:00 docs/HP Linux Tools Readme.txt
 6-rwxrwxrwx 0/0          130077 2020-08-07 16:00 non-rpms/hp-flash-3.21_x86_64.tgz
 7-rwxrwxrwx 0/0           12828 2020-08-07 16:00 non-rpms/hpuefi-mod-3.03.tgz
 8-rwxrwxrwx 0/0            2404 2020-08-07 16:00 README.txt
 9-rwxrwxrwx 0/0           19964 2020-08-07 16:00 rpms/hp-flash-3.21-1.rh610.x86_64.rpm
10-rwxrwxrwx 0/0           19956 2020-08-07 16:00 rpms/hp-flash-3.21-1.rh70.x86_64.rpm
11-rwxrwxrwx 0/0           21181 2020-08-07 16:00 rpms/hp-flash-3.21-1.rh80.x86_64.rpm
12-rwxrwxrwx 0/0           20605 2020-08-07 16:00 rpms/hp-flash-3.21-1.sled12.x86_64.rpm
13-rwxrwxrwx 0/0           20793 2020-08-07 16:00 rpms/hp-flash-3.21-1.sled15.x86_64.rpm
14-rwxrwxrwx 0/0           17336 2020-08-07 16:00 rpms/hpuefi-mod-3.03-1.src.rpm
15

# Descomprimir hpuefi-mod-3.03.tgz

 1tar xvzf hpuefi-mod-3.03.tgz
 2
 3drwxr-xr-x user/user         0 2020-08-07 20:04 hpuefi-mod-3.03/
 4-rw-r--r-- user/user      1756 2020-08-07 15:00 hpuefi-mod-3.03/README
 5-rw-r--r-- user/user        75 2020-08-07 15:00 hpuefi-mod-3.03/mkdevhpuefi
 6-rw-r--r-- user/user     18092 2020-08-07 15:00 hpuefi-mod-3.03/COPYING
 7-rw-r--r-- user/user     22466 2020-08-07 15:00 hpuefi-mod-3.03/hpuefi.c
 8-rw-r--r-- user/user       445 2020-08-07 20:04 hpuefi-mod-3.03/Makefile
 9-rw-r--r-- user/user      1800 2020-08-07 15:00 hpuefi-mod-3.03/hpuefi.h
10

# Descomprimir hp-flash-3.21_x86_64.tgz

 1cd non-rpms
 2
 3tar xvf hp-flash-3.21_x86_64.tgz
 4
 5drwxr-xr-x user/user         0 2020-08-17 15:00 hp-flash-3.21_x86_64/
 6drwxrwxr-x user/user         0 2020-08-17 15:00 hp-flash-3.21_x86_64/docs/
 7-rw-r--r-- user/user      5973 2020-08-17 15:00 hp-flash-3.21_x86_64/docs/hp-flash-README
 8-rw-r--r-- user/user      7139 2020-08-17 15:00 hp-flash-3.21_x86_64/docs/hp-repsetup-README
 9drwxrwxr-x user/user         0 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/
10-rwxrwxr-x user/user     32336 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.u2004
11-rwxrwxr-x user/user     32520 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.u2004
12-rwxr-xr-x user/user     28327 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.sled12
13-rwxrwxr-x user/user     26800 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.rh80
14-rwxrwxr-x user/user     28040 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.u1804
15-rwxrwxr-x user/user     23717 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.rh610
16-rwxrwxr-x user/user     24335 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.rh70
17-rwxrwxr-x user/user     24384 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.u1604
18-rwxrwxr-x user/user     24712 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.u1604
19-rwxr-xr-x user/user     32752 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.sled12
20-rwxrwxr-x user/user     31224 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.rh80
21-rwxr-xr-x user/user     28112 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.sled15
22-rwxr-xr-x user/user      3189 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/test-distro.sh
23-rwxrwxr-x user/user     24680 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.rh70
24-rwxr-xr-x user/user     32512 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.sled15
25-rwxrwxr-x user/user     23388 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-repsetup.rh610
26-rwxrwxr-x user/user     28224 2020-08-17 15:00 hp-flash-3.21_x86_64/builds/hp-flash.u1804
27-rwxr-xr-x user/user       807 2020-08-17 15:00 hp-flash-3.21_x86_64/install.sh
28-rwxr-xr-x user/user      1674 2020-08-17 15:00 hp-flash-3.21_x86_64/hp-flash
29drwxrwxr-x user/user         0 2020-08-17 15:00 hp-flash-3.21_x86_64/bin/
30-rwxr-xr-x user/user      1677 2020-08-17 15:00 hp-flash-3.21_x86_64/hp-repsetup
31

# Compilar e instalar módulo de kernel hpuefi

Es necesario contar con los headers del kernel actual y las herramientas básicas de compilación

 1apt install build-essential
 2
 3apt install linux-headers-$(uname -r)
 4
 5cd non-rpms/hpuefi-mod-3.03
 6
 7make
 8
 9make -C /lib/modules/4.15.0-106-generic/build M=/home/ansible/non-rpms/hpuefi-mod-3.03 modules
10make[1]: se entra en el directorio '/usr/src/linux-headers-4.15.0-106-generic'
11CC [M]  /home/ansible/non-rpms/hpuefi-mod-3.03/hpuefi.o
12Building modules, stage 2.
13MODPOST 1 modules
14CC      /home/ansible/non-rpms/hpuefi-mod-3.03/hpuefi.mod.o
15LD [M]  /home/ansible/non-rpms/hpuefi-mod-3.03/hpuefi.ko
16make[1]: se sale del directorio '/usr/src/linux-headers-4.15.0-106-generic'
17
18make install
19
20install -D -m 0644 hpuefi.ko /lib/modules/4.15.0-106-generic/kernel/drivers/hpuefi/hpuefi.ko
21depmod
22install -D -m 0744 mkdevhpuefi /lib/modules/4.15.0-106-generic/kernel/drivers/hpuefi
23
24modprobe hpuefi
25
26lsmod | grep hpuefi
27
28hpuefi                 16384  0
29
30chmod +x mkdevhpuefi
31
32./mkdevhpuefi
33
34ls -l /dev/hpuefi
35
36crw-r--r-- 1 root root 240, 0 sep  7 10:55 /dev/hpuefi
37

# Obtener ajustes BIOS y verificar estado ASPM

1cd non-rpms/hp-flash-3.21_x86_64/builds
2
3./hp-repsetup.u1804 -a -g | grep -A2 'PCI Express Power Management'
4
5PCI Express Power Management
6*Disable
7Enable
8

# Obtener ajustes BIOS en archivo HPSETUP.TXT

1./hp-repsetup.u1804 -g
2
3ls -lht HPSETUP.TXT
4
5-rw-r--r-- 1 root root 20K sep  7 11:03 HPSETUP.TXT
6

# Establecer ajustes BIOS desde archivo HPSETUP.TXT

Para utilizar hp-repsetup para establecer valores desde un archivo, es conveniente ajustar los valores de la BIOS manualmente y luego obtenerlos usando hp-repsetup.

Al establecer los valores de BIOS desde un archivo HPSETUP.TXT se informarán con Access Denied los ajustes que no estan permitidos cambiar y que son propios de cada equipo:

 1./hp-repsetup.u1804 -s HPSETUP.TXT
 2
 3HP Replicated Setup Utility for Linux v3.21, 08/07/2020
 4(c) Copyright 2020 HP Development Company, L.P.
 5
 6Errors were encountered when programming the following settings:
 7Secure Erase Hard Disk Serial Number(Access Denied)
 8Secure Erase Hard Disk Model Number(Access Denied)
 9Secure Erase Completion Date(Access Denied)
10Secure Erase Completion Status(Access Denied)
11Feature Byte(Access Denied)
12Build ID(Access Denied)
13Remote HP PC Hardware Diagnostics Last Execution Time Stamp(Access Denied)
14Product Name(Access Denied)
15Serial Number(Access Denied)
16SKU Number(Access Denied)
17Universally Unique Identifier (UUID)(Access Denied)
18UUID (standard format)(Access Denied)
19System Board CT Number(Access Denied)
20Product Family(Access Denied)
21HP_Disk0MapForUefiBootOrder(Access Denied)
22Memory Size(Access Denied)
23System BIOS Version(Access Denied)
24BIOS Build Version(Access Denied)
25ME Firmware Version(Access Denied)
26ME Firmware Mode(Access Denied)
27Audio Controller(Access Denied)
28Video BIOS Version(Access Denied)
29Reference Code Revision(Access Denied)
30Super I/O Firmware Version(Access Denied)
31Born On Date(Access Denied)
32System Board ID(Access Denied)
33

Para que se apliquen los cambios es necesario reiniciar:

1reboot
2

# Identificar placa de red utilizando lspci

lspci | grep Realtek

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

# Verificar estado de ASPM utilizando lspci

En caso de estar deshabilitado se muestra ASPM L1 Enabled:

1lspci -vv -s 02:00.0 | grep 'LnkCtl: ASPM'
2
3LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
4

En caso de estar deshabilitado se muestra ASPM Disabled:

1lspci -vv -s 02:00.0 | grep 'LnkCtl: ASPM'
2LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+

# ChangeLog