roboforum.ru

Технический форум по робототехнике.

QT для mini2440 под Qtopia

Re: QT для mini2440 под Qtopia

Resident » 12 июл 2010, 12:54

Resident писал(а):Результаты будут в понедельник утром
Облом :cry:
Точнее все таже illegal instuction при прикосновении

Добавлено спустя 8 минут 15 секунд:
Попробовал собрать билдрутом - вваливаются ерроры (

Re: QT для mini2440 под Qtopia

serg_io » 12 июл 2010, 13:10

можно проверить в какой именно библиотеке/программе проблема. arm-none-linux-gnueabi-readelf -A <Имя файла>. Нормально собранная библиотека/программа в первых строках покажет архитектуру V4, а неправильно V5 или ARM10TDMI. Точнее не могу сказать - нет под рукой на чем проверить

Re: QT для mini2440 под Qtopia

Resident » 12 июл 2010, 13:47

serg_io писал(а):arm-none-linux-gnueabi-readelf -A <Имя файла>.
Вообще бред какой-то
Делаю конфиг:
Код: Выделить всёРазвернуть
[root@localhost tslib]# ./configure CC=arm-none-linux-gnueabi-gcc CFLAGS="-O0 -march=armv4 -mtune=arm920t -pipe" CXX="arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe" -host=arm-none-linux-gnueabi -target=arm-none-linux-gnueabi -enable-static=no -enable-shared=yes -prefix /usr/local/tslib
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-none-linux-gnueabi-strip... arm-none-linux-gnueabi-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe... gcc3
checking for arm-none-linux-gnueabi-gcc... arm-none-linux-gnueabi-gcc
checking whether we are using the GNU C compiler... yes
checking whether arm-none-linux-gnueabi-gcc accepts -g... yes
checking for arm-none-linux-gnueabi-gcc option to accept ISO C89... none needed
checking dependency style of arm-none-linux-gnueabi-gcc... gcc3
checking how to run the C preprocessor... arm-none-linux-gnueabi-gcc -E
checking whether the C compiler supports -fvisibility=hidden... yes
checking whether to use -fvisibility=hidden... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking build system type... i686-pc-linux-gnu
checking host system type... arm-none-linux-gnueabi
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by arm-none-linux-gnueabi-gcc... /usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld
checking if the linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-nm -B
checking the name lister (/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-nm -B) interface... BSD nm
checking the maximum length of command line arguments... 1966080
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld option to reload object files... -r
checking for arm-none-linux-gnueabi-objdump... arm-none-linux-gnueabi-objdump
checking how to recognize dependent libraries... pass_all
checking for arm-none-linux-gnueabi-ar... arm-none-linux-gnueabi-ar
checking for arm-none-linux-gnueabi-strip... (cached) arm-none-linux-gnueabi-strip
checking for arm-none-linux-gnueabi-ranlib... arm-none-linux-gnueabi-ranlib
checking command to parse /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-nm -B output from arm-none-linux-gnueabi-gcc object... ok
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe accepts -g... (cached) yes
checking dependency style of arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe... (cached) gcc3
checking how to run the C++ preprocessor... arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe -E
checking for objdir... .libs
checking if arm-none-linux-gnueabi-gcc supports -fno-rtti -fno-exceptions... no
checking for arm-none-linux-gnueabi-gcc option to produce PIC... -fPIC -DPIC
checking if arm-none-linux-gnueabi-gcc PIC flag -fPIC -DPIC works... yes
checking if arm-none-linux-gnueabi-gcc static flag -static works... yes
checking if arm-none-linux-gnueabi-gcc supports -c -o file.o... yes
checking if arm-none-linux-gnueabi-gcc supports -c -o file.o... (cached) yes
checking whether the arm-none-linux-gnueabi-gcc linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... cross
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for ld used by arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe... /usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld
checking if the linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) is GNU ld... yes
checking whether the arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes
checking for arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe option to produce PIC... -fPIC -DPIC
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe PIC flag -fPIC -DPIC works... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe static flag -static works... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe supports -c -o file.o... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe supports -c -o file.o... (cached) yes
checking whether the arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for dlopen in -ldl... (cached) yes
checking for working alloca.h... yes
checking for alloca... yes
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether arm-none-linux-gnueabi-gcc needs -traditional... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... (cached) yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... no
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking return type of signal handlers... void
checking whether lstat dereferences a symlink specified with a trailing slash... no
checking whether stat accepts an empty string... yes
checking for vprintf... yes
checking for _doprnt... no
checking for bzero... yes
checking for gettimeofday... yes
checking for memmove... yes
checking for memset... yes
checking for munmap... yes
checking for select... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strtoul... yes
checking whether linear modules is requested... yes
checking whether dejitter module is requested... yes
checking whether linear-h2200 module is requested... yes
checking whether variance module is requested... yes
checking whether pthres module is requested... yes
checking whether ucb1x00 module is requested... yes
checking whether corgi module is requested... yes
checking whether collie module is requested... yes
checking whether h3600 module is requested... yes
checking whether mk712 module is requested... yes
checking whether arctic2 module is requested... yes
checking whether input module is requested... yes
checking where to place modules... ${libdir}/ts/
checking whether to enable debugging... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating etc/Makefile
config.status: creating plugins/Makefile
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating tslib-0.0.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

