КонстантинТ 0 27 июня, 2011 Опубликовано 27 июня, 2011 · Жалоба Написал это скрипт (выкладываю как есть, времени оптимизировать не было), тк статическая сборка mc (чтобы не тянуть на платформу ничего лишнего и потом легко можно было удалить) не совсем тривиальная задача. Тестировал на Ubunte x86_64. Предварительно надо в каталоге /opt хост машины под рутом создать каталог mc и дать права на запись. В системе должен быть установлен компилятор для кросс компиляции под нужную платформу (в моем случае arm-none-linux-gnueabi) #!/bin/sh cd $HOME mkdir $HOME/mccrosscompile export DEST=$HOME/mccrosscompile cd $DEST mkdir $DEST/src mkdir $DEST/lib mkdir $DEST/include cd $DEST/src wget ftp://ftp.fu-berlin.de/pub/unix/misc/slan...ng-2.1.4.tar.gz tar zxf slang-2.1.4.tar.gz cd slang-2.1.4/ CFLAGS="$CFLAGS -O2 -mcpu=arm926ej-s" ./configure --host=arm-none-linux-gnueabi --build=x86_64 --prefix=$DEST --without-png --enable-static make clean -j7 && make -j7 && make static -j7 cp -d $DEST/src/slang-2.1.4/src/objs/libslang.a $DEST/lib/ cp -d $DEST/src/slang-2.1.4/src/*.h $DEST/include/ cd .. # wget http://zlib.net/zlib-1.2.5.tar.gz tar zxf zlib-1.2.5.tar.gz cd zlib-1.2.5 CFLAGS="$CFLAGS -O2 -mcpu=arm926ej-s" CC='arm-none-linux-gnueabi-gcc' ./configure --prefix=$DEST --static make clean -j7 && make -j7 && make static -j7 cp -d $DEST/src/zlib-1.2.5/libz.a $DEST/lib/ cp -d $DEST/src/zlib-1.2.5/*.h $DEST/include/ cd .. # wget http://ftp.gnome.org/pub/gnome/sources/gli...b-2.28.7.tar.gz tar zxf glib-2.28.7.tar.gz cd glib-2.28.7 CFLAGS="$CFLAGS -O2 -mcpu=arm926ej-s" ZLIB_CFLAGS="-I$DEST/include" ZLIB_LIBS="-L$DEST/lib -L$DEST/lib -lz" CFLAGS="$CFLAGS ${ZLIB_CFLAGS}" LDFLAGS="$LDFLAGS ${ZLIB_LIBS}" glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes ./configure --host=arm-none-linux-gnueabi --prefix=$DEST --build=x86_64 --enable-static make clean -j7 && make -j7 && make install -j7 cd .. # wget http://www.midnight-commander.org/download...-4.7.5.2.tar.gz tar zxf mc-4.7.5.2.tar.gz cd mc-4.7.5.2/ ac_cv_search_has_colors="-lslang" PKG_CONFIG_PATH=$DEST/lib/pkgconfig CFLAGS="$CFLAGS -O2 -mcpu=arm926ej-s" ./configure --host=arm-none-linux-gnueabi --build=x86_64 --with-zlib-static --with-glib-static --with-screen=slang --with-slang-includes=$DEST/include --with-slang-libs=$DEST/lib --without-x --without-gpm-mouse --enable-static=yes --disable-shared --disable-vfs --disable-doxygen-html --disable-doxygen-doc --disable-doxygen-dot CC='arm-none-linux-gnueabi-gcc -static -static-libgcc -fno-exceptions' CXX='arm-none-linux-gnueabi-g++ -static -static-libgcc -fno-exceptions' LDFLAGS='-Wl,-static -static -lc -lrt' LIBS='-lc -lrt ' --prefix=/opt/mc GLIB_LIBS=$DEST/lib/libglib-2.0.a make clean -j7 && make -j7 && make install -j7 После окончания сборки вся папка /opt/mc переносится на целевую машину и при необходимости удалятся. /opt/mc/bin нужно добавить в PATH. Также в файл .bashrc (или .profile еслив системе busybox) необходимо добавить строчку export TERM=xterm После отладки софта mc удаляется легким движением рук :-) Размер полученного бинарника 2,4Мб. Просьба протестировать под другие платформы (mipsel..) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 27 июня, 2011 Опубликовано 27 июня, 2011 · Жалоба Размер полученного бинарника 2,4Мб. Да, размером очень удивили. Я думал, что он только снаружи убоговат, так он еще и внутри страшен :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 27 июня, 2011 Опубликовано 27 июня, 2011 · Жалоба Да, размером очень удивили. Я думал, что он только снаружи убоговат, так он еще и внутри страшен :( Может он просто не strip-нут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 27 июня, 2011 Опубликовано 27 июня, 2011 · Жалоба Может он просто не strip-нут? mc с v4.7 (?) тянет за собой glib (TC собирал mc с zlib и slang, но можно и без них). На безгуёвых машинах мне mc-light симпатичнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
КонстантинТ 0 28 июня, 2011 Опубликовано 28 июня, 2011 · Жалоба Может он просто не strip-нут? strip не делал, вы правы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 28 июня, 2011 Опубликовано 28 июня, 2011 · Жалоба strip не делал, вы правы. а сколько получается после strip ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
КонстантинТ 0 28 июня, 2011 Опубликовано 28 июня, 2011 · Жалоба а сколько получается после strip ? 1,86 с выключенной поддержкой VFS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 29 июня, 2011 Опубликовано 29 июня, 2011 · Жалоба 1,86 с выключенной поддержкой VFS секционироване кода и данных указывали компиллеру и линкеру, кто его этот mc знает - мож там много "мертвых тканей" ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ixt 0 2 июля, 2011 Опубликовано 2 июля, 2011 · Жалоба (TC собирал mc с zlib и slang, но можно и без них). Без slang - значит с ncurses. Хрен редьки не слаще. На безгуёвых машинах мне mc-light симпатичнее. mc вышел из состояния стагнации, в нём постоянно правят баги(а их хватает) и добавляют фичи. mc-light - это что-то заброшенное из 2004-го года? На любителя. Размер mc можно ещё слегка уменьшить, если отключить заведомо ненужное на embedded: если конфигурировать glib, например с опциями --disable-selinux --disable-fam --disable-largefile Ну и mc c --without-x --disable-largefile --disable-nls А вообще не вижу смысла всё собирать статически. Могут понадобиться ещё программы кроме mc. Для того же gdb нужен ncurses, он может быть общим с mc и т.д. После отладки софта mc удаляется легким движением рук :-) Зачем удалять? Нужно просто прошить прошивку в которой нет ничего не нужного. Так повторяемость и воспроизводимость получим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
und68 0 9 апреля, 2012 Опубликовано 9 апреля, 2012 · Жалоба У меня с налету ничего не вышло.В линюксе новичок. Версия Linux debian 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i686 GNU/Linux это что была с платой SK-AT91SAM9XE512-S3E Библиотке простроиласть сраху только одна libz.a При построение остальныx ошибки, конец выполнения файла для построения библтотек с ошибками в подклеенных файлах. В принципе мне нужен только MC, может кто выложит готовый glib.txt slang.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alx2 0 10 апреля, 2012 Опубликовано 10 апреля, 2012 · Жалоба При построение остальныx ошибки, конец выполнения файла для построения библтотек с ошибками в подклеенных файлах. По glib: Опция -Bsymbolic-functions у линкера появилась начиная с версии 2.18. У Вас, видимо, binutils более старой версии. Вам следует либо использовать более свежий binutils (текущая версия 2.22), либо найти в исходниках glib эту опцию и убрать. По slang: не найден файл pcre.h. Во-первых, убедитесь, что он у Вас вообще есть (то есть должен быть собран и установлен pcre). Во-вторых, попробуйте при конфигурации указать slang'у, где лежит pcre, добавив в команду конфигурации --with-pcre=DIR И еще я бы посоветовал воспользоваться каким-нибудь готовым фреймворком для сборки системы и всех приложений, типа openwrt или openembedded, вместо того чтобы все собирать вручную. Тем более если Вы - новичок... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
und68 0 10 апреля, 2012 Опубликовано 10 апреля, 2012 · Жалоба По glib: Опция -Bsymbolic-functions у линкера появилась начиная с версии 2.18. У Вас, видимо, binutils более старой версии. Вам следует либо использовать более свежий binutils (текущая версия 2.22), либо найти в исходниках glib эту опцию и убрать. По slang: не найден файл pcre.h. Во-первых, убедитесь, что он у Вас вообще есть (то есть должен быть собран и установлен pcre). Во-вторых, попробуйте при конфигурации указать slang'у, где лежит pcre, добавив в команду конфигурации --with-pcre=DIR И еще я бы посоветовал воспользоваться каким-нибудь готовым фреймворком для сборки системы и всех приложений, типа openwrt или openembedded, вместо того чтобы все собирать вручную. Тем более если Вы - новичок... Спасибо за ответ. Полез разбиратся и читать про PCRE ,opewwrt и прочие вещи. У меня к Вам большая просьба - Вы может для меня собрать MC под ARM9, а то время поджимает. На этой плате разработано устройство и для его отладки мне переодически надо править файлы на SD(MMC), котоая вставлена в эту плату. Сейчас все происхордит очень долго - по tftp я гоню этот файл на линукс PC, там его правлю и снова по ftp на arm. Но это долго - поэтому и прошу Вас собрать его и выложить для меня. А чуть позже когда появится время и до MC доберусь, а дальше переход на новое ядро линукса на ARM и новый BuildRoot, так как надо помять состав встроенных утилит Сейчас получилось запустить только связку eclipse + gdbdebug, но и то она немного кривовато работает, выполняемый модуль приходится пока самому на ARM закачивать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
faa 4 11 апреля, 2012 Опубликовано 11 апреля, 2012 · Жалоба Сейчас все происхордит очень долго - по tftp я гоню этот файл на линукс PC, там его правлю и снова по ftp на arm. А пристегнуть файловую систему с махарайки к хосту по NFS что мешает? Или наоборот - для отладки примонтируйте к изделию по NFS же хостовую и правьте. После окончания правок и отладок сверните все в образ и залейте на SD/MMC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alx2 0 11 апреля, 2012 Опубликовано 11 апреля, 2012 · Жалоба У меня к Вам большая просьба - Вы может для меня собрать MC под ARM9, а то время поджимает. На этой плате разработано устройство и для его отладки мне переодически надо править файлы на SD(MMC), котоая вставлена в эту плату. Если надо только править фйлы, зачем Вам такой монстр как mc? Не лучше ли взять, например, nano? Вот, собрал, попробуйте: http://www.intellectronika.ru/utils/nano.tgz mc сходу не собрался, а разбираться почему времени и желания у меня нет. Так что извините, с mc не помогу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
und68 0 11 апреля, 2012 Опубликовано 11 апреля, 2012 · Жалоба А пристегнуть файловую систему с махарайки к хосту по NFS что мешает? Или наоборот - для отладки примонтируйте к изделию по NFS же хостовую и правьте. После окончания правок и отладок сверните все в образ и залейте на SD/MMC. Образ был сделан до меня и NFS там нет Сходу его включить не получилось Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться