Cirrus Logic EDB93xx Development Kit мой HOWTO + add Konq/Embedded. Или как я сделал это.

10 views
Skip to first unread message

Edw@rd

unread,
Sep 20, 2007, 7:43:39 AM9/20/07
to tion_sbc
Имеется в наличии комплект ТИОН-Про с процессором ЕР9315.
Требуется запустить эту платформу с нормальным веб-браузером (потому
что присутствующий там uBrowser - текстовый, да и тот не
функционирует). В качестве веб-браузера будет использоваться Konqueror
embedded.

Для настройки и компиляции GNU/Linux Embedded под ARM процессор
потребуется скачать с сайта http://arm.cirrus.com/ Cirrus Logic
EDB93xx Development Kit:
arm-elf_gcc-3.2.1-full.tar.bz2
arm-linux-gcc-4.1.1-920t.tar.bz2
linux_1-0-0-src.tar.bz2
пакеты для построения системы.

Браузер взять здесь http://www.konqueror.org/embedded/:
konqueror-embedded-snapshot-20030705.tar.gz
UTF8 *.qpf шрифт - FreeSansFont_20031008_all.tgz
Вариантов внедрения Konq/Emb два - вручную и автоматически. Если
вручную, то потом будет нужно все необходимые файлы скопировать в
целевую систему. Если автоматически, то система соберётся практически
сама.

/*-----------Построение Linux Embedded--------------------*/
перейти в корневой каталог
# cd /

скопировать туда тулчейн (toolchain) из места, где лежат скачанные из
инета архивы
# cp <...>/arm-elf_gcc-3.2.1-full.tar.bz2 /
# cp <...>/arm-linux-gcc-4.1.1-920t.tar.bz2 /

и распаковать это дело
# tar jxvf arm-elf_gcc-3.2.1-full.tar.bz2
# tar jxvf arm-linux-gcc-4.1.1-920t.tar.bz2

переместить кросс-компилятор в нужную дерикторию, иначе оно работать
не будет
# mv 4.1.1-920t/ /usr/local/arm/

сделать себе какой-нибудь рабочий каталог и перейти туда
# mkdir /home/user/work
# cd /home/user/work

скопировать туда Buildroot целевой системы
# cp <...>/linux_1-0-0-src.tar.bz2 ./

и разархивировать здесь же
# tar jxvf linux_1-0-0-src.tar.bz2

если есть уже скачанные пакеты, то создать каталог, куда будут
положены пакеты, необходимые для построения системы
# mkdir linux-crater_1-0-0/dl

и скопировать туда эти пакеты
# cp <...>/dl/* /home/user/work/linux-crater_1-0-0/dl/

в противном случае эти пакеты будут автоматически загружены по сети.
Для этого должен быть настроен инет.

Теперь можно приступить к построению системы
# cd linux-crater_1-0-0

определить путь к тулчейну
# export PATH=/usr/local/arm/4.1.1-920t/bin/:$PATH

сконфигурировть требуемую систему, для этого могут понадобиться (если
они не установлены) пакеты ncurses(curses), bison, flex.
# make menuconfig

тут необходимо выбрать платформу 9312
опционально здесь так же можно добавить размер ramdisk'a (мах 32768) и
кол-во inod'ов (2048), для того, чтобы в дальнейшем можно было
добавлять файлы непосредственно в образ ramdisk'a
сохранить конфигурацию.

/* опционально
//---добавить в OPIE например игрушку MineSweeper
в /home/user/work/linux-crater_1-0-0/packages/opie.config - добавить
MINESWEEP
в /home/user/work/linux-crater_1-0-0/packages/opie.mk - добавить к "...
$(TARGET_STRIP)..." и к "...cp-..." - minesweep
$(TARGET_STRIP) minesweep advancedfm kbill opie-eye \
opieplayer qpe sysinfo drawpad networksettings \
opie-eye_slave opie-sheet opierec \
ubrowser addressbook opie-console \
opie-update-symlinks patience sound; \
cp -dpf minesweep advancedfm kbill opie-eye opie-sh-howto.sh \
opieplayer qpe sysinfo drawpad
networksettings \
opie-eye_slave opie-sheet opierec qpe-
reorgfiles \
ubrowser addressbook getprofile opie-
console \
opie-reorgfiles opie-update-symlinks
patience sound \
$(TARGET_DIR)/opt/QtPalmtop/bin/ \
из /home/user/work/linux-crater_1-0-0/dl/opie-1.2.2.tar.bz2
скопировать в /home/user/work/linux-crater_1-0-0/packages/opie-base/
opt/QtPalmtop/apps/Games файл minesweep.desktop
из /home/user/work/linux-crater_1-0-0/dl/opie-1.2.2.tar.bz2
скопировать в /home/user/work/linux-crater_1-0-0/packages/opie-base/
opt/QtPalmtop/pics/ каталог minesweep/

//---назначить вместо динамического статический IP-адрес
отредактировать файл /home/user/work/linux-crater_1-0-0/packages/
rootfs/generic/target_skeleton/etc/rc.sysinit, в котором
закомментировать
# if [ "x`grep ip= /proc/cmdline`" = "x" ]
# then
# udhcpc -i eth0 -b -p /var/run/udhcpc.eth0.pid >/dev/null 2>&1
# fi
и вставить после этого
ifconfig eth0 192.168.10.10 up

//---добавить запуск по загрузке системы своей проги
в том же файле rc.sysinit дописать в конце строку
programm >/null &
при этом свою прогу положить потом в целевую систему в каталог /sbin и
присвоить ей атрибуты
# chmod a+x programm

//---тарировка тачскрина
если имеется несколько однотипно подключеных девайсов, имеет смысл
провести тарировку сенсорной панели на одном девайсе, а потом списать
оттуда файл /etc/pointercal и скопировать его в /home/user/work/linux-
crater_1-0-0/packages/rootfs/generic/target_skeleton/etc/pointercal
*/

Теперь надо собрать образ системы.
(тут возможны три варианта.
Первый - ставить браузер вручную. Сейчас просто запустить мэйк и потом
скомпилировав Konq/Emd скопировать его и другие необходимые файлы в
готовую систему.
Второй - ставить браузер автоматически. Сейчас перейти к компиляции
Konq/Emd, настроить там пути для инсталляции непосредственно в образ
собираемой системы, а так же шрифтов, а потом вернуться к этой точке.
Третий - вообще не ставить браузер и просто выполнить мэйк)
# make

можно пойти покурить в районе минут 40-60, получили в images/9312 три
файла: ramdisk.gz, zImage, redboot.bin
На этом сборка системы закончена.

/*--------------------Как поставить в систему веб браузер konqueror
embedded:---------------------*/
скачать из инета архив konqueror-embedded-snapshot-20030705.tar.gz
скопировать его в домашнюю директорию
# cp <...>/konqueror-embedded-snapshot-20030705.tar.gz /home/user/work

разархивировать его
# tar zxvf konqueror-embedded-snapshot-20030705.tar.gz

перейти в распакованный каталог
# cd konqueror-embedded-snapshot-20030705

установить переменные окружения
# export PATH=/usr/local/arm/4.1.1-920t/bin:$PATH
# export QTDIR=/home/user/work/linux-crater_1-0-0/build/qt-2.3.10
# export PATH=$QTDIR/bin:$PATH
# export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
# export QPEDIR=${QTDIR}
# export QPEINC=${QTDIR}/include
# export QPELIB=${QTDIR}/lib
# export QTINC=${QTDIR}/include
# export QTLIB=${QTDIR}/lib

можно создать текстовый файл, обозвать его например env.sh такого
содержания:
#! /bin/bash
export PATH=/usr/local/arm/4.1.1-920t/bin:$PATH
export QTDIR=/home/user/work/linux-crater_1-0-0/build/qt-2.3.10
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QPEDIR=${QTDIR}
export QPEINC=${QTDIR}/include
export QPELIB=${QTDIR}/lib
export QTINC=${QTDIR}/include
export QTLIB=${QTDIR}/lib

и запускать его потом командой (обязательно с точкой с пробелом
впереди)
# . ./env.sh

теперь надо сконфигурировать построение пакета
# CC=arm-linux-gcc CXX=arm-linux-g++ CXXFLAGS=-ldl ./configure --
target=arm-linux --host=i386-gnu --enable-embedded --enable-qt-
embedded --with-extra-libs=/home/user/work/linux-crater_1-0-0/build/
root/lib --with-extra-includes=/home/user/work/linux-crater_1-0-0/host/
include:/home/user/work/linux-crater_1-0-0/build/qt-2.3.10/include --
with-qt-dir=/home/user/work/linux-crater_1-0-0/build/qt-2.3.10 --with-
qt-include=/home/user/work/linux-crater_1-0-0/build/qt-2.3.10/include
--with-qt-libraries=/home/user/work/linux-crater_1-0-0/build/qt-2.3.10/
lib --without-ssl --enable-mt --prefix=<ROOT> --enable-large-icons

или опять же вбить эту команду в файл, например conf.sh, который
выполнить командой
# . ./conf.sh

(Вручную)
Если внедрение браузера в систему делать вручную, то можно вообще не
указывать префикс, тогда понадобится скопировать необходимые файлы как
будет указано ниже. Или же в ключ --prefix=<...> нужно вбить корневой
каталог целевой системы, куда будет инсталлироваться браузер.
Например, это может быть путь к предварительно расжатому и
смонтированному рамдиску, допустим --prefix=/mnt/cf, если потом
копировать файлы вручную;

(Автоматически)
в ключ --prefix=<...> нужно вбить путь к корневому каталогу в crater
buildroot'e - тогда это будет --prefix=/home/user/work/linux-
crater_1-0-0/build/root.

