поймать серийный номер из загрузчика - PullRequest
1 голос
/ 14 декабря 2010

Я хочу перехватить серийный номер, записанный в среде U-Boot.

Загрузчик: ядро ​​U-boot 1.2: 2.6.24 tool-chain: arm-linux-gcc-3.4.1 rfs: busybox-1.9.2

Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00060000 : "bootloader"
0x00060000-0x00260000 : "kernel"
0x00260000-0x03e60000 : "rootfilesystem"

Скажите, пожалуйста, как мне это сделать?

Большое спасибо.

Ответы [ 3 ]

1 голос
/ 04 марта 2011

Вы можете передать его в командной строке ядра, а затем прочитать его изнутри linux, используя /proc/cmdline

1 голос
/ 20 февраля 2012

Я лично использую аргументы загрузки ядра и / proc / cmdline для передачи такого рода вещей в Linux: http://www.denx.de/wiki/view/DULG/LinuxKernelArgs

Однако вы также можете проверить инструменты командной строки для чтения / записи среды UBoot здесь: http://www.denx.de/wiki/view/DULG/HowCanIAccessUBootEnvironmentVariablesInLinux

0 голосов
/ 04 марта 2011

Что ж, если вы можете добраться до командной строки u-boot, вы можете посмотреть на переменные окружения - выгрузите их с помощью printenv. В нашей системе есть одно, называемое unlock_env - если у вашей системы есть это значение, вы можете просто ввести «echo $ unlock_env», и оно покажет вам содержимое. Адрес сектора среды будет первым шестнадцатеричным значением.

Пока вы находитесь в u-boot, «echo $ serial #» должен напечатать серийный номер, но я предполагаю, что вы хотите прочитать его после загрузки в O / S.

В любом случае, когда у вас есть адрес сектора среды, вы должны проанализировать данные в секторе и найти «серийный номер». Не должно быть так сложно, я думаю, что это, вероятно, просто последовательность строк с нулевым символом в конце. Удачи.

...