Řešení problémů/USB
Diagnostika
Detekci připojení a obousměrnou komunikaci mezi operačním systémem a zařízením má na starosti kernel (jádro systému). Pokud chceme o zařízení zjistit více, podíváme se na informace, které máme od kernelu k dispozici.
Co budete potřebovat
Systémové záznamy (logy)
Všechny důležité informace najdete v souboru /var/log/syslog, nebo v terminálu použijte příkaz dmesg
. Pokud chcete grafickou aplikaci, spusťte Prohlížeč systémových protokolů.
Další informace o záznamech najdete na Sledování systému.
Výpis všech zařízení pomocí lsusb
Příkaz lsusb zadaný v terminálu vypíše všechny USB porty a připojená zařízení.
Jak na to
Pokud je USB zařízení zasunuto v USB portu, vytáhněte ho. |
Po chvíli znovu zasuňte. |
Počkejte několik sekund, aby mohl kernel zařízení zaregistrovat. |
Otevřete Terminál a podívejte se na výstup příkazů lsusb a dmesg | tail. |
Podívejte se na výstup příkazu lsusb
: je tam zařízení vidět?
$ lsusb Bus 005 Device 002: ID 03f0:2f11 Hewlett-Packard PSC 1200 Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 002: ID 045e:00dd Microsoft Corp. Comfort Curve Keyboard 2000 V1.0 ... Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Např. zde ve výpise jsou vidět 2 připojená zařízení
- sběrnice 5, zař. 2: tiskárna Hewlett-Packard PSC 1200 (identifikační číslo výrobce:
03f0
, id. číslo přístroje:2f11
) - sběrnice 4, zař. 2: klávesnice Microsoft Corp. Comfort Curve (identifikační číslo výrobce:
045e
, id. číslo přístroje:00dd
)
Zkontrolujte posledních 10-20 řádků systémového záznamu: co k připojení říká kernel?
$ dmesg | tail ... [ 9816.125887] EXT4-fs (sda1): bad geometry: block count 66264100 exceeds size of device (66263852 blocks)
Řešení
Zařízení není vidět ani v lsusb, ani v logu
- Zkuste výše uvedený postup znovu :)
- Vyzkoušejte jiný USB port. Nepoužívejte rozbočovač apod.
- Zkontrolujte funkčnost zařízení na jiném počítači/systému.
Je zařízení podporováno?
Z výstupu lsusb
zkopírujte identifikační čísla (např. 03f0:2f11) nebo název (Hewlett-Packard PSC 1200). Zadejte je do fóra nebo do vyhledávače (Google) a podívejte se, jestli je zařízení podporováno, nebo jestli měl někdo podobný problém.
Jsou v logu zaznamenány chyby?
Vyhledejte znění chybového hlášení na internetu: možná se už problém podařilo někomu vyřešit.
Příklad: do Googlu text
ubuntu "bad geometry: block count"
Zeptejte se na fóru Ubuntu
Snažte se uvést co nejvíce informací, hlavně
- podrobný popis problému a přesný přepis chybového hlášení (případně snímek obrazovky, třeba i z foťáku)
- co jste všechno už zkoušeli při řešení problému
- informace k systému (hardware, distribuce, vydání)
- co jste dělali předtím, než k problému došlo
- přidejte výstup z příkazů
lsusb
admesg | tail
- případně připojte další relevantní logy (pokud jsou dlouhé, tak radši jako přílohu, nebo je nahrajte na Ubuntu pastebin)
- … a pokud se vám podaří problém nakonec vyřešit, nezapomeňte se pak na fóru pochlubit jak…
Technické detaily
lsusb
Příkaz lsusb prohlédne všechny soubory zařízení (device/special file) vytvořené kernelem v adresáři /dev/bus/usb. Pak stáhne základní informace ze zařízení. Nemusí se jednat jen o identifikační čísla, všechny informace je možné zobrazit pomocí
lsusb -v
Popis zařízení (výrobce + název) si najde podle identifikačních čísel v tabulce v souboru /var/lib/usbutils/usb.ids. Pokud v tabulce nějaký údaj chybí, ve výpise lsusb
se objeví jen identifikační čísla.
dmesg | tail
Příkaz dmesg zobrazuje hlášení kernelu, příkazem tail vyfiltrujeme posledních 10 řádků. Pokud jich chceme více, připojíme za tail
počet řádků (zde 20):
dmesg | tail -20