Igor68 0 2 октября, 2021 Опубликовано 2 октября, 2021 (изменено) · Жалоба Изначально, при приобретении из Китая, на плате был linux-2.6.27. С ним я ковырялся в надежде поднять blutooth и wifi, кое как научился собирать загружаемые модули ядра. Теперь решил перейти на более свежий. Воспользовался buildroot-2021.02.3. Получил bootstap и u-boot, которые залил в плату. Получил образ zImage и ещё rootfs.jffs2 и делал попытки их загрузить. Вот некоторые из них: AT91Bootstrap 3.8.10 (Чт 30 сен 2021 10:00:21 MSK) NAND: Done to load image U-Boot 2016.09.01 (Sep 30 2021 - 10:04:26 +0300) CPU: AT91SAM9260 Crystal frequency: 18.432 MHz CPU clock : 198.656 MHz Master clock : 99.328 MHz DRAM: 64 MiB WARNING: Caches not enabled NAND: 256 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: macb0 Error: macb0 address not set. Hit any key to stop autoboot: 0 NAND read: device 0 offset 0x200000, size 0x300000 3145728 bytes read: OK Wrong Image Format for bootm command ERROR: can't get kernel image! U-Boot> И загрузка/перезагрузка начинает происходить циклически, если её не остановить. Что я не так делаю??? Спастбо!!! Изменено 2 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 октября, 2021 Опубликовано 2 октября, 2021 · Жалоба Bootstrap и u-boot залиты в NAND. zImage, похоже, нет. Чем и как заливали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 2 октября, 2021 Опубликовано 2 октября, 2021 (изменено) · Жалоба 19 minutes ago, aaarrr said: Bootstrap и u-boot залиты в NAND. zImage, похоже, нет. Чем и как заливали? Заливал SAM-BA из винды. bootsrap 0x0 u-boot 0x20000 заливал в NAND. только вот некая информация из консоли загрузчика: Изменено 2 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 2 октября, 2021 Опубликовано 2 октября, 2021 · Жалоба 1 час назад, aaarrr сказал: Bootstrap и u-boot залиты в NAND. zImage, похоже, нет. Чем и как заливали? судя по "Wrong Image Format for bootm command" у ТС u-boot желает uImage. для zImage команда bootz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 октября, 2021 Опубликовано 2 октября, 2021 · Жалоба 1 hour ago, Овчинников Игорь said: Заливал SAM-BA из винды Залили только загрузчики, ядра и рутфс нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 2 октября, 2021 Опубликовано 2 октября, 2021 · Жалоба 6 hours ago, aaarrr said: Залили только загрузчики, ядра и рутфс нет. залил кроме загрузчиков ещё и zimage по 0x200000. Чт-то не так? Перед этим сделал: mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -n "Linux Kernel Image" -d zImage zImage.bin Потом это залил... результат показал уже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 октября, 2021 Опубликовано 2 октября, 2021 · Жалоба Как уже писали выше, есть команды booti/bootz/bootm для загрузки Image, zImage и uImage соответственно. Еще DTB нужен, т.е. bootz $imageaddr - $dtbaddr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 2 октября, 2021 Опубликовано 2 октября, 2021 · Жалоба 1 minute ago, aaarrr said: Как уже писали выше, есть команды booti/bootz/bootm для загрузки Image, zImage и uImage соответственно. Еще DTB нужен, т.е. bootz $imageaddr - $dtbaddr Если бы я был знаток и знал бы тонкости, то наверное не задавал бы вопросов вообще. Перед тем как поднять тему много всего курил/читал сутки на пролёт. Сил больше нет... потому и спрашиваю. Не смог найти чёткой последовательности RomBOOT > AT91Bootstrap 3.8.10 (Чт 30 сен 2021 10:00:21 MSK) NAND: Done to load image U-Boot 2016.09.01 (Sep 30 2021 - 10:04:26 +0300) CPU: AT91SAM9260 Crystal frequency: 18.432 MHz CPU clock : 198.656 MHz Master clock : 99.328 MHz DRAM: 64 MiB WARNING: Caches not enabled NAND: 256 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: macb0 Error: macb0 address not set. Hit any key to stop autoboot: 0 NAND read: device 0 offset 0x200000, size 0x300000 3145728 bytes read: OK Wrong Image Format for bootm command ERROR: can't get kernel image! U-Boot> help ? - alias for 'help' base - print or set address offset boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootefi - Boots an EFI payload from memory bootelf - Boot from an ELF image in memory bootm - boot application image from memory bootp - boot image via network using BOOTP/TFTP protocol bootvx - Boot vxWorks from an ELF image bootz - boot Linux zImage image from memory cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation dhcp - boot image via network using DHCP/TFTP protocol echo - echo args to console editenv - edit environment variable env - environment handling commands erase - erase FLASH memory fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) fatsize - determine a file's size fdt - flattened device tree utility commands flinfo - print FLASH memory information go - start application at address 'addr' help - print command description/usage imxtract- extract a part of a multi-image itest - return true/false on integer compare loadb - load binary file over serial line (kermit mode) loadx - load binary file over serial line (xmodem mode) loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing address) mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nfs - boot image via network using NFS protocol nm - memory modify (constant address) ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables protect - enable or disable FLASH write protection reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage setenv - set environment variables sleep - delay execution for some time tftpboot- boot image via network using TFTP protocol usb - USB sub-system usbboot - boot from USB device version - print monitor, compiler and linker version U-Boot> Много из этого уже потрогал. Но ведь мог и ошибаться, ну и не знать конечно. Вообще-то что бы не тревожить никого напрасно сначала читаю/курю уже готовые чьи-то ответы в разных источниках. Поднятие темы это одна из последних надежд. Везде ответы сильно размыты и не сразу можно понять о чём вообще хотят сказать, а многие отвечают на середину и начало... но про то, что надо умалчивают. К примеру про mkimage узнал только позавчера... а до этого множество пустых попыток было и только сейчас узнаю что всё зря. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 3 октября, 2021 Опубликовано 3 октября, 2021 (изменено) · Жалоба Цитата Если бы я был знаток и знал бы тонкости, то наверное не задавал бы вопросов вообще. судя по вопросам, вы еще только в начале пути познания мира мелкик платформ, а плата ваша достаточно "старая" и по ней в интернетах куча, нет, огромная куча информации.. для начала поищите в каталоге SAB-BA содержимое каталога, где лежат бинарники для записи "at91bootstrap.bin" "u-boot.bin" "image" и посмотрите, что за буква - zimage или uimage - тут можно понять, есть ли бинарник ядра и как упаковано далее в консоли u-boot посмотрите настройки окружения командой printenv - тут можно посмотреть loadaddr - адрес куда обычно загружается ядро перез запуском обычно убут выполняет скрипт со строки bootcmd там м.б. ветвления по загрузке с сети, usb, mmc, nand в командах загрузки из nand смотрите что-то типа "nand read $loadaddr" - команда считывает ядро из нанда в память и там же будет bootm или bootz (как посоветовал @aaarrr) если имидж ядра uImage, то можно ядро загрузить отдельными командами и убедиться, что оно валидное командой "iminfo $loadaddr" в случае zImage надо разбираться в скриптах загрузки, карты раскладки бинарников в нанде и существование dtb для вашей платы оптимальный путь познания - найти полную документацию на плату, описание программирования и комплект всех исходников - это все д.б. у производителя платы ну и копать на форумах, подобных этому https://www.at91.com/viewtopic.php?t=5574 Цитата а многие отвечают на середину и начало... но про то, что надо умалчивают это "нормально", я сам такое проходил. для кого-то многие вещи тривиальны и о них не пишут, кто-то расписывает дотошно по пунктам. sam9260 прост как гвоздь, разберетесь, там сломать нечего.. ЗЫ где-то в каталоге SAB-BA д.б. файлы логов, что и куда пишется, попробуйте поискать и посмотреть.. Изменено 3 октября, 2021 пользователем Jury093 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 3 октября, 2021 Опубликовано 3 октября, 2021 · Жалоба 3 hours ago, Jury093 said: судя по вопросам, вы еще только в начале пути познания мира мелкик платформ, а плата ваша достаточно "старая" и по ней в интернетах куча, нет, огромная куча информации.. для начала поищите в каталоге SAB-BA содержимое каталога, где лежат бинарники для записи "at91bootstrap.bin" "u-boot.bin" "image" и посмотрите, что за буква - zimage или uimage - тут можно понять, есть ли бинарник ядра и как упаковано далее в консоли u-boot посмотрите настройки окружения командой printenv - тут можно посмотреть loadaddr - адрес куда обычно загружается ядро перез запуском обычно убут выполняет скрипт со строки bootcmd там м.б. ветвления по загрузке с сети, usb, mmc, nand в командах загрузки из nand смотрите что-то типа "nand read $loadaddr" - команда считывает ядро из нанда в память и там же будет bootm или bootz (как посоветовал @aaarrr) если имидж ядра uImage, то можно ядро загрузить отдельными командами и убедиться, что оно валидное командой "iminfo $loadaddr" в случае zImage надо разбираться в скриптах загрузки, карты раскладки бинарников в нанде и существование dtb для вашей платы оптимальный путь познания - найти полную документацию на плату, описание программирования и комплект всех исходников - это все д.б. у производителя платы ну и копать на форумах, подобных этому https://www.at91.com/viewtopic.php?t=5574 это "нормально", я сам такое проходил. для кого-то многие вещи тривиальны и о них не пишут, кто-то расписывает дотошно по пунктам. sam9260 прост как гвоздь, разберетесь, там сломать нечего.. ЗЫ где-то в каталоге SAB-BA д.б. файлы логов, что и куда пишется, попробуйте поискать и посмотреть.. Доброго времени суток!!! Спасибо!!!! Это уже нормальный ответ и стало понятно, если не всё полностью, то направление куда копать и куда двигаться. Вы правы, чего я и не скрываю, я действительно в самом начале именно в этом. Спасибо!!! И простите, что отвлекаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 3 октября, 2021 Опубликовано 3 октября, 2021 · Жалоба 1. Расскажите нам, что за плата, какое ядро (версия, источник), и как собирали. 2. Наличие u-boot в NAND - это уже большая победа (без шуток). Теперь можно отложить SAM-BA в сторону, и использовать TFTP, SD-карту или USB флеш для дальнейшей загрузки. Работу с NAND стоит отложить на последний этап. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 3 октября, 2021 Опубликовано 3 октября, 2021 (изменено) · Жалоба 5 hours ago, aaarrr said: 1. Расскажите нам, что за плата, какое ядро (версия, источник), и как собирали. 2. Наличие u-boot в NAND - это уже большая победа (без шуток). Теперь можно отложить SAM-BA в сторону, и использовать TFTP, SD-карту или USB флеш для дальнейшей загрузки. Работу с NAND стоит отложить на последний этап. К сожалению убил u-boot, заменив новым только что собранным... который не работает. Сейчас пробую всё собрать снова. Ещё смотрю на исходники U-Boot... надо только указать адрес его размещения, а адрес старта (передачи управления) проде как настраивается. Плата не породитая из Кикая - какой-то клон от at91sam9260-ek... без схемы, исходников и т.п. Был там linux-2.6.27... сейчас пробую собрать linux-4.8.6. точнее уже собрал. Надо u-boot пересобрать по нормальному. Что касается bootstrap, то по причине того, что он маленький у меня попросов не возникло. Можно его пересобрать в ручном режиме. У меня непонятка с Kernel, котороиу u-boot и должен передать управление. И так же нероняткка с u-boot - он просто второй загрузчик, тли ещё что-то делает оставаясь резидентом. Одним словом не понятно. Изменено 3 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 3 октября, 2021 Опубликовано 3 октября, 2021 · Жалоба 6 hours ago, aaarrr said: 1. Расскажите нам, что за плата, какое ядро (версия, источник), и как собирали. 2. Наличие u-boot в NAND - это уже большая победа (без шуток). Теперь можно отложить SAM-BA в сторону, и использовать TFTP, SD-карту или USB флеш для дальнейшей загрузки. Работу с NAND стоит отложить на последний этап. Вот вроде восстановил u-boot: RomBOOT > AT91Bootstrap 3.8.10 (Вс 03 окт 2021 16:22:43 MSK) NAND: Done to load image U-Boot 2016.09.01 (Oct 03 2021 - 16:23:14 +0300) CPU: AT91SAM9260 Crystal frequency: 18.432 MHz CPU clock : 198.656 MHz Master clock : 99.328 MHz DRAM: 64 MiB WARNING: Caches not enabled NAND: 256 MiB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: macb0 Error: macb0 address not set. Hit any key to stop autoboot: 0 NAND read: device 0 offset 0x200000, size 0x300000 3145728 bytes read: OK Wrong Image Format for bootm command ERROR: can't get kernel image! U-Boot> help ? - alias for 'help' base - print or set address offset boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootefi - Boots an EFI payload from memory bootelf - Boot from an ELF image in memory bootm - boot application image from memory bootp - boot image via network using BOOTP/TFTP protocol bootvx - Boot vxWorks from an ELF image bootz - boot Linux zImage image from memory cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation dhcp - boot image via network using DHCP/TFTP protocol echo - echo args to console editenv - edit environment variable env - environment handling commands erase - erase FLASH memory fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) fatsize - determine a file's size fdt - flattened device tree utility commands flinfo - print FLASH memory information go - start application at address 'addr' help - print command description/usage imxtract- extract a part of a multi-image itest - return true/false on integer compare loadb - load binary file over serial line (kermit mode) loadx - load binary file over serial line (xmodem mode) loady - load binary file over serial line (ymodem mode) loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing address) mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nfs - boot image via network using NFS protocol nm - memory modify (constant address) ping - send ICMP ECHO_REQUEST to network host printenv- print environment variables protect - enable or disable FLASH write protection reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage setenv - set environment variables sleep - delay execution for some time tftpboot- boot image via network using TFTP protocol usb - USB sub-system usbboot - boot from USB device version - print monitor, compiler and linker version U-Boot> printenv baudrate=115200 bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) root=/dev/mtdblock7 rw rootfstype=jffs2 bootcmd=nand read 0x22000000 0x200000 0x300000; bootm bootdelay=3 ethact=macb0 stderr=serial stdin=serial stdout=serial Environment size: 362/131067 bytes U-Boot> baudrate=115200 bootargs=console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) root=/dev/mtdblock7 rw rootfstype=jffs2 bootcmd=nand read 0x22000000 0x200000 0x300000; bootm bootdelay=3 ethact=macb0 stderr=serial stdin=serial stdout=serial Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 3 октября, 2021 Опубликовано 3 октября, 2021 · Жалоба Проверьте работу сети: setenv ethaddr <случайный MAC адрес для платы> setenv ipaddr <адрес из той же подсети, что и ПК> ping <адрес ПК> Если сеть работает, то дальше лучше пользоваться ей - tftp, nfs. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 3 октября, 2021 Опубликовано 3 октября, 2021 · Жалоба 13 минут назад, Овчинников Игорь сказал: Вот вроде восстановил u-boot: а попробуйте после неудачной попытки запуска ядра дать в консоли команду bootm 0x22000000 если ошибка останется, то либо ядро не записано в нанд, либо упаковано не так, ну или сам нанд битый (последнее не точно) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться