Перейти к содержанию
    

Потихоньку разбираюсь с программированием процессоров ST и на данный момент добрался до этапа сборки ядра.

После конфигурирования ядра через configmenu я запускаю сборку, и вот что я на выходе получаю:

[root@localhost linux-sh4]# make ARCH=sh CROSS_COMPILE=sh4-linux- vmlinux
make: sh4-linux-gcc: Команда не найдена
  CHK     include/linux/version.h
make[1]: `include/asm-sh/machtypes.h' не требует обновления.
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-sh
  CC      kernel/bounds.s
/bin/sh: sh4-linux-gcc: команда не найдена
make[1]: *** [kernel/bounds.s] Ошибка 127
make: *** [prepare0] Ошибка 2
[root@localhost linux-sh4]#

Как я понимаю, не хватает собственно компилятора gcc. Однако мне никак не удаётся его установить. Из мануала ( http://www.stlinux.com/install/getting-sta...lling-gnu-tools ) следует, что данный пакет именуется stlinuxXX-cross-sh4-gcc или, в моём случае, stlinux24-cross-sh4-gcc.

Пытаюсь его установить через yum:

[root@localhost linux-sh4]# yum install stlinux24-cross-sh4-gcc
Загружены модули: langpacks
Выполнять нечего
[root@localhost linux-sh4]#

Вотъ... Как будто такого пакета нет вовсе, хотя обычно в этом случае yum нормальное сообщение выдаёт.

Как быть?

ЗЫ работаю в Fedora20

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эти пакеты не лежат в общем репозитарии, а есть в дистрибутиве STLinux.

 

Ставить их надо командой yum localinstall /path/to/rpm/stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm

 

Скачать пакеты можно отсюда ftp://ftp.stlinux.com/pub/stlinux/2.4/STLinux/sh4/ по одному

Или целиком образ диска отсюда ftp://ftp.stlinux.com/pub/stlinux/2.4/iso/

 

Вероятно можно подключить репозитарий к yum, что б он сам разрешал зависимости: ftp://ftp.stlinux.com/pub/stlinux/2.4/ или ftp://ftp.stlinux.com/pub/stlinux/2.4/STLinux/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

msalov,

спасибо за наводку. Теперь я хотя бы знаю, где эти пакеты можно найти.

Однако установить их не получается:

 

[root@localhost linux-sh4]# yum localinstall ftp://ftp.stlinux.com/pub/stlinux/2.4/STLinux/sh4/stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm
Загружены модули: langpacks
stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm                                     | 5.2 MB  00:00:06     
Проверка /var/tmp/yum-root-lNF1lT/stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm: stlinux24-cross-sh4-binutils-2.19.1-41.i386
/var/tmp/yum-root-lNF1lT/stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm: не обновляет установленный пакет.
Выполнять нечего
[root@localhost linux-sh4]#

 

а вот с другой пакет:

yum localinstall ftp://ftp.stlinux.com/pub/stlinux/2.4/STLinux/sh4/stlinux24-sh4-gcc-4.3.4-66.sh4.rpm
Загружены модули: langpacks
stlinux24-sh4-gcc-4.3.4-66.sh4.rpm                                                  | 5.7 MB  00:00:07     
Проверка /var/tmp/yum-root-lNF1lT/stlinux24-sh4-gcc-4.3.4-66.sh4.rpm: stlinux24-sh4-gcc-4.3.4-66.sh4
Невозможно добавить пакет ftp://ftp.stlinux.com/pub/stlinux/2.4/STLinux/sh4/stlinux24-sh4-gcc-4.3.4-66.sh4.rpm в список действий. Несовместимая архитектура: sh4
Выполнять нечего
[root@localhost linux-sh4]#

 

Самое не приятное то, что согласно мануалу, эти компиляторы должны были установиться автоматом (это верно для версии 2.4, которую я и ставлю).

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз не ставит cross-пакет, значит он уже установлен. Осталось дело за малым - узнать куда он стал. Сделайте

rpm -qlp stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm | grep sh4-linux-ld

С большой долей вероятности там будут строка

/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld

 

Значит вам надо добавить /opt/STM/STLinux-2.4/devkit/sh4/bin/ к переменной окружения PATH при запуске make.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

очень не советую компиляторы кидать в /opt. Лучше в юзерскую папку какую-нибудь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

очень не советую компиляторы кидать в /opt. Лучше в юзерскую папку какую-нибудь.

Поясните, пожалуйста, причины. Codesourcery туда любит по умолчанию устанавливаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

msalov, спасибо за наводку - получилось продвинуться чуть дальше.

Выполнил конфигурирование ядра STLinux, - практически всё оставил по умолчанию, изменил только тип процессора.

И запускаю компиляцию:

[root@localhost linux-sh4]# make ARCH=sh CROSS_COMPILE=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux- vmlinux
scripts/kconfig/conf -s arch/sh/Kconfig
#
# configuration written to .config
#
  CHK     include/linux/version.h
make[1]: `include/asm-sh/machtypes.h' не требует обновления.
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-sh
  CALL    scripts/checksyscalls.sh
  CHK     include/linux/compile.h
  CC      init/do_mounts.o
sh4-linux-gcc: ошибка: unrecognized command line option «-m32»
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld: cannot find init/.tmp_mc_do_mounts.o: Нет такого файла или каталога
mv: не удалось выполнить stat для «init/.tmp_mx_do_mounts.o»: Нет такого файла или каталога
rm: невозможно удалить «init/.tmp_mc_do_mounts.o»: Нет такого файла или каталога
  LD      init/mounts.o
  LD      init/built-in.o
  CC      arch/sh/kernel/machvec.o
sh4-linux-gcc: ошибка: unrecognized command line option «-m32»
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld: cannot find arch/sh/kernel/.tmp_mc_machvec.o: Нет такого файла или каталога
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-objcopy: 'arch/sh/kernel/.tmp_mx_machvec.o': No such file
rm: невозможно удалить «arch/sh/kernel/.tmp_mx_machvec.o»: Нет такого файла или каталога
rm: невозможно удалить «arch/sh/kernel/.tmp_mc_machvec.o»: Нет такого файла или каталога
  CC      arch/sh/kernel/nmi_debug.o
sh4-linux-gcc: ошибка: unrecognized command line option «-m32»
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld: cannot find arch/sh/kernel/.tmp_mc_nmi_debug.o: Нет такого файла или каталога
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-objcopy: 'arch/sh/kernel/.tmp_mx_nmi_debug.o': No such file
rm: невозможно удалить «arch/sh/kernel/.tmp_mx_nmi_debug.o»: Нет такого файла или каталога
rm: невозможно удалить «arch/sh/kernel/.tmp_mc_nmi_debug.o»: Нет такого файла или каталога
  CC      arch/sh/kernel/cpu/sh4/cpufreq-stm_cpu_clk.o
sh4-linux-gcc: ошибка: unrecognized command line option «-m32»
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld: cannot find arch/sh/kernel/cpu/sh4/.tmp_mc_cpufreq-stm_cpu_clk.o: Нет такого файла или каталога
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-objcopy: 'arch/sh/kernel/cpu/sh4/.tmp_mx_cpufreq-stm_cpu_clk.o': No such file
rm: невозможно удалить «arch/sh/kernel/cpu/sh4/.tmp_mx_cpufreq-stm_cpu_clk.o»: Нет такого файла или каталога
rm: невозможно удалить «arch/sh/kernel/cpu/sh4/.tmp_mc_cpufreq-stm_cpu_clk.o»: Нет такого файла или каталога
  LD      arch/sh/kernel/cpu/sh4/built-in.o
/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld: cannot find arch/sh/kernel/cpu/sh4/cpufreq-stm_cpu_clk.o: Нет такого файла или каталога
make[3]: *** [arch/sh/kernel/cpu/sh4/built-in.o] Ошибка 1
make[2]: *** [arch/sh/kernel/cpu/sh4] Ошибка 2
make[1]: *** [arch/sh/kernel/cpu] Ошибка 2
make: *** [arch/sh/kernel] Ошибка 2
[root@localhost linux-sh4]#

погуглил, что же такое -m32: длина переменных int, long и pointer, - то ли это из другой области. Что это?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ещё вопрос:

вот например компилятор требует файл /init/.tmp_mc_do_mounts.o, где записана это требование?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...