Jump to content

    

Не грузится linux

Есть плата Orange pi win plus. Скомпилил для нее linux. Но не получается его загрузить. Получаю такие логи:

HELLO! BOOT0 is starting!
boot0 commit : 045061a8bb2580cb3fa02e301f52a015040c158f

boot0 version : 4.0.0
set pll start
set pll end
rtc[0] value = 0x00000000
rtc[1] value = 0x00000000
rtc[2] value = 0x00000000
rtc[3] value = 0x00000000
rtc[4] value = 0x00000000
rtc[5] value = 0x00000000
DRAM driver version: V1.1
rsb_send_initseq: rsb clk 400Khz -> 3Mhz
PMU: AXP81X
ddr voltage = 1500 mv
DRAM Type = 3 (2:DDR2,3:DDR3,6:LPDDR2,7:LPDDR3)
DRAM clk = 672 MHz
DRAM zq value: 003b3bbb
DRAM single rank full DQ OK
DRAM size = 2048 MB
DRAM init ok
dram size =2048
card boot number = 0, boot0 copy = 0
card no is 0
sdcard 0 line count 4
[mmc]: mmc driver ver 2015-05-08 20:06
[mmc]: sdc0 spd mode error, 2
[mmc]: Wrong media type 0x00000000
[mmc]: ***Try SD card 0***
[mmc]: HSSDR52/SDR25 4 bit
[mmc]: 50000000 Hz
[mmc]: 14916 MB
[mmc]: ***SD/MMC 0 init OK!!!***
sdcard 0 init ok
The size of uboot is 00000000.
[mmc]: mmc 0 blkcnt should not be 0

Кто формирует эти сообщения? Что-то перед uboot еще загружается?

Чужой рабочий образ в этом месте показывает такие логи (начало совпадает):

[mmc]: mmc driver ver 2015-05-08 20:06
[mmc]: sdc0 spd mode error, 2
[mmc]: Wrong media type 0x00000000
[mmc]: ***Try SD card 0***
[mmc]: HSSDR52/SDR25 4 bit
[mmc]: 50000000 Hz
[mmc]: 14916 MB
[mmc]: ***SD/MMC 0 init OK!!!***
sdcard 0 init ok
The size of uboot is 000ec000.
sum=340e9ac0
src_sum=340e9ac0
Succeed in loading uboot from sdmmc flash.
boot0: start load other image
boot0: Loading BL3-1
Loading file 0 at address 0x40000000,size 0x00008400 success
boot0: Loading scp
Loading file 2 at address 0x00040000,size 0x00019c00 success
set arisc reset to de-assert state
Ready to disable icache.
Jump to secend Boot.


U-Boot 2014.07-4-OrangePi (Nov 23 2016 - 14:42:18) Allwinner Technology

uboot commit : 8de456bfe5cbb72a3eb364c4dc80bdc709f9d690

Share this post


Link to post
Share on other sites
Кто формирует эти сообщения? Что-то перед uboot еще загружается?

BOOT0 формирует. Он, судя по всему, живет на вашей плате в SPI NOR.

Share this post


Link to post
Share on other sites

Если плату включаю без microsd в терминалке нет никаких сообщений.

Share this post


Link to post
Share on other sites
Если плату включаю без microsd в терминалке нет никаких сообщений.

сам бинарник юбута лежит в месте, где его ищет загрузчик?

длина не нулевая?

имя файла правильное?

руками грузится или тоже 0?

Share this post


Link to post
Share on other sites
сам бинарник юбута лежит в месте, где его ищет загрузчик?
uboot находится на microsd. Встроенный загрузчик ищет на spi, microsd и usb.

После компиляции создается u-boot-with-dtb.bin (900 кбайт), Image (11 Мбайт), rootfs (700 Мбайт) и все это собирается в единый OrangePiA64_Win.img (1,3 гига)

Компилится все готовыми скриптами отсюда https://github.com/orangepi-xunlong/OrangePi_Build

Скриптами же записывается на microsd.

Также пробовал записывать образ через винду с помощью Win32DiskImager результат такой же. Чужой *.img записанный на флешку такими же спосбами грузится.

 

руками грузится или тоже 0?
Это как?

Share this post


Link to post
Share on other sites
uboot находится на microsd. Встроенный загрузчик ищет на spi, microsd и usb.

После компиляции создается u-boot-with-dtb.bin (900 кбайт), Image (11 Мбайт), rootfs (700 Мбайт) и все это собирается в единый OrangePiA64_Win.img (1,3 гига)

Компилится все готовыми скриптами отсюда https://github.com/orangepi-xunlong/OrangePi_Build

Скриптами же записывается на microsd.

Также пробовал записывать образ через винду с помощью Win32DiskImager результат такой же. Чужой *.img записанный на флешку такими же спосбами грузится.

настораживает в логе эта строка:

[mmc]: mmc 0 blkcnt should not be 0

что можно попробовать:

- на удачу сменить uSD на другую

- поискать в скриптах тот, который генерит финальный образ "единый OrangePiA64_Win.img (1,3 гига)" на предмет "откуда, куда и как" он записывает в образ файл "u-boot-with-dtb.bin", вероятно это будет команда dd - убедиться что бинарник записан верно

- если до сюда все нормально, то остается либо включить вывод отладки первичного загрузчика (дописать свою отладку) и искать, чего не хватает, либо на вами приведенном линке гитхаба в разделе Issues описать проблему, возможно подскажут ее решение..

 

да, и что там с питальником? лучше подстраховаться и закормить на 1.5-2А

 

Это как?

это я ошибся, такое возможно в юбуте, а у вас до него еще дело не дошло..

Share this post


Link to post
Share on other sites

Я бы посоветовал перейти на mainline u-boot. Разбираться с проблемами варианта от Allwinner в данном случае нет смысла.

Share this post


Link to post
Share on other sites

Я уже пробовал две microsd. Результаты одни и те же. Мой образ говорит что размер uboot нулевой. Чужой готовый образ ubuntu грузится без проблем с обоих microsd.

- поискать в скриптах тот, который генерит финальный образ "единый OrangePiA64_Win.img (1,3 гига)" на предмет "откуда, куда и как" он записывает в образ файл "u-boot-with-dtb.bin", вероятно это будет команда dd - убедиться что бинарник записан верно
Тут моих знаний не достаточно чтобы судить правильные скриты или нет. При компиляции создаются еще промежуточные бинарные файлы, он мерджатся друг с другом.

да, и что там с питальником? лучше подстраховаться и закормить на 1.5-2А
БП китайский указано 3А, сколько там настоящих не знаю. Но ведь готовая ubuntu грузится. Так что на железо вообще не грешу.

Я бы посоветовал перейти на mainline u-boot
В смысле взять его отсюда http://www.denx.de/wiki/U-Boot

 

Раньше я запускал ucLinux на плате собственной разработки на процессоре Blackfin. Все сразу заработало. С Allwinner как-то и с документацией все плохо и на форумах не нахожу то что мне нужно. Может потому что процессор взял 64 битный.

Share this post


Link to post
Share on other sites
В смысле взять его отсюда http://www.denx.de/wiki/U-Boot

Да.

 

А в чем смысл пересборки "родного" софта от производителя? Если нужна полноценная работающая система,

то стоит взять Armbian. Если что-то свое, то лучше сразу собирать самостоятельно, хоть под тем же buildroot'ом.

Share this post


Link to post
Share on other sites
А в чем смысл пересборки "родного" софта от производителя?
Мне нужно избавится от HDMI и гнать видео в MIPI DSI.

В конфигах ядра есть возможность включения некого дисплея с этим интерфейсом. С этого хотел начать.

 

Я не очень понял что из себя представляет Armbian и чем отличается от того что я делаю сейчас. На выходе тот же Ubuntu xenial.

В списке поддерживаемых Armbian есть и нужный мне проц и плата. Скомпилить попробую обязательно.

Share this post


Link to post
Share on other sites
Мне нужно избавится от HDMI и гнать видео в MIPI DSI.

В конфигах ядра есть возможность включения некого дисплея с этим интерфейсом. С этого хотел начать.

Тогда начинать имеет смысл с организации загрузки через NFS.

 

Я не очень понял что из себя представляет Armbian и чем отличается от того что я делаю сейчас.

Просто в отличие от "родного" образа он будет работать почти без сюрпризов.

Share this post


Link to post
Share on other sites
Я уже пробовал две microsd. Результаты одни и те же. Мой образ говорит что размер uboot нулевой. Чужой готовый образ ubuntu грузится без проблем с обоих microsd.

ок

Тут моих знаний не достаточно чтобы судить правильные скриты или нет. При компиляции создаются еще промежуточные бинарные файлы, он мерджатся друг с другом.

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

БП китайский указано 3А, сколько там настоящих не знаю. Но ведь готовая ubuntu грузится. Так что на железо вообще не грешу.

до полного прохождения финальных тестов я не снимаю подозрений с железа. у меня есть пара БП, снятые с рабочих систем - без нагрузки четко 5В, под нагрузкой от 3 до 4В..

С Allwinner как-то и с документацией все плохо и на форумах не нахожу то что мне нужно. Может потому что процессор взял 64 битный.

на мой взгляд, ситуация еще хуже чем кажется, там полный бардак, я аналогично смотрел на A20..

 

Мне нужно избавится от HDMI и гнать видео в MIPI DSI.

В конфигах ядра есть возможность включения некого дисплея с этим интерфейсом. С этого хотел начать.

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

 

updateв фоне из любопытства дернул с гита, собрал, после первой сборки "собрать всю систему" вижу в конце лога

make: Leaving directory '/home/jury093/2erase/orangepi/OrangePiA64/kernel'
Creating image /home/jury093/2erase/orangepi/OrangePiA64/output/OrangePiA64_Win.img of size 1200 MiB ...
+ dd if=/dev/zero bs=1M count=20 of=/home/jury093/2erase/orangepi/OrangePiA64/output/OrangePiA64_Win.img
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0,0225211 s, 931 MB/s
+ dd if=/home/jury093/2erase/orangepi/OrangePiA64/external/boot0.bin conv=notrunc bs=1k seek=8 of=/home/jury093/2erase/orangepi/OrangePiA64/output/OrangePiA64_Win.img
32+0 records in
32+0 records out
32768 bytes (33 kB) copied, 0,00667309 s, 4,9 MB/s
+ dd if=/home/jury093/2erase/orangepi/OrangePiA64/output/u-boot-with-dtb.bin conv=notrunc bs=1k seek=19096 of=/home/jury093/2erase/orangepi/OrangePiA64/output/OrangePiA64_Win.img
dd: failed to open ‘/home/jury093/2erase/orangepi/OrangePiA64/output/u-boot-with-dtb.bin’: No such file or directory

я бы не стал безоговорочно доверять..

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

скрипт укладки build_image.sh, там пара строк по запихиванию стороннего бинарника boot0 и собственно u-boot-with-dtb.bin

Edited by Jury093

Share this post


Link to post
Share on other sites
пришлось еще раз запускать сборку конкретно юбута, потом повторил сборку имиджа
Меня тоже это насторожило в первый раз. Но криминального вроде ничего нет. Я решил что так и было задумано.

 

Поясните мне про Armbian.

Тут https://docs.armbian.com/Developer-Guide_Build-Preparation/ пишут что нужна Virtualbox, vagrant, Ubuntu 16.04. Что за зверь такой vagrant не понимаю. Разве я не могу просто под ubuntu скомпилить?

 

Share this post


Link to post
Share on other sites
Разве я не могу просто под ubuntu скомпилить?

А смысл его вообще собирать? Используйте готовую rootfs, а ядро собирайте своё.

Share this post


Link to post
Share on other sites
Меня тоже это насторожило в первый раз. Но криминального вроде ничего нет. Я решил что так и было задумано.

ну как сказать - кто ж знает, что там еще не донастроенно..

какая мысль появилась по прелоадеру и юбуту:

из рабочего имиджа выкусите размер boot0 и засуньте в свой свежесгенеренный

вторая мысль - в чужой образ затолкать свой u-boot-with-dtb

может картина дефекта как-то поменяется, тогда будет проще искать дальше..

 

в скрипте есть готовая строка, только внимательно - не прибейте свой hdd случайно..

 

Поясните мне про Armbian.

Тут https://docs.armbian.com/Developer-Guide_Build-Preparation/ пишут что нужна Virtualbox, vagrant, Ubuntu 16.04. Что за зверь такой vagrant не понимаю. Разве я не могу просто под ubuntu скомпилить?

совершенно не при делах зачем "vagrant", авторы решили что им надо:

WARNING: We’ll be using Virtualbox as a virtualization provider for Vagrant. Virtualbox has documented issues running Xenial under heavy disk IO. Please make sure your version of Virtualbox is >= 5.1.12 where the issue, “Storage: fixed a problem with the LsiLogic SCSI controller where requests could be lost with SMP guests”, appears to have been resolved.

в гугле:

Vagrant (с англ. — «бродяга») — свободное и открытое программное обеспечение для создания и конфигурирования виртуальной среды разработки. Является обёрткой для программного обеспечения виртуализации, например VirtualBox, и средств управления конфигурациями, такими как Chef, Salt и Puppet.

в линуксе комплексные сборки вообще требуют и тащат много мусора - я такое не практикую, обычно выкусываю жизненно важные архивы (загрузчики, ядра), остальное в /dev/null

 

А смысл его вообще собирать? Используйте готовую rootfs, а ядро собирайте своё.

+1, мне добавить нечего..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now