LINUX.ORG.RU
решено ФорумAdmin

Помогите осознать задницу с MAC-адресами, DHCP, фазами луны и дьяволом.

 ,


0

3
  1. Есть железка cubieboard3/cubietruck, но проблема вряд-ли специфична. На неё месте мог бы быть любой Raspberry. На ней есть распаянная флешка, там стоит какой-то неведомый линукс - он не важен. Важно, что этот распаянный линукс после загрузки умеет посылать запросы по BOOTP/DHCP в etnerhet-сеть и успешно получать себе IP-адрес. Дальше на распаянный линукс можно прийти по ssh и успешно получить официальный отлуп (паролей я не знаю). В общем, сеть работает в две стороны. Кроме распаянной флешки, железка умеет грузиться с SD-карты, если таковая воткнута.

  2. У других людей была такая же железка, которую долго грузили с SD-карты, причём readonly (ну не важно). На SD-карте была свежая Armbian - ну считай Debian/Ubuntu, скомпилённая под этот Allwinner A20 ARM cortex-A7. Я взял у людей эту флешку и тупо скопировал себе корень. Как файлики. Тупо через tar -czvf весь корень. (да-да, я просто мог скачать образ Armbian и официально накатить, но были нужны накопившиеся изменения и оптимизации в системе, сделанные этими людьми; да-да, можно было скопировать флешку как образ, но это была бы другая история наверное). Далее взял вторую флешку, создал там таблицу разделов и 1 раздел ext4 (поставил ещё на нём галку BOOT, возможно это ни на что не влияет), распаковал в этот новый ext4 свой архив. Далее ещё немного страданий: скомпилил U-Boot, накатил на флешку U-Boot, пофиксил в /boot конфиге UUID корневой ext4 на правильный. В общем, успешно удаляя зубы через ноздри, заставил железку грузиться с моей франкенштейн-флешки.

  3. Втыкаю свою новую флешку в свою железку. Косвенно по миганиям лампочек я вижу, что теперь загружается не что-то с распаянной флешки, ибо мигания совсем не характерны, а кое что и вообще не мигает! Грузится именно система с моей SD. Причём успехово загружается, видимо даже доходит до исполнения /etc/network/interfaces и начинает посылать BOOTP/DHCP запросы. Ну и по логам на DHCP-сервере я вижу, что запросы приходят, но немного другие… И тут-то самый цимес!

  4. ВОПРОС-ПРИКОЛ. Прикол в том, что у системы с флешки сеть как будто односторонняя! С распаянной флешки приходит один MAC, а система с SD-карты говорит другой MAC (это не самое страшное, подумаешь разные MAC). Но системе с распаянной флешки IP-адрес выдают - она проходит успешно все 4 этапа: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK. Но система с SD-карты как будто физически не видит пакетов от DHCP-сервера. От SD-карты приходит DHCPDISCOVER, DHCP-сервер отвечает обратно DHCPOFFER и на этом конец до следующего повтора цикла. Как будто у системы на флешке этот MAC где-то забит, который конфликтует с физическим: как будто на исходящие пакеты проставляется какой-то левый, а входящие отбрасывает сама сетевуха физически, т.к. думает, что это пришло не для неё. Но нет! Замена MAC на SD-карте (написанием hwaddress ether 00:11:22:33:44:55 в /etc/network/interfaces где следует) не меняет ситуацию - точнее на DHCP-сервер SD-карта теперь приходит с тем же MAC, с каким приходила распаянная флешка, но толку нет. Свитчей между устройствами нет: клиент прямо кабелем UTP воткнут в сервер. Покопаться в системе в распаянной флешке возможности нет, чтобы что-то позучать, да и неинтересно. Грепание MAC-адреса, с которым в DHCP-сервер приходила SD-карта на этой SD-карте успехов не принесло, видимо это таки настоящий MAC, а на распаянной флешке забит левый, но это тоже не важно. Пробовал поставить статический адрес на SD-карту: эффект ещё интереснее: когда SD-карту пингуешь с хоста A, то SD-карта начинает вещать в сеть ARP-запросы: «а кто из вас тут A?», на что A отправляет ответы в сеть, но их как будто никто не видит. Скорее всего ARP-запросы от железки с пингом не связаны, а связаны с тем, что адрес A был случайно забит на SD-карту как default gateway, а с пингом просто по времени совпало. В общем, чудесный прикол: как будто слепая на приём сеть на cubieboard-3/cubietruck при загрузке с этой странной флешки. Я бы понял, если бы на флешке побились модули ядра про сеть, но в одну сторону-то сеть работает!

