|
|
  |
компиляция под ARM, ядро 2.6.30 |
|
|
|
Aug 24 2011, 13:42
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427

|
Здравствуйте! Около полугода назад удачно собирал данное ядро (причем не один раз) на виртуальной машине в Ubuntu 9_04 под Win_Xp. Сейчас возникла необходимость откомпилировать его еще раз, но на данный момент я перешел на Ubuntu 11 и возникли следующие трудности:
stas17@Intel:/usr/src/linux-2.6.30$ make ARCH=arm CROSS_COMPILE=/home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi- make: /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc: Команда не найдена scripts/kconfig/conf -s arch/arm/Kconfig make: /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc: Команда не найдена CHK include/linux/version.h make[1]: `include/asm-arm/mach-types.h' не требует обновления. CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-arm CC kernel/bounds.s /bin/sh: /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc: not found make[1]: *** [kernel/bounds.s] Ошибка 127 make: *** [prepare0] Ошибка 2
Поискал информацию об этом: практически все решают эту проблему исправлением cтроки CROSS_COMPILE , но путь у меня задан правильно. Судя по всему, проблема в Makefile, потому что не находит кросс-компилятор. Но почему не находит? Заранее благодарен.
Сообщение отредактировал stas17 - Aug 25 2011, 11:14
|
|
|
|
|
Aug 25 2011, 10:47
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
попробуйте сделать Код make mrproper команда Код ls -l /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc выполняется? Если да, то покажите результат. Еще можно попробовать заменить dash на bash, иногда помогает.
|
|
|
|
|
Aug 25 2011, 11:08
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427

|
Команда ls -l выполняется: stas17@Intel:~$ ls -l /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc -rwxr-xr-x 2 stas17 sudo 208016 2010-04-17 21:10 /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc
Команда make mrproper работает, но все равно ругается на отсутствие кросскомпилятора: stas17@Intel:/usr/src/linux-2.6.30$ make mrproper make: /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc: Команда не найдена make[2]: /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc: Команда не найдена CLEAN .tmp_versions CLEAN include/asm-arm/mach-types.h CLEAN scripts/basic CLEAN scripts/kconfig CLEAN include/config CLEAN .config .config.old include/asm include/linux/autoconf.h include/linux/version.h include/linux/utsrelease.h
но это не помогает, остаются все те же ошибки. Объясните, пожалуйста, как заменить dash на bash.
|
|
|
|
|
Aug 25 2011, 11:32
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
Цитата Объясните, пожалуйста, как заменить dash на bash. Код sudo rm /bin/sh sudo ln -s /bin/bash /bin/sh как-то так... Сейчас у вас такая ситуация Код mike@mike-work:/$ ls -l /bin/sh lrwxrwxrwx 1 root root 4 2011-03-19 00:07 /bin/sh -> dash т.е. в качестве shell-оболочки используется dash. Многие советуют использовать bash, т.к. dash имеет некоторые "проблемы" при сборки различных приложений. Код stas17@Intel:/usr/src/linux-2.6.30$ make mrproper почему вы в root собираете? Лучше переместите исходники в вашу домашнюю директорию и делайте все манипуляции только в своей домашней директории. Цитата make: /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc: Команда не найдена make[2]: /home/stas17/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-gcc: Команда не найдена У вас, случайно, значение CROSS_COMPILE не задано жестко в Makefile? Ааа. Вы раньше на этой машине что-то собирали? Может у вас просто необходимых пакетов не стоит? Попробуйте поставить вот это Код sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge sudo apt-get build-dep linux sudo apt-get install git-core libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev Взял от сюда
|
|
|
|
|
Aug 25 2011, 12:27
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427

|
Спасибо за объяснение. Shell-оболочку я поменял. Компиляции это не помогло. Как-то изначально прочитал, что исходники ядра находятся в данной директории, поэтому там их и располагаю. Разве это важно?я же не собираюсь ставить собранное ядро вместо установленного...
Да, в переменной CROSS_COMPILE задан путь к кросскомпилятору, но я так раньше собирал ядро.
Раньше я на этой машине ничего не собирал, но для компиляции ядра поставил необходимые пакеты, но по-видимому не все. Сейчас установлю их и попробую начать компиляцию.
|
|
|
|
|
Aug 25 2011, 14:04
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427

|
поставил еще те пакеты, которые Вы перечислили и все равно результат тот же
|
|
|
|
|
Aug 25 2011, 14:21
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
Можно попробовать запустить сборку через команду Код sudo make .... .
|
|
|
|
|
Aug 25 2011, 14:33
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427

|
Спасибо большое за помощь! еще раз почистил директорию и сейчас началась компиляция. Наверное причина была в отсутствии необходимых пакетов.
Объясните, пожалуйста, чем плохо, что я собираю ядро в директории /usr/src
Сообщение отредактировал stas17 - Aug 25 2011, 14:45
|
|
|
|
|
Aug 25 2011, 15:19
|
Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205

|
Цитата Спасибо большое за помощь! Рад что у вас получилось!)) Цитата(stas17 @ Aug 25 2011, 17:33)  Объясните, пожалуйста, чем плохо, что я собираю ядро в директории /usr/src Тем что приходиться работать под рутом. Можно что-то сильно испортить. У сотрудника была ситуация, когда он перепутал консоль, и случайно, затер таблицу разделов на своей рабочей машине. Ну и это системный каталог, если там что-то делать, то остается много мусора, лично меня это раздражает.
|
|
|
|
|
Aug 26 2011, 12:03
|
Участник

Группа: Участник
Сообщений: 66
Регистрация: 13-07-10
Пользователь №: 58 427

|
Цитата(mdmitry @ Aug 25 2011, 17:55)  тем, что директория служебная (не пользовательская) и сборка не для текущей системы, а кросс. Посмотрите описание (назначение) директорий вашего дистрибутива linux (или аналогичного, можно и unix). Многие вопросы по расположению файлов и прав доступа скорее всего пропадут. Цитата(kurtis @ Aug 25 2011, 18:19)  Тем что приходиться работать под рутом. Можно что-то сильно испортить. У сотрудника была ситуация, когда он перепутал консоль, и случайно, затер таблицу разделов на своей рабочей машине. Ну и это системный каталог, если там что-то делать, то остается много мусора, лично меня это раздражает. Спасибо большое Вам за объяснения.
Сообщение отредактировал stas17 - Aug 26 2011, 12:06
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|