Page 4 of 7 FirstFirst ... 23456 ... LastLast
Results 46 to 60 of 95

Thread: Кросс-компиляция rTorrent

  1. #46
    Ну я бы предположил, что что-то не в порядке с $ECHO.
    Смотрите определение переменной ранее по коду.
    Если смотреть в корень проблемы - что-то не так с используемой версией libtool.
    Last edited by Novik; 24-11-2010 at 10:14.

  2. Некое продвижение, но в странном направлении. )
    Я разбирал команду, которая валится с ошибкой (новыми строками выделил для удобства):
    Code:
    /bin/bash ../libtool 
    --tag=CXX   
    --mode=link 
    /opt/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/nowrap/mipsel-linux-uclibc-g++ -g -O2 -g -DDEBUG 
    -I/opt/optware/oleg/staging/opt/include/sigc++-2.0 
    -I/opt/optware/oleg/staging/opt/lib/sigc++-2.0/include   
    -I/opt/optware/oleg/staging/opt/include   
    -I/opt/optware/oleg/staging/opt/include   
    -I/opt/optware/oleg/staging/opt/include   
    -L/opt/optware/oleg/staging/opt/lib 
    -Wl,-rpath,/opt/lib 
    -Wl,-rpath-link,/opt/optware/oleg/staging/opt/lib  
    -o rtorrent 
    command_download.o 
    command_dynamic.o 
    command_events.o 
    command_file.o 
    command_helpers.o 
    command_local.o 
    command_network.o 
    command_object.o 
    command_peer.o 
    command_tracker.o 
    command_scheduler.o 
    command_ui.o 
    control.o 
    globals.o 
    main.o 
    option_parser.o 
    signal_handler.o 
    thread_base.o 
    ui/libsub_ui.a 
    core/libsub_core.a 
    display/libsub_display.a 
    input/libsub_input.a 
    rpc/libsub_rpc.a 
    utils/libsub_utils.a 
    -lncursesw  
    -L/opt/optware/oleg/staging/opt/lib -lsigc-2.0   
    -L/opt/optware/oleg/staging/opt/lib -lcurl   
    -L/opt/optware/oleg/staging/opt/lib -ltorrent   
    -L/opt/lib   -lxmlrpc_server -lxmlrpc -lxmlrpc_util 
    -L/opt/optware/oleg/staging/opt/lib -lxml2 -lz -lm
    Взял и запустил часть этой команды:
    Code:
    /opt/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/nowrap/mipsel-linux-uclibc-g++ -g -O2 -g -DDEBUG 
    -I/opt/optware/oleg/staging/opt/include/sigc++-2.0 
    -I/opt/optware/oleg/staging/opt/lib/sigc++-2.0/include   
    -I/opt/optware/oleg/staging/opt/include   
    -I/opt/optware/oleg/staging/opt/include   
    -I/opt/optware/oleg/staging/opt/include   
    -L/opt/optware/oleg/staging/opt/lib 
    -Wl,-rpath,/opt/lib 
    -Wl,-rpath-link,/opt/optware/oleg/staging/opt/lib  
    -o rtorrent 
    command_download.o 
    command_dynamic.o 
    command_events.o 
    command_file.o 
    command_helpers.o 
    command_local.o 
    command_network.o 
    command_object.o 
    command_peer.o 
    command_tracker.o 
    command_scheduler.o 
    command_ui.o 
    control.o 
    globals.o 
    main.o 
    option_parser.o 
    signal_handler.o 
    thread_base.o 
    ui/libsub_ui.a 
    core/libsub_core.a 
    display/libsub_display.a 
    input/libsub_input.a 
    rpc/libsub_rpc.a 
    utils/libsub_utils.a 
    -lncursesw  
    -L/opt/optware/oleg/staging/opt/lib -lsigc-2.0   
    -L/opt/optware/oleg/staging/opt/lib -lcurl   
    -L/opt/optware/oleg/staging/opt/lib -ltorrent   
    -L/opt/lib   -lxmlrpc_server -lxmlrpc -lxmlrpc_util 
    -L/opt/optware/oleg/staging/opt/lib -lxml2 -lz -lm
    Она скомпилила все исходники в один файл rtorrent размером 13 Мбайт. Я подложил его на роутер и запустил вместо того, что шел в пакете. Все работает.
    А странно вот что: rtorrent из пакета "весит" всего 1,6 Мб.

  3. #48
    Quote Originally Posted by dfayruzov View Post
    А странно вот что: rtorrent из пакета "весит" всего 1,6 Мб.
    http://citforum.ru/operating_systems.../STRIP.1.shtml

  4. Спасибо, понял. )
    Правда, попытка сделать стрип на машине для кросс-компиляции выглядит вот так:
    Code:
    root@ubuntu-dev:/opt/optware/oleg/builds/rtorrent/src# strip rtorrent
    strip: Unable to recognise the format of the input file `rtorrent'

  5. #50
    Quote Originally Posted by dfayruzov View Post
    Спасибо, понял. )
    Правда, попытка сделать стрип на машине для кросс-компиляции выглядит вот так
    А попытка запустить этот rtorrent на машине для кросс-компиляции как выглядит?
    Зачем Вы занимаетесь глупостями?
    1) В тулчейне есть соотв. бинарник - что-то-там-strip для работы с кросс-компиленными бинарниками.
    2) Что Вам мешает сделать это непосредственно на роутере?

  6. #51
    Позволю себе немного полуофтопика
    что-то не так с используемой версией libtool.
    Очень похоже на правду. Когда я пытался собрать тулчейн для одной из платформ - с полпинка проходила сборка только если в системе были binutils версии не старше 2.19. Поэтому и остановился на Mandriva 2010.0 и дибиане 5.06.

    А странно вот что: rtorrent из пакета "весит" всего 1,6 Мб.
    Как подсказали, нужно запускать strip. Он запускается при выполнении make rtorrent-check.

    Что Вам мешает сделать это непосредственно на роутере?
    Ну это a) неспортивно, б) чаще нужно править сырцы. Glibc кросскомпилится как из пушки, нативно - после танцев (на платформе arm)

  7. #52
    Quote Originally Posted by Zyxmon View Post
    Ну это a) неспортивно, б) чаще нужно править сырцы. Glibc кросскомпилится как из пушки, нативно - после танцев (на платформе arm)
    Не совсем понял, зачем для запуска strip rtorrent непосредственно на роутере нужно править какие-то сырцы...
    Если речь о компиляции rtorrent непосредственно на роутере - то это не "неспортивно", а невозможно. По крайней мере без очень серьезной работы напильником. Результат прекратит работу после первого же throw из libtorrent.so.
    Last edited by Novik; 24-11-2010 at 11:29.

  8. Novik, во первых, спасибо просто за то что не прошли мимо. )
    Во вторых, я этим занимаюсь, чтобы разобраться -- некий туториал, не более того.
    Изначально задача выглядит так: у коллеги RT-N16, он попросил помочь настроить ему из роутера качалку торрентов. После чего я первым делам установил и настроил rtorrent из репы и веб-морду. Но пользоваться им нормально не удалось: он стабильно вылетает каждые 10-15 минут. Ни один из предложенных рецептов (а их много, поверьте мне) не помог. В тот момент я решил поучиться и перенести на wl500g deluged, так как пользуюсь им на своей качалке. Нашел пост, в котором описывалось, что человек смог перенести демона deluge на платформу mipsel:
    I finally realized that there are many parts here. I had cross-compiled rasterbar-libtorrent as a shared object. It uses boost. I was able to use the test client to make sure this worked. I ported Python to my mipsel-linux platform. I had to fight with some packages but it all appears to be working ok. I was able to build the deluge package and take the .egg (and built files) over to my target. This appeared to install ok. After changing some paths, I was able to run "deluge". It will serve the web pages.
    Now came the interesting part. Deluged needed the python extensioned versions of the rasterbar-libtorrent libraries. I found how to build those and installed that on the target. I started getting unresolved externals for boost (mangled name items). I found that I needed to do the same for Boost and link the python bound boost libs to the libtorrent SO. I then put that on target hardware (with other headaches of gcc/g++ link issues). Deluged now runs. However, while starting up it is causing an assertion failure in the destructor of disk_io_thread. It appears the disk_io_thread object is being destroyed but was not notified cleanly. My guess is this is an innocent bystander and the real issue is something else went wrong and the object happened to be destroyed prematurely as the disk_io_thread should stay alive for the life of execution.

    After running strace I realized that the libtorrent library was trying to make a system call (epoll) that my kernel was not configured with. After changing the bjam config script to disable epoll I am able to run deluge (web ui) and deluged (the daemon). These are successfully running on a little endian MIPS processor (199Mhz I think). It appears to be doing a pretty good job. Once in the web UI under preferences, I set the template to AJAX and the Theme to Classic. It is still pretty responsive and looks good.
    Если получилось у кого-то, то почему бы не попробовать? Вот я и разбираюсь. Настроил среду кросс-компиляции, скомпилировал transmission, теперь rtorrent. Вслед займусь deluged. Почему глупости-то?

    PS: у коллеги на самом деле уже давно настроен (тоже в порядке эксперимента) и нормально качает кросс-компиленный transmission.
    PPS: кросс-компиленный rtorrent точно также падает, как и из репы.
    Last edited by dfayruzov; 24-11-2010 at 11:40.

  9. #54
    Quote Originally Posted by dfayruzov View Post
    пользоваться им нормально не удалось: он стабильно вылетает каждые 10-15 минут.
    Нужно, IMHO, не искать себе лишнюю работу, а просто разобраться - чего же это он у Вашего друга падает. Тогда как у других нормально работает.
    Причина с достаточно большой вероятностью - нехватка памяти. Лечится она добавлением swap (если его почему-то еще нет) и урезанием receive_buffer_size и send_buffer_size до 4К вместо 16К по умолчанию. Возможен и прочий тюнинг.
    Quote Originally Posted by dfayruzov View Post
    Вслед займусь deluged. Почему глупости-то?
    Потому, что deluge, мягко говоря, не славится малым потреблением ресурсов. В отличие от поминавшихся transmission и rtorrent. Но, разумеется, если Вам таки хочется убедиться в этом лично, то никто Вас неволить не может.

  10. #55
    Quote Originally Posted by Novik View Post
    ... Если речь о компиляции rtorrent непосредственно на роутере...
    Это я Вас неправильно понял, думал речь именно об этом.

  11. #56
    Да дело, видимо, в версии libtool. Не все новые версии одинаково полезны. Под debian собралось все как из пушки.
    В debian
    Code:
    $ libtool --version
    ltmain.sh (GNU libtool) 1.5.26 Debian 1.5.26-4+lenny1 (1.1220.2.493 2008/02/01 16:58:18)
    в mandriva 2010.0
    Code:
    $ libtool --version
    ltmain.sh (GNU libtool) 2.2.6

  12. #57

    Уважаемый Гуру!

    Quote Originally Posted by Novik View Post
    Не совсем понял, зачем для запуска strip rtorrent непосредственно на роутере нужно править какие-то сырцы...
    Если речь о компиляции rtorrent непосредственно на роутере - то это не "неспортивно", а невозможно. По крайней мере без очень серьезной работы напильником. Результат прекратит работу после первого же throw из libtorrent.so.
    Извините за офтоп, но если Вам не сложно объясните можно ли каким-то образом собрать на роутере WL700GE с прошивкой 1.0.7.8 от kfurge rtorrent с поддержкой magnet ссылок (это нужно для использования ряда трекеров)?

  13. #58
    ekvus
    Собирайте на ББ. Novik же написал - нативно не стоит и пытаться. Да и по моему опыту при нативной компиляции без напильника - никак.

  14. #59

    Question Можно ли заменить имеющийся libtorrent своим?

    К сожалению, пока я никак не разбираюсь в линуксе, да и вообще в компьютерах разбираюсь мало.

    Из-под Xubuntu, скачал исходники libtorrent, собрал (или как это называется?), выдрал из папки usr/libs (вроде так) установленные библиотеки. Перенес их на роутер.

    На момент переноса меня напрягла разительная разница в их весе - было 1.5 Мб, стало ~9 Мб. Так что на всякий случай сделал бекап старой версии.

    Там было три файла: libtorrent.so, libtorrent.so.11, libtorrent.so.11.0.6. У первых двух на иконках значки ярлыков и вес около 20 Кб. Как мне подсказала интуиция и команда ls в консоль, это просто что-то вроде ссылок на третий файл, libtorrent.so.11.0.6. Правильно?

    Но, вообщем, после того, как третий файл я заменил, ruTorrent перестал видеть rtorrent, из чего я сделал вывод, что rtorrent теперь, несмотря на мои попытки запустить его вручную, запускаться не хочет.

    Видимо, хоть и файлы так разительно схожи, на роутере стоит какая-то другая версия. Что-то вроде libtorrent mobile edition? Или, может, при собирании версии с роутера не были включены какие-то библиотеки?

    И отсутствие какой-либо работоспособности - из-за некорректной замены libtorrent, из-за слишком большого веса библиотеки, из-за того, что собрана она была под Xubuntu, или еще из-за чего?

    И можно ли провернуть эту операцию успешно?

  15. #60
    Join Date
    Feb 2008
    Location
    Moscow, Tver
    Posts
    3,962
    Quote Originally Posted by 4ufak View Post
    К сожалению, пока я никак не разбираюсь в линуксе, да и вообще в компьютерах разбираюсь мало.

    Из-под Xubuntu, скачал исходники libtorrent, собрал (или как это называется?), выдрал из папки usr/libs (вроде так) установленные библиотеки. Перенес их на роутер.

    И отсутствие какой-либо работоспособности - из-за некорректной замены libtorrent, из-за слишком большого веса библиотеки, из-за того, что собрана она была под Xubuntu, или еще из-за чего?

    И можно ли провернуть эту операцию успешно?
    Почитайте эту тему, и аналогичные по компиляции софта под роутеры.
    И поймете, что сами ответили на свой вопрос.

Page 4 of 7 FirstFirst ... 23456 ... LastLast

Similar Threads

  1. Простая настройка роутера до торрентов
    By gostest in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 1402
    Last Post: 21-05-2010, 18:58
  2. [How to] rtorrent & ntorrent
    By mancub in forum WL-500gP Tutorials
    Replies: 101
    Last Post: 18-12-2008, 07:21
  3. small number of peers for rTorrent
    By ufo95 in forum WL-500gP Q&A
    Replies: 0
    Last Post: 10-11-2008, 08:23
  4. older rtorrent version
    By FastJack in forum WL-500gP Q&A
    Replies: 1
    Last Post: 23-10-2007, 09:40

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
  •