Кто что думает хорошего про всё это - поделитесь! Спасибо.

Немного дампа трафика с запросами DHCPDISCOVER и уходящими вникуда DHCPOFFER:

03:25:23.646663 02:0b:04:02:22:20 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 02:0b:04:02:22:20, length 300
03:25:23.646814 28:d2:44:bd:f8:8a > 02:0b:04:02:22:20, ethertype IPv4 (0x0800), length 342: 192.168.30.1.67 > 192.168.30.16.68: BOOTP/DHCP, Reply, length 300
03:25:39.412397 02:0b:04:02:22:20 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 02:0b:04:02:22:20, length 300
03:25:39.412829 28:d2:44:bd:f8:8a > 02:0b:04:02:22:20, ethertype IPv4 (0x0800), length 342: 192.168.30.1.67 > 192.168.30.16.68: BOOTP/DHCP, Reply, length 300

SOLVED Решено. Но вопросов осталось ещё больше: надо было пересобрать U-Boot с конфигом не для Cubieboard3, а для Cubieboard2, потому что тот конфиг взводит какие-то не те GPIO-пины, в результате чего из-за особенностей разводки платы сетевуха впадает в полуглухой режим работы. Это жепь-ебрилло и понять без бутылки это невозможно, но это работает.



Последнее исправление: lesopilorama (всего исправлений: 4)

мог скачать образ Armbian

Ещё не поздно.

tcpdump то надо на этой cubieboard запускать, либо с записью в файл на SD-карту, либо с отправкой выхлопа по udp через nc, если вы ребутаете через отключение питания, что усложняет запись в файл. Понятно, что чтобы в этой ситуации плата что-то отправляла на ip-адрес, на ней нужно прописать arp-запись, раз arp протокол для неё не работает.

mky ★★★★★
()

Ответим на вопросы читателей:

  1. Как всё это починить - понятно, но неинтересно: сделать dd оригинальной флешки, накатить armbian заново на новую флешку и т.п. Цель топика понять про происходит в ДАННОЙ ситуации, которая тоже имеет право на жизнь, ибо флешка таки грузится с этим U-Boot и таки система поднимается.

  2. Фаерволов, свитчей и т.п. точно нет. Если бы были, то не работала бы оригинальная флешка с той же системой, откуда была сворована вся файловая система.

  3. Запустить что-то на cubieboard я не могу, монитора нет. Могу конечно в автозапуск запилить какой-то свой скрипт, который запустит tcpdump -nn -i eth0 2>&1 > /home/hehehe/log.txt и дать этому поработать…

  4. Как запустить срачь syslog в исходящие UDP пакетики надо погуглить. А точно всё что надо в syslog попадёт? Там же systemd и все сервисы срут в разные журналы, которые просматриваются через journalctl -u <module.service>

  5. Коммент про образ ядра и рамдиск - это самое интересное пока в этом треде. Интересно что там могло быть такого в рамдиске, что система загрузилась, но отвалилась жопа у ethernet НАПОЛОВИНУ.

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

Если бы были, то не работала бы оригинальная флешка с той же системой

Я имел в виду фаерволл на самой доске, а не между ей и дхцп-сервером. Если «такой же железке у людей» он был настроен на тотальный отлуп, ты мог скопировать его настройки и получить похожий эффект.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Я имел в виду фаерволл на самой доске, а не между ей и дхцп-сервером. Если «такой же железке у людей» он был настроен на тотальный отлуп, ты мог скопировать его настройки и получить похожий эффект.

Нет, я ведь гружусь успехово с этой «флешки людей» на этой моей железке и вижу хорошее поведение.

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

Распаковал всевозможные initrd, initramfs-ы и прочее такое, погрепал там, побраузил каталоги - не вижу ничего критически интересно-завязанного на размер/тип/UUID флешки…

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

А, так ты грузил свою железку с чужой карты и было ок? А потом сделал свою карту с той же чужой карты, и стало не ок?
Ты убедился, что железяка вообще грузится как надо? По модификации файлов например.

thesis ★★★★★
()
Ответ на: комментарий от mx__

Система у Вас не загрузилась.

Судя по тому, что исполняется написанное в /etc/network/interfaces - загрузилась вполне себе резво. Написанные там разные ужоснахи я вижу по проявлениям в сети. То MAC оно себе меняет согласно написанному, то начинает по ARP искать default gateway в сети…

Ну и если бы моя система не загрузилась, то ведь загрузилось же что-то, что ломится ко мне по DHCP (почему-то с написанным мной в /etc/network/interfaces MAC-адресом). Это не U-Boot, в нём загрузка по сети не конфигурировалась при сборке. К тому же, что мешает этому чему-то, ломящемуся по BOOTP/DHCP ко мне на сервер успешно получить адрес? Даже если моя система не загрузилась бы (а она загрузилась), почему этот кто-то, кто загрузился и ломится ко мне по DHCP, такой тупой?

lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 1)
Ответ на: комментарий от thesis

А, так ты грузил свою железку с чужой карты и было ок? А потом сделал свою карту с той же чужой карты, и стало не ок? Ты убедился, что железяка вообще грузится как надо? По модификации файлов например.

Да, всё так. По поводу убедился: карта монтируется чаще всего в ro (так надо было изначально и так в большинстве случаев тестируется), а логи всё равно все оседают в разных tmpfs и их никак не почитать. Надо это поправить и попробовать.

Главный признак успеховой загрузки системы: это сетевое поведение железки - из неё начинает в сеть лететь что-то очень характерно отражающее то, что я перед этим пишу в /etc/network/interfaces. (NetworkManager на SD-карте выпилен совсем, всё работает на ifup/ifdown старомодных и простых, с NetworkManager я ещё давно устал сражаться, он слишком умный и больше подходит для тесктопов, чтобы wi-fi сети для разных юзеров запоминать)

lesopilorama
() автор топика
Ответ на: комментарий от mx__

Вы думаете тут есть понимание про модули ядра ? И где они лежат ?

  1. Ну так дайте это понимание, если решение задачи предполагает взаимодействие с модулями.
  2. Понимание есть, но зачем. Пока что модули ядра в обсуждении не фигурировали и никакие советы по сабжу не затрагивали эту тему.
lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

Цель топика понять про происходит в ДАННОЙ ситуации

Согласно логике вещей, виновато в ситуации то, что не копируется «как файлики», но вполне переносится с помощью dd. Артибуты там какие-то, вот это вот всё.

Mobutu_Sese_Seko
()
Ответ на: комментарий от lesopilorama

Если там реально адрес 02:0b:04:02:22:20 - то это плохо.

2 первых бита в адресе сетевой карты не должны содержать единицы.

Не пробовал подключать плату к компу с dhcp напрямую (без коммутатора)?

Нет ли на плате консоли в виде rs232 (c ttl уровнями)? Это бы существенно все упростило.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

Не пробовал подключать плату к компу с dhcp напрямую (без коммутатора)?

Так всё и подключено. Вроде бы сказано в первопосте.

Нет ли на плате консоли в виде rs232 (c ttl уровнями)? Это бы существенно все упростило.

Возможно и есть. Доставать USB->TTL и начинать паять пока не хочется, ещё не та степень упоротости наступила, ещё не все погасли краски дня, ещё не жаль огня-я-я-я

lesopilorama
() автор топика
Ответ на: комментарий от Dimez

Как ты это узнал? Брейкпойнты ставил в ifupdown?

Вроде выше обсуждалось как. По влиянию написанного там на наблюдаемое поведение в сети. Пишу получать адрес по dhcp - вижу валятся DHCP запросы, пишу статический адрес - вижу железка начинает с этого адреса поливать ARP…

lesopilorama
() автор топика
Ответ на: комментарий от vel

Если ты можешь менять MAC в скриптах, то какая проблема включить promisc на сетевухе? Она тогда будет жрать все входящие пакеты.

Да она наверное и жрёт все. Кто её знает что она жрёт…

lesopilorama
() автор топика
Ответ на: комментарий от mx__

Я это пишу потому что не увидел ни одного ответа как Вы поняли что система загрузилась …

Ну не увидел и не увидел, с кем не бывает! Мне их чо, по три раза чтоль пейсать, если кто-то не увидел первый)

lesopilorama
() автор топика
Ответ на: комментарий от vel

Со статическим ip и МАС у тебя сеть работает или нет?

