Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
2014.08 на базе ядра 3.10.17 для i.mx6 - buildroot - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
buildroot-2014.08 на базе ядра 3.10.17 для i.mx6
sasamy
Добавлено 30.10.2014 23:55 Редактировалось 05.03.2015 12:12
0
Сообщение: 1
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Ссылка на архив


27.02.2015

https://yadi.sk/d/39jyACgDevz7A

Разархивировать и зайти в корень исходников buildroot


tar -xjvf buildroot-2014.08-sk.tar.bz2
cd buildroot-2014.08-sk


Для облегчения начальной настройки есть 4 готовых конфига


make imx6sk_min_defconfig


минимальный конфиг - загрузчик, ядро и корневая система состоящая только из компонентов busybox и kobs-ng на случай переноса на nand (он есть во всех 4 варианта для чего - чуть ниже)

make imx6sk_gst_defconfig

система c gstreamer и минимальным набором плагиннов достаточным для работы с adv7180

make imx6sk_qt5gst_defconfig

система с Qt 5.3.2 , настроенная на работу поверх фреймбуфера без оконной системы с поддержкой OpenGL ES2 и VPU для декодирования видео, нет qtwayland и qtwebkit2 - нормальной работы в такой связке мне получить пока не удалось, но на носу релиз Qt 5.4, там по слухам должно достаточно хорошо работать.
Есть gdb-server и sftp для отладки в Qt Creator, еще там сделана русификация как консоли так и Qt, на USB клавиатуре переключение раскладки клавишей caps lock, автомонтирование съемных носителей с поддержкой ntfs и exfat (в /media/usb0, usb1 и тд). Собранные примеры Qt и пара демок находятся в /root/examples

make imx6sk_xbmc_defconfig

минимальная система с XBMC последней версии из ветки для i.mx6
https://github.com/xbmc-imx6/xbmc

!!! ВНИМАНИЕ !!!
Нужно выбрать cвою плату и некоторые параметры

make menuconfig


далее опишу что я добавил в настройки buildroot и на что надо обратить внимание

Kernel --->
adv7180 ain_num (1 - default) --->

количество аналоговых входов с которых нужно получать видеоданные, по умолчанию 1, история описана тут
http://starterkit.ru/html/index.php?name=forum&op=view&id=23575&num=2#23709


Bootloaders --->
Starterkit i.MX6 board (Hola-PC + VCEB) --->

ВЫБЕРИТЕ из выпадающего меню вариант СВОЕЙ ПЛАТЫ
в данном примере - плата Hola-PC (SOLO) с плагом видеозахвата Hola-VCEB


fb0 mode (hdmi,1280x720) --->

видеорежим и тип интерфейса для fb0, в данном примере преобразуется в параметр ядра

video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24

есть все варианты которые встречаются на местных платах

fb1 mode (ldb,LDB-XGA) --->

то же самое только для fb1, в данном случае получится строка в параметрах
video=mxcfb1:dev=ldb,LDB-XGA,if=RGB24

[*] enable dmfc=3 for HD video playback

добавляет параметр dmfc=3 для воспроизедения видео на экране с высоким разрешением, на холах я бы рекомендовал всегда его выставлять.

[ ] Enable HW watchdog

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

Для плат с процессорами i.mx6 quad/dual появляется дополнительный параметр

[ ] switch DDR to 528 MHz (WARNING: don't use, unstable) (NEW)

Павел не гарантирует что память будет работать на частоте 528M без сбоев, поэтому по умолчнию 400M. На данный момент работают только первые ревизии SK-IMX6Q и текущие SK-iMX6D-SODIMM, нет гарантии что следующая партия не начнет сбоить, сделал только для того если кому-то хочется поэкспериментировать.

После выхода с сохранением конфигурации запустите сборку


make


ПРИМЕЧАНИЕ: если вы изменили параметры в подменю
Bootloaders --->
после сборки корневой системы, нужно пересобрать загрузчик. Для этого в корне есть скрипт - он удаляет собранные исходники загрузчика и пересобирает его с "нуля" - распаковывает из архива.

./uboot_rebuild.sh

В процессе сборки запускаются скрипт, он прописан тут

System configuration --->
(board/starterkit/imx6sk-min/post-build.sh) Custom scripts to run before creating filesystem images

этот скрипт копирует конфиги, настройки, скрипты в корневую после окончания сборки всех выбранных компонентов

образа диска нужно записать в Linux на SD карту


sudo ./mk-sd.sh /dev/sdb


Для плат с nand можно в любое время сделать копию системы с SD на nand, после загрузки с SD запустите скрипт в /root


/root/root2nand.sh


для этих плат собираются два варианта u-boot - для SD (u-boot.imx)
и NAND (u-boot-nand.imx), скрипт скопирует корневую и запишет новый загрузчик в NAND. По умолчанию деление NAND на разделы такое

#define MTDPARTS_DEFAULT "mtdparts=gpmi-nand:16M(boot)," \
"512M(rootfs),-(userdata)"

под корень используется только 512M, там же в /boot лежат DTB и ядро. Можете исправить если нужно в конфиге u-boot

include/configs/sk_imx6.h или oem_imx6.h - в зависимости какая плата,
раскладка разделов передается через параметры загрузки ядра, так что в DTS править не надо - все делается в конфиге убута

Если нет на хост-системе картридера или нет возможности грузиться с SD на SODIMM, в корне buildroot есть архив с подобием MFG для Linux, только круче :) разархивируйте

sudo tar xf imx-usb-loader.tar.gz -C /

теперь если подключить любую плату через USB OTG порт в режиме serial downloader (смотрите мануал для своей платы - как переводить ее в режим обновления из MFG) в нее автоматом зальется прошивка с initramfs и на хост-системе появятся два устройства USB - коммуникационное (ttyACM0) через которое ее можно использовать
как преобразователь USB <-> Serial 3.3 В (сделано перенаправление ttyGS0 <--> ttymxc0) и как USB mass storage для записи образа на SD (вставьте карту после присоединения USB кабеля) или в случае sodimm на встроенную eMMC.

Логин:пароль на всех 4 вариантах root:root, можно сменить пароль или убрать его

System configuration --->
(root) Root password

Пакеты специфичные для i.mx6 находятся тут

-> Target packages
-> Hardware handling
-> Freescale i.MX libraries

В dl лежат ядро и убут, остальное само скачается :)
В u-boot специфичный для плат код в директории board/starterkit, в корне скрипт build.sh - там есть пример конфигурации всех плат
Спуститься к концу Подняться к началу
Персональная информация
titan83
Добавлено 31.10.2014 11:51 Сообщение: 2
titan83
3

Пункты: 3141
Регистрация: 16.12.2012
Александр, молодец!
Все правильно делаете - нужна качественная поддержка, как до продажи, так и после. Только так можно достойно конкурировать со всякой малиной, земляникой и прочими.
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 31.10.2014 21:45 Сообщение: 3
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Спасибо!!!
Буду пробовать после праздников.
Спуститься к концу Подняться к началу
Персональная информация
chaos
Добавлено 01.11.2014 10:28 Сообщение: 4
chaos
0

Пункты: 1098
Регистрация: 14.09.2014
для фикса:
Код
board/starterkit/oem_imx6/oem_imx6.c: In function ‘board_mmc_getcd’:
board/starterkit/oem_imx6/oem_imx6.c:103:3: error: expected ‘;’ before ‘break’
break;
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.11.2014 10:44 Редактировалось 01.11.2014 10:49 Сообщение: 5
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

для фикса:


Спасибо - присылайте замечания, буду время от времени менять линк в своем первом сообщении на новый архив с указанием даты и времени размещения - можно будет проконтролировать актуальная ли у вас версия. На sodimm практически не тестировалось для oem даже не собирал :) Первый вариант что выложил уже надо менять - появились библиотеки OpenGL под ядро 3.10.17-1.0.2 + уже уже нашел 3 ошибки по мелочи, так что обновлю сегодня. Поспешил выложить потому что пообещал еще в начале недели сделать это.
Спуститься к концу Подняться к началу
Персональная информация
chaos
Добавлено 03.11.2014 01:18 Сообщение: 6
chaos
0

