| Как пользоваться редактором
Для работы с файлом ENV его необходимо загрузить на сервер через форму загрузки с выбором локального
файла на ПК или телефоне и нажатием на кнопку "Загрузить". Содержимое загруженного файла будет храниться
на сервере достаточно долго и для него становятся доступными три операции, которые можно выполнять в любой последовательности и
любое число раз. Эти операции вызываются по ссылкам c уникальным идентификатором загруженного файла,
сохранив которые можно позже работать с ним без необходимости его повторной загрузки.
Показать - вывод списка ENV-переменных с их значениями
Изменить - коррекция значений двух переменных (bootdelay и loglrvel), необходимая для
нормальной работы в командной оболочке U-Boot и консоли загруженной системы.
Редактировать - изменение (при необходимости) значений отдельных переменных (например, MAC-адресов).
ВНИМАНИЕ ! При выполнении этих операций сохраненное содержимое загруженного файла не меняется, а результаты
коррекции или редактирования попадают в zip-архив для загрузки на локальный ПК (или телефон).
Где примененяется этот сервис
Представленный здесь сервис предназначен для работы с бинарным файлом переменных окружения (ENV),
которым пользуется загрузчик U-Boot в образах прошивок формата IMAGEWTY для устройств на базе SoC Allwinner.
В настоящее время к таким прошивкам относятся Androd 10, 12, 13, 14, а также некоторые BSP-образы Linux.
Исходный файл ENV может быть получен как минимум двумя способами:
извлечением файла ENV.fex из файла IMAGEWTY-образа прошивки
копированием раздела ENV непосредственно c загрузочного носителя (например, SD-карты) в файл.
В этом случае используется консольная команда вида (пример для прошивки Android с a/b разделами):
dd if=/dev/sda3 of=env.img count=256 - копирование с SD-карты в консоли Linux
dd if=/dev/block/mmcblk0p3 of=env.img count=256 - копирование с eMMC в консоли Android
Примечание. Конкретный адрес и номер раздела ENV зависит от верcии Android, их нужно уточнять
консольными командами ls /dev, а также sgdisk --print (под Android) или partx (под Linux).
ВНИМАНИЕ ! Размер файла ENV должен быть 128 Kb (131072).
Редактирование MAC-адресов
В исходном ENV-файле (извлеченном из образа прошивки или скопированном из раздела) все три значения
MAC-адресов (для Eth, Wi-Fi и BT) записаны пустыми или эти переменные вообще отсутствуют.
Их значения формируются автоматически при загрузке системы. Однако может возникнуть ситуация, когда
требуется их изменение (например, при обнаружении дублирования MAC-адреса в пределах одной локльной сети).
Другой случай: тестирование на устройстве (например, одноплатник) образов нескольких разных ОС,
загружаемых с SD-карты. При сохранении на каждом из них одинакового MAC-адреса каждый раз будет
присваиваться одинаковый IP-адрес, привязанный в ARP-таблице роутера к этому MAC.
Для установки конкретного значения любого из трех MAC-адресов достаточно прописать его в соответствующем
поле формы редактирования. Это значение должно быть записано в виде строки, содержащей 12 HEX-символов (0-9, A-F),
с любыми разделителями или без них. Регистр - любой.
Например:
123456789abc
12 34 56 78 9a bc
12-34-56-78-9A-BC
12,34,56,78,9A,BC
Все эти (или любые другие) варианты записи адреса корректны и будут записаны в отредактированный файл
в виде значения 12:34:56:78:9a:bc
Примечание. Если в разделе env_a (а также в файле env.fex) отсутствует (или пустая)
переменная mac, то в выводе командой U-BOOT printenv эта переменная присутствует с конкретным значением !
Это означает, что в процессе загрузки значение переменной mac сгенерировано U_Boot из серийного номера
и помещено в таблицу ENV, хранящуюся в оперативной памяти.
|
 |