В Debian 10 необходимо изменить MAC-адрес интерфейса для подключения с использованием Ethernet через USB

Вы можете протестировать следующий код, в котором я разбиваю ваши ключевые слова на массив awkс именем keysи элементами N. все начинается с keys[1], и мы устанавливаем флаг для проверки следующих строк с 1 по N-1на соответствие соответствующим значениям в ключах массива [индекс от 2 до N], любые несоответствия до N -1 строка сбрасывает этот флаг, если он достигает строки N-1, то все подходит для вывода (мы также сбрасываем флаг=0 здесь, поэтому последовательный запуск flag==1 никогда не превышает N-1строк):

$ cat t24.awk
BEGIN{ 
    FS = OFS = "\t";
    keywords = "polyketide synthase,methyltransferase,oxidoreductase";
    N = split(keywords, keys, ",")
}

# flag==1 means we are doing regex_match the next N-1 lines
# against corresponding array element in keys from [2:N] 
# once a unmatched found, turn off flag immediately
# if the flag==1 reached N-1 lines, then print the good match
flag {
    if($NF ~ keys[NR - start_line + 1]) {
        F = F ORS $0;
        if (NR == start_line+N-1) {print F > "out_" f++; flag = 0 }
        next
    } else {
        flag = 0;
    }
}

# set up the flag/start_line and reset F
$NF ~ keys[1] { flag = 1; F = $0; start_line= NR; }

Запустите приведенный выше код с помощью awk -f t24.awk file.txt. Вы можете настроитьkeywords(с разделителями-запятыми )из вашей оболочки (вместо жесткого -, закодированного в блоке BEGIN), а затем использовать -v keywords="...", чтобы сделать его более гибким.

0
24.03.2020, 16:51
2 ответа

С помощью правила udev и небольшого скрипта можно назначить фиксированный Mac-адрес, когда USB-модем установлен, как объясняется Mon Bloc -Notes .

Найдите серийник вашего устройства (в статье это usb0, у вас eth0 если не ошибаюсь ).

udevadm info -a -p /sys/class/net/eth0

Создайте или добавьте новое правило в /etc/udev/rules.d/90 -local.rules

ACTION=="add", DRIVERS=="usb", ATTRS{serial}=="xxxx", RUN+="/etc/udev/scripts/android"

Создать исполняемый скрипт /etc/udev/scripts/android

#!/bin/bash
ifconfig eth0 down
ifconfig eth0 hw ether 02:11:22:33:44:55
ifconfig eth0 192.168.42.1
ifconfig eth0 up

Наконец, запретите сетевому менеджеру управлять этим устройством (см. ссылку ).

0
28.04.2021, 23:19

Я использую buster 10.4 и, возможно, хочу предупредить, что я вообще использую NetworkManager.

Чтобы Ethernet через USB работал правильно, я добавил

  g_ether 
с

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

К моему удивлению, когда я набрал

  ifconfig -a 

теперь было два интерфейса Ethernet -исходный интерфейс Ethernet

 enp0s25

и второй интерфейс Ethernet.

  enx00e02277cd85

с MAC-адресом 00:e0:22:77:cd:85.

Я просто добавил второй интерфейс в /etc/network/interfacesкак

    iface enx00e02277cd85 inet static
    address 192.168.2.11
    netmask 255.255.255.0
    network 192.168.2.0
    gateway 192.168.2.1

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

И добавил IP-адрес в /etc/hosts, используя для удобства имя pluto.

Кроме того, если вы наберете ifconfigв нужный момент после подключения USB-устройства, новое устройство запустится как eth0, но будет переименовано в enx00e02277cd85.

Мое единственное требование — иметь возможность подключаться по ssh к устройству, которым является ADALM -PLUTO SDR -полнодуплексное -радиочастотное устройство.

0
28.04.2021, 23:19

Теги

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