Да это действительно вопрос по сборке из исходников, а отнюдь не по фразе типа: "...ученик спросил учителя как изменить точку сборки..." Это та самая сборка из исходников с configure. Если говорить откровенно, то для debian, ubuntu и т.п. вроде всё нормально. А вот когда имеем некое устройство с linux и кросс-компилятор для него, то не всё так гладко. Этот самый configure запускает такое: Код (Text): config.guess config.sub shtool и др. А ещё и формирует Makefile в каждой директории проекта. И так же делает и config.status и логи. Кстати вот что выписывает: Код (Text): ## --------- ## ## Platform. ## ## --------- ## hostname = debian-i uname -m = i686 uname -r = 3.2.0-4-686-pae uname -s = Linux uname -v = #1 SMP Debian 3.2.96-2 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /usr/local/bin PATH: /usr/bin PATH: /bin PATH: /usr/local/games PATH: /usr/games PATH: /usr/bin ## ----------- ## Кстати пытался и делать этот configure на самом устройстве и верно платформу он определил. Вот еще и по подсказке ./configure --help Код (Text): igor@debian-i:~/coding/moxa/ia240_uc7112plus/nmap-5.35DC1$ ./configure --help `configure' configures this package to adapt to many kinds of systems. Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-nls do not use Native Language Support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-localdirs Explicitly ask compiler to use /usr/local/{include,libs} if they exist --without-ndiff Skip installation of the Ndiff utility --without-zenmap Skip installation of the Zenmap graphical frontend --without-nping Skip installation of the Nping utility --with-openssl=DIR Use optional openssl libs and includes from DIR/lib/ and DIR/include/openssl/) --with-libpcap=DIR Look for pcap in DIR/include and DIR/libs. --with-libpcap=included Always use version included with Nmap --with-libpcre=DIR Use an existing (compiled) pcre lib from DIR/include and DIR/lib. --with-libpcre=included Always use the version included with Nmap --with-libdnet=DIR Use an existing (compiled) dnet lib from DIR/include and DIR/lib. This is NOT RECOMMENDED because we have made many important fixes to our included libdnet, as described at http://nmap.org/svn/libdnet-stripped/NMAP_MODIFICATIONS --with-libdnet=included Use the libdnet version included with Nmap (default) --with-liblua=DIR Use an existing (compiled) lua lib from DIR/include and DIR/lib. --with-liblua=included Use the liblua version included with Nmap --without-liblua Compile without lua (this will exclude all of NSE from compilation) --with-libnbase=DIR Look for nbase include/libs in DIR --with-libnsock=DIR Compile and link to libnsock in DIR --without-ncat Skip build and installation of Ncat Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. igor@debian-i:~/coding/moxa/ia240_uc7112plus/nmap-5.35DC1$ Даже компилятор можно указать конкретно. Кстати что касается curl, 3proxy, то там в полуручном режиме всё сделал. А вот nmap никак. Сейчас редактирую каждый Makefile и пробую, но пока без успеха.
Во дела. И вопрос задать не можно? Или подсказать никто не сможет? Может имел кто опыт? Вот у меня например не получается. А надо (мне надо): smbclient и nmap. Они есть для малины и др. Надо только набрать apt-get install и т.п. А там (для устройства) это не прокатывает. Впрочем как и для dd-wrt в роутерах, но они там в прошивке и так есть. Это первое. ...а второе научиться так делать как положено. Как и спрашивал. Конфиг и т.п. Как принято везде и всегда. Может тогда и не стыдно будет, когда всё это уметь. Кстати тут: https://www.moxa.ru/forum/index.php?/topic/25195-сказка-про-nc-или-как-его-не-хватало/ выложил curl, nc, 3proxy самопальной ручной сборки. Для конкретного устройства.
Ай спасибочки. Сей аффтар если смогёт разрулить непременно опишет правила. А может ещё и тему USB-ETHERNET устройства типа на STM32. А щас пойду парьюся. А то яицы друг об друга стучат - больно
@Igor68, toolchain используете из Debian или то, что Moxa предлагает https://www.moxa.com/support/download.aspx?d_id=1764? У Moxa какая версия ядра?
Код (Text): www-data@192.168.1.240's password: #### #### ###### ####### ###### ## ### #### ### ### #### #### ### ### ### ### ### ### ## ### ### #### ## ## ### # #### #### # ## ### ### ### ## ## ## ## ## # ## ### ## #### # ## ## ### ## ## ## ## #### # ### ## ## # ## ## ## ### ####### ## ## # ## ### ### ##### # ## ## ### ## ### ### ## ### # ### ## ### ## ## ## ## ### ## ## ## ### ## ## ## # ### # ## ###### # ###### ######## ####### ########### ###### For further information check: http://www.moxa.com/ www-data@Moxa:~$ uname -a Linux Moxa 2.6.9-uc0 #118 Fri Jun 5 13:38:08 CST 2009 armv4tl unknown www-data@Moxa:~$ Компилятор идёт на диске с устройством. Эта не та MOXA, что уже с debian. А из серии IA240LX/UC-7112-Lx-plus
Попробовал в виртуалке с Debian9 i686 собрать под ARM. С командной строкой Код (Bash): ./configure --host=arm-linux-gnueabi заподозрили во мне массона-илюмината, а вот с Код (Bash): ./configure --host=arm-linux-gnueabi --with-libpcap=included --with-libdnet=included --without-subversion --without-liblua --without-zenmap --with-pcap=linux --without-ndiff --without-nmap-update --without-ncat --without-liblua --without-nping --without-openssl признали за динозавра-линуксектанта с легким праздничным перегаром. Но в любом случае компиляция завершалась ошибкой - судя по всему линкер вызывается неправильный Код (C++): /usr/bin/ld: libpcre/libpcre.a(pcre_compile.o): Relocations in generic ELF (EM: 40) /usr/bin/ld: libpcre/libpcre.a(pcre_compile.o): Relocations in generic ELF (EM: 40) libpcre/libpcre.a: error adding symbols: File in wrong format collect2: error: ld returned 1 exit status Makefile:133: recipe for target 'nmap' failed make[1]: *** [nmap] Error 1 make[1]: Leaving directory '/home/user/nmap' Makefile:183: recipe for target 'static' failed make: *** [static] Error 2
Доброго времени суток! В моём случае много испытал. И даже это: Код (C++): ./configure --help ./configure --prefix=/usr/local/arm-linux/\ --host=/usr/local/arm-linux/bin/arm-linux\ ARCH=arm\ CC=/usr/local/arm-linux/bin/arm-linux-gcc\ CXX=/usr/local/arm-linux/bin/arm-linux-g++\ CPP=/usr/local/arm-linux/bin/arm-linux-cpp\ AR=/usr/local/arm-linux/bin/arm-linux-ar\ STRIP=/usr/local/arm-linux/bin/arm-linux-strip\ LD=/usr/local/arm-linux/bin/arm-linux-ld Не считая тех ключей, что вы указали. И в Makefile была нормальная подстановка типа: Код (Text): CC = /usr/local/arm-linux/bin/arm-linux-gcc CXX = /usr/local/arm-linux/bin/arm-linux-g++ Но вот беда он (configure) запускал и остальное хозяйство типа configure.duess где вот этим: Код (C++): UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown портилось всё Решил делать по частям, ведь в каждой директории свой Makefile и вот заткнулся на libdnet-stripped. Скажу по совести потом делал конфигурацию по умолчанию и после make всё собиралось для этой машины(не для устройства), потом make clean для очистки. Подстановка в каждый Makefile свою часть типа /usr/local/arm-linux/bin/arm-linux-gcc, g++, ld и др. Одним словом ручная подмена на уже готовых Makefile и соответственно получены libpcap.so.1.1.1 libpcre.a и др. Кроме того что в директории libdnet-stripped а там это (до первой ошибки) Код (Text): igor@debian-i:~/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped$ make Making all in include make[1]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include' make all-recursive make[2]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include' Making all in dnet make[3]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include/dnet' make[3]: Цель `all' не требует выполнения команд. make[3]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include/dnet' make[3]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include' make[3]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include' make[2]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include' make[1]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include' Making all in src make[1]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/src' /bin/bash ../libtool --tag=CC --mode=compile /usr/local/arm-linux/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I../include -I../include -g -O2 -Wall -c -o route-linux.lo route-linux.c libtool: compile: /usr/local/arm-linux/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I../include -I../include -g -O2 -Wall -c route-linux.c -o route-linux.o In file included from /usr/local/arm-linux/arm-linux/sys-include/net/route.h:28, from route-linux.c:28: /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:30: error: parse error before "atomic_t" /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:67: error: parse error before '}' token /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:85: error: parse error before "atomic_t" /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:87: error: parse error before '}' token In file included from /usr/local/arm-linux/arm-linux/sys-include/linux/sched.h:13, from /usr/local/arm-linux/arm-linux/sys-include/net/inetpeer.h:14, from /usr/local/arm-linux/arm-linux/sys-include/net/route.h:29, from route-linux.c:28: Понятно, что можно и по ковырянию route.h и route-linux.c. Но так можно и вообще без всего, собрать полностью вручную. А вот собрать бы полноценный GCC для самого устройства, чтобы там и работал это да! Библиотеки и т.п. можно взять и от кросс-компилятора. Ведь они и так на это устройство. Именно для него и ни для кого более не пригодны. Я имею ввиду что бы можно было иметь эти утилиты на устройстве: Код (Text): -rwxr-xr-x 1 root root 306296 Окт 21 2003 arm-linux-addr2line -rwxr-xr-x 2 root root 284088 Окт 21 2003 arm-linux-ar -rwxr-xr-x 2 root root 490572 Окт 21 2003 arm-linux-as -rwxr-xr-x 2 root root 82228 Окт 21 2003 arm-linux-c++ -rwxr-xr-x 1 root root 305044 Окт 21 2003 arm-linux-c++filt -rwxr-xr-x 1 root root 82004 Окт 21 2003 arm-linux-cpp -rwxr-xr-x 2 root root 82228 Окт 21 2003 arm-linux-g++ -rwxr-xr-x 1 root root 85908 Окт 21 2003 arm-linux-g77 -rwxr-xr-x 2 root root 81812 Окт 21 2003 arm-linux-gcc -rwxr-xr-x 2 root root 81812 Окт 21 2003 arm-linux-gcc-3.3.2 -rwxr-xr-x 1 root root 15653 Окт 21 2003 arm-linux-gccbug -rwxr-xr-x 1 root root 85908 Окт 21 2003 arm-linux-gcj -rwxr-xr-x 1 root root 65244 Окт 21 2003 arm-linux-gcjh -rwxr-xr-x 1 root root 18580 Окт 21 2003 arm-linux-gcov -rwxr-xr-x 1 root root 5982190 Ноя 2 2005 arm-linux-gdb -rwxr-xr-x 1 root root 540680 Окт 21 2003 arm-linux-gnatbind -rwxr-xr-x 1 root root 63200 Окт 21 2003 arm-linux-jcf-dump -rwxr-xr-x 1 root root 66704 Окт 21 2003 arm-linux-jv-scan -rwxr-xr-x 2 root root 510200 Окт 21 2003 arm-linux-ld -rwxr-xr-x 2 root root 317112 Окт 21 2003 arm-linux-nm -rwxr-xr-x 1 root root 449624 Окт 21 2003 arm-linux-objcopy -rwxr-xr-x 1 root root 470300 Окт 21 2003 arm-linux-objdump -rwxr-xr-x 2 root root 284088 Окт 21 2003 arm-linux-ranlib -rwxr-xr-x 1 root root 172960 Окт 21 2003 arm-linux-readelf -rwxr-xr-x 1 root root 263232 Окт 21 2003 arm-linux-size -rwxr-xr-x 1 root root 263148 Окт 21 2003 arm-linux-strings -rwxr-xr-x 2 root root 449624 Окт 21 2003 arm-linux-strip
С наступающим Рождеством!!! Фраза из фильма "Взять тарантину" (повторяюсь): Код (Text): Эту историю мне рассказал дедушка Номто, когда я был совсем маленьким... и после того как я намазал скипмдаром под хвостиком у ослика дедушки Номто... Ученик у учителч спросил... - А можно ли услышать хлопок одной ладони? - Да - ответил учитель. И со всего размаху ударил ученика по лбу ученика своей ладонью... После чего ученик измкеил свою точку сборки. "Для того что бы услышать хлопок одной ладони достаточно иметь всего одну ладонь и хотя бы онну тупую бАшку" К чему я? А... вспомнил! Тут именно в этом разделе "флудилка" некотоое время назад была моя идея-предложение сделать очки для слепых, что смогут имея "сонарное зрение" ориентироваться в неком пространстве. Конечно они должны слышать нечто(звук разумеется). А тут было предложено (включаая ардуину) ряд интеллектуальных устройств, исключающих возможности живого слуха и мозга живого самого человека. Пяток тупых я понимаю, что достаточно и не на 100 лет (как Кузмич сказал), а лет эдак на 500 припасено(не менее). А тупьё и стерео от моно отличить не в состоянии. Мало того, что глухие, так и физику учить не желают. Одна только фраза "мой источник 5В 16А для малины не много? сгорит ведь!" много стоит! А что тогда с волной и её скоростью? ведь сказано, что ухо человека в состоянии отличить разнцу во времени зыука в десятые доли милисекунды (0.0001сек)(разница без полного анализа содержимого) . А потом задрамши хвост не отличают одно от другогго. А что касается именноэ той темы, то правда со сборкой пока проблема. Решил от овоего старого motorola motoming A1200e запустить на moxa uc7112-lx-plus запустить gcc... стартует, но на библиотеки рычит. Т.е. работать могёт. НАдо собрать компилятор именно на те либы, что имеются. Или делать эмуляцию x86 ядра с прибамбасами для запуска бинарников x86 на ARM9 (точнее armv4tl). Ничего этого пока не умею.
А как на счёт всезнающего гугла с яндексом? Вот например: http://dmilvdv.narod.ru/Translate/ELSDD/elsdd_cross-compiling_using_configure.html Только все свои правки в файлах сборки устраните.
Круто! А я думал, что именно это уже прочитал... и сделал даже закладку не менее 2-х дней назад. Хотя вновь пробую разные варианты, включая указания конкретного компилятора.
Круто! Осталось понять, что там написано, и попытаться сделать, как написано. Это хотя бы для начала. А то занимаетесь какой-то ерундой. Вот это вот: Код (Bash): ./configure --prefix=/usr/local/arm-linux/\ --host=/usr/local/arm-linux/bin/arm-linux\ ARCH=arm\ CC=/usr/local/arm-linux/bin/arm-linux-gcc\ CXX=/usr/local/arm-linux/bin/arm-linux-g++\ CPP=/usr/local/arm-linux/bin/arm-linux-cpp\ AR=/usr/local/arm-linux/bin/arm-linux-ar\ STRIP=/usr/local/arm-linux/bin/arm-linux-strip\ LD=/usr/local/arm-linux/bin/arm-linux-ld откуда взяли? И что этим хотели сказать?
Обратите внимание, что это тупость, которую я признаю. Не редактирую прошлое, потому как прочитано всеми. И скрывать своё незнание не буду - не честно! А то, что мне стыдно за это - это честно. Кстати а вот это: Код (Text): CC=/usr/local/arm-linux/bin/arm-linux-gcc\ CXX=/usr/local/arm-linux/bin/arm-linux-g++\ CPP=/usr/local/arm-linux/bin/arm-linux-cpp\ подставило в Makefile значения для CC и др. А если умел бы (учусь вот), то не создавал мусорные темы и не задавал глупых вопросов.
Если хотите продвинуться в решении проблемы, то сначала сделайте так, как описано в руководстве, ссылку на которое дал выше и Вы его изучили "не менее 2-х дней назад". А потом сообщите с какими проблемами столкнулись.