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

 
 
> 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
Ответов
amw
сообщение Apr 15 2008, 11:42
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
guskov
сообщение Apr 15 2008, 14:23
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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. Кто-нибудь может объяснить, в чём между ними разница?
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 16 2008, 07:32
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
guskov
сообщение Apr 17 2008, 10:44
Сообщение #5


Участник
*

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



Цитата(amw @ Apr 16 2008, 11:32) *
Нет, ядро распаковывает себя само. Так что ядро стартует и распаковывается. Уже что-то.
После этого ядро проводит инициализацию подсистемы памяти, некоторого оборудования (перечень зависит от архитектуры) и потом консоль. Видимо что проблема возникает до инициализации консоли.
Uncompressing Linux ... done выводится тупо, а позже ядро переинициализирует порт и запускает уде полновесный протокол консоли.

К сожалению, сообщение выглядит несколько не так и выдаёт именно u-boot, проверено в его исходниках:
Uncompressing Kernel Image... OK
Есть подозрение, что неправильно собраны ядро или тулы. А Вы не в курсе, какая разница между таргетами ppc и powerpc?
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 18 2008, 13:22
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post



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

 


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


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