Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Процессорные модули » SK-iMX6S/D-SODIMM
Подключение SK-ATM0700D4-Plug V4.C + совместная работа с HDMI
sumlin
Добавлено 02.10.2019 18:46 Редактировалось 02.10.2019 21:28
0
Сообщение: 1
sumlin
0

Пункты: 485
Регистрация: 24.06.2018
Не удаётся подключить SK-ATM0700D4-Plug к плате. Кажется, что должно быть всё очень просто:
1) Подключить экран через шлейф к X11 LVDS2 на плате, X10 LVDS на экране, соблюдая положение перемычки (на плате - выемка, на экране - небольшая белая полоса у границы устройства)
2) Зайти в настройки u-boot (make menuconfig, Bootloaders) и указать fb0 mode -> ldb,SK-ATM0704.
3) Пересобрать u-boot через uboot_rebuild.sh
4) Залить его на плату через sudo dd if=output/images/u-boot.imx of=/dev/sdc bs=512 seek=2 conv=notrunc


Но картинка всё равно выводится на HDMI. Тут есть 2 проблемы:

1) Корректно работающий экран я ещё ни разу не видел, с LVDS сталкиваюсь первый раз, но, кажется, что белый экран, высцветающий со временем до бело-цветного в вертикальную полоску сразу при включении - это неправильно. У нас 12 экранов, попробовал только 2, у двух одинаковое поведение. Остальные подключать опасаюсь. Фотографии: IMG_20191002_171000.jpg IMG_20191002_170936.jpg IMG_20191002_171039.jpg На форум файлы не загрузить, Upload error: 500.
2) Несмотря на запись модифицированного u-boot, в отладочной консоли при "Starting kernel..." отображается следующая строка:
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk2p1 rootwait rw video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24 dmfc=3 video=mxcfb1:dev=ldb,if=RGB24 consoleblank=0
И, да, в конце концов изображение выводится на HDMI + в /proc/cmdline запущенного устройства эти параметры и отображаются.


Я dd'хнул первые 512K прям с /dev/mmcblk2, никакого HDMI нет:
^@%.*s^@ [noreset]^@bootdelay=1^@baudrate=115200^@loadaddr=0x12000000^@delenv=env default -a -f; saveenv^@ipaddr=192.168.0.136^@netmask=255.255.255.0^@ethaddr=00:1f:f2:00:00:00^@serverip=192.168.0.2^@kernel=zImage^@dtbfile=imx6q-sodimm.dtb^@dtbaddr=12800000^@fdt_high=0xffffffff^@initrd_high=0xffffffff^@console=console=ttymxc0,115200^@mmcroot=root=/dev/mmcblk2p1 rootwait rw^@video=video=mxcfb0:dev=ldb,if=RGB24 video=mxcfb1:dev=lcd,SK-ATM0704,if=RGB24 consoleblank=0^@mmcargs=setenv bootargs ${console} ${mmcroot} ${video}^@mmc_boot=run mmcargs;ext2load mmc 0:1 ${loadaddr} /boot/${kernel};ext2load mmc 0:1 ${dtbaddr} /boot/${dtbfile};bootz ${loadaddr} - ${dtbaddr}^@bootcmd=setenv bootcmd 'run mmc_boot'; saveenv; run bootcmd^@nfsroot=nfsroot=192.168.0.2:/home/sasa/nfs_root root=/dev/nfs rw ip=192.168.0.136:::255.255.255.0::eth0:on^@nfsargs=setenv bootargs ${console} ${nfsroot} ${video}^@nfs_boot=run nfsargs;tftp ${loadaddr} ${kernel};tftp ${dtbaddr} ${dtbfile};bootz ${loadaddr} - ${dtbaddr}^@bootcmd_mfg=run nfs_boot^@^@^@, ^@(%d:%d) Vendor: %s Prod.: %s Rev: %s



В связи с этим у меня есть несколько вопросов (напишу сразу все тут, чтобы не множить темы):
1) Как корректно менять параметры запуска ядра? Я нигде не смог найти dev=hdmi, откуда он берётся - не понимаю. Кроме того, опытным путём понял, что /boot/boot.scr вообще не влияет на параметры запуска.
2) Почему я вижу белый экран в полосочку при подключении экрана? Может ли быть это из-за того, что я однажды подключил его вверх ногами? Возможно, нужно какие-то джамперы переставлять на экране?
3) Какая разница между LVDS2 (X11) и LVDS1 (X12)? fb0 и fb1 устройства? Что выводится на fb1? Консоль? Использую собранное в buildroot-2017.08 ядро и Debian 9.
4) Имеется ли возможность выводить одно и то же изображение и на LVDS-экран, и на HDMI?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 02.10.2019 22:00 Сообщение: 2
sasamy
4.71

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

Не удаётся подключить SK-ATM0700D4-Plug к плате.


какую версию buildroot вы используете ?
Спуститься к концу Подняться к началу
Персональная информация
sumlin
Добавлено 03.10.2019 02:14 Сообщение: 3
sumlin
0

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

Не удаётся подключить SK-ATM0700D4-Plug к плате.


какую версию buildroot вы используете ?


Использую собранное в buildroot-2017.08 ядро 4.1.15 и Debian 9, который ставил вот по этой инструкции http://www.starterkit.ru/html/index.php?name=forum&op=view&id=28748#28793 .
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.10.2019 10:10 Редактировалось 03.10.2019 10:17 Сообщение: 4
sasamy
4.71

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

Использую собранное в buildroot-2017.08 ядро 4.1.15 и Debian 9, который ставил вот по этой инструкции http://www.starterkit.ru/html/index.php?name=forum&op=view&id=28748#28793 .


но где вы увидели в той инструкции это ?

Цитата

4) Залить его на плату через sudo dd if=output/images/u-boot.imx of=/dev/sdc bs=512 seek=2 conv=notrunc


1) вы уверены что заливаете убут на плату ?

2) если переменные окружения сохранены на носителе то у вас и будет hdmi всегда, потому что они имеют приоритет перед встроенными в убут. Если посмотрите скрипт mk-sd.sh кроме таблицы разделов он удаляет сохраненные переменные окружения

printf "delete partition table "
dd if=/dev/zero of=$DISK bs=1024 count=1024 >> mk-sd.log 2>&1
msg $?

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

sudo dd if=/dev/zero of=/dev/sdc bs=512 count=1022 seek=2 && sync

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

run delenv

3) кроме параметров ядру драйверу нужны тайминги панели которые лежат в DTB - один убут заменить недостаточно, надо dtb своей платы еще заменить
Спуститься к концу Подняться к началу
Персональная информация
sumlin
Добавлено 03.10.2019 13:56 Сообщение: 5
sumlin
0

Пункты: 485
Регистрация: 24.06.2018
> но где вы увидели в той инструкции это ?

То, что нужно использовать ядро из buildroot - нигде, ядро из debian не заводилось нормально (сетевого интерфейса не было, например), хотя я dtb-файл подложил нужный, как раз из buildroot. И u-boot зашивал тоже от моей платы, тоже из buildroot. Кроме того, я в ядро переконфигурировал, добавял нужные мне модули, сейчас всё работает.

1) Да, sda - виртуалка, sdb - допраздел к ней, sdc - плата. Я проверял залитый u-boot прям на плате, выше привёл листинг.

2) Понял. dd'хнул указанный раздел, залил снова u-boot - плата перестала запускаться. Делал второпях, бекап есть, вечером восстановлю образ из бекапа и повторю без dd.

3) Ну я до этого dtb-файл в /boot положил. Без экрана плата работает так, как мне надо: есть все модули, сеть работает, графика отрисовывается. Наизусть не помню, вечером напишу название.
Спуститься к концу Подняться к началу
Персональная информация
sumlin
Добавлено 04.10.2019 01:41 Сообщение: 6
sumlin
0

Пункты: 485
Регистрация: 24.06.2018
Нет, восстановил из бекапа, выполнил run devenv - не помогло.

Я грепнул u-boot на слово hdmi - 0 найдено. Грепнул первые 512K SD-карты - нашёл следующее:
baudrate=115200bootcmd=run mmc_bootbootcmd_mfg=run nfs_bootbootdelay=1console=console=ttymxc0,115200delenv=env default -a -f; saveenvdtbaddr=12800000dtbfile=imx6q-sodimm.dtbethact=FECethaddr=00:1f:f2:00:00:00fdt_high=0xffffffffinitrd_high=0xffffffffipaddr=192.168.0.136kernel=zImageloadaddr=0x12000000mmc_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/mmcblk2p1 rootwait rwnetmask=255.255.255.0nfs_boot=run nfsargs;tftp ${loadaddr} ${kernel};tftp ${dtbaddr} ${dtbfile};bootz ${loadaddr} - ${dtbaddr}nfsargs=setenv bootargs ${console} ${nfsroot} ${video}nfsroot=nfsroot=192.168.0.2:/home/sasa/nfs_root root=/dev/nfs rw ip=192.168.0.136:::255.255.255.0::eth0:onserverip=192.168.0.2stderr=serialstdin=serialstdout=serialvideo=video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24 dmfc=3 video=mxcfb1:dev=ldb,if=RGB24 consoleblank=0

Это на 42% процентах дампа. Предыдущий (с video=mxcfb0:dev=ldb) находится на 32% по показаниям less. Переменные окружения удалились со следующимии словами:
Saving Environment to MMC...
Writing to MMC(0)... done


printenv рапортует о старых значениях. Руками взял video и с video=mxcfb0:dev=ldb,if=RGB24 video=mxcfb1:dev=lcd,SK-ATM0704,if=RGB24 consoleblank=0 поменял на video=mxcfb0:dev=ldb,if=RGB24 video=mxcfb1:dev=lcd,SK-ATM0704,if=RGB24 consoleblank=0

После этого я обнаружил изображение на LVDS1 (X12). Ещё заметил, что если переменную video удалить (сделать setenv video без третьего аргумента), то в cmdline он не будет передаваться вообще. Но экран при этом работать будет

Да, dtb-файл называется imx6q-sodimm.dtb.

Изображение появилось, но вопросы 1, 3 и 4 из первого поста до сих пор актуальны.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.10.2019 10:46 Редактировалось 04.10.2019 10:49 Сообщение: 7
sasamy
4.71

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

Изображение появилось, но вопросы 1, 3 и 4 из первого поста до сих пор актуальны.


ответы 1,2,3 в четвертом сообщении. Рекомендую сначала собрать buildroot и записать на SD скриптом mk-sd.sh

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

если уверены что плата видна у вас в системе как /dev/sdc
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX6S/D-SODIMM