W tle właśnie zbudowałem nową maszynę z nowoczesnym sprzętem, w tym:
- AMD FX-8350
- Płyta główna Gigabyte GA-990FXA-UD3
- 16 GB pamięci RAM
- NVidia GTX 650 Ti
- Kingston SSD
Biorąc to pod uwagę, próbowałem zainstalować różne wersje Linuksa na dysku SSD i prawie zawsze napotykałem błąd. Próbowałem zainstalować Arch, Debian stable, Debian sid i Ubuntu 12.10 z napędu USB, ale kiedy BIOS zobaczył napęd USB i zaczął się z niego uruchamiać, gdy tylko system operacyjny próbował wyliczyć urządzenia USB, straciłem całą funkcjonalność USB (w tym urządzenie rozruchowe).
W końcu nagrałem płytę DVD i zainstalowałem Ubuntu 12.10 na dysku SSD. Należy zauważyć, że moja klawiatura USB (i mysz) działają dobrze podczas pracy w amerykańskim systemie UEFI / BIOS w amerykańskim Megatrends. Nawet gdy jestem w menu przedinstalacyjnym na Live Ubuntu DVD, klawiatura działa dobrze.
Zaraz po uruchomieniu Linuxa (Live DVD lub z dysku SSD) tracę całą funkcjonalność USB i mogę nawigować po systemie operacyjnym tylko za pomocą klawiatury PS / 2.
To, co widzę w dmesg / syslog, to kilka wierszy o „ failed to load microcode amd_ucode/microcode_amd_fam15h.bin
” i widzę, że urządzenia USB nie inicjują się.
Jeśli to zrobię lsusb
, mogę zobaczyć wszystkie kontrolery hosta USB, ale żadne z urządzeń. Wykonanie lspci
pokazuje mi cały sprzęt, którego oczekiwałem. I robiąc lsmod
nie widzę załadowanych modułów USB ( usb_ehci
na przykład).
Próbowałem przekazać noapic
do łańcucha rozruchowego jądra i nie miało to wpływu na ten problem.
Płyta główna obsługuje USB 3.0, ale wszystkie urządzenia, które podłączyłem do normalnych portów USB 2.0.
Jestem raczej zaskoczony tym, co może zabijać / uniemożliwiać USB (i mojej wbudowanej karcie sieciowej) działanie w systemie Linux . Wygląda na to, że żaden z tych urządzeń nie działa w systemie BIOS i nie mam dostępnej instalacji systemu Windows do przetestowania i sprawdzenia, czy działa.
Już raz przesłałem płytę główną do RMA, ale druga ma dokładnie takie samo zachowanie, więc myślę, że mogę bezpiecznie wykluczyć awarię sprzętu (ponieważ zachowanie jest identyczne, nie wydaje mi się, że dziwne jest, że dostaję dwie identycznie uszkodzone płyty główne są większe niż prawdopodobieństwo, że jest to problem z Linuksem).
Co jeszcze mogę spróbować, aby USB (a najlepiej moja sieć, ale na razie pozostaniemy przy USB) działał?
Edycja nr 1:
Ponieważ nie mam sieci, mogę dmesg
stąd odnieść tylko interesujące fragmenty .
Zainteresowanych dmesg
widzę, że mam 11 kontrolerów hosta USB (OHCI, EHCI i xHCI). Wykrywa moje urządzenia USB, a następnie natychmiast ulega awarii w następujący sposób:
usb 3-1: new high-speed USB device number 2 using ehci_hcd
usb 3-1: device descriptor read/64, error -32
To się powtarza kilkakrotnie, zwiększając liczbę i próbując innych kontrolerów hosta USB, aż wróci do kontrolerów OHCI, które również zawodzą, ale mają dodatkowy komunikat:
usb 8-1: device not accepting address 4, error -32
Myślę, że moje problemy z siecią związane są z tym, że nie mam włączonej IPv6 na moim routerze i wydaje się, że to problem
eth1: no IPv6 routers present
Edytuj # 2:
lspci -vvv
pokazuje, że moje karty sieciowe (zarówno wbudowane, jak i rozszerzające) to Realtek Semiconductor (nic dziwnego); RTL8111 / 8168B i RTL8169 / 8110 odpowiednio. Moje kontrolery USB to Etron Technology EJ168 (xHCI) i AMD nee ATI SB7x0 / SB8x0 / SB9x0 (EHCI i OHCI)
Teraz systemu Debian wheezy modprobe
pokazy usb_common
, usbcore
, xhci_hcd
, ehci_hcd
, i ohci_hcd
wszystko załadowany i działa.
dmesg
, próbowałeśmodprobe
modułów związanych z USB?Odpowiedzi:
Znalazłem odpowiedź z tego wątku ( http://ubuntuforums.org/showthread.php?t=2114055 ) na stronie ubuntuforums.org.
Wydaje się, że w przypadku nowszych płyt głównych Gigabyte (przynajmniej) istnieje opcja o nazwie BIOS,
IOMMU Controller
która jest domyślnie wyłączona i nie daje żadnych wskazówek ani wskazówek co do tego, do czego służy.Włączenie tego ustawienia i ponowne „magiczne” ponowne uruchomienie przywraca wszystkie moje problemy związane z USB i siecią w 64-bitowym systemie operacyjnym Linux (nieważne, który z nich).
Jestem raczej zszokowany i podekscytowany, że tak długo szukałem tak prostej poprawki.
Dziękujemy wszystkim za pomoc i sugestie. Mam nadzieję, że inni uznają to za pomocne.
Aktualizacja: Chciałbym tylko dodać, że moje obecne ustawienia BIOS-u obejmują także włączenie XHCI Handoff i EHCI Handoff oprócz kontrolera IOMMU. Inni też o tym wspominali, a włączenie tych dwóch przełączeń pozwala również moim portom USB 3.0 działać zgodnie z oczekiwaniami.
źródło
Właśnie nauczyłem się z moim GA-990FXA-UD7, że zarówno kontrolery USB 2.0 i USB 3.0, jak i wbudowany kontroler Ethernet działają poprawnie w systemie Linux (używam wersji Mint 17.1), wymagały następujących ustawień w systemie BIOS:
Nie zapomnij wyłączyć UEFI i zmienić wszystkie opcje rozruchu na „Tylko starsze”.
Jeśli naprawdę chcesz uruchomić z dysku twardego o pojemności> 2,2 TB, możesz mieć inny problem.
Używam dysku SSD 256 GB do napędu rozruchowego i pary dysków HDD o pojemności 3 TB w macierzy RAID 1 (dublowanej) przy użyciu mdadm dla mojego / home i wszystko działa dobrze.
Po dość dużej pracy z płytami Gigabyte wiem, że płyty 990FXA-UD5 i 990FXA-UD3 mają bardzo podobny BIOS, więc prawdopodobnie to samo będzie dotyczyć również tych płyt.
źródło
iommu=soft
w połączeniu z przekazywaniem xHCI + eHIC i kontrolerem IOMMU (wszystkie włączone), bez konieczności włączania opcji „Tylko starsze”. Archuj Linux przy pełnej prędkości rozruchu, EFI i bez problemów z urządzeniem root iommu lub usb3.Co dziwne, mimo że mam prawie identyczną konfigurację (ta sama płyta główna, procesor FX8350), włączenie IOMMU nie zrobiło dla mnie żadnej różnicy. Wciąż brak USB, sieci itp.
Co zrobił pomoc, choć dodawał „IOMMU = miękki” do linii poleceń jądra. Teraz wszystko działa dobrze (poza tym, że z jakiegoś dziwnego powodu moja mysz Logitech Zone Touch Mouse nie działa).
źródło
Do Twojej wiadomości, techniczne powody, dla których Linux nie może używać urządzeń „przez” BIOS: po przejściu systemu operacyjnego na „tryb chroniony” (32-bit) lub „tryb długi” (64-bit), nie może już wysyłać przerwań do BIOS-u. W „trybie rzeczywistym” (16-bit, podczas rozruchu) może wywoływać przerwania systemu BIOS w celu odczytu dysków, wprowadzania danych z klawiatury itp.
Ale ma też swoje wady. Po pierwsze, nie masz nawet megabajta pamięci adresowalnej. Dlatego współczesne systemy operacyjne prawie całkowicie wyłączyły tryb rzeczywisty. (Właściwie uważam, że grub przełącza się w tryb chroniony, zanim jeszcze załaduje jądro).
Więcej informacji: http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode
źródło
Mam ten sam proc (ale 8-rdzeniowy) ten sam MB (rev 3) taką samą ilość pamięci RAM (Kingston)
Wskazówka z IOMMU trochę pomogła - wszystkie porty widzą klawiaturę USB, hub USB monitora i adapter WiFi USB (Realtek), ale nie ma dysku flash.
Wygląda na to, że to rozwiązanie pomogło mi:
Zobaczysz plik w formacie 0000: 00: xx.x. Wykonaj następujące polecenie:
Zamień xx.x na liczby wyświetlane w pliku. Powinno to wyłączyć ehci_hcd.
Możesz teraz użyć następującego skryptu, aby wyłączyć ehci_hcd.
http://www.geekdevs.com/2010/04/solved-unable-to-enumerate-usb-device-disablowanie-ehci_hcd/
źródło
Te kroki działały dla mnie z GIGABYTE 970A-DS3P i AMD-FX-8320 z Ubuntu 15.04
źródło
Mam ten sam FX8350 działający na Gigabyte 990FXA-UD3 przy użyciu OpenSuse 13.1. Rozwiązaniem, które działało dla mnie, było edytowanie bootloadera za pomocą YAST, domyślnego wyboru (lub wyboru, którego używasz do załadowania OpenSuse 13.1 w moim przypadku), „iommu = pt” po „cichym showopts”.
Na przykład:
Teraz działają wszystkie moje porty USB 2.0 i 3.0, a także działa moja sieć internetowa! Upewnij się również, że IOMMU jest włączony w systemie BIOS.
źródło
Wczoraj dostałem ten problem podczas instalacji Ubuntu na mojej płycie głównej ASUSTek M5A99X. Moim celem była ponowna instalacja Ubuntu z pamięci USB w trybie UEFI, aby naprawić wykrywanie IOMMU przez system operacyjny (mój system został zainstalowany w trybie „Legacy BIOS”, pomyślałem, że może to być powód).
Wcześniej próbowałem tego, instalując Ubuntu z pamięci USB. Dobrze ze Starszą wersją, UEFI zawsze stanowiło problem - albo moja klawiatura / mysz / Wi-Fi nie działała poprawnie (tylko zasilanie) podczas wchodzenia do instalatora, lub instalator nie ładował interfejsu użytkownika z komunikatami w konsoli:
(…) device descriptor read/64, error -32
(dla każdego urządzenia USB)(…) unable to find a live medium containing a live file system
(po 5-6 minutach czytania z patyka). Ten błąd ma obejście polegające na zmianie typu pamięci USB na „Force Hard Disk”, ale system rozruchowy spowodował inne problemy później po instalacji.Myślałem, że problemy pochodzą z „Unetbootin” lub „Startup Disk Creator” - nie są. Spędziłem ponad 2 godziny na wypróbowaniu wszystkich ustawień w systemie BIOS (nie mam
IOMMU Controller
lubxHCI Handoff
ustawienia w moich), ale jedyna rzecz pomogła - uaktualnienie systemu BIOS do najnowszej wersji z plikiem ROM pobranym z witryny Asus dla mojego modelu płyty głównej. Jest to tak łatwe, jak rozpakowanie i skopiowanie pliku ROM na pamięć USB oraz użycie „EZ Flash Utility” (w systemie BIOS) do flashowania oprogramowania układowego.W ten sposób naprawiłem wszelkiego rodzaju błędy, które miałem; Byłem w stanie zainstalować i używać Ubuntu w trybie UEFI. Co więcej, IOMMU jest teraz wykrywany przez Ubuntu magicznie bez żadnych problemów. Oznacza to, że moje problemy były spowodowane przez błędy oprogramowania układowego BIOS związane z obsługą USB 2.0 / 3.0 i obsługą IOMMU. (jeśli nie potrzebujesz IOMMU, powinieneś wyłączyć to w sekcji „Zaawansowane”, ponieważ nie jest to powszechne).
źródło