Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| boards:nms-uq7-bklt:v1_ru:eth_addr [2024/01/15 17:29] – [Переменные окружения с точки зрения Linux] Артем Слепов | boards:nms-uq7-bklt:v1_ru:eth_addr [2024/01/26 09:57] (текущий) – [Переопределение MAC-адреса из Linux] Артем Слепов | ||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| MAC-адреса в модулях устанавливаются двумя способами: | MAC-адреса в модулях устанавливаются двумя способами: | ||
| - Вычитываются из I2C EEPROM 24AA025E48T-I/ | - Вычитываются из I2C EEPROM 24AA025E48T-I/ | ||
| - | - Через переменные окружения U-boot | + | - Через переменные окружения U-boot |
| - | В розничных модулях по умолчанию | + | Способ работы с MAC-адресами определяется на этапе сборки U-boot. |
| + | |||
| + | В розничных модулях по умолчанию прошит 1-й способ. | ||
| Строка 66: | Строка 68: | ||
| {{: | {{: | ||
| - | + | ||
| - | ** Переменнные окружения вычитаны успешно** | + | **Переменнные окружения вычитаны успешно** |
| {{: | {{: | ||
| Строка 73: | Строка 75: | ||
| ** Переменнные окружения не вычитаны ** | ** Переменнные окружения не вычитаны ** | ||
| - | ==== Переменные окружения с точки зрения U-boot | + | === Переменные окружения с точки зрения U-boot === |
| U-boot вычитывает переменные окружения либо из из области flash, которая опеределна на этапе компиляции, | U-boot вычитывает переменные окружения либо из из области flash, которая опеределна на этапе компиляции, | ||
| - | Во втором | + | Во случае невалидности необходимо выполнить команду //saveenv// в консоли U-boot. Так вкомпилированные переменные попадут во Flash. |
| < | < | ||
| BAIKAL # saveenv | BAIKAL # saveenv | ||
| Строка 83: | Строка 85: | ||
| </ | </ | ||
| - | ==== Переменные окружения с точки зрения Linux ==== | + | === Переменные окружения с точки зрения Linux === |
| Linux читает переменные окружения опираясь на /// | Linux читает переменные окружения опираясь на /// | ||
| < | < | ||
| Строка 95: | Строка 97: | ||
| Оба файла задаются на этапе сборке rootfs. | Оба файла задаются на этапе сборке rootfs. | ||
| + | Linux должен корректно вычитывать переменные через fw_printenv (не должно быть сообщения //using default environment// | ||
| + | === Переопределение MAC-адреса из Linux === | ||
| + | Команда записи переменной окружения ethaddr: | ||
| + | < | ||
| + | fw_setenv ethaddr aa: | ||
| + | </ | ||
| + | |||
| + | После перезагрузки MAC-адрес должен быть применен к сетевому интерфейсу и читаться через ifconfig | ||
| + | |||
| + | < | ||
| + | [root@baikal_t1_uq7 ~]# ifconfig | ||
| + | eth0 Link encap: | ||
| + | inet addr: | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Команды для автоматического назначения MAC из EEPROM === | ||
| + | < | ||
| + | ethaddr=`dd if=/ | ||
| + | echo "set ethaddr=$ethaddr" | ||
| + | fw_setenv ethaddr $ethaddr | ||
| + | eth1addr=`dd if=/ | ||
| + | echo "set eth1addr=$eth1addr" | ||
| + | fw_setenv eth1addr $eth1addr | ||
| + | </ | ||