|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 , R2 z: p3 p' d7 O
# D5 M1 p4 p6 |3 k* e
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
; ~8 D4 }: j9 Y O0 n 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。 v9 R; I" l) }/ C* X" J' r7 y6 Y4 i
这里先把包放上来。使用方法和他的懒人包一样。2 I1 h3 @2 g7 X% O' ]
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
/ \# V7 a) a8 N/ m
2 a$ X# d/ v' O4 ^1 B, F2 }/ i
* ~' r4 S h% u: Z. S) d7 x2 L" B! Q
/opt/upt/framework下是只读的文件,& H5 b. K+ g& b- J
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
1 v' z$ d* h' C所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.' e4 }. y; v! c* z1 Y3 t* z
# U8 z3 r3 w$ W; e M" J
8 {8 y! E4 A, z# I$ |7 x对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
5 f2 R, z) F7 F5 _8 J3 i7 R# b, z# l进入openwrt有2种方法6 Y# W+ B! i/ S b( O
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.# ?& R, `3 h8 d, w4 C* F0 W
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
7 m6 L- B" s F. l! |执行前后可以通过whoami命令来得知当前是什么用户权限.
4 |, P v! T! K' [% F8 B) J# p Z; m# X/ `% ?& E$ k& ~
2 I& h: D9 b1 ^# [ h2 `1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接, A7 i* ^. H# r6 N8 W
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行7 B; W* d8 U3 b6 h1 j
/ Y0 ]! w6 g2 [" ~% Z; O. _7 {" @+ K1 v; L
实际测试
$ g- Z4 c# l( p' K" V创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & - C! }! R/ F4 _: v, x# [
重启光猫,可以由telnet登陆光猫2121端口.
! A2 z/ J2 H4 L5 \8 M如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.1 `4 b5 r# t+ L+ M; \$ ~
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
$ y* V" ?# S! V9 S6 `8 h, D9 I5 f不然登陆上去不需要密码
' Q9 l' a; W4 M' A1 W具体方法可以看后面.# U, b( V& r2 f- _/ S: h
, W5 T1 i7 q& b& V% [
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
* d# m! u' m2 U+ v! D主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
) X: ?3 |9 p# c7 `- ?; L1 b输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
/ g3 a) S. \4 ~0 @可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
! M. v. l' ~: X+ }( O察看内核信息: s5 L- j i/ n2 p8 u4 H
uname -a
0 e5 t4 ~3 G2 J7 B' l察看openwrt版本' t' K$ {# C- q& a
cat openwrt_release
1 {% ?4 D0 e t0 M. H* w察看cpu信息& w* l& T; l" h) q
cat /proc/cpuinfo7 o% e) v' m ?! W8 d- x* T) M9 S
. v0 T/ e/ h$ H, {) a! H2 G
) y% E' {* B; x) \2 f; u据说电信内置opkg程序的参数被改过,还没有找到用法.! E# r" f: M P) g
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换" Y8 Y+ d. y0 |/ Z" ~: s
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp." y7 ?* d0 `- U1 z* A
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.7 v8 Q6 Z) V. l- E( ~: G, \
下面是在openwrt中操作2 V3 ]4 P F9 F* e) x1 {# R
进入tmp目录
9 i [. D% M+ `4 v" a* \cd /tmp
: O. a, X/ c7 n4 T; d- J6 ]$ h下载opkg包+ R I8 ]( k# @ V+ ~. r
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
8 Q6 ~2 }5 u7 o. [& ] Y- c( ]+ A解压2次文件包得到opkg可执行文件1 {4 C: q( H- S( D3 O. }% Q
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk4 E7 H3 Z( |: j
tar zxvf data.tar.gz* D; f4 q- X$ C2 d1 q: w e
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
+ }' _) P. `2 J4 h1 X5 T: }0 mmv bin/opkg /bin$ Z, T+ e- r g- Y
7 ~- l, q3 X3 M3 r, Q! a同样补上opkg运行需要的缺失的libgcc库文件
: ?" L% ?2 Y N* Qwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
! X) f/ T! E; E8 z: a& itar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk; j7 N4 F3 o( ~) X4 I
tar zxvf data.tar.gz
0 P; f% ^$ w4 |* o9 X) Vmv lib/libgcc* /lib" g i! C, D( N- i/ Q
2 y+ X# r+ @3 N4 k N6 q0 y* ^
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
$ P3 M" y2 }0 ^% W( S% s+ N; K顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包: u6 U1 I8 n! e, L* M; [5 [
2 ], d2 h' s) t2 H" K: v8 n3 w还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因+ y8 I. B9 Y, H7 {8 f
* Y0 q* \! e: `6 r: G/ @" s2 ]# v, X! a8 Y9 l+ c6 Z; X4 f
tftp用法
) S; g. _# N9 a8 J4 y0 O上传openwrt的本地文件到电脑的tftp服务器) X; M! r$ ^" e
tftp -pl 文件名 电脑的IP地址) ?" r( f/ N% ~ x3 m: G
下载电脑tftp服务器的文件到openwrt, A: Z* x" S `$ \: j( ^' i% I1 H
tftp -gr 文件名 电脑的IP地址3 h I8 ^* c' V& m( B8 [) Y# Z0 `
' Q q! y/ R4 R/ Rtar用法
/ ~8 _, S Y q5 Z$ b* b( j4 n0 d- n打包成tar.gz文件
3 _% @( U8 s( j1 Ttar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
" b; [1 X# Y# ?, V! d: H5 I0 L) B解压4 A' R5 }4 X; p0 u
tar xzvf 要解压打包压缩文件到当前目录 6 F. @# T5 K: a1 y/ x: c6 T
) ^1 f& M6 ^* u) W6 B0 q- q
1 w+ _. u- J) c* I4 Q
. l6 H% }" n. W9 f( w, }, `' x* W& I+ _5 G
distfeeds.conf是软件源地址.
& @6 T! r+ R1 w8 Topkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
8 A" P/ m" d/ ?: j$ d文件内容如下
9 \! h* Q; [/ S, T, L7 G1 b9 T' Ddest root /
$ L. w* I5 B- [4 Gdest ram /tmp: e$ T l% b8 j- b# c3 r& _7 w4 ?1 I
lists_dir ext /var/opkg-lists" M' L k: G; q! q; u
option overlay_root /overlay) T9 X9 f9 z5 C: g8 |
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
' {( k. u' x; T5 w#option check_signature 1
% ~: Z9 n% J7 ?#不依赖架构的软件
- G" {9 j1 t" earch all 1* P2 T+ y" C8 y% Q) j
arch any 1
- X$ P# a' ~# w2 p+ J% Carch noarch 1: Z0 W }5 F7 ?9 S
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
6 j$ n/ j3 V% b4 X( ^6 z3 A( r#添加 rtos44& p" V" c# {3 s% k7 V
arch rtos44 10
3 K- t7 E9 e& w3 m5 [#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a90 L( X5 v, t; l D3 c; G3 T
arch arm_cortex-a9 20) u/ U: ~9 U- P( f, J
! I. U- U4 E4 V/ H- Q! h
8 K6 w8 q$ T" c/ D" o( B8 x9 Y* o; @- n4 F
清理当前目录下释放的文件+ f+ |- u) `- h% V$ x7 p- R
rm -rf *.ipk *.gz debian-binary bin etc lib usr# z5 f9 `2 b- w
2 N* G$ l! Y ]$ N+ G
( }9 d6 J% K2 c# V" K" d
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面7 M4 T: w4 Z* W) A: U: a
如果已经在主系统中下载安装就不用再安装.
8 l0 g- r0 {& Lopkg update
4 E& o7 _4 l. Q6 H1 Jopkg install dropbear
% f3 W2 Z) C! f7 D0 W6 O" m修改dropbear的配置文件,位置/etc/config/dropbear.% D4 g+ B" u, P9 D
修改端口不与主系统的默认端口冲突,我这里修改为2222端口
% f. D4 O3 u0 I# M aoption Port '2222': p7 K$ S" ]: r: z* c
" m p* p0 o+ j7 E% x
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面+ Y. h9 A3 n! X) L
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap% N' Y/ R" p+ j |
6 R0 [0 d& `7 X
! m" D; _8 F9 g( ^3 Z* d( O9 R0 k6 u' _
工作告一段落,打包备份一下就是懒人包了# v" z1 O* d- q8 \) }; P
登陆主系统0 }4 M9 i4 E( J0 o3 q
cd /opt/upt/apps
7 c8 h* P6 b3 g! I) N0 O# Smv apps openwrt
1 d1 a, _3 l9 H% s& b2 Q: Z( [tar czvf openwrt_R20S35.tar.gz openwrt
8 s8 w. k1 r" T- ^1 L/ L2 _/ h- X) E. L+ F8 b9 L
使用tftp传输到电脑保存.使用时登陆主系统,
" M4 D: o3 b8 W- U0 H, Hcd /opt/upt/apps
& U4 m# ?9 Y! G% Q j) H+ q: t9 `tftp -gr openwrt_R20S35.tar.gz 电脑IP2 z' W8 j; I5 c+ ~
tar xzvf openwrt_R20S35.tar.gz" [/ _7 r. F* m. ~4 k; B f
rm openwrt_R20S35.tar.gz6 q r/ M. k( M) k" @
备份删除当前的openwrt,我直接删除了
5 L: E% ]/ }6 t- j* Frm -rf apps O5 ?. F) R$ z/ c
建立指向openwrt目录的软链接,代替原有的apps目录" f0 ?' L# a' i+ k7 P' k
ln -sf openwrt apps
) k# A ~. {+ k7 ~: B
* c c6 J# U* i: l @1 b& Y! r一些有用的工具用法后面再追加
/ r- N% v* l* `6 f: L& A
) P1 n% j2 _! y$ E+ Z
$ C2 g0 \) ?4 }3 \, K. L4 m0 X# p4 K6 J+ D8 D; ~
" g# p2 z1 m. f: }4 |4 j! V2 i x
! W& R2 ^0 _! T& ^# [( r8 c
, b6 b9 e1 r9 [' X2 E7 u/ y$ c下面命令备忘待整理7 j( @ o9 d! ^" W# o) M
, i' w' w r2 z6 L: ptar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string3 t, i: a; M( B9 c8 |6 D
aescrypt2 1 hw_ctree.xml tmp+ l+ t Z1 B0 v# m" `+ f( y2 J! s
gzip -d hw_ctree.xml
/ Q+ U- }$ `: Y/ w/ V- K/ Star czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*$ Q W8 l4 I& _
$ D- B2 C: C- D) M! P$ f* t2 G' |! u
, c: r; p7 V/ ~+ ]6 F* i% C; m( | C
- b0 m3 i/ H9 x8 w* P& t% G+ g* M* c" M2 O7 H* b5 G$ G
# k' a6 _9 ^7 _- O$ L
, s4 z! t- V- K* x
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|