Это тоже в стартовом посте обсуждалось: если поставить статический MAC в /etc/network/interfaces, то с этого мака начинают прилетать DHCP-запросы, но ответам на них по-прежнему никто не «верит». А если поставить статический IP, то запросы по DHCP уже не прилетают. Но начинают прилетать запросы ARP вида «кто здесь 192.168.5.1?» (это адрес default gateway, указанный в конфиге железки заодно со статическим адресом). Если пинговать железку на поставленный ей адрес 192.168.5.7, то ноль эффекта, пакеты уходят в пустоту. Точнее мой хост говорит no route to host, то есть ARP не разобрался где тут 192.168.5.7.

Щас провожу эксперимент с запуском своего systemd сервиса «myhack.sh», который должен будет своровать /var/log/systemd из памяти на флешку через минуту работы. Кстати, на флешке обнаружился /var/log/systemd со следами загрузки прошлой ночью, то есть моя система таки стартовала. В нём ничего интересного не нашёл, только старые продакшен-сервисы и кроны с CURL-ом ругались на недоступность каких-то доменных имён…

lesopilorama
() автор топика
Ответ на: комментарий от vel

Убрал из /etc/fstab для корня флаг «ro» и обнаружил что на флешку пишется (или периодически скидывается из RAM) /var/log/syslog, начал его читать и там оказывается есть что почитать. Там прямо начиная со старта ядра весь dmesg присутствует. А также работа всех сервисов… Например оказалось, что wpa-supplicant на железке успешно поднял коннекшн к домашнему wi-fi роутеру на 2.4ghz и получил там адрес по DHCP. Короче там много букв, читаю… Есть и что-то про eth0, пока не понял, глаза разбегаются. wlan0 там по wi-fi через wpa-supplicant активно рефрешит айпишники, какие-то ключи туда-сюда, жизнь кипит… eth0 страдает.

Вот вижу такое. Оно мне загадочно.

2023-09-15T19:35:39.514516+03:00 cubieboard2 dhclient[483]: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 17 (xid=0xc2176c18)
2023-09-15T19:35:39.515235+03:00 cubieboard2 sh[483]: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 17 (xid=0xc2176c18)
2023-09-15T19:35:56.121372+03:00 cubieboard2 dhclient[483]: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 21 (xid=0xc2176c18)
2023-09-15T19:35:56.122145+03:00 cubieboard2 sh[483]: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 21 (xid=0xc2176c18)
2023-09-15T19:36:17.239034+03:00 cubieboard2 dhclient[483]: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12 (xid=0xc2176c18)
2023-09-15T19:36:17.239929+03:00 cubieboard2 sh[483]: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12 (xid=0xc2176c18)
2023-09-15T19:36:29.257525+03:00 cubieboard2 dhclient[483]: No DHCPOFFERS received.
2023-09-15T19:36:29.258301+03:00 cubieboard2 sh[483]: No DHCPOFFERS received.
2023-09-15T19:36:29.259051+03:00 cubieboard2 sh[483]: No working leases in persistent database - sleeping.
2023-09-15T19:36:29.259854+03:00 cubieboard2 dhclient[483]: No working leases in persistent database - sleeping.
2023-09-15T19:36:29.472393+03:00 cubieboard2 avahi-autoipd(eth0)[1385]: Found user 'avahi-autoipd' (UID 106) and group 'avahi-autoipd' (GID 114).
2023-09-15T19:36:29.473191+03:00 cubieboard2 avahi-autoipd(eth0)[1385]: Successfully called chroot().
2023-09-15T19:36:29.475797+03:00 cubieboard2 avahi-autoipd(eth0)[1385]: Successfully dropped root privileges.
2023-09-15T19:36:29.476791+03:00 cubieboard2 avahi-autoipd(eth0)[1385]: Starting with address 169.254.2.151
2023-09-15T19:36:31.065368+03:00 cubieboard2 systemd[1]: networking.service: start operation timed out. Terminating.
2023-09-15T19:36:31.068899+03:00 cubieboard2 ifup[567]: Got signal Terminated, terminating...
2023-09-15T19:36:35.638329+03:00 cubieboard2 avahi-autoipd(eth0)[1385]: Callout BIND, address 169.254.2.151 on interface eth0
2023-09-15T19:36:39.639142+03:00 cubieboard2 avahi-autoipd(eth0)[1385]: Successfully claimed IP address 169.254.2.151
2023-09-15T19:36:39.972075+03:00 cubieboard2 systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
2023-09-15T19:36:39.972918+03:00 cubieboard2 systemd[1]: networking.service: Failed with result 'timeout'.
2023-09-15T19:36:39.976411+03:00 cubieboard2 systemd[1]: Failed to start networking.service - Raise network interfaces.
2023-09-15T19:36:39.981007+03:00 cubieboard2 sh[1446]: ifup: interface eth0 already configured
2023-09-15T19:36:39.988228+03:00 cubieboard2 systemd[1]: Reached target network.target - Network.
2023-09-15T19:36:39.994042+03:00 cubieboard2 systemd[1]: Reached target network-online.target - Network is Online.

