FriendlyARM tiny6410 - сборка "собственного" Debian+XFCE (update)

Три дня пилил, строгал, резал. В итоге получил на выходе Debian 6 и XFCE4 на SD карте, ядро и загрузчик в NAND. Ядро и загрузчик пока «родные», с диска.
Первоисточники:
Установка Debian на mini2440
Tutorial Mini6410 Debian/Emdebian





Что нужно:

1. Windows
2. Linux
3 SD карта

Линуха у меня UBUNTU, реальная, чтобы не переразбивать диск поставил ее на SD карту 16 гиговую. Можно использовать любую виртуалку (VMware, CoLinux), главное, чтобы была сетка и виделась SD.
У меня SD карта на 2 гига. Производитель заявляет поддержку до 32 гигов, но имеющиеся в наличии карты 4 и 16G не завелись. Скорей всего потому, что они SDHC.

Первым делом форматим карточку под виндой в FAT32. Запускаем прогу из комплекта SD-Flasher.exe, там всего 3 пункта: путь к superboot-20110727.bin со 2-го диска, потом кнопка SCAN, находится наша карточка и в финале, кнопка FUSE. Если ошибок нет, выходим и вытаскиваем карту.

Теперь, карту в миньку/тиньку, у кого что. Переключатель загрузки в SD, устройство соединяем с компом COM и USB кабелями, запускаем прогу из комплекта dnw.exe и включаем устройство. В DNW появляется меню superboot-a. Фоматим NAND, загружаем uboot (u-boot_nand-ram256.bin), загружаем Kernel Linux/Android (zImage_a70). Выключаем устройство, карту из него вытаскиваем, переключатель в загрузку с NAND и включаем. В DNW должна появиться заставка uboot
U-Boot 1.1.6 (Jul 21 2011 - 12:49:00) for FriendlyARM MINI6410


CPU:     S3C6410@532MHz
         Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board:   MINI6410
DRAM:    256 MB
Flash:   0 kB
NAND:    256 MB
*** Warning - bad CRC or NAND, using default environment

In:      serial
Out:     serial
Err:     serial
MAC: 08:90:90:90:90:90
Hit any key to stop autoboot:  0

пройти 3 секунды и начаться загрузка ядра линуха

Boot with zImage

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 2.6.38-FriendlyARM (root@jensen) (gcc version 4.5.1 (ctng-1.8.1-FA) ) #7 PREEMPT Mon Jul 18 17:04:33 HKT 2011
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: MINI6410

...

которая закончиться ничем :) Значит пока все работает как надо.

Теперь идем в наш Linux. Для тех кто только начал эксперименты я рекомендую поставить прогу apt-cacher. Это прога создает локальный репозиторий и сохраняет в нем все скаченные .DEB пакеты. Пока подберешь нужную конфигурацию, наиграешься с настройками придется несколько раз запускать утилиту debootstrap (debootstrap это утилита для установки базовой системы Debian из под другой (не обязательно Debian) ОС), а она в свою очередь постоянно будет качать из сети, в основном, одни и те же пакеты. Я за время экспериментов накопил в локальном зеркале 1.4 гига пакетов и теперь даже не выходя в инет могу создавать «свой» Debian.

Готовим линуху. устанавливаем утилиту debootstrap.
apt-get install debootstrap

Создаем себе рабочую папку. Скачиваем 2 архива: arm-linux-gcc-4.5.1-v6-vfp-20101103.tar.gz и linux-2.6.36-20101115.tar.gz. Распаковываем.
tar xzvf linux-2.6.36-20101115.tar.gz
tar xzvf arm-linux-gcc-4.5.1-v6-vfp-20101103.tar.gz -C /

Ядро распаковываем в рабочую папку, компилятор в корень. Должна появиться папка: /opt/FriendlyARM/toolschain/4.5.1/ с содержимым.

Карту в линух, но не монтируем. Проверяем что появилась.
fdisk -l

Нужно с нее все стереть и создать одну партицию с файловой системой ext3. Можно использовать и ext2, но с ней у меня регулярно появлялись ошибки. Не успевались чистится хвосты после удаления файлов. Делается это так.
fdisk /dev/sdc

и после появления приглашения
o / n / p / 1 / enter / enter / t / 83 / enter / w

а потом
mkfs.ext3 -c /dev/sdc1

mount /dev/sdc1 /mnt

Карта готова.

Создаем папку для закачки базовой Debian. Вся работа производиться с помощью утилиты debootstrap. Она и закачает, она и настроит. Главное, сказать ей что вы хотите. По умолчанию утилита скачивает минимальный базовый набор. А все остальное можно будет доставить после. Но, лично я не гуру линуха. Я не мыслю консоль без mc и не люблю когда на ввод какой либо знакомой команды система говорит что нет такой. Утилита дает возможность добавить необходимые пакеты к базовому набору и сама их установит и настроит по умолчанию. Лично у меня список такой.

