В выводе dmesg должны быть сообщения вроде
[ 1.768941] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 1.769021] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
...
[ 1.787161] xhci_hcd 0000:02:00.0: xHCI Host Controller
[ 1.787880] xhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 2
(они из моей системы), если ядро обнаруживает USB оборудование и драйверы назначает, но их там нет.
В качестве модулей вам понадобятся xhci_pci
и ehci_pci
в качестве драйверов для контроллеров PCI USB (не помешает иметь оба, и я не уверен, как USB 2.0 на Поддерживается оборудование USB 3.0, поэтому лучше включать оба, по крайней мере, пока проблема не будет устранена), а также xhci_hcd
и ehci_hcd
для общей поддержки.
Снимок экрана конфигурации не соответствует выходным данным .config
, поэтому я не уверен, какая у вас текущая конфигурация. На снимке экрана указано, что XHCI - это модуль, а в вашем .config
указано, что он встроен.
Установка всех модулей на модули упростит отладку. Так что измените все 4 на M
, перекомпилируйте ядро, перезагрузитесь, проверьте с помощью lsmod
, которые загружены. Если ни один из них не загружен и не используется, modprobe
вариантов pci и посмотрите, есть ли какие-либо сообщения об ошибках или другие сообщения в dmesg / syslog.
Если оба модуля не загружаются, посмотрите числовой идентификатор поставщика и устройства вашего контроллера ( lspci -n
) и проверьте с помощью modinfo
или проверив источник, что модули должны распознавать ваше оборудование.
Инструмент, который будет обрабатывать большую часть этого, это arpwatch
. По умолчанию (по крайней мере, в Debian) он пишет в /var/lib/arpwatch/arp.dat
. Этот файл промывается и обновляется каждый раз, когда arpwatch
останавливается.
Файл содержит записи такой формы:
52:54:00:aa:bb:cc 192.168.1.2 1452252063 somehostname eth0
Файл /etc/ethers
требует только MAC-адрес и либо IP-адрес, либо разрешаемое имя хоста:
52:54:00:aa:bb:cc 192.168.1.2
Затем довольно просто поддерживать /etc/ethers
обновленным и синхронизированным с помощью небольшого скрипта, запускаемого ежедневно из crontab
:
#!/bin/bash
# Flush arp.dat
service arpwatch restart
# Save a copy
test -f /etc/ethers || touch /etc/ethers
cp -fp /etc/ethers /etc/ethers.old
# Check to see if anything new has arrived. If so rebuild the file
(
echo '# This file is updated automatically from /var/lib/arpwatch/arp.dat'
echo '# Take care when editing'
echo '#'
(
awk '{print $1,$2}' /var/lib/arpwatch/arp.dat
grep -v '^#' /etc/ethers.old
) |
sort -u
) >/etc/ethers.tmp
# Update ethers with the new file
cmp -s /etc/ethers.tmp /etc/ethers || cat /etc/ethers.tmp >/etc/ethers
rm -f /etc/ethers.tmp
# All done
exit 0