Пункты: 1098
Регистрация: 14.09.2014
На заметку:
Код
{standard input}: Assembler messages:
{standard input}:133: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r1,[r4]'
{standard input}:258: Error: thumb conditional instruction should be in IT block -- `strexeq r1,r3,[r4]'
{standard input}:398: Error: thumb conditional instruction should be in IT block -- `strexeq r3,r1,[r0]'
make[5]: *** [fifo.lo] Ошибка 1
make[5]: *** Ожидание завершения заданий...
make[5]: Выход из каталога `/home/chaos/buildroot-2014.08-sk/output/build/directfb-1.6.3/lib/direct'
make[4]: *** [all-recursive] Ошибка 1

~/buildroot-2014.08-sk/output/build/directfb-1.6.3/lib/direct/atomic.h
решение
Спуститься к концу Подняться к началу
Персональная информация
chaos
Добавлено 03.11.2014 13:54 Сообщение: 7
chaos
0

Пункты: 1098
Регистрация: 14.09.2014
Александр, трабла:
Код

U-Boot 2014.04 (Nov 03 2014 - 10:06:49)

CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz
CPU: Temperature 44 C, calibration data: 0x5925185f
Reset cause: WDOG
Board: SK-iMX6-OEM
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
MMC: no card present
MMC init failed
Using default environment

Net: FEC
Normal Boot
Hit any key to stop autoboot: 0
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
Bad Linux ARM zImage magic!
u-boot > printenv
baudrate=115200
bootargs=console=ttymxc0,115200 mtdparts=gpmi-nand:16M(boot),512M(rootfs),-(userdata) root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw video=mxcfb0:dev=ldb,SK-ATM0704,if=RGB24 video=mxcfb1:dev=ldb,LDB-XGA,if=RGB24 consoleblank=0
bootcmd=run mmc_boot
bootdelay=3
console=console=ttymxc0,115200
delenv=env default -a -f; saveenv
dtbaddr=12800000
dtbfile=imx6dl-oem.dtb
ethact=FEC
ethaddr=00:1f:f2:00:00:00
fdt_high=0xffffffff
initrd_high=0xffffffff
ipaddr=192.168.0.136
kernel=zImage
loadaddr=0x12000000
mmc_boot=run mmcargs;ext2load mmc 0:1 ${loadaddr} /boot/${kernel};ext2load mmc 0:1 ${dtbaddr} /boot/${dtbfile};bootz ${loadaddr} - ${dtbaddr}
mmcargs=setenv bootargs ${console} ${mtdparts} ${mmcroot} ${video}
mmcroot=root=/dev/mmcblk0p1 rootfstype=ext4 rootwait rw
mtdparts=mtdparts=gpmi-nand:16M(boot),512M(rootfs),-(userdata)
netmask=255.255.255.0
serverip=192.168.0.2
stderr=serial
stdin=serial
stdout=serial
video=video=mxcfb0:dev=ldb,SK-ATM0704,if=RGB24 video=mxcfb1:dev=ldb,LDB-XGA,if=RGB24 consoleblank=0

Environment size: 1080/8188 bytes
u-boot >

В актуальной версии не этого рода ошибки устранялись?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.11.2014 14:38 Редактировалось 03.11.2014 14:44 Сообщение: 8
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

В актуальной версии не этого рода ошибки устранялись?


Нет - там по мелочи в скриптах и в DTS sk-imx6q нашел ошибки и неточности. С OEM сложность в том что у меня этого модуля нет, а у Павла "уникально" раскиданы gpio на которых висят CD, reset и сами usdhc на разных платах. Главное что модуль стартует с SD - то что MMC не видит убут надо подправить - с какого из usdhc интерфейса загружается с SD, с каких пинов если смотреть по структукной схеме ?

http://starterkit.ru/html/doc/SK-iMX6S-OEM_Structure.pdf

C directfb сейчас пока совсем не до него - там надо тоже под него дописывать правила, поздней этим займусь..
Спуститься к концу Подняться к началу
Персональная информация
chaos
Добавлено 03.11.2014 17:06 Сообщение: 9
chaos
0

Пункты: 1098
Регистрация: 14.09.2014
А старый u-boot с конфигами не поможет?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.11.2014 18:15 Сообщение: 10
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Поменял линк на архив. На oem как на sk-imx6q сделано оказывается, загрузка с usdhc2. Поправил, отпишите если не работает.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux