Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Linux _ Не грузится linux

Автор: uriy Dec 12 2017, 17:42

Есть плата 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

Автор: aaarrr Dec 12 2017, 18:32

Цитата(uriy @ Dec 12 2017, 20:42) *
Кто формирует эти сообщения? Что-то перед uboot еще загружается?

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

Автор: uriy Dec 13 2017, 10:45

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

Автор: Jury093 Dec 13 2017, 10:57

Цитата(uriy @ Dec 13 2017, 13:45) *
Если плату включаю без microsd в терминалке нет никаких сообщений.

сам бинарник юбута лежит в месте, где его ищет загрузчик?
длина не нулевая?
имя файла правильное?
руками грузится или тоже 0?

Автор: uriy Dec 17 2017, 18:53

Цитата
сам бинарник юбута лежит в месте, где его ищет загрузчик?
uboot находится на microsd. Встроенный загрузчик ищет на spi, microsd и usb.
После компиляции создается u-boot-with-dtb.bin (900 кбайт), Image (11 Мбайт), rootfs (700 Мбайт) и все это собирается в единый OrangePiA64_Win.img (1,3 гига)
Компилится все готовыми скриптами отсюда http://electronix.ru/redirect.php?https://github.com/orangepi-xunlong/OrangePi_Build
Скриптами же записывается на microsd.
Также пробовал записывать образ через винду с помощью Win32DiskImager результат такой же. Чужой *.img записанный на флешку такими же спосбами грузится.

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

Автор: Jury093 Dec 17 2017, 22:47

Цитата(uriy @ Dec 17 2017, 21:53) *
uboot находится на microsd. Встроенный загрузчик ищет на spi, microsd и usb.
После компиляции создается u-boot-with-dtb.bin (900 кбайт), Image (11 Мбайт), rootfs (700 Мбайт) и все это собирается в единый OrangePiA64_Win.img (1,3 гига)
Компилится все готовыми скриптами отсюда http://electronix.ru/redirect.php?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А

Цитата
Это как?

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

Автор: aaarrr Dec 18 2017, 04:02

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

Автор: uriy Dec 18 2017, 05:09

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

Цитата
- поискать в скриптах тот, который генерит финальный образ "единый OrangePiA64_Win.img (1,3 гига)" на предмет "откуда, куда и как" он записывает в образ файл "u-boot-with-dtb.bin", вероятно это будет команда dd - убедиться что бинарник записан верно
Тут моих знаний не достаточно чтобы судить правильные скриты или нет. При компиляции создаются еще промежуточные бинарные файлы, он мерджатся друг с другом.
Цитата
да, и что там с питальником? лучше подстраховаться и закормить на 1.5-2А
БП китайский указано 3А, сколько там настоящих не знаю. Но ведь готовая ubuntu грузится. Так что на железо вообще не грешу.
Цитата
Я бы посоветовал перейти на mainline u-boot
В смысле взять его отсюда http://electronix.ru/redirect.php?http://www.denx.de/wiki/U-Boot

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

Автор: aaarrr Dec 18 2017, 05:19

Цитата(uriy @ Dec 18 2017, 08:09) *
В смысле взять его отсюда http://electronix.ru/redirect.php?http://www.denx.de/wiki/U-Boot

Да.

А в чем смысл пересборки "родного" софта от производителя? Если нужна полноценная работающая система,
то стоит взять Armbian. Если что-то свое, то лучше сразу собирать самостоятельно, хоть под тем же buildroot'ом.

Автор: uriy Dec 18 2017, 07:43

Цитата
А в чем смысл пересборки "родного" софта от производителя?
Мне нужно избавится от HDMI и гнать видео в MIPI DSI.
В конфигах ядра есть возможность включения некого дисплея с этим интерфейсом. С этого хотел начать.

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

Автор: aaarrr Dec 18 2017, 07:48

Цитата(uriy @ Dec 18 2017, 10:43) *
Мне нужно избавится от HDMI и гнать видео в MIPI DSI.
В конфигах ядра есть возможность включения некого дисплея с этим интерфейсом. С этого хотел начать.

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

Цитата(uriy @ Dec 18 2017, 10:43) *
Я не очень понял что из себя представляет Armbian и чем отличается от того что я делаю сейчас.

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

Автор: Jury093 Dec 18 2017, 09:06

