|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
' t+ R# K4 [2 ~2 W
2 {# X( V p5 o, b6 @6 U v8 i; E" D前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。/ J0 i% J. U! e; L4 b2 o
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
l9 ?% R5 G% d/ M& p这里先把包放上来。使用方法和他的懒人包一样。
0 i" ^' E4 P4 [) E+ V+ _后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
# O, Q) p' ^! L/ b' a* d4 Q2 o! ]" K5 s
# o! |. s' ]& I! N% n2 W7 r; B, T: U9 Y( m
/opt/upt/framework下是只读的文件,
0 X3 c6 p' C7 ^5 p: {5 Q/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
$ I# R! L7 X) ?$ _* k所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
9 D' r$ t4 A+ j& f0 _( k) I3 B" ?* {/ Z& i" V
: Q4 a; g& v w T! {对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,8 x6 h. P! g$ C& L( z+ _5 L1 e
进入openwrt有2种方法* @6 d; {# w6 b/ e/ k1 Z' K
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.2 ^' P7 K0 J' S" r$ Q: E& o/ Y0 K' b
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
: r' [- \$ c+ m执行前后可以通过whoami命令来得知当前是什么用户权限.% U* I& A% p. N% n0 F
% r. y9 ~8 E- d# v, S1 i: G+ O( h9 ^* L+ G+ R, R. w3 L3 l
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
* d0 H: r! ?" \" Q& W可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
5 Q. r$ c0 P: G' A% O% O# r* \
7 Z" p' C9 o0 G, e0 |2 f% m) u) y* p: V& U! }2 K( ~
实际测试
5 m4 e2 c- K3 P, Z# p9 C创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & ( p5 x- S$ Y+ i
重启光猫,可以由telnet登陆光猫2121端口.* I6 a3 C( [3 K/ c0 \4 x
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.* t6 a5 [3 I1 Y! v0 @4 ^
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码0 Q) i" ]* p+ R' T1 E
不然登陆上去不需要密码6 N7 D. \2 u: s# j( U7 ] \; M
具体方法可以看后面.
, ?+ A' q1 n; K; E" m9 k! O6 W4 d; p
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
" e V ^/ s2 y主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,$ _7 R: X+ p3 K9 q0 a
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
3 d8 ~8 O+ e, _% U m9 x# N可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.2 j# @; a0 c% h7 v4 i) z
察看内核信息- Z' u9 f& B1 R4 T+ Q% f [
uname -a; t3 k+ ?; I) F8 G4 t
察看openwrt版本
+ h1 L9 D3 o( m. q- p0 Kcat openwrt_release
1 {+ ^: L8 r" i- P+ S察看cpu信息
: A" J% l/ F% V$ E! _1 {cat /proc/cpuinfo
2 n, U3 g# ^ H$ m8 d: y$ \& B( n' B: s+ H
2 u& _4 z2 L( B# T* k9 n据说电信内置opkg程序的参数被改过,还没有找到用法.) t( b. {& h3 t8 _" Q: g8 _" @
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换* w! u: ~# O5 P* o. z1 f, D" s
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.6 P7 g f9 U' J0 D3 O
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
- M8 X6 d: W& }下面是在openwrt中操作 {, `( I6 e7 o0 G
进入tmp目录
6 l6 I4 I N/ F! I" Vcd /tmp7 m, y/ S7 Q2 k/ _/ b+ b" {
下载opkg包" o" G" T! h3 q9 f& a6 f6 |
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk2 N; H U8 T' Y. |! ^, O4 j
解压2次文件包得到opkg可执行文件+ ]- I6 Z9 c* z9 V+ b+ a1 G: R
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk- L$ l( l8 g {
tar zxvf data.tar.gz4 z5 Z. I$ G D8 o9 e) A
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
" n. c! k* F% \: Gmv bin/opkg /bin+ M6 L& S9 y/ V K5 o
8 r" [4 T( P3 u7 `2 a* s6 f' ~; D5 N& G同样补上opkg运行需要的缺失的libgcc库文件
! v. D; r$ ~" y8 e$ v0 Gwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
9 E! b7 ?1 w0 x; M. o% h7 D" p. _tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
2 ^ | y/ F/ p% S! z+ _tar zxvf data.tar.gz
. I! K/ ^8 r! V, a1 e# jmv lib/libgcc* /lib
& L/ m3 q5 D: n1 C9 x& U5 R4 S$ ?
1 w2 b1 Y* p' P9 P4 |然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
' t* {, Q8 `! M! Y+ d顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包' ?$ t' H% A/ c% f c5 p
* i6 @4 F, d) T; p3 I
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
& ]: p7 k6 R; [4 B- O' p E& v& I& S8 H) G6 q5 B, P
: F8 u. V) }8 ~3 o% \% J8 m6 Y2 u5 `
tftp用法* M! l. _) z T9 M3 v
上传openwrt的本地文件到电脑的tftp服务器
`" O8 Y" u3 y: C( C0 Atftp -pl 文件名 电脑的IP地址
8 `+ S, N! h; f* |/ H Y下载电脑tftp服务器的文件到openwrt4 z* L/ i8 @: ]( O) f- B
tftp -gr 文件名 电脑的IP地址
) ~/ s8 L/ V5 y+ I# S3 Z2 Q
& s+ T5 [: ]2 f( H5 s- g7 Utar用法- p. U+ ]. P1 N" L
打包成tar.gz文件1 S5 K* |/ n7 W* `
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式) Q9 O, T# v5 E% P/ l I, P6 ?
解压& w* W3 E1 ~% A5 n* ?
tar xzvf 要解压打包压缩文件到当前目录 0 `& t, r& a* G
/ z8 W9 K9 o9 N& l
; R/ O" |. _+ {, S3 G, a* T2 G+ J( ]! F* B3 Z& N0 t
+ l" Z" m% J- {1 T0 c( ~/ h& w
distfeeds.conf是软件源地址.
, G' s T$ \" ?0 k& O0 Fopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别* ~' U2 Q; I$ c' Q
文件内容如下7 V2 E0 r" i6 Q1 x) q8 E
dest root /' \$ o6 v8 {; H! A( \
dest ram /tmp
% {: @8 n2 u# e. p4 C: p9 o. b/ plists_dir ext /var/opkg-lists6 ^% L8 q1 G1 R. D
option overlay_root /overlay5 a! f$ I' m1 W- b7 ?0 j
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查5 \1 {# U* \. ?+ j6 C; F$ b
#option check_signature 16 e B% C! W% h' p6 i& b# [4 K3 p
#不依赖架构的软件" V G( y. ]2 \5 G% a9 X
arch all 1
: i4 g) _# U. P% Varch any 12 M4 ~) q. F7 S+ X0 T7 y
arch noarch 17 B3 ?* w' v1 t' D" q) p* Q3 a
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44) i! w( v" P8 g& @2 {1 S$ C' Y
#添加 rtos44
4 _$ y V: w7 }% }* @arch rtos44 10( l! |. l" h* C! z, n; U9 @% ^! L
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9+ l' r' X& f% L9 D5 ]
arch arm_cortex-a9 20! }. H/ N0 d$ Q7 I1 ?. E
5 p4 n' ~. ?" a) r; p; y5 {8 c% C6 r& Z
; D/ v$ p6 m( A" a9 B& }% z5 \1 q清理当前目录下释放的文件
) C4 X' z9 v! F7 U) o, Drm -rf *.ipk *.gz debian-binary bin etc lib usr' i D' L+ a5 x# M7 R
! O( P7 e) s6 G
8 H8 k2 Q$ v% w$ R# B
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面1 A7 u, r$ h/ e+ x! j
如果已经在主系统中下载安装就不用再安装.
1 v% V; N+ X5 e* R1 C6 T: K" {opkg update' ?1 b* R/ M- i- k
opkg install dropbear. i3 `# C; b" O d) J
修改dropbear的配置文件,位置/etc/config/dropbear.& E1 C( p7 o! M4 z9 T, O/ `
修改端口不与主系统的默认端口冲突,我这里修改为2222端口7 j# y' |) R+ H2 Q) V- R: T
option Port '2222'
. ~2 u9 t5 ^" ]4 B; ]/ |4 }$ G
8 |" i! y* O8 D- X再次安装luci一些包后,原有的电信页面就会变成普通的luci页面, ~' P* H8 N V" L5 C& o2 x
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap3 W( q! a7 w+ U$ M- g% O! G
$ S# Q6 K: X1 Z2 W
5 I$ ^% Z" w2 ?" b, X( G1 [! Y) a
工作告一段落,打包备份一下就是懒人包了7 l/ Z( @9 F m
登陆主系统
( x2 N: U$ h& rcd /opt/upt/apps1 f' \" R/ _9 D* V& i( W( p
mv apps openwrt
: t5 i) T( v/ Ktar czvf openwrt_R20S35.tar.gz openwrt
' S9 M, U& Q, n2 m9 a
- m# s7 s: T& ]2 a: M3 A使用tftp传输到电脑保存.使用时登陆主系统,
5 @4 G9 a( U+ bcd /opt/upt/apps
# x% R( m2 H! R9 a6 ktftp -gr openwrt_R20S35.tar.gz 电脑IP& {0 k% }5 a( h$ q
tar xzvf openwrt_R20S35.tar.gz
% D; }; K/ Z2 U' f* \rm openwrt_R20S35.tar.gz0 S" g% f: y( d2 N5 M# c% G8 T
备份删除当前的openwrt,我直接删除了% ?! S5 ], Q+ e, l
rm -rf apps' f) t2 O2 ]( d9 P, N
建立指向openwrt目录的软链接,代替原有的apps目录
0 J3 I. G( o7 I; U8 Q; Jln -sf openwrt apps # r( T, k9 ~- g# w0 [
- n! K" ]# p1 D: p* b一些有用的工具用法后面再追加
7 ~; M% r2 o! T) U2 ^' L% B6 Y" T. N( x. J; G, m; N9 p0 u# T
6 d8 Z0 J; }# ^. j5 g3 O A
; {+ x5 C! H$ Z& r6 ~' Y( e
0 {8 C2 Y% K' y _9 g
4 |/ S5 f& o' o3 e2 b* N. C- X* x3 c: c% I
下面命令备忘待整理0 i) H/ U& U o; H5 f z
; M* U/ f# L8 _! [. }% V9 ^" Q
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
" O! l9 }/ p4 P0 T. H# ~& y$ k8 l" Jaescrypt2 1 hw_ctree.xml tmp
' s" W( a: J' d. g- pgzip -d hw_ctree.xml q x/ w: i) m- ]0 X% r
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
1 @! s$ Q$ }& c9 w% b
4 `9 N0 c( O9 K4 B/ h+ m6 P0 `0 |
7 T, Y. z, q+ v/ O+ c# k2 g* i u! v6 {+ b, }. O
+ U$ J* l" ^% W4 @5 X- o( Y1 C$ a3 t
3 Q0 m! M* @7 M7 l M( _
7 n! A/ K/ ]4 ] u" U, m, M |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|