в итоге получаю либу...:
Код: Выделить всёРазвернуть
[root@localhost lib]# arm-none-linux-gnueabi-readelf -A libts.so
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "ARM10TDMI"
  Tag_CPU_arch: v5TE
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align8_needed: Yes
  Tag_ABI_align8_preserved: Yes, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_optimization_goals: Aggressive Speed
что-то я вообще ничего не понимаю....
checking whether arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe accepts -g... yes

Re: QT для mini2440 под Qtopia

serg_io » 12 июл 2010, 14:50

попробуй еще добавить LDFLAGS=-march=armv4 -mtune=arm920t в конфигурацию

Re: QT для mini2440 под Qtopia

Resident » 12 июл 2010, 20:52

не помогло :(
Странно...
Код: Выделить всёРазвернуть
checking if the linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) is GNU ld... yes
checking whether the arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes
checking for arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe option to produce PIC... -fPIC -DPIC
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe PIC flag -fPIC -DPIC works... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe static flag -static works... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe supports -c -o file.o... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe supports -c -o file.o... (cached) yes
checking if the linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) is GNU ld... yes
checking whether the arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes
checking for arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe option to produce PIC... -fPIC -DPIC
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe PIC flag -fPIC -DPIC works... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe static flag -static works... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe supports -c -o file.o... yes
checking if arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe supports -c -o file.o... (cached) yes
checking whether the arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe linker (/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin/ld) supports shared libraries... yes

Re: QT для mini2440 под Qtopia

serg_io » 12 июл 2010, 22:09

Прикреплен мой файл конфигурации Buildroot 2010.05. Для удачной сборки важно чтобы toolchain располагался в папке /opt/codesourcery (компилятор будет находится в /opt/codesourcery/bin/arm-none-linux-gnueabi-gcc).
ЗЫ: файл переименовать в .config и положить в корневую папку Buildroot
Вложения
config.doc
(17.25 КиБ) Скачиваний: 385

Re: QT для mini2440 под Qtopia

Resident » 12 июл 2010, 22:47

serg_io писал(а):Для удачной сборки важно чтобы toolchain располагался в папке /opt/codesourcery (компилятор будет находится в /opt/codesourcery/bin/arm-none-linux-gnueabi-gcc).
Я пользуюсь френдлиармовский компилятором, который подефолту кидается в usr/local/arm/4.3.2/...
Надеюсь это не проблема... (разумеется я его скопирую куда надо)

ЗЫ и все-таки хотелось бы узнать где-же все-таки зарыта собака (правильный флаг) компиляции этой клятой tslib!!! :evil:

Re: QT для mini2440 под Qtopia

Resident » 14 июл 2010, 17:14

