Ник:
Пароль:

Контакты

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
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
SK-iMX6D настроить собственную прошивку
Future312
Добавлено 28.06.2017 17:46 Сообщение: 11
Future312
5

Пункты: 1063
Регистрация: 01.02.2017
В продолжение темы настроийки собственной прошивки.
У меня сейчас есть вполне настроенная прошивка на одном модуле iMX6S. С помощью imx-usb-loader открываю модуль, как флешку, создаю из его файловой системы архив и сохраняю на компьютере. Подключаю другой модуль iMX6S, распаковываю туда сохранённый архив и получаю (почти) полную копию первой системы.
Разница только в переменных, которые задаются в bootloader'е. Например, переменная экрана. Её приходится задавать вручную. С помощью setenv. Так вот, как этот момент автоматизировать. Где хранится файл с настройками загрузчика? Как его вытащить из первого модуля и засунуть во второй?

И сразу ещё один актуальный вопрос. На двух идентичных платах iMX6S с идентичными файловыми системами (из описания выше) стоят два идентичных LCD экрана с тачскрином. На обоих модулях сразу после загрузки в скрипте запускается одинаковая программа, написанная в Qt. Но на одном модуле тачскрин в этой программе срабатывает всегда, а на другом модуле иногда вообще не отзывается на нажатия. При этом при нажатии на экран dmesg выводит сообщения типа:
Цитата
evbug: Event. Dev: input0, Type: 1, Code: 330, Value: 1
evbug: Event. Dev: input0, Type: 3, Code: 0, Value: 60
evbug: Event. Dev: input0, Type: 3, Code: 1, Value: 171
evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0
evbug: Event. Dev: input0, Type: 3, Code: 57, Value: -1
evbug: Event. Dev: input0, Type: 1, Code: 330, Value: 0
evbug: Event. Dev: input0, Type: 0, Code: 0, Value: 0

А ts_test запущенный поверх программы Qt отлично работает и следит за пальцем.
Отсюда вопрос: Как перманентно выключить из загрузки модуль evbug, чтобы он не грузил систему?
И второй вопрос: Где могут быть расхождения в прошивках модулей iMX6, если файловые системы RootFs идентичны?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.06.2017 20:57 Сообщение: 12
sasamy
4.70

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

Где хранится файл с настройками загрузчика? Как его вытащить из первого модуля и засунуть во второй?


сделайте посекторную копию через dd вместо архивации ФС и тогда будет полная копия

Цитата

тсюда вопрос: Как перманентно выключить из загрузки модуль evbug, чтобы он не грузил систему?


удалить модуль из готовой фс

/lib/modules/4.1.15/kernel/drivers/input/evbug.ko

или отключить в конфиге ядра

make linux-menuconfig
-> Device Drivers
-> Input device support
< > Event debugging
Спуститься к концу Подняться к началу
Персональная информация
Future312
Добавлено 29.06.2017 12:42 Сообщение: 13
Future312
5

Пункты: 1063
Регистрация: 01.02.2017
Спасибо!
Спуститься к концу Подняться к началу
Персональная информация
Future312
Добавлено 29.06.2017 13:30 Редактировалось 29.06.2017 13:33 Сообщение: 14
Future312
5

Пункты: 1063
Регистрация: 01.02.2017
Правильно я понял, что достаточно сделать:
Код
dd if=/dev/iMX6_1 of=/home/user/TEMP_FILE
dd if=/home/user/TEMP_FILE/ of=/dev/iMX6_2
?
Нужно ли указывать параметры типа bs, count, conv?
Если на первом модуле у меня два раздела, перенесётся ли таблица разделов на второй модуль?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 29.06.2017 14:12 Сообщение: 15
sasamy
4.70

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

Правильно я понял, что достаточно сделать:


примерно так, и учитывайте что /dev/iMX6_1 - должен быть корневой диск а не раздел, например /dev/sdb а не /dev/sdb1

Цитата

Нужно ли указывать параметры типа bs, count, conv?


можно явно указать bs, например bs=1M чтобы быстрей копировалось но это не обязательно.

Цитата

Если на первом модуле у меня два раздела, перенесётся ли таблица разделов на второй модуль?


это имидж всего диска так что всё перенесётся
Спуститься к концу Подняться к началу
Персональная информация
Future312
Добавлено 29.06.2017 15:14 Сообщение: 16
Future312
5

Пункты: 1063
Регистрация: 01.02.2017
И ещё раз спасибо!
Только что всё проделал. Действительно, полная копия системы. Разделы те же, настройки, скрипты. Всё идентично.

Кстати, прочитал, что утилита dd появилась ещё в 1970-ых, тогда же, когда и сам Linux. Поэтому у неё такой необычный синтаксис. Он перекочевал с IBM-овских компьютеров на ленточных накопителях http://rus-linux.net/lib.php?name=/MyLDP/consol/dd/dd-1.html
И расшифровывается она, как 'Dataset Definition', а не 'Disk Dump' и уж тем более не 'Data Destroyer'
Спуститься к концу Подняться к началу
Персональная информация
Future312
Добавлено 07.07.2017 22:28 Редактировалось 07.07.2017 22:30 Сообщение: 17
Future312
5

