На 2.6.22, которое подразумевается по умолчанию на данный момент, без приложения большого рашпиля(бэкпорта), без шансов. Т.е. очень большой объём работы...
А учитывая хилость USB и процессора, может вообще не взлететь.
Printable View
скажите, а есть в природе что-то подобное TeamViewer для роутера? Требуется попасть в домашнюю сетку, а провайдер перевел абонентов за NAT.
Или для этого нужно ставить на роутер Debian, как описано в одной из тем, а уже на него TeamViewer?
Или каким другим более простым способом это можно решить?
Здравствуйте. Я уже битый день пытаюсь скомпилировать простенький пример из пакета fuse.
Пока дело дошло до скомпилированного примера, но он ни в какую не видит библиотеку.
хотя ldconfig говорит что все либы на месте:Code:$ ./hello
./hello: can't load library 'libfuse.so.2'
$ ldd ./hello
libfuse.so.2 => not found
libdl.so.0 => /lib/libdl.so.0 (0x77300000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x772df000)
libpthread.so.0 => /lib/libpthread.so.0 (0x772ba000)
libc.so.0 => /lib/libc.so.0 (0x77241000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x77316000)
Гугл по этой проблеме говорит что такое может быть если не совпадают архитектуры, но и тут тоже все в порядке.Code:$ ldconfig -p
62 libs found in cache `/opt/etc/ld.so.cache' (version 1.7.0)
...
libc.so.0 (libc0) => /opt/lib/libc.so.0
ld-uClibc.so.0 (ELF) => /opt/lib/ld-uClibc.so.0
libpthread.so.0 (libc0) => /opt/lib/libpthread.so.0
libgcc_s.so.1 (libc0) => /opt/lib/libgcc_s.so.1
libdl.so.0 (libc0) => /opt/lib/libdl.so.0
libfuse.so.2 (libc0) => /opt/lib/libfuse.so.2
...
$ ldconfig -v
ldconfig: uClibc version
/opt/lib:
...
libc.so.0 => libuClibc-0.9.32.so
ld-uClibc.so.0 => ld-uClibc-0.9.32.so
libfuse.so.2 => libfuse.so.2.9.3
libgcc_s.so.1 => libgcc_s.so.1
libdl.so.0 => libdl-0.9.32.so
libpthread.so.0 => libpthread-0.9.32.so
...
/opt/usr/lib:
Уже не знаю куда дальше копать. Пробовал реализовать нужный мне функционал на питоне, однако не устроила скорость работы порядка 100кб/сек.Code:$ readelf -h /opt/lib/libfuse.so.2.9.3
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: MIPS R3000
Version: 0x1
Entry point address: 0x3e40
Start of program headers: 52 (bytes into file)
Start of section headers: 220616 (bytes into file)
Flags: 0x50001007, noreorder, pic, cpic, o32, mips32
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 7
Size of section headers: 40 (bytes)
Number of section headers: 28
Section header string table index: 27
$ readelf -h /tmp/123/hello
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 01 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 1
Type: EXEC (Executable file)
Machine: MIPS R3000
Version: 0x1
Entry point address: 0x400760
Start of program headers: 52 (bytes into file)
Start of section headers: 12024 (bytes into file)
Flags: 0x50001005, noreorder, cpic, o32, mips32
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 8
Size of section headers: 40 (bytes)
Number of section headers: 40
Section header string table index: 37
А функционал мне нужен очень простой, чтоб нужный раздел на храде отображался как обычный файл, чтоб его потом просунуть через nfs.
Странно но оказалась что "из коробки" так нельзя, можно только наоборот.
Понимаю что тут работы на пол часа, нужно лишь чуть подправить пример, но с компиляцией этого примера вожусь уже третий день...
для справки:
роутер: D-Link DIR-620 C1
прошивка: DIR620C1-3.0.6-r5066M.trx (Vampik)
toolchain: hndtools-mipsel-uclibc-4.6.3-K26-r4631
версия fuse установленная на раутере: 2.9.3
версия исходников fuse для сборки примеров: 2.9.3
Ключевые слова для поиска - переменная LD_LIBRARY_PATH и ключ rpath линковщика.
Сначала нужно определится, какую libc(uClibc) хотим использовать - прошивочную (в /lib) или Entware (в /opt/lib).
Если второе - в Wiki Entware где-то было неплохое объяснение как собирать пакеты.
Ну а в качестве временного решения "в лоб" на попробовать можно тупо сделать
Code:export LD_LIBRARY_PATH=/opt/lib
Спасибо за подсказку. Я то думал что тут как в винде поиск идет по всем папкам в которых могут быть либы.
Решил проблему немого по другому, нашел куда нужно вставить затычку чтоб он мне статический либу прилинковал.
(Всю жись на VS работал, так что у меня при виде makefile качан малость начинает перегреваться...)
Пример я тот уже под себя подправил, трудится уже вовсю. Уже после решил попробовать с динамической линковкой,
дак меня gcc кучей варнингов обматюгал, но собрал. Запустил и вроде даже заработало, но при открытии виртуального файла - i/o error.
Хотя со статической линковкой все норм.
Захотел установить nginx. В репозитарии Entware лежит только старая версия 1.4.7 На сайте nginx новая версия в исходных файлах.
Скачал, пытаюсь компилировать...
checking for OS
+ Linux 2.6.22.19 mips
checking for C compiler ... not found
./configure: error: C compiler cc is not found
погуглив, понял у меня нет компилятора. На форуме предлагают установить пакеты optware-devel из ipkg источников
В репозитарии entware такого пакета не нашел.
Вопрос: как установить компилятор из репозитария Entware?
Для mipsel - никак.
Для arm и intel - https://github.com/Entware-ng/Entwar...compilation%29