|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
5 A2 |0 [) ~, H4 t# B: @5 e. w4 E
- d) j7 ?: s! b) N前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。! B' c" D) S6 O8 L8 y
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
5 }6 R3 I) D5 _: B* Q6 ?这里先把包放上来。使用方法和他的懒人包一样。3 y; B) X% [, Z9 B7 F. J
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
2 x" i# n; \1 f2 t/ H5 j9 G- m5 i7 H
5 I. w) Z: r( K2 [$ i
* r, r! b) ?* D3 r/opt/upt/framework下是只读的文件,$ k q- I* H* X. x C8 X6 A4 V+ [; I
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.# z" J# G x( }9 u; g e! m
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
) Z, W' s: q4 Z6 x q+ C0 f# E" [; N$ y' t1 `% \ ^6 r+ @
* s. g2 {& v, J3 j7 }9 n
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,! }$ D/ R: E8 T9 M
进入openwrt有2种方法
5 I: R& O# a9 r注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
% l$ s" Y# R' Y' V* V" o0 Q有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.1 n3 C, c6 J- T/ H) K* W- U8 J" O
执行前后可以通过whoami命令来得知当前是什么用户权限.
3 x8 P8 _- I+ \5 T! v6 g2 Z5 v9 a3 N g! n
9 `" o5 G& x( F7 x
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
) T( P9 k- w4 E) G+ G" z9 ~可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
' V8 z6 n9 j2 X2 v$ r0 v& z" n, S) b" D! n
. D0 Q, v: v: q! q R: j9 M# \7 l6 I实际测试
5 c3 `& r4 C. |% U: N7 o创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & 2 r4 {, M$ c6 k1 a, J- f
重启光猫,可以由telnet登陆光猫2121端口.
9 j( n# E% w0 Z5 C8 v2 T" @* H9 X如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
4 y& n, M# _+ r; a! q7 D2 \建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码: L1 F1 t. F0 ~6 N1 J) h n
不然登陆上去不需要密码
% k( v8 c5 v- C) y& I w具体方法可以看后面.3 a( x8 C% [6 q I/ Z
/ l( I; [; I* O6 ^' k3 N
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
( Q. N. C- i+ p8 F7 R4 {! r7 A0 H8 g# R主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,/ @% h7 E3 K. m9 u! F+ I5 G
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell# w9 z+ q- b% _5 [) E$ }2 w
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.7 Y/ n+ W& s5 l( u& x# }4 c# _/ l
察看内核信息+ e$ W8 F' I6 c
uname -a9 \' g8 m5 r$ d% z8 x' N* V
察看openwrt版本
% J& v* P: J7 x/ V$ Ecat openwrt_release
) x9 X1 G {- x; D$ |- {察看cpu信息2 V4 R y5 {) \7 i2 B8 e& A
cat /proc/cpuinfo. P# x) a: c1 W d0 z
) X+ k" ]3 d0 L9 J) `5 o4 z. y' |; Q6 n0 h* ?. h
据说电信内置opkg程序的参数被改过,还没有找到用法.2 q; }) D# D# ?: o
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换9 R! g9 E7 c; f/ O4 N7 E
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
8 U/ |- `1 p/ n2 M2 y此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
2 _* y9 s4 J# n# g( e) ~下面是在openwrt中操作( f2 K( {; L3 }* j5 h4 y( c
进入tmp目录4 t. c; Z. a2 H }' u
cd /tmp% _3 c9 d' A/ R
下载opkg包. s6 q4 `& B% ~3 z4 I
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk: |2 ?: u2 m! D
解压2次文件包得到opkg可执行文件
1 V, ~+ @- [' dtar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk/ a8 O4 h: u) l$ t u! o0 S t
tar zxvf data.tar.gz9 s# j D* W" A9 j
移动当前目录解压出的opkg到系统的bin目录替换opkg程序! Z3 F2 @4 j( m- O( b
mv bin/opkg /bin q; j- H h& X+ | w. a% J( g
2 R( S6 j, R9 n8 ~& @( X$ x' D1 _
同样补上opkg运行需要的缺失的libgcc库文件/ T6 d% g7 d) M: @1 S+ X( \, N* M
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk) t# K4 r5 N( x( z
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
$ x1 M+ H5 C+ @3 P9 N) Vtar zxvf data.tar.gz
3 @0 Y% x8 j% r$ T) ]- Mmv lib/libgcc* /lib# Z( N- ^; Y3 L- Y! k# o
M+ C# Q% b; v然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
2 A; b$ o, a4 }; h顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
" q" Z; R0 P$ ^5 V+ w% ~: q( K f7 k! D* I8 a s! p5 a" G
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因8 v! r! y: }- v9 Y" g5 S+ l& {* g! m
8 m# ~; x1 F; A
& o4 n; _ j2 w2 l& G4 O6 dtftp用法/ ~7 L+ B; b0 D6 c1 r4 ]
上传openwrt的本地文件到电脑的tftp服务器7 C }' k5 R" D) q) s$ s) s! a
tftp -pl 文件名 电脑的IP地址9 l1 l; M+ x! ?/ E& n: S
下载电脑tftp服务器的文件到openwrt: q+ d6 d( c0 Q+ a( b0 z; \
tftp -gr 文件名 电脑的IP地址" n* T* J; e4 w8 k1 V3 e( Y. H
# R2 c+ _9 `( l5 Z
tar用法. |5 e( @: G' o4 a; Z5 m
打包成tar.gz文件$ t3 U+ \7 i3 ]$ ]
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式/ M7 b5 X6 {3 `2 v0 j
解压! h/ x$ T: x' t" Z
tar xzvf 要解压打包压缩文件到当前目录 / c0 S& A& e( M! {
4 _% Z; t$ f# X, d( B
8 a# o* h3 u+ |+ \5 S: V- g Z- T9 I0 g. C( u
" y/ j5 Q0 ^0 L4 a
distfeeds.conf是软件源地址.% k$ V8 s+ y, U4 l6 e2 R
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别2 k: }* c" V) Y5 x. g
文件内容如下
& E1 }1 ~' k1 P) M6 ~/ fdest root /
# R7 b, |: C6 J' W4 n3 fdest ram /tmp3 v3 J, T9 T7 |
lists_dir ext /var/opkg-lists1 _+ P V/ v1 s( N( B9 n1 K; O
option overlay_root /overlay
0 o8 M6 v2 } P( F/ ~" c g#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
h L/ Q6 P. Q$ J/ @/ y( Y- D7 E#option check_signature 1, g* H3 }0 x( q7 d9 |' n! E! B' l
#不依赖架构的软件
w7 g' ]" K- P9 n6 { U0 R; M4 Tarch all 1
8 q- B; K# G9 Q+ j" K" a5 Iarch any 1; J' g u) I$ d
arch noarch 1
$ @% j! S( ?: n a$ m \#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos445 l9 G) G& u: r- G' C7 U2 k$ d
#添加 rtos447 l' u o ~# C& |, q
arch rtos44 10
9 F! |4 l6 e) O n#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
1 {% R5 P# q5 r2 Qarch arm_cortex-a9 20# ^; Q/ u. w/ m' l
/ j I4 K% ^; z3 U# U6 S0 f
/ o7 f) r' [5 e3 x- T; S# @( W/ g8 G9 j
清理当前目录下释放的文件
/ `8 F2 q6 d: e# C& a% Q4 Prm -rf *.ipk *.gz debian-binary bin etc lib usr
2 f- l% Q. \9 f% m5 k
, K! E: v5 Z1 C6 B& R
7 B' C: q+ E& [; K# E+ F现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面2 Y% t1 K; P; x0 k# p; J: [
如果已经在主系统中下载安装就不用再安装.# f2 y2 Y0 u& {1 m" S
opkg update
. _, O8 |. g/ W/ wopkg install dropbear
" d; H5 I7 P% l3 A5 X# X8 T# v修改dropbear的配置文件,位置/etc/config/dropbear./ b; N9 @% O0 L/ e- g5 z
修改端口不与主系统的默认端口冲突,我这里修改为2222端口
# K$ u9 }& R" O' z$ yoption Port '2222'
# x4 g9 M( I# b9 j& K, P0 E0 |; A4 ~; f4 d0 K6 q
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
/ f# g3 Q Z$ x$ X/ _opkg install luci-base luci-mod-admin-full luci-theme-bootstrap( M6 E$ P" w8 j W5 ]
7 k" U0 A8 R* r4 ` J! ]& l5 [% {
) E. [' I# e/ C2 A4 ]( C& T$ A1 R Q% a7 \) c5 S: A5 F# a0 @
工作告一段落,打包备份一下就是懒人包了
! K: u7 p: ?! L# d j登陆主系统
( q2 B" |! g T+ Wcd /opt/upt/apps- D7 {) @% I; V
mv apps openwrt* J4 m7 _8 P% D
tar czvf openwrt_R20S35.tar.gz openwrt
" H U% ?. X ?+ [4 E$ e2 R3 r+ W( z% j" E) |
使用tftp传输到电脑保存.使用时登陆主系统,( ~0 L$ s$ \- W0 I. p" T4 ]$ U
cd /opt/upt/apps
0 f4 _& E5 O( w0 @( U/ wtftp -gr openwrt_R20S35.tar.gz 电脑IP
6 j& b) s" ?8 }# Z2 Ctar xzvf openwrt_R20S35.tar.gz
7 r* H* l$ ~8 y, |8 Rrm openwrt_R20S35.tar.gz u: {; a7 R, {$ A2 o) }4 f/ P
备份删除当前的openwrt,我直接删除了
4 N7 E. G( I) f( D0 Arm -rf apps
5 C: d: Q) f! ?5 ^) \建立指向openwrt目录的软链接,代替原有的apps目录2 P4 e' b, T" d% y# }( m- W
ln -sf openwrt apps
3 z$ E5 S$ X: _3 M; T) @0 q3 S' S& c8 c
一些有用的工具用法后面再追加
/ K9 D* ]# A' r7 [ N* v1 f# b8 S: ~* {* b, }
8 i8 n% d/ N9 }2 Y& W$ r, t
. D1 M( { [% P4 j2 I0 i: M1 s# d% \, k l& Q! f* b
7 D; x7 R) b" L4 }# J0 q
( r9 V" s+ U$ Q, W4 \0 L
下面命令备忘待整理+ r% C5 K; I4 h* c9 r9 R4 }7 J
- n% A& T* j2 d* G# I7 x/ P
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string: M0 K) F k3 ]- I: ?5 M3 P
aescrypt2 1 hw_ctree.xml tmp
$ R3 Z0 n0 ?/ u& P5 W" d% K" A" rgzip -d hw_ctree.xml, `+ Q) H' ` G: b* ]
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*; V9 Y7 O, C+ M. \9 s! d( }
1 v# _9 q$ G) g8 Z. T) U; J
( v( f9 f" X1 `/ O& C# X1 w2 ]
: y: N+ g8 B6 Q7 g
1 {2 {& [3 N0 o4 `6 w. O$ ]) B& o0 s% C
: k* F' |; s8 Q' r7 I: J; o
6 n2 q: \5 z, K+ k1 F1 I
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|