Пункты: 1063
Регистрация: 01.02.2017
Вопрос про драйвер для USB Wi-Fi адаптера TP-LINK TL-WN725N V1 на чипе rtl8188cu. ID устройства 0bda:8176. Подключен к плате через хаб. В buildroot в настройках ядра выбраны модули:
Код
>Device Drivers
>[*] USB support
<*> USB Wireless Device Management support
> Device Drivers
> Network device support
> Wireless LAN
> Realtek rtlwifi family of devices
<*>Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter

А в пакетах выбран:
Код
Target packages
> Hardware handling
> Firmware
> WiFi firmware
[*] Realtek 81xx

Суть в том, что при попытки включения устройства с помощью
Код
ifconfig wlan0
в 60% случаев оно благополучно включается и дальше работает без сбоев, а в остальных 40% оно может выдать серию вот таких сообщений:
Цитата

rtl8192cu: Chip version 0x10
rtl8192cu: MAC address: 64:70:02:1b:2f:70
rtl8192cu: Board Type 0
rtl_usb: rx_max_size 15360, rx_urb_num 8, in_ep 1
rtl8192cu: Loading firmware rtlwifi/rtl8192cufw_TMSC.bin
usb 1-1: authorized to connect
rtl8192cu: MAC auto ON okay!
rtl8192cu: Tx queue select: 0x05
rtl_usb: reg 0x80, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6
rtl_usb: reg 0x80, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6
rtl_usb: reg 0x80, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6
rtl_usb: reg 0x80, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6

либо таких:
Цитата
rtl8192cu: MAC auto ON okay!
rtl8192cu: Tx queue select: 0x05
rtl_usb: reg 0x870, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6
rtl_usb: reg 0x824, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6
rtl_usb: reg 0x820, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6
rtl_usb: reg 0x8a0, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0x6

И впасть в какое-то состояние, что не понятно, как из него вывести.
Команды
Код
echo 0 > /sys/bus/usb/devices/1-1/authorized
echo 1 > /sys/bus/usb/devices/1-1/authorized
просто зависают и в консоле уже ничего не написать, и Ctrl+C не помогает.
Команды
Код
echo usb1 > /sys/bus/usb/drivers/usb/unbind
echo usb1 > /sys/bus/usb/drivers/usb/bind
могут привести к тому, что при unbind хаб с адаптером выключится, а при bind включится только хаб, а адаптер уже не появится в системе. Даже lsusb его не обнаружит.
Должно быть:
Цитата
Bus 001 Device 002: ID 0bda:8176
Bus 001 Device 001: ID 1d6b:0002
а остаётся только
Цитата
Bus 001 Device 001: ID 1d6b:0002

Команда
Код
echo suspend > /sys/bus/usb/devices/usb1/power/level

Выдаёт
Цитата
write error: Invalid argument
, а вот если передать переменную on или auto, то она принимается.
Забавный факт, что если попытаться обратиться непосредственно к самому Wi-Fi адаптеру, а не целиком к шине, то в папке устройства:
/sys/bus/usb/drivers/usb/usb1/1-0:1.0/usb1-port1/device/1-1:1.0
Есть своя папка «power», но в ней нет файлов. Зато есть папки с EndPoint'ами, типа ep_02, ep_03, ep_81, ep_84. Может как-то через них можно достучаться до зависшего адаптера...
Я уже прям не могу. Всё, что мог перепробовал.
Даже вот этот способ:
https://unix.stackexchange.com/questions/234581/disconnect-and-reconnect-usb-port-via-cli

Прошу совета у знатоков. Как можно заставить этот злополучный адаптер работать? Или хотя бы, как его правильно ПРОГРАММНО перезапустить в случае ошибки?
Не хочу заставлять пользователя дёргать переключатель и ждать, пока система загрузится снова.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.07.2017 13:57 Сообщение: 18
sasamy
4.70

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

Вопрос про драйвер для USB Wi-Fi адаптера TP-LINK TL-WN725N V1 на чипе rtl8188cu.


вопрос лучше задать производителю этого устройства - какой драйвер использовать. В ванильном ядре доайвер глюкавый - на подобном чипе мне раньше помогало вставлять задержку между загрузкой драйвера и обращением к устройству wlanX.
Спуститься к концу Подняться к началу
Персональная информация
Future312
Добавлено 10.07.2017 13:14 Сообщение: 19
Future312
5

Пункты: 1063
Регистрация: 01.02.2017
Цитата
на подобном чипе мне раньше помогало вставлять задержку между загрузкой драйвера и обращением к устройству wlanX.

Спасибо за подсказку. Сегодня попробую проверить. У меня они сейчас как раз без задержек грузятся.
Спуститься к концу Подняться к началу
Персональная информация
Future312
Добавлено 22.02.2018 13:11 Сообщение: 20
Future312
5

Пункты: 1063
Регистрация: 01.02.2017
Проблема Wi-Fi до сих пор не решена. На других форумах пишут, что им помог модифицированный драйвер для rtl8192
Цитата
https://github.com/pvaret/rtl8192cu-fixes
Вот только инструкция по его установке написана для дистрибутивов, в которых есть dkms установщик. В нашем случае это не так. Как установить его вручную вместо старого драйвера?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux