컴퓨터가 UEFI 모드에서 부팅을 거부합니다-Intel Gigabit 네트워크 카드에 대한 오류가 발생합니다


9

UEFI 모드에서 머신을 부팅하려고했지만 다음과 같은 메시지가 나타납니다.

시스템이 추가 네트워크 장치 용 UEFI 드라이버를 찾을 수 없음 [0x10D38086]

데비안 리눅스를 사용하고 있지만 관련이 있는지 확실하지 않습니다. 내 시스템이 Linux 부분에 있는지 확실하지 않습니다.

lspci내 네트워크 카드에 대한 관련 출력은 다음과 같습니다.

0a : 00.0 이더넷 컨트롤러 : Intel Corporation 82574L 기가비트 네트워크 연결

마더 보드 자체가 UEFI를 지원한다고 생각합니다. 다음은 dmidecode마더 보드 의 출력입니다 .

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

이 질문은 이 대화 토론 의 후속 조치 입니다.
bwDraco 2016 년

답변:


19

여기서 문제는 네트워크 어댑터의 펌웨어 또는 옵션 ROM 이 UEFI를 지원하지 않는다는 것입니다.

애드온 카드에는 사전 부트 환경에서 사용하기위한 자체 실행 코드가있을 수 있습니다. GPU를 초기화하고 부팅시 표시하는 데 사용되는 그래픽 카드의 VBIOS는 이러한 옵션 ROM의 예입니다. 네트워크 카드에서는 일반적으로 PXE 를 구현하는 데 사용됩니다 . UEFI는 일반적으로 1 의 카드 펌웨어에 특수 제작 된 드라이버가 포함되어 있어야하지만 NIC는 레거시 BIOS 시스템 용으로 만들어 졌으므로 그러한 드라이버는 포함되어 있지 않습니다. 따라서 호환성 지원 모듈 (레거시 BIOS 호환성 계층)을 사용하지 않고 업데이트해야하는 UEFI 시스템에서는 작동하지 않습니다.

더 깊이 파고 들자 오류 메시지에 제공된 코드 0x10D38086가 네트워크 카드의 PCI ID 라는 것을 알았습니다 . 8086 : 10D3은 인텔 기가비트 CT 데스크탑 어댑터 입니다.

이 카드에 사용 가능한 다운로드를 검색 하면 NIC에 설치하여 UEFI를 지원하도록 옵션 ROM을 업데이트 할 수 있는 펌웨어 업데이트가 나타 났습니다. Preboot.tar.gz펌웨어를 업데이트하려면 지침을 다운로드하여 추출한 후 따르십시오. 당 릴리스 노트 , 옵션 ROM은 당신이 받고있는 오류를 수정해야 UEFI 드라이버가 포함되어 있습니다.

귀하의 경우, comboUEFI 및 PXE 지원을 제공 하는 펌웨어를 플래시하십시오 .

bootutil64e -up=combo -all -FILE=BootIMG.FLB

유틸리티가 반환하는 메시지는 기존 펌웨어가 제공하는 기능을 단순히 나타냅니다. 플래시 프로세스 중에 덮어 씁니다. 이것은 정상입니다.

펌웨어를 플래시 한 후 시스템을 기본 UEFI 모드로 재부팅하고 작동하는지 확인하십시오. 그렇지 않은 경우 네트워크 어댑터를 교체해야합니다.


업데이트 : 채팅 에서 펌웨어를 플래시하는 동안이 오류가 발생 했음을 표시했습니다 .

Connection to QV driver failed - please reinstall it!

펌웨어 플래시 프로그램이 작동하려면 iQV 디버그 드라이버 ( iqvlinux)가 필요합니다. 드라이버는 여기 에서 다운로드 할 수 있지만 드라이버를 직접 컴파일하고로드해야합니다. install별도로 다운로드 스크립트는 설치를 수행 할 필요가있다; 드라이버 패키지를 추출하고 실행하지 마십시오 make.


1 EFI 드라이버는 EFI 시스템 파티션 또는 마더 보드 자체의 UEFI 펌웨어에도있을 수 있습니다. 그러나 PCI 및 PCIe 카드의 경우 일반적으로 카드의 펌웨어에 제공됩니다.


1
이 링크는 최소한 약간의 관련성이 있습니다 -federicofr.wordpress.com/2011/07/01/…
Faheem Mitha

나는 갈거야 bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB. "EFI를 업데이트하면 PXE 기능이 제거됩니다. 계속 하시겠습니까?"라는 메시지가 나타납니다. 이것이 무엇을 의미하는지 정확히 모르겠습니다.
Faheem Mitha 2016 년

얻는 측정치는 현재 펌웨어가 PXE 기능을 제공하고 EFI 기능을 제공하는 펌웨어로 덮어 쓰여지고 있음을 나타냅니다. PXE를 잃지 않도록 둘 다 포함시킬 수 있습니다. 시도하십시오 -up=combo. 그렇지 않으면, 카드는 한 번에 두 가지 기능 중 하나만 지원하며, UEFI 환경에서 카드를 부팅하려면 PXE 부팅 기능을 잃어야합니다.
bwDraco

어쨌든 UEFI가 PXE를 대체하지 않습니까? 마찬가지로 UEFI는 네트워크 드라이버가있는 경우 네트워크에서 부팅 파일을로드 할 수 있습니다.
Zan Lynx

1
bwDraco의 도움으로 네트워크 카드에 UEFI 펌웨어가 생겼습니다. UEFI 부팅을 데비안 설치 프로그램과 함께 사용하려면 마지막 단계입니다. 내 Asus MB (SABERTOOTH 990FX R2.0)에서 보안 부팅에는 OS 설정이 있습니다. Windows에서 "기타 OS"로 전환했으며 설치 프로그램이 UEFI 모드로 부팅됩니다. 그 전에는 조용히 실패했습니다.
Faheem Mitha

2

유용한 답변을 주신 @bwDraco에게 감사드립니다.

이 프로세스가 실제로 어떻게 보이는지에 대한 세부 정보를 여기에 추가하고 있습니다.

먼저 다운로드하여 압축을 풉니 다 Preboot.tar.gz. 경고-이것은 자체 디렉토리에 압축을 풀지 않으므로 먼저 디렉토리를 작성하십시오.

이 유틸리티는 다양한 운영 체제를 지원합니다. 그러나 다른 것을 실행하지 않기 때문에 Linux에서 작동하는 방식 만 설명합니다. 이 유틸리티의 기본 설명서는 DOCS/Adapter_User_Guide.pdf입니다.

이 유틸리티의 Linux 버전은 2 개의 이진 실행 파일 APPS/BootUtil/Linux_x64/bootutil64e(64 비트) 및 APPS/BootUtil/Linux32$ ls bootutil32(32 비트)입니다. bootutil에 대한 설명서는 APPS/BootUtil/Docs/bootutil.txt입니다.

그런 다음 파일 APPS/BootUtil/Linux_x64/bootutil64e을에 복사 /usr/local/bin했지만 먼저 실행 파일을 만들어야했습니다. 내가 달렸을 때

root@orwell:/home/faheem# bootutil64e -?
Connection to QV driver failed - please reinstall it!

그런 다음 https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/iqvlinux.tar.gz 에서 Linux 커널 모듈 소스 아카이브 인 다운로드가 필요했습니다 .

참고 : rpm이 있지만 deb로 변환하려고하면 희망이 없습니다. 그리고 바이너리 파일을 포함하지 않고 소스 파일과 헤더 만 포함합니다. 이것은 분명하지 않지만 install동일한 디렉토리에 스크립트가 필요합니다 . 그런 다음 실행

sh install

또는 사용자와 비슷하지만 (루트로 이상한 스크립트를 실행하는 것은 좋은 생각이 아닙니다) 스크립트 iqvlinux.tar.gz와 동일한 수준 인지 확인하십시오 install.

이것은 출력을 제공합니다

faheem@orwell:/usr/local/src/iqvlinux$ sh install
Extracting archive..OK!
make: Entering directory '/usr/local/src/iqvlinux/iqvlinux/src/linux/driver'
make -C /lib/modules/3.16.0-4-amd64/build SUBDIRS=/usr/local/src/iqvlinux/iqvlinux/src/linux/driver modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
  CC [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/nalioctldrv.o
  CC [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxnaldriver.o
  CC [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdriveros_i.o
  CC [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdriverpci_i.o
  CC [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdriverdevice_i.o
  CC [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdrivermemory_i.o
  LD [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.mod.o
  LD [M]  /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.ko
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
make: Leaving directory '/usr/local/src/iqvlinux/iqvlinux/src/linux/driver'
Skipping removing QV driver - it does not exist...
Copying iqvlinux.ko driver file to /lib/modules directory...cp: cannot create regular file ‘/lib/modules/3.16.0-4-amd64/kernel/drivers/net/iqvlinux.ko’: Permission denied                                                                                                                                                  
Error: failed to copy driver (‘/usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.ko’ -> ‘/lib/modules/3.16.0-4-amd64/kernel/drivers/net/iqvlinux.ko’)

커널 모듈을 직접 복사하면 오류가 사라집니다.

카드를 다시 플래시하기 전에 카드의 출력입니다 bootutil64e.

Port Network Address Location Series  WOL Flash Firmware                Version
==== =============== ======== ======= === ============================= =======
  1   001B213916B9    10:00.0 Gigabit YES PXE                           1.3.21

다음은 다시 깜박이는 세션 내용입니다. 콤보 옵션은 PXE 및 UEFI 기능을 모두 활성화합니다. 다음 FILE옵션 을 사용하여 부팅 이미지의 위치를 ​​가리켜 야합니다 .

root@orwell:/home/faheem# bootutil64e -up=combo -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB

Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.6.39.1
Copyright (C) 2003-2017 Intel Corporation

Programming flash on port 1 with flash firmware image
Create restore image of NIC 1 before proceeding? (Y)es or (N)o: Y
Y

Saving flash firmware image on port 1 to file 10D34008.FLB...
Filename 10D34008.FLB already exists.
(O)verwrite/proceed or (S)top execution?: O
O
saved

Updating PXE+EFI removes PXE functionality.
Would you like to continue? (Y)es or (N)o: Y
Y
/
Flash update successful

Port Network Address Location Series  WOL Flash Firmware                Version
==== =============== ======== ======= === ============================= =======
  1   001B213916B9    10:00.0 Gigabit YES UEFI,PXE Enabled              1.5.84

이것이 귀하의 질문에 어떻게 대답합니까? 또한 질문으로 편집해야 할 정보가 아닌 것 같습니다. 이것을 정렬하지 않으면이 비 응답이 삭제됩니다.
DavidPostill

@DavidPostill 원하는 결과를 얻기 위해해야 ​​할 일의 사본입니다. 그리고 나는 그것을 작성하지 않았습니다.
Faheem Mitha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.