Saya telah memperbarui HTPC saya dari kernel 3.7.10 ke 3.10.7 dan sepertinya CONFIG_USB_SUSPEND sekarang hilang dari opsi kernel dan termasuk dalam PM.
Masalah utama yang saya hadapi adalah bahwa saya memiliki HDD eksternal dan ketika menangguhkan dan membangunkan HTPC, itu tidak tersedia untuk sistem. HDD bangun (Anda dapat mendengarnya berputar lagi), tetapi ketika Anda mencoba mengakses titik pemasangan Anda mendapatkan kesalahan berikut:
ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error
Dan di dmesg:
[ 253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
Pada kernel sebelumnya, pengaturan CONFIG_USB_SUSPEND = N akan menyelesaikan masalah, karena HDD akan menangani hibernasinya sendiri dan titik mount selalu dapat diakses. Ketika HDD menyala dan HTPC membutuhkan sesuatu dari titik pemasangan HDD, HDD itu sendiri akan bangun dan beroperasi tanpa masalah.
Saat ini saya sudah mencoba yang berikut ini tanpa hasil:
- Ubah / sys / bus / usb / perangkat / usb * / power / control secara manual ke "on" alih-alih "auto" .
- Ubah / sys / bus / usb / perangkat / usb * / power / autosuspend secara manual menjadi "-1" alih-alih "0" .
Tetapi ketika bangun lagi HTPC, titik mount sekali lagi tidak dapat diakses. Sebagai workarround saya dapat melepas dan memasang kembali mount point dan berfungsi kembali tanpa masalah, tapi saya yakin harus ada cara untuk menghindari OS menangani usb autosuspend.
Tahu cara menonaktifkan usb autosuspend pada kernel 3.7.10 atau lebih tinggi?
sumber
/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist
memberi Anda1
? Apakahgrep CONFIG_PM_RUNTIME /boot/config-$(uname -r)
memberi Anday
? power-management.txtpower/persist
memberi1
dan saya tidak punya file konfigurasi di/boot
.CONFIG_PM_RUNTIME=y
dikonfigurasi dalam file kernel.config
.Jawaban:
Untuk Ubuntu dan Debian ,
usbcore
dikompilasi dalam kernel, jadi buat entri pada TIDAK/etc/modprobe.d
akan berfungsi: kita perlu mengubah parameter boot kernel.Edit
/etc/default/grub
file dan ubahGRUB_CMDLINE_LINUX_DEFAULT
baris untuk menambahkanusbcore.autosuspend=-1
opsi:Perhatikan bahwa
quit splash
sudah ada opsi. Jadi simpan opsi lain yang Anda miliki juga.Setelah menyimpan file, perbarui grub:
Dan reboot .
Sekarang periksa
autosuspend
nilai:Dan itu akan ditampilkan
-1
.Dalam dokumentasi kernel disebutkan bahwa suatu hari nanti param ini akan berubah menjadi
autosuspend_delay_ms
(bukanautosuspend
).sumber
autosuspend_delay_ms
.Menurut dokumentasi tree kernel , waktu tunda idle otomatis dikendalikan oleh
autosuspend
parameter modul diusbcore
. Mengatur penundaan idle default awal ke -1 akan mencegah pengeluaran otomatis perangkat USB apa pun. Anda harus tetap dapat mengaktifkan belanja otomatis untuk perangkat yang dipilih.The
usbcore.autosuspend
parameter kernel dapat diatur ketika modul tersebut dimuat secara manual:atau dengan menambahkan baris berikut ke file konfigurasi di
/etc/modprobe.d
:Jika
usbcore
dikompilasi ke dalam kernel, parameter dapat disesuaikan dengan menambahkan berikut ini ke baris perintah kernel:Terakhir, opsi dapat disesuaikan saat runtime dengan melakukan:
Perubahan akan memengaruhi semua perangkat USB baru. Perangkat yang sudah ada tidak akan terpengaruh.
sumber
usbcore
dikompilasi ke dalam kernel, tetapi menggunakanmodprobe.d
opsi sepertinya tidak berfungsi. Meskipunmodprobe -c usbcore | grep autosuspend
menampilkannya sebagai-1
, melakukancat /sys/module/usbcore/parameters/autosuspend
saya dapatkan2
autosuspend
sudah usang. File baruautosuspend_delay_ms
yang mengambil ms bukan detik. ref . Tetapipower/control
diatur untukon
harus memiliki efek yang sama.autosuspend=-1
keduanyamodprobe.d
dankernel
parameter, tetapi HDD masih tertunda dan tidak bangun dengan baik.autosuspend_delay_ms
ke-1
? (Masuk/sys/bus/usb/devices/<device>/power/autosuspend_delay_ms
)autosuspend_delay_ms
tidak ada di sana. Tapiautosuspend
IS.Saya memiliki masalah serupa dengan USB Optical Mouse Roda Microsoft dan Kompatibel PS / 2 sejak memutakhirkan sistem Linux Mint Debian Edition ke kernel
3.10-2-amd64
. Dicurigai ada penyalahgunaan otomatis oleh manajemen daya USB kernel . Di Debian, ini dikompilasi sebagaiusbcore
modul ke dalam kernel.Anda dapat mengubah ini secara permanen dengan mengeluarkan di baris perintah:
Namun, beberapa kernel mungkin membutuhkan
autosuspend=0
.Jika sistem Anda menggunakan
initrd
(kemungkinan besar tidak), kemudian membangun kembaliinitrd
untuk kernel Anda.Sebagai contoh:
Mulai ulang dan periksa dengan:
yang seharusnya menghasilkan
-1
sekarang.sumber
initrd
dan tindakan yang dijelaskan di sini tidak bekerja dalam kasus ini, karena mereka dijawab sebelumnya.