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

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

배경으로 저는 다음과 같은 최신 하드웨어를 갖춘 새 시스템을 만들었습니다.

  • AMD FX-8350
  • 기가바이트 GA-990FXA-UD3 마더보드
  • 16GB 메모리
  • 엔비디아 GTX 650 Ti
  • 킹스턴 SSD

이를 감안해 SSD에 다양한 버전의 리눅스를 설치해 보았으나 거의 매번 실패했다. USB 썸 드라이브에서 Arch, Debian stable, Debian sid 및 Ubuntu 12.10을 설치하려고 시도했지만 BIOS가 USB 드라이브를 확인하고 부팅을 시작하면 모든 USB 기능(장치 시작 포함)이 손실됩니다.

마지막으로 DVD를 굽고 SSD에 Ubuntu 12.10을 설치했습니다. 내 USB 키보드(및 마우스)가 American Megatrends UEFI/BIOS에서 제대로 작동한다는 점에 유의해야 합니다. Live Ubuntu DVD의 사전 설치 메뉴에 있는 경우에도 키보드가 제대로 작동합니다.

Linux가 부팅되면(Live DVD 또는 SSD) 모든 USB 기능이 사라지고 PS/2 키보드만 사용하여 OS를 탐색할 수 있습니다.

dmesg/syslog에 " "에 대한 몇 줄이 표시되고 failed to load microcode amd_ucode/microcode_amd_fam15h.binUSB 장치가 초기화에 실패했음을 알 수 있습니다.

이렇게 하면 lsusb모든 USB 호스트 컨트롤러를 볼 수 있지만 장치는 볼 수 없습니다. 하나를 만들면 lspci내가 기대했던 모든 하드웨어가 나에게 나타났습니다. 실행하면 lsmodUSB 모듈 로드가 표시되지 않습니다( usb_ehci예:).

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

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

USB(및 온보드 네트워크 카드)가 작동하지 않게 하거나 방해하는 것이 무엇인지 매우 혼란스럽습니다.리눅스에서. 장치는 BIOS에서 작동하는 데 아무런 문제가 없는 것 같습니다. 그리고 작동하는지 테스트하고 확인할 수 있는 Windows 설치가 없습니다.

마더보드를 한 번 RMA했지만 두 번째 마더보드도 정확히 동일한 동작을 보였기 때문에 하드웨어를 배제할 수 있다고 생각했습니다. (동작이 동일했기 때문에 두 개의 마더보드를 받은 것은 놀라운 일이 아니라고 생각했습니다. 동일한 결함이 더 큰 경우 이는 Linux 문제일 가능성이 있습니다).

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내 네트워크 어댑터(온보드 및 확장)가 각각 RTL8111/8168B 및 RTL8169/8110임을 보여줍니다. 내 USB 컨트롤러는 Etron Technology EJ168(xHCI) 및 AMD nee ATI SB7x0/SB8x0/SB9x0(EHCI & OHCI)입니다.

이제 Debian wheezy를 실행하면 , , , , 및 모두 로드되어 정상적으로 실행되고 있음을 modprobe알 수 있습니다 .usb_commonusbcorexhci_hcdehci_hcdohci_hcd

답변1

이 게시물에서 답을 찾았습니다 (http://ubuntuforums.org/showthread.php?t=2114055) ubuntuforums.org에서.

최신 Gigabyte 마더보드에는 (적어도) IOMMU Controller"기본적으로 비활성화됨"이라는 BIOS 옵션이 있는 것으로 보이며 그 용도에 대한 단서나 표시는 제공되지 않습니다.

이 설정을 활성화하고 "마법처럼" 재부팅하면 64비트 Linux 운영 체제(어느 운영체제든 상관없음)의 모든 USB 및 네트워크 문제를 복원할 수 있습니다.

나는 이렇게 간단한 해결책을 찾는 데 너무 오랜 시간이 걸렸다는 사실에 매우 충격을 받았고 기뻤습니다.

모든 분들의 도움과 조언에 감사드립니다. 다른 사람들도 이 내용이 도움이 되기를 바랍니다.

고쳐 쓰다:현재 BIOS 설정에는 IOMMU 컨트롤러 외에 XHCI Handoff 및 EHCI Handoff 활성화가 포함되어 있다는 점을 추가하고 싶습니다. 다른 사람들도 이에 대해 언급했으며 두 토글을 모두 활성화하면 USB 3.0 포트가 제대로 작동합니다.

답변2

방금 GA-990FXA-UD7을 사용하면서 USB 2.0 및 USB 3.0 컨트롤러와 온보드 이더넷 컨트롤러가 Linux(Mint 17.1을 사용하고 있음)에서 제대로 작동하려면 BIOS에서 다음 설정을 지정해야 한다는 것을 배웠습니다. :

  • xHCI 스위칭 - 활성화됨
  • EHCI 스위칭 - 활성화됨
  • IOMMU 컨트롤러 - 활성화됨

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

2.2TB 이상의 용량 HDD에서 부팅해야 하는 경우 다른 문제가 발생할 수 있습니다.

저는 256GB SSD를 부팅 드라이브로 사용하고 mdadm을 사용하여 3TB HDD 쌍의 RAID 1(미러) 어레이를 구성하여 /home을 관리하는데 모든 것이 잘 작동합니다.

Gigabyte 마더보드를 정기적으로 사용하면서 990FXA-UD5 및 990FXA-UD3 마더보드의 BIOS가 매우 유사하다는 것을 알고 있으므로 해당 마더보드에도 동일하게 적용될 가능성이 높습니다.

답변3

이 단계는 Ubuntu 15.04를 실행하는 GIGABYTE 970A-DS3P 및 AMD-FX-8320에 적용됩니다.

  • xHCI 스위칭 - 활성화됨
  • EHCI 스위칭 - 활성화됨
  • IOMMU 컨트롤러 - 활성화됨
  • UEFI - 비활성화됨
  • 모든 부팅 옵션 - 레거시 버전만 해당

답변4

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

무엇했다하지만 도움이 되는 것은 커널 명령줄에 "iommu=soft"를 추가하는 것입니다. 이제 모든 것이 잘 작동합니다(로지텍 Zone 터치 마우스가 작동하지 않는 이상한 이유를 제외하고).

관련 정보