Arch Linux Üzerinde USB Güç Yönetimi ve Kernel Modül Analizi
🖥️ Arch Linux Üzerinde USB Güç Yönetimi ve Kernel Modül Analizi Rehberi#
Linux sistemlerde donanım kaynaklarını verimli kullanmak, güç tüketimini azaltmak ve uyumluluk sorunlarını gidermek için USB güç yönetimi ve çekirdek modül ayarları oldukça önemlidir. Bu rehberde, bir Bash scripti yardımıyla sisteminizdeki USB aygıtlarının durumunu ve modül parametrelerini nasıl inceleyebileceğinizi öğreneceksiniz. 🚀

🧠 Bu Rehber Kimler İçin?#
- ⚙️ Teknik bilgiye sahip Linux kullanıcıları
- 🐧 Arch Linux veya benzeri minimalist dağıtımları kullananlar
- 🧪 USB cihazlarla ilgili uyku/uyanma sorunları yaşayanlar
- 🔋 Dizüstü bilgisayarlarında güç tasarrufu sağlamak isteyenler
- 🎧 Ses aygıtları, kablosuz adaptörler, klavye/fare gibi donanımların yönetimini incelemek isteyenler
🔍 Bu Script Ne Yapar?#
Script iki temel işlemi gerçekleştirir:
- Tüm USB aygıtlarının güç yönetimi ayarlarını okur ve listeler.
- Sistemde aktif olarak kullanılan kernel modüllerini ve parametrelerini gösterir.
🛠️ Script’in Adım Adım İncelemesi#
1. Script İçeriği#
#!/bin/bash
for i in $(find /sys/devices -name "bMaxPower")
do
busdir=${i%/*}
busnum=$(<$busdir/busnum)
devnum=$(<$busdir/devnum)
title=$(lsusb -s $busnum:$devnum)
printf "\n\n+++ %s\n -%s\n" "$title" "$busdir"
for ff in $(find $busdir/power -type f ! -empty 2>/dev/null)
do
v=$(cat $ff 2>/dev/null|tr -d "\n")
[[ ${#v} -gt 0 ]] && echo -e " ${ff##*/}=$v";
done | sort -g;
done;
printf "\n\n\n+++ %s\n" "Kernel Modules"
for mod in $(lspci -k | sed -n '/in use:/s,^.*: ,,p' | sort -u)
do
echo "+ $mod";
systool -v -m $mod 2> /dev/null | sed -n "/Parameters:/,/^$/p";
done
🧪 Uygulamalı Kullanım ve Örnek Çıktı#
2. Komutu Çalıştır#
chmod +x usb-kernel-analyzer.sh
./usb-kernel-analyzer.sh
Çalıştırdığınızda aşağıdaki gibi bir çıktı alırsınız:
+++ Bus 001 Device 005: ID 10c4:8108 Silicon Labs USB OPTICAL MOUSE
-/sys/devices/.../usb1/1-9
autosuspend=2
autosuspend_delay_ms=2000
control=on
runtime_status=active
wakeup=disabled
📊 Çıktıdaki Anahtar Alanlar#
| Alan | Anlamı |
|---|---|
autosuspend |
2 ise cihaz uykuya geçebilir. |
autosuspend_delay_ms |
Uykuya geçmeden önceki bekleme süresi. |
control |
auto: sistem yönetir, on: kullanıcı belirler. |
runtime_status |
active: çalışıyor, suspended: uyku modunda. |
wakeup |
Cihaz sistem uykudayken uyandırabilir mi. |
🔎 3. Öne Çıkan Cihaz Analizleri#
🖱️ USB Mouse (Silicon Labs)#
- Durum: Aktif,
autosuspend=2olmasına rağmen uyumamış. - Güç Tüketimi: Devam ediyor.
- Wakeup: Kapalı, bu yüzden sistem uykudan mouse ile uyanmayabilir.
⌨️ USB Klavye (CASUE)#
- Wakeup: Açık. Bu cihaz sistem uykudayken uyanma tetikleyebilir.
- runtime_status=active olduğundan uyumamış.
📶 Kablosuz Ağ Adaptörü (Realtek RTL8188RU)#
- Uyku destekleniyor ama runtime_status=active → uyumuyor.
- wakeup=disabled → Ağdan uyanma tetikleyemez.
🧩 4. Kernel Modül Parametreleri#
Çıktıdaki modül örneği:
+++ Kernel Modules
+ nvme
Parameters:
io_queue_depth = 1024
use_threaded_interrupts = 0
🎯 Neden Önemli?#
Bu parametreler sistemin performansı, güç yönetimi ve donanım uyumluluğu üzerinde doğrudan etkilidir.
| Modül | Kritik Parametreler |
|---|---|
snd_hda_intel |
power_save, enable_msi, jackpoll_ms |
nvme |
io_queue_depth, use_cmb_sqes |
xhci_hcd |
quirks, link_quirk |
🧰 5. Uykuya Geçmeyen Cihazları Bulmak#
Script dışında şu komutları da kullanabilirsiniz:
🔍 Uykuya geçmeyen cihazları listele#
grep . /sys/bus/usb/devices/*/power/runtime_status | grep -v suspended
🔋 Uyuyabilir ama aktif olan cihazları bul#
find /sys/bus/usb/devices/*/power -name runtime_status -exec grep -H active {} \;
✅ 6. İyileştirme Önerileri#
autosuspend=2olan ama sürekliactivedurumda kalan cihazlar içincontrol=autoyapılabilir.wakeup=disabledolan klavye gibi aygıtlar için:
echo enabled | sudo tee /sys/bus/usb/devices/1-3/power/wakeup
- Sürücü parametrelerini kalıcı yapmak için
/etc/modprobe.daltına.confdosyası ekleyebilirsiniz.
📌 Sonuç: Bu Script Neden Faydalı?#
✅ USB güç yönetimini sistemsel düzeyde görebilirsiniz. ✅ Uyku/uyanma sorunlarını tespit edebilirsiniz. ✅ Kernel modül parametrelerini analiz ederek performans veya uyumluluk artırabilirsiniz.