ЗАО «ЗЭО»

Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: emc2 от 15 Февраля, 2012, 11:01:36

Название: eabi vs oabi
Отправлено: emc2 от 15 Февраля, 2012, 11:01:36
Начал работу с ТионПро270. До этого использовали плату на ep9315.
Можно пояснить какое именно ядро собирать для КФС? Собрал QT, загрузил КФС с вашего сайта, запуск демо-примеров выдает "can't resolve symbol "__emutls get address". Получается библиотеки ядра не совпадают с библиотеками КФС? Какое ядро надо компилить для buildroot КФС? С каким ядром поставляется ТионПро270 по умолчанию? В логах загрузки не видно. Пока не перепрошивал свое ядро в тион.
Название: Re: eabi vs oabi
Отправлено: asv от 15 Февраля, 2012, 13:09:40
> библиотеки ядра
Что?

> С каким ядром поставляется ТионПро270 по умолчанию?
C 20 января 2010 в Тион-Про270 при продаже записывают uImage-2.6.22.19_svn888_eabi и
rootfs-buildroot-2009.08.git_6a02cd8c744ac88cfc4e633bf3d1411495d5e6b0_with_serial-pair.jffs2

> Какое ядро надо компилить для buildroot КФС?

www.zao-zeo.ru/dokuwiki/doku.php/linux#патчи_ядра
с учётом того, какое ABI в КФС.
Название: Re: eabi vs oabi
Отправлено: emc2 от 16 Февраля, 2012, 12:54:47
Проблема не решилась. Собрал КФС из git-репозитория. Ошибка "cant resolve symbol "__emutls get address" при попытке запустить QT-приложение. Что можно еще попробовать?
Название: Re: eabi vs oabi
Отправлено: asv от 16 Февраля, 2012, 13:03:34
1. Дайте конфигурацию с которой собирали КФС.
2. Qt собирали в Buildroot?
Название: Re: eabi vs oabi
Отправлено: emc2 от 16 Февраля, 2012, 13:17:17
КФС  собирал с конфигом по умолчанию make BOARD=tion270Установка скачала кучу архивов с сети (некоторые скачивал вручную и помещал в dl)
А что значит собрать QT в buildroot?
QT собирал так:
1.Прописал export PATH+=:/usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/bin2. Собрал tslib, установил.
3. Сконфигурировал QT с путем к tslib
4. Собрал QT, потом примеры.
Далее скопировал полученную root директорию, все библиотеки QT и tslib на карту памяти и пытался запустить.
Где тут будет участвовать buildroot не совсем понимаю. Все что нужно было для QT установил в пакетах, постепенно разрешая зависимости.
Название: Re: eabi vs oabi
Отправлено: asv от 16 Февраля, 2012, 13:38:47
> Где тут будет участвовать buildroot не совсем понимаю.

В Buildroot есть Qt, его с помощью Buildroot'а и соберите (с примерами).
Вам нужно изменить конфигурацию (make menuconfig), сохранить в .config и
скопировать в local/tion270/tion270.config

Это можно сделать в том же каталоге Buildroot'а, где вы уже собирали КФС.

Не забудьте при конфигурации BR2_PACKAGE_QT_PIXEL_DEPTH_18
Название: Re: eabi vs oabi
Отправлено: emc2 от 16 Февраля, 2012, 14:06:24
Спасибо за ответ. Кажется начинаю понимать buildroot. Так даже удобнее :). А не подскажете где можно поменять усатновку QT4.5.2 по умолчанию на более свежую версию? (скажем 4.8.0)
Название: Re: eabi vs oabi
Отправлено: asv от 16 Февраля, 2012, 14:26:45
Попробуйте с той, что есть.
Поменять можно в package/qt/qt.mk, естественно, кроме версии придётся изменять и ещё что-нибудь.
Название: Re: eabi vs oabi
Отправлено: emc2 от 17 Февраля, 2012, 11:32:05
Подскажите пожалуйста. Собрал КФС с QT, скопировал содержимое директории ..buildroot-2009.08/project_build_arm/tion270/root на SD-карту. При загрузке выдает такой лог:

Starting kernel ...


