ЗАО «ЗЭО»
Техническая поддержка пользователей => Тион-Про28, Орион28 => Тема начата: Genues от 06 Марта, 2014, 15:22:40
-
Доброе время суток! У меня тион с linux, собранным в виртуальной машине.
Есть пара-тройка вопросов.
1. Я пытаюсь подключить платку к ПС, взял провод USB A с одинаковыми разъёмами на концах.
Если я правильно понял эту тему (http://www.zao-zeo.ru/forum/index.php?topic=682.0), то этого достаточно. Однако, ни ПС не видит платку, ни Тион не видит ПС. И там и там смотрел через lsusb.
Как правильно подключиться к компьютеру?
2. Я пытаюсь взять второй USB порт с разъёма X8 - не удачно. Тут где-то писали, что надо перенастроить что-то в ядре. Расскажите пожалуйста подробнее, где и что.
3. Мне не удаётся нормально подключить USB wi-fi, т.к. на "свистки", которые продаются сейчас, нет драйверов в доступном ядре, а более старые модели не найти в свободной продаже.
Для TP-LINK TL-WN821N (вернее для его чипсета) мне удалось собрать драйвера предоставленные производителем, интерфейс wlan0 в системе появляется. Однако wpa_supplicant (поставляемый и собранный вместе с драйверами) выдаёт гору ошибок вида "ioctl[SIOCSIWMODE]: Operation not supported" и по сути ничего не работает. Возможно нужно что-то включить в ядре дополнительно?
Вообще, ожидаются ли более свежие ядра для Тиона? Для того же TL-WN821N драйвера в ядре есть начиная кажется с версии 2.6.39.
-
1. Для загрузки по USB J1, J2, J3, J4 ставите в положение 2-3.
При этом lsusb на хосте показывает:
Bus 001 Device 086: ID 15a2:004f Freescale Semiconductor, Inc. i.MX28 SystemOnChip in RecoveryMode
2. Не знаю
3.
> Вообще, ожидаются ли более свежие ядра для Тиона?
Как показывает история -- планово нет, не ожидается.
Но ядро 3.14 можно запустить на Тион-Про28, работает debug UART (X9),
Ethernet, видео с незначительными артефактами, PWM, светодиод, вероятно
Flash и некоторые другие интерфейсы (SPI, UART...).
Изменения незначительные, во вложении и dts-файл для размещения в
arch/arm/boot/dts/imx28-tion-pro28.dts
и патч для добавления этого файла в Makefile.
Подготовка ядра:
patch -p1 < dts-makefile-add-imx28-tion-pro28.patch
cp imx28-tion-pro28.dts arch/arm/boot/dts/
cp config-tion-pro28 .config
Сборка ядра:
export ARCH=arm
export CROSS_COMPILE=<compiler-prefix>
make oldconfig
LOADADDR=40008000 make uImage
Для загрузки потребуется новый U-Boot, например v2014.01, работает SD, NAND,
Ethernet, debug UART.
Подготовка U-Boot:
patch -p1 < u-boot.patch
Сборка U-Boot:
export ARCH=arm
export CROSS_COMPILE=<compiler-prefix>
make mx28evk_config
make
make u-boot.sb
Запись на SD-карту (можно в NAND Flash), см. doc/README.mxs в исходных
кодах для создания разделов на SD-карте:
tools/mxsboot sd u-boot.sb u-boot.SD
dd if=u-boot.SD of=/dev/??1
Официальный Buildroot также хорошо работает.
-
Вместе с ядром надо загружать соответствующий dtb-файл arch/arm/boot/dts/imx28-tion-pro28.dtb
-
1. Для загрузки по USB J1, J2, J3, J4 ставите в положение 2-3.
При этом lsusb на хосте показывает:
Bus 001 Device 086: ID 15a2:004f Freescale Semiconductor, Inc. i.MX28 SystemOnChip in RecoveryMode
Я спрашивал не о загрузке по USB, а про подключении по USB с целью обмена информацией между ПК и программой в тионе.
2. Не знаю
Если не вы, то кто?
3.
> Вообще, ожидаются ли более свежие ядра для Тиона?
Как показывает история -- планово нет, не ожидается.
Но ядро 3.14 можно запустить на Тион-Про28, работает debug UART (X9),
Ethernet, видео с незначительными артефактами, PWM, светодиод, вероятно
Flash и некоторые другие интерфейсы (SPI, UART...).
Спасибо, попробую.
-
2. Я пытаюсь взять второй USB порт с разъёма X8 - не удачно. Тут где-то писали, что надо перенастроить что-то в ядре. Расскажите пожалуйста подробнее, где и что.
Я померил напряжение на разъёме X8. Между 2 и 8 выводами +2.8V, между 8 и 4, 8 и 6 выводам +3.2V.
-
Интересно фирма то ещё существует...
-
Разъем Х5 для подключения к ПК использовать не стоит, это порт USB1 (Host).
Можно использовать USB0 (в режиме Device), разъемы Х8 и Х25.
Для работы нужно включить USB в режиме OTG, добавить нужные драйвера и пересобрать ядро.
О том, что нужно включить в ядро, написано в документе "i.MX28_Linux_BSP_RM.pdf" раздел "Chapter 24. ARC USB Driver". Файл есть в этом архиве с документацией http://www.zao-zeo.ru/media/files/docs/freescale_imx28_linux_docs.zip (http://www.zao-zeo.ru/media/files/docs/freescale_imx28_linux_docs.zip).
Проверял работу Тиона в режиме "Mass storage device", "USB Serial" и "USB Ethernet". В режиме "HID" не заработал, почему - не ясно.
-
Спасибо, как USB Ethernet мне тоже удалось запустить, что уже не плохо.
Но мне нужно именно как HID. При insmode оно пишет "can't insert 'g_hid.ko': No such device". Но вы наверно и сами видели...
Что тут можно придумать?
-
В соответствии с документацией linux/Documentation/usb/gadget_hid.txt cделать нужно следующее:
В файл linux/arch/arm/mach-mx28/mx28evk.c добавить:
#include <linux/usb/g_hid.h>
/* hid descriptor for a keyboard */
static struct hidg_func_descriptor my_hid_data = {
.subclass = 0, /* No subclass */
.protocol = 1, /* Keyboard */
.report_length = 8,
.report_desc_length = 63,
.report_desc = {
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
0x09, 0x06, /* USAGE (Keyboard) */
0xa1, 0x01, /* COLLECTION (Application) */
0x05, 0x07, /* USAGE_PAGE (Keyboard) */
0x19, 0xe0, /* USAGE_MINIMUM (Keyboard LeftControl) */
0x29, 0xe7, /* USAGE_MAXIMUM (Keyboard Right GUI) */
0x15, 0x00, /* LOGICAL_MINIMUM (0) */
0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
0x75, 0x01, /* REPORT_SIZE (1) */
0x95, 0x08, /* REPORT_COUNT (8) */
0x81, 0x02, /* INPUT (Data,Var,Abs) */
0x95, 0x01, /* REPORT_COUNT (1) */
0x75, 0x08, /* REPORT_SIZE (8) */
0x81, 0x03, /* INPUT (Cnst,Var,Abs) */
0x95, 0x05, /* REPORT_COUNT (5) */
0x75, 0x01, /* REPORT_SIZE (1) */
0x05, 0x08, /* USAGE_PAGE (LEDs) */
0x19, 0x01, /* USAGE_MINIMUM (Num Lock) */
0x29, 0x05, /* USAGE_MAXIMUM (Kana) */
0x91, 0x02, /* OUTPUT (Data,Var,Abs) */
0x95, 0x01, /* REPORT_COUNT (1) */
0x75, 0x03, /* REPORT_SIZE (3) */
0x91, 0x03, /* OUTPUT (Cnst,Var,Abs) */
0x95, 0x06, /* REPORT_COUNT (6) */
0x75, 0x08, /* REPORT_SIZE (8) */
0x15, 0x00, /* LOGICAL_MINIMUM (0) */
0x25, 0x65, /* LOGICAL_MAXIMUM (101) */
0x05, 0x07, /* USAGE_PAGE (Keyboard) */
0x19, 0x00, /* USAGE_MINIMUM (Reserved) */
0x29, 0x65, /* USAGE_MAXIMUM (Keyboard Application) */
0x81, 0x00, /* INPUT (Data,Ary,Abs) */
0xc0 /* END_COLLECTION */
}
};
static struct platform_device my_hid = {
.name = "hidg",
.id = 0,
.num_resources = 0,
.resource = 0,
.dev = {
.platform_data = &my_hid_data,
},
};
static void __init hidg_device_init(void)
{
int ret;
ret = platform_device_register(&my_hid);
if (ret)
printk("HID Gadget registration failed\n");
}
В функцию mx28evk_device_init() в этом же файле добавить
hidg_device_init();
Пересобрать ядро. После этого insmod g_hid.ko выполняется без ошибок, на ПК появляется HID-устройство.
Могу выложить собранное ядро с этими изменениями. Патч добавлю позже.
-
Для решения проблем с wpa_supplicant можно попробовать включить поддержку cfg80211 и nl80211 (Networking support -> Wireless) в ядро. Судя по информации в интернете wpa_supplicant использует nl80211.
-
Могу выложить собранное ядро с этими изменениями. Патч добавлю позже.
Спасибо большое, сейчас попробую.
Upd. заработало, спасибо!
Ваше ядро мне не к чему, т.к. у меня уже включены некоторые доп. модули и прочее. Да и вообще вроде бы не возникает проблем со сборкой ядра на вашей виртуалке, спасибо вам за неё.
Для решения проблем с wpa_supplicant можно попробовать включить поддержку cfg80211 и nl80211 (Networking support -> Wireless) в ядро. Судя по информации в интернете wpa_supplicant использует nl80211.
Это у меня включено - не помогает.
Там при конфигурирование ./ltib -m config можно выбрать список пакетов для установки, среди них есть пакет с названием linux-wlan. Не знаю, что входит в этот пакет, но может быть он нужен. Я хотел попробовать его собрать, но не удачно.
-
У нас нет такого WiFi модуля, поэтому однозначно что-то посоветовать не могу.
Есть модули на чипсете rt2870. Могу попробовать собрать для них драйвер.
-
Могу попробовать собрать для них драйвер.
А про пакет linux-wlan ничего не можете сказать? Не могли бы Вы попробовать его собрать?
Подскажите пожалуйста, какие можете посоветовать свистки на чипе rt2870 из свободной продажи? Я бы сам попробовал собрать драйвера.
-
Tenda W311U+ - мы используем такой, c WinCE 6.0.
-
linux-wlan попробую собрать.
-
linux-wlan не собирается. Похоже, что эта версия не совместима с ядром 2.6.35.
-
Продолжая освоение работы с устройствов в режиме HID, возник следующий вопрос.
Желая увидеть тион как HID определённой конфигарции, поменял "HID description" в файле linux/arch/arm/mach-mx28/mx28evk.c
/* hid descriptor */
static struct hidg_func_descriptor my_hid_data = {
.subclass = 0, /* No subclass */
.protocol = 0, /* Custom */
.report_length = 8,
.report_desc_length = 28,
.report_desc = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x01, // USAGE (Vendor Usage 1)
0xa1, 0x01, // COLLECTION (Application)
0x85, 0x01, // REPORT_ID (1)
0x09, 0x01, // USAGE (Vendor Usage 1)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
0x85, 0x01, // REPORT_ID (1)
0x09, 0x01, // USAGE (Vendor Usage 1)
0x91, 0x82, // OUTPUT (Data,Var,Abs,Vol)
0xc0 // END_COLLECTION
}
};
Пересобираю ядро и rootfs, прошиваю, запускаю.
После подключения к компу и запуске g_hid.ko, тионка видится как HID, но
lsusb -v на компе выдаёт:
Bus 004 Device 008: ID 0525:a4ac Netchip Technology, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x0525 Netchip Technology, Inc.
idProduct 0xa4ac
bcdDevice 3.26
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
OTG Descriptor:
bLength 3
bDescriptorType 9
bmAttributes 0x03
SRP (Session Request Protocol)
HNP (Host Negotiation Protocol)
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 37
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 3
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.01
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 28
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 4
Внимание на секцию "Endpoint Descriptor:", насколько я понимаю, должны быть две EndPoint - одна IN, и одна OUT.
А видится только одна... Я что-то не правильно понимаю?
Или так и должно быть? Но как тогда нормально передавать/принимать данные?
Подскажите пожалуйста! Спасибо!
lsusb -v на тионе выдаёт:
$ lsusb -v
Bus 002 Device 001: ID 1d6b:0002
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x1d6b
idProduct 0x0002
bcdDevice 2.06
iManufacturer 3 Linux 2.6.35.3-571-gcca29a0 ehci_hcd
iProduct 2 Freescale On-Chip EHCI Host Controller
iSerial 1 fsl-ehci.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 1
wHubCharacteristic 0x0009
Per-port power switching
Per-port overcurrent protection
TT think time 8 FS bits
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x40
PortPwrCtrlMask 0xe8
Hub Port Status:
Port 1: 0000.0100 power
Вроде тоже что-то не то.
-
1. Для загрузки по USB J1, J2, J3, J4 ставите в положение 2-3.
При этом lsusb на хосте показывает:
Bus 001 Device 086: ID 15a2:004f Freescale Semiconductor, Inc. i.MX28 SystemOnChip in RecoveryMode
2. Не знаю
3.
> Вообще, ожидаются ли более свежие ядра для Тиона?
Как показывает история -- планово нет, не ожидается.
Но ядро 3.14 можно запустить на Тион-Про28, работает debug UART (X9),
Ethernet, видео с незначительными артефактами, PWM, светодиод, вероятно
Flash и некоторые другие интерфейсы (SPI, UART...).
Изменения незначительные, во вложении и dts-файл для размещения в
arch/arm/boot/dts/imx28-tion-pro28.dts
и патч для добавления этого файла в Makefile.
Подготовка ядра:
patch -p1 < dts-makefile-add-imx28-tion-pro28.patch
cp imx28-tion-pro28.dts arch/arm/boot/dts/
cp config-tion-pro28 .config
Сборка ядра:
export ARCH=arm
export CROSS_COMPILE=<compiler-prefix>
make oldconfig
LOADADDR=40008000 make uImage
Для загрузки потребуется новый U-Boot, например v2014.01, работает SD, NAND,
Ethernet, debug UART.
Подготовка U-Boot:
patch -p1 < u-boot.patch
Сборка U-Boot:
export ARCH=arm
export CROSS_COMPILE=<compiler-prefix>
make mx28evk_config
make
make u-boot.sb
Запись на SD-карту (можно в NAND Flash), см. doc/README.mxs в исходных
кодах для создания разделов на SD-карте:
tools/mxsboot sd u-boot.sb u-boot.SD
dd if=u-boot.SD of=/dev/??1
Официальный Buildroot также хорошо работает.
Не могли бы Вы выложить файл imx28-tion-pro28.dts, а то есть только dtb.
Заранее спасибо.
-
Надо бы освежить dts файл а то только dtb файл есть. Можно конечно получить по аналогии с описанным тут http://www.pvsm.ru/linux/68990/print/ (http://www.pvsm.ru/linux/68990/print/) но получим не совсем чистый dts
-
Взяли тут Сириус28, выставляю загрузку с usb, при подключенном разъемом (USB-COM переходник)
выдаёт
[ 3815.069475] usb 3-4: new full-speed USB device number 7 using ohci-pci
[ 3815.209632] usb 3-4: device descriptor read/64, error -62
[ 3815.453653] usb 3-4: device descriptor read/64, error -62
[ 3815.693675] usb 3-4: new full-speed USB device number 8 using ohci-pci
[ 3815.833682] usb 3-4: device descriptor read/64, error -62
[ 3816.077706] usb 3-4: device descriptor read/64, error -62
[ 3816.317727] usb 3-4: new full-speed USB device number 9 using ohci-pci
[ 3816.725601] usb 3-4: device not accepting address 9, error -62
[ 3816.861611] usb 3-4: new full-speed USB device number 10 using ohci-pci
отключаю COM
[ 4073.130570] usb 1-4: USB disconnect, device number 11
[ 4074.903351] usb 1-1: new high-speed USB device number 12 using ehci-pci
[ 4075.036061] usb 1-1: New USB device found, idVendor=15a2, idProduct=004f
[ 4075.036070] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4075.036075] usb 1-1: Product: ROM Recovery
[ 4075.036079] usb 1-1: Manufacturer: Freescale,Inc.
[ 4075.037992] hid-generic 0003:15A2:004F.000B: hiddev0,hidraw1: USB HID v1.10 Device [Freescale,Inc. ROM Recovery] on usb-0000:00:12.2-1/input0
P.S. Подключил USB0 от разъема X8 заработало.
Вопрос почему через разъем X25 сбоит, кабель 30см, usb1.1?
-
Не совсем понял, что куда подключаете и отключаете.
Сириус через Х25 подключаете к ПК?
Переходник USB-COM: СOM в Сириус, USB в ПК?
Внешний USB-хаб не используете при этом соединении?
Первый лог - при подключении переходника USB-COM. И переходник не определяется при одновременном подключении с Сириусом?
-
Подключил питание, x25(USB0) к ПК, джемперы на загрузку с USB0, получаю те сбои что описал выше,
если USB0 брать от разъема x8 сбоев нет. COM порт отключён. Сам сразу не догадался СОМ порт не причём.
-
Х25 у сириус не стабильно работает при USB 2.0. Попробуйте использовать порт USB 1.1. Судя по логу, подключается USB 2.0.
[ 4074.903351] usb 1-1: new high-speed USB device number 12 using ehci-pci
-
В общем это мелочи.
Тут возник другой вопрос, есть файлы созданные программой imx-bootlets-src-10.12.01 linux_ivt.sb и uboot_ivt.sb зашиваю их в nand с помощью kobs-ng все работает. Попытался тут залить те же файлы по USB0 (программой mxsldr) uboot стартует, а вот linux_ivt.sb не хочет выдаёт такое.
No battery or bad battery detected!!!.Disabling battery voltage measurements./r/nLLLCJan 11 201604:00:53
FRAC 0x92925552
memory type is DDR2
Wait for ddr ready 1power 0x00820616
Frac 0x92925552
start change cpu freq
hbus 0x00000003
cpu 0x00010001
start test memory accress
ddr2 0x40000000
finish simple test
LLLLLLLFLCLLJ
Вопрос: возможно ли linux_ivt.sb по usb0 запустить ?
-
Судя по описанию mxsldr, она предназначена для записи uboot. Можно ли ей записывать ядро - не знаю, не использовал ее.
Беглый поиск в интернете показывает, что mxsldr может записывать только uboot. Для записи ядра нужно патчить программу:
http://u-boot.10912.n7.nabble.com/PATCH-make-mxsldr-behave-like-sb-loader-exe-td191071.html (http://u-boot.10912.n7.nabble.com/PATCH-make-mxsldr-behave-like-sb-loader-exe-td191071.html)
Записать через usb0 можно из Windows, используя mfgtool.
-
Замечательно с патчем заработало команда для запуска
./mxsldr linux_ivt.sb 1
может кому пригодится.
-
Продолжу в этой теме.
У нас на последней партии Тионов неожиданно перестала работать связь по USB в режиме Serial между Тионом и ПК.
Модуль ядра на Тионе запускается корректно, /dev/ttyGS0 появляется. Однако ПК не видит подключенный Тион.
Есть какие-нибудь варианты решения? Или надо везти всё вам?
-
Добрый день.
На ТионеПро28 есть разъем Х25. У него контакты 4 и 5 замкнуты перемычкой. Попробуйте ее снять. Перемычкой выбирается режим USB Host/Device.
-
Добрый день.
На ТионеПро28 есть разъем Х25. У него контакты 4 и 5 замкнуты перемычкой. Попробуйте ее снять. Перемычкой выбирается режим USB Host/Device.
Спасибо, помогло.