Linux-форензика в лице трекинга истории подключений USB-устройств. Linux-форензика в лице треккинга истории подключений USB-устройств Перезагрузка Linux для исправления USB-порта

Поддержка USB включена в ядро начиная с версии 2.2.7 и можно сказать, что эта технология уже обкатана и проблем при подключении таких устройств быть не должно. Достаточно лишь подключить фотокамеру, флешку, принтер или любое другое устройство, как оно будет автоматически распознано. А будет ли работать например принтер зависит от наличия драйверов.

Чтобы было возможным оценить ситуацию разберем, как реализована поддержка USB и где искать информацию о подключенных стройствах, хотя все сказано о частично касается и USB. Реализацией поддержки USB в Linux занимается Linux USB Project (www.linux-usb.org), куда и следует идти за информацией. В сегодняшних компьютерах можно найти три типа контролеров, отличающихся интерфейсом взаимодействия с устройствами. Это OHCI (Open Host Controller Interface), UHCI (Universal Host Controller Interface) и EHCI (Enhanced Host Controller Interface). Первые два реализуют поддержку USB версии 1.1, последний 2.0 обеспечивая скорость обмена до 480 Мбит/с. UHCI контроллеры несколько проще и дешевле, но требуют сложных драйверов и больше нагружают на процессор. Узнать свой тип контролера все так же очень просто:

$ lspci -v
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1) (prog-if 10 )

Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 11
Memory at fe02f000 (32-bit, non-prefetchable)
Capabilities:

00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2) (prog-if 20 )
Subsystem: Biostar Microtech Int’l Corp Unknown device 3405
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 5
Memory at fe02e000 (32-bit, non-prefetchable)
Capabilities:

Как видишь, у меня имеются оба типа контроллеров: OHCI и EHCI. Если ты используешь самосборное ядро, включи нужный драйвер в пункте «USB Host Controller Drivers». Не буду тебя нагружать всеми опциями, все параметры которые доступны в ядре можно промотреть набрав «cat /usr/src/linux/.config | grep -i usb».

Также следует помнить, что работа с USB осуществляется путем эмуляции SCSI, поэтому нужно активировать и параметры относящиеся к поддержке SCSI.
Для непосредственной работы с USB-устройствами создается каталог /proc/bus/usb в виртуальной файловой системе /proc, который монтируется через /etc/fstab:

none /proc/bus/usb usbfs noauto 0 0
Если такой строчки в твоем файле нет, это может означать что разработчики избавили тебя от лишних мыслей и монтируют usbfs в стартовых скриптах. В каком конкретно скрипте это делается, ты узнаешь введя «sudo grep -iR «usbfs» /etc/* «. Например в KUbuntu за монтирование USB отвечает скрипт /etc/init.d/mountdevsubfs.sh . Вручную смонтировать файловую систему для USB к /proc/bus/usb, можно так:

$ sudo mount -t usbdevfs none /proc/bus/usb

После этого команда «mount | grep usbfs » должна показать наличие строки:

procbususb on /proc/bus/usb type usbfs (rw)

А вывод «lsmod » загруженные модули usbcore , модуль драйвера ohci_hcd,ehci_hcd, uhci_hcs , а также модуль соответствующий драйверу подключенного устройства вроде scanner.o, printer.o, usb_storage .
Информацию о подключении USB устройства можно получить из /var/log/dmesg и непосредственно из /proc . Если каталог /proc/bus/usb пуст это значит, что виртуальная файловая система USB не смонтирована. Внутри каталога должно быть несколько файлов с именами вида 001, 002 по количеству контроллеров и файл devices который «знает» обо всех устройствах:

$ cat /proc/bus/usb/devices

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh=10
B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub) Sub=00 Prot=01 MxPS=64 #Cfgs= 1

S: Manufacturer=Linux 2.6.20-15-generic ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:00:02.1


E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh=10
B: Alloc= 0/900 us (0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.20-15-generic ohci_hcd
S: Product=OHCI Host Controller
S: SerialNumber=0000:00:02.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms

T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1307 ProdID=0163 Rev= 1.00
S: Manufacturer=????????y
S: Product=USB Mass Storage Device
S: SerialNumber=9fe1ad57805553
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 80mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=16ms

Расшифровать вывод легко, подробности ищи в документации (/usr/src//Documentation/usb/proc_usb_info.txt ). Скажу только, что буква T указывает на топологию, Bus и Level показывают к какой шине подключено устройство и уровень, Spd показывает скорость, MxCh — сколько еще устройств можно подключить к нему, Driver — драйвер. Например Driver=hub показывает, что это хаб, а Driver=usb-storage — USB устройство для хранения информации.
В репозитарии KUbuntu можно найти несколько утилит, которые помогут тебе разобраться с USB. Так использовав lsusb ты получишь еще больше информации о USB устройствах, а не нравится консоль используй usbview.

Вот в принципе и все, что хотелось сказать о подключении горячих устройств к компьютеру с Linux, надеюсь с сегодняшнего дня проблем с этим у тебя уже не будет.

При подключении USB флешки или любого другого USB устройства к компьютеру создается набор файлов, с помощью которых вы можете получить к ним доступ. Когда вы работаете в файловом менеджере все достаточно просто, но как только дело доходит до консоли все становится намного труднее.

Каждому новичку важно уметь идентифицировать подключенные устройства, будь то usb флешки, SD карты или жесткие диски чтобы не записать что-либо не туда или не отформатировать не тот диск. В этой статье мы рассмотрим несколько способов как посмотреть usb устройства Linux, подключенные к компьютеру.

В операционной системе Linux используется особенная философия управления. Все объекты, в том числе и устройства считаются файлами. При подключении какого-либо устройства к системе для него создается файл в каталоге /dev/.

Обычно, после того, как вы подключили любую USB флешку или другой накопитель к системе с установленным окружением рабочего стола, устройство автоматически монтируется в папку /media/имя_пользователя/метка_устройства/, а затем вы можете получить доступ к файлам из устройства в этой папке. Тем не менее, бывают ситуации, когда вам нужно вручную монтировать USB и тогда такой вариант не поможет.

Файлы всех устройств находятся в каталоге /dev/. Здесь вы можете найти файлы sda, hda, которые представляют из себя жесткий диск, а также файлы sda1 или hda1, которые позволяют получить доступ к разделам диска. Мы уже подробно рассматривали это все в статье . Вы можете посмотреть список всех устройств в каталоге /dev/ с помощью команды:

Теперь осталось понять какие из этих файлов устройств принадлежат USB устройствам и каким устройствам именно.

Как посмотреть USB устройства Linux

Чтобы узнать более подробную информацию о каждом устройстве, подключенном к вашей системе и посмотреть список устройств linux, можно использовать команду df. Она используется для просмотра свободного места на диске:

По общему размеру и занятому пространству вы можете определить какое из устройств является вашей флешкой, но этот способ посмотреть устройства linux не очень удобен и работает он только с уже смонтированной флешкой, есть еще несколько, дающих более точную информацию.

Команда lsblk отображает список всех блочных устройств, подключенных к вашему компьютеру. Утилита отображает не только их размер, но и тип (диск/раздел) а также старший и младший номер устройства. Тут уже немного проще найти флешку, мы видим два диска, и если первый с размером 698 гигабайт это жесткий диск, то второй, - точно флешка:

Есть еще один способ, это утилита fdisk. Она позволяет посмотреть таблицу разделов на всех блочных устройствах, подключенных к компьютеру. Но утилиту нужно выполнять от имени суперпользователя:

Также, узнать о подключенном USB устройстве можно посмотрев очередь сообщений ядра dmesg. Здесь хранится информация обо всех операциях, которые происходят в ядре. В том числе здесь будет отображено имя флешки, только что подключенной к компьютеру. Для просмотра сообщений ядра выполните:

Чтобы посмотреть какие из sd устройств относятся к USB используйте такую команду:

ls -l /dev/disk/by-id/usb*

USB - Universal Serial Bus (Универсальная последовательная шина) была разработана консорциумом компаний с целью предоставить единственную, простую шину для подключения периферии.

Дизайн USB позволяет устройствам подключаться на лету, используя для подключения стандартные гнезда. USB устройства включают в себя: клавиатуры, мыши, принтеры, сканеры, жесткие диски, флэш-драйвы, камеры, модемы, сетевые адаптеры и колонки, а их список постоянно растёт.

Имеющаяся в Linux поддержка USB устройств достаточно всеобъемлюща, но ряд устройств требуют специальных драйверов, а другие, преимущественно принтеры и сканеры, могут не поддерживаться или поддерживаться лишь частично.

Компьютерные системы могут содержать один или более контроллеров или хабов, предназначенных для подключения USB устройств или другого (внешнего) хаба. Хаб может поддерживать до 7 устройств, которые, в свою очередь, могут иметь дополнительные хабы. Хаб внутри системного блока называется root hub (корневой хаб). Каждая такая звездоподобная топология может поддерживать до 127 хабов или устройств.

Говоря USB порт, мы подразумеваем возможность поддержки USB в компьютере и гнездо для подключения, а не внутренний адрес порта, используемый устройством.

Многослойность USB системы позволяет хосту определить характеристики USB устройства, включая класс, имя производителя, имя устройства, требования к напряжению, скорость, уровень поддержки USB и другие функции.

Модуль поддержки USB устройств в Linux

USB устройства в настоящее время полностью поддерживаются в Linux. Большая часть изменений проявилась в ветке ядра 2.6, хотя определённая поддержка имелась даже в ядрах 2.2. Linux поддерживает как USB 2.0, так и ранние спецификации. Ввиду подключения на лету (горячего подключения), заложенной в самой природе USB, поддержка обычно производится посредством модулей ядра, которые могут загружаться или выгружаться по необходимости.

Команда lspci позволяет отобразить USB устройства:

Root@localhost:~:# lspci | grep -i usb 00:03.0 USB Controller: Silicon Integrated Systems USB 1.1 Controller (rev 0f) 00:03.1 USB Controller: Silicon Integrated Systems USB 1.1 Controller (rev 0f) 00:03.3 USB Controller: Silicon Integrated Systems USB 2.0 Controller

Вывод команды показывает, что в системе имеются 3 USB контроллера.

С помощью команды lsmod можно отобразить загруженные USB модули:

Root@localhost:~:# lsmod | egrep "usb|hci|hid|mouse|Module" Module Size Used by hid_microsoft 3232 0 usbhid 32992 0 hid 39040 2 hid_microsoft,usbhid ohci_hcd 24332 0 psmouse 41644 0 ssb 38464 1 ohci_hcd ehci_hcd 34152 0

Отображение подключенных USB устройств

Сводная информация о подключенных в настоящее время USB устройствах содержится в файле /proc/bus/usb/devices . Вывести её можно следующей командой:

Root@localhost:~:# cat /proc/bus/usb/devices T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3 B: Alloc= 0/900 us (0%), #Int= 0, #Iso= 0 D: Ver= 1.10 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 2.6.29.6 ohci_hcd S: Product=OHCI Host Controller S: SerialNumber=0000:00:03.1 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3 B: Alloc= 28/900 us (3%), #Int= 2, #Iso= 0 D: Ver= 1.10 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0001 Rev= 2.06 S: Manufacturer=Linux 2.6.29.6 ohci_hcd S: Product=OHCI Host Controller S: SerialNumber=0000:00:03.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=1.5 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=045e ProdID=00db Rev= 1.73 S: Manufacturer=Microsoft S: Product=Natural� Ergonomic Keyboard 4000 C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID) Sub=01 Prot=01 Driver=usbhid E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID) Sub=00 Prot=00 Driver=usbhid E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=10ms T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6 B: Alloc= 0/800 us (0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1d6b ProdID=0002 Rev= 2.06 S: Manufacturer=Linux 2.6.29.6 ehci_hcd S: Product=EHCI Host Controller S: SerialNumber=0000:00:03.3 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

В листинге Spd=480 соответствует шине USB 2.0, а Spd=12 - устройствам USB 1.1. Далее в списке видно, что к системе в настоящее время подключено 1 USB устройство - Microsoft Natural Ergonomic Keyboard 400 (Spd=1.5).

На этой клавиатуре я, естественно, и набираю данный текст.

Иерархию подключения USB устройств позволяет увидеть команда lsusb с опцией -t:

Root@localhost:~:# lsusb -t Bus# 3 `-Dev# 1 Vendor 0x1d6b Product 0x0001 Bus# 2 `-Dev# 1 Vendor 0x1d6b Product 0x0001 `-Dev# 2 Vendor 0x045e Product 0x00db Bus# 1 `-Dev# 1 Vendor 0x1d6b Product 0x0002

Вывод информации о конкретном USB устройстве можно получить следующей командой:

Root@localhost:~:# lsusb -vd 0x045e:0x00db Bus 002 Device 002: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x045e Microsoft Corp. idProduct 0x00db Natural Ergonomic Keyboard 4000 V1.0 bcdDevice 1.73 iManufacturer 1 Microsoft iProduct 2 Natural� Ergonomic Keyboard 4000 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 59 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 0 ** UNRECOGNIZED: 09 21 11 01 00 01 22 3c 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 No Subclass bInterfaceProtocol 0 None iInterface 0 ** UNRECOGNIZED: 09 21 11 01 00 01 22 56 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 10 Device Status: 0x0000 (Bus Powered)

Подключение USB устройства на лету

Новые системы имеют поддержку подключения USB устройств на лету (горячее подключение), что подразумевает подключение устройства к работающей системе, которая должна:

  • определить тип USB устройства, найти драйвер и запустить его;
  • связать драйвер с устройством;
  • уведомить о USB устройстве другие подсистемы.

В рамках погружения в одну из дисциплин (в процессе обучения по специальности Компбеза) я работал над одним занимательным проектом, который бы мне не хотелось просто похоронить в недрах папки «Универ» на внешнем винчестере.

Сей проект носит название

usbrip

и представляет собой небольшую консольную опенсорс утилиту для Linux-форензики, а именно для работы с историей подключений USB-устройств. Программа написана на чистом Python 3 (с использованием некоторых сторонних модулей) и не требует зависимостей помимо Python 3.x интерпретатора и нескольких строк из

requirements.txt

Разрешающихся одной строкой с помощью pip3.

В этом посте я опишу некоторые возможности данного софта и оставлю краткий мануал со ссылкой на источник загрузки.

$ python3 usbrip.py ids download

Ссылки и постскриптум

Забрать утилиту можно с

Гитхаба

Все зависимости для запуска и корректной работы указаны в

requirements.txt

Благодарю за внимание!

P. S.

да, стиль баннера и информационных сообщений вдохновлен проектом

sqlmap

Вы подключили USB-флеш-накопитель или клавиатуру или мышь к вашему Linux ПК. Но ничего не происходит.

В чем дело? Почему ваш Linux ПК не обнаруживает устройство? Дело в Linux, или ваше USB-устройство перестало работать?

USB не работает в Ubuntu?

Дисководы, устройства чтения карт памяти, телефоны, медиаплееры и периферийные устройства мультимедиа… все они полезны, но если есть проблема с USB-портом или драйверами вашей системы, они не будут работать. Это может быть особенно неприятно, если вы используете клавиатуру Bluetooth или мышь (с USB-ключом), поскольку это означает выкапывание проводных альтернатив USB.

Однако, это может быть не неработающий порт. Возможно, USB-устройство, которое вы используете, имеет неисправность и не может быть обнаружено.

Решение проблем с USB может быть сложной задачей, но эти неисправности не невозможно диагностировать и сделать необходимые исправления.

Для устранения проблем USB в Linux необходимо выполнить пять шагов:

  1. Убедитесь, что USB-порт обнаружен
  2. Произвести необходимые ремонтные работы в порта
  3. Исправить или восстановить USB-устройства
  4. Перезагрузите операционную систему Linux
  5. Подтвердите наличие драйверов устройств

Давайте рассмотрим каждый из них по очереди и научимся работать с хитроумными USB-устройствами в Linux.

1. Ваше устройство обнаружено Linux?

Первое, что нужно проверить при вставке вашего USB-устройства на ваш компьютер Linux, — это его обнаружение. Обнаружение USB-устройства обычно не является вербальным или слышимым (в Linux Deepin — это не так), как в Windows или macOS, что означает, что вам часто приходится проверять, что устройство было захвачено операционной системой.

К счастью, это просто.

Во-первых, отсоедините USB-устройства, которые вы запрашиваете. Затем откройте окно терминала и введите команду » list USB:

Команда dmesg перечислит подключенные USB-устройства в вашей системе. Он также будет включать в себя оборудование, отличное от USB и к сожалению, предоставляет огромный объем информации. Чтобы противостоять этому, вы можете попробовать:

Это похоже на нечто среднее между командами dmesg и lsusb, перечисляя подключенное USB-оборудование с достаточной информацией для их идентификации.

Итак, USB который вы подключили, указан здесь? Если нет, то возможно порт поврежден или возникла проблема с устройством. Точно так же устройство может быть несовместимо с Linux.

2. Как проверить порт USB

Если USB-устройство не отображается, это может быть связано с неисправностью USB-порта.

Лучший способ проверить это, просто использовать другой USB-порт на компьютере. Если оборудование USB теперь обнаружено, то вы знаете, что у вас есть проблема с одним из USB-портов.

Если другой USB-порт недоступен, вам нужно попробовать USB-устройство на другом ПК или ноутбуке. Однако, это может быть не идеальным вариантом, поскольку в качестве альтернативы вы можете использовать компьютер с Windows или macOS и в данном случае, некоторые USB-устройства не могут использоваться в Linux. Так что будет сложно определить, что именно вызывает проблемы, является ли это USB-устройство или USB-порт.

Для достижения наилучших результатов, где это возможно, придерживаться Linux-совместимого оборудования при устранении неполадок USB-устройств.

3. Исправление поврежденного USB-оборудования

Если ваше оборудование USB неисправно, у вас есть два варианта: исправить или вернуть.

Исправление обычно включает проверку порта USB, а также устройства, которое в настоящее время не работает. Исправления почти всегда будут сосредоточены вокруг кабеля USB и порта на вашем компьютере. USB-кабели, как правило, могут быть заменены, однако USB-порты могут быть отремонтированы.

Физическая проверка оборудования USB — хорошая идея. Кабели должны быть прочными, без каких-либо разрывов, металлическая секция надежно закреплена.

USB-порты, тем временем, должны быть проверены с выключенным ПК и отключены от электросети. Проверьте, что порты надежно закреплены, шаткие порты USB являются признаком износа оборудования.

Если USB-порт ослабевает, вы можете припаять его обратно на место. Конечно, вы уже должны знать как паять, никогда не пытайтесь выполнять DIY работу (сделай это сам) без предварительного опыта.

Кроме того, проверьте наличие пыли и грязи в USB-портах, особенно на задней панели компьютера, где регулярно собирается пыль. Пыль является врагом ПК, поэтому стоит держать вашу систему в среде где нет пыли. Пыль может проложить свой путь в ваш ПК через USB-порты, найдите время держать эти порты в чистоте. Используйте сжатый воздух для рассеивания пыли и грязи.

Можете ли вы вернуть свое USB-устройство? Если оно новое, то вероятно. Проблема в том, что если она явно не помечено как работающее под Linux, то магазин вряд ли примет возврат.

4. Перезагрузка Linux для исправления USB-порта

В некоторых случаях — например, если вы используете ноутбук — проблемы с питанием могут повлиять на его способность обнаруживать USB-устройства. Параметр autosuspend предназначен для снижения энергопотребления ноутбуков Linux, но он может оказаться контрпродуктивным.

Так, что вы можете сделать?

Сначала проверьте, является ли причиной проблемы autosuspend. Вы можете сделать это, перезагрузив компьютер. Если USB-устройство работает, то этот USB-порт получает питание.

Следующий шаг — убедиться, что это не повторится. Следующие трюки командной строки предназначены для Ubuntu 18.10, поэтому проверьте правильность процедуры в предпочитаемом дистрибутиве Linux.

Откройте окно терминала и введите:

cat /sys/module/usbcore/parameters/autosuspend

Вот, ищите:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash"