root@am3517-evm:/home/mc_here/bin# uname -a
Linux am3517-evm 2.6.37 #1 Sun Aug 28 08:36:02 IDT 2011 armv7l unknown
К ней у меня есть доступ через SSH посредством Ethernet. Также там установлен фтп сервер, поэтому есть возможность передачи файлов.
В системе на плате отсутствует GCC, make, менеджер пакетов.
Каким образом возможно установить туда, скажем Midnight Commander?
Я установил в VirtualBox дистрибутив линукса Runtu. Скачал исходники Midnight Commander. Также установил GCC, make и необходимые либы. Как мне его теперь правильно скомпилировать для демоплаты?
Вариант:
text
./configure /home/complied_mc
make
make install
и потом скопировать получившееся на демоплату, не подходит! Там он не запускается.
От рунты туда точно ничего переносить не надо. Рунта у вас какой архитектуры, а какой упомянутая железка?
Сначала надо точно выяснить архитектуру вашей железяки.
godor2008 написал:
armv7l
Вот этот иероглиф в вашем выводе стоит на месте, где пишется архитектура.
armel что-ли? Дебиановские сборки есть под armel.
godor2008 написал:
Embedded Linux
- это всего лишь значит "встроенный". А вот какой именно?
У вас что в документации написано, она есть вообще?
Так, документацию я на вашу железку посмотрел.
Архитектура arm. Эта архитектура была для Lenny, а для Сквиза есть armel, чисто под arm нету.(Это если предположить, на основе, что есть варианты с ядром как у Сквиза, что там какое-то подобие дебиана стоит.)
Под armel вот, наверное это и нужно.
Midnight Commander лежит вот здесь: http://packages.debian.org/squeeze/armel/mc/download
при этом вот тут: http://packages.debian.org/squeeze/mc
надо посмотреть что еще нужно по зависимостям. А кроме того, нужно(желательно), чтобы совпадали либы(версии), с которыми слинкован устанавливаемый софт. Получается конструктор, сродни LFS.
Файлы из деб-пакетов можно ставить после распаковки пакета, выполнив кроме этого, что там требуется в скриптах. Дело это не простое. Так что лучше обратиться в сапорт и спросить, откуда брать софт под их железо: support@variscite.com
Что выводят команды:
lsb_release -a
и
cat /etc/debian_version
?
Так, документацию я на вашу железку посмотрел.
Архитектура arm. Эта архитектура была для Lenny, а для Сквиза есть armel, чисто под arm нету.(Это если предположить, на основе, что есть варианты с ядром как у Сквиза, что там какое-то подобие дебиана стоит.)
Под armel вот, наверное это и нужно.
Midnight Commander лежит вот здесь: http://packages.debian.org/squeeze/armel/mc/download
при этом вот тут: http://packages.debian.org/squeeze/mc
надо посмотреть что еще нужно по зависимостям. А кроме того, нужно(желательно), чтобы совпадали либы(версии), с которыми слинкован устанавливаемый софт. Получается конструктор, сродни LFS.
Файлы из деб-пакетов можно ставить после распаковки пакета, выполнив кроме этого, что там требуется в скриптах. Дело это не простое. Так что лучше обратиться в сапорт и спросить, откуда брать софт под их железо: support@variscite.com
Что выводят команды:
lsb_release -a
и
cat /etc/debian_version
?
Смогу это проверить только после выходных. Спасибо за ссылку на дебиановские пакеты! Я бы в жизни не догадался их там искать.
Необходимо собрать кросс-компилятор на host системе. После этого можно смело компилить софт, однако должен быть как-то менеджер пакетов типа ipkg.
В какую сторону копать и где это примерно? Ведь в компиляторе надо будет указать под какую архитектуру это все ело собирается. GCC не пойдет? На сайте производителя этой борды, есть инструкция по сборке ядра и toolchain. http://www.variwiki.com/index.php?title=VAR-SOM-AM35_-_Linux_support
На сайте производителя этой борды, есть инструкция по сборке ядра и toolchain.
Так, если есть toolchain,-это уже хорошо.
Как им пользоваться (прямо на этом арме), - принцип такой же как при сборке LFS.
Почитайте русский перевод к любой версии LFS-6.8, именно версия ядра там такая же как и у вас, и скорее всего всё остальное будет совместимым (это скорее всего ваш встроенный линукс с LFS-6.8 и собирался).
LFS-6.8 на русском здесь: http://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/LFS-BOOK-6.8-ru/lfs-6.8-ru-index.html
Дунуть себе на винт с переделкой в удобочитаемую форму можно таким скриптом:
text
#!/bin/sh
wget -q -nv -nc -r -l 1 -np http://rus-linux.net/MyLDP/BOOKS/LFS-BOOK-6.8-ru/lfs-6.8-ru-index.html
for i in `find rus-linux.net -name "*.html"`; do
sed -i -e 's#/nlib\.php?name=##g' $i
done
wget -q -nv -nc -r -l 1 -np http://rus-linux.net/MyLDP/BOOKS/LFS-BOOK-6.8-ru/lfs-6.8-ru-index.html
wget -q -r http://rus-linux.net/MyLDP/BOOKS/LFS-BOOK-6.8-ru/img/{note,important,caution,warning}.png
for i in `find rus-linux.net -name "*.html"`; do
sed -i -e 's#/nlib\.php?name=##g' -e '/lib\.php/d' -e '/base href/d' \
-e 's/\/MyLDP\/BOOKS\/LFS-BOOK-6.8-ru\///g' -e 's/lfs-6\.8-ru-index\.html/index\.html/g' $i
done
mv -f rus-linux.net/MyLDP/BOOKS/LFS-BOOK-6.8-ru/{lfs-6.8-ru-,}index.html
sed -i -e 's/-ru-chapter02-01/-ru-chapter02-02/' rus-linux.net/MyLDP/BOOKS/LFS-BOOK-6.8-ru/lfs-6.8-ru-chapter02-00.html
sed -i -e 's/-ru-chapter00-02/-ru-chapter00-01/' rus-linux.net/MyLDP/BOOKS/LFS-BOOK-6.8-ru/lfs-6.8-ru-chapter00-00.html
cd rus-linux.net/MyLDP/BOOKS
tar czfp ../../../LFS-BOOK-6.8-ru.tar.gz LFS-BOOK-6.8-ru
cd ../../..
rm -rf rus-linux.net
В какую сторону копать и где это примерно? Ведь в компиляторе надо будет указать под какую архитектуру это все ело собирается. GCC не пойдет? На сайте производителя этой борды, есть инструкция по сборке ядра и toolchain. http://www.variwiki.com/index.php?title=VAR-SOM-AM35_-_Linux_support
gcc и надо собирать. В инете много инструкций. Указываешь естестаенно целевую архитектуру.
У тебе будет нечно вроде arm-unknown-linux-gnueabi-gcc, которым будешь всё компилить
root@am3517-evm:/home# lsb-release -a
-sh: lsb-release: not found
root@am3517-evm:/home# cat /etc/debian_version
cat: can't open '/etc/debian_version': No such file or directory
godor2008, Выводы этих команд могли бы сообщить, что за линукс там стоит.
Теперь еще большее подозрение, что стоит сборка от самой этой фирмы.
У вас имеется тулчейн,- то есть как бы первая половина LFS пройдена.
Теперь нужно, используя тулчейн собрать себе минимальное окружение для сборки дальшейшего. Смотрите в книге LFS, как надо действовать после сборки тулчейна. В кратце : используя тулчейн соберете компилятор + еще утилиты и библиотеки, и уже сборка программ будет без тулчейна, который вам постовляется. (в тулчейне грубо говоря как бы временные компилятор, glibc и иже с ними).
Разбирайтесь с книжкой. Лишь бы ваши авторы тулчейна сильно от нее не отступили при его изготовлении,- тогда надо будет глубже их доки смотреть.
Наметился небольшой прогресс:
Создал Helloworld.cpp в хостовом линуксе, скомпилил его там, закинул на демо-борду и оно работает!
Теперь хочу скомпилить туда текстовый редактор nano
godor2008, Отлично!
Я бы порекомендовал бэкапить весь корень вашего творения на каждом критическом шаге, или(лучше и) досконально вести ручной лог,- что куда и как, чтобы при неудачном действии не начинать всё с начала.
Перед этим я скачал и скомпилировал библиотеку ncurses в папку /home/sasha/target
Теперь вот хочу сконфигурировать nano на использование *.h и *.lib из ncurses. Но сейчас всё равно получаю во время конфигурирования:
text
checking ncurses.h usability... no
checking ncurses.h presence... no
checking for ncurses.h... no
checking for get_wch in -lncursesw... no
checking for initscr in -lncurses... no
checking curses.h usability... no
checking curses.h presence... no
checking for curses.h... no
checking for get_wch in -lcurses... no
checking for initscr in -lcurses... no
configure: WARNING:
*** No curses lib available. Consider getting the official ncurses
*** distribution from ftp://ftp.gnu.org/pub/gnu/ncurses if you get
*** errors compiling nano.
checking for ncurses.h... no
checking for get_wch in -lncursesw... no
checking for initscr in -lncurses... no
checking curses.h usability... yes
checking curses.h presence... no
configure: WARNING: curses.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: curses.h: proceeding with the compiler's result
checking for curses.h... yes
checking for get_wch in -lcurses... no
checking for initscr in -lcurses... no
configure: WARNING:
*** No curses lib available. Consider getting the official ncurses
*** distribution from ftp://ftp.gnu.org/pub/gnu/ncurses if you get
*** errors compiling nano.
checking for use_default_colors in -l... no
Получил 2 папки: /nanores/bin и /nanores/share
В /nanores/bin находится 1 исполняемый файл и ссылка на него.
Я это всё заархивировал и скинул на демоборду. При попытке к запуску выдает:
Посмотрел в гугле - пишут что ему может не хватать билиотеки
text
libncurses.a
. Я всю папку перекинул на демоборду и положил уже рядом с nano эту либу - не работает :( И папку специально lib создал и туда ее закинул. Безрезультатно:(
в параметрах configure нет флага --static. А если его прописать всё таки, то появится о том что это неизвестный параметр
Я, честно, не знаю какой параметр задавать для сборки статически (может кто знает?).
Можно собрать как обычно, да установить ncurses на целевую систему.