2010-12-14 7 views
1

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

Bootloader: U-Boot 1,2 ядро: 2.6.24 инструмент цепи: рука-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" 

Пожалуйста, скажите мне, как можно Я делаю это?

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

+0

Что серийный номер? Все, что я вижу, это 3 mtd-раздела с их ячейками памяти ... – leppie

+0

Это вопрос конфигурации, не требующий программирования. –

ответ

0

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

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

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

1

Вы могли бы передать его на ядро ​​командной строки, а затем прочитать его изнутри Linux с помощью /proc/cmdline

1

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

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