|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 ! g8 ~, C. Y3 f7 l9 E g% ^
5 W; k# }; @3 E' [1 G2 z- [5 m8 h1 O
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
: F8 h) ]% U3 `) p 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。: w2 g3 Z! d( q) `' u- j% E
这里先把包放上来。使用方法和他的懒人包一样。
|! x X( T" s' i' r: y2 T后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
6 P( j2 @% u- o1 D5 M7 J) P' }
* D! M2 J% n% m. ]1 k3 r' H' _
2 U V/ v1 T' s" P! ?: n0 |6 q/ X0 q3 }
/opt/upt/framework下是只读的文件,
/ [/ A W8 ^! {% }9 u8 L8 D7 J/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.: G" R, m: m0 m9 _, ^; l0 q/ p
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
" ]: ~+ L3 S. E- o* ]
7 x# h; y8 b' ?5 d7 G; O. }4 y1 |' c4 L8 z" Z. O. I
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
6 K2 u% t y* k9 c( Q; Y进入openwrt有2种方法" z( l1 E. D4 ]- u9 V
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
6 k$ ^; j( l1 z1 q/ c有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.: A1 O3 ~2 D, e: }
执行前后可以通过whoami命令来得知当前是什么用户权限.6 ?8 T$ x! U( c& S% U. ?6 i' p
& b) t3 ]+ x" c8 k2 n; ]1 V! ]3 _" ]
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
6 t5 F7 s7 ~+ ]7 h9 D, A可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行( h3 y4 i) i5 ~5 z7 P& T8 K
) J: c# H4 W/ {! a0 k" B1 e! t A, {' j% q
实际测试
) S- f5 M& l3 Y+ l创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & . D0 y7 {" S& F9 Q
重启光猫,可以由telnet登陆光猫2121端口.9 j1 D* y6 W4 Y7 X& _2 o# ~
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突./ Z) R w4 h$ k O# X4 p. i% G
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
; T. @/ o, ^( u8 }. |6 M6 l不然登陆上去不需要密码
1 V+ _) q" Z# c2 d; V0 C具体方法可以看后面.& Q: T3 e3 G2 f, W7 t" E
& E$ B7 P k: e. ]1 l- r% @2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,7 [# W. K1 P+ P+ y0 a% W6 z
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
/ E5 ^$ C; R' g4 K6 a0 s输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
. Q/ N+ k2 g! |. U' f5 H; {' O可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
7 y$ z! _9 y! L% `, z {. V察看内核信息
0 f1 B. Q% q! L. v9 Z& Y yuname -a' d2 z& g0 d Z5 S3 n- [( ^4 q7 d' _
察看openwrt版本
) }; g; w! Q% J3 k& @* F: mcat openwrt_release
- ?3 M- b/ ^2 V9 M/ ?* ?察看cpu信息" t+ u$ {, x* X# D8 L
cat /proc/cpuinfo
; J9 Q* Q3 S/ O( c3 ]# P2 k* P+ i7 Y
: g$ s4 E5 M) n8 X8 E
据说电信内置opkg程序的参数被改过,还没有找到用法.
- X( s B( t6 W% A9 ~- H% U我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换8 m# {1 i Q& }; }* e
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.7 n# G9 J$ Q" x4 n, l
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换., A" ~3 i8 E( u( k' G" S# ?; w
下面是在openwrt中操作0 D+ a: n$ P! Q7 n5 l% D5 o- Z
进入tmp目录
! b+ H) I+ C: ?0 f& gcd /tmp
7 ^8 h. D i& R7 p- M下载opkg包$ O6 e. r& n4 h- q
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
% m+ o! b9 f- b2 }, X8 z+ b- m解压2次文件包得到opkg可执行文件
6 w# a4 D- h! s" K! z. q7 Xtar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
% [3 @' C3 j: U" Ltar zxvf data.tar.gz! o0 p6 d- o5 U |+ r3 P
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
$ M } R' S. i- D, ]5 Y K- `/ @mv bin/opkg /bin
8 e! b9 @" f2 Q. D: T$ \8 g; ], j1 U5 ?- s) q
同样补上opkg运行需要的缺失的libgcc库文件
6 C) |$ H! O. R: Iwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk* O S# n* ^: @' n; e" }
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk ?5 P9 d# z- E7 z8 z. T' x
tar zxvf data.tar.gz4 X5 M- p& |" y. ]
mv lib/libgcc* /lib
. I* y, z% c# @8 d' a% ]* Z+ E* ^
1 z: D J+ f2 }$ r% R3 f0 Z Q然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
5 e4 M5 K. A5 Y( l0 X: O顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
! y- J- ^4 y+ t5 n! d+ m8 k
+ |1 I- K* j# |还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因1 B# P( Q6 m; `2 K5 ?6 A
2 [. Q# I" K$ O: s1 P/ F @' C( |9 S# [, q" I K" P' I p% J2 q
tftp用法4 N0 n. p+ C6 A5 _
上传openwrt的本地文件到电脑的tftp服务器
* Q$ g0 M+ c" A1 Y1 V( E7 C3 ntftp -pl 文件名 电脑的IP地址
* [; g) `6 x, z下载电脑tftp服务器的文件到openwrt! E* \ f1 @& x5 d
tftp -gr 文件名 电脑的IP地址
1 z B; \+ E1 q5 p
# x+ P: W" P) B" z8 `* Utar用法( Z! T$ j B% }9 |% r$ f
打包成tar.gz文件: g5 g+ f! d! B+ B V' h7 R$ e
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
1 x, G f, ?* T( z' g解压
7 n% d5 S1 c6 n. o4 \+ S: Mtar xzvf 要解压打包压缩文件到当前目录
8 c1 p- M# s: g8 M( _4 [5 m3 s
- D' d) P/ J9 R* ]5 W, d+ n" [, u1 o- X- S$ ]$ S
3 V( f2 ], e5 c, @+ k. S
# Y! a9 [7 a' z) P' ^- bdistfeeds.conf是软件源地址.7 s+ g0 K/ I- s# s
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别8 A) p: ?" `* {+ C
文件内容如下. k3 {4 p8 f0 {+ ^
dest root /
- t7 `8 _' m! C5 Rdest ram /tmp
0 m% b* @, @# E1 T6 I" |% @! a2 ulists_dir ext /var/opkg-lists
* C; d+ ]" S+ @# k* Soption overlay_root /overlay+ g4 `5 ~4 X# i9 P2 Z
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
$ n T; }$ C+ }6 Z! i d! q#option check_signature 1
3 Q z3 X, R0 G6 V, H* ^8 q#不依赖架构的软件! X! ~7 H) S* f u! v' A
arch all 1
5 i A' ~' Y2 N# _/ W1 K% D" garch any 1: E. X. X* U( ?1 k( l2 V/ O) g
arch noarch 1, G- _0 E' U# z
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44; G" E* P6 F, k
#添加 rtos44% w" j% x* K" z" }& r1 F+ l
arch rtos44 10
) A+ o+ b( H' v8 D n9 h' S2 ^#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a91 f! D6 x( h, G4 I% k
arch arm_cortex-a9 20
1 R- ]# W7 J, M# m# z
" f7 f! D6 [5 n* E9 x
# {; n2 g" c/ @5 F2 c$ Q# i1 W+ @$ X; K) {% A' b
清理当前目录下释放的文件& l) ~$ z' f" [, Y. d
rm -rf *.ipk *.gz debian-binary bin etc lib usr
2 {8 L; e2 R' I9 @% ^
+ H/ b1 i: w | {& u' b
9 l( [# V# O1 _8 D现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
1 F8 y* i4 |- y$ S. h& y如果已经在主系统中下载安装就不用再安装.
$ O% l5 w* T, nopkg update/ z a1 j3 z8 Y* g0 _
opkg install dropbear
2 o3 E; |$ R) ?/ K修改dropbear的配置文件,位置/etc/config/dropbear.+ C/ o' @$ s% w) M2 y2 f h
修改端口不与主系统的默认端口冲突,我这里修改为2222端口: u, q8 u6 H3 c) w) [
option Port '2222'
% L# L% v6 v6 U$ @; S9 P! O& Y. K
0 V' h- d+ U+ c; n8 Q/ D2 l再次安装luci一些包后,原有的电信页面就会变成普通的luci页面0 j7 |; Z. T, d. `; W
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap5 x3 V1 f6 x8 y
3 D1 t$ ^( q) M( v: x% F' F" x2 j$ L% s0 j
# t8 S1 L2 Z5 c3 Y% a5 j
工作告一段落,打包备份一下就是懒人包了
! _5 P3 I" j' h% r. g" n登陆主系统! X- H% A& c, g9 T
cd /opt/upt/apps
n# {% u w7 G0 ^! vmv apps openwrt& j3 Q# K5 l A/ }7 X+ U- G* K
tar czvf openwrt_R20S35.tar.gz openwrt: ~/ _: [! g0 n+ W% y
# N4 |1 a7 E* X. }- H% s2 A8 y0 T使用tftp传输到电脑保存.使用时登陆主系统,
' T( s: ^& ^9 e( }: Ccd /opt/upt/apps
1 b9 p9 q' {# O1 Z! C' I( Ltftp -gr openwrt_R20S35.tar.gz 电脑IP
3 {" \% K% @5 }. @tar xzvf openwrt_R20S35.tar.gz. @1 Y F V6 r& l: _$ Q
rm openwrt_R20S35.tar.gz3 G4 E* g2 O# F) ]2 d+ Z
备份删除当前的openwrt,我直接删除了
1 d. a4 U; b. l* Irm -rf apps
2 G4 b# ^/ \5 q" N% y建立指向openwrt目录的软链接,代替原有的apps目录/ ]. n' h. ]% G. t. M( q
ln -sf openwrt apps % y1 e" E2 ]2 a! L! T9 U# _
: {8 x$ u! d1 n' t+ u0 w1 ^
一些有用的工具用法后面再追加
( q2 q, N2 c: H0 j# S3 I0 A' f+ ?9 J2 N6 z! X
( x8 n) t3 A/ q9 B% x- m0 s: f F# M8 V0 L
" M6 i# }1 D2 X1 z9 j6 z
% z5 L( p0 I2 w, O6 F# w$ a4 b: W7 H. X9 a8 u* J+ ?- c. R7 G
下面命令备忘待整理
9 T- j$ C8 {% Y w8 x; O! `! z6 }2 _% v3 W7 {+ f1 p
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
5 ~, h R. Q5 ~aescrypt2 1 hw_ctree.xml tmp
( @0 R0 D; r1 {% G# rgzip -d hw_ctree.xml* P6 x( r( y8 }
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*, H3 f( H+ J5 R/ K$ h
, Q6 u9 b( Y2 p. f n
2 {4 v% |6 P2 z1 Y ]3 i; k: J! {
3 U# T& C( r; ], g7 b
- G4 ^* b( U% l
4 m3 D# z1 b( X) j
/ ?1 I. @! }9 E+ n# D ?; } G# ? S+ S' H% i
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|