Solo intenté arrancar mi máquina en modo UEFI, pero recibí este mensaje:
el sistema no puede encontrar el controlador UEFI para los dispositivos de red adicionales [0x10D38086]
Estoy ejecutando Debian Linux, pero no estoy seguro de si eso es relevante. No estoy seguro de si mi sistema llegó a la parte de Linux.
Aquí está la salida relevante de lspci
mi tarjeta de red
0a: 00.0 Controlador Ethernet: Intel Corporation 82574L Conexión de red Gigabit
La placa base en sí es compatible con UEFI, creo. Aquí está la salida de dmidecode
para la placa base.
dmidecode --type 2
# dmidecode 2.12
SMBIOS 2.7 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: SABERTOOTH 990FX R2.0
Version: Rev 1.xx
Serial Number: 130309723501985
Asset Tag: To be filled by O.E.M.
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: To be filled by O.E.M.
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
boot
uefi
network-adapter
Faheem Mitha
fuente
fuente
Respuestas:
El problema aquí es que el firmware de su adaptador de red, o la ROM opcional , no es compatible con UEFI.
Una tarjeta adicional puede tener su propio código ejecutable para su uso en el entorno previo al arranque. El VBIOS en una tarjeta gráfica, que se usa para inicializar la GPU y mostrarlo en el momento del arranque, es un ejemplo de dicha ROM opcional. En una tarjeta de red, esto normalmente se usa para implementar PXE . UEFI normalmente 1 requiere que el firmware de la tarjeta contenga un controlador especialmente diseñado, pero su NIC se creó para sistemas BIOS heredados, por lo que no contiene ningún controlador de este tipo. Como tal, no funcionará en un sistema UEFI que no utilice el Módulo de compatibilidad de compatibilidad (la capa de compatibilidad de BIOS heredada) y deba actualizarse.
Profundizando, descubrí que el código provisto en el mensaje de error
0x10D38086
es la ID PCI de la tarjeta de red. 8086: 10D3 es el adaptador de escritorio Intel Gigabit CT .Una búsqueda de las descargas disponibles para esta tarjeta arrojó una actualización de firmware que se puede instalar en la NIC para actualizar la opción ROM para que sea compatible con UEFI. Descargue y extraiga
Preboot.tar.gz
y siga las instrucciones para actualizar el firmware. Según las notas de la versión , la opción ROM incluye controladores UEFI, que deberían corregir el error que está recibiendo.En su caso, actualice el
combo
firmware, que proporciona soporte UEFI y PXE:El mensaje que devuelve la utilidad simplemente indica qué funcionalidad proporciona el firmware existente. Se sobrescribirá durante el proceso flash; esto es normal.
Después de actualizar el firmware, reinicie el sistema en modo UEFI nativo y vea si funciona. De lo contrario, deberá reemplazar el adaptador de red.
Actualización: ha indicado en el chat que está recibiendo este error al intentar actualizar el firmware:
Parece que el programa flash de firmware requiere el controlador de depuración iQV (
iqvlinux
) para funcionar. El controlador se puede descargar aquí , pero deberá compilarlo y cargarlo usted mismo. Elinstall
script, que es una descarga por separado, es necesario para realizar la instalación; no solo extraiga el paquete del controlador y ejecútelomake
.1 Los controladores EFI también pueden estar en la partición del sistema EFI o en el firmware UEFI en la propia placa base. Sin embargo, para las tarjetas PCI y PCIe, generalmente se suministra en el firmware de la tarjeta.
fuente
bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB
. El mensaje dice: "La actualización de EFI elimina la funcionalidad PXE. ¿Desea continuar?" No sé exactamente qué significa esto.-up=combo
. De lo contrario, su tarjeta aparentemente solo admite una de estas funciones a la vez, no ambas, y deberá perder la función de arranque PXE para que la tarjeta arranque en un entorno UEFI.Gracias a @bwDraco por la útil respuesta.
Estoy agregando algunos detalles aquí sobre cómo se ve este proceso en la práctica.
Primero, descargué y desempaqué
Preboot.tar.gz
. Advertencia: esto no se descomprime en su propio directorio, así que cree primero un directorio para él.Tenga en cuenta que esta utilidad es compatible con varios sistemas operativos diferentes. Sin embargo, solo describiré cómo funciona en Linux, ya que no ejecuto nada más. La documentación principal para esta utilidad es
DOCS/Adapter_User_Guide.pdf
.La versión de Linux de esta utilidad son dos ejecutables binarios,
APPS/BootUtil/Linux_x64/bootutil64e
(64 bits) yAPPS/BootUtil/Linux32$ ls bootutil32
(32 bits). Y la documentación para bootutil esAPPS/BootUtil/Docs/bootutil.txt
.Entonces el archivo copiado
APPS/BootUtil/Linux_x64/bootutil64e
a/usr/local/bin
, si tuviera que hacerlo ejecutable en primer lugar. Cuando lo ejecuté, obtuveEsto requirió la descarga
iqvlinux.tar.gz
, que es un archivo de fuentes del módulo del kernel de Linux, desde https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/ .Nota: hay un rpm allí, pero intentar convertirlo en un deb parece bastante inútil. Y ni siquiera parece contener un binario, solo archivos de origen y encabezados. Esto no es obvio, pero también se necesita el
install
script en ese mismo directorio. Entonces correo similar al usuario (ejecutar un script extraño como root nunca es una buena idea), asegurándose de que
iqvlinux.tar.gz
esté en el mismo nivel que elinstall
script.Esto da la salida
Copiar el módulo del núcleo en su lugar a mano hace que el error desaparezca.
Antes de volver a flashear la tarjeta, esta es la salida de
bootutil64e
la tarjeta:Aquí está la transcripción de la sesión de la actualización. La opción combinada habilita las funciones PXE y UEFI. Tenga en cuenta que uno tiene que señalar la ubicación de la imagen de arranque con la
FILE
opción:fuente