Jump to content

    
Sign in to follow this  
Politeh

Сборка ядра под OMAP-L138.

Recommended Posts

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)

 

Будем дальше копать.

 

У вас в командной строке что написано? Можете ее опубликовать?

Не может смонтировать рут файловую систему.

Либо диск недоступен, либо системы там нет, либо неправильно указана партишн в командной строке. На каком устройстве ваша рут файловая система?

 

У меня раз была такая ситуация.

На одних бордах монтировалось, а на других нет. Засада была в том, что перешли с СД карточки на тест борде на микро СД на продукте. У микро СД нет сенсора защиты от записи, а в кернеле такой пин и его обработка присутствовали. Монтировали как RW, а если состояние пина, который был в воздухе показывало, что СД карточка защищена, то возникала точно та же проблема что и у вас.

 

 

Раскопал у себя на этом процессоре есть борд LogicPD купил у TI.

Посмотрел конфигурацию бутлоадера, чтобы узнать какая командная строка:

 

У меня с СД карточки грузится поэтому mmcblk, у вас другое устройство и я не знаю какое и какое у него имя.

 

К вашей проблеме относится вот этот фрагмент:

root=/dev/mmcblk0p2 rw rootwait

 

mmcblk0p2 значит mmc диск драйв номер 0 партишн 2.

Вы должны определить какой у вас диск и какой партишн.

Для рут партишн на скази было бы что-то вдоде /dev/sdb1. sdb1 значит диск b партишн 1

Разбирайтесь. Все что нужно найти как в вашей системе называется ваш диск с рут файловой системой,

если устройство не одно, то какое оно по счету (смотреть схему и даташит процессора). На каком партишне находится ваша файловая система. Запишите это правильно в конфигурации бутлоадера и сохраните.

Должно заработать.

 

 

Вот вам пример моей конфигурации U-Boot:

U-Boot > printenv

bootargs=mem=32M console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait ip=off

bootcmd=if mmc rescan 0; then if fatload mmc 0 0xc0600000 boot.scr; then source

0xc0600000; else fatload mmc 0 0xc0700000 uImage; bootm c0700000; fi; else sf pr

obe 0; sf read 0xc0700000 0x80000 0x220000; bootm 0xc0700000; fi

bootdelay=3

baudrate=115200

bootfile="uImage"

stdin=serial

stdout=serial

stderr=serial

ethaddr=00:08:ee:05:8d:71

ver=U-Boot 2009.11 (Jan 13 2011 - 01:05:37)

 

Environment size: 461/65532 bytes

U-Boot >

Edited by Tarbal

Share this post


Link to post
Share on other sites

Судя по ругани на ubi0:rootfs, рутовый раздел на нанд. А т.к. они сменили 16 битную нанд на 8 битну, то и в ядре надо править.

 

И не издевайтесь над нами, тут нет телепатов - выложите весь лог загрузки от старта у-бута и до остановки.

Share this post


Link to post
Share on other sites
VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)

временно сгенерите рутовую на sd или usb-flash и загрузитесь нее..

так комфортнее разбираться с нандом..

Share this post


Link to post
Share on other sites
Судя по ругани на ubi0:rootfs, рутовый раздел на нанд. А т.к. они сменили 16 битную нанд на 8 битну, то и в ядре надо править.

 

И не издевайтесь над нами, тут нет телепатов - выложите весь лог загрузки от старта у-бута и до остановки.

 

И конфигурацию U-Boot.

 

Ответьте на вопросы:

1. Вы давали имя борду сами? Если не понимаете о чем речь -- значит нет. http://electronix.ru/forum/index.php?showtopic=118559

2. Найдите файл борда и сообщите его имя.

Процедура простая:

а. Постройте кернел

б. В директории arch/arm/mach-omap2/ найдите все файлы *.о и дайте их имена. Мы разберемся.

Edited by Tarbal

Share this post


Link to post
Share on other sites
Выкладываю что нужно для разъяснения ситуации(в архиве).

Ждем ваших советов. Если ещё что нужно - скинем.

 

Благодарю.

 

Я не совсем ту конфигурацию имел ввиду. Покажите, что печатает u-boot по команде printenv.

 

Для удобства файл борда прицепим так:

http://lxr.free-electrons.com/source/arch/...ard-da850-evm.c

 

 

Share this post


Link to post
Share on other sites

Да, вот ещё лог, забыли в архив включить. Здесь полный лог старта u-boot, вывод данных через printenv и процесс загрузки uImage до момента остановки.

full_log_printenv.txt

Share this post


Link to post
Share on other sites
В Вашем .config

# CONFIG_MTD_NAND_DAVINCI is not set

Т.е. драйвер не включен.

 

