Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
buildroot-2014.08 на базе ядра 3.10.17 для i.mx6
DeD
Добавлено 07.11.2014 11:59 Сообщение: 31
DeD
0

Пункты: 393
Регистрация: 27.02.2012
В U-boot прописана загрузка zImage, который и появляется в папке в папке /buildroot-2014.08-sk/output/images после сборки. В первый раз всё обновлять лучше через MfgTool либо записывать готовый образ на карточку. В дальнейшем скрипт обновления по tftp следует изменить на использование zImage. То есть для обновления ядра нужно поместить в папку /boot на устройстве файл zImage и соответсвующий *.dtb файл.
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 07.11.2014 12:15 Сообщение: 32
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Перекопировал образ на SD карту командой sudo ./mk-sd.sh /dev/sdb, вставил карту в слот на модуле, замкнул джампер, подал питание, в PuTTY тишина... Что я не так делаю?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.11.2014 12:25 Редактировалось 07.11.2014 12:28 Сообщение: 33
sasamy
4.70

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

Перекопировал образ на SD карту командой sudo ./mk-sd.sh /dev/sdb, вставил карту в слот на модуле, замкнул джампер, подал питание, в PuTTY тишина... Что я не так делаю?


Вот тут по ссылке рабочий имидж с минимальной системой для OEM

http://starterkit.ru/html/index.php?name=forum&op=view&id=23990&num=2#24014

я не могу предугадать ваши действия - что вы делаете не так, для начала соберите минимальный образ, он собирается 5 мин. Есть подозрение что вы загружаетесь не с загрузочного usdhc - посмотрите мануал для своей платы - какой из слотов SD загрузочный.
Спуститься к концу Подняться к началу
Персональная информация
DeD
Добавлено 07.11.2014 12:29 Сообщение: 34
DeD
0

Пункты: 393
Регистрация: 27.02.2012
В меню Bootloaders/Starterkit i.MX6 board нужно выбрать свой тип. Откуда должен грузится модуль? Может быть он пытается грузиться с NAND? У меня SODIMM модуль, грузится с eMMC, я первый раз шил через MfgTool.
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 07.11.2014 13:46 Сообщение: 35
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Скачал образ, распаковал, скопировал его /output/images, запустил копирование:

user@iMX6-bld:~/src/rootfs/main_fs/nand_fs/buildroot-2014.08-sk$ sudo ./mk-sd.sh /dev/sdb
[sudo] password for user:
[: 6: /dev/sdb: unexpected operator
umount: /dev/sdb: not mounted
write image
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1011.98 s, 1.0 MB/s

Вставил в единственный слот для SD карт на модуле, замкнул джампер, подал питание и опять чёрный экран в терминале...
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 07.11.2014 14:02 Сообщение: 36
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Минимальный образ запустился!
Перед повторением вышеописанных действий полностью переформатировал карту памяти программой SDFormatter под Win7 (странно, но факт).
Спуститься к концу Подняться к началу
Персональная информация
DeD
Добавлено 07.11.2014 14:07 Сообщение: 37
DeD
0

Пункты: 393
Регистрация: 27.02.2012
1. Вопрос каким образом менять/добавлять найстройки портов ввода-вывода и периферии в новой версии ядра?
В старой версии ядра порты ввода-вывода конфигураровались в *.c файле(модификация board-mx6q_sabrelite.c). Для некоторых из них нужно было указать по 2 определения.
Например для конфигуроирования ноги детектирования SD:
MX6Q_PAD_KEY_COL3__GPIO_4_12, /* SD1_DET */ (назначение ноги)
#define MX6_SK_SD1_CD IMX_GPIO_NR(4, 12)(использовалось в структуре инициализации)

В новом ядре потрты ввода-вывода можно сконфигурировать в соответсвующем *.dtsi файле. Но друго типа дефайнов теперь там нет.
Достатоно ли для переназначения ног менять определение вида "MX6Q_PAD_KEY_COL3__GPIO_4_12", либо ещё нужно что-то куда-то добавлять(пусть для случая с ногой детектирования SD карты)?

2. Впорос по поводу дисплеев.
В старой версии ядра у меня были устройства fb0-fb1 для главного дисплея и fb2-fb3 для второго двиплея. Допустим, первый дисплей был HDMI, а второй LVDS.
В новой версии ядра у меня почему-то нечётное число устройств fb0, fb1, fb2. Дисплеи те же HDMI и LVDS. Дисплей, который будет указан как главный работает корректно, на втором же изображение получить не удалось.
cat /bin/busybox > /dev/fb0 - на главном дисплее появляется мусор.
cat /bin/busybox > /dev/fb2 - на втором дислее ничего не появляется.

Настройка в U-boot: video=video=mxcfb0:dev=ldb,LDB-WSVGA,if=RGB24 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24 dmfc=3 consoleblank=0

3. Вопрос по повоу Qt.
В старой версии buidroot(которая 2013.11-sk) с библиотеками Qt версии 4 для запуска приложения нужны били флаги -qws и -display inuxfb:/dev/fb2.
В новой версии buidroot(САБЖ) с библиотеками Qt версии 5.

Нужен ли для запуска флаг -qws(и без него работает)?
Каким образом теперь указывать диплей (так?: -platform linuxfb -display=linuxfb:/dev/fb2)?

4. Вопрос по поводу opengl в Qt5.
В Qt4 для запуска opengl приложения нужно было указать флаг -eglfs. При этом изображение вывести можно было только на главный дислей. А также выводилась лишь непосредственно opengl составляющая.
Например для opengl демо:

./hellogl_es2 -qws будет выведено только само окно заданного размера, внутри которого вместо opengl анимации чёрная пустота, зато можно запустить и на втором дисплее.
./hellogl_es2 -eglfs будет выведено только opengl анимация без рамки во весь экран, независимо от указанных классу главного окна размеров, вывести на второй дислпей невозможно.

В Qt5.3 была обещана возможность выбирать дисплей для вывода opengl. Так ли это? Каким образом это можно задать? И возможен ли одновременный вывод как виджета так и opengl содержимого?
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 07.11.2014 14:10 Сообщение: 38
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
При попытке перезаписать NAND с SD карты появляется следующее:

# /root/root2nand.sh
/root/root2nand.sh: line 8: ubiformat: not found
/root/root2nand.sh: line 9: ubiattUBIFS error (pid 203): ubifs_mount: cannot open "ubi0:rootfs", error -19
ach: not found
/root/root2nand.sh: line 10: ubimkvol: not found
mount: mounting ubi0:rootfs on /mnt failed: No such device
tar: removing leading '/' from member names
mkdir: can't create directory '/mnt/dev': File exists
mkdir: can't create directory '/mnt/proc': File exists
mkdir: can't create directory '/mnt/sys': File exists
mkdir: can't create directory '/mnt/tmp': File exists
mkdir: can't create directory '/mnt/mnt': File exists
umount: can't umount /mnt: Invalid argument
MTD CONFIG:
chip_0_device_path = "/dev/mtd0"
chip_1_device_path = "(null)"
search_exponent = 2
data_setup_time = 80
data_hold_time = 60
address_setup_time = 25
data_sample_time = 6
row_address_size = 3
column_address_size = 2
read_command_code1 = 0
read_command_code2 = 48
boot_stream_major_version = 1
boot_stream_minor_version = 0
boot_stream_sub_version = 0
ncb_version = 3
boot_stream_1_address = 0
boot_stream_2_address = 0
-- We add the 1k-padding to the uboot.
.tmp_kobs_ng: verifying using key '00000000000000000000000000000000'
.tmp_kobs_ng: is a valid bootstream for key '0000000000000000000000000000000'
mtd: opening: "/dev/mtd0"
NFC geometry :
ECC Strength : 16
Page Size in Bytes : 8628
Metadata size : 10
ECC Chunk Size in byte : 512
ECC Chunk count : 16
Block Mark Byte Offset : 7792
Block Mark Bit Offset : 0
====================================================
mtd: opened '/dev/mtd0' - '(null)'
mtd: max_boot_stream_size_in_bytes = 6291456
mtd: boot_stream_size_in_bytes = 413696
mtd: boot_stream_size_in_pages = 51
mtd: #1 0x00400000 - 0x00a00000 (0x00465000)
mtd: #2 0x00a00000 - 0x01000000 (0x00a65000)
FCB
m_u32Checksum = 0x00000000
m_u32FingerPrint = 0x20424346
m_u32Version = 0x01000000
m_NANDTiming.m_u8DataSetup = 80
m_NANDTiming.m_u8DataHold = 60
m_NANDTiming.m_u8AddressSetup = 25
m_NANDTiming.m_u8DSAMPLE_TIME = 6
m_u32PageDataSize = 8192
m_u32TotalPageSize = 8628
m_u32SectorsPerBlock = 128
m_u32NumberOfNANDs = 0
m_u32TotalInternalDie = 0
m_u32CellType = 0
m_u32EccBlockNEccType = 8
m_u32EccBlock0Size = 512
m_u32EccBlockNSize = 512
m_u32EccBlock0EccType = 8
m_u32MetadataBytes = 10
m_u32NumEccBlocksPerPage = 15
m_u32EccBlockNEccLevelSDK = 0
m_u32EccBlock0SizeSDK = 0
m_u32EccBlockNSizeSDK = 0
m_u32EccBlock0EccLevelSDK = 0
m_u32NumEccBlocksPerPageSDK = 0
m_u32MetadataBytesSDK = 0
m_u32EraseThreshold = 0
m_u32Firmware1_startingPage = 512
m_u32Firmware2_startingPage = 1280
m_u32PagesInFirmware1 = 51
m_u32PagesInFirmware2 = 51
m_u32DBBTSearchAreaStartAddress = 256
m_u32BadBlockMarkerByte = 7792
m_u32BadBlockMarkerStartBit = 0
m_u32BBMarkerPhysicalOffset = 8192
m_u32BCHType = 0
m_NANDTMTiming.m_u32TMTiming2_ReadLatency = 0
m_NANDTMTiming.m_u32TMTiming2_PreambleDelay = 0
m_NANDTMTiming.m_u32TMTiming2_CEDelay = 0
m_NANDTMTiming.m_u32TMTiming2_PostambleDelay = 0
m_NANDTMTiming.m_u32TMTiming2_CmdAddPause = 0
m_NANDTMTiming.m_u32TMTiming2_DataPause = 0
m_NANDTMTiming.m_u32TMSpeed = 0
m_NANDTMTiming.m_u32TMTiming1_BusyTimeout = 0
m_u32DISBBM = 0
DBBT
m_u32Checksum = 0x00000000
m_u32FingerPrint = 0x54424244
m_u32rsion = 0x01000000
m_u32DBBTNumOfPages = 0
Firmware: image #0 @ 0x400000 size 0x66000 - available 0x600000
Firmware: image #1 @ 0xa00000 size 0x66000 - available 0x600000
-------------- Start to write the [ FCB ] -----
mtd: erasing @0:0x0-0x100000
mtd: Writing FCB0 [ @0:0x0 ] (21b4) *
mtd: Writing FCB1 [ @0:0x80000 ] (21b4) *
mtd: erasing @0:0x100000-0x200000
mtd: Writing FCB2 [ @0:0x100000 ] (21b4) *
mtd: Writing FCB3 [ @0:0x18000 ] (21b4) *
mtd_commit_bcb(FCB): status 0

-------------- Start to write the [ DBBT ] -----
mtd: erasing @0:0x200000-0x300000
mtd: Writing DBBT0 [ @0:0x200000 ] (2000) *
mtd: Writing DBBT1 [ @0:0x280000 ] (2000) *
mtd: erasing @0:0x300000-0x400000
mtd: Writing DBBT2 [ @0:0x300000 ] (2000) *
mtd: Writing DBBT3 [ @0:0x380000 ] (2000) *
mtd_commit_bcb(DBBT): status 0

---------- Start to write the [ .tmp_kobs_ng ]----
mtd: Writting .tmp_kobs_ng: #0 @0: 0x000000 - 0x0046600
mtd: erasng @0:0x400000-0x500000
mtd: The last page is not full : 4096
mtd: We write one page for save guard. *
mtd: Writting .tmp_kobs_ng: #1 @0: 0x00a00000 - 0x00a66000
mtd: erasing @0:0xa00000-0xb00000
mtd: The last page is not full : 4096
mtd: We write one page for save guard. *
#


И с NAND больше загружаться не хочет.
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 07.11.2014 15:18 Редактировалось 07.11.2014 17:19 Сообщение: 39
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Собрал свой минимальный образ:

make imx6sk_min_defconfig

Всё собралось, на карту залил, с карты модуль загружается.
Запустил /root/root2nand.sh, с NAND так же не загружается.

То же самое происходит и при тестировании образа

make imx6sk_qt5gst_defconfig
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.11.2014 17:31 Редактировалось 07.11.2014 18:08 Сообщение: 40
sasamy
4.70

Пункты: 77267
Регистрация: 14.08.2009
Цитата
Собрал свой минимальный образ:

make imx6sk_min_defconfig


в минимальном образе я забыл поставить галку для утилит mtd - добавьте через menuconfig

-> Target packages
-> Filesystem and flash utilities
[*] mtd, jffs2 and ubi/ubifs tools

то что по умолчанию там выделится - достаточно для работы с nand, потом просто make после этого и пакет добавится в новом образе, образ формируется заново после каждого make. Но все равно не понятно - хотя бы u-boot должен был загрузиться - перемычки не забываете переключать ? Конфиг потом добавлю как накопится побольше замечаний.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux