Page 4 of 10 FirstFirst ... 23456 ... LastLast
Results 46 to 60 of 143

Thread: Переход от нативной компиляции к кросс-компиляции

  1. #46
    Quote Originally Posted by ryzhov_al View Post
    В моём случае тоже перестала запускаться:
    Code:
    $ mount | grep ext3
    /dev/discs/disca/part2 on /opt type ext3 (rw,noatime,data=ordered)
    /dev/discs/disca/part1 on /tmp/storage type ext3 (rw,noatime,data=ordered)
    $ ls /tmp/mnt/
    $ ls /tmp/ | grep harddisk
    $
    монтируй не на /tmp/storage, а на /tmp/mnt/disc*
    пока - так, подробнее в rc/services_ex.c/hotpug_usb_mass()


    Quote Originally Posted by lly View Post
    Выражайся пожалуйста корректнее - не перестала работать, а перестала запускаться автоматом. Это фича еще от Олега - автозапуск только по /tmp/mnt /tmp/harddisk
    а точнее /tmp/harddisk будет симлинком на первый /tmp/mnt/disc* moutpoint

  2. #47
    Коллеги, раньше наш репозиторий optware (ветка OPTWARE_TARGET=oleg) достаточно активно обновлялся. Я сейчас случайно обнаружил, что в дереве тулчейна optware доступна и новая libevent и новый transmission:
    Code:
    $ svn co http://svn.nslu2-linux.org/svnroot/optware/trunk /media/Projects/optware/
    U    /media/Projects/optware/Makefile
    U    /media/Projects/optware/make/transmission.mk
    U    /media/Projects/optware/make/avahi.mk
    U    /media/Projects/optware/make/samba35.mk
    U    /media/Projects/optware/make/mc.mk
    U    /media/Projects/optware/make/libevent.mk
    U    /media/Projects/optware/make/samba2.mk
    U    /media/Projects/optware/make/libtorrent-rasterbar.mk
    Получена редакция 12246.
    $ cat /media/Projects/optware/make/transmission.mk | grep "^TRANSMISSION_VER"
    TRANSMISSION_VERSION=2.20
    $ cat /media/Projects/optware/make/libevent.mk | grep "^LIBEVENT_VER"
    LIBEVENT_VERSION=2.0.10
    Получается, что нашу ветку пакетов мейнтейнеры optware забросили?

  3. #48
    Quote Originally Posted by ryzhov_al View Post
    С 15.02.11г по сегодняшний день в репозитории optware не хватает ряда пакетов.
    Коллеги, репозиторий optware снова в строю. На моей памяти это был самый длительный промежуток времени, когда с ним были проблемы. Срок "заморозки" репозитория составил почти полтора месяца.

  4. #49
    Отлично, попробую с мейнтейнерами еще разок связаться, наши пакеты перекинуть

  5. #50
    Quote Originally Posted by theMIROn View Post
    Отлично, попробую с мейнтейнерами еще разок связаться, наши пакеты перекинуть
    Я не готов предоставить ВСЕ make-файлы для автоматизированной сборки. А без выполнения пунктов PackagingBestPractices нам там не обрадуются.

    Чуть позже перечислю пакеты, для которых можно предоставить make-файлы с патчами.

  6. #51

    Кросс-компиляция для самых маленьких

    Коллеги, чтобы не повторяться, опишу создание среды для кросс-компиляции на основе последней Ubuntu. Для сборки из Windows чайнику необходимо:
    ...


    Статья перенесена в Wiki.
    Last edited by ryzhov_al; 29-04-2011 at 15:10.

  7. #52
    В нём напоследок можно подсмотреть какой ip-адрес присвоен VM
    Ну зачем же так. Если соединение "мост", то сетевой адаптер VM будет получать ip от домашнего DHCP сервера. Или привязать ip по маку, или руками задать в VM.

    Я предпочитаю работать в VM. Для передачи файлов на ББ использую vboxsf. Ну и другие протоколы cifs/ftp/scp никто не отменял.

  8. #53
    Join Date
    Feb 2008
    Location
    Moscow, Tver
    Posts
    3,962
    Пытаюсь кросскомпилить LCD4linux на Debian 5.

    ./configure из Wiki проходит без ошибок, а при make получаю:
    Code:
    ...........
    hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-gcc -DHAVE_CONFIG_H -I.   -O2 -pipe  -D_GNU_SOURCE -Wall -W -fno-strict-aliasing -g -O2 -MT drv_Curses.o -MD -MP -MF .deps/drv_Curses.Tpo -c -o drv_Curses.o drv_Curses.c
    drv_Curses.c:45:20: error: curses.h: No such file or directory
    drv_Curses.c:63: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
    drv_Curses.c:64: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
    drv_Curses.c: In function 'drv_Curs_clear':
    и т.д.
    libncurses естественно стоят, остальное все собирается на ура, например LCDProc.

  9. #54
    drv_Curses.c:45:20: error: curses.h: No such file or directory
    Библиотека ncurses установлена. А интерфейсы?
    • libncurses-dev стоит и curses.h доступен по путям поиска (gcc -I/path/to/dir-with-curses-h)?
    • не используются ли при конфигурировании исходников curses хост-системы (ubuntu/debian/name one)?

  10. #55
    Join Date
    Feb 2008
    Location
    Moscow, Tver
    Posts
    3,962
    Quote Originally Posted by ryzhov_al View Post
    Библиотека ncurses установлена. А интерфейсы?
    • libncurses-dev стоит и curses.h доступен по путям поиска (gcc -I/path/to/dir-with-curses-h)?
    • не используются ли при конфигурировании исходников curses хост-системы (ubuntu/debian/name one)?
    Стоят конечно.
    Code:
    # locate curses.h
    /usr/include/curses.h
    /usr/include/ncurses.h
    /usr/include/ncursesw/curses.h
    /usr/include/ncursesw/ncurses.h
    И обычная компиляция под хостовую систему проходит без ошибок.

    Пытался указывать в опциях ./configure путь к curses.h ( --with-ncurses=/usr/include), никак не повлияло на результат.

    Если тупо подложить хостовый /usr/include/curses.h в директорию компиляции - ошибка эта исчезает, но выдает кучу ошибок типа:
    Code:
    .........
    drv_Curses.c:66: error: storage class specified for parameter 'EROWS'
    drv_Curses.c:74: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:82: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:103: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:111: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:153: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:211: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:222: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:278: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:286: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:347: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
    drv_Curses.c:368: error: expected declaration specifiers before 'DRIVER'
    drv_Curses.c:373: error: expected declaration specifiers before ';' token
    drv_Curses.c:373: error: old-style parameter declarations in prototyped function definition
    ./curses.h:225: error: parameter name omitted
    drv_Curses.c:373: error: expected '{' at end of input
    make[1]: *** [drv_Curses.o] Error 1

  11. #56
    Quote Originally Posted by vectorm View Post
    Стоят конечно.
    ...
    Пытался указывать в опциях ./configure путь к curses.h ( --with-ncurses=/usr/include), никак не повлияло на результат.
    Не-не-не, Дэвид Блэйн! Это путь до интерфейсов curses хост-машины. Необходимо указать путь до интерфейсов ncurses, скомпилированной для роутера. Другими словами, необходимо:
    • скачать и распаковать ncurses для роутера.
    • скачать и распаковать интерфейсы ncurses для роутера.
    • проставить ключи для компилятора (-I...) и линковщика (-L...) указанным ниже образом.

    Code:
    $ cat /media/Projects/mk_optware.sh
    #!/bin/sh
    AR=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-ar \
    AS=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-as \
    LD=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-ld \
    NM=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-nm \
    CC=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-gcc \
    CPP="/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-gcc -E" \
    GCC=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-gcc \
    CXX=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-g++ \
    RANLIB=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-ranlib \
    STRIP=/media/Projects/optware/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-strip \
    CPPFLAGS="-O2 -pipe -I/media/Projects/optware/staging/opt/include " \
    LDFLAGS=" -L/media/Projects/optware/staging/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,/media/Projects/optware/staging/opt/lib " \
    ./configure \
    --build=i386-pc-linux-gnu \
    --host=mipsel-linux \
    --target=mipsel-linux \
    --prefix=/media/Projects/projects/make-install/opt \
    ...
    где /media/Projects/optware/staging/opt/include и /media/Projects/optware/staging/opt/lib, соответственно, пути до распакованных интерфейсов ncurses и самой libncurses.
    Хочу заметить, что процедура сборки зависимых библиотек в тулчейне optware автоматизирована. Приведённый выше кусок скрипта выдран из этой автоматизации.

    А ещё хочу заметить, что вы пытаетесь собрать lcd4linux тулчейном энтузиастов, а зависимая ncurses собрана тулчейном optware. Во избежание хитропереподвыподвернутых неприятностей, используйте в процессе сборки один и тот же тулчейн.
    Last edited by ryzhov_al; 29-05-2011 at 12:45.

  12. #57
    Join Date
    Feb 2008
    Location
    Moscow, Tver
    Posts
    3,962
    Quote Originally Posted by ryzhov_al View Post
    Не-не-не, Дэвид Блэйн! Это путь до интерфейсов curses хост-машины. Необходимо указать путь до интерфейсов ncurses, скомпилированной для роутера.

    А ещё хочу заметить, что вы пытаетесь собрать lcd4linux тулчейном энтузиастов, а зависимая ncurses собрана тулчейном optware. Во избежание хитропереподвыподвернутых неприятностей, используйте в процессе сборки один и тот же тулчейн.
    Скомпилил ncurses 5.9, libusb 1.0, разложил по папочкам, все проверки наличия (n)curses и l(n)curses проходят на ура, lcd4linux собрался (тулчейном Энтузиастов):
    http://asus.vectormm.net/compiled%20...inux%200.11.0/

    Пытаюсь пересобрать lcdproc, чтобы собрать драйвер curses:
    Code:
    hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-gcc -fPIC -Wall  -O3 -Wno-unused-function -shared -Lhndtools-mipsel-uclibc-4.3.5-K26/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,hndtools-mipsel-uclibc-4.3.5-K26/lib  -o curses.so curses_drv.o -lncurses -ldl
    hndtools-mipsel-uclibc-4.3.5-K26/lib/gcc/mipsel-linux-uclibc/4.3.5/../../../../mipsel-linux-uclibc/bin/ld: hndtools-mipsel-uclibc-4.3.5-K26/lib/libncurses.a(lib_addch.o): relocation R_MIPS_HI16 against `__gnu_local_gp' can not be used when making a shared object; recompile with -fPIC
    hndtools-mipsel-uclibc-4.3.5-K26/lib/libncurses.a: could not read symbols: Bad value
    collect2: ld returned 1 exit status
    make[3]: *** [curses.so] Error 1
    Как победить?
    Last edited by vectorm; 29-05-2011 at 15:04.

  13. #58
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by vectorm View Post
    Как победить?
    Ну ответ же написан в тексте
    recompile with -fPIC
    Начиная с версии 4.2 gcc требует, чтобы .so библиотеки были собраны с ключом -fPIC

  14. #59
    Join Date
    Feb 2008
    Location
    Moscow, Tver
    Posts
    3,962
    Quote Originally Posted by lly View Post
    Ну ответ же написан в тексте


    Начиная с версии 4.2 gcc требует, чтобы .so библиотеки были собраны с ключом -fPIC
    я уже как-то раньше сталкивался с этой рекомендацией, но не помню, как обходил...

    Все, разобрался:
    Code:
    CPPFLAGS="-O2 -pipe -fPIC -I/opt/brcm/hndtools-mipsel-uclibc-4.3.5-K26/include " \
    Last edited by vectorm; 29-05-2011 at 15:42.

  15. #60
    Join Date
    Nov 2006
    Location
    Russia, Moscow
    Posts
    3,640
    Quote Originally Posted by vectorm View Post
    Это к libusb относится? У curses нет .so файлов.
    Надо поднимать доку - в каких-то случаях это относится и к .a

Page 4 of 10 FirstFirst ... 23456 ... LastLast

Similar Threads

  1. Entware - новый репозиторий для роутеров Asus (MIPS)
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 1391
    Last Post: 04-01-2021, 22:16
  2. Переход на летнее время - проблема с timezone
    By ABATAPA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 101
    Last Post: 22-12-2014, 12:45
  3. Кросс-компиляция rTorrent
    By al37919 in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 94
    Last Post: 22-04-2012, 20:48

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •