Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
buildroot-2014.08 на базе ядра 3.10.17 для i.mx6
chaos
Добавлено 04.11.2014 12:10 Сообщение: 21
chaos
0

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

или в буилдруте выбрать для fb0

fb0 mode (ldb,SK-ATM0704)


На радостях за ночь уже пересобрал, с ним и играюсь. На разъеме X2 - картинка есть. Гляньте в полученный конфиг
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.11.2014 12:21 Сообщение: 22
sasamy
4.70

Пункты: 77267
Регистрация: 14.08.2009
В конфиге все нормально на первый взгляд - выложите на pastebin.com или другой ресурс лог загрузки ядра. После загрузки в консоли

dmesg > kernel.log
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.11.2014 12:43 Редактировалось 04.11.2014 12:49 Сообщение: 23
sasamy
4.70

Пункты: 77267
Регистрация: 14.08.2009
Посмотрел схему - так и должно быть, на MB свои обозначения LVDS:

X1 по схеме MB это lvds0, но реально на процессоре это lvds1
X2 по схеме MB lvds1, реально lvds0

&ldb {
ipu_id = <0>;
disp_id = <0>;
ext_ref = <1>;
mode = "sep0";
sec_ipu_id = <0>;
sec_disp_id = <1>;
status = "okay";
};

активным по умолчанию будет только дисплей на X2, проверить раотоспособность на X1 можно залив туда "мусор"

echo "0" > /sys/class/graphics/fb2/blank
cat /bin/busybox > /dev/fb2

если хочется заморочиться - можно попробовать поменять DTS

&ldb {
ipu_id = <0>;
disp_id = <1>;
ext_ref = <1>;
mode = "sep0";
sec_ipu_id = <0>;
sec_disp_id = <0>;
status = "okay";
};

только я не знаю - надо ли это :)
Спуститься к концу Подняться к началу
Персональная информация
chaos
Добавлено 04.11.2014 12:59 Сообщение: 24
chaos
0

Пункты: 1098
Регистрация: 14.09.2014
Конечно проще постулировать, что lvds0 => X2, lvds1=>X1. В дальнейшем это не нарушит "отчетность"?)
Лог еше нужен?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.11.2014 13:22 Редактировалось 04.11.2014 13:27 Сообщение: 25
sasamy
4.70

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

Конечно проще постулировать, что lvds0 => X2, lvds1=>X1


схема oem модуля

title

схема MB

title
Спуститься к концу Подняться к началу
Персональная информация
chaos
Добавлено 04.11.2014 13:26 Сообщение: 26
chaos
0

Пункты: 1098
Регистрация: 14.09.2014
Александр, по конфигу можете подсказать, чего не хватает для запуска gtk-приложения?
Сейчас ситуация такова
Код

# export DISPLAY=:0.0
# ./project1

(process:309): Gdk-WARNING **: locale not supported by C library

(process:309): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.

(project1:309): Gtk-WARNING **: cannot open display: :0.0
Спуститься к концу Подняться к началу
Персональная информация
Spirit
Добавлено 04.11.2014 15:14 Редактировалось 04.11.2014 15:40 Сообщение: 27
Spirit
0

Пункты: 3257
Регистрация: 06.05.2010
Пол: Мужчина
Из: Энгельс-Саратов
imx6q-hola imx6dl-hola, кто из них для Hola-PC Duo, а кто для Hola-PC???
Вопрос снимается...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.11.2014 15:53 Редактировалось 04.11.2014 18:46 Сообщение: 28
sasamy
4.70

Пункты: 77267
Регистрация: 14.08.2009
Если со смекалкой не очень - гадать не надо :)

title

а вообще в ядре код для imx6 quad и imx6 dual объединены, платы с этими процессорами обозначают как imx6q-xxxx. imx6 dual lite и imx6 solo объединены в другую ветку и платы обозначают как imx6dl-xxx. Какой DTB у какой холы можно увидеть в файле boards.cfg в корне исходников убута

awk '$6 == "hola_imx6" { print $8 }' boards.cfg

hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_dual.cfg,MX6Q,DDR_MB=1024,DEFAULT_FDT_FILE="imx6q-hola.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_dual.cfg,MX6Q,DDR_MB=1024,DEFAULT_FDT_FILE="imx6q-hola-aeeb.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_dual.cfg,MX6Q,DDR_MB=1024,DEFAULT_FDT_FILE="imx6q-hola-feb.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_dual.cfg,MX6Q,DDR_MB=1024,DEFAULT_FDT_FILE="imx6q-hola-ieb.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_dual.cfg,MX6Q,DDR_MB=1024,DEFAULT_FDT_FILE="imx6q-hola-vceb.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_solo.cfg,MX6S,DDR_MB=512,DEFAULT_FDT_FILE="imx6dl-hola.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_solo.cfg,MX6S,DDR_MB=512,DEFAULT_FDT_FILE="imx6dl-hola-aeeb.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_solo.cfg,MX6S,DDR_MB=512,DEFAULT_FDT_FILE="imx6dl-hola-feb.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_solo.cfg,MX6S,DDR_MB=512,DEFAULT_FDT_FILE="imx6dl-hola-ieb.dtb"
hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_solo.cfg,MX6S,DDR_MB=512,DEFAULT_FDT_FILE="imx6dl-hola-vceb.dtb"

в ядре собираются DTB файлы для всех плат и они лежат в /boot - полученную корневую можно загрузить на любой плате, загрузчик конкретной платы "знает" свой DTB файл из конфига и загрузит нужный, имидж ядра (zImage) для всех один и тот же.

Например: есть плата HolaDual-PC с плагом VCEB, надо собрать убут "вручную" отдельно от буилдрута, в исходниках убута конфигурация выполняется так

GCC=/home/user/crosscompiler/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/bin/arm-linux-gnueabi-

make ARCH=arm CROSS_COMPILE=$GCC distclean

make ARCH=arm CROSS_COMPILE=$GCC hola_dual_vceb_config

полная строка в boards.cfg для этого конфига выглядит так

Active arm armv7 mx6 starterkit hola_imx6 hola_dual_vceb hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_dual.cfg,MX6Q,DDR_MB=1024,DEFAULT_FDT_FILE="imx6q-hola-vceb.dtb" Pavel Ivanchenko <info@starterkit.ru>

из bords.cfg пареметр
DEFAULT_FDT_FILE="imx6q-hola-vceb.dtb"
подствляется в файл конфигурации (include/configs/hola_imx6.h) в виде

CONFIG_DEFAULT_FDT_FILE=imx6q-hola-vceb.dtb

в переменных окружения в строке

"dtbfile=" CONFIG_DEFAULT_FDT_FILE "\0" \

в результате переменная окружения dtbfile принимает значение еще на этапе сборки

dtbfile=imx6q-hola-vceb.dtb

убут в итоге прочитает с носителя нужный DTB

"ext2load mmc 0:1 ${dtbaddr} /boot/${dtbfile};" \

тут подстановка выполнится в момент исполнения команды mmc_boot

Исходники (с окончанием dts) в ядре находятся в директории

linux-imx_3.10.17_1.0.2_ga-sk/arch/arm/boot/dts

например imx6q-hola-vceb.dts

Цитата

/*
* Copyright 2014 starterkit.ru
*
* The code contained herein is licensed under the GNU General Public
* License V2.
*/

/dts-v1/;

#include "imx6q.dtsi" включение описания процессоров imx6 quad - imx6 dual
#include "imx6qdl-hola.dtsi" включение описания общих параметров для всех hola(dual)

далее описание специфичной части платы с плагом
/ {
model = "Starterkit i.MX6 Dual Hola-PC Board with Video Capture Extension Board";
compatible = "sk,imx6q-hola", "fsl,imx6q-sabresd", "fsl,imx6q";

memory {
reg = <0x10000000 0x40000000>;
};
.....
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.11.2014 18:09 Редактировалось 04.11.2014 18:27 Сообщение: 29
sasamy
4.70

Пункты: 77267
Регистрация: 14.08.2009
Немного про hola(dual) специфичный первый запуск u-boot. На холах у отладочного uarta (ttymxc0) нет преобразователя уровней, переменнные окружения убута можно изменить из корневой ФС утилитами u-boot, в buildroot это включается тут

-> Target packages
-> Hardware handling
[*] u-boot tools
[*] fw_printenv

в скрипте buildroot-2014.08-sk/board/starterkit/imx6sk-min/post-build.sh

копируется в будущую корневую систему для него конфиг в /etc/fw_env.config - там прописано устройство на котором хранятся переменные окружения убута, смещение и размер

/dev/mmcblk0 0x60000 0x2000

это соотвтетствует строкам конфига убута

/* Environment in MMC */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_SIZE (8 << 10)
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (6 * 64 * 1024)
#define CONFIG_SYS_MMC_ENV_DEV 0

посмотреть переменные окружения можно командой

# fw_printenv
baudrate=115200
bootcmd=run mmc_boot
bootdelay=0
console=console=ttymxc0,115200
delenv=env default -a -f; saveenv
dtbaddr=12800000
dtbfile=imx6dl-hola.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} ${mmcroot} ${video}
mmcroot=root=/dev/mmcblk0p1 rootwait rw
netmask=255.255.255.0
serverip=192.168.0.2
stderr=serial
stdin=serial
stdout=serial
video=video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24 dmfc=3 video=mxcfb1:dev=ldb,LDB-XGA,if=RGB24 consoleblank=0

можно поменять любую, например

# fw_setenv video "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 dmfc=3"

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

"bootcmd=setenv bootcmd 'run mmc_boot'; saveenv; run bootcmd\0"

эта команда будет выполнена только один раз при первом старте - после этого в переменных окружения команда bootcmd примет нормальный вид

bootcmd=run mmc_boot
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 07.11.2014 11:40 Сообщение: 30
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Сделал в VirtualBox сборку buildroot-2014.08 по рекомендациям из первого поста. Сборку делал для модуля SK-iMX6S-OEM. Процесс сборки занял чуть более суток и прошёл без ошибок. После окончания процесса в папке /buildroot-2014.08-sk/output/images появились файлы rootfs.tar.gz и u-boot-nand.imx, но не появился ожидаемый мной файл uImage. Первые два файла я скопировал в папку ~/tftp и переименовал u-boot-nand.imx в u-boot.imx.
Можете пояснить каким побразом я могу обновить в модуле загрузчик, ядро и КФС?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux