|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
9 o& X" b L# J) r2 d) A* O8 f3 |" _+ U
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。& t3 Q1 I3 d# }$ l% h1 ^/ _( d
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
( i2 l( v) S: b* N8 D6 {# O) y8 i% u这里先把包放上来。使用方法和他的懒人包一样。3 p. y% H, N+ Q" @4 u$ v" Q
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,1 m; X3 \7 |/ h* k7 C
9 C- P% }1 P9 Q, } Q; C
) l3 p5 O+ d; @' Z# J% a6 J
( a, S& ^% `- z2 |3 ~4 ?' `2 `/opt/upt/framework下是只读的文件, r3 u& |7 L/ D/ Q: S+ S6 ?) Y
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.7 D: y0 V3 h- u9 t. ]- A. D
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
+ b& F) \0 {0 i) g# v$ k Q# P" q- n2 T+ K
8 V' Y3 Y9 f' J/ A# `$ Y* m! V
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,% R: A. t, n; U# m+ _5 c
进入openwrt有2种方法
% G+ R$ p! ~' |3 y& D; G注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
0 {; M4 L8 ~/ n7 G' q有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
, ~6 x0 ^) B1 B. n执行前后可以通过whoami命令来得知当前是什么用户权限.
; O1 T4 y* W! g0 S5 j
7 P4 I% d9 l9 V0 X$ a2 X
+ h/ @9 _0 u H4 H1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接# D6 [+ o# f+ C T2 w" ?7 n0 o( D
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
$ Q* ?8 A4 P; C8 L2 s) j; K9 [% m6 o# m
- H `6 C( V+ u. Q
实际测试
2 ~# f/ V1 d' I1 v5 P创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & # M5 V3 Y# @4 ]$ W B
重启光猫,可以由telnet登陆光猫2121端口.
0 ]/ T. u: Y; E W# D如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.' R7 t8 f8 }; A3 V0 p( {2 I
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
8 M, [' t' N! q, Q2 ?+ _' ?不然登陆上去不需要密码
j+ t& _& O4 [% P: }具体方法可以看后面.& c% U8 w8 T" \8 L7 a7 X5 r
; A! P5 D1 E0 V8 r+ _: v4 Q
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
* H6 H( ?' [0 i# N主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
5 p' ?) x6 h1 D$ W输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
8 Q0 C! T- s7 l' g: |; n可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
, G+ W: k, v' O. A( V& f察看内核信息% V. t6 `! J- y, H
uname -a
! U4 i4 _( E8 ^. j- {0 Z察看openwrt版本
1 P6 `4 G$ D3 Q0 kcat openwrt_release( d/ C7 r( |/ y" S% B
察看cpu信息. c/ y/ d2 N O! i; D' ?( O
cat /proc/cpuinfo* _3 M% x/ L( R' w# v+ @. d
{7 r% X7 `& \% E" x4 E* z9 V" S. G" B, e; t' x0 q
据说电信内置opkg程序的参数被改过,还没有找到用法.$ S! o* Z, g6 e5 g
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换5 p/ [3 I. m1 v, c3 Y3 M4 T
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp., q- k: H; P A" |. y# } G
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
# j+ C! {# k$ Z% n, F下面是在openwrt中操作
8 Y# X( L& l8 a进入tmp目录
; E9 W2 o n/ j9 L- `% u! J6 Icd /tmp$ G9 D: z" O2 u% C) D7 e
下载opkg包
; E1 k) t; \) E0 q& O& awget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
6 m4 C$ L4 f, `) v U解压2次文件包得到opkg可执行文件
; j# e3 G# J, [, Q7 d2 I: etar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
4 \+ [9 p0 S- i( Gtar zxvf data.tar.gz
, v- g% I& M# r7 g/ s移动当前目录解压出的opkg到系统的bin目录替换opkg程序1 }, J( f) v0 b% a
mv bin/opkg /bin# ?- v9 {( r j4 r# i
! E n, R1 w: U3 I& w
同样补上opkg运行需要的缺失的libgcc库文件
- [6 V5 R) g% y/ O: _8 r' {' b' pwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk! q5 m. r8 Q0 E
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk0 X( t- z( o- F3 C
tar zxvf data.tar.gz
+ l$ S4 U3 T! C. G8 V6 Zmv lib/libgcc* /lib
2 Z' q# n; M+ [, Y2 Z3 K) a7 M) Y8 B6 x5 n3 K$ Q6 U
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,$ X) y7 I+ Y% ?* N( _0 V; w9 N% @, X
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包7 F3 ~+ Q: i9 [( t' P; d% T
* P q: m4 u( U2 X" l
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因+ J4 v+ N7 b7 W7 U& x1 t9 k
L. K, O- o3 L. W
, R3 j0 F W, l4 q& M4 n8 vtftp用法
7 Y8 Y7 k8 y7 _: @上传openwrt的本地文件到电脑的tftp服务器
& A$ _- C! d, K$ h" n/ itftp -pl 文件名 电脑的IP地址
+ \! h3 k8 Q; m: O下载电脑tftp服务器的文件到openwrt0 x3 s5 G- o, c( N. z
tftp -gr 文件名 电脑的IP地址8 D- u s5 E7 O
# L+ ^4 h7 X# r; f- @& h6 dtar用法0 _$ e8 p9 \* R
打包成tar.gz文件
& k9 I/ m( `7 f+ a% U/ ntar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式+ a" S, ^) L2 i4 } H
解压
+ z( K; M" s( S& `) u! M gtar xzvf 要解压打包压缩文件到当前目录 # Z! i" x" a) B7 f% C
2 ~! A- U; `. F6 _! S* a
: `/ B* n1 b& Q
! }8 Y: V9 V% r3 ^6 F0 F6 L# Z* m% z W7 p8 p
distfeeds.conf是软件源地址.5 H) b6 V! H( ?! r! v
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
0 N. P# z4 ~9 R) m, p3 b, M文件内容如下
6 w: Y7 j& D W O% i. q; gdest root /$ K! \( A: K& |" R. V* i- [
dest ram /tmp
9 [3 t4 D! W+ l7 Q2 Q4 h2 E+ Klists_dir ext /var/opkg-lists/ o" ^) v5 L$ V& k' A. S
option overlay_root /overlay
' z% e5 g/ a; ] L! n0 @0 O9 c#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查3 C! d1 S- i* k9 N+ b
#option check_signature 1
7 T) d% N6 c6 F- v# J#不依赖架构的软件% t* r! m+ S; D% {3 j( c* |
arch all 17 |& X8 T9 z; j0 q1 n7 Y
arch any 1
6 g4 r* n0 N/ p2 Darch noarch 1- ^3 \# c/ A' J) I6 O
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
% X6 O+ S- j5 Y- d% N, y( r( h#添加 rtos44
* B3 w4 ~, ?- ?. q$ ^arch rtos44 10% i1 M. k5 W/ ]! U
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
3 U4 V6 e0 c/ earch arm_cortex-a9 20+ y( w. C8 Z+ T1 g7 Y
5 K0 j/ f+ _ E+ h
6 }4 m1 U$ i$ G* i' L( \/ e
* W& [, h0 R1 f3 o+ L2 W: _
清理当前目录下释放的文件
2 t+ A" T( A( }+ i- Y, arm -rf *.ipk *.gz debian-binary bin etc lib usr
+ J3 n6 U6 S8 [
/ W! s' n" z" e3 ?; Q5 p, d( X3 f$ J" @& N# u
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面0 @) _& @# R& _. [" H# c
如果已经在主系统中下载安装就不用再安装.
/ j- h9 l: a- e' Popkg update! S0 Y" ~6 N$ l1 d" o, z: m6 ~8 p
opkg install dropbear! E7 ? a6 ~- F G7 I) X$ r4 e; i
修改dropbear的配置文件,位置/etc/config/dropbear.8 B7 w& |0 o! o
修改端口不与主系统的默认端口冲突,我这里修改为2222端口
8 l( o# N' {( {) K* Uoption Port '2222'
% z+ J" c2 g. F7 Z q8 ^9 Q: W8 l
4 N) A+ X/ u5 g+ k再次安装luci一些包后,原有的电信页面就会变成普通的luci页面+ O; k6 o. m8 ? n
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap
5 a% D+ k- E# _+ K! Y2 E, h7 {5 n8 [! h. w, R' o: w
+ M5 B! b0 f6 t
- d: g/ b+ v7 ]7 J$ z2 J( Q
工作告一段落,打包备份一下就是懒人包了
' R$ y; J8 F' F0 V {( h登陆主系统
0 `& l! p% W5 z- f, y* ]cd /opt/upt/apps
/ O$ C5 Y$ U9 k m7 }' z7 M2 xmv apps openwrt$ J- b$ L! E8 P5 {# M a+ O- I
tar czvf openwrt_R20S35.tar.gz openwrt
) `6 l$ V. q0 N& V; ]; p, i4 M2 [8 W* X! ~
使用tftp传输到电脑保存.使用时登陆主系统,' n% c0 n0 {! c
cd /opt/upt/apps
6 f8 C, K4 N$ b% K- s; k5 Utftp -gr openwrt_R20S35.tar.gz 电脑IP
6 K6 L0 O. H. ~) H1 d8 Rtar xzvf openwrt_R20S35.tar.gz
7 I" Y5 r" l: e; ^* Vrm openwrt_R20S35.tar.gz+ g/ G1 \6 C+ f) ^9 N$ E9 E* N& Q
备份删除当前的openwrt,我直接删除了4 L3 N. O; }. _. _8 g
rm -rf apps6 |: ~7 u- Y$ K% ?% O
建立指向openwrt目录的软链接,代替原有的apps目录
" d `' i; F: ~, fln -sf openwrt apps
. @, C" c/ P/ `7 q
. s! H+ ~9 y- w' E一些有用的工具用法后面再追加) @2 p+ I4 J( ~6 F3 C7 a% `
^2 g0 W, o; R5 o# D% J V
1 N: [: G, _% Z8 B' Y: E3 C6 T6 t+ a0 o5 D2 ^4 w
( J* \& L9 {# g5 w! U6 l( b
; }! y' N/ f$ c; X) p
2 w# f) {8 A; P) ?3 u下面命令备忘待整理
# F7 y# V+ a5 D: j5 M2 `7 _
3 {' H' F0 B# k" t. f; V+ T/ ytar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string2 y6 t# U! p; V2 ~/ T/ E* D( e
aescrypt2 1 hw_ctree.xml tmp
2 x& G, b- w; J1 A1 \gzip -d hw_ctree.xml3 [3 u) _. H R2 a+ l
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
2 I$ s1 ~$ Y2 J2 a
6 P$ J+ j5 L% \& c/ @7 {0 b5 U: V; H6 c2 Y9 L9 |5 n
" |3 r Y* U! m; r: C4 X
% k2 l! n/ M( h6 \) w$ J0 Z+ p' }
) s, q# y. i. A7 K o/ w
! r) y. C7 K* g
6 k; S( k& F' v* B6 y4 H, l5 M3 m |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|