serg_io писал(а):Прикреплен мой файл конфигурации Buildroot 2010.05.
rootfs собралась, но судя по всему без ядра, а с моим ядром 2.6.32 оно дружить не захотело (((
Код: Выделить всёРазвернуть
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.
Backtrace:
[<c0035270>] (dump_backtrace+0x0/0x10c) from [<c03f9214>] (dump_stack+0x18/0x1c)
r7:00000000 r6:c0582390 r5:c0581b20 r4:c05441a0
[<c03f91fc>] (dump_stack+0x0/0x1c) from [<c03f9264>] (panic+0x4c/0x134)
[<c03f9218>] (panic+0x0/0x134) from [<c00305a4>] (init_post+0xec/0x178)
r3:00000000 r2:c3a0be00 r1:c05b8000 r0:c04bf0dc
[<c00304b8>] (init_post+0x0/0x178) from [<c00084c4>] (kernel_init+0xf4/0x124)
r5:c0020b94 r4:c0020b94
[<c00083d0>] (kernel_init+0x0/0x124) from [<c004d1a4>] (do_exit+0x0/0x62c)
r7:00000000 r6:00000000 r5:00000000 r4:00000000

И попытке добавить в make menuconfig ядро для компиляции uImage мейк при старте выдает еррор
NO U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting.

Попросили почекать - почекал
BR2_TARGET_UBOOT_BOARDNAME="$(BOARD_NAME)" =======> BR2_TARGET_UBOOT_BOARDNAME="mini2440"

Запустилось, ждем результатов...

Мысли вслух: * а может уже просто взять правильно-откомпиленую либу ts из билдрута и прикрутить к Qt...???*

Добавлено спустя 20 минут 34 секунды:
Код: Выделить всёРазвернуть
make[1]: Entering directory `/home/gambit/buildroot-2010.05/output/build/u-boot-2010.03'
make[1]: *** Нет правила для сборки цели `mini2440_config'.  Останов.
make[1]: Leaving directory `/home/gambit/buildroot-2010.05/output/build/u-boot-2010.03'
make: *** [/home/gambit/buildroot-2010.05/output/build/u-boot-2010.03/.configured] Ошибка 2

Re: QT для mini2440 под Qtopia

serg_io » 14 июл 2010, 20:57

Ядро не имеет значения, у меня тоже 2.6.32 и все работает. Я вообще предлагаю не использовать эту файловую систему для начала, а взять от туда только QT и tslib. А твоя проблема похоже в неправильных параметрах bootargs uboot. Я, кстати, для разработки ПО не использую NAND flash вообще, ядро гружу через TFTP, файловую систему монтирую через NFS. Очень удобно, быстро и NAND flash целая :)

Re: QT для mini2440 под Qtopia

setar » 14 июл 2010, 21:27

serg_io писал(а):Прикреплен мой файл конфигурации Buildroot 2010.05.

на будущее: осмыслить Ваш конфиг не в состоянии никто (в здравом уме),
рекомендую показывать Ваши изменения относительно базового репозитария
репозитарий тут
# git clone git://repo.or.cz/u-boot-openmoko/mini2440.git
посмотреть изменения так:
# git diff

rootfs собралась, но судя по всему без ядра, а с моим ядром 2.6.32 оно дружить не захотело (((

рутовая файловая система вообще никогда как правило не содержит ядра, особенно на embedded устройстве
ядро лежит отдельно в своем разделе mtd
у Вас проблема "No init found" это значит что файл на который указывает init= отсутствует или рутовая файловая система подмонтирована в нечитаемом виде
И попытке добавить в make menuconfig ядро для компиляции uImage мейк при старте выдает еррор
NO U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting.

Народ, я для кого статьи пишу ?
вот тут зеленым по белому forum96/topic8415.html
меню конфиг запускается так
# CROSS_COMPILE=armv4tl-softfloat-linux-gnueabi- ARCH=arm make O=../kernel-bin/ INSTALL_MOD_PATH=../modules/ menuconfig
кстати поясните вразумительно что Вы пересобираете в ядре ? зачем вам его собирать ???

если это действительно нужно сначала собираем ядро zImage
а потом делаем его uImage (mkimage берем из uboot исходников папка tools ) :
./mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d ./zImage ./uImage

P.S. похоже тему пора переименовывать в общие вопросы

Добавлено спустя 8 минут 3 секунды:
serg_io писал(а):boot. Я, кстати, для разработки ПО не использую NAND flash вообще, ядро гружу через TFTP, файловую систему монтирую через NFS. Очень удобно, быстро и NAND flash целая :)

:) ага, попробуй рассказать как сделать rootfs на NAND через u-boot
NFS юзать проще пареной репы ;)

MINI2440 # setenv bootargs console=ttySAC0,115200 noinitrd init=/linuxrc mini2440=0tb root=/dev/nfs rw nfsroot=192.168.150.79:/tftproot/root_qtopia ip=192.168.150.33
здесь root_qtopia - каталог


а вот так tftp
MINI2440 # setenv ipaddr 192.168.150.33
MINI2440 # setenv serverip 192.168.150.79
MINI2440 # tftpboot 0x00500000 root_qtopia-128M.img
а здесь root_qtopia-128M.img - файл


прикол про юзание nand rootfs в следующем : dfu-tools аплоадит файл в оперативку причем начиная со средины (0x32000000) оперативного пространства примерно 25МБ а rootfs примерно 125МБ
нужно нарезать на кусочки и копировать со смещениями.
подготавливаю статью
кто подскажет путь проще - буду благодарен

Re: QT для mini2440 под Qtopia

serg_io » 14 июл 2010, 23:06

Насчет проблемы, когда rootfs больше размера RAM я как-то никогда не задумывался. Честно говоря не представляю что туда можно напихать в таком объеме для такого девайса.
ЗЫ: Конфиг вообще от Buildroot. Там в репозитории есть Buildroot?

Re: QT для mini2440 под Qtopia

Resident » 14 июл 2010, 23:50

setar писал(а):
И попытке добавить в make menuconfig ядро для компиляции uImage мейк при старте выдает еррор
NO U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting.

Народ, я для кого статьи пишу ?
вот тут зеленым по белому forum96/topic8415.html
меню конфиг запускается так
# CROSS_COMPILE=armv4tl-softfloat-linux-gnueabi- ARCH=arm make O=../kernel-bin/ INSTALL_MOD_PATH=../modules/ menuconfig
Ошибку выдавало при мейке buildroot-а а не отдельно убута.
Отдельно убут с ядром я уже давно собрал.
serg_io писал(а):Я вообще предлагаю не использовать эту файловую систему для начала, а взять от туда только QT и tslib.
Так и сделаю. :)

Re: QT для mini2440 под Qtopia

setar » 14 июл 2010, 23:58

buildroot`у не нужен menuconfig - он не должен собирать ядро
если он это пытается делать - нужно заремарить

Добавлено спустя 2 минуты 16 секунд:
Хм, посмотрел конфиг, действительно на ядерный не похоже :)
буду ставить себе и смотреть что они там навернули ...

Re: QT для mini2440 под Qtopia

Resident » 15 июл 2010, 00:08

setar писал(а):buildroot`у не нужен menuconfig - он не должен собирать ядро
если он это пытается делать - нужно заремарить
Что значит не нужен menuconfig??? :shock:
menuconfig это первое дело в билдруте!!!
и билдить от может ВСЕ! и ядро, и убут, и фс со всякими там плагинами, либами и другими наворотами типо qt.
Вобщем полный фарш :)
И всё это в менюконфиге прописывается, и все конфиги нормально читаются в томже менюконфиге (сорь за тавтологию)...
Вот так вот 8)

ЗЫ Эххх хотелось собрать всё и сразу в одной кучке... а получилось как всегда. :(
Ладно, пошел дальше ковыряться...

Добавлено спустя 3 минуты 41 секунду:
setar писал(а): :) ага, попробуй рассказать как сделать rootfs на NAND через u-boot

кстати тотже билдрут может и для нанда ФС сбилдить.
Вот только конфиг правильный для миньки сделать, и все будет в шоколаде :)

Re: QT для mini2440 под Qtopia

setar » 15 июл 2010, 10:09

ФС билдить не нужно :) она делается ручками в 10 строчек , позже опишу
а вот залить её - задача!


Rambler\'s Top100 Mail.ru counter