debootstrap --verbose --arch=armel --foreign --exclude=man,man-db --include=mc,ssh,vim,apt,udev,make,bluez,iw,gpsd,bluetooth,wireless-tools,minicom,apache2 stable debianroot/ http://mirror.yandex.ru/debian/

stable — версия Debian (последняя стабильная)
debianroot/ — директория установки
http://mirror.yandex.ru/debian/ — зеркало с которого устанавливать. Если используется apt-cacher, то зеркало будет: http://localhost:3142/debian/

Начнется скачка. Ждем. По окончанию, в папке debianroot появиться структура файловой системы будущего Debian. Заходим в папку. Архивируем ее, переносим архив на нашу подготовленную карту, распаковываем его на карте.
cd debianroot
tar cjf ../debianroot.tar.bz2 .
tar xjf debianroot.tar.bz2


Теперь переносим на карту модули ядра. Заходим в папку с раннее распакованным ранее скачанным ядром.
cp config_mini6410_a70 .config
make CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-
make CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- INSTALL_MOD_PATH=/mnt modules_install

И немного настраиваем будущую систему.
echo "proc /proc proc none 0 0" >> rootfs/etc/fstab
echo "mini6410" > rootfs/etc/hostname

Все, первый этап окончен. Размонтируем карту, и вставляем ее в устройство.

Переключатель загрузки в NAND. Устройство связано с компом COM кабелем. На компе запущена программа DNW. Включаем устройство. Сразу после появления заставки uboot в течении 3-х секунд нужно нажать на любую кнопку на клаве компа. Загрузка прерывается, появляется меню uboot.
#### FriendlyARM U-Boot(2011-07, NAND) for 6410 #####
[f] Format the nand flash
[v] Download u-boot.bin
[k] Download Linux/Android kernel
[y] Download root yaffs2 image
[u] Download root ubifs image
[a] Download Absolute User Application
[n] Download Nboot.nb0 for WinCE
[w] Download WinCE NK.nb0
[s] Set the boot parameter of Linux
[b] Boot Linux
[q] Quit to shell
NAND(SLC): 256 MiB, RAM: 256 MiB
LCD type, firmware version: 2 1046
Enter your Selection:


Жмем s и задаем параметры ядра:

root=/dev/mmcblk0p1 noinitrd console=ttySAC0,115200 init=/bin/bash rootwait=4 rw

Жмем enter и b. Начнется загрузка, которая должна завершиться приглашением.

Enter your Selection:b

NAND read: device 0 offset 0x80000, size 0x500000
........................................Boot with zImage

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 2.6.38-FriendlyARM (root@jensen) (gcc version 4.5.1 (ctng-1.8.1-FA) ) #7 PREEMPT Mon Jul 18 17:04:33 HKT 2011
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: MINI6410

...

reeing init memory: 1408K
EXT3-fs: barriers not enabled
EXT3-fs (mmcblk0p1): warning: checktime reached, running e2fsck is recommended
kjournald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk0p1): using internal journal
EXT3-fs (mmcblk0p1): mounted filesystem with writeback data mode
1Wire touchscreen OK
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
I have no name!@FriendlyARM:/#

вводим
I have no name!@FriendlyARM:/# mount /proc /proc -t proc
I have no name!@FriendlyARM:/#export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
I have no name!@FriendlyARM:/# /debootstrap/debootstrap --second-stage

должен пойти процесс. Долгий.
I have no name!@FriendlyARM:/# /debootstrap/debootstrap --second-stage
I: Installing core packages...
I: Unpacking required packages...
I: Unpacking libacl1...
I: Unpacking libattr1...
I: Unpacking base-files...
I: Unpacking base-passwd...
I: Unpacking bash...
I: Unpacking libbz2-1.0...
I: Unpacking coreutils...

...

: Configuring libgtk2.0-0...
I: Configuring libglade2-0...
I: Configuring gnunet-tools...
I: Base system installed successfully.
I have no name!@FriendlyARM:/#

Немного предварительных настроек.
I have no name!@FriendlyARM:/#echo s3c2410_serial0 >>etc/securetty
I have no name!@FriendlyARM:/#printf "T0:2345:respawn:/sbin/getty -L s3c2410_serial0 115200 vt100\n" >>etc/inittab
I have no name!@FriendlyARM:/#printf "auto eth0\niface eth0 inet dhcp\n" >>etc/network/interfaces
I have no name!@FriendlyARM:/#echo ttySAC0 >>etc/securetty
I have no name!@FriendlyARM:/#printf "T1:123:respawn:/sbin/getty 115200 ttySAC0\n" >>etc/inittab
I have no name!@FriendlyARM:/#echo "root:nopasswd" | chpasswd

и перезагружаемся
reboot -f

Сразу после появления заставки uboot в течении 3-х секунд нужно нажать на любую кнопку на клаве компа. Загрузка прерывается, появляется меню uboot. Жмем s и задаем параметры ядра:

root=/dev/mmcblk0p1 noinitrd console=tty0 console=ttySAC0,115200 init=/sbin/init rootwait=4

Жмем enter и b. Наслаждаемся.

Локальный репозиторий. Если пакетов много и хочется их использовать в будущем в Debian на устройстве, можно поставить reprepro. Я сделал репозиторий на USB флэшке и подключаю когда он нужен.

Установка пакета:
# apt-get install reprepro

Создание каталога /mnt/repo/debian, в нём будет создаваться локальный репозиторий пакетов.
# mkdir /mnt/repo/debian

Cоздание каталога /mnt/repo/debian/conf и пустого конфигурационного файла distributions:
# mkdir /mnt/repo/debian/conf
# touch /mnt/repo/debian/conf/distributions

В файл /mnt/repo/debian/conf/distributions указываем следующие параметры:
Codename:  squeeze
Suite:  stable
Version: 6.x
Origin: Debian
Label: Debian 6.x
Description: Debian Stable Repository
Architectures: armel
Components: main
SignWith: default
DebIndices: Packages Release . .gz .bz2
DscIndices: Sources Release . .gz .bz2
Contents: . .gz .bz2

Создаём каталоги, файлы, ссылки:
# cd /mnt/repo/debian
# reprepro export
# reprepro createsymlinks

Теперь можно добавлять пакеты в локальный репозиторий из кэша уже скачанных вами пакетов:
# reprepro -b /mnt/repo/debian includedeb squeeze /путь/где/лежат/ранее/скачанные/пакеты/*.deb

Для использования репозитория нужно добавить его в файл /etc/apt/sources.list в виде следующей строки (в общем виде):
deb file:///путь_к_папке_репозитория/ ветка разделы
например:
deb file:///home/repository/ squeeze main

Русский язык в консоле.
# apt-get install console-cyrillic console-terminus locales

Отвечаем на многочисленные вопросы. Выбираем английскую и русскую локаль, ставим по умолчанию русскую. Если чтото забыли или неправильно сделали, можно исправить.
# dpkg-reconfigure locales
# dpkg-reconfigure console-cyrillic

Перезагружаемся и наслаждаемся русским mc :)

Звук.

Инсталлим ALSA:

apt-get install alsa


С 1-го диска, /Linux/rootfs_qtopia_qt4-20110720.tgz из папки /etc берем файлик wm9714.conf и копируем его к себе на tiny в папку /etc.
Теперь с tiny качаем alsa-driver:

wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.25.tar.bz2

Распаковываем куда нить, заходим в созданную папку и запускаем скрипт:

./snddevices

Будут созданы папка /dev/snd и устройства в ней. На всякий случай перегружаемся. Даем команду:

alsactl restore -f /etc/wm9714.conf

И все. Теперь если запустить:

mpg123 чтонить.mp3

должно петь.
А если сделать так:

mplayer http://stream.radiorecord.ru:8100/rr_aac
mplayer http://92.53.112.250:8102/gop_aac?type=.aac
mplayer http://94.25.53.133:80/nashe-192
mplayer http://94.25.53.133:80/nashe-128
mplayer http://94.25.53.133:80/nashe-96

То будет интернет-радио.

Видео.

Кино в консоле можно смотреть с помощью MPLAYER. Ставим:

apt-get install mplayer

смотрим:

mplayer -vo fbdev чтонить.avi


Из последнего.

Про звук:
Теперь достаточно просто установить ALSA с репозитория и востановить конфигурационный файл с DVD платы. Т.е. Вся последовательность действий:

apt-get install alsa-base alsa-tools alsa-utils
alsactl restore -f /etc/wm9714.conf

и все будет петь.

Про WIFi:
Если контролер WiFi «родной», достаточно перенести содержимое папки lib с родного DVD в папку на устройстве и дать команду:

depmod - a

после перезагрузки:

iwlist wlan0 scan
iwconfig wlan0 essid ВАШАWIFIСЕТЬ

перед этим, нужно конечно же прописать все сетевые адаптеры в /etc/network/interfaces
Прописываем туда lo, eth0 и wlan0.


auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.211
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
up ifconfig eth0 down

