ЗАО «ЗЭО»
Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: squir от 14 Января, 2011, 10:10:02
-
Добрый день!
Может быть кто-то уже сталкивался подобным...
Имеется датчик, который принимает и передает данные при помощи микросхемы FT232BM. При подключении к Тион Про2 получаем:
ftdi_sio 1-2:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232BM
usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0
Вроде все красиво, но при попытке взаимодействия с устройством, например такой:
/# stty -F /dev/ttyUSB0
Получаем в ответ:
stty: /dev/ttyUSB0: Inappripriate ioctl for device
Буду рад любой информации по этому поводу=)
-
Посмотрите с помощью strace какой именно ioctl выполняется.
-
Вот тут вываливается.
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbefbabc8) = -1 ENOTTY (Inappropriate ioctl for device)
-
Попробуйте запустить более новый драйвер ftdi-sio.
-
Пробежавшись по форуму, заметил, что в некоторые сборки ядра или КФС включены драйвера usbserial и ftdi_sio (для ТионПро2, к примеру).
Подскажите, есть ли готовые сборки для ТионПро270 (модулями или в ядре)?
Судя по логам ядра (при старте системы и подключении FTDI-устройства), таковые в заводской поставке моего контроллера отсуствуют.
(на всякий случай приложу лог)
-
Для Тиона 270 модули usbserial ftdi_sio отсутствуют в ядре.
Но можно без проблем их скомпилировать и потом загружать командами insmod или modprobe.
Сначала грузите usbserial потом ftdi_sio.
Компиляция ядра полно описана Wiki, в меню (make menuconfig) ставите буковки М напротив требуемых модулей и они соберутся (расширение ko).
Учтите одно для ядра 2.6.22.19 максимальная скорость FTDI точно не больше 460800 бит/сек. если датчик дает большей поток то драйвер будет захлебываться как происходит у меня (мне нужно 1.8 Мбита). Нужно более свежее ядро там скорость ограничена 3 Мбитами (нужные исправления кажется появились в 2.6.25 или 2.6.27 ядре).
-
pav2000, спасибо за информацию, сверхскоростей не требуется, 115200 - потолок.
соберу, пожалуй, модулями, чтоб ядро не трогать в контроллере.
-
модуль FTDI для Тион-Про270 собрался нормально, на всякий случай выкладываю результат:
берём
- кросс-компилятор gcc-4.3.4_armv5te_xscale_eabi.tar.gz (http://www.zao-zeo.ru/media/files/tools/gcc/buildroot/gcc-4.3.4_armv5te_xscale_eabi.tar.gz)
- исходники ядра 2.6.22.19 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.19.tar.gz)
- патч linux-2.6.22.19_tion270_svn1131.patch (http://zao-zeo.ru/media/files/linux/2.6.22/patch/linux-2.6.22.19_tion270_svn1131_201010061124.tar.gz)
# make tion-pro270_defconfig и в полученном конфиге ядра корректируем:
# комментируем, чтобы не было ошибок Unknown symbol __aeabi_idiv, __aeabi_uidiv при загрузке модуля ftdi_sio
# CONFIG_AEABI=y
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_FTDI_SIO=m
# make clean modules и в папке drivers/usb/serial/ находим заветные файлы usbserial.ko и ftdi_sio.ko, заливаем на tion
# insmod ./usbserial.ko; insmod ./ftdi_sio.ko
[ 3388.210000] usbcore: registered new interface driver usbserial
[ 3388.210000] drivers/usb/serial/usb-serial.c: USB Serial Driver core
[ 3388.250000] drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
[ 3388.260000] ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
[ 3388.270000] Detected FT232BM
[ 3388.270000] Number of endpoints 2
[ 3388.280000] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
[ 3388.280000] usbcore: registered new interface driver ftdi_sio
# stty -F /dev/ttyUSB0 115200 raw -echo
stty: /dev/ttyUSB0: cannot perform all requested operations
stty ворчит, но параметры выставляет.
готовые модули для тиона в аттаче...
-
У вас модули получились "not stripped", можно их подвергнуть arm-linux-strip'у