====== Řešení problémů/USB ====== {{:usbpendrive.png}} {{:printer.png}} {{:disk.png}} {{:camera.png}} Zde najdete **obecné** rady pro případ, kdy nemůžete zprovoznit zařízení připojené přes USB. ====== Diagnostika ====== {{:info.png}} 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ál|terminálu]] použijte příkaz ''dmesg''. Pokud chcete grafickou aplikaci, spusťte **Prohlížeč systémových protokolů**. {{ .:logs_gui.png?500 }} {{:info.png}} 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ál|terminálu]] vypíše všechny USB porty a připojená zařízení. {{ .:lsusb_gnome-terminal.png?500 }} ===== 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**.| {{:example.png}} 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'') {{:example.png}} 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 ===== {{:ubuntu-logo.png}} 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'' a ''dmesg | tail'' * případně připojte další relevantní logy (pokud jsou dlouhé, tak radši jako přílohu, nebo je nahrajte na [[http://paste.ubuntu.com/|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