Комментарии 31
По поводу перепрошивки nand — может там физически какая-нибудь ножка блокировки микросхемы подтянута?
Да не, такого не может быть, скорее всего проблемы в конфигурировании какие-то, на уровне драйверов ядра. Так как ядро и dtb нормально записываются и загружаются с nand (первое видео), а проблемы с rootfs и u-boot. При чём разок-то rootfs стартануло.
В загрузчике printenv что показывает?
Еще не нравится badblock в нулевом секторе nand. По идее можно очистить информацию о бэдблоках при помощи команды в загрузчике nand scrub.chip.
В загрузчике printenv что показывает?
#define CONFIG_MFG_ENV_SETTINGS \
"mfgtool_args=setenv bootargs " \
BOOTARGS_CMA_SIZE \
"rdinit=/linuxrc " \
"g_mass_storage.stall=0 g_mass_storage.removable=1 " \
"g_mass_storage.file=/fat g_mass_storage.ro=1 " \
"g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\
"g_mass_storage.iSerialNumber=\"\" "\
MFG_NAND_PARTITION \
"clk_ignore_unused "\
"\0" \
"initrd_addr=0x86800000\0" \
"initrd_high=0xffffffff\0" \
"bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};\0" \
Отсюда.
#if defined(CONFIG_NAND_BOOT)
#define CONFIG_EXTRA_ENV_SETTINGS \
CONFIG_MFG_ENV_SETTINGS \
"panel=PRIMELCD\0" \
"fdt_addr=0x83000000\0" \
"fdt_high=0xffffffff\0" \
"console=ttymxc0\0" \
"bootargs=console=ttymxc0,115200 ubi.mtd=4 " \
"root=ubi0:rootfs rootfstype=ubifs " \
BOOTARGS_CMA_SIZE \
"mtdparts=gpmi-nand:4m(boot),8m(kernel),1m(dtb),1m(misc),-(rootfs)\0"\
"bootcmd=nand read ${loadaddr} 0x400000 0x800000;"\
"nand read ${fdt_addr} 0xc00000 0x100000;"\
"bootz ${loadaddr} - ${fdt_addr}\0"
#else
Я вот прям сейчас не могу скинуть результат вывода printenv. Как доберусь до калькулятора, покажу.
Да, это понятно. Мое предположение, что могло быть несоответствие между разметкой, которая передается загрузчиком ядру и адресом куда заливается rootfs. Но вроде как несоответствия нет.
Еще может быть, что ядро собрано без поддержки gpmi-nand контроллера или же без поддержки ubi. Также, если правильно помню, не очень хорошо заливать раздел ubifs из под линукса, если это делать через загрузчик, то он автоматически помечает бэдблоки, что уменьшает проблемы
baudrate=115200
bootargs=rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber= mtdparts=gpmi-nand:4m(boot),8m(kernel),1m(dtb),1m(misc),-(rootfs) clk_ignore_unused
bootcmd=nand read ${loadaddr} 0x400000 0x800000;nand read ${fdt_addr} 0xc00000 0x100000;bootz ${loadaddr} — ${fdt_addr}
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=0
console=ttymxc0
fdt_addr=0x83000000
fdt_high=0xffffffff
initrd_addr=0x86800000
initrd_high=0xffffffff
loadaddr=0x80800000
mfgtool_args=setenv bootargs rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" mtdparts=gpmi-nand:4m(boot),8m(kernel),1m(dtb),1m(misc),-(rootfs) clk_ignore_unused
panel=PRIMELCD
Environment size: 1004/8188 bytes
Из любопытного, при загрузке в rootfs fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot mtd4 видит, а так не видит.
unable to create a temporary file
— это относится к вашему хосту или к калькулятору? Если к калькулятору — может там tmpfs не хватает?
Попробуйте запустить
strace kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 /tmp/u-boot-dtb.imx
Вот бы еще кто про dts так разжевал. А то возимся тут с одной железкой наощупь.
Очень классно! Я думаю, что к этим двум статьям нужна ещё одна — типа подводка. В таком плане: "Часто в новостях можно читать, что удалось установить Линукс на XXX-устройство. Каким образом это делается? Какие основные этапы установки и какие сложности при этом возникают возникают? Как их можно разрешить? В этой статье. В следующих разберём установку Линукса на калькулятор HP". В общем, нужна предварительная интрига, затем общее объяснение фокуса, а затем сам фокус.
Неужели для калькулятора действительно нужно железо, которое может тянуть винду?..
Ой, да это ж разве большой… Осциллографы с таким экраном на stm32f1 делают (64КБ флэша, ядро Cortex М). Не знаю, парвда, что там за графика в этом калькуляторе, может, и правда что-то суперское.
Осталось сделать эмулятор МК-61 для этой ЭКВМ, ну и за одно эмуляторы других ПМК, например Hewlett-Packard HP 35S или ещё каких. А то нафига!
Установка Linux на калькулятор. Часть II