есть ли инструмент / демон который автоматически заполняет / etc / ethers в фоновом режиме для правильного пробуждения в локальной сети hostname: mac database при необходимости?

В выводе 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 или проверив источник, что модули должны распознавать ваше оборудование.

3
07.01.2016, 23:59
1 ответ

Инструмент, который будет обрабатывать большую часть этого, это 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
1
27.01.2020, 21:30

Теги

Похожие вопросы