|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 / o, q1 L" f( q) O4 O
% O" p, G% q/ H) C% q7 [; ~5 a- b前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
& k' R* a1 e2 u. c! s% M. _6 s A 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
' l* Q* {% Y8 u这里先把包放上来。使用方法和他的懒人包一样。
' N9 Q# T# I" I% x后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,% g9 @! r6 I& `+ b
. Q7 Y2 I) i0 C" r# C8 m5 F+ d" C, q/ V( g0 S
/ ^/ M, f# R8 _/ v) y( M
/opt/upt/framework下是只读的文件,
# w+ G0 f, C8 k {4 Z! ?/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.) [0 Z3 f( l: h' B4 F
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.8 w' k D, q6 |. R" A1 l6 b
; @5 m& v0 \5 M9 o) W
* u$ ^4 |9 r, O S0 J. \: u; d
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
( L8 s" C' G7 N进入openwrt有2种方法* p1 b7 m' { c; u* @, A
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
+ k Z" p( E# {+ G+ E# n9 v有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.( v. C# U! O5 t2 y4 ?3 r
执行前后可以通过whoami命令来得知当前是什么用户权限.
3 M0 R A8 `0 g' m0 z! N: j+ |& H. N1 v
6 s1 @2 t+ I- c2 J" C5 ~% c1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
* u% E7 m/ a/ W& S可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行. p* Q+ q+ R& L+ l: m# y
3 T, z* ^( m: ]; f) q! H7 w
$ z6 A( t% E! T3 k4 A H# g实际测试
! m/ t" F4 S, o创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
! t) r) N; U8 A o0 b* {: B重启光猫,可以由telnet登陆光猫2121端口.: j- g- l z' c
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.4 A, ]3 l0 O L: `" [8 j5 i8 B
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码" E, j: y7 _* h8 f7 {4 t- W# y
不然登陆上去不需要密码
% B0 M7 S# `: A" {4 F( d1 v具体方法可以看后面.
$ @$ n B$ s) O# a0 q4 c' t6 _$ }% }0 B0 `' U
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,) F4 Q( J& u2 C; L" S
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
9 ]) w5 u0 r9 D8 `! ~, t s4 b输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
7 F6 y a1 R/ _6 g可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
* _: i' ^5 @' R3 \/ I察看内核信息5 w6 s% y3 ?- q! X& d" V
uname -a* I6 r5 y5 s3 c4 j* ^7 I% I$ O
察看openwrt版本* e( l* N# G0 p
cat openwrt_release
! k* f, L6 y5 e$ M8 @& K察看cpu信息( ^0 C5 t# ?6 t" n; K
cat /proc/cpuinfo
0 Q" Y" K. X) h, {$ L: w( a* [0 w m( c" `5 P
5 r, ]6 U5 l5 r' x据说电信内置opkg程序的参数被改过,还没有找到用法.8 |' Z: @) L8 l
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换8 x9 F$ D5 ?0 M& e
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.8 ^8 g- G4 c* H9 }. v. G Y
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
`! r+ i( ?& J; A下面是在openwrt中操作 A, r1 T4 |1 O6 P) c* i
进入tmp目录
: T4 D3 P/ N$ icd /tmp
* K9 P2 @+ q% Z! C* m3 R7 h! r下载opkg包3 Y. V% E+ I6 q+ D
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk# d2 l8 m E. ?3 F, _9 `
解压2次文件包得到opkg可执行文件
2 C% X2 ~0 r: ktar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk* ^4 Y, d/ j0 W7 A# R/ |( ^; t
tar zxvf data.tar.gz
: N2 @. ~- n! @ o q0 `3 ]3 a移动当前目录解压出的opkg到系统的bin目录替换opkg程序5 G* |* [( C' y
mv bin/opkg /bin
0 `4 h9 P. s( L- z k, m6 \6 S% q3 g' r. F* O, c7 s% i
同样补上opkg运行需要的缺失的libgcc库文件' C: o, r$ r7 |
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
6 G8 j1 g5 Y d- v( z0 ttar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk0 W2 n% C; i# X; [4 u; @
tar zxvf data.tar.gz
/ B! l J/ [. U9 O' imv lib/libgcc* /lib
/ a, @# R6 l) l+ C/ T
$ v* ?8 ?' M0 e* p6 U |然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,- c, U9 i$ m! s, {& K! z5 e
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包; X, y) u! o1 H/ Q5 r
3 s/ u3 M: {. v还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因# P4 d$ t; p% h7 h8 B
+ o1 N8 K* `$ C! A: D0 @
# [/ P: i" h- e' S C6 B
tftp用法
) M* [+ I, i( C$ H上传openwrt的本地文件到电脑的tftp服务器
+ L3 J$ ?& L1 ?6 M1 r' Itftp -pl 文件名 电脑的IP地址8 c1 B- e2 J0 o' c0 z4 r
下载电脑tftp服务器的文件到openwrt1 e: w1 o W& B7 m9 m
tftp -gr 文件名 电脑的IP地址7 J ?; K1 a: ^. ~9 t2 ?2 M
( v' T8 }. r! S% n# w0 u8 Star用法* _, T8 a# p1 ~4 u6 t1 b q1 E
打包成tar.gz文件( q9 h% }3 K$ O, f2 E5 Z5 R2 V9 U
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式/ t9 V; R6 P5 N; Y8 g, `
解压& N+ a, A) A% K8 _' N, n! o) G6 R
tar xzvf 要解压打包压缩文件到当前目录
0 n1 f9 p' }! ~# I$ b: q: j7 z% ?. q( D! ]8 w2 Y
' U* w8 w. c, F
2 x9 U p1 B( i1 }: t, o
, }5 ~ U" [6 s0 x& a# Pdistfeeds.conf是软件源地址.
' c5 {) O7 W3 Y# }2 r$ S- h( Z U8 n# C! Hopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
- p0 M: k1 |7 [4 q文件内容如下2 W7 U( `, \9 W+ D5 {' t
dest root /
; {, u' J! H( |$ Q3 |2 Gdest ram /tmp
& {, }, h: j x4 }lists_dir ext /var/opkg-lists/ q5 `# G( Y' `8 d% n9 M. H
option overlay_root /overlay
' Z) a* ^# }6 |5 K1 o. t J: S#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查$ G- I% j9 q+ o7 {
#option check_signature 1& a. k6 s( B7 x1 w. i9 Z5 a
#不依赖架构的软件
8 E$ b4 X3 ?+ ]7 k: Tarch all 18 [% G L8 V! s# b8 ~& o
arch any 1
5 O1 p3 d4 x: v' v( O7 u( P4 ?arch noarch 1, z: ?: K2 X8 Q: d9 g( b
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
$ o R% M; n" f#添加 rtos44( N7 T/ o* C: Y/ ?: n3 N( b7 @
arch rtos44 10
0 `! ~: R) ?5 }6 L#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9% m; D+ c3 ~5 h. u9 Z5 g4 v
arch arm_cortex-a9 20, @0 q$ i$ i5 @' S2 Q" g' R
/ _" t5 X9 G3 @( Y; A7 V$ J9 |3 n
4 P" Q1 x7 Y3 r; h K0 ^. c" u# K$ s) m8 Y
清理当前目录下释放的文件& ?# w8 f m0 w
rm -rf *.ipk *.gz debian-binary bin etc lib usr& |- L* _- V" w
1 w& p. B& P& I; P% K. U) n7 x
' O" O1 z5 N _) X' L5 T现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面) X3 I& }5 j2 f
如果已经在主系统中下载安装就不用再安装.
# {& D+ Q5 F; ]& T# oopkg update
, F5 m" \4 I# g6 aopkg install dropbear/ M4 q# i1 H/ h. S) r/ {" c$ E; Z
修改dropbear的配置文件,位置/etc/config/dropbear.
* {6 N) E( ^ v; i6 d. e" E! |修改端口不与主系统的默认端口冲突,我这里修改为2222端口
$ Z7 X8 c! D; O koption Port '2222'
1 Y' j" |/ {0 f% O- D. `6 X+ _: Y; l
1 A0 m1 m/ a7 V- x再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
! ~2 A' X7 }' s7 R: Aopkg install luci-base luci-mod-admin-full luci-theme-bootstrap
2 v- h+ J h7 O! e ]( j1 W3 r! r* p$ w# E) t+ v! l
5 N0 r, [3 U9 F# C
# Z) F4 s+ l I工作告一段落,打包备份一下就是懒人包了 q8 ?( z; ? n4 }) p
登陆主系统) U% b# y8 q6 `4 `8 A) t+ _+ X
cd /opt/upt/apps8 U* V6 v4 o0 |0 L# Y* r1 Q
mv apps openwrt
; g& H4 I" W8 M, k: ]9 \& _( wtar czvf openwrt_R20S35.tar.gz openwrt
1 n9 y* n) O: v' g! w+ }. y( ~' k% N0 I" q7 S( y0 [
使用tftp传输到电脑保存.使用时登陆主系统,
7 E( t; L4 r6 H7 P3 Fcd /opt/upt/apps9 P3 s; D* N9 H$ k) V
tftp -gr openwrt_R20S35.tar.gz 电脑IP
! s! W0 b% K6 t' Y4 Htar xzvf openwrt_R20S35.tar.gz
* i6 L. e3 y/ x$ r0 ]3 u' T: Wrm openwrt_R20S35.tar.gz
# ]& R. V/ S8 E, O备份删除当前的openwrt,我直接删除了! r6 c8 I4 M+ @& D- C+ s
rm -rf apps
1 A& |7 J; A+ ?: I1 y5 q6 @$ p" B建立指向openwrt目录的软链接,代替原有的apps目录
, |8 a* U$ c$ z6 S5 n, g" `ln -sf openwrt apps / O' P6 [3 s$ _1 w+ U# v( _) l7 u
" T& n+ b( H. q1 r9 m8 ?
一些有用的工具用法后面再追加
; o0 m3 e( L/ _: l6 X) J# H" B# l U* o
3 y& P) ^# ~5 l$ h) O
' F4 @$ K& r( n; M- }" I
/ d! Q9 l* Y) J% \) ?! v4 a7 K. D7 T3 Y k! C4 L! N, U, b) N; i3 I
; Q3 h5 m" N, [- ^' q# H
下面命令备忘待整理8 y/ k% I5 Q- t. ?
/ w& d# K4 d" a2 [- {7 ^% o
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
/ ^0 }: R9 L/ ?2 T: yaescrypt2 1 hw_ctree.xml tmp! Y- D4 K% q( }/ p
gzip -d hw_ctree.xml" m/ _0 z K \3 R" g
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
0 p5 g- b$ a+ J7 T% R; X* d( D: J9 r* D7 v& h9 }4 r0 [
" ], t, ?) a& v0 k) s% j- I m8 y& ]9 e
. x7 F) \& b& r6 Q$ X9 @% y3 D7 d
! j% F0 m4 S( z0 ?7 |1 c" _9 M, F; g9 W- A* O- T/ @! R: T
@9 j. I# L4 w" z+ U; U+ H5 V2 ?; B, ]$ X6 z6 E
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|