UEFI / BIOS에서 작동 할 때 USB가 Linux에서 작동하지 않는 이유는 무엇입니까?


31

배경을 위해 다음과 같은 최신 하드웨어로 새로운 기계를 만들었습니다.

  • AMD FX-8350
  • 기가 바이트 GA-990FXA-UD3 마더 보드
  • 16GB RAM
  • NVidia GTX 650 Ti
  • 킹스턴 SSD

이를 감안할 때 SSD에 다양한 버전의 Linux를 설치하려고 시도했으며 거의 ​​매번 실패했습니다. USB 썸 드라이브에서 Arch, Debian 안정, Debian sid 및 Ubuntu 12.10을 설치하려고 시도했지만 BIOS가 USB 드라이브를보고 부팅하는 동안 OS가 USB 장치를 열거하려고 시도하자마자 모든 USB 기능을 잃어 버렸습니다. (부팅 장치 포함).

결국 DVD를 굽고 SSD에 Ubuntu 12.10을 설치했습니다. American Megatrends UEFI / BIOS에서는 내 USB 키보드 및 마우스가 제대로 작동합니다. Live Ubuntu DVD의 사전 설치 메뉴에 있어도 키보드가 제대로 작동합니다.

Linux가 부팅 되 자마자 (Live DVD 또는 SSD에서) 모든 USB 기능이 손실되고 PS / 2 키보드를 통해서만 OS를 탐색 할 수 있습니다.

dmesg / syslog에 보이는 것은 " failed to load microcode amd_ucode/microcode_amd_fam15h.bin" 에 관한 몇 줄이며 USB 장치가 초기화되지 않는 것을 볼 수 있습니다.

내가하면 lsusb모든 USB 호스트 컨트롤러를 볼 수 있지만 장치는 없습니다. 이렇게 lspci내가 기대했던 나에게 모든 하드웨어 보여줍니다. 그리고 lsmodI를 수행하면 USB 모듈이로드되지 않습니다 ( usb_ehci예 :) .

noapic커널 부팅 문자열로 전달하려고 시도했지만 이 문제에는 영향을 미치지 않았습니다.

마더 보드는 USB 3.0을 지원하지만 일반 USB 2.0 포트에 연결 한 모든 장치는 지원합니다.

나는 리눅스 에서 USB (그리고 내 온보드 네트워크 카드)를 죽이거나 막을 수있는 것에 대해 당황스럽게 생각 합니다. BIOS에서 작동하는 이러한 장치에는 아무런 문제가없는 것 같으며 테스트 및 작동 여부를 확인할 수있는 Windows 설치가 없습니다.

이미 마더 보드를 한 번 RMA했지만 두 번째 보드는 정확히 동일한 동작을 수행하므로 하드웨어 오류를 안전하게 배제 할 수 있다고 생각합니다 (동작이 동일하기 때문에 동일하게 결함이있는 보드 2 개를 얻을 확률이 없다고 생각합니다) 이것이 리눅스 문제 일 가능성보다 크다).

USB를 사용하려고 시도 할 수있는 또 다른 것은 무엇입니까 (그리고 이상적으로는 네트워크이지만 현재는 USB를 사용하겠습니다)?

편집 # 1 :

네트워킹이 없기 때문에 dmesg여기서 흥미로운 부분 만 관련시킬 수 있습니다.

관심이있는 dmesg것은 11 개의 USB 호스트 컨트롤러 (OHCI, EHCI 및 xHCI)가 있음을 알 수 있습니다. USB 장치를 감지 한 후 다음과 같이 즉시 실패합니다.

usb 3-1: new high-speed USB device number 2 using ehci_hcd
usb 3-1: device descriptor read/64, error -32

이는 OHCI 컨트롤러로 폴백 할 때까지 숫자가 증가하고 다른 USB 호스트 컨트롤러를 여러 번 반복하여 실패하지만 추가 메시지가 표시됩니다.

usb 8-1: device not accepting address 4, error -32

내 네트워킹 문제는 라우터에서 IPv6을 사용하도록 설정하지 않았기 때문에 문제와 관련이 있다고 생각합니다.

eth1: no IPv6 routers present

편집 # 2 :

lspci -vvv내 네트워크 어댑터 (온보드 및 확장 모두)가 Realtek Semiconductor (놀랍지 않음)임을 보여줍니다. RTL8111 / 8168B 및 RTL8169 / 8110 각각 내 USB 컨트롤러는 Etron Technology EJ168 (xHCI) 및 AMD nee ATI SB7x0 / SB8x0 / SB9x0 (EHCI & OHCI)입니다.

