ЗАО «ЗЭО»

Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: Andrew от 25 Июня, 2009, 16:16:03

Название: проблема при сборке ядра
Отправлено: 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


Как ее исправить?
Название: Re: проблема при сборке ядра
Отправлено: asv от 25 Июня, 2009, 18:22:03
Уже решили?
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 25 Июня, 2009, 18:26:14
нет. удалось собрать ядро только под кратером 1.0.3
но с ним проблемы - убут, который он выплевывает странно работает. наложить патч под тион 2 не удается. Ядро успешно заливается под бутом 1.3.3, но пишет starting kernel  и висит!!!
Что делать не знаю
Название: Re: проблема при сборке ядра
Отправлено: asv от 25 Июня, 2009, 18:48:34
При сборке crater-1.0.0_svn557 (1) какие переменные окружения (команда env), (2) конфигурацию из файла .config
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 25 Июня, 2009, 19:15:13
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:
не нашел
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 25 Июня, 2009, 19:19:02
.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
Название: Re: проблема при сборке ядра
Отправлено: asv от 25 Июня, 2009, 19:50:45
Попробуйте без ENABLE_LOCALE

PS. В KDE под root'ом?!
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 25 Июня, 2009, 19:52:44
не помогло:((
Да, под ним:))
Название: Re: проблема при сборке ядра
Отправлено: asv от 25 Июня, 2009, 20:21:58
LIRC тоже выключите, потом 'make clean' и 'make'.

Стоило начать с "конфигурации по умолчанию".
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 26 Июня, 2009, 14:24:04
собрал нулевое (все отключено) ядро 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 ...

и висит!!!!
и так со всеми ядрами!
подскажите, что я не так делаю???
Название: Re: проблема при сборке ядра
Отправлено: asv от 26 Июня, 2009, 14:40:19
Возможно, выбрали 9315?

Ядро собирается и без Crater'а.
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 26 Июня, 2009, 14:58:02
Выбрал именно 9315 - так написано на плате.

Собрать-то я его могу и без кратера, а как потом к нему приделать рамдиск?!

Название: Re: проблема при сборке ядра
Отправлено: asv от 26 Июня, 2009, 15:07:05
У них не такая уж сильная зависимость.

Вы выбрали edb9315 (отладочная плата), а на плате ep9315 (процессор)
см. http://www.zao-zeo.ru/dokuwiki/doku.php/linux-faq#собранные_образы_ядра_linux_для_edb9315_не_работают_на_моей_плате
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 26 Июня, 2009, 15:13:14
Спасибо.

делаю make menuconfig ->  выбираю kernel options -> EP9315 Правильно?
а в настройках убута EPB9312?
Название: Re: проблема при сборке ядра
Отправлено: asv от 26 Июня, 2009, 15:26:45
Мы _не изменяли_ 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 и ядро, за все возможные варианты конфигурации не ручаюсь, но с "конф. по умолчанию"
должно собираться.
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 26 Июня, 2009, 15:30:57
Хорошо, а как мне накрутить на стандартную конфигурацию, допустим, нормальный браузер, миником, QT и т.д.?
Название: Re: проблема при сборке ядра
Отправлено: asv от 26 Июня, 2009, 15:40:28
Собирать.

QT можно собрать из Crater, Konqueror тоже собирается
http://groups.google.com/group/tion_sbc/browse_thread/thread/c31b439392daff2c#

Более новое QT можно собрать отдельно, minicom придется тоже отдельно.

Можно ничего не собирать и поставить Debian для armel.
Название: Re: проблема при сборке ядра
Отправлено: Andrew от 26 Июня, 2009, 16:20:55
это интересно, а как поставить Debian? развернуть на КФС на компакт-флеше?
Название: Re: проблема при сборке ядра
Отправлено: asv от 26 Июня, 2009, 16:41:35
Да, или на USB-Flash.
Название: Re: проблема при сборке ядра
Отправлено: shark-bmt от 08 Февраля, 2010, 19:30:06
Здравствуйте!
Я использую Тион-Про. Осуществляю сборку ядра и КФС кратером как описано здесь 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. Заранее спасибо! 
Название: Re: проблема при сборке ядра
Отправлено: asv от 08 Февраля, 2010, 20:47:10
> Подскажите, пожалуйста, что еще можно попробовать

http://www.zao-zeo.ru/dokuwiki/doku.php/crater

Особое внимание на пункт 2.
Название: Re: проблема при сборке ядра
Отправлено: shark-bmt от 09 Февраля, 2010, 14:31:12
Да, все было сделано в соответствии с п.2. И, теперь понимаю, компилятор не виноват, т.к. он специально под нужную архитектуру сделан (судя по названию). Еще заметил - в настройках есть строка Elf toolchain location. И я понял, что у меня не было установлена arm-elf-gcc-3.2.1. Установил в директорию с комилятором (п.2), прописал путь. Собрал КФС, и опять та же ошибка. ???
Название: Re: проблема при сборке ядра
Отправлено: asv от 09 Февраля, 2010, 15:08:10
elf вам в данном случае не пригодиться.

Могу собрать с конф. по умолчанию для Тион-Про и проверить/выложить, но Ubuntu 9.04 ставить не хочу.
Название: Re: проблема при сборке ядра
Отправлено: shark-bmt от 09 Февраля, 2010, 16:39:09
Спасибо, пока наверное не нужно, к тому же во флешке на плате еще есть образ КФС рабочий. Попробую собрать другим toolchain'ом.
Название: Re: проблема при сборке ядра
Отправлено: shark-bmt от 09 Февраля, 2010, 20:03:55
Ура!!! Заработало! ;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)