Цитата(uriy @ Dec 18 2017, 08:09) *
Я уже пробовал две microsd. Результаты одни и те же. Мой образ говорит что размер uboot нулевой. Чужой готовый образ ubuntu грузится без проблем с обоих microsd.

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

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

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

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

Цитата(uriy @ Dec 18 2017, 10:43) *
Мне нужно избавится от 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

Автор: uriy Dec 18 2017, 11:41

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

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

Автор: aaarrr Dec 18 2017, 11:54

Цитата(uriy @ Dec 18 2017, 14:41) *
Разве я не могу просто под ubuntu скомпилить?

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

Автор: Jury093 Dec 18 2017, 12:33

Цитата(uriy @ Dec 18 2017, 14:41) *
Меня тоже это насторожило в первый раз. Но криминального вроде ничего нет. Я решил что так и было задумано.

ну как сказать - кто ж знает, что там еще не донастроенно..
какая мысль появилась по прелоадеру и юбуту:
из рабочего имиджа выкусите размер boot0 и засуньте в свой свежесгенеренный
вторая мысль - в чужой образ затолкать свой u-boot-with-dtb
может картина дефекта как-то поменяется, тогда будет проще искать дальше..

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

Цитата
Поясните мне про Armbian.
Тут http://electronix.ru/redirect.php?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

Цитата(aaarrr @ Dec 18 2017, 14:54) *
А смысл его вообще собирать? Используйте готовую rootfs, а ядро собирайте своё.

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

Автор: uriy Dec 19 2017, 05:01

Цитата
Используйте готовую rootfs, а ядро собирайте своё.
Я так еще не умею.
Armbian загрузился! Спасибо за него!
А какие платформы поддерживает buildroot? Не нахожу списка на сайте.
В исходниках buildroot/board/orangepi/ моей платы orange pi win нет.

Автор: aaarrr Dec 19 2017, 06:03

Цитата(uriy @ Dec 19 2017, 08:01) *
Я так еще не умею.

Для ручной сборки ядра ничего уметь и не надо - достаточно иметь тулчейн и исходники.

Цитата(uriy @ Dec 19 2017, 08:01) *
В исходниках buildroot/board/orangepi/ моей платы orange pi win нет.

Buildroot тем и хорош, что его можно сконфигурировать практически под любую платформу.
А "board specific" у вас только ядро+dt или ядро+config, которые собираются отдельно.

Автор: Olej Jul 1 2018, 11:29

Цитата(aaarrr @ Dec 18 2017, 07:02) *
Я бы посоветовал перейти на mainline u-boot. Разбираться с проблемами варианта от Allwinner в данном случае нет смысла.

Если бы так! crying.gif
В mainline ядре поддержки Н3 до сих пор нет.
Сейчас пока всё у Allwinner делается через U-Boot, он сам настраивает HDMI, создает под это фреймбуфер и передает его ядру в готовом виде... (только мне никто не может подсказать как эта технология называется).
Ядро работает только с /dev/fb*.

Цитата(uriy @ Dec 19 2017, 08:01) *
Armbian загрузился! Спасибо за него!
А какие платформы поддерживает buildroot? Не нахожу списка на сайте.
В исходниках buildroot/board/orangepi/ моей платы orange pi win нет.

Свежий BuildRoot прекрасно поддерживает эту плату (это команда в корневом каталоге BuildRoot):
Код
[olej@xenix buildroot-master]$ make list-defconfigs | grep orangepi
  orangepi_lite_defconfig             - Build for orangepi_lite
  orangepi_one_defconfig              - Build for orangepi_one
  orangepi_pc2_defconfig              - Build for orangepi_pc2
  orangepi_pc_defconfig               - Build for orangepi_pc
  orangepi_pc_plus_defconfig          - Build for orangepi_pc_plus
  orangepi_plus_defconfig             - Build for orangepi_plus
  orangepi_prime_defconfig            - Build for orangepi_prime
  orangepi_win_defconfig              - Build for orangepi_win
  orangepi_zero_defconfig             - Build for orangepi_zero
  orangepi_zero_plus2_defconfig       - Build for orangepi_zero_plus2

Проблема в том, что сборка BuildRoot создаёт компактный (~75Mb) образ для embedded применений, работающий через UART отладочную консоль, но не инициализирует, локальный дисплей Orange Pi на HDMI. См. сюда: http://electronix.ru/redirect.php?https://electronix.ru/forum/index.php?showtopic=147717

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)