Добрый день!
1. Скачал тулчейны ftp://ftp.dd-wrt.com/others/sourceco...chains.tar.bz2
2. Выдрал оттуда toolchain-mipsel_gcc4.1.2 и распаковал в ~/toolchain-mipsel_gcc4.1.2
3. Скачал zlib-1.2.5.tar.gz
Code:
./configure --prefix=/opt
4. В Makefile поставил
Code:
CC=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-gcc
LDSHARED=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-gcc -E
AR=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-ar rc
RANLIB=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-ranlib
5.
Code:
make
sudo make install
В /opt/lib появилась библиотека
Code:
amaru@amaru-MS-7638:/opt/lib$ file libz.so.1.2.5
libz.so.1.2.5: ELF 32-bit LSB shared object, MIPS, MIPS32 version 1 (SYSV), dynamically linked, not stripped
6. Скачал http://www.openssl.org/source/openssl-1.0.0e.tar.gz
7.
Code:
openssl
./config --prefix=/opt
8. В Makefile изменил
Code:
14,18c14,18
< SHLIB_EXT=.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
< PLATFORM=linux-x86_64
< OPTIONS=--prefix=/opt -Wa,--noexecstack no-gmp no-jpake no-krb5 no-md2 no-rc5 no-rfc3779 no-shared no-store no-zlib no-zlib-dynamic static-engine
< CONFIGURE_ARGS=linux-x86_64 --prefix=/opt -Wa,--noexecstack
< SHLIB_TARGET=linux-shared
---
> SHLIB_EXT=
> PLATFORM=dist
> OPTIONS=--prefix=/opt -Wa, no-gmp no-jpake no-krb5 no-md2 no-rc5 no-rfc3779 no-shared no-store no-zlib no-zlib-dynamic static-engine
> CONFIGURE_ARGS=dist
> SHLIB_TARGET=
62,63c62,63
< CC= gcc
< CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
---
> CC= mipsel-linux-gcc
> CFLAG= -O
66c66
< EX_LIBS= -ldl
---
> EX_LIBS=
69,70c69,70
< AR= ar $(ARFLAGS) r
< RANLIB= /usr/bin/ranlib
---
> AR= ~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-ar $(ARFLAGS) r
> RANLIB= ~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-ranlib
75c75
< MAKEDEPPROG= gcc
---
> MAKEDEPPROG= makedepend
91,92c91,92
< CPUID_OBJ= x86_64cpuid.o
< BN_ASM= x86_64-gcc.o x86_64-mont.o
---
> CPUID_OBJ= mem_clr.o
> BN_ASM= bn_asm.o
94c94
< AES_ENC= aes-x86_64.o
---
> AES_ENC= aes_core.o aes_cbc.o
97c97
< RC4_ENC= rc4-x86_64.o
---
> RC4_ENC= rc4_enc.o rc4_skey.o
99,100c99,100
< MD5_ASM_OBJ= md5-x86_64.o
< SHA1_ASM_OBJ= sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o
---
> MD5_ASM_OBJ=
> SHA1_ASM_OBJ=
102,104c102,104
< WP_ASM_OBJ= wp-x86_64.o
< CMLL_ENC= cmll-x86_64.o cmll_misc.o
< PERLASM_SCHEME= elf
---
> WP_ASM_OBJ= wp_block.o
> CMLL_ENC= camellia.o cmll_misc.o cmll_cbc.o
> PERLASM_SCHEME=
152,153c152,153
< SHARED_LIBS_LINK_EXTS=.so.$(SHLIB_MAJOR) .so
< SHARED_LDFLAGS=-m64
---
> SHARED_LIBS_LINK_EXTS=
> SHARED_LDFLAGS=
9.
Code:
make
sudo make install
Проверяем версию openssl
Code:
amaru@amaru-MS-7638:/opt/bin$ file openssl
openssl: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), not stripped
10. Скачал openssh ftp://mirror.corbina.net/pub/OpenBSD...h-5.9p1.tar.gz
11.
Code:
./configure \
--prefix=/opt \
--host=mipsel-linux \
--with-ssl-dir=/opt \
--with-zlib=/opt \
--disable-utmpx \
CC=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-gcc \
CPP=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-cpp \
AR=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-ar \
RANLIB=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-ranlib \
LDSHARED=~/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-gcc \
--disable-strip \
LDFLAGS="-L. -L/opt/lib -Wl,-rpath,/opt/lib"
В c_all.c закомментил так как ругалось при мейке, судя по коменту, это не всегда нужно
Code:
void OPENSSL_add_all_algorithms_noconf(void)
{
/*
* For the moment OPENSSL_cpuid_setup does something
* only on IA-32, but we reserve the option for all
* platforms...
*/
//OPENSSL_cpuid_setup();
OpenSSL_add_all_ciphers();
OpenSSL_add_all_digests();
#ifndef OPENSSL_NO_ENGINE
# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)
ENGINE_setup_bsd_cryptodev();
# endif
#endif
}
12.
Code:
make
sudo make install
Проверяю версию sftp
Code:
amaru@amaru-MS-7638:/opt/bin$ file sftp
sftp: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), not stripped
13. Качаю содержимое папки /opt в флеш /tmp/mnt/disca_3/opt на роутер
14.
Code:
mount -o bind /tmp/mnt/disca_3/opt /opt/
15. Захожу в /opt/bin
получаю:
Code:
[admin@WL-E0CB4E0F7216 bin]$ ./sftp
./sftp: can't load library 'libz.so.1'
'libz.so', 'libz.so.1', 'libz.so.1.2.5' лежат в /opt/lib.
Все пути совпадают с префиксами конфигуров.
Что я делаю не так?