реклама на сайте
подробности

 
 
> Linux не хочет работать на MPC8349-mITX-GP
guskov
сообщение Apr 15 2008, 10:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 6-12-07
Из: Москва
Пользователь №: 33 045



Может быть кто-то сталкивался с этой платой от Freescale на базе PowerPC? К ней шёл т.н. BSP - уже откомпилированный Линукс, сделанный с помощью тула Ltib. Версия его довольно древняя - 2.6.13.
Задача - поставить туда ядро посвежее, собранное самостоятельно,
и научиться отлаживать программы в плате. Процесс сборки должен быть
максимально прозрачен, поэтому всякие Ltib использовать нежелательно.
Я откомпилировал ядро 2.6.24.4 под эту плату (благо в официальной
ветке есть порт под неё), но оно отказывается работать. Точнее отказывается
выдавать что-либо в консоль, что может быть не одно и то же. Подобраться
к плате и понять, в чём дело, я не могу - JTAG, который мы
купили у Freescale, хочет CodeWarrior - его у нас нет. Очень хочется
использовать всё-таки gdb. Скорее всего, дело в каких-нибудь патчах или параметрах ядра.
Патчи для меня вообще большая загадка - как понять, что и где брать. Параметры я
передаю те же, что и старому ядру, возможно что-то изменилось с тех
пор. Кстати, кто-нибудь в курсе, возможно ли при сборке ядра задать параметры по умолчанию?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Vladimir_
сообщение Apr 19 2008, 18:13
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 10-05-05
Пользователь №: 4 893



У меня плата на близком CPU 8347. Тоже Линукс 2.6.13
Я не рискнул переходить на более новое, нет времени и пока не вижу смысла.
Маловероятно что именно эти изменения нужны, хотя по Power PC их было и достаточно.
Может стоит сначала потренираваться на перекомпилляции стартового ядра?
Покрайнее мере Вы убедитесь что toolchain настроен и сиcтема переконфигурируется как Вам надо.
Это необходимый минимум.
А потом можно браться за другое ядро, но подумайте - стоит ли, особенно если у Вас нет
хорошо настроенного BSP именно под Вашу плату - просто это может занять очень много времени.
Если есть на плате Ethernet (а на 8349 он не может не быть) - то лучше сразу настройте/примонтируйте
NFS, может это проще, и позволит обойтись без JTAG, я им по крайней мере до сих пор не пользовался.

>А Вы не в курсе, какая разница между таргетами ppc и powerpc?
подозреваю что они могут быть alias.
Я заметил, что здесь еще много путаницы, не все прикладные либы нормально кросс-перекомпилируются, приходится вручную править Makefile, которые сгенерились по configure.
Хорошо, чо один автор в одной либе в readme предупредил, чо переменные на некоторых платформах сбрасываются.
В общем, засад может быть много...

Тем не менее, у Вас в BSP должны быть скрипты которые экспортируют все нужные переменные для
кросс-компилляции ядра.
А если их нет, то надо начать с них настройку тулчейна - правильно поставить все НУЖНЫЕ переменные. Потом контрольная компилляция исходного ядра 2,6,13.
Потом можно поиграть с параметрами ядра и модулями и т.п.

Посмотрите, что-то подобное:
------------------------
export CROSS_COMPILE=/opt/crosstool/powerpc-e300-linux-gnu/gcc-3.4.1-glibc-2.3.3/bin/powerpc-e300-linux-gnu-

export AS="${CROSS_COMPILE}as"
export LD="${CROSS_COMPILE}ld"
export CC="${CROSS_COMPILE}gcc"
export CPP="${CC} -E"
export AR="${CROSS_COMPILE}ar"
export NM="${CROSS_COMPILE}nm"
export STRIP="${CROSS_COMPILE}strip"
export OBJCOPY="${CROSS_COMPILE}objcopy"
export OBJDUMP="${CROSS_COMPILE}objdump"

export ARCH=ppc

Это для приложения и ядра.
Для ядра дополнительно:
export TARGET="powerpc-linux"
export ARCH_NAME="ppc_e300_linux"
export ROOT_DIR="$BOARD_DIR/root_fs/"
export CROSS_COMPILE="/opt/crosstool/powerpc-e300-linux-gnu/gcc-3.4.1-glibc-2.3.3/bin/powerpc-e300-linux-gnu-"
export ARCH_DIR="/opt/crosstool/powerpc-e300-linux-gnu/gcc-3.4.1-glibc-2.3.3/powerpc-e300-linux-gnu/"
# EXTRA_CC_FLAGS is used to set special flags for compiler
export EXTRA_CC_FLAGS="-O5 -Wall -fomit-frame-pointer -funroll-loops -Wa -fforce-mem -falign-loops=2 -falign-functions=2 -falign-jumps=2 -ffast-math"

# This flag is used to deliver Busybox aplications external library.
# It's used in /src/busybox-1.0/Rules.mak
export EXTRA_LIBRARY="-lm"

и т. п.
Как видите, ARCH=ppc а TARGET="powerpc-linux, плюс еще ARCH_NAME="ppc_e300_linux" так что связи могут быть достаточно сложные и надо долго ползать по Makefile и конфигам.
Одному модулю надо одна переменная, другому вторая, третьему обе. Надо правильно поставить все.
И еще корневые модули ядра для платы могут варьироваться (кстати после 2.6.13 их в ядре ПЕРЕНОСИЛИ В ДРУГИЕ ПАПКИ !)
Например в 2.6.13 были в
\linux\arch\ppc\platforms\83xx\
а в более позних версиях некотрые платы на конкретных 83xx перенесены на более высокий уровень в дереве ядра/выделены отдельно от 83xx
Но подозреваю что и ..\platforms\83xx\ все равно должен существовать.
Go to the top of the page
 
+Quote Post
guskov
сообщение Apr 24 2008, 10:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 6-12-07
Из: Москва
Пользователь №: 33 045



Нашёл очень интересную ссылку по теме, видимо проблема где-то рядом. Тут же объясняется отличие ppc и powerpc.
http://www.mail-archive.com/linuxppc-embed...g/msg07359.html

Сообщение отредактировал guskov - Apr 24 2008, 10:06
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016