Uncompressing Linux.................................................................................................. done, booting the kernel.
[    0.000000] Linux version 2.6.22.19 (asv@phenom) (gcc version 4.2.4 (Debian 4.2.4-6)) #1 Tue Jan 19 19:00:18 MSK 2010
[    0.000000] CPU: XScale-PXA270 [69054118] revision 8 (ARMv5TE), cr=0000397f
[    0.000000] Machine: Tion-Pro270 Board
[    0.000000] Ignoring unrecognised tag 0x00000000
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Run Mode clock: 208.00MHz (*16)
[    0.000000] Turbo Mode clock: 416.00MHz (*2.0, active)
[    0.000000] Memory clock: 208.00MHz (/2)
[    0.000000] System bus clock: 208.00MHz
[    0.000000] CPU0: D VIVT undefined 5 cache
[    0.000000] CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
[    0.000000] CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
[    0.000000] Built 1 zonelists.  Total pages: 32512
[    0.000000] Kernel command line: mem=128M root=/dev/mmcblk0p1 rw rootfstype=ext2 console=ttyS0,115200 video=pxafb:tag=vga rootdelay=8
[    0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
[    0.000000] Console: colour dummy device 80x30
[    0.090000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.100000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.120000] Memory: 128MB = 128MB total
[    0.120000] Memory: 126720KB available (2776K code, 204K data, 120K init)
[    0.330000] Mount-cache hash table entries: 512
[    0.330000] CPU: Testing write buffer coherency: ok
[    0.340000] NET: Registered protocol family 16
[    0.370000] SCSI subsystem initialized
[    0.370000] usbcore: registered new interface driver usbfs
[    0.38000] usbcore: reger hub
[    0.390000] usbcore: registered new device driver usb
[    0.400000] Time: pxa_timer clocksource has been installed
[    0.400000] NET: Registered protocol family 2
[    0.500000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.500000] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.510000] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.520000] TCP: Hash tables configured (established 4096 bind 4096)
[    0.520000] TCP reno registered
[    0.560000] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.570000] JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
[    0.570000] io scheduler noop registered
[    0.580000] io scheduler anticipatory registered
[    0.580000] io scheduler deadline registered
[    0.590000] io scheduler cfq registered (default)
[    0.630000] Console: switching to colour frame buffer device 80x30
[    0.650000] pxa2xx-fb pxa2xx-fb: pxafb_probe done
[    1.290000] pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART
[    1.300000] pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART
[    1.310000] pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART
[    1.320000] RAMDISK driver initialized: 2 RAM disks of 32768K size 1024 block[    1.330000] loop: module loaded
[    1.340000] eth0: dm9000 at f1000000,f1000004 IRQ 146 MAC: 00:50:c2:bb:45:b5
[    1.350000] Probing flash at physical address 0x00000000 (32-bit buswidth)
[    1.360000] Flash: Found 2 x16 devices at 0x0 in 32-bit bank
[    1.360000]  Intel/Sharp Extended Query Table at 0x0031
[    1.370000] Using buffer write method
[    1.370000] cfi_cmdset_0001: Erase suspend on write enabled
[    1.380000] Creating 3 MTD partitions on "Flash":
[    1.380000] 0x00000000-0x00080000 : "Bootloader"
[    1.390000] 0x00080000-0x00480000 : "Kernel"
[    1.390000] 0x00480000-0x02000000 : "Filesystem"
[    1.400000] pxa27x-ohci pxa27x-ohci: PXA27x OHCI
[    1.410000] pxa27x-ohci pxa27x-ohci: new USB bus registered, assigned bus number 1
[    1.420000] pxa27x-ohci pxa27x-ohci: irq 3, io mem 0x4c000000
[    1.480000] usb usb1: configuration #1 chosen from 1 choice
[    1.490000] hub 1-0:1.0: USB hub found
[    1.500000] hub 1-0:1.0: 3 ports detected
[    1.610000] Initializing USB Mass Storage driver...
[    1.610000] usbcore: registered new interface driver usb-storage
[    1.620000] USB Mass Storage support registered.
[    1.620000] mice: PS/2 mouse device common for all mice
[    1.630000] I2C: i2c-0: PXA I2C adapter
[    1.640000] I2C: i2c-1: PXA I2C adapter
[    1.640000] m41t00 0-0068: rtc core: registered m41t00 as rtc0
[    1.650000] i2c-1: error: exhausted retries
[    1.660000] i2c-1: msg_num: 0 msg_idx: -2000 msg_ptr: 0
[    1.660000] i2c-1: ICR: 000007e0 ISR: 00000002
[    1.660000] i2c-1: log: [00000446:000007e0]
[    1.680000] usbcore: registered new interface driver usbhid
[    1.680000] drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
[    1.690000] Advanced Linux Sound Architecture Driver Version 1.0.14 (Thu May 31 09:03:25 2007 UTC).
[    1.700000] pxa2xx_ac97_reset: cold reset timeout (GSR=0x0)
[    1.870000] input: UCB1400 touchscreen interface as /class/input/input0
[    1.880000] ALSA device list:
[    1.880000]   #0: pxa2xx-ac97 (Philips UCB1400)
[    1.890000] TCP cubic registered
[    1.890000] NET: Registered protocol family 1
[    1.890000] NET: Registered protocol family 17
[    1.900000] XScale iWMMXt coprocessor detected.
[    1.900000] m41t00 0-0068: setting the system clock to 2000-02-22 17:31:08 (951240668)
[    1.910000] Waiting 8sec before mounting root device...
[    1.960000] mmc0: new SD card at address 0002
[    1.960000] mmcblk0: mmc0:0002 00000 1955840KiB
[    1.970000]  mmcblk0: p1
[    9.940000] EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
[    9.950000] VFS: Mounted root (ext2 filesystem).
[    9.950000] Freeing init memory: 120K
[   11.360000] eth0: link down
[   13.360000] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Из последних строчек видно, что ядро продолжает работать, но не запустилось приглашение. Inittab пока не трогал.
Название: Re: eabi vs oabi
Отправлено: asv от 17 Февраля, 2012, 13:00:30
> скопировал содержимое директории ..buildroot-2009.08/project_build_arm/tion270/root на SD-карту

