Jump to content

    
Sign in to follow this  
razob

STLinux

Recommended Posts

Потихоньку разбираюсь с программированием процессоров 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

Share this post


Link to post
Share on other sites

Эти пакеты не лежат в общем репозитарии, а есть в дистрибутиве 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/

Share this post


Link to post
Share on other sites

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, которую я и ставлю).

 

 

Share this post


Link to post
Share on other sites

Раз не ставит 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.

Share this post


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

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

Share this post


Link to post
Share on other sites

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, - то ли это из другой области. Что это?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this