auto wlan0
iface wlan0 inet static
address 192.168.0.212
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
up iwlist wlan0 scan
up iwconfig wlan0 essid LexA.NET


При этом, перед использованием wlan интерфейс eth0 отключаем:

ifconfig eth0 down


Про 3G:

Все замечательно работает через ppp. Причем модемы можно использовать и e1550 и более свежие Е171. В папке /etc/ppp/peers создаем файл, у меня он называется mts

connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs"
/dev/ttyUSB0
115200
usepeerdns
noipdefault
defaultroute
persist
noauth
user "mts"
password "mts"

после подключения модема опускаем все сетевые подключения и даем команду:

pon mts

через несколько секунд команда ifconfig покажет новое подключение.

Жизнь в консоле.

LINUX — Жизнь в консоли ЕСТЬ!!!

Плата замечательная, но любые WM на ней — зло. Тормоза жуткие. Начинаю собирать софт для жизни в консоле или «полуконсоле». Нашел ЗАМЕЧАТЕЛЬНЫЙ консольный браузер. Называется links2. Ставиться:

apt-get install links2

запускается:

links2 -g

Русский язык, картинки на страницах и работающая мышь. Это просто счастье какое то.

Теперь бы найти аську и солитер и жизнь удалась.

  • +2
  • 17 ноября 2011, 16:41
  • lexanet
  • 1
Файлы в топике: config_mini6410_a70.zip

Комментарии (63)

RSS свернуть / развернуть
Очень интересует данная тема. Тоже собираюсь себе этот набор приобрести.
0
Да, интересует.
А еще интересует, что это за D-SUB под экранчиком воткнут?
0
  • avatar
  • Vga
  • 17 ноября 2011, 18:10
Это RS232. Там их три штуки.
0
Да, это родной COM кабель такой красивый.
0
А мне на super6410 (она же OK6410A) так и не удалось запустить ничего, кроме WinCE. Даже готовые Андроид и Линукс с прилагаемого диска. Как работает процесс загрузки ОС, я так и не понял. Да ещё и документация наполовину на китайском. Чувствую, надо было не экономить и брать родной FriendlyARM, а не китайский клон :)
0
  • avatar
  • ACE
  • 17 ноября 2011, 19:34
