|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
1 [ C$ A/ |3 u0 L1 R3 r2 J: Q( n' v; \% ^
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
: F8 q; _5 s4 e# `. c6 z0 d4 @1 o$ z 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
5 i7 g$ r' k {% Y9 [这里先把包放上来。使用方法和他的懒人包一样。
& H8 |) |3 m6 D Y后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,5 l) l9 K, h. k ~, k) I; p
9 z9 t0 h5 e8 K( }9 E! T9 S. b( K
7 U/ u( ^5 R, M8 Q! G
3 y! I! C1 J& c! R/opt/upt/framework下是只读的文件, D, h5 O' Y6 f# o2 {
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
' R. P( p% F9 V9 I3 J所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.; M! M& G" S1 }* A* T- a
! g# r, G' m8 W5 [8 z. B, u. i5 r
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
4 i: r) E# n' P( d4 _进入openwrt有2种方法
3 D8 g7 R% Y& A# ~1 A- \' \注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.' A; {4 z5 O. y+ C7 c" z$ d
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
' e# i2 v% c; A. g5 @4 i4 D" g执行前后可以通过whoami命令来得知当前是什么用户权限.1 w2 X7 i- n$ |" e6 c& j
6 E- C: _: e2 `( d* ]6 G3 X, n
4 X/ N0 I; m$ F* T1 A1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接" R( @1 k6 r# j" l8 q
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行/ K% Z1 Z' B* t+ d. y6 ?1 h/ L
4 ^6 h: ^- ?5 y) n/ f! }3 m: a, ?: j7 X
实际测试
" l% l1 v% e% O, E创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
% p( _+ C6 K. X重启光猫,可以由telnet登陆光猫2121端口.
- x0 [. N2 O" _ W m" F7 S如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.& E9 E# q) B! }0 ?2 p+ H4 |7 X- W
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
( E/ l! ?$ z& t7 b, v6 p8 C% r! J不然登陆上去不需要密码
! v0 ~7 c/ m/ ?. _; y0 f具体方法可以看后面.9 |) k$ ^" i" J) Z6 N% i
* o h3 I' D- w- s* f, j: A2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei," E- L- G O' f
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,# E' r9 `" o6 O- e4 h3 x' P
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
2 `* \% n( x3 B/ t可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.( ?% Z. ?, v+ z% \
察看内核信息
0 t! b1 h* R, Y L5 U( o- |uname -a6 g. _" o" C4 v% N' J, v. N) m4 i
察看openwrt版本
+ v2 G7 x E# e- H' @, A3 n3 Rcat openwrt_release
" X c, @. d/ _! o) K3 n察看cpu信息 {4 O% |& ^" e* n( c6 s; \
cat /proc/cpuinfo# o X R; n$ b
8 j2 N( T w9 e/ {% Y \( z+ F) e+ D. b4 a' q
据说电信内置opkg程序的参数被改过,还没有找到用法.1 e4 D% \6 T3 W b7 C# f( |5 `
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
7 ^9 K. t5 P6 q- z8 Kopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.& U+ k/ {4 i5 F" s6 i3 `* u
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
* m ^0 `; s: {+ ^: t* f下面是在openwrt中操作& v" M3 W3 u- s1 p
进入tmp目录3 h' E1 H1 `* J% R
cd /tmp& z) l+ e/ Y9 v% n$ }! _ U$ F, K
下载opkg包
. a$ a4 m( b: u1 F! w5 \1 Twget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
5 t' L1 @6 R4 U. M* I J2 f+ D解压2次文件包得到opkg可执行文件
f& d2 c* w4 @tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk! b$ [$ r! R# A! W- ~8 `2 K
tar zxvf data.tar.gz
8 b0 P8 z3 H0 _# w% P7 }" D3 F移动当前目录解压出的opkg到系统的bin目录替换opkg程序
/ e$ |) U2 s5 b3 Wmv bin/opkg /bin
' D8 Z/ A/ f; G0 ?1 w) [2 ]5 U
9 ~! \% J! K9 M! t; W同样补上opkg运行需要的缺失的libgcc库文件- y0 {0 r# X) ^" t
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
' {1 x& A9 ]* X, y/ `tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk" a" n+ [- [& Z; v( L% Y
tar zxvf data.tar.gz
- M1 q8 h' t( @2 `mv lib/libgcc* /lib
' @, f, [0 b# i3 y5 K; [: C. U6 _0 W/ ?% E( J4 `8 r5 k) Q. L6 W/ A
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
2 Y2 K4 r- C' f; D5 `& e, v顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包+ `% E% l: f9 r6 }* ~/ S
Z" H: F/ M1 d
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因% v0 N" b1 F. i" X- w# Q
% V P2 g% S8 J6 b+ O Y% |0 q" N9 }7 B: M0 z3 p2 c4 X
tftp用法
: X X( t! B% |" Z上传openwrt的本地文件到电脑的tftp服务器
! H, W0 a: `. L* V9 D7 Y2 htftp -pl 文件名 电脑的IP地址
# \7 l2 }% h) Z3 W- J4 I9 j下载电脑tftp服务器的文件到openwrt7 {; L; E) Z8 R
tftp -gr 文件名 电脑的IP地址
3 O! i, y# S" `- }1 J3 Z" }$ A
* k, W. P$ o0 Y6 d: M& r3 Utar用法
+ Z; O' H q- Q# y: L打包成tar.gz文件
+ o5 }7 k: a4 [5 atar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
: a3 |/ j" K' J' \/ |9 b1 ~解压
4 b$ g: f, D/ J( q. L3 W! O( Ytar xzvf 要解压打包压缩文件到当前目录
/ D# g: i: \! _2 E/ U+ ?9 [ K; X4 ]* Y+ ]
|2 u, _: @1 _6 O& a
2 V& q, n: }$ P" o, o* p
q, G) U: F9 b* T2 [distfeeds.conf是软件源地址.
/ s8 X: i' D8 |' _6 H: ~# {opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别" ^! b3 g6 I& ?8 N& k
文件内容如下
H; A: F: y& Q0 v F7 ydest root /; `2 t z+ Z- j: ~' Z
dest ram /tmp
1 k) E+ @. P B! Elists_dir ext /var/opkg-lists2 o( |1 ^) p7 v* X
option overlay_root /overlay; \$ Z; z' [+ `8 M% H3 f: a9 i
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
' F5 n8 U7 X) j1 v+ b#option check_signature 1
% O3 ^( f& x7 p6 \9 g0 [ Z1 `#不依赖架构的软件
( U& W- Y, A5 warch all 13 j9 D7 T$ f: `# b+ L
arch any 1
3 p8 t6 }' O, q+ D }+ C3 zarch noarch 1( d B& i P; b! C
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
* N! }' Q+ F# P2 B- R( W#添加 rtos44* y/ O1 J) ?* }. F; r9 U
arch rtos44 10
9 T6 X$ f. d, q. ~7 u" ~#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
) Z0 H7 M5 L% d5 }arch arm_cortex-a9 20
$ ^$ A/ [4 l7 l Y G5 |
# |& I) N; v! {% t
" u6 e' y3 |6 s0 o$ c: f& Q
6 l ? {6 N$ e8 Y1 c清理当前目录下释放的文件 r* U/ y" e) t: q2 [; h: q2 _
rm -rf *.ipk *.gz debian-binary bin etc lib usr: B1 f2 O7 g% q1 }$ r4 p2 Q
% m: E5 T5 [7 p! C2 l
: |, @( o7 \- ^6 p- x现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
+ u4 N8 B; l0 \" Z$ F9 H如果已经在主系统中下载安装就不用再安装.
6 ^- o; S% c8 B. o popkg update
2 B, V, Q. q/ H+ P; iopkg install dropbear
- t+ _$ u% Q K T修改dropbear的配置文件,位置/etc/config/dropbear.$ s; b6 g$ L9 T: ^) s8 o' C# w
修改端口不与主系统的默认端口冲突,我这里修改为2222端口6 c$ {* i% V+ t% f# L
option Port '2222'4 C, y& \, T8 Y: j1 N% K0 H
) t% W$ H3 j! g+ f* e9 J8 }% G
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面/ A3 Y/ P2 t) X2 q3 P; N8 l
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap' i/ e' K+ `" W$ }
+ ]) Q# L3 B! K
" {: I$ d+ h$ h* p7 U( m
; Q# Q9 M8 _/ j+ ]( \工作告一段落,打包备份一下就是懒人包了
% ?+ `' ~, [# c登陆主系统
/ u7 [5 b$ C" J$ Pcd /opt/upt/apps6 n% P4 t, r0 b/ \6 \
mv apps openwrt
! `% R) w% [8 p0 d( j/ ^/ ]: vtar czvf openwrt_R20S35.tar.gz openwrt1 P C& A) P0 s" m
' N, F& f9 d) {6 k: s
使用tftp传输到电脑保存.使用时登陆主系统,4 y, X* C. U# n+ O' p2 z
cd /opt/upt/apps& r* e7 W7 W: j8 K* V9 Q. ^
tftp -gr openwrt_R20S35.tar.gz 电脑IP, I5 k. I# |$ r0 Y7 I+ @/ G+ L
tar xzvf openwrt_R20S35.tar.gz& s" O% p( O7 j, r3 ~% i I
rm openwrt_R20S35.tar.gz
! J, P P8 |7 q5 x) B备份删除当前的openwrt,我直接删除了3 Z) `8 P! T6 C7 n8 ?# n
rm -rf apps' v" @# c& d$ u, b' |: [) M5 j% }, _
建立指向openwrt目录的软链接,代替原有的apps目录7 k3 [2 j/ ]! ~2 R, ^4 a
ln -sf openwrt apps
9 { F, [8 \ i) z" L% a6 ?
8 I* K+ d5 S# K, }/ [& {. v" ^ J一些有用的工具用法后面再追加
; @: `2 @' I" X0 K+ B1 t9 ^
& x, _( H, _. V* [; t2 x
) b! w" L+ R( I: @* h7 J* j1 x! @$ d5 B. R9 } Y
- v% u1 v5 m0 z
" ?) J/ C) g, r7 G z
, d+ I+ U% H, P下面命令备忘待整理" L/ e5 `7 c) r, g4 J
7 ?4 [. v% H) W- _6 D3 G$ }) W
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
. X, E6 ?+ f- \7 ]aescrypt2 1 hw_ctree.xml tmp
5 e( p7 A, O, f9 z5 h: p; Cgzip -d hw_ctree.xml
% Q. H% K/ Z( v8 L, V2 a- c" Ztar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*) [( b6 {$ L3 p2 L0 u+ g% O8 j2 L
# N1 N; q6 E% l) i. K9 J$ `7 g& L6 P) a7 \: o5 `8 }
. n' k0 [6 L' E5 r
# m8 V- E% a5 [8 y
& n9 h7 p& l/ s; d: l% x1 F2 V0 Q" z6 Y" s$ }% m
6 r6 z! ~2 ^% R# K |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|