|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
+ w" f$ Z0 q8 w5 [+ ^ w# O+ Q, W( d9 Z
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
! ]: ]( n9 i& U9 j0 J, M- n$ M( e 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。. ^% [, s- L9 E
这里先把包放上来。使用方法和他的懒人包一样。
5 y- ~6 J1 l+ O! w1 l; B后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
9 c0 d2 A. O' O0 A' m8 @* u% ?+ R- \# p
- c& b$ Q' l: r. l: `6 u
7 s1 Q6 i" J5 \7 N7 T( O1 @1 z- B/opt/upt/framework下是只读的文件,
- a: D) _ {1 x' v/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件./ m) p& |2 q' }7 c3 J2 Y' Z
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.7 _, Q& R3 R8 f# Z
/ s, i' b% j# }" A2 ^, F( j$ I+ M
+ x% C4 ]1 k) a& e8 }对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,) I, M' m$ q) L i" _% e3 ]/ I1 L
进入openwrt有2种方法
( V3 H3 q( y: l注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.; M8 g9 A0 V! T- ^# @1 h
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
5 F- s. i( w: ~" s: J- R执行前后可以通过whoami命令来得知当前是什么用户权限.
0 z2 y" K: t2 C7 Q5 y1 e& S/ g9 U' H) L8 m7 w
4 L; o. V3 M7 u6 ^
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
7 G4 s( G/ F# T' [0 W- E/ ?可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
( _, t: u9 h/ T% K" y1 S6 _4 G* j# Z7 v; `
% o& J# w- ?* z. k0 d( F, ]
实际测试
9 T. }" ^: _3 g" S# {1 X# w2 ^/ E创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & - z/ _, V. v2 l/ m
重启光猫,可以由telnet登陆光猫2121端口.) n& C- b4 `; a6 P/ [ t! F
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
9 G% U! K. C0 E' u/ v8 J8 G建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码. e, {5 Y" f2 w) ^" R. E+ z5 Y
不然登陆上去不需要密码
' u: e/ N3 l: T* R6 P+ s具体方法可以看后面.
6 }& Q; i! R! D7 t6 R/ `7 \" `; @6 i- E5 L0 R! ]1 C( d
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,' a$ P9 Q! Y& n# m' w" m
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,1 Z9 g9 s6 y: X7 @5 d
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
% x6 N$ q, f8 M* W可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
# O8 q& `1 b: U" \察看内核信息* q+ u8 l/ W: d; H7 m3 t
uname -a
5 z$ ]' g, Y* F. A/ a F. B察看openwrt版本
% T# L4 @& R" V! @' G& Ucat openwrt_release
+ _ c" _* ?5 t3 Q& Q6 T察看cpu信息9 T! O; A) m+ P4 }
cat /proc/cpuinfo1 \8 W+ ?$ b( K* {3 c8 l/ X: v
/ t# ]) L7 z2 E: m% R4 P% I9 `/ d* ]
据说电信内置opkg程序的参数被改过,还没有找到用法.6 ? p! D( ^, B6 r/ ] T
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
- e/ f- `4 v+ i5 P' sopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.$ _. l- U# W" L& ^/ g
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.- C, f. q: C4 G, F$ o; _4 ~
下面是在openwrt中操作+ i9 D( P& X' D: j7 ^3 ?% ]5 C
进入tmp目录
* A: a' j" D6 _" N4 r" Scd /tmp8 U0 K9 {/ x9 T4 e
下载opkg包
, V' S* M/ F |- n% ewget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk5 X/ H7 U8 S& C" ^# W
解压2次文件包得到opkg可执行文件3 j/ e7 J$ `* ~$ K' P
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
3 g4 o( o! {% |; D1 V' Z; _2 ~8 Mtar zxvf data.tar.gz) z6 e, c# l6 n& f* {2 r
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
3 \) p! N# a$ d; H1 h4 b0 \$ gmv bin/opkg /bin
6 O0 }- H7 R" H" g- Q' E( S* T$ A& _) r; x$ ~! }* r+ @
同样补上opkg运行需要的缺失的libgcc库文件
/ \6 H8 Q r, X" Y) b( pwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk' f6 \% g6 u- m) h
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
( {; d6 w/ w; V/ a5 ctar zxvf data.tar.gz# @+ ~( B5 ~. E, n' @0 p8 C
mv lib/libgcc* /lib2 y5 O8 s4 x; j
/ y* n/ p1 \" }1 F然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
/ r0 X2 s; F& a* `& c2 ?6 m顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
. a' t" B. F, O
) C1 s$ h8 ?' [还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因) s8 C3 o2 R1 J+ i4 }
, W: b2 M- h4 O/ k& K6 ]
; r* e" l$ v! P% B# m" Ltftp用法
9 c! q! K' E- Y8 |6 W上传openwrt的本地文件到电脑的tftp服务器
- `0 [( P' Q. h/ A: @/ {tftp -pl 文件名 电脑的IP地址
/ Y+ H, l7 h' G8 m4 X下载电脑tftp服务器的文件到openwrt$ K: E1 Y! M: o* S2 R4 {
tftp -gr 文件名 电脑的IP地址6 r8 T! y# C0 a6 t# x
2 T# Y: Q& u7 Y+ V* e- @! ztar用法5 D8 S! [6 w6 A, E. K
打包成tar.gz文件 j/ V. ^' v* _+ I) U
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
X+ V# w7 s @/ `解压
( }! [( Y8 F/ Ftar xzvf 要解压打包压缩文件到当前目录
; U! t! y& S/ N9 e0 g1 |
+ b6 V& R# X- C) w0 a: H/ E5 y
% N0 J" n0 o# P' d1 r* Z
{+ c) i) j9 [3 [; K, G. |2 X0 N. W3 T' v# A2 E# n- ^. v
distfeeds.conf是软件源地址.
" K+ K) _. L; o8 [# Y, Jopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别 K: N* g: C) b; a
文件内容如下4 m, W4 A" U0 N1 F+ W
dest root /" s. J. R, w Q# }3 l# ]: @
dest ram /tmp
" I/ m) v1 ?6 Y7 D; [; Glists_dir ext /var/opkg-lists. R- G7 k. C8 Y8 ]! |
option overlay_root /overlay# [. z* y: F0 C1 F( h4 Y
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查7 t* ]3 D5 u& T7 ^/ [7 E- V( J
#option check_signature 1: I' x9 d& m3 Y: E6 x6 H
#不依赖架构的软件
6 o9 E* Z2 ]) Larch all 1
/ R* |2 z+ k2 E8 f" M: u& varch any 1" m4 y$ x, S" x" F& K
arch noarch 15 G+ x6 V f x9 F" r" L1 g" f
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44: Q1 |; Z' l8 O0 T6 \0 l
#添加 rtos44
1 B9 H0 x1 H4 Q- W: ^/ y8 W# Parch rtos44 10
+ k+ ^/ T2 E7 C3 ]6 z. {4 x' g#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9- Q# w1 s: N) ?2 G4 l# J2 Q6 A
arch arm_cortex-a9 20
, t- F0 W1 F- L7 I4 t
! X( a1 k2 h { |& l4 l" ~ w( v% A# K
& B, C* `" t1 V, K; e9 Y清理当前目录下释放的文件
' u/ F; T) `$ d6 Vrm -rf *.ipk *.gz debian-binary bin etc lib usr4 k) |% y+ H, S& k; ?
1 B: ~# V+ y5 {4 a
; ]$ i; [/ w8 L Q0 y
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面5 O- `0 {, ?6 G8 u) E5 b8 p
如果已经在主系统中下载安装就不用再安装.: P# H% O$ @3 w
opkg update
: Z+ R* w9 |8 Yopkg install dropbear& e I. U0 f/ R9 } z2 r
修改dropbear的配置文件,位置/etc/config/dropbear.
/ m1 ^% V# S# w# C% S修改端口不与主系统的默认端口冲突,我这里修改为2222端口) U% w9 I- ^" |# Z
option Port '2222'
; L# Y* L6 w$ ?" j+ J+ D! [, p
& I9 ]) J; a( F) {1 d _再次安装luci一些包后,原有的电信页面就会变成普通的luci页面' w& U% D, C+ @5 u7 ^
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap0 a* Q. `: X9 V4 \8 l) c
" ^- }' p; e- U* {2 a8 f
" X1 ~* E7 D# j- ?0 ]$ c% W3 W: E/ k
工作告一段落,打包备份一下就是懒人包了
/ G+ I6 p$ g/ X' l* f登陆主系统, Z+ J5 C! K3 V' E, Y( m
cd /opt/upt/apps; u* x' X% b( `0 |
mv apps openwrt7 v* l) \; m1 P: B6 u) l2 l
tar czvf openwrt_R20S35.tar.gz openwrt
4 C7 Z! W, \+ o
2 f8 J4 X; A0 h使用tftp传输到电脑保存.使用时登陆主系统,
; s+ E9 [9 C# x7 u) }$ wcd /opt/upt/apps3 x- Y0 X0 {9 y2 L
tftp -gr openwrt_R20S35.tar.gz 电脑IP
+ G, x0 n/ a9 u$ E3 H! Ntar xzvf openwrt_R20S35.tar.gz
( g% [( n% K5 J" ?) B2 d& Grm openwrt_R20S35.tar.gz9 v5 B. V2 D6 [. \) X/ K( d
备份删除当前的openwrt,我直接删除了; N& g( L5 P5 W4 H7 \
rm -rf apps1 A+ H# p# |9 t: z3 ?# q
建立指向openwrt目录的软链接,代替原有的apps目录, _0 t9 X6 B7 r! P2 A
ln -sf openwrt apps
- e5 J7 s* ?+ T* q
" }( q( L* O" B1 t9 ~* w1 f/ J一些有用的工具用法后面再追加
) S/ y3 H6 P9 _0 {2 L/ w+ e' R+ v* l: g3 I
- @# |2 l4 T/ R+ |( y! F, d
* u" \* I& ^# v! @* y& L9 T0 H$ w: R* I7 k1 U1 e1 V8 P W
* W2 S# w' w, i) u9 |/ J: @- ^; U9 f
& O( W* o. \$ s6 Z7 U下面命令备忘待整理
: M1 W; A q( w# p
8 s0 t5 f" a a% V' A* i5 }* q% R7 qtar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string4 T5 `9 n2 y( h$ l- ?
aescrypt2 1 hw_ctree.xml tmp
6 P0 H4 n, T. C: c$ ugzip -d hw_ctree.xml
2 {# T2 H; q' l0 C8 ?tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*6 t( \' Q4 {- i" k$ e% B3 E5 I
% w" n6 N3 d/ x. E- Y- F
1 f6 J2 r, V* n, {* r
* m( a2 ?$ z& `( U8 c
* Y4 B+ E) w, S+ A
6 z) P. |/ d& A1 A. c) ^0 p- E1 i3 y7 h* e$ @, |
! x- V& m% O5 X$ @" K+ g |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|