В BIOS отключите безопасную загрузку и быструю загрузку.
Когда запустится GRUB, нажмите на букву e
Перейдите в конец строки GRUB _CMDLINE _LINUX _DEFAULT и замените строку quiet splash
на nouveau.modeset=0
, затем нажмите [F10 ] продолжать.
Я еще раз протестировал настройку, чтобы проверить ваши проблемы, но, конечно, с текущей версией операционной системы и аппаратным обеспечением. Это Raspbian Buster на Raspberry Pi 4B. Упомянутая настройка — Обходной путь для моста Wi-Fi на Raspberry Pi с прокси-арпом . Для General Setup у меня есть классический преобразователь имен и демон avahi деинсталлирован и включен systemd -reolved , потому что я считаю, что он лучше подходит для systemd -networkd . Вы должны взглянуть на это.
1.) If the hotspot is not up, we can't ping the Raspberry Pi.
Это намеренно. RasPi должен быть прозрачным для подключенных устройств, как настоящий мост. Они должны видеть точку доступа, а не RasPi. Его IP-адрес предназначен только для управления прокси-сервером на уровне 3 OSI и не имеет значения для подключенных устройств. Если вы посмотрите на eth0 и wlan0 , они оба имеют один и тот же IP-адрес. Это не может работать на обычном сетевом устройстве. Поэтому, если точка доступа не работает, интерфейсы RasPis также не работают, потому что они работают так же, как и интерфейс.
2.) IF we run a long stretch of cable to the RPi [..] the RPi rarely handles this smoothly, often resulting in poor traffic through eth0 while it still attempts to link through wlan0, despite the poor connection.
Это пункт, который я не могу проверить, потому что у меня нет кабеля Ethernet на большие расстояния, но с длиной в пределах спецификации Ethernet это должно работать без проблем. Если нет, то это может быть проблема самого кабеля, экранирования, контактов и так далее. Чтобы получить представление, я провел тест пропускной способности в своей не очень производительной тестовой сети со старым RasPis. На проводном подключенном устройстве за точкой доступа я запускаю iperf --server
. На устройстве, подключенном к eth0 на RasPi, я запускаю:
rpi ~$ iperf --time 60 --client 192.168.50.174
------------------------------------------------------------
Client connecting to 192.168.50.174, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.50.3 port 43434 connected with 192.168.50.174 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-60.9 sec 286 MBytes 39.4 Mbits/sec
Интерфейс eth0 на RasPi не показывает никаких ошибок:
rpi ~$ ip -statistics link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether dc:a6:32:01:db:ec brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
510673218 338397 0 0 0 155
TX: bytes packets errors dropped carrier collsns
2690947 35971 0 0 0 0
На wlan0 нахожу аналогичный чистый результат без ошибок.
Ваши настройки статического адреса, шлюза и DNS в /etc/systemd/network/08-wlan0.network
верны. Я тестировал с аналогичной конфигурацией, и это не имеет ничего общего с отключением RPi, когда точка доступа не работает (, см. пункт 1.)выше ).
Неразборчивый режим необходим и устанавливается в файле модуля parprouted.service. Там вы найдете
ExecStartPre=/sbin/ip link set wlan0 promisc on
# and
ExecStopPost=/sbin/ip link set wlan0 promisc off
так что нет необходимости делать это снова.