Смотрите внимательней на п.2
http://www.zao-zeo.ru/dokuwiki/doku.php/linux#sd-карта
файл binaries/tion270/rootfs.arm.ext2
Название: Re: eabi vs oabi
Отправлено: emc2 от 17 Февраля, 2012, 13:43:17
Спасибо. Заработало.
В ep9315 тачскрин в /etc/profile был описан у меня так:
export QTDIR=/lib
export QWS_DISPLAY=linuxfb:/dev/fb0
export QWS_MOUSE_PROTO=Tslib:/dev/misc/ep93xx_ts
export QWS_SW_CURSOR=0
export QWS_KEYBOARD=USB:/dev/input/event0
export QT_QWS_USE_KEYCODES=1
export LC_ALL=ru_RU.UTF-8
export LANG=ru_RU.UTF-8
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_TSDEVICE=/dev/misc/ep93xx_ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=/dev/tty
А как описать его в Tion270? Вычитал в соседней теме, что нужно писать:
QWS_MOUSE_PROTO=tslib:/dev/input/event0Добавил это, но при попытке откалибровать пишет:
ts_open: No such file or directory
Какое устройство здесь отвечает за поддержку тачскрина? В ядре с завода включен тачскрин? Или надо пересобрать?
Название: Re: eabi vs oabi
Отправлено: asv от 17 Февраля, 2012, 14:00:49
> Какое устройство здесь отвечает за поддержку тачскрина?

UCB1400

> В ядре с завода включен тачскрин? Или надо пересобрать?

Включен, и в полученной КФС должен уже быть правильно настроен.
Запустите ts_calibrate
www.zao-zeo.ru/dokuwiki/doku.php/linux#калибровка
Название: Re: eabi vs oabi
Отправлено: asv от 17 Февраля, 2012, 14:03:16
> Добавил это, но при попытке откалибровать пишет:

Верните так, как было