Включали, такая же ерунда. Сейчас приложим конфиг и лог.

 

запись uImage и файловой системы происходит через tftp. Эти файлы сохраняются на NAND и оттуда уже стартуют.

 

//Установка переменных в u-boot

 

nand erase 0 0x20000

setenv hostname Politeh

setenv ethaddr 00:24:37:26:15:05

setenv ipaddr 192.168.0.111

setenv serverip 192.168.0.103

setenv gatewayip 192.168.0.1

setenv netmask 255.255.255.0

setenv bootargs console=ttyS2,115200 ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname} rootfstype=jffs2 root=mtd:filesystem rw,noatime mem=128M

setenv bootcmd 'nand read.e 0xc0700000 0xa0000 0x300000; bootm 0xc0700000'

saveenv

 

 

//Запись uImage

nand erase 0xa0000 0x300000

tftp 0xc0700000 uImage

nand write.e 0xc0700000 0xa0000 ${filesize}

 

//Запись файловой системы

mw.b 0xc0700000 0xFF 0xE00000

tftp 0xc0700000 rootfs.jffs2

nand erase 0xB60000 0xE00000

nand write.e 0xc0700000 0xB60000 0xE00000

 

после этого даем перезагрузку. Конфиг и лог прикрепил.

linux.rar

Share this post


Link to post
Share on other sites
Включали, такая же ерунда. Сейчас приложим конфиг и лог.

после этого даем перезагрузку. Конфиг и лог прикрепил.

я полагаю, что причина тут (из лога):

 

pca953x 1-0020: failed reading register
pca953x 1-0021: failed reading register

если заглянуть в файл борды (приведен выше), то там есть структура:

 

static struct i2c_board_info __initdata da850_evm_i2c_devices[] = {
733         {
734                 I2C_BOARD_INFO("tlv320aic3x", 0x18),
735         },
736         {
737                 I2C_BOARD_INFO("tca6416", 0x20),
738                 .platform_data = &da850_evm_ui_expander_info,
739         },
740         {
741                 I2C_BOARD_INFO("tca6416", 0x21),
742                 .platform_data = &da850_evm_bb_expander_info,
743         },
744 };

 

и после нахождения этих устройств идет цепочка вызовов. включая:

static inline void da850_evm_setup_nor_nand(void)

где происходит инит пинов NOR/NAND, заполнение структур и регистрация драйвера NOR/NAND

 

отсюда вывод, либо вышеупомянутые чипы прописаны не на ту шину, либо эта шина не интится, либо.. не знаю, что там еще можно накрутить..

 

еще раз повторюсь - для отладки удобнее использовать любой доступный накопитель - sd, usb, sata..

и получив приглашение "login" отдебажить "кто виноват и что делать"

в конце концов - нет желания возится с накопителем, при живой сети можно забодяжить NFS и рутовую держать на сетевом ресурсе..

Share this post


Link to post
Share on other sites
временно сгенерите рутовую на sd или usb-flash и загрузитесь нее..

так комфортнее разбираться с нандом..

 

Пожалуй наилучшее решение. Добавлю еще одну возможность rootfs на NFS.

Edited by Tarbal

Share this post


Link to post
Share on other sites
C u-boot разобрались.

Приветствую, т.к. Ваша топик очень подходит к моей ситуации, опишу здесь и вместе с вами буду искать ответ.

В моём расположении IP камера DM369IPMC-IMX104, на процессоре TI Davinci DM369, суть всё та же, собираю своё ядро и файловую систему, но в моём случае есть готовый RDK с описаними, описания очень скудные, т.к. следуя только им, с места не сдвинуться.

 

Собрал своё ядро и файловую систему, меняю заводской bootcmd и bootargs (взял из описания к камере), подсовываю всё через TFTP

Лог загрузки:

 

starting_kernel.txt

 

Версию ядра поменял в Makefile на 3.6.37, чтобы можно было отличать грузит он своё или моё ядро

В общем в итоге Starting kernel ... и тишина

Поделитесь пожалуйста, как лечили?

Share this post


Link to post
Share on other sites

Товарищи, спасайте, так и сижу на этом Starting Kernel ... уже ядро несколько раз пересобирал с разными кросскомпиляторами, суть та же на выходе

Скажите какие файлы выложить чтобы легче было идентифицировать проблему?

Share this post


Link to post
Share on other sites

Была похожая проблема, когда записывал ядро в SPI-флешку, при этом я не заметил, что размер ядра был больше, чем раздел под ядро на флешке. В итоге, когда U-boot грузил ядро он мне выкидывал ошибку CRC при загрузке ядра и в выводе так же было "Starting kernel ..." и тишина.

Могу посоветовать начать с U-boot'а - проверьте, полностью ли он грузит ядро или нет.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this