(на время смотреть не надо, часы на железке сдохли; «cubieboard2» тоже ничего не означает, там cubieboard3 должно быть по идее)

lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 4)
Ответ на: комментарий от lesopilorama

Прикол, конечно: посмотрел у wi-fi роутера в DHCP логах айпишник железки, который ей выдал DHCP. Железка пингуется по этому айпишнику! Лол, кек, кринж, поридж, кукодж! Хотя ssh по этому айпишнику чё-то впадает в ступор: connection established и дальше молчание. Хз чё это значит.

UPDATE ssh законнектился через wlan0 успешно прошёл дальше connection established до аунтефикации и логина в систему с 4-й попытки. Интересненько. В общем ладно, я научился попадать в систему через wi-fi. Интересно что бы теперь хорошего поделать-то с ней…

lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 3)
Ответ на: комментарий от vel

Прикол дня: что бы ни летало в сетевом проводе, на железке RX packets 0 всё время. Как-то драйвер eth0 неправильно сконфигурирован короче, сетевуха глухая совершенно. А летало в кабеле достаточно широковещательного.

root@cubieboard2:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::b:4ff:fe02:2220  prefixlen 64  scopeid 0x20<link>
        ether 02:0b:04:02:22:20  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 71  bytes 15438 (15.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 73  

lesopilorama
() автор топика
Ответ на: комментарий от lesopilorama

Нашёл интересный прикол, который может на что-то влиять:

Загрузка eth0-драйвера в прежние времена:

[   36.478040] sun7i-dwmac 1c50000.ethernet end0: PHY [stmmac-0:01] driver [Generic PHY] (irq=POLL)
[   36.478116] sun7i-dwmac 1c50000.ethernet end0: No Safety Features support found
[   36.478131] sun7i-dwmac 1c50000.ethernet end0: RX IPC Checksum Offload disabled
[   36.478149] sun7i-dwmac 1c50000.ethernet end0: No MAC Management Counters available
[   36.478166] sun7i-dwmac 1c50000.ethernet end0: PTP not supported by HW
[   36.479040] sun7i-dwmac 1c50000.ethernet end0: configuring for phy/mii link mode```

загрузка драйвера сейчас:
```[  654.099222] sun7i-dwmac 1c50000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[  654.104990] sun7i-dwmac 1c50000.ethernet eth0: PHY [stmmac-0:01] driver [Generic PHY] (irq=POLL)
[  654.113624] sun7i-dwmac 1c50000.ethernet eth0: No Safety Features support found
[  654.113663] sun7i-dwmac 1c50000.ethernet eth0: RX IPC Checksum Offload disabled
[  654.113682] sun7i-dwmac 1c50000.ethernet eth0: No MAC Management Counters available
[  654.113697] sun7i-dwmac 1c50000.ethernet eth0: PTP not supported by HW
[  654.113723] sun7i-dwmac 1c50000.ethernet eth0: configuring for phy/rgmii-id link mode
[  655.134032] sun7i-dwmac 1c50000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx```

В первом случае "phy/mii link mode", во втором - "phy/rgmii-id link mode"...
lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 1)

Штош, господа, УСПЕХ, РЕШЕНО! Но наркомания обрела конские масштабы. Пересобрал загрузчик u-boot, взяв за основу U-Boot конфиг Cubieboard2 вместо Cubieboard3/Cubietruck и запихнул новособранный U-Boot на SD-флешку. Ethernet на железке стал видеть входящие пакеты, всё завелось и порешалось. В недрах гугла чуваки упарываются по каким-то там пинам GPIO, которые надо не забыть взвести или опустить, чтобы сетевуха работала не через джоппу, а нормально. Почему это надо делать таким макаром, а это не предусматривается в драйвере сетевухи - это тема отдельного диссера.

Инструкция по компилянию U-Boot есть тут: это не сложно, основная сложность - поставить на систему кросс-компилятор типа arm-linux-gnueabihf-gcc-12 (что делается штатным apt install убунты) и дальше там буквально 3-4 команды https://linux-sunxi.org/Bootable_SD_card#Bootloader Разве что надо ещё по menuconfig полазить и врубить «поддержка загрузки с SD». Короче это всё как-то «сложна, сложна, сложна» и «ЯННП», тут уже полужелезячная тема. Какие-то там ревизии плат, куда-то там заведённые пины GPIO и прочий ужас. Почему сетевуха умеет излучать пакеты, но не умеет принимать? Это как так надо разводить плату, чтобы на это влиял какой-то GPIO пин? Чё за жепь?

Теперь сетевуха загрузилась вот так - прямо как «в те добрые времена у тех парней»: phy/mii link mode. Почему это так важно я не понял. Сетевуха ведь успешно договаривалась с другой сетевухой! Тулзой mii-tool eth0 -r я даже перезапускал передоговорняк на ней и он успешно завершался, но она всё равно не видела входящие.

[   16.308612] sun7i-dwmac 1c50000.ethernet eth0: PHY [stmmac-0:01] driver [Generic PHY] (irq=POLL)
[   16.308679] sun7i-dwmac 1c50000.ethernet eth0: No Safety Features support found
[   16.308694] sun7i-dwmac 1c50000.ethernet eth0: RX IPC Checksum Offload disabled
[   16.308712] sun7i-dwmac 1c50000.ethernet eth0: No MAC Management Counters available
[   16.308727] sun7i-dwmac 1c50000.ethernet eth0: PTP not supported by HW
[   16.319650] sun7i-dwmac 1c50000.ethernet eth0: configuring for phy/mii link mode
lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 1)
Ответ на: комментарий от lesopilorama

Это как так надо разводить плату, чтобы на это влиял какой-то GPIO пин?

У вас какое-то неправильное представление о том, что такое ethernet на SoC. Это в компах универсальная шина (ISA,PCI) и туда втыкается сетевая как отдельное устройство. А на вашей и подобных платах, «сетевая» разбита на две части, MAC (логика) в «процессоре», а PHI (преобразование к UTP) в отдельном чипе.

mii/rgmii — интерфейс взаимодействия MAC и PHI. Интерфейс не последовательный, там много контактов и на каких ногах PHI микросхемы оказывается какой сигнал в одном и другом режиме нужно смотреть в даташите.

пинам GPIO, которые надо не забыть взвести или опустить

Думаете, в обычных компах по-другому? Там в BIOS огромный блок конфигурации чипсета и прочих м/с на материнке. Если в мать залить левый BIOS можно тоже разные глюки ловить и никакой драйвер на тот уровень не заглянет.

mky ★★★★★
()

Многие загрузчики на одноплатниках, в особенности на «простых» процессорах вроде Allwinner, не разбираются в файловых системах и читают те данные, что есть по определённому смещению флешки.

Вы их не скопировали с оригинальной флешки. Могу предположить, что у вас на флешку, на которую вы копировали файлы, уже ранее был записан какой-то образ ОС, поэтому и загрузчик присутствовал, но не совсем от этой железки или не совсем подходящий для вашей ОС/вторичного загрузчика (u-boot).

ValdikSS ★★★★★
()

В целом, после прочтения топика у меня осталось какое-то хаотическое впечатление.

Если хочешь детально разобраться в том, что происходит, тебе нужно системно анализировать что есть что.

  1. схавать tcpdump все пакеты чтобы понять как адрес присваивается, какой предлагается, какой отвергается, какой устанавливается… Это все происходит в рамках протокола, поэтому тут нет неопределенности (в общем случае)…

  2. если есть возможность вытащить /etc с флешки…

  3. детально просмотреть dmesg, там должна быть строчка относящаяся к установлению MAC адреса интерфеса и потом к получению адреса по DHCP…

  4. Если вся жопа с присвоением адреса происходит на уровне драйвера, то только по перехвату пакетов ты сможешь это понять.

короче, больше системного подхода к анализу проблемы и меньше хаотичной информации…

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Всё это было детально изучено и не помогло. Дело оказалось тупо в конфигурации железа, которое находилось в таком состоянии, что на вход сетевуха была слепая, а на выход нормальная. Выяснилось рандомными тыками в небо и анализом конфига U-Boot и чтением каких-то форумных постов про какие-то GPIO пины на подобных платах и их взаимосвязь с сетевухами.

lesopilorama
() автор топика