ЗАО «ЗЭО»
Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: Andrew от 25 Июня, 2009, 16:16:03
-
Здравтсвуйте! У меня тион про2.
Собираю ядро кратером 1.0.0
при команде makeвыдает ошибку:
S -o i386/resolve.o
i386/resolve.S: Assembler messages:
i386/resolve.S:27: Error: unrecognized symbol type ""
i386/resolve.S:30: Error: bad instruction `pusha'
i386/resolve.S:31: Error: bad instruction `lea 0x20(%esp),%eax'
i386/resolve.S:32: Error: bad instruction `pushl 4(%eax)'
i386/resolve.S:33: Error: bad instruction `pushl (%eax)'
i386/resolve.S:36: Error: bad instruction `call .L24'
i386/resolve.S:38: Error: bad instruction `popl %ebx'
i386/resolve.S:39: Error: bad instruction `addl $_GLOBAL_OFFSET_TABLE_+[.-.L24],%ebx'
i386/resolve.S:40: Error: bad instruction `movl _dl_linux_resolver'
i386/resolve.S:41: Error: bad instruction `call *%ebx'
i386/resolve.S:45: Error: bad instruction `movl %eax,0x28(%esp)'
i386/resolve.S:47: Error: bad instruction `addl $0x8,%esp'
i386/resolve.S:48: Error: bad instruction `popa'
i386/resolve.S:49: Error: bad instruction `ret $4'
make[3]: *** [i386/resolve.o] Error 1
make[3]: Leaving directory `/root/crater-1.0.0_svn557/build/uClibc-0.9.28.3/ldso/ldso'
make[2]: *** [ldso] Error 2
make[2]: Leaving directory `/root/crater-1.0.0_svn557/build/uClibc-0.9.28.3/ldso'
make[1]: *** [_dir_ldso] Ошибка 2
make[1]: Leaving directory `/root/crater-1.0.0_svn557/build/uClibc-0.9.28.3'
make: *** [/root/crater-1.0.0_svn557/build/root/lib/libc.so.0] Ошибка 2
Как ее исправить?
-
Уже решили?
-
нет. удалось собрать ядро только под кратером 1.0.3
но с ним проблемы - убут, который он выплевывает странно работает. наложить патч под тион 2 не удается. Ядро успешно заливается под бутом 1.3.3, но пишет starting kernel и висит!!!
Что делать не знаю
-
При сборке crater-1.0.0_svn557 (1) какие переменные окружения (команда env), (2) конфигурацию из файла .config
-
env:
KDE_MULTIHEAD=false
SSH_AGENT_PID=3948
DM_CONTROL=/var/run/xdmctl
SHELL=/bin/bash
DESKTOP_STARTUP_ID=
TERM=xterm
XDM_MANAGED=/var/run/xdmctl/xdmctl-:0,maysd,mayfn,sched,rsvd,method=classic
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/root/.gtkrc-2.0:/root/.kde/share/config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/root/.gtkrc:/root/.kde/share/config/gtkrc
GS_LIB=/root/.fonts
WINDOWID=56738362
OLDPWD=/root
KDE_FULL_SESSION=true
USER=root
SSH_AUTH_SOCK=/tmp/ssh-yYOeyD3908/agent.3908
SESSION_MANAGER=local/Andrew-Pavlov:/tmp/.ICE-unix/4002
DESKTOP_SESSION=kde
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/root/crater-1.0.0_svn557
LANG=ru_RU.KOI8-R
KDE_SESSION_UID=0
PS1=\h:\w\$
HOME=/root
SHLVL=2
XCURSOR_THEME=default
LOGNAME=root
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-oDXDGGfMbu,guid=288ec8fb1d9f369629f6ca8e4a4301dc
DISPLAY=:0.0
COLORTERM=gnome-terminal
_=/usr/bin/env
.config:
не нашел
-
.config:
#
# Automatically generated make config: don't edit
#
HAVE_DOT_CONFIG=y
#
# Build options
#
ELF_TOOLCHAIN_DIR="/usr/local/arm/3.2.1-elf"
TOOLCHAIN_DIR="/4.1.1-920t"
DOWNLOAD_SITE="http://arm.cirrus.com/files/linux/packages"
JLEVEL=1
#
# Linux kernel for EP9XXX
#
# KERNEL_VERSION_2_6_8_1 is not set
# KERNEL_VERSION_2_6_17_14 is not set
KERNEL_VERSION_2_6_20_4=y
DEFAULT_KERNEL_VERSION="2.6.20.4"
PACKAGE_ZIMAGE=y
# KERNEL_EP9301 is not set
# KERNEL_EP9302 is not set
# KERNEL_EP9302A is not set
# KERNEL_EP9307 is not set
# KERNEL_EP9307A is not set
# KERNEL_EP9312 is not set
# KERNEL_TION is not set
# KERNEL_TION_PRO is not set
KERNEL_TION_PRO2=y
# KERNEL_EP9315 is not set
# KERNEL_EP9315A is not set
ZIMAGE_CONFIG_FILE=""
TARGET_ZIMAGE_COPYTO=""
DEFAULT_PACKAGE_BSP="9312"
#
# Bootloader Options
#
PACKAGE_DOWNLOAD=y
TARGET_DOWNLOAD_COPYTO=""
# PACKAGE_REDBOOT is not set
#
# Individual Package Selection for the target
#
#
# Basic Root Filesystem
#
PACKAGE_BUSYBOX=y
PACKAGE_BUSYBOX_CONFIG="packages/busybox/busybox.config"
PACKAGE_UCLIBC=y
ENABLE_LOCALE=y
PACKAGE_ZLIB=y
#
# Other
#
PACKAGE_MODULE_TOOLS=y
PACKAGE_GDB_SERVER=y
PACKAGE_OPENSSL=y
PACKAGE_GREP=y
#
# Group packages
#
NETWORK_SUPPORT=y
# PACKAGE_WIRELESS_TOOLS is not set
# PACKAGE_LINUX_WLAN_NG is not set
# PACKAGE_RT73_LINUX is not set
# PACKAGE_WPA_SUPPLICANT is not set
PACKAGE_LIBPCAP=y
# AUDIO_SUPPORT is not set
GRAPHIC_SUPPORT=y
PACKAGE_QT=y
PACKAGE_OPIE=y
PACKAGE_LIBPNG=y
PACKAGE_LIBJPEG=y
HW_SUPPORT=y
PACKAGE_TSLIB=y
# PACKAGE_IRDA_TOOLS is not set
PACKAGE_MTD=y
PACKAGE_MTD_FLASH_ERASE=y
PACKAGE_MTD_FLASH_ERASEASLL=y
PACKAGE_MTD_FLASH_INFO=y
PACKAGE_MTD_FLASH_LOCK=y
PACKAGE_MTD_FLASH_UNLOCK=y
PACKAGE_MTD_FLASHCP=y
PACKAGE_MTD_JFFS2DUMP=y
PACKAGE_MTD_SUMTOOL=y
# PACKAGE_MTD_FTL_CHECK is not set
# PACKAGE_MTD_FTL_FORMAT is not set
# PACKAGE_MTD_NFTL_FORMAT is not set
# PACKAGE_MTD_NFTLDUMP is not set
PACKAGE_MTD_MKFSJFFS2=y
# PACKAGE_MTD_MKFSJFFS is not set
# PACKAGE_MTD_NANDDUMP is not set
# PACKAGE_MTD_NANDWRITE is not set
PACKAGE_MTD_MTD_DEBUG=y
PACKAGE_MTD_DOCFDISK=y
# PACKAGE_MTD_DOC_LOADBIOS is not set
PACKAGE_FBSET=y
PACKAGE_LIRC=y
# PACKAGE_LIRC_EDB9302A is not set
# PACKAGE_LIRC_EDB9307 is not set
# PACKAGE_LIRC_EDB9307A is not set
PACKAGE_LIRC_EDB9312=y
# PACKAGE_LIRC_EDB9315 is not set
# PACKAGE_LIRC_EDB9315A is not set
PACKAGE_LIBUSB=y
PACKAGE_USBUTILS=y
PACKAGE_DOSFS_TOOLS=y
PACKAGE_E2FSPROGS=y
#
# Example Applications
#
PACKAGE_FUBAR=y
#
# Target Options
#
TARGET_ROOTFS_EXT2=y
TARGET_ROOTFS_EXT2_BLOCKS=0
TARGET_ROOTFS_EXT2_INODES=0
TARGET_ROOTFS_EXT2_RESBLKS=0
TARGET_ROOTFS_EXT2_SQUASH=y
# TARGET_ROOTFS_EXT2_GZ is not set
TARGET_ROOTFS_EXT2_COPYTO=""
TARGET_ROOTFS_JFFS2=y
TARGET_ROOTFS_JFFS2_EBSIZE=0x20000
TARGET_ROOTFS_JFFS2_PAD=y
TARGET_ROOTFS_JFFS2_PADSIZE=0x0
TARGET_ROOTFS_JFFS2_SQUASH=y
TARGET_ROOTFS_JFFS2_COPYTO=""
# TARGET_ROOTFS_CRAMFS is not set
-
Попробуйте без ENABLE_LOCALE
PS. В KDE под root'ом?!
-
не помогло:((
Да, под ним:))
-
LIRC тоже выключите, потом 'make clean' и 'make'.
Стоило начать с "конфигурации по умолчанию".
-
собрал нулевое (все отключено) ядро 6.20.4 под кратером 1-0-3. Все успешно. переделал mkimage в uImage & uramdisk.gz. Загрузил все во флешь. перезагрузил... пишет:
U-Boot 1.3.3-svn602 (Jun 17 2009
Load Address: 00000000
Entry Point: 00000000EP9315 rev. E2
Verifying Checksum ... OK 64 MB
Flash: 6
Out: serial
Err: serial
Hit any key to stop autoboot: 0
Copy ramdisk to RAM...
## Booting kernel from Legacy Image at 60080000 ...
Image Name: Kernelllll
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2123104 Bytes = 2 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
## Loading init Ramdisk from Legacy Image at 00800000 ...
Image Name: RammmmmmDisk
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 179171 Bytes = 175 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Starting kernel ...
и висит!!!!
и так со всеми ядрами!
подскажите, что я не так делаю???
-
Возможно, выбрали 9315?
Ядро собирается и без Crater'а.
-
Выбрал именно 9315 - так написано на плате.
Собрать-то я его могу и без кратера, а как потом к нему приделать рамдиск?!
-
У них не такая уж сильная зависимость.
Вы выбрали edb9315 (отладочная плата), а на плате ep9315 (процессор)
см. http://www.zao-zeo.ru/dokuwiki/doku.php/linux-faq#собранные_образы_ядра_linux_для_edb9315_не_работают_на_моей_плате
-
Спасибо.
делаю make menuconfig -> выбираю kernel options -> EP9315 Правильно?
а в настройках убута EPB9312?
-
Мы _не изменяли_ Crater 1.0.3, поэтому:
1. Ядро собирается отдельно, при использовании патча с нашего сайта, будет tion-pro2_defconfig
2. U-Boot, если вам это нужно, собирается отдельно (и не 4.1.1-920t), патч на сайте
3. КФС (ramdisk) можно собирать многими способами, лишь бы она была для ARM и с поддерживаемым ядром ABI
Я изменял Crater 1.0.0, который помечен "svn". Может быть современем обновлю, хотя смысла в этом особого не вижу.
В Crater 1.0.0 вы можете собрать OPIE и ядро, за все возможные варианты конфигурации не ручаюсь, но с "конф. по умолчанию"
должно собираться.
-
Хорошо, а как мне накрутить на стандартную конфигурацию, допустим, нормальный браузер, миником, QT и т.д.?
-
Собирать.
QT можно собрать из Crater, Konqueror тоже собирается
http://groups.google.com/group/tion_sbc/browse_thread/thread/c31b439392daff2c#
Более новое QT можно собрать отдельно, minicom придется тоже отдельно.
Можно ничего не собирать и поставить Debian для armel.
-
это интересно, а как поставить Debian? развернуть на КФС на компакт-флеше?
-
Да, или на USB-Flash.
-
Здравствуйте!
Я использую Тион-Про. Осуществляю сборку ядра и КФС кратером как описано здесь http://www.zao-zeo.ru/dokuwiki/doku.php/crater. На десктопе - Ubuntu 9.04. Ядро собралось рабочее, возникли проблемы с КФС - собирал ext2 - u_ramdisk.gz.
Настройки целевой платы:
Kernel Version (linux-2.6.20.21) --->
Board / Processor Type (Tion-Pro) --->
Гружу собранные ядро и образ диска КФС в RAM с tftp-сервера, задаю соответствующие адреса в команде bootm. Ядро загружается успешно, при загрузке КФС проблемы с выполнением процесса, зашитого в init (линк на busybox). Лог ошибки:
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 132K
/sbin/init: can't Kernel panic - not syncing: Attempted to kill init!
resolve symbol ' __ctype_b'
Еще: на плате стоит проц EP9315, а собранный образ КФС в итоге лежит в ...images/9312/
Пробовал собирать с настройкой Board / Processor Type (EP9315), КФС легла в /9315, но все равно не заработала
Почитал на форумах, что стоящая у меня Убунта частенько жестко рвется компилировать все АРМовские файлы с набором команд armv5, а архитектура проца заточена на armv4t. Причем в этом случае как раз возможен наблюдаемый печальный исход - невозможно выполнить инструкцию процессу init, вот он и мрет. Пробовал запускать сборку с указанием значения переменной, определяющей архитектуру и набор команд для АРМов: make MARCH=armv4t, результат прежний. Подскажите, пожалуйста, что еще можно попробовать (в рамках сборки КФС кратером), или, если кто сталкивался, как на Ubuntu gcc'у уговорить лопатить все для armv4t. Заранее спасибо!
-
> Подскажите, пожалуйста, что еще можно попробовать
http://www.zao-zeo.ru/dokuwiki/doku.php/crater
Особое внимание на пункт 2.
-
Да, все было сделано в соответствии с п.2. И, теперь понимаю, компилятор не виноват, т.к. он специально под нужную архитектуру сделан (судя по названию). Еще заметил - в настройках есть строка Elf toolchain location. И я понял, что у меня не было установлена arm-elf-gcc-3.2.1. Установил в директорию с комилятором (п.2), прописал путь. Собрал КФС, и опять та же ошибка. ???
-
elf вам в данном случае не пригодиться.
Могу собрать с конф. по умолчанию для Тион-Про и проверить/выложить, но Ubuntu 9.04 ставить не хочу.
-
Спасибо, пока наверное не нужно, к тому же во флешке на плате еще есть образ КФС рабочий. Попробую собрать другим toolchain'ом.
-
Ура!!! Заработало! ;D
Возможно это специфика Ubuntu 9.04, но собирается приличная КФС если перед первым после распаковки Crater'a make menuconfig' ом:
1. Определить путь к тулчейну
# export PATH=/usr/local/arm/4.1.1-920t/bin/:$PATH
2. Положить arm-elf-gcc-3.2.1-full.tar.bz2 в /usr/local/arm
с последующим
/usr/local/arm$ sudo tar vxjf arm-elf-gcc-3.2.1-full.tar.bz2
3. Enjoy & profit ;)
Спасибо за внимание! 8)