Не думаю, что они что то свое придумали. Наверняка все так же как у FriendlyARM. Как самый простой вариант:
На чистую SD карту накатывается с помощью SD-Flasher загрузчик superboot. Грузимся с карты. Видим меню. А там запутаться не возможно, все сгруппировано — форматим NAND, грузим загрузчик, ядро и FS. Переключаемся на загрузку с NAND, наслаждаемся :)
0
а тачскрин завелся на дебиане? ;-)
0
Еще попробуйте открыть хотя бы окно настроек самого XFCE. оно просто не влезает в экран
0
это настраивается с сеттингах XFCE :)
0
на самом деле, просто не вижу смысла в таких сборках. полноценный дебиан на этой плате это излишество.
п.с. а ts-lib там до сих пор сломан
0
Полноценный дебиан исключительно, чтобы была привычная не урезанная среда с известными командами и набором пакетов. Я в линухе не очень. Тяжеловато будет ковырять чтото совсем новое из неизвестного :)
0
TS даже не пробовал еще заводить. X-ы на таких вещах, конечно лишнее. Тормозит не по децки. Поставил исключительно ради посмотреть и побаловаться. В окончательном варианте будет чистая консоль. Окна на 7" экранчике нормально влазят. Mozzila — влезла, остальное и подавно :) Если что, можно виртуальный экран сделать побольше и скролица.
0
мне лично кажется что на такой платке надо LXDE — памяти будет есть в 2 раза меньше. Сам сейчас колдую с starterkit.ru/html/index.php?name=shop&op=view&id=53 но интерфейс пользователя будет через веб-морду
0
Если есть интересующиеся присоединяйтесь.
git clone git@bitbucket.org:Legath/friendlyarm.git
я развернул систему сборки на базе buildroot, сейчас допиливаю до создания конечного образа.
0
Спасибо за инструкцию, тоже недавно приобрел сей девайс. В отличие от автора я пошел чуть дальше и установил и настроил openbox и тачскрин (он работает с TsLib, причем родным, из предустановленной Qtopia). Если интересно, могу описать в коментариях или отдельной статьей. И да, я здесь очень новенький, так что если чтото сделал не так — поправьте.
0
Очень интересует настройка touchscreen. До сих пор не могу заставить его работать под XFCE :(
0
Значит дело такое:
Устанавливаешь пакеты xserver-xorg-input-tslib, libts-bin (для ts_calibrate и ts_test) и tslib.

apt-get install xserver-xorg-input-tslib libts-bin tslib

Дальше на диске что шел в комплекте с бордой ищешь архив rootfs_qtopia_qt4-XXXXXXX.tgz — это базовая система, которая была с завода (по крайней мере у меня). Оттуда надо забрать:
/etc/ts.conf
/usr/lib/ts (папка)
/usr/lib/libts-*
/usr/bin/ts_*

Дальше самое интересное. ts.conf заменяем, /usr/lib/ts туда и помещаем (у меня пакет по умолчанию свои модули хранит в /usr/lib/ts0 поэтому конфликтов не будет). С самой библиотекой чуть посложнее, версии родной и импортируемой библиотек разные, поэтому в папке /usr/lib удаляем (сохраняем где нибудь еще) файл libts-1.0.so.0.0.0 (сама библиотека) и удаляем указатель на нее libts-1.0.so.0:

cd /usr/lib
mv libts-1.0.so.0.0.0 ~/
rm libts-1.0.so.0


Переносим туда libts-0.0.so.0.1.1 (рабочая библиотека из къютопии) и указатель libts-0.0.so.0. И создаем новый указатель:

mv ~/ts/libts-0.0.so.0.1.1 /usr/lib/tslib-0.0.so.0.1.1
mv ~/ts/libts-0.0.so.0 /usr/lib/libts-0.0.so.0
cp -s libts-0.0.so.0.1.1 libts-1.0.so.0


Теперь исполняемые файлы. Их можно запускать и из папки где они лежат, но я решил раз делать, то делать:

mv ~/ts/ts_calibrate /usr/bin/ts_calibrate
mv ~/ts/ts_test /usr/lib/ts_test
mv ~/ts/ts_print /usr/lib/ts_print
mv ~/ts/ts_print_raw /usr/lib/ts_print_raw
mv ~/ts/ts_harvest /usr/bin/ts_harvest


Теперь прописываем переменные (все это пока нужно делать в Х-сервере, чтоб можно было откалибровать тачскрин и проверить перед перезапуском):

export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts


И запуск (ВАЖНО все далеть в xterm и от root'а, еще важнее прописать все переменные, потомучто если обьявить только TSLIB_TSDEVICE как обычно пишут, устройство теряет управление):

ts_calibrate

Должно все покорябить, весь стол почернеет, но должен появиться вывод консоли и небольшой крестик в верхнем левом углу — УРА, мы победили тачскрин. Откалибруйте, он сам запишет настройки в файл, и потом можно тестить:

ts_test

Там можно порисовать, поперетаскивать курсор, главное что оно реагирует.
Но не стоит сразу перезагружаться и ждать что все будет ОК, для начала перейдем на tty1 (Ctrl+Alt+F1), залогинимся, sudo, пропишем TSLIB_TSDEVICE (для работы тачскрина библиотеке достаточно только этой переменной) и рестартанем Х-сервер (у меня GDM):

sudo -i
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
/etc/init.d/gdm stop
/etc/init.d/gdm start


Теперь можно молиться на то чтоб все заработало. Лично мне до первого работающего тачскрина приходилось раз 30 перезагружаться и столько же раз перезагружать х-сервер, но я все делал наощупь, поэтому вам буде проще. Если все запустилось и тачскрин реагирует — это 95% проделанной работы. Последний штрих, х-сервер не подхватывает тачскрин если не задана переменная TSLIB_TSDEVICE, поэтому я решил это так: открываем /etc/init.d/rc и после строчки:

export PATH

пишем:

TSLIB_TSDEVICE=/dev/touchscreen-1wire
export TSLIB_TSDEVICE


Другого адекватного места чтоб установить эту переменную и чтоб она была подхвачена х-сервером я не нашел, если знаете — подскажите (rc.local, .bashrc, .xinitrc не помогли). Теперь ребутимся и радуемся рабочему тачскрину.

Эмуляция правой кнопки мыши. tslib поддерживает эту эмуляцию, поэтому в файле /usr/share/X11/xorg.conf.d/50-tslib.conf в Section «InputClass» в конец добавляем:

Option «EmulateRightButton» «1»

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

PS: я регулярно слежу за этой темой, поэтому пока если есть какието вопросы, то сюда в каменты (если автор не возражает).
0
Я то не против, но, мое мнение, данный коммент заслуживает выноса в отдельный пост в личном блоге.
Спасибо. Буду пробовать 100500 способ заставить работать TS :) надеюсь, этот заработает. Все таки плата идентичная.
0
Отдельно буду признателен логу xorg.log и cat 10-evdev.conf. Желательно в личку, чтобы не сорить.
0
На данный момент китайцы выложили исходники модуля для работы с нашим тачскрином. Можно попробовать прикрутить их модуль к X-серверу
0
Я уже пробовал, результата не добился. По большей части изза того что не смог его нормально собрать. Точно уже не помню, но крос-компиляция не сработала (руки кривые), а при сборке на борде возникли проблемы с зависимостями (или ошибка сегментирования при запуске).
0

diff -Naur tslib-412d99d8b92c/configure.ac tslib-412d99d8b92c-patched/configure.ac
--- tslib-412d99d8b92c/configure.ac     2011-01-24 19:50:56.000000000 +0000
+++ tslib-412d99d8b92c-patched/configure.ac     2011-12-25 19:07:48.080550732 +0000
@@ -66,6 +66,7 @@
 TSLIB_CHECK_MODULE([arctic2], [yes], [Enable building of arctic2 raw module (IBM Arctic II support)])
 TSLIB_CHECK_MODULE([tatung], [yes], [Enable building of tatung raw module (Tatung Webpad support)])
 TSLIB_CHECK_MODULE([input], [yes], [Enable building of generic input raw module (Linux /dev/input/eventN support)])
+TSLIB_CHECK_MODULE([one-wire-ts-input], [yes], [Enable building of one wire ts input (Linux /dev/touchscreen-1wire support)])
 
 AC_MSG_CHECKING([where to place modules])
 AC_ARG_WITH(plugindir,
diff -Naur tslib-412d99d8b92c/etc/ts.conf tslib-412d99d8b92c-patched/etc/ts.conf
--- tslib-412d99d8b92c/etc/ts.conf      2011-01-24 19:50:56.000000000 +0000
+++ tslib-412d99d8b92c-patched/etc/ts.conf      2011-12-25 22:54:06.150193008 +0000
@@ -19,6 +19,9 @@
 # Uncomment if you're using an IBM Arctic II
 # module_raw arctic2
 
+# Uncomment if you're using an Friendlyarm
+module_raw one_wire_ts_input
+
 module pthres pmin=1
 module variance delta=30
 module dejitter delta=100
diff -Naur tslib-412d99d8b92c/plugins/Makefile.am tslib-412d99d8b92c-patched/plugins/Makefile.am
--- tslib-412d99d8b92c/plugins/Makefile.am      2011-01-24 19:50:56.000000000 +0000
+++ tslib-412d99d8b92c-patched/plugins/Makefile.am      2011-12-25 19:10:56.000545781 +0000
@@ -102,6 +102,12 @@
 CY8MRLN_PALMPRE_MODULE =
 endif
 
+if ENABLE_ONE_WIRE_TS_INPUT_MODULE
+ONE_WIRE_TS_INPUT_MODULE = one_wire_ts_input.la
+else
+ONE_WIRE_TS_INPUT_MODULE =
+endif
+
 pluginexec_LTLIBRARIES = \
        $(LINEAR_MODULE) \
        $(DEJITTER_MODULE) \
@@ -116,7 +122,8 @@
        $(TATUNG_MODULE) \
        $(H2200_LINEAR_MODULE) \
        $(INPUT_MODULE) \
-       $(CY8MRLN_PALMPRE_MODULE)
+       $(CY8MRLN_PALMPRE_MODULE) \
+       $(ONE_WIRE_TS_INPUT_MODULE)
   
 variance_la_SOURCES    = variance.c
 variance_la_LDFLAGS    = -module $(LTVSN)
@@ -165,3 +172,6 @@
 
 cy8mrln_palmpre_la_SOURCES = cy8mrln-palmpre.c
 cy8mrln_palmpre_la_LDFLAGS = -module $(LTVSN)
+
+one_wire_ts_input_la_SOURCES = one-wire-ts-input.c
+one_wire_ts_input_la_LDFLAGS = -module $(LTVSN)
diff -Naur tslib-412d99d8b92c/plugins/one-wire-ts-input.c tslib-412d99d8b92c-patched/plugins/one-wire-ts-input.c
--- tslib-412d99d8b92c/plugins/one-wire-ts-input.c      1970-01-01 00:00:00.000000000 +0000
+++ tslib-412d99d8b92c-patched/plugins/one-wire-ts-input.c      2011-10-26 06:17:11.000000000 +0000
@@ -0,0 +1,66 @@
+#include <termios.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <linux/fs.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/utsname.h>
+#include <time.h>
+
+
+#include "tslib-private.h"
+
+static int misc_read(struct tslib_module_info *inf, struct ts_sample *samp, int nr)
+{
+       struct tsdev *ts = inf->dev;
+
+       int ret;
+       unsigned ts_status;
+       ret = read(ts->fd, &ts_status, sizeof ts_status);
+       if (ret < 0) {
+               return 0;
+       }
+       if (ret == 0) {
+               return 0;
+       }
+
+       samp->x = ((ts_status) >> 16) & 0x7FFF;
+       samp->y = ts_status & 0x7FFF;
+       samp->pressure = ts_status >> 31;
+       gettimeofday(&samp->tv,NULL);
+       nr = nr;
+
+       return 1;
+}
+static int ts_fini(struct tslib_module_info *inf)
+{
+        free(inf);
+        return 0;
+}
+
+static const struct tslib_ops misc_ops =
+{
+       .read   = misc_read,
+        .fini   = ts_fini,
+};
+
+TSAPI struct tslib_module_info *one_wire_ts_mod_init(struct tsdev *dev, const char *params)
+{
+       struct tslib_module_info *m;
+
+       m = malloc(sizeof(struct tslib_module_info));
+       if (m == NULL)
+               return NULL;
+
+       m->ops = &misc_ops;
+       return m;
+}
+
+#ifndef TSLIB_STATIC_FRIENDLYARM_TS_MODULE
+TSLIB_MODULE_INIT(one_wire_ts_mod_init);
+#endif
diff -Naur tslib-412d99d8b92c/plugins/plugins.h tslib-412d99d8b92c-patched/plugins/plugins.h
--- tslib-412d99d8b92c/plugins/plugins.h        2011-01-24 19:50:56.000000000 +0000
+++ tslib-412d99d8b92c-patched/plugins/plugins.h        2011-12-25 19:01:13.380561130 +0000
@@ -16,3 +16,4 @@
 TSLIB_DECLARE_MODULE(tatung);
 TSLIB_DECLARE_MODULE(input);
 TSLIB_DECLARE_MODULE(cy8mrln_palmpre);
+TSLIB_DECLARE_MODULE(one_wire_ts);



Патч на сборку, содержит в себе тект модуля. У меня отлично заработало сейчас.
0
Забыл добавить — это патч для сборки tslib
0
Заработал TS по методу уважаемого manitou. За что ему большое спасибо. Если автор метода не будет выносить его в отдельные пост и если он не против, я добавлю последовательность действий в конец своего поста.
Заработало сразу, без шаманства.
0
Да, добавляте. Так статья не будет раздробленной и не будет теряться. (все-таки второй результат в гугле на запрос «debian tiny6410» — это не шуточки:))
0
А такой вариант прокатит под gentoo+openbox на mini2440 с 7дюймовым экраном? И как быть с ядром? У меня самосборное, но на нем тачскрин работает задом наперед, т.е я пальцем по экрану вверх а курсор вниз и соответственно польцем влево а он вправо.
0
Option «InvertY» «1» в 50-tslib.conf
и будет Вам счастие :)
0
А подскажите мне такое:
После того как я при сборке дебиана прописал параметры загрузки, у меня загрузку ядра и init дублировало не только в консоль, но и на экран АРМа, потом я полез проверять кютопию, перезаписал параметры и сие чудо исчезло. Ранее не доводилось так близко знакомиться со сборкой дистрибутивов (временный секс с Гентой в счет не берем), и причину такого поведения определить не могу. Может кто подскажет, как вернуть лог загрузки ядра на экран борды, удобно же.
0
console=tty0 — добавьте.
0
спасибо, то что доктор прописал:)
0
зашел увидел что статейка обновилась, а кто-нибудь добился аппаратного декодирования видео? у меня както дебиан не захотел добавлять xvideo устройство, а исходники я не нашел (*он не искал их тщательно)
0
У меня возникает проблема при загрузке linux'a — возникает ошибка Unable to handle kernel NULL pointer dereference at virtual address 0000000c
0
Привет. Пробовал настроить тачку методами предложные lexanet а также с помощью исходников выложенные китайцами. Не получилось :(. при запуске калибровки крестик в левом верхнем углу появляется, но при нажатие на него не реагирует. Тачка не хочет работать. Она вообще не как не реагирует на ее нажатие. В качестве графической оболочки использую LXDE. Помогите плиз…
0
Попробуйте по методу manitou, который приведен выше. Все что нужно, это родной DVD от платы.
0
Я бы попробовал, если бы понимал как приминать подобные патч при сборках. К своему стыду я этого не знаю.
0
Я не патчи имею ввиду, а использование пакетов xserver-xorg-input-tslib, libts-bin (для ts_calibrate и ts_test) и tslib.
0
Пробовал. ts_calibrate запускается, экран корежит, крестик видно, но на нажатие не реагирует. Может что с драйвером дисплея…
0
Немного дополнил статью.
0
Ты бы хоть пометил, где именно начинается апдейт.
0
  • avatar
  • Vga
  • 27 сентября 2012, 01:14
>> Теперь бы найти аську и солитер и жизнь удалась.
В качестве аськи в стародавние времена использовал micq. Сейчас, вроде, котируется что-то типа CenterICQ.
0
touchscreen-1wire try this:http://blog.csdn.net/yf210yf/article/details/7352470.
ts_calibrate WORK. cat /dev/touchscreen-1wire WORK.
but touchscreen-1wire no working in lxed too,and how?
0
Спасибо за статью! Я считаю себя начинающим Линуксоводом, точнее просто пользователем.
Приобрел FriendlyARM tiny6410 и загорелся установить Debian, руководствуясь данной статьей.
Но наткнулся на проблемку в этом месте
cp config_mini6410_a70 .config
У меня LCD не A70, а S70 (AT070TN92).
Видимо сейчас FriendlyARM поставляет tiny6410 с таким LCD.
Как переделать config файл не знаю. Может кто-то уже решил данную проблему?
0
  • avatar
  • Jekl
  • 16 ноября 2012, 17:05
Дык, возьмите конфиг под свой LCD.

cp config_mini6410_s70 .config
0
Спасибо за совет! На это у меня знаний хватает :)
Только вот в скачаном архиве ядра конфига под S70 я не нашел.
Подскажите где его можно взять.
0
У Вас диск с платой был? Возьмите оттуда архив с последним ядром. Там есть конфиг. У меня есть конфиги под версии 2.6.28.6 и 2.6.38.
0
Я правильно понял, что вместо архива ядра по ссылке в статье можно использовать архив ядра с прилагаемого диска?
0
Конечно. У меня на диске была более свежая версия ядра. Я его и использовал.
0
Спасибо, все получилось!
При установке Debian по статье в NAND только стандартное ядро и загрузчик?
Для экспериментов резервную копию NAND делать не нужно?
А то DNW это сделать не позволяет :(
0
В NAND-е ничего интересного нет. И дебиан туда можно поставить, если влезет.
0
Ссори! Я не то имел ввиду. Я установил Debian по статье. Все завелось. Теперь я хочу попробовать поиграться с Qtopia, Android и WinCE с установкой их во флеш память. После этого мне достаточно будет опять загрузить ядро Linux, как указано в статье во флеш и использовать SD карту с Debian или все прийдется делать сначала?
0
SD карту с настроенным дебианом храните в заначке или имейте копию, созданную с помощью команды dd. И делайте любые эксперименты. Потом достаточно загрузить в NAND U-Boot, linux kernel, вставить sd карту и все заработает.
0
Согласен, cp config_mini6410_s70 .config
но с touchscreen-1wire, Есть простой способ установки?
avatar,lexanet 11 декабря 2011, 07:14,Не настроен успешно。(
0
Вы таки пробовали метод ув. manitou от 11 декабря 2011, 15:46? У меня он, помнится, замечательно заработал.
0
Извините, мой русский бедных
0
декабря 2011, 15:46,Мой LXDE и XFC4 не имеет успеха, это может быть плохой русский, где ошибка
0
We will better understand you if you will write in English.
0
Есть какой-нибудь способ взаимодействия со светодиодами, кнопками на плате, GPIO и TV-Out в этой сборке?
0
У меня нету каталога /sys/class/gpio, в том-то и дело
0
Надо перекомпилировать ядро, включив в нем опцию, типа: CONFIG_GPIO_SYSFS=y.
make CROSS_COMPILE=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi- menuconfig
0
На прилагаемых дисках есть Linux -> Qtopia-2.2.0 в которой есть программка LEDtest. Позволяет управлять четырьмя светодиодами. Также можно управлять светодиодами через Веб страничку. Использует модуль /usr/bin/led. Я так понимаю, что ядра у Debi и тут одинаковы — значит возможность в ядре есть?
Увы, не силен в Linux, чтобы порыться в исходниках системы на прилагаемых дисках. Или я чето не то?
0
Напишите свой E-Mail, сюда или в личку, я отправлю Вам свое ядро.
0
Коллеги, помогите разобраться. Есть плата tiny6410. Все как в инструкции взял сд карту вкатил superboot, через нее записал u-boot-nand256 и ядро. после этого оно как бы должно уже грузится, но нет.
Смущает следующие: dnw.exe пишет в память и загрузчик и ядро и ФС по одному адресу 0х50200000.
Кроме того, при втыкании usb mini кабеля, windows вообще ничего не сообщает об устройстве. соответственно dnw.exe подключения по usb нет (гружу все через COM).
Куда копать? все образы брал с диска
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.