|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
. ~- ?: e, R3 e* P+ f5 @2 G; L4 W0 L; h, `1 A
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
5 }- q5 j9 ?3 }0 b* a 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。9 P9 X9 y E4 H$ ^' @5 M5 N5 ?- P
这里先把包放上来。使用方法和他的懒人包一样。
* z- d o* R2 A: |4 g后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
5 _+ n4 B5 X' T1 R
2 k; {# }- \4 ~& C& e0 l
1 ]( X/ ^* }5 A" _2 y3 ]; d
# P- N1 O% v& q" \ [/opt/upt/framework下是只读的文件,
' ^! j$ x* Z+ x/ P- p/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.% D. `/ o+ I% A; {2 w, Z
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
: v' K0 x0 r# v" i* g
! |' z% A* W4 x
4 ~! ~5 q9 X9 t. Q! r对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,' Q& }9 f8 y9 b: W9 Y4 p
进入openwrt有2种方法
) h5 V/ v* k) o6 Y# [ B1 `注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
/ V% [ j4 R. C有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
& O4 o3 R/ O5 Q0 R+ H& ]' I1 c执行前后可以通过whoami命令来得知当前是什么用户权限.
0 S4 }% P1 I3 h1 \9 \
! C7 e$ M4 j: R! ~
0 M5 B0 i9 q1 U- R: U1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
9 o- e4 `5 _: v' S可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行5 P4 d Z1 Q" |* n
% p( F+ k6 M7 z( t5 }0 U! ~7 G. @, V! g* J: y5 N
实际测试% B0 w0 n+ ^- {! \0 K# v
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
( f/ x' C$ M, L4 T7 K: U8 C- s重启光猫,可以由telnet登陆光猫2121端口.& g7 C9 g" u# u* _0 P# a1 z1 U
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.8 w' Q: q: W/ A0 i2 L" A# z
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码: b( I# b% D) _/ D, o1 `4 n; @9 Q( ^# i
不然登陆上去不需要密码5 F9 L. g' w8 T6 Z/ ]- N
具体方法可以看后面.
d3 }7 j+ T. |3 [9 v c/ Y! Z2 V: p
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
' R4 T$ |! x6 J' d& M& ?$ c, G主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
) b' x/ `1 k1 T+ y% P0 b% ~+ J输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
! ?8 a6 P$ m" _6 ]7 J: u: a1 W& ~可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.# K$ Y0 m, v( }; j) W9 N; V4 z
察看内核信息
$ m- h& u* D$ O" Funame -a C: \0 C4 V9 k% E8 L( \% d4 a
察看openwrt版本
' g# p+ W9 h" D. Hcat openwrt_release
: q* g9 Y% m1 n5 \3 B: t察看cpu信息
; q6 |$ x6 G5 d7 ]7 v; W |cat /proc/cpuinfo
' n; O$ T& A8 L* N' v, k' ~& I# n
- s8 C/ Y$ s9 G9 z. ^: `2 V; ?据说电信内置opkg程序的参数被改过,还没有找到用法.
( Y6 Y, `: [% j& F我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换- k0 ^: r* l' m" y
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
, y+ Y z0 s5 }6 k: o此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换. s% g3 ?9 z& \
下面是在openwrt中操作
9 n6 P/ F, e8 I1 \进入tmp目录
' [% b7 ?/ Q! D0 I! Ycd /tmp% Z; d8 Q7 p1 h# w6 g+ X+ `% F
下载opkg包
4 y2 L+ {) Q5 A7 V- Zwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
0 i& e8 T% O4 s4 ]7 A5 Z解压2次文件包得到opkg可执行文件
1 X" }9 L/ S4 otar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
) E+ _5 \8 B7 R0 X( x) jtar zxvf data.tar.gz; N, K8 y3 S7 [( [- p, r
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
6 J5 Q: E# O2 w! Nmv bin/opkg /bin: B B4 E, }' Q7 J% e
7 H1 n$ T) J+ v& h3 N( Q同样补上opkg运行需要的缺失的libgcc库文件
! Q% q4 G5 r8 Q( Y! {2 [wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk! c& G0 r& d7 r: |3 u1 [2 B
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
7 l1 ]8 Y6 o( t+ h7 c9 [tar zxvf data.tar.gz
& i5 i! _+ A) E: w9 k7 E: { ymv lib/libgcc* /lib* {2 U3 c b0 p
& n6 I q- t( W7 D5 s6 }然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
- w) o3 M" U2 F9 K/ N# e$ Q顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包8 g [) w. P# o4 s0 s& d
8 {: F: ~2 G, _9 E* [
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
: `1 v! C3 k, b( v) L0 ]- t' d% y$ B4 d
3 V4 T0 Z6 p' A- J8 a" u) b% L
tftp用法
( ^9 }; Q e8 \! \3 L3 V上传openwrt的本地文件到电脑的tftp服务器" U; m* K/ M: ^ Q
tftp -pl 文件名 电脑的IP地址
0 g" h* t J5 Y8 i* |下载电脑tftp服务器的文件到openwrt9 y+ z7 h$ B$ m) d: L$ t+ f
tftp -gr 文件名 电脑的IP地址
0 N# c M3 m& M/ h X; \4 T" m5 \# @& Z+ a/ [# _
tar用法
! s2 r7 B1 y2 _1 M打包成tar.gz文件: K/ @1 g% A0 J1 [/ K4 K. C
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
( y7 j, Z; {- l: X6 s) d, t! y9 l解压
. h4 \% i& U9 y$ H$ Ztar xzvf 要解压打包压缩文件到当前目录
' ~. X/ _! H/ Y3 {, A3 t. y& e. T9 ?) v
7 \1 r. w: G, P8 J, { m) p; y j$ R% o' _) f7 C( U0 J
0 ?2 X) C! o1 `
distfeeds.conf是软件源地址.
: {/ t2 q) {% i$ b. O, k# Y1 O* U' ~opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别- p' _2 {1 _1 J1 K8 q
文件内容如下
7 V" t" ?2 a4 Sdest root /
9 b' J" M5 T' `0 tdest ram /tmp
4 \ P: v4 g7 N" f/ ?lists_dir ext /var/opkg-lists% c* ?, s: R0 A1 Z1 d/ g$ [2 M; d
option overlay_root /overlay5 H/ [; [; h6 `- ?# g: ]; y
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查 s4 r3 z! t j% V+ s8 c0 Q* |
#option check_signature 14 w; j! J i' Y( k, Z
#不依赖架构的软件
, ?+ a1 J3 g, w- ?% J Larch all 12 q% Q0 J* E& T. G: c4 r' }) B
arch any 10 E8 @; r) b6 P
arch noarch 11 }% C% _1 ?) V, u
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
) c! E9 A% q. `) c#添加 rtos44
3 ?9 r4 O0 ~( N0 Q$ J- Xarch rtos44 10$ M0 t$ }% F6 [
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9) c Z6 j6 U, U% y) d+ \7 {
arch arm_cortex-a9 20) L; B/ @2 G- h- G% l
% G" ?6 y% \4 T
# U4 X6 T) n9 {# _6 t/ ?
3 O8 f7 O+ D7 a2 p, O- b5 a清理当前目录下释放的文件$ c0 ~/ N$ n# Q$ i% U7 }
rm -rf *.ipk *.gz debian-binary bin etc lib usr. C" ^8 O& W$ n$ v8 G
. ?; K4 E/ W6 O0 p
# i' b4 o" k5 ?( J7 T8 K
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
# n3 J/ h( t. J+ n. N, s如果已经在主系统中下载安装就不用再安装.
7 u$ V3 S7 q8 O; j/ a# ^3 Nopkg update
, v) E# F$ ?' L; H" [. a0 [" j' Gopkg install dropbear" w+ M0 I; D, `; ]& F) `
修改dropbear的配置文件,位置/etc/config/dropbear.6 f( `1 _2 {; Y* z, `
修改端口不与主系统的默认端口冲突,我这里修改为2222端口
4 k: y e* O6 \ foption Port '2222'
6 d" Y3 R1 L" J& K# S( O! \% P" `% N" N# _
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面/ q# u- b" I- X3 k9 e4 e! W
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap
3 p2 v$ h) \1 p1 h. H9 c
, n, X0 Z0 T' t: u6 N
0 ~ d i! ]2 Z' [/ I4 _
8 h: Z0 i/ S$ U2 Q/ I2 K8 `工作告一段落,打包备份一下就是懒人包了
6 |3 B& c( `& P5 T" j! U. h登陆主系统7 ^0 i1 F; [3 i
cd /opt/upt/apps
4 [/ G1 E6 C+ w/ I8 Q6 d( B5 b" Zmv apps openwrt/ D+ B% s3 W& F
tar czvf openwrt_R20S35.tar.gz openwrt9 O. S3 f9 `& j* r9 V+ Q' l i
4 J, Q7 I9 }% ~* H- _, V j0 @
使用tftp传输到电脑保存.使用时登陆主系统,
6 t2 E" P* N& d0 }cd /opt/upt/apps
# Y7 P, I, z9 B4 Stftp -gr openwrt_R20S35.tar.gz 电脑IP6 e, Z# t- F; Y' d( K1 f. h
tar xzvf openwrt_R20S35.tar.gz( S6 q3 I4 j8 h3 C, J2 A! @# R
rm openwrt_R20S35.tar.gz
# y& h0 u% n; ? [. m; v备份删除当前的openwrt,我直接删除了
; e" B' X* X H5 \. R( g, u, frm -rf apps
! e! m% _, q, y& a: R! K建立指向openwrt目录的软链接,代替原有的apps目录
' N. O) l2 m9 S' A5 R. tln -sf openwrt apps
0 L& p" ?# I4 c- F* R3 Z2 N" ?1 H3 X# \
一些有用的工具用法后面再追加9 M% P c" T" j1 T4 {- c
" R% N; Q6 }( t4 t
9 W' p; y: A% V8 r* r2 N
+ m) f5 v) a/ Y# S7 s% ^5 F) E6 o$ F! x8 a+ N( ~+ r. r9 |
+ B- a$ Z; F+ K" {0 m0 j O
. G5 V5 ?8 |: u% |9 }- I' a下面命令备忘待整理
) B# l( c0 K. ]+ H8 G$ r1 D8 R2 M' Q0 H4 i/ d& ?0 }
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
5 O1 w0 R/ V: w* a" Yaescrypt2 1 hw_ctree.xml tmp% R: }+ O5 B. o: D/ s1 F" s
gzip -d hw_ctree.xml
6 F+ J! C/ O& I( p9 I0 u: vtar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*. ~4 L0 a3 M" q4 m: h$ ]
# X$ v0 T t0 x
/ D2 e; t$ d8 O# F R3 l Y# g
" d4 E6 U! p5 }/ C& r% z$ K) `
$ M/ e9 b( q/ y: n+ b9 T7 o+ c S+ O
4 z8 v+ N# D( p. \. A* k( W! ~0 W. \# }
6 [. C+ H; Y, n" c9 q% `9 w( H
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|