module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
Название: Re: eabi vs oabi
Отправлено: emc2 от 17 Февраля, 2012, 14:11:23
Результат выполнения:
# ts_calibrate
ts_open: No such file or directory
# ts_test
/dev/touchscreen/ucb1x00: No such file or directory
Хотя dmesg говорит:
input: UCB1400 touchscreen interface as /class/input/input0
Название: Re: eabi vs oabi
Отправлено: asv от 17 Февраля, 2012, 14:19:47
Покажите вывод printenv и /etc/ts.conf
Название: Re: eabi vs oabi
Отправлено: emc2 от 17 Февраля, 2012, 14:27:35
printenv:
HISTFILESIZE=1000
INPUTRC=/etc/inputrc
USER=root
HOSTNAME=tion270
OLDPWD=/home/qwt-examples
HOME=/root
PAGER=/bin/more
PS1=#
LOGNAME=root
TERM=vt100
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LANG=C
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
HISTSIZE=1000
SHELL=/bin/sh
PWD=/usr/bin
EDITOR=/bin/vi
/etc/ts.conf :
module_raw input

module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
Название: Re: eabi vs oabi
Отправлено: asv от 17 Февраля, 2012, 14:33:39
Ядро вы не заменяли?
uname -a
  Linux tion270 2.6.22.19 #1 Tue Jan 19 19:00:18 MSK 2010 armv5tel GNU/Linux     

Давайте .config из Buildroot
Название: Re: eabi vs oabi
Отправлено: asv от 17 Февраля, 2012, 14:34:44
И КФС взята из binaries/tion270/rootfs.arm.ext2 без измеений?
Название: Re: eabi vs oabi
Отправлено: emc2 от 17 Февраля, 2012, 14:44:27
Отправил конфиг по почте.
Ядро не менял. Все как у Вас.
КФС не менял. Монтировал rootfs.arm.ext2 на директорию mount -o loop <mnt>
Потом копировал sudo cp -R * <flash>
Название: Re: eabi vs oabi
Отправлено: asv от 17 Февраля, 2012, 14:54:36
Я попробую и сообщу (не обязательно сегодня).
Название: Re: eabi vs oabi
Отправлено: asv от 18 Февраля, 2012, 22:19:08
Почему tslib (BR2_PACKAGE_TSLIB) не включен в конфигурации?
Название: Re: eabi vs oabi
Отправлено: emc2 от 20 Февраля, 2012, 09:10:16
Тысяча извинений. Добавил этот пункт. Кроме того запустил поиск на tslib и добавил еще BR2_PACKAGE_DIRECTFB=y
Собрал КФС и скопировал. ts_test попрежнему выдает:/dev/touchscreen/ucb1x00: No such file or directoryМожет нужно самому создать это устройство? Ядро не менял. Сборка с завода.
Название: Re: eabi vs oabi
Отправлено: asv от 20 Февраля, 2012, 11:00:37
> Добавил этот пункт

Нет, проблема не в этом, вы говорили что собирали tslib отдельно, поэтому я решил что у вас tslib
своей сборки. Но в настройках Qt указано использование tslib и tslib будет собрано по зависимости
и без явного указания BR2_PACKAGE_TSLIB.

> BR2_PACKAGE_DIRECTFB

DirectFB вам, в общем, не нужен, если вы собираетесь использовать Qt.

Для tslib нужно задать
export TSLIB_TSDEVICE=/dev/input/event0
в /etc/profile и заново залогиниться.

