|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
% z0 Y2 S" B% T3 g' j6 \& g2 \: k. h: L/ ]$ ~9 y$ o
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。8 I) |: p' F) L) V8 `
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。4 O4 g: \5 m8 o& Z) _9 {' T% e
这里先把包放上来。使用方法和他的懒人包一样。- v4 B: G7 R2 t; E" f+ f p0 q$ v
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
4 D3 O2 @/ d- b7 n9 A8 L% l) m5 K; I. \! ]: u# }5 S0 R) \, F0 Q+ \
9 p8 T4 Z d2 e
, I4 Q6 t4 Y2 R9 T1 L9 E6 Q/opt/upt/framework下是只读的文件,) |: Q8 Y8 Z* a4 t8 Z( R
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
0 K. B" }) T7 [: [4 W: {所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
) J, a$ I. E9 A+ J/ r. c3 G+ N
7 i9 b4 }" E7 o+ z9 O. K F
; E! W- A6 G0 ~ v0 |& X0 [7 g对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,5 d4 R, Y! C7 U' Y" c
进入openwrt有2种方法
* L$ J# l# v" b. B4 I注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
3 ~2 A/ c% a8 O) x' f有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题." Q) M; \2 M, V, A; X
执行前后可以通过whoami命令来得知当前是什么用户权限.
" Y* Q S7 E3 O# P8 a* `" u3 r' }1 L$ z+ T
4 o7 W0 t) Z0 K, @$ R
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接# z- L& f* P; Y: S; m7 k, C
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行' r1 U% O( z# J9 I! H- c
8 n1 Z" ?, n9 }8 g) M
" `2 K5 x! x# u" i( |
实际测试, a( m. `) ^# U8 C; L; T
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
0 S, t; b2 X( ?. H5 U n重启光猫,可以由telnet登陆光猫2121端口.0 O# ~3 T( V# `5 X+ \" ]* D
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.% {5 P/ h3 S6 Y2 [3 @2 m! O
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码. a3 ?! q4 ]) _) \
不然登陆上去不需要密码
^& U- Y; M" o2 ?具体方法可以看后面.- D6 _ D- f& A7 }
! g9 S& o! @/ S; ~. p
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
$ X; Q/ p& S( Y( a$ k) {, u5 ?& o- f8 g主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,) Z- j0 G8 G' y& {* P0 x5 ?! x
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell2 q% X4 }! G0 m( [
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
& `" \ o+ W' T( a察看内核信息$ B$ \0 h! R9 j% ~8 G
uname -a
( C: f/ m# [4 y察看openwrt版本
3 L! p/ M% B2 B' Pcat openwrt_release
7 G* u7 A2 O5 _% G' u9 d: z察看cpu信息
3 a0 B% r+ i0 O+ N% icat /proc/cpuinfo
1 c8 ?) P7 l( `& {2 y4 x8 e0 b4 i8 _: b) N1 X% z
+ L/ H# ^) n, J# v; D4 r! _据说电信内置opkg程序的参数被改过,还没有找到用法." ]* o1 n" Q3 E; v# @ A
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
+ U. n! K! i2 I# _2 q7 S. l( Lopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.* b; X8 n& q1 x" H
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
2 V6 q- M% ^/ m1 j' M下面是在openwrt中操作# z6 [: b3 a8 a2 a b9 L
进入tmp目录6 a) C; c9 M9 ]/ D y% d, `# U3 x- n
cd /tmp8 R H- H3 t7 l8 A! O0 I& d
下载opkg包
- ~' J: [4 }* H3 A; t" l* Pwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk- f+ ]4 i# w' A3 x# o8 y4 T) t- o
解压2次文件包得到opkg可执行文件9 Q. {0 p0 F5 Z) {+ u2 v! t; B
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
2 p0 C8 I/ J4 x4 \' K/ _5 G6 r, ltar zxvf data.tar.gz
9 A" o# m, E1 @0 G* ~3 W移动当前目录解压出的opkg到系统的bin目录替换opkg程序
9 t6 q3 D. N* K1 ^6 k6 {. fmv bin/opkg /bin
% ?: k4 r; x; U- ?7 g: g! H1 \6 a
* z4 O, j. D6 w! S z. U! b% z- n7 X同样补上opkg运行需要的缺失的libgcc库文件8 |# N- L( g0 j! P
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
# V0 u6 c6 V* J* H6 m8 atar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
d/ {0 d9 }/ N' t; V( qtar zxvf data.tar.gz. H, z6 }2 d1 l( {6 O
mv lib/libgcc* /lib
# k7 G2 y' B7 Y/ w* _& {! o* ]5 x* W! Y. y/ U- H2 P% Z% d
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
% A9 P$ `+ e3 C4 E* }( j# D顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
3 ]* Z& o L4 f/ i% P: @4 r, u* |: N0 x+ x A, r! y& A
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因: U4 U. ^) t& Q) z4 q8 {) `: P
, a5 W4 W/ F j6 s4 o" @
, ~7 Y" V7 y! Z4 t6 m- C- R4 Utftp用法& i, g) C) H4 N f% w l9 W$ Y# Z
上传openwrt的本地文件到电脑的tftp服务器" R; E! M- N0 ]
tftp -pl 文件名 电脑的IP地址5 e# s0 M i# D
下载电脑tftp服务器的文件到openwrt7 u; B' Q% |# G0 H1 f' }: ~
tftp -gr 文件名 电脑的IP地址
2 ~! G& A$ j3 N8 t: ^& K, q! a0 R5 W, ]: K4 c! n4 j
tar用法
" i _* z1 z* J$ ]6 V- P& v1 v5 o打包成tar.gz文件
. d; X: @7 w7 Dtar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
, c, r ]5 `9 |" F+ e解压9 D4 k2 v! n% Y
tar xzvf 要解压打包压缩文件到当前目录
* F( K& w' z& P9 A9 R; c
1 M6 c9 k0 V( }' K( Y. Z
2 X% L( s& m6 D6 V3 w; _/ B o! t, w/ [
% {, G3 ?/ l( a4 L7 m& N
distfeeds.conf是软件源地址.
' E. v: p4 j9 oopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
+ Z. s* q8 r, P- D$ d/ ^" J2 ~文件内容如下
9 M9 A0 S( y4 M3 V J5 n4 D" V% `dest root /
) E0 q, m- m# J, Q' s" {. G& R7 ^5 |3 bdest ram /tmp4 }5 j# W+ A- ]" K+ t( c# x
lists_dir ext /var/opkg-lists
" w0 e6 `" _+ a# Voption overlay_root /overlay
* T. L: {% h; T' x- X, N8 |6 d#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查4 r9 T& C5 ^7 @0 D
#option check_signature 1/ I& F6 ?' s4 i
#不依赖架构的软件
' @0 E, Z' J/ Z1 C% C( L2 earch all 1
4 Z2 [8 ]3 R8 d# H/ G. A+ l/ \$ J# aarch any 1
# N7 W- s. \2 |arch noarch 1
% W( ]7 c K% v* F+ F/ b7 }; v6 \#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos445 J0 c; _, I- a7 Z+ y$ k
#添加 rtos44
5 l8 q8 @- Q: |, ?! `: oarch rtos44 10
9 y6 t- y9 C" ?#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
- f: q. ^& o% l: a9 Karch arm_cortex-a9 20
( O. y6 l: \" Z/ Y8 s; Q* r% A* d, m. U( J- x; w
7 y; i; V) B) ?0 l2 K* T" E, U& j
0 M: |$ M9 ^% t5 K清理当前目录下释放的文件2 i( U1 a% C9 M
rm -rf *.ipk *.gz debian-binary bin etc lib usr
* H" f9 \ R- P5 `- D
1 o, _, A/ o' r. z0 y/ P' g4 T7 y C
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
8 A2 ^! P7 p/ n7 ~如果已经在主系统中下载安装就不用再安装.. z( c9 H3 \( w, W! t2 o7 v0 d
opkg update
1 z5 e! I/ R7 U8 @' i x1 kopkg install dropbear
2 G% B/ @, W) y/ s( ~修改dropbear的配置文件,位置/etc/config/dropbear.
- v y3 s# X) K$ m' N修改端口不与主系统的默认端口冲突,我这里修改为2222端口
, [4 X2 ^% E+ L' k; j1 B6 yoption Port '2222'
, q! t' ^+ W, S( A% Q
5 e$ K8 m, }% T! M再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
+ I8 F% X7 y' j7 m. Q. m# oopkg install luci-base luci-mod-admin-full luci-theme-bootstrap# I8 }0 [; d* c" d* x- T
/ |. n+ z. U V7 s) \: A0 \
- J4 O0 P3 a8 I# E; `
- l) K$ \: F4 D工作告一段落,打包备份一下就是懒人包了
1 E0 E- H+ m& H! A登陆主系统
: w* u3 ^5 G+ v4 dcd /opt/upt/apps# |# o4 ]- |$ ~2 N
mv apps openwrt7 ^1 [! b+ P/ H I$ [
tar czvf openwrt_R20S35.tar.gz openwrt$ ]$ m& D9 k/ T" E4 L6 _' ^2 d
; w+ U2 w. w" z使用tftp传输到电脑保存.使用时登陆主系统,
1 ?; q, V& i4 g0 Kcd /opt/upt/apps
# \, H( _' i) ttftp -gr openwrt_R20S35.tar.gz 电脑IP
; c) q# K9 m4 p$ w G4 Utar xzvf openwrt_R20S35.tar.gz, D: ^! n9 ]0 o( X7 [' {7 L
rm openwrt_R20S35.tar.gz7 ]$ f: i# `( ]# O* N* @6 J2 b
备份删除当前的openwrt,我直接删除了
' ]1 q" S: x0 _# Arm -rf apps
. d$ d. Q4 W }建立指向openwrt目录的软链接,代替原有的apps目录% ?" n5 R6 M8 g, w+ {
ln -sf openwrt apps
/ e4 z! D" n6 A {* w. V9 u, t" a# t ~
一些有用的工具用法后面再追加
/ G" _; l1 o J7 q# E
& o. }* Z2 p& Z+ E
; {0 b6 x! \& y* y0 t5 A; V6 T, c* s0 {
8 v6 t2 ^; q. u3 i v
6 s& @, ] n X/ `4 f6 D6 ^: Y3 i9 G. E- B( r& g @
下面命令备忘待整理6 \9 ^& A3 D5 r' \$ D5 O6 J
5 M# o B3 i m* J
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
% G8 Z3 \+ K* S% C5 Vaescrypt2 1 hw_ctree.xml tmp
0 u8 ?% {2 o. a# I( x$ vgzip -d hw_ctree.xml
. n9 r( T6 ~, v0 ]tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*0 a1 [: u1 \+ f) @) H+ X) H( C; a7 N
$ l2 c: E1 N( r! H
1 B$ c7 Q4 `7 j: u2 V2 f4 t) ^/ q) S, o3 r
& ?3 ^; d5 n* |* G2 d
5 r/ m% z' @% ^2 A5 }1 ]5 o# k: G1 _7 V! S1 @; O# w8 [
' l) B9 z, Z- k7 t
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|