Hace un tiempo que me instalé una Debian en mi portátil. Pero como este trasto HP Pavilion x360 es un poco especialito no me dejaba configurar la tarjeta de red inalámbrica. Y la verdad me ha costado que a pesar de que sí que aparecía al buscar con comandos como
# dmesg
O
# lspci -vnn | grep -i 14e4
Al menos estos los tuve que lanzar unas cuantas veces.
También están los distintos drivers e historias que tiene Debian en su repositorio. Eso sí, hay que acordarse antes de poner en el fichero /etc/apt/sources.list el parámetro non-free a la ristra de los que ya tiene la url del repositorio.
deb http://url contrib ... non-free
Y con
# apt-cache search broadcom
Instalar los paquetes adecuados. Ahora mismo no los tengo a mano pero eran algunos como broadcom-sta-dkms, broadcom-sta-source, firmware-43-installer o similares. Al final el que te dirá qué módulos te pueden funcionar para tu tarjeta es el comando lspci en la sección Kernel driver in use (aunque realmente no es del todo cierto).
El driver que en mi caso me ocupaba era wl. Pero buscando tanto en los logs como en dmesg o incluso ejecutando
# modprobe -vv wl
No había manera de que funcionara. Es más, en este último caso me devolvía un error. Por cierto, para el que no lo sepa, las "v" son para que devuelva más información. Un posible error que me salía (he tenido que buscar el ejemplo ya que no lo documenté):
modprobe: ERROR: could not insert 'wl': Required key not availablemodprobe: ERROR:../libkmod/libkmod-module.c:977 command_do() Error running install command for wl
modprobe: ERROR: could not insert 'wl': Operation not permitted
No recuerdo si era con modprobe, pero sí buscando en resultados del dmesg o journal una línea muy interesante:
Kernel is locked down from Kernel configuration; see man kernel_lockdown.7
Esto viene a querer decir que si se tiene activado el arranque seguro y el driver no está firmado no se podrá instalar. ¿Solución? Los hay que tiran por la calle de en medio: "deshabilita el arranque seguro". Pero hay otra solución. Crear un certificado de firma, instalarlo en la máquina y después firmar el driver.
¿Cómo creo que certificado de firma?
Me encontré un tutorial bastante interesante en la pregunta de un foro en ITecTec. Y la verdad es que funcionó mucho mejor de lo que esperaba. Pero antes de nada conecta la máquina con un cable de red, actualiza todo el sistema y asegúrate de que tienes instalado linux-headers. Al menos en algún punto me suena que los instalé. Repasando algunas rutas estoy viendo que es muy posible que instalara build-essential y linux-headers-generic. Ya contaré esto último más adelante. Antes de que empieces con lo siguiente: más adelante te tocará preparar un script porque el driver dejará de funcionar cada vez que se actualice el kernel.
Vete a una carpeta. En mi caso hice con el usuario root directamente.
- Situate en una carpeta fácil y créate una en la que vas a crear los certificados. Por seguir ele ejemplo: module-signing.
- # mkdir module-signing
- Entra dentro de la carpeta:
- # cd module-signing
- Ahora crearemos nuestro certificado de firma:
- # openssl req -new -x509 -newkey rsa:2048 -keyout mok.priv -outform DER -out mok.der -nodes -days 36500 -subj "/CN=Nombre/"
- Le reasignamos los permisos para que sólo tenga lectura por parte del propietario:
- # chmod 600 mok.priv
- Con la herramienta mokutil nos pedirán asignar una contraseña que (parece ser) apenas se usará un par de veces y con esto se instalará el certificado en algún punto de la UEFI:
- # mokutil --import /rutaCompletaCertificados/mok.der
- Una vez hayas introducido la contraseña apaga la máquina. ¿No te sale el grub por defecto? Tendrás que vigilarlo y hacer lo que siempre hagas para que te aparezca. De todas formas, en este paso debería de aparecerte en la pantalla un menú que nunca has visto. Había un pequeño paso adicional que no indican en el ejemplo y no me acuerdo cuál. Pero una selección por descarte. ¡Ah! Los teclados externos podrían no funcionar.
- Presionar cualquier tecla cuando te lo pidan si quieres acceder al MOK.
- Selecciona "Enroll MOK"
- Selecciona "Continuar" o "Continue"
- Me suena que en mi caso salió por aquí ese otro paso.
- Seleccionar "Yes" o "Sí".
- Introducir la contraseña del certificado.
- Aceptar para continuar el arranque. Recuerda: si no te suele salir el grub, es posible que te arranque el sistema por defecto y tengas que arrancar tu Linux como siempre lo hagas.
- Ahora puedes firmar el módulo en cuestrión:
- /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /rutaCompletaCertificados/mok.priv /rutaCompletaCertificados/mok.der /rutaCompletaMódulo
- pci=biosirq
- acpi_osi= (tal cual. Así es como lo ponían en la página donde lo encontré)