export QWS_MOUSE_PROTO=tslib:/dev/input/event0
потребуется для Qt.
Название: Re: eabi vs oabi
Отправлено: emc2 от 20 Февраля, 2012, 11:26:37
Добавил строки в /etc/profile
Вот результат работы ts_test и одного нажатия:
# ts_test
tslib: Unknown event type 0
951509496.470464:    161    365    560
951509496.500444:    163    365    560
951509496.500467:    163    366    560
tslib: Unknown event type 0
951509496.500472:    163    366    596
951509496.530443:    164    366    620
951509496.530465:    166    364    638
tslib: Unknown event type 0
951509496.530469:    167    363    665
951509496.560424:    166    363    672
951509496.560442:    165    363    677
tslib: Unknown event type 0
951509496.560446:    164    364    671
951509496.590429:    164    364    664
951509496.590450:    165    365    659
tslib: Unknown event type 0
951509496.620433:    153    368    665
951509496.620433:    144    371    672
951509496.620453:    138    372    678
tslib: Unknown event type 0
951509496.620457:    132    373    679
951509496.650510:    132    372      0
tslib: Unknown event type 0
При  запуске ts_calibrate на экране не видно маркеров, экран очищается полностью. Вот результат попытки откалибровать вслепую:
# ts_calibrate
xres = 640, yres = 480
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 14 samples...
Top left : X =  516 Y =  522
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 13 samples...
Top right : X =  888 Y =  928
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 12 samples...
Bot right : X =  872 Y =  122
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 11 samples...
Bot left : X =  138 Y =   94
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
tslib: Unknown event type 0
Took 11 samples...
Center : X =  148 Y =  919
-38.849731 0.542607 0.156322
482.486115 -0.122260 -0.347853
Calibration constants: -2546056 35560 10244 31620210 -8012 -22796 65536

В QT курсор перемещается, но из-за неверной калибровке криво. Но постоянно выдает tslib: Unknown event type 0
Название: Re: eabi vs oabi
Отправлено: asv от 20 Февраля, 2012, 15:31:10
> При запуске ts_calibrate на экране не видно маркеров, экран очищается полностью.

Когда объединял tion и tion270 в одном Buildroot, я забыл про package/tslib/tslib-1.0-18bpp.patch
Он во вложении, поместите его в указанный каталог и сделайте
make tslib-clean
make

Я позже обновлю в git.

> Но постоянно выдает tslib: Unknown event type 0

Это ничего.
Название: Re: eabi vs oabi
Отправлено: emc2 от 21 Февраля, 2012, 10:46:10
Попробовал. Такое ощущение, что патч не принимается. Экран при калибровке по-прежнему пустой.
В QT все отображается.
Название: Re: eabi vs oabi
Отправлено: asv от 21 Февраля, 2012, 12:57:04
Обновил в git (и проверил).
Делайте git pull и make tslib-clean; make
Название: Re: eabi vs oabi
Отправлено: emc2 от 22 Февраля, 2012, 08:38:09
Скачал полностью весь buildroot и пересобрал. Не особо хорошо знаю GIT, но git pull выдает у меня такое сообщение:
$ git pull  http://zao-zeo.ru/media/files/linux/buildroot-2009.08.git
fatal: Not a git repository (or any of the parent directories): .git
Попрежнему при калибровке черный экран. Какой тип дисплея Вы использовали при проверке? У нас CLAA057VA01CT. Еще заметил, что при калибровке "вслепую" (т.е. жму сначала примерно в центр экрана, потом в top left, top rigth, bot rigth, bot left) в QT при перемещении в горизонтальном направлении курсор перемещается в вертикальном и наоборот.
Название: Re: eabi vs oabi
Отправлено: asv от 22 Февраля, 2012, 10:44:30
> git pull выдает у меня такое сообщение:
> Скачал полностью весь buildroot и пересобрал

Откуда именно?
git pull (без адреса) в каталоге buildroot.

> У нас CLAA057VA01CT

На точно таком.

> примерно в центр экрана, потом в top left, top rigth, bot rigth, bot left) в
> QT при перемещении в горизонтальном направлении курсор
> перемещается в вертикальном и наоборот

Последовательность нажатий другая.

> Попрежнему при калибровке черный экран.

Сделайте в buildroot:
  make tslib-clean
  make tslib-dirclean
  make 2>&1 | tee make.log

По содержанию make.log будет понятно, применён
package/tslib/tslib-1.0-18bpp.patch или нет.
Название: Re: eabi vs oabi
Отправлено: emc2 от 22 Февраля, 2012, 11:07:56
Спасибо. Тачскрин заработал. Откалибровался и корректно работает в QT.
Название: Re: eabi vs oabi
Отправлено: emc2 от 27 Февраля, 2012, 14:41:36
Добрый день.
Продолжаю переход c EP9315 на PXA270. Есть еще несколько вопросов:
1. В Тионе-Про-270 отсутствует возможность использовать матричную клавиатуру? Включил в ядре "PXA27хх keyboard support" и "GPIO buttons". В каком устройстве будут возникать события клавиатуры и какие файлы править для назначения кодов клавиш?
2. SPI. В ТионеПро v2 использовал файл zeoio.c и соответственно изменял его под свои нужды. Каким путем нужно идти в PXA270? Через spidev? Необходимо создать опрос внешнего SPI устройства.
Заранее спасибо.
Название: Re: eabi vs oabi
Отправлено: asv от 27 Февраля, 2012, 15:28:49
Неплохо было бы поменять тему.

1. В Тионе-Про-270 отсутствует возможность использовать матричную клавиатуру? Включил в ядре "PXA27хх keyboard support" и "GPIO buttons". В каком устройстве будут возникать события клавиатуры и какие файлы править для назначения кодов клавиш?

В устройстве /dev/input/eventX
Прилагаю патчи добавляющие в pxa270 Linux-2.6.22 поддержку direct keys (помимо матрчичных).
По ним же видно, какие файлы следует править для определения маричной клавиауты и её кодов.

GPIO buttons лучше не надо.

В "PXA27x Processor Family Developer’s Manual", таблица "GPIO Alternate Functions"
ищите функции выводов KP_* и смотрите какие из соотвествующих им GPIO
выведены на разъёмы и не используются.
Например, разъём J2:
Вывод 5: GPIO90, KP_MKIN<5>
Вывод 6: GPIO91, KP_MKIN<6>
Вывод 11: GPIO96, KP_MKOUT<6>
Вывод 18: GPIO108, KP_MKOUT <5>
...и другие.

Тажке есть KP_DKIN* (direct key): J2.7, J2.8 ...

2. SPI. В ТионеПро v2 использовал файл zeoio.c и соответственно изменял его под свои нужды. Каким путем нужно идти в PXA270? Через spidev? Необходимо создать опрос внешнего SPI устройства.

Точно также, через spidev.
Название: Re: eabi vs oabi
Отправлено: emc2 от 01 Марта, 2012, 13:16:02
Добавил в menuconfig опцию
│ Symbol: SPI_PXA2XX [=y]                                                 │ 
  │ Prompt: PXA2xx SSP SPI master 
Собрал ядро и перезалил. С каким устройством мне необходимо работать? /dev/spidev устройство не появилось в системе. Как собственно из исходных кодов понять с каким устройством КФС будет сопоставлен конкрено взятый драйвер?
Название: Re: eabi vs oabi
Отправлено: asv от 01 Марта, 2012, 13:25:34
> /dev/spidev устройство не появилось в системе

Вы намерены использовать spidev. udev на плате нет, файлы
устройств автоматически не создаются, см. Documentation/spi/spidev

> Как собственно из исходных кодов понять с каким устройством
> КФС будет сопоставлен конкрено взятый драйвер?

Для какого "собственно конкретно взятого" драйвера?
Название: Re: eabi vs oabi
Отправлено: emc2 от 01 Марта, 2012, 13:30:07
В Тионе про нужно было выполнить mknod /dev/zeoio/relays c 250 1 Создавалось устройство в папке zeoio. Пока что со spidev не разобрался как это делается. Буду читать дальше.
Название: Re: eabi vs oabi
Отправлено: asv от 01 Марта, 2012, 14:26:53
> Тионе про нужно было выполнить

Потому что этот драйвер обслуживает эти (major num 250) символьные устройства
(создаёт их в окружении ядра). Он написан с таким интерфейсом символьных файлов
к пользовательскому окружению. Можно придумать другие интерфейсы (sysfs, сетевой...).

И если вы используете именно этот драйвер, то вам и нужно сделать файл символьного
устройства с номерами 250 1 (и прочие). Если какой-то другой драйвер, то нужно знать какой
интерфейс он предоставляет.
Название: Re: eabi vs oabi
Отправлено: emc2 от 21 Марта, 2012, 13:46:20
Добрый день.
Немного почитал про написание драйверов. Пытаюсь добавить модуль zeoio в ядро. Добавил в /drivers/misc zeoio.c, изменил Kconfig и Makefile  . Из функционала модуля оставил пока только регистрацию и открытие. Собрал ядро и перезалил. Создал папку zeoio в /dev Затем набрал mknod /dev/zeoio/relays c 250 1 Появилось устройство relays. Набираю cat /dev/zeoio/relays выдает No such device or address
Подскажите, что я не так делаю?
Название: Re: eabi vs oabi
Отправлено: asv от 21 Марта, 2012, 14:14:41
1. Если zeoio как модуль, то почему вы его не insmod?
Отсюда получается "No such device or address"