запустить компиляцию
# make

тут будет вываливаться тонны ошибок, которые надо пофиксить, поудаляв
в исходниках точки с запятой, и запуская мэйк снова.
(может быть потребуется в src/Makefile убрать в строке "all_libraries
= бла-бла-бла..." ключ " -L${exec_prefix}/lib ", иначе оно лезло не в
те библтотеки, почему так случалось не разбирался.
кроме этого записать в /usr/lib/libjpeg* нужные библиотеки от
тулчейна, предварительно сохранив куда-нить системные, с тем, чтобы
потом вернуть их на старое место)

когда компиляция наконец-то закончится успешно, выполнить
# make install

(Автоматически)
,который установит браузер и другие нужные ему файлы в корневой
каталог, заданный ключом --prefix.

(Вручную)
или если --prefix=<ROOT> не был указан, то надо ручками скопировать
следующие файлы (которые получились в результате компиляции) в целевую
систему (где <ROOT> - корень целевой системы):
<ROOT>/opt/QtPalmtop/apps/Applications/konqueror.desktop
<ROOT>/opt/QtPalmtop/bin/arm-linux-konqueror
<ROOT>/opt/QtPalmtop/pics/konqueror.png
<ROOT>/opt/QtPalmtop/share/apps/khtml/css/html4.css
<ROOT>/opt/QtPalmtop/share/apps/konq-embed/actions/big/
<ROOT>/opt/QtPalmtop/share/apps/kssl/caroot/ca-bundle.crt
<ROOT>/opt/QtPalmtop/share/config/charsets

переименовать исполняемый файл
# mv <ROOT>/opt/QtPalmtop/bin/arm-linux-konqueror <ROOT>/opt/QtPalmtop/
bin/konqueror

//---Добавить пути к KDE
(Вручную)
в файле <ROOT>/sbin/start-opie добавить после export OPIEDIR=...
строку
export KDEDIR=$OPIEDIR

(Автоматически)
в файле /home/user/work/linux-crater_1-0-0/packages/rootfs/generic/
target_skeleton/sbin/start-opie добавить после export OPIEDIR=...
строку
export KDEDIR=$OPIEDIR

//---Добавить UTF8 шрифт
(Вручную)
Для отображения русских букв (в данном случае только UTF8) надо из
архива FreeSansFont_20031008_all.tgz скопировать шрифты без буквы "t"
в названии в каталог <ROOT>/usr/qt/lib/fonts/

(Автоматически)
из архива FreeSansFont_20031008_all.tgz скопировать шрифты без буквы
"t" в названии в каталог /home/user/work/linux-crater_1-0-0/build/
qt-2.310/lib/fonts
в файле /home/user/work/linux-crater_1-0-0/packages/qt.mk добавить
строку копирования шрифтов, так же как и *fixed*, только *freesans*

Если всё делалось автоматически, то надо перейти в crater и там
запустить мэйк. Браузер Konq/Emb будет встроен в систему аж бегом.
Если всё копировалось вручную, то и всё, типа браузер установился и
можно запускаться.

//---Сохранить закладку странички
В запущеной системе набрать адрес страницы и в меню сохранить её.
Скопировать в систему разработки файл /.kde/share/qpps/konq-embed/
bookmarks.xml
В целевой системе добавить этот файл с полным путём в образ рамдиска.

/*--------------Редактирование образа ramdisk'а--------------*/
создать каталог куда будет монтироваться образ
# mkdir /mnt/cf

скопировать в /mnt из crater/images/<платформа>/ramdisk.gz упакованный
образ диска и распаковать его
# gunzip ramdisk.gz

замаунтитить его на каталог
# mount -o loop ramdisk /mnt/cf

Теперь можно копировать и редактировать файлы. Отредактировать /etc/
rc.sysinit на предмет статического айпишника и запуска
пользовательской проги, скопировать на диск пользовательскую прогу,
файлы для браузера.
Если при сборке не был явно указан объём рамдиска, то он делается
минимально возможным, и дописать новых файлов в существующий рамдиск
не удастся. Только удаление и редактирование существующих.

После этого размонтировать диск
# umount ramdisk

сжать его обратно
# gzip -9 ramdisk

Другой вариант состоит в том, что можно сначала построить систему,
затем перейти в каталог crater/build/root, там отредактировать
необходимые файлы, скопировать в этот каталог что нужно, и потом опять
запустить crater/make (или выполнить # genext2fs -d build/root -U -b
32768 images/9312/ramdisk), который и создаст новый crater/images/
<платформа>/ramdisk.gz

/*-----------------Калибровка сенсорной панели------------------*/
Подключить USB клавиатуру. Загрузить систему в рабочем режиме,
переключиться во второй терминал Ctrl+Alt+F2. Запустить ts_calibrate,
откалиброваться. Переключиться в первый терминал Ctrl+Alt+F1.

(С) Edw@rd

Reply all
Reply to author
Forward
0 new messages