Untuk latar belakang saya baru saja membangun mesin baru dengan perangkat keras modern termasuk:
- AMD FX-8350
- Motherboard Gigabyte GA-990FXA-UD3
- RAM 16GB
- NVidia GTX 650 Ti
- SSD Kingston
Mengingat itu, saya mencoba menginstal berbagai versi Linux pada SSD dan menemui kegagalan hampir setiap waktu. Saya mencoba menginstal Arch, Debian stable, Debian sid, dan Ubuntu 12.10 dari USB thumb drive tetapi ketika BIOS melihat USB drive dan mulai mem-boot darinya, segera setelah OS mencoba untuk menyebutkan perangkat USB saya kehilangan semua fungsi USB (termasuk perangkat boot).
Akhirnya saya membakar DVD dan menginstal Ubuntu 12.10 ke SSD. Perlu dicatat bahwa keyboard USB (dan mouse) saya berfungsi dengan baik saat di American Megatrends UEFI / BIOS. Bahkan ketika saya berada di menu pra-instalasi pada DVD Ubuntu Live, keyboard berfungsi dengan baik.
Segera setelah Linux di-boot (baik DVD langsung atau dari SSD) saya kehilangan semua fungsi USB dan hanya dapat menavigasi OS menggunakan keyboard PS / 2.
Apa yang saya lihat di dmesg / syslog adalah beberapa baris tentang " failed to load microcode amd_ucode/microcode_amd_fam15h.bin
" dan saya dapat melihat perangkat USB gagal diinisialisasi.
Jika saya melakukan, lsusb
saya bisa melihat semua pengontrol host USB tetapi tidak ada perangkat. Melakukan lspci
menunjukkan semua perangkat keras yang saya harapkan. Dan melakukan lsmod
saya tidak melihat modul usb dimuat ( usb_ehci
misalnya).
Saya mencoba meneruskan noapic
ke string boot kernel dan itu tidak berpengaruh pada masalah ini.
Motherboard ini mendukung USB 3.0 tetapi semua perangkat yang saya hubungkan ke port USB 2.0 normal.
Saya agak bingung dengan apa yang bisa mematikan / mencegah USB (dan kartu jaringan on-board saya) dari bekerja di Linux . Sepertinya tidak ada masalah dengan salah satu perangkat ini bekerja di BIOS dan saya tidak memiliki instalasi Windows yang tersedia untuk menguji dan melihat apakah itu berfungsi.
Saya sudah RMA akan motherboard sekali tetapi yang kedua memiliki perilaku yang persis sama jadi saya pikir saya dapat dengan aman mengesampingkan kegagalan perangkat keras (karena perilaku itu identik, saya tidak berpikir aneh saya mendapatkan dua papan identik identik lebih besar dari kemungkinan ini menjadi masalah Linux).
Apa lagi yang bisa saya coba untuk mendapatkan USB (dan idealnya jaringan saya, tetapi kami akan tetap menggunakan USB untuk saat ini) berfungsi?
Edit # 1:
Karena saya tidak punya jaringan, saya hanya bisa menghubungkan bit-bit menarik dari dmesg
sini.
Yang menarik dmesg
saya dapat melihat saya memiliki 11 pengendali host USB (OHCI, EHCI, dan xHCI). Mendeteksi perangkat USB saya dan kemudian gagal segera sebagai berikut:
usb 3-1: new high-speed USB device number 2 using ehci_hcd
usb 3-1: device descriptor read/64, error -32
Itu berulang beberapa kali menambah angka dan mencoba pengontrol Host USB lainnya hingga jatuh kembali ke pengontrol OHCI yang juga gagal tetapi memiliki pesan tambahan:
usb 8-1: device not accepting address 4, error -32
Saya pikir masalah jaringan saya ada hubungannya dengan fakta bahwa saya tidak memiliki IPv6 diaktifkan di router saya dan itu tampaknya menjadi masalah
eth1: no IPv6 routers present
Edit # 2:
lspci -vvv
menunjukkan bahwa adapter jaringan saya (baik onboard dan ekspansi) adalah Realtek Semiconductor (tidak mengejutkan); RTL8111 / 8168B dan RTL8169 / 8110 masing-masing. Pengontrol USB saya adalah Teknologi Etron EJ168 (xHCI) dan AMD nee ATI SB7x0 / SB8x0 / SB9x0 (EHCI & OHCI)
Sekarang menjalankan Debian serak modprobe
menunjukkan usb_common
, usbcore
, xhci_hcd
, ehci_hcd
, dan ohci_hcd
semua dimuat dan berfungsi.
dmesg
, mencobamodprobe
modul terkait USB?Jawaban:
Saya menemukan jawaban dari utas ini ( http://ubuntuforums.org/showthread.php?t=2114055 ) lewat di ubuntuforums.org.
Sepertinya dengan mainboard Gigabyte yang lebih baru (setidaknya) ada opsi BIOS yang disebut
IOMMU Controller
yang dinonaktifkan secara default dan tidak memberikan petunjuk atau indikasi untuk apa itu.Mengaktifkan pengaturan ini dan me-reboot "secara ajaib" mengembalikan semua masalah USB dan jaringan saya di OS Linux 64-bit (tidak masalah yang mana).
Saya agak terkejut dan gembira bahwa itu adalah pencarian yang panjang untuk perbaikan sederhana.
Terima kasih semuanya atas bantuan dan saran Anda. Semoga orang lain akan menemukan ini bermanfaat.
Pembaruan: Saya hanya ingin menambahkan bahwa pengaturan BIOS saya saat ini juga termasuk mengaktifkan XHCI Handoff dan EHCI Handoff di samping IOMMU Controller. Yang lain juga menyebutkan hal ini dan mengaktifkan kedua handoff tersebut juga memungkinkan port USB 3.0 saya berfungsi seperti yang diharapkan.
sumber
Saya baru belajar, dengan GA-990FXA-UD7 saya, bahwa untuk pengontrol USB 2.0 dan USB 3.0 dan pengontrol Ethernet onboard agar berfungsi dengan benar di Linux (saya menggunakan Mint 17.1) memerlukan pengaturan berikut di BIOS:
Jangan lupa untuk menonaktifkan UEFI dan ubah semua opsi booting ke "Hanya Legacy".
Jika Anda benar-benar perlu mem-boot dari HDD dengan kapasitas> 2.2TB, Anda mungkin memiliki masalah yang berbeda di tangan Anda.
Saya menggunakan SSD 256GB untuk boot drive saya dan sepasang HDD 3TB dalam array RAID 1 (mirrored) menggunakan mdadm untuk rumah saya / dan semuanya bekerja dengan baik.
Setelah bekerja dengan papan Gigabyte cukup banyak, saya tahu board 990FXA-UD5 dan 990FXA-UD3 memiliki BIOS yang sangat mirip, sehingga kemungkinan hal yang sama juga berlaku pada papan tersebut.
sumber
iommu=soft
bersamaan dengan xHCI + eHIC Handoff dan IOMMU Controller (semua diaktifkan), tanpa harus mengaktifkan "Legacy Only". Arch Linux dengan boot kecepatan penuh, EFI dan tanpa masalah iommu atau masalah perangkat usb3.Anehnya, walaupun saya memiliki setup yang hampir identik (motherboard yang sama, prosesor FX8350), mengaktifkan IOMMU tidak membuat perbedaan bagi saya. Masih tidak ada USB, jaringan, dll.
Apa memang membantu, meskipun, menambahkan "IOMMU = lunak" untuk baris perintah kernel. Sekarang semuanya berfungsi dengan baik (kecuali bahwa, untuk beberapa alasan aneh, Logitech Zone Touch Mouse saya tidak berfungsi).
sumber
FYI, alasan teknis mengapa Linux tidak dapat menggunakan perangkat "melalui" BIOS: begitu OS telah beralih ke "mode terlindungi" (32-bit) atau "mode panjang" (64-bit), ia tidak dapat lagi mengirim interupsi ke BIOS. Dalam "mode nyata" (16-bit, saat booting) ia dapat memanggil interupsi BIOS agar disk dapat dibaca, input keyboard, dll.
Tapi itu juga punya kelemahan. Pertama, Anda bahkan tidak memiliki megabita memori yang dapat dialamatkan. Jadi OS modern beralih dari mode nyata hampir hal pertama. (Sebenarnya, saya percaya grub beralih ke mode terproteksi bahkan sebelum kernel dimuat).
Rincian lebih lanjut: http://wiki.osdev.org/Real_Mode http://wiki.osdev.org/Protected_Mode
sumber
Saya punya proc yang sama (tapi 8-core) MB yang sama (rev 3) jumlah RAM yang sama (Kingston)
Tip dengan IOMMU sedikit membantu - semua port dapat melihat keyboard usb, monitor usb-hub, dan adaptor wifi usb (Realtek), tetapi tidak ada flash drive.
Tampaknya, solusi ini membantu saya:
Anda akan melihat file dengan format 0000: 00: xx.x. Jalankan perintah berikut:
Ganti xx.x dengan angka yang ditampilkan di file Anda. Seharusnya menonaktifkan ehci_hcd.
Anda sekarang dapat menggunakan skrip berikut untuk menonaktifkan ehci_hcd.
http://www.geekdevs.com/2010/04/solved-unable-to-enumerate-usb-device-disabling-ehci_hcd/
sumber
Langkah-langkah ini berhasil bagi saya dengan GIGABYTE 970A-DS3P dan AMD-FX-8320 yang menjalankan Ubuntu 15.04
sumber
Saya memiliki FX8350 yang sama yang berjalan pada Gigabyte 990FXA-UD3 menggunakan OpenSuse 13.1. Solusi yang berhasil bagi saya adalah mengedit bootloader menggunakan YAST, pilihan default (atau pilihan yang Anda gunakan untuk memuat OpenSuse 13.1 dalam kasus saya), "iommu = pt" setelah "quiet showopts".
Sebagai contoh:
Sekarang semua port USB 2.0 dan 3.0 saya berfungsi dan jaringan internet saya juga berfungsi !. Pastikan juga IOMMU diaktifkan di BIOS.
sumber
Kemarin saya mendapatkan masalah ini saat menginstal Ubuntu pada motherboard ASUSTek M5A99X saya. Tujuan saya adalah menginstal ulang Ubuntu dari stik USB dalam mode UEFI, untuk memperbaiki deteksi IOMMU oleh OS (sistem saya diinstal melalui mode "Legacy BIOS", saya pikir ini bisa menjadi alasan).
Sebelumnya, saya mencobanya dengan menginstal Ubuntu dari USB stick. Baik dengan Legacy, UEFI selalu menjadi masalah - baik keyboard / mouse / Wifi saya tidak berfungsi dengan baik (hanya daya) ketika memasuki installer, atau installer gagal memuat UI dengan pesan di konsol:
(…) device descriptor read/64, error -32
(untuk setiap perangkat USB)(…) unable to find a live medium containing a live file system
(setelah 5-6 menit membaca dari tongkat). Kesalahan ini memiliki solusi untuk mengubah jenis stik USB menjadi "Force Hard Disk", tetapi sistem booting menyebabkan masalah lain kemudian setelah menginstal.Saya berpikir masalahnya adalah dari "Unetbootin" atau "Startup Disk Creator" - mereka tidak. Menghabiskan lebih dari 2 jam untuk mencoba semua pengaturan di BIOS (saya tidak punya
IOMMU Controller
atauxHCI Handoff
pengaturan di tambang), tetapi satu - satunya hal yang membantu - memutakhirkan BIOS ke versi terbaru dengan file ROM yang diunduh dari situs Asus untuk model motherboard saya. Semudah membuka ritsleting dan menyalin file ROM pada stik USB dan menggunakan "EZ Flash utility" (di BIOS) untuk mem-flash firmware.Melakukan ini memperbaiki semua jenis kesalahan yang saya miliki; Saya dapat menginstal dan menggunakan Ubuntu dalam mode UEFI. Terlebih lagi, IOMMU sekarang terdeteksi oleh Ubuntu secara ajaib tanpa masalah. Ini berarti, masalah saya disebabkan oleh bug firmware BIOS yang terkait dengan dukungan USB 2.0 / 3.0, dan dukungan IOMMU. (jika Anda tidak membutuhkan IOMMU, Anda harus menonaktifkan ini di bagian "Advanced" karena itu bukan hal yang umum).
sumber