У меня плата на близком 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\ все равно должен существовать.
|