2. zeoio в функции probe ожидает получить от устройства определённый ответ,
иначе, символьные файлы не регистрируются, и получается "No such device or address"
Название: Re: eabi vs oabi
Отправлено: emc2 от 22 Марта, 2012, 14:29:32
Пробовал и с insmod и компиляцию сразу с ядром. Почему то я не вижу вообще сообщений модуля в dmesg.
Пробовал так в zeoio_probe:
iprintk (" Add character devices\n");
и так
printk(KERN_ERR MODULE_NAME ":Add character devices\n");
Сообщений отладки нет.
lsmod говорит, что модуль есть.
CONFIG_ZEOIO_DEBUG в конфигурации включил. Что еще нужно включить?
Название: Re: eabi vs oabi
Отправлено: emc2 от 22 Марта, 2012, 15:17:37
Вставил printk в zeoio_init. Сообщения появляются в dmesg. Получается не проходит zeoio_probe.
Название: Re: eabi vs oabi
Отправлено: asv от 22 Марта, 2012, 16:01:33
В arch/arm/mach-pxa/tion270.c вы добавили структуру с modalias "zeoio"?
static struct spi_board_info spi_board_info[] __initdata = {
Название: Re: eabi vs oabi
Отправлено: emc2 от 20 Февраля, 2013, 13:32:15
Не создаю новую тему. Тут был разбор DIRECT_KEYS. А нет ли патча для энкодера EC12E2424404(ну или аналогичного) с использованием gpio_keys, как это было реализовано в ep93xx_keypad.c? Если нет, то в какую сторону копать? Взять за основу ep93xx_keypad.c? Собственно у нас из клавиатуры один только энкодер с кнопкой на нем :)
Название: Re: eabi vs oabi
Отправлено: asv от 20 Февраля, 2013, 15:24:43
На PXA есть контроллер rotary encoder (подключаемый к direct keys) и в коде
драйвера pxa27x_keyboard.c есть его упоминание.
Название: Re: eabi vs oabi
Отправлено: emc2 от 21 Февраля, 2013, 11:07:08
А не подскажите как определить #define вход, отвечающий за A и B энкодера? В файле pxa-regs.h не прокомментированы биты
#define KPREC_OF1       (0x1 << 31)
#define kPREC_UF1       (0x1 << 30)
#define KPREC_OF0       (0x1 << 15)
#define KPREC_UF0       (0x1 << 14)
я так подозреваю - это они?
Название: Re: eabi vs oabi
Отправлено: emc2 от 21 Февраля, 2013, 12:52:21
Покопался в документации на процессор. Получается в качестве входа энкодера может назначаться фиксированный вход GPIO. Так вот как определить какой из GPIO в таблице Table 24-2. GPIO Alternate Functions может быть этими входами? Мы использовали GPIO101, 102, 103.
Название: Re: eabi vs oabi
Отправлено: asv от 21 Февраля, 2013, 14:03:48
Для энкодера (18.4.2.2 Rotary Encoders) можно использовать KPDK[3:0] (96,
(95 не выведен), 94, 93).  GPIO101, 102, 103 только для матричной
клавиатуры.
Название: Re: eabi vs oabi
Отправлено: emc2 от 05 Марта, 2013, 10:22:42
Поясните пожалуйста, к чему нужно подтянуть вход DIRECT KEYS? Для матричной клавиатуры понятно: на линии столбца появится 1 или 0 и она подтянет входы строки к нужному уровню. А как для DIRECT KEYS?
Название: Re: eabi vs oabi
Отправлено: asv от 05 Марта, 2013, 15:03:45
Насколько помню, просто как вход для кнопки, см. вложение.