Politeh 0 January 28, 2014 Posted January 28, 2014 · Report post Добрый день! С линуксом почти не сталкивались, по ДСП работаем. Есть своя плата: ОМАP-L138, NAND 4Gb Samsung K9F4G08U0D-SIB0000, DDR2 1Gb Samsung K4T1G164QF-BIE6T00, Ethernet, SATA, USB2.0 OTG, видеопорт, и др. периферия... Хотим собрать своё ядро. При собственой конфигурации виснет после надписи "Starting kernel ..." Может кто подсказать в чем дело? Файл конфигурации прилагаю. Благодарю. config.txt Quote Share this post Link to post Share on other sites More sharing options...
HardJoker 0 January 29, 2014 Posted January 29, 2014 · Report post Добрый день! С линуксом почти не сталкивались, по ДСП работаем. Есть своя плата: ОМАP-L138, NAND 4Gb Samsung K9F4G08U0D-SIB0000, DDR2 1Gb Samsung K4T1G164QF-BIE6T00, Ethernet, SATA, USB2.0 OTG, видеопорт, и др. периферия... Хотим собрать своё ядро. При собственой конфигурации виснет после надписи "Starting kernel ..." Может кто подсказать в чем дело? Файл конфигурации прилагаю. Благодарю. Почему не взяли, например, OMAPL138 DVSDK от техаса? Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 0 January 29, 2014 Posted January 29, 2014 · Report post Выложите лучше строку аргументов ядра. Quote Share this post Link to post Share on other sites More sharing options...
TigerSHARC 0 January 29, 2014 Posted January 29, 2014 · Report post Подозреваю что дело в файле борды. Файл борды правили? Quote Share this post Link to post Share on other sites More sharing options...
Politeh 0 January 29, 2014 Posted January 29, 2014 · Report post Спасибо за ответы. У нас есть отладочная плата Logic PD на базе OMAPL138. На этой отладочной плате пересобирали все компоненты - все работает. Но на ней загрузка из SPI flash, память mDDR, поэтому использовать файлы прошивки те же не получается. Приходится пересобирать под нашу плату свои u-boot (с оберткой от AISGEN), uImage, Файловую систему. Файл борды не правил, он остался неизменным - board-da850-evm.c. Базовый конфигурационный файлом является da850_omapl138_defconfig. В нем добавили поддержку NAND, отключили поддержку SD/MMC. Аргументы bootargs bootargs=console=ttyS2,115200n8 rootfstype=ubifs root=ubi0:rootfs ubi.mtd=ubi rw mem=128M В данном случае загрузка идет через USB. Также пробовали через TFTP - результат тот же. Нашли информацию о том, что с того момента как выводится надпись "Starting kernel ..." может быть неправильно настроен вывод в консоль (не тот ttySx). http://processors.wiki.ti.com/index.php/FA...r_DaVinci_Linux Проверили, убедились что настройки в исходниках ядра те (что для u-boot, что для uImage UART2). Потом нашли документ http://processors.wiki.ti.com/index.php/Ke...s_Booting_Linux Буду проверять сегодня совпадение ID для u-boot и для uImage. Возможно кто то проконсультирует или подготовит свои u-boot (до и после AISGEN) uImage и файловую систему с нашей конфигурацией (готов оплатить). Хотя бы начать с минимальной конфигурацией - NAND 8bit, DDR2, USB, а дальше будем сами разбираться. Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 0 January 29, 2014 Posted January 29, 2014 · Report post Попробуйте добавить к строке ядра еще "debug earlyprintk". Еще, не так давно, omap переехал на нормальные названия tty. Попробуйте console=/dev/ttyO2... и далее по тексту. Хотя, если версия ядра не менялась - не имеет смысла. Quote Share this post Link to post Share on other sites More sharing options...
Politeh 0 January 29, 2014 Posted January 29, 2014 · Report post Всем спасибо. Скорее всего проблемы с ядром, оно попорчено. Есть желание пересобрать но последним SDK. Хотел бы спросить, каким образом сконфигурировать u-boot на 8 бит. В DA850 флэшь стоит 16 бит. Возможно с этим у нас также проблемы, поскольку не сохраняет настроечные переменные через saveenv. В AISGEN конечно указан размер 8 бит, но после загрузки u-boot он записывает данные скорее всего в 16-ти битном режиме. Жду подсказок. Quote Share this post Link to post Share on other sites More sharing options...
Tarbal 3 January 29, 2014 Posted January 29, 2014 · Report post Буду проверять сегодня совпадение ID для u-boot и для uImage. Первым делом об этом подумал, но не оно. Эта проверка в бутлоадере производится. Там еше проверка чексуммы делается. Но после этого кернел распаковывается и стартует. Вот в какой момент появляется надпись не помню. завтра на работе посмотрю. Вот из интернета: > 3122350 bytes read > ## Booting image at 00800000 ... > Image Name: Linux-3.11.0-rc3 > Created: 2013-07-30 18:56:55 UTC > Image Type: ARM Linux Kernel Image (uncompressed) > Data Size: 3122286 Bytes = 3 MB > Load Address: 00008000 > Entry Point: 00008000 > Verifying Checksum ... OK > OK > > Starting kernel ... > > Uncompressing Linux... done, booting the kernel. > Booting Linux on physical CPU 0x0 Quote Share this post Link to post Share on other sites More sharing options...
Jury093 1 January 30, 2014 Posted January 30, 2014 · Report post Скорее всего проблемы с ядром, оно попорчено. Есть желание пересобрать но последним SDK. Хотел бы спросить, каким образом сконфигурировать u-boot на 8 бит. В DA850 флэшь стоит 16 бит. Возможно с этим у нас также проблемы, поскольку не сохраняет настроечные переменные через saveenv. В AISGEN конечно указан размер 8 бит, но после загрузки u-boot он записывает данные скорее всего в 16-ти битном режиме. для проверки содержимого настроек юбута, остановите его и дайте команду: printenv посмотрите - соответствует ли содержимое bootargs нужным значениям.. чтобы отсечь возможный глюк в этом месте, пропишите свои аргументы при конфигурирования ядра, например через menuconfig в дефолтной строке и там же поищите и поставьте галочку "всегда использовать дефолтные аргументы".. попробуйте отключить всю периферию в ядре - видеоподсистему, звук, сеть, флеши, юсб - бывает, что неудачно взведенная опция вешает ядро со схожей симптоматикой.. если видеоподсистема жива, то поищите, как переназначить выхлоп загрузки на экран - полезно для диагностики при неверно выбранной консоли.. ну и для полноты картины желательно описать последовательность сборки и чем собирали.. часто упускается какой-то этап или ключ, после которого только унылое "Starting kernel.." в разных BSP и SDK есть свои неочевидные тонкости и так вам быстрее подскажут.. вот очень дельно предложение: Попробуйте добавить к строке ядра еще "debug earlyprintk" там вроде надо еще пощелкать пунктами в Kernel Hacking чтобы ядро стало более говорливое.. ставлю на две версии - Id или tty, в резерве nand Quote Share this post Link to post Share on other sites More sharing options...
Politeh 0 January 30, 2014 Posted January 30, 2014 · Report post Debug earlyprintk попробовали сразу же после предложения так сделать. Соответствующий флаг в menuconfig в Kernel Hackin выставили. Все то же самое. Как раз поэтому и появилось предположение, что с ядром что то не так. Сейчас я ставлю вопрос по другому. Решил все пересобрать с самого начала в последней версии, начиная с u-boot. Собирал на базе SDK для LCDK. Но у LCDK NAND 16 бит, а у нас 8. Я закрыл в их коде установку 16-ти битного NAND. После AISGEN u-boot запустился, но перестал сохранять переменные после команды saveenv. После загрузки пишет всегда BAD CRC. Есть основания считать, что NAND по прежнему остался 16 битным. Пока глубоко не исследовал, возможно есть простой способ установки NAND в 8 бит, а SDRAM в DDR2 (не mDDR). Quote Share this post Link to post Share on other sites More sharing options...
Politeh 0 January 30, 2014 Posted January 30, 2014 · Report post Есть предположение насчет неработоспособности ядра uImage, заключающееся в том, что SDRAM сконфигурировано как mDDR, а не как DDR2 (у нас именно DDR2). Пока не ясно, память SDRAM конфигурируется в ядре uImage или настройки памяти берутся возложены только на u-boot. Возможно кто то подскажет что то на этот счет. Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 0 January 30, 2014 Posted January 30, 2014 · Report post В большинстве случаев настраивается в u-boot. Во всяком случае какой-то минимум сообщений от ядра вы должны получить. Есть "тупой" способ проверить. В у-буте загружаете ядро в память и запускаете его. Плата предположительно зависает. Даете ей ресет. И без повторной загрузки ядра в памяти делаете ему bootm. Или iminfo. Обычно, нсли с памятью все ок, ее содержимое сохраняется. Правда есть варант, что ядро при загрузке могло затереть эту облась после релокации. Quote Share this post Link to post Share on other sites More sharing options...
Tarbal 3 January 30, 2014 Posted January 30, 2014 · Report post В большинстве случаев настраивается в u-boot. Во всяком случае какой-то минимум сообщений от ядра вы должны получить. Если консоль не сломалась Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 0 January 30, 2014 Posted January 30, 2014 · Report post Даже со сломанной консолью вывод можно посмотреть вот таким вот изящным способом. Quote Share this post Link to post Share on other sites More sharing options...
Politeh 0 January 30, 2014 Posted January 30, 2014 · Report post C u-boot разобрались. С uImage пока нет. Останавливается здесь: netconsole: network logging started davinci_emac davinci_emac.1: using random MAC addr: 76:f7:52:75:1e:d8 omap_rtc omap_rtc: setting system clock to 2000-01-13 23:12:09 UTC (947805129) VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0) Please append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) Будем дальше копать. Quote Share this post Link to post Share on other sites More sharing options...