이제 씩씩 거리는 데비안을 실행하는 modprobe프로그램이 usb_common, usbcore, xhci_hcd, ehci_hcd, 및 ohci_hcd모든로드 기능.


마이크로 코드 로딩에 실패한 것이 특이한 것 같습니다. 마더 보드가 아직 지원되지 않거나 마이크로 코드 패키지가없는 것으로 생각하고 있습니다.
TNW

이 CPU가 오래 동안 사용되어 마이크로 코드를 업데이트하는 패키지가 있기 때문에 문제가 사라질 수 있습니다 ( butterflyofdream.wordpress.com/2012/09/10/… ). 그러나 USB가 BIOS에서 문제없이 작동 할 때 Linux에서 USB가 작동하지 못하게하는 방법이 궁금합니다. 또한 네트워크 장치가 연결되지 않는 이유를 알 수있을 때까지 패치를 적용 할 수 없습니다 (추가 카드로 오늘 밤에이를 배제 할 수는 있음).
BrionS

1
오히려 그 반대의 경우가 이상하다고 말하고 싶습니다. 마더 보드의 모든 것을 지원해야하는 BIOS 작동 해야 합니다. 리눅스는 그렇지 않습니다. BIOS는 종종 그래픽 카드 용 VBE와 같은 간단한 방식으로 장치를 지원하지만 대신 일반 GPU 드라이버를 사용하지는 않습니다.
TNW

그렇다면 리눅스가 리눅스 커널에서 (더 나은) 지원 될 때까지 BIOS가 USB와 네트워크 컨트롤러의 장치를 BIOS가 관리하게 할 수있는 방법이 있습니까?
BrionS

나는 그렇게 생각하지 않습니다. BIOS를 통해 모든 장치에 액세스 한 시절은 오래 전에 지나갔습니다. 그러나 문제가 드라이버 부족으로 인한 것임을 확신 할 수 없습니다. 당신은 아무것도에 관심이 되었습니까 dmesg로 시도, modprobeUSB 관련 모듈을?
TNW

답변:


25

ubuntuforums.org 에서이 스레드 ( http://ubuntuforums.org/showthread.php?t=2114055 ) 의 답변을 찾았습니다 .

최신 기가 바이트 메인 보드에서는 (적어도) IOMMU Controller기본적으로 비활성화되어 있으며 그것이 무엇인지에 대한 힌트 나 표시를 제공하지 않는 BIOS 옵션 이 있습니다.

이 설정을 활성화하고 "매직"으로 재부팅하면 64 비트 Linux OS에서 모든 USB 및 네트워킹 문제가 복원됩니다 (어떤 문제는 중요하지 않음).

나는 그것이 간단한 수정을 오랫동안 찾는 것이라고 충격을 받았다.

여러분의 도움과 제안에 감사드립니다. 다른 사람들이 도움이 되길 바랍니다.

업데이트 : 현재 BIOS 설정에 IOMMU 컨트롤러 외에도 XHCI Handoff 및 EHCI Handoff 활성화가 포함되어 있음을 추가하고 싶습니다. 다른 사람들도 이것을 언급했으며이 두 핸드 오프를 활성화하면 USB 3.0 포트가 예상대로 작동 할 수 있습니다.


1
IOMMU를 켠 경우에도 내부 USB 3 포트를 모두 비활성화했습니다. 또한 이전에는 이더넷 포트에 문제가 있었지만 IOMMU를 켜면 문제가 해결되었습니다.
로비

USB 3.0 포트를 수정하기 위해 xHCI Handoff를 활성화하려고 했습니까?
스튜어트 P. 벤틀리

@ StuartP.Bentley 예 xHCI 및 eHCI 핸드 오프 설정과 IOMMU 컨트롤러가 활성화되어 있습니다. 이렇게하면 USB 3.0 포트가 활성화되지만 어떤 이유로 든 USB 키보드가 BIOS 또는 그럽 화면에서 작동하지는 않지만 USB 마우스는 작동하지 않습니다 (그림 참조). BIOS로 부팅하기 위해 두 번째 PS / 2 스타일 키보드를 연결했습니다.
BrionS

더 있습니다. 모든 우분투 프로그램을 살펴보면 IOMMU DIS 가능 부트 로더 설정 ( "iommu = soft")이 권장 됩니다. GB 990FXA-UD3은 기본적으로 활성화되어 있으며 외부 USB3 허브를 사용할 수 없습니다. 하단 라인 : 문제가 해결되지 않을 수 있습니다. 그렇지 않은 경우 인터넷 검색을 계속하십시오.
Bruce

USB2.0에서 최상의 성능을 얻으려면 BIOS에서 EHCI 핸드 오프를 비활성화 상태로 두는 것이 좋습니다.
Marc.2377

5

GA-990FXA-UD7을 사용하여 USB 2.0 및 USB 3.0 컨트롤러와 온보드 이더넷 컨트롤러가 Linux에서 제대로 작동하려면 (Mint 17.1을 사용하고 있음) BIOS에서 다음 설정이 필요하다는 것을 알았습니다.

  • xHCI 핸드 오프-사용
  • EHCI 핸드 오프-활성화
  • IOMMU 컨트롤러-사용

UEFI를 비활성화하고 모든 부팅 옵션을 "레거시 만"으로 변경하는 것을 잊지 마십시오.

> 2.2TB 용량의 HDD로 부팅해야하는 경우 다른 문제가있을 수 있습니다.

내 부트 드라이브에 256GB SSD를 사용하고 / home에 mdadm을 사용하여 RAID 1 (미러링 된) 어레이에서 3TB HDD 쌍을 사용하고 있으며 모두 제대로 작동합니다.

기가 바이트 보드와 상당히 많은 작업을 한 결과, 990FXA-UD5 및 990FXA-UD3 보드는 BIOS가 매우 유사하다는 것을 알고 있으므로 해당 보드에도 동일하게 적용됩니다.


나는 그것이 당신을 위해 일하게되어 기쁘다. 정확히 설정했습니다 (256GB SSD + / u (/ home) 용 미러 3TB 드라이브). USB3 포트는 작동하지만 USB3 허브가 작동하지 않습니다. (음, 키보드 나 마우스는 사용할 수 없습니다.)
Bruce

iommu=soft"레거시 만"을 활성화하지 않고도 xHCI + eHIC 핸드 오프 및 IOMMU 컨트롤러 (모두 활성화 됨)와 함께 사용할 수 있습니다. 최고 속도 부팅, EFI 및 iommu 또는 usb3 루트 장치 문제에서 Linux를 아치.

이 관련 Askubuntu 답변을 살펴보십시오 .
Pablo A

4

이상하게도 거의 동일한 설정 (동일한 마더 보드, FX8350 프로세서)을 사용하더라도 IOMMU를 활성화해도 아무런 차이가 없었습니다. 여전히 USB, 네트워킹 등이 없습니다.

어떤 것은 도움을하지만, 커널 명령 행에 "IOMMU 소프트 ="추가되었다. 이제 모든 것이 잘 작동합니다 (이상한 이유로 Logitech Zone Touch Mouse가 작동하지 않는 것을 제외하고).


1
그들은 결코 같지 않습니다. 제조일의 몇 주 차이만으로도 공통 마더 보드 구성 요소 및 / 또는 superio 개정판의 새로운 소스가 될 수 있습니다. 회로 보드 제조는 전산의 그늘 아래 있습니다.
mikeserv

3

참고로 리눅스가 BIOS를 통해 장치를 사용할 수없는 기술적 이유 : 일단 OS가 "보호 모드"(32 비트) 또는 "긴 모드"(64 비트)로 전환되면 더 이상 인터럽트를 보낼 수 없습니다 BIOS에. "실제 모드"(부팅시 16 비트)에서는 디스크를 읽거나 키보드를 입력하도록 BIOS 인터럽트를 호출 할 수 있습니다.

그러나 단점도 있습니다. 우선, 메가 바이트의 주소 지정 가능 메모리도 없습니다. 따라서 현대 OS는 리얼 모드에서 거의 첫 번째로 전환됩니다. 실제로 grub은 커널을로드하기 전에 보호 모드로 전환한다고 생각합니다.

자세한 내용 : http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode


2

동일한 MB (rev 3)와 동일한 양의 RAM (Kingston)이 있습니다 (8 코어).

IOMMU의 팁은 약간 도움이되었습니다. 모든 포트는 USB 키보드, 모니터 USB 허브 및 USB (Realtek) Wi-Fi 어댑터를 볼 수 있지만 플래시 드라이브는 볼 수 없습니다.

이 솔루션이 도움이 된 것 같습니다.

cd /sys/bus/pci/drivers/ehci_hcd
ls

0000 : 00 : xx.x 형식의 파일이 표시됩니다. 다음 명령을 실행하십시오.

sudo sh -c 'echo -n "0000:00:xx.x" > unbind'

xx.x를 파일에 표시된 숫자로 바꾸십시오. ehci_hcd를 비활성화해야합니다.

이제 다음 스크립트를 사용하여 ehci_hcd를 비활성화 할 수 있습니다.

cd /sys/bus/pci/drivers/ehci_hcd/
sudo sh -c 'find ./ -name "0000:00:*" -print| sed "s/\.\///">unbind'

http://www.geekdevs.com/2010/04/solved-unable-to-enumerate-usb-device-disabling-ehci_hcd/


2
여기에 텍스트 로 솔루션 을 제공하고 배경 정보 및 중요하지 않은 세부 정보에 대한 링크 만 사용 하면 더 도움이됩니다 . 그렇지 않으면 링크가 무효화되면 답변에 가치가 없습니다.
Anthon

귀하가 제공 한 링크에서 언급 한 사용자 중 한 사람과 같이 "이것은 수정이 아닙니다. 이는 드라이브를 최고 속도로 사용하고 있지 않음을 의미합니다.
enthusiasticgeek

2

이 단계는 Ubuntu 15.04를 실행하는 GIGABYTE 970A-DS3P 및 AMD-FX-8320에서 나에게 효과적이었습니다.

  • xHCI 핸드 오프-사용
  • EHCI 핸드 오프-활성화
  • IOMMU 컨트롤러-사용
  • UEFI-비활성화
  • 모든 부팅 옵션-레거시 만

2

OpenSuse 13.1을 사용하여 기가 바이트 990FXA-UD3에서 동일한 FX8350을 실행하고 있습니다. 나를 위해 일한 해결책은 기본 선택 (또는 필자의 경우 OpenSuse 13.1을로드하는 데 사용하는 선택) 인 YAST를 사용하여 부트 로더를 편집하는 것이 었습니다. "quiet showopts"다음에 "iommu = pt"입니다.

예를 들면 다음과 같습니다.

"resume = / dev / disk / by-id / ata-Hitachi_HDS721010CLA332_JP2921HQ1076NA-part2 splash = 자동 조용한 iommu를 선택 함 = pt"

이제 모든 USB 포트 2.0 및 3.0이 작동하고 인터넷 네트워킹도 작동합니다!. 또한 BIOS에서 IOMMU가 활성화되어 있는지 확인하십시오.


1

어제 ASUSTek M5A99X 마더 보드에 Ubuntu를 설치하는 동안이 문제가 발생했습니다. 내 목표는 UEFI 모드의 USB 스틱에서 Ubuntu를 다시 설치하여 OS로 IOMMU 감지를 수정하는 것입니다 (시스템이 "레거시 BIOS"모드를 통해 설치되었으므로 이것이 이유 일 수 있다고 생각했습니다).

이전에는 USB 스틱에서 Ubuntu를 설치하여 시도했습니다. 레거시와 마찬가지로 UEFI는 항상 문제였습니다. 설치 프로그램을 시작할 때 키보드 / 마우스 / Wifi가 제대로 작동하지 않거나 (전원 만 해당) 설치 프로그램이 콘솔에 메시지가있는 UI를로드하지 못했습니다 :

  • (…) device descriptor read/64, error -32 (각 USB 장치)
  • (…) unable to find a live medium containing a live file system(스틱에서 5-6 분 동안 읽은 후). 이 오류는 USB 스틱 유형을 "Force Hard Disk"로 변경하는 해결 방법이 있지만 부팅 시스템으로 인해 설치 후 나중에 다른 문제가 발생했습니다.

문제는“Unetbootin”또는“Startup Disk Creator”에서 발생한다고 생각했습니다. 그렇지 않습니다. BIOS의 모든 설정을 시도하는 데 2 ​​시간 이상을 보냈지 만 ( 내 설정 이 IOMMU Controller없거나 xHCI Handoff설정 이 아님 ) 유일하게 도움이되었습니다 . 내 마더 보드 모델을 위해 Asus 웹 사이트에서 다운로드 한 ROM 파일을 사용하여 BIOS 를 최신 버전으로 업그레이드했습니다 . USB 스틱에서 ROM 파일의 압축을 풀고 복사하고“EZ Flash 유틸리티”(BIOS에서)를 사용하여 펌웨어를 플래시하는 것이 쉽습니다.

이 작업을 수행하면 내가 가진 모든 종류의 오류가 해결되었습니다. UEFI 모드에서 Ubuntu를 설치하고 사용할 수있었습니다. 또한 IOMMU는 이제 우분투에서 아무런 문제없이 마술처럼 감지됩니다. 이것은 내 문제가 USB 2.0 / 3.0 지원 및 IOMMU 지원과 관련된 BIOS 펌웨어 버그로 인해 발생했음을 의미합니다. (IOMMU가 필요하지 않은 경우 "고급"섹션에서이 기능을 비활성화해야합니다. 일반적이지 않습니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.