|
Linux не хочет работать на MPC8349-mITX-GP |
|
|
|
Apr 15 2008, 10:47
|
Участник

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

|
Может быть кто-то сталкивался с этой платой от Freescale на базе PowerPC? К ней шёл т.н. BSP - уже откомпилированный Линукс, сделанный с помощью тула Ltib. Версия его довольно древняя - 2.6.13. Задача - поставить туда ядро посвежее, собранное самостоятельно, и научиться отлаживать программы в плате. Процесс сборки должен быть максимально прозрачен, поэтому всякие Ltib использовать нежелательно. Я откомпилировал ядро 2.6.24.4 под эту плату (благо в официальной ветке есть порт под неё), но оно отказывается работать. Точнее отказывается выдавать что-либо в консоль, что может быть не одно и то же. Подобраться к плате и понять, в чём дело, я не могу - JTAG, который мы купили у Freescale, хочет CodeWarrior - его у нас нет. Очень хочется использовать всё-таки gdb. Скорее всего, дело в каких-нибудь патчах или параметрах ядра. Патчи для меня вообще большая загадка - как понять, что и где брать. Параметры я передаю те же, что и старому ядру, возможно что-то изменилось с тех пор. Кстати, кто-нибудь в курсе, возможно ли при сборке ядра задать параметры по умолчанию?
|
|
|
|
|
 |
Ответов
|
Apr 15 2008, 11:42
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(guskov @ Apr 15 2008, 13:47)  Может быть кто-то сталкивался с этой платой от Freescale на базе PowerPC? К ней шёл т.н. BSP - уже откомпилированный Линукс, сделанный с помощью тула Ltib. Версия его довольно древняя - 2.6.13. Задача - поставить туда ядро посвежее, собранное самостоятельно, и научиться отлаживать программы в плате. Процесс сборки должен быть максимально прозрачен, поэтому всякие Ltib использовать нежелательно. Я откомпилировал ядро 2.6.24.4 под эту плату (благо в официальной ветке есть порт под неё), но оно отказывается работать. Точнее отказывается выдавать что-либо в консоль, что может быть не одно и то же. Подобраться к плате и понять, в чём дело, я не могу - JTAG, который мы купили у Freescale, хочет CodeWarrior - его у нас нет. Очень хочется использовать всё-таки gdb. Скорее всего, дело в каких-нибудь патчах или параметрах ядра. Патчи для меня вообще большая загадка - как понять, что и где брать. Параметры я передаю те же, что и старому ядру, возможно что-то изменилось с тех пор. Кстати, кто-нибудь в курсе, возможно ли при сборке ядра задать параметры по умолчанию? Конкретно по этому процессору и плате помочь не могу - не работал с такими. Патчи обычно есть на тематических сайтах. Есть ли такие сайты по Вашему железу - не знаю. Загрузчик должен был инициализировать последовательный порт перед стартом ядра. Это должен быть тот-же порт, что и параметр ядра console=. Тогда Вы увидите хотя бы строку вида Uncompressing linux ... done. Есть параметр с командной строкой по умолчанию. Но он существует не для всех архитектур. Параметр в .config Вот отрывок для ARM Код # # Boot options # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set Если для Вашей архитектуры этого нет, то оно должно настраиваться в загрузчике.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Apr 15 2008, 14:23
|
Участник

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

|
Цитата(amw @ Apr 15 2008, 15:42)  Загрузчик должен был инициализировать последовательный порт перед стартом ядра. Это должен быть тот-же порт, что и параметр ядра console=. Тогда Вы увидите хотя бы строку вида Uncompressing linux ... done. Загрузчик я пока не менял, он работает (u-boot), общается со мной через консоль, так что она настроена. Сообщение о распаковке Линукса выдаётся, как я понимаю, его рисует как раз загрузчик. Ведь ядро хранится практически как ZIP файл, само себя оно распаковать не может. Или я не прав? Цитата(amw @ Apr 15 2008, 15:42)  Есть параметр с командной строкой по умолчанию. Но он существует не для всех архитектур. Параметр в .config Вот отрывок для ARM Спасибо за наводку. Нашёл опцию # CONFIG_CMDLINE_BOOL is not set в оригинальной конфигурации - видимо дело не в параметрах. Попробовал перекомпилировать ядро из их исходников своим компилятором - ядро опять же не работает (плата рестартует). Надо сказать, что я компилятор собирал для платформы powerpc-linux, а в ядре 2.6.13 была только платформа ppc. Кто-нибудь может объяснить, в чём между ними разница?
|
|
|
|
|
Apr 16 2008, 07:32
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(guskov @ Apr 15 2008, 17:23)  Загрузчик я пока не менял, он работает (u-boot), общается со мной через консоль, так что она настроена. Сообщение о распаковке Линукса выдаётся, как я понимаю, его рисует как раз загрузчик. Ведь ядро хранится практически как ZIP файл, само себя оно распаковать не может. Или я не прав? Нет, ядро распаковывает себя само. Так что ядро стартует и распаковывается. Уже что-то. После этого ядро проводит инициализацию подсистемы памяти, некоторого оборудования (перечень зависит от архитектуры) и потом консоль. Видимо что проблема возникает до инициализации консоли. Uncompressing Linux ... done выводится тупо, а позже ядро переинициализирует порт и запускает уде полновесный протокол консоли. Собственно вариантов может быть два. Плохой и хороший. Хороший - ядро стартует, но для консоли использует либо другой порт, либо не последовательный порт (ttyS*) а виртуальную консоль (tty*). Плохой - Kernel panic до инициализации консоли.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Apr 17 2008, 10:44
|
Участник

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

|
Цитата(amw @ Apr 16 2008, 11:32)  Нет, ядро распаковывает себя само. Так что ядро стартует и распаковывается. Уже что-то. После этого ядро проводит инициализацию подсистемы памяти, некоторого оборудования (перечень зависит от архитектуры) и потом консоль. Видимо что проблема возникает до инициализации консоли. Uncompressing Linux ... done выводится тупо, а позже ядро переинициализирует порт и запускает уде полновесный протокол консоли. К сожалению, сообщение выглядит несколько не так и выдаёт именно u-boot, проверено в его исходниках: Uncompressing Kernel Image... OK Есть подозрение, что неправильно собраны ядро или тулы. А Вы не в курсе, какая разница между таргетами ppc и powerpc?
|
|
|
|
|
Apr 18 2008, 13:22
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(guskov @ Apr 17 2008, 13:44)  К сожалению, сообщение выглядит несколько не так и выдаёт именно u-boot, проверено в его исходниках: Uncompressing Kernel Image... OK Есть подозрение, что неправильно собраны ядро или тулы. Действительно, это сообщение выдается загрузчиком. Ядро выдает своее сообщение. См. файл arch/<АРХИТЕКТУРА>/boot/compressed/misc.c Сообщение выглядит так (если все в порядре конечно) Код Uncompressing Linux... Ok, booting the kernel. Цитата А Вы не в курсе, какая разница между таргетами ppc и powerpc? Не в курсе. А как называется файл компилятора? ppc-linux-gcc? Что говорит $ ppc-linux-gcc -v Потом смотрите в ядре наличие папки arch/ppc ну или той, что выведет компилер. Посмотрите Makefile на предмет ARCH=?. Посмотрите на перечень процессоров в arch/ppc/Kconfig arch/powerpc/Kconfig Только что глянул, arch/ppc/boot/simple/misc.c
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|