|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 ' k$ H& {/ s( {; z; D1 u% R
0 s6 Q0 E% k6 }+ s; K
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
# X& l8 J1 }; X 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。2 E( u ^) ~, L W& a6 O
这里先把包放上来。使用方法和他的懒人包一样。
% [9 G$ |) N' f7 c, x! f0 l" Z4 _3 K- F后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
- m Z. z8 o' u% i% I. N, }
8 X3 p% q& ^5 d) Q" [
1 R' L& B7 } j6 K Z8 U
3 C; h6 i$ p& I* y5 t, U4 Q/opt/upt/framework下是只读的文件,0 I; X8 ]- |& o3 S! G% E
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.8 m9 `, A0 K+ }5 p) e1 R
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
: X, Z8 X+ v! {( d
& V: G- U( I E" P& F! ^) s: @
9 I1 w: m% B, J) s对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,% S9 i* \, ~1 t4 R+ N- s0 |) e9 M
进入openwrt有2种方法' m3 g& Y8 n4 y
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
$ w6 q6 v0 x: L2 I2 ?2 B有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.( C; j8 f. G- K/ A/ v+ Z0 F
执行前后可以通过whoami命令来得知当前是什么用户权限.
9 t6 l4 N6 D2 k, \0 V5 t/ v) p* R
6 y/ [! K4 E/ o5 s4 R
& Q1 t% ` p% n" _1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
5 l2 r5 C+ b0 j b可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行/ o; Y% D' l; j U8 m, Z5 f$ F
2 b; i/ M# G1 b* U
: r' }: b+ M: L" g5 e
实际测试
2 A% k4 [$ r0 Q创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
* @' {7 [' H+ P重启光猫,可以由telnet登陆光猫2121端口.0 F) f9 `* c" a* d
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.' _/ }) Y% x6 N$ o( Z4 G1 H
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码& X, v. c6 J \5 ~, p1 c
不然登陆上去不需要密码
% C# q; f7 | \! B' Y具体方法可以看后面.% {0 U$ H; S3 a) K
0 Q. k1 R7 }: q2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
( k; U& @( w! ]7 w主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
8 H( x; G/ `9 Z" j8 X3 x输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell3 M4 x J" ^4 ~9 k; ~
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.9 j. F/ |! O% _2 a
察看内核信息
" N0 u! h8 k" c) ~+ ^uname -a
4 h+ E3 e, R% x5 r3 k察看openwrt版本2 \2 K: O8 V+ H: ^
cat openwrt_release1 z* c& G( w! M9 N- S8 ]
察看cpu信息
5 O4 B" P) L" U" acat /proc/cpuinfo0 P; _, Q/ r8 I0 n# t
; m- e: }+ T: z( p- Z
* Z6 C: ~, ~6 E' r. `据说电信内置opkg程序的参数被改过,还没有找到用法., F5 M$ i4 o1 ~8 v! z+ k
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换+ t; K$ m5 O5 v5 I1 e1 H/ D y
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
& g1 o' F, m# B9 e+ x$ d此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
, [4 i) k) I1 D: c下面是在openwrt中操作, _# F% l2 m; s m% l C. v4 ~( G* I3 y
进入tmp目录# \" k/ n# C* S& o6 M5 [: z
cd /tmp
7 Q" i J5 W4 _+ e9 d下载opkg包( K- F4 M( G) K! j( A* i
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
- X$ R! | _: @3 E5 Z解压2次文件包得到opkg可执行文件7 A9 W k8 S3 ` V5 T6 B3 a
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
3 ?! U: [. q2 S( j# `/ S# Z5 L$ Ttar zxvf data.tar.gz
! i% o8 _+ i. d" ~移动当前目录解压出的opkg到系统的bin目录替换opkg程序* u2 l0 \7 f) C; z* `
mv bin/opkg /bin2 p8 g# l/ ~2 `0 P+ G
: x: e/ q1 j) s/ O9 D( e同样补上opkg运行需要的缺失的libgcc库文件& C" O0 [5 D; @8 z) ~4 {0 Z
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
' Q8 N4 X2 s- i% Star zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk- l1 {$ Y+ G+ \7 @4 v. T$ W0 J) @
tar zxvf data.tar.gz& z o% j( U( v- f* @+ q, O# B
mv lib/libgcc* /lib0 Y' e- C6 a# O
5 Z$ y: f( g/ j1 ?* o' G% T" Y
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
' ?4 |+ a" q6 h# Y8 o* c顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
7 d0 Y( [8 I7 ~) A$ G6 j% p4 M3 U2 W) J2 C1 a- V9 ~% a: Q
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
/ C. S1 {4 v, o* t* _ g* o3 z
. {( g) ^7 d4 n1 @# w9 x
7 t' e! c" u3 Otftp用法) n0 v$ N+ x# H4 w2 I( n0 M9 I; n
上传openwrt的本地文件到电脑的tftp服务器 S! i8 i* r6 x: f$ K6 d3 k- u
tftp -pl 文件名 电脑的IP地址% Q# N) i& F1 }$ }
下载电脑tftp服务器的文件到openwrt
s- z8 R6 u" S: M$ etftp -gr 文件名 电脑的IP地址
7 m) R9 J- L! [( S, M' ^# y3 G- p0 e! A; e+ G9 Q- `0 c5 v
tar用法+ L) p* J3 {, T4 X+ A/ f; ~
打包成tar.gz文件* A4 I0 M7 @/ ?) K. |
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式$ s) S% z) Q* v' J7 c4 C
解压
7 d. G. x. ]( x+ Ktar xzvf 要解压打包压缩文件到当前目录
1 c; m0 Y. [( Y9 ]2 T$ ]- a0 ^% |
5 z3 w7 [' t6 T& U- y6 Z
$ R+ ]9 R: T% L+ |( P
2 i& j+ N- R* w1 q/ r6 N2 `) \% \3 O' S3 _$ U
distfeeds.conf是软件源地址.% w5 g7 ]' y2 w1 ~: Z
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
3 E- o2 |% a6 [5 p* E3 @文件内容如下' ^5 i4 ~; K( g& ]8 E
dest root /0 j8 }1 x: X& N+ t7 ^: {$ t) F
dest ram /tmp& b r; E& q3 z! Y( U8 }
lists_dir ext /var/opkg-lists
) L6 g8 u0 s) X+ ^" P5 @+ qoption overlay_root /overlay! m+ L8 u1 k+ y0 ~9 m
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
! q8 m4 Q8 P1 Y# b4 r+ g+ w#option check_signature 1. y) b' M3 D1 `/ H+ T
#不依赖架构的软件
- L5 H/ Q U$ R# [arch all 1
3 s: J0 e; G( C Carch any 1/ W' W1 Y* K" b$ p) u! L' B
arch noarch 1, A( ?5 S5 @ m( y. ]- K
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44' n$ A8 S: _3 B* t- U' z
#添加 rtos44
7 c3 @$ x' s: o uarch rtos44 106 r+ K# B% F# H
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9+ T6 o! d' b& a. T
arch arm_cortex-a9 20: F7 f" N0 @% C5 R$ q0 L8 s
3 o9 H M# z: R; t" ]& t6 N7 g3 T& N* k1 O
6 Z2 U" E" A3 ^0 f6 U: E清理当前目录下释放的文件
, _6 O6 [; |4 r" c) B; T# d3 Trm -rf *.ipk *.gz debian-binary bin etc lib usr
! Y {1 V9 g! y$ v, F& ]+ G5 Z s
1 _) O9 g; C/ i3 ^4 ^/ l. V现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
9 E# {* H8 \! a! C: q- v" |如果已经在主系统中下载安装就不用再安装.
4 W4 ~* O( c& q% P( Mopkg update# Q' E) p# w% K8 @0 O0 ^
opkg install dropbear
9 _2 ~: k# u0 @. _修改dropbear的配置文件,位置/etc/config/dropbear.
3 U! P2 K& v) ~, S) r修改端口不与主系统的默认端口冲突,我这里修改为2222端口/ q* a' q( I6 x& u+ a: g3 \& {3 p
option Port '2222'
$ _6 n' Q0 S+ c: S4 C; h& ^
* u& I+ q+ ?4 U& Y8 `, @再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
" d, g4 d* u( C) P' M" u+ Ropkg install luci-base luci-mod-admin-full luci-theme-bootstrap2 K* \& _' \1 C/ N% n0 N2 p {
v" C7 \6 ?# N1 I& _, b/ p' R: ?* Y0 W1 G
1 s. D" r( B. |. k7 L* T2 _' S
工作告一段落,打包备份一下就是懒人包了& i6 q( c* r/ o) A
登陆主系统
5 `' d: _% q" C* \* L9 bcd /opt/upt/apps. ?( K6 E+ a. `/ a1 E, m" O
mv apps openwrt# t3 r" w9 b( J: F' A
tar czvf openwrt_R20S35.tar.gz openwrt$ `" B9 n& }' i% g- U7 f
3 o) z" m! ~% o3 O" E/ P
使用tftp传输到电脑保存.使用时登陆主系统,
# \( m8 ~' x6 D4 T3 b) E, Ncd /opt/upt/apps& N6 d7 H. ^ {/ }
tftp -gr openwrt_R20S35.tar.gz 电脑IP& H/ V$ J& F* a$ @- a8 V ]
tar xzvf openwrt_R20S35.tar.gz
b, N1 b8 x3 O& c `3 r" `rm openwrt_R20S35.tar.gz
6 t; O5 q4 A. [1 [8 B备份删除当前的openwrt,我直接删除了
9 A5 E1 w, ?5 \0 p- |rm -rf apps
4 f: D; v8 n2 @) f建立指向openwrt目录的软链接,代替原有的apps目录6 ]0 c9 \ d+ q+ j; N& ^
ln -sf openwrt apps $ Y6 c: B! C) o- T( u0 D- L) B' g0 A
6 b8 t: b6 R& z. `7 j& \" h, ^. C一些有用的工具用法后面再追加
3 T3 w) l+ v* E5 x' \8 K+ i3 I
& ~5 A! Z) {0 k# m- Q; c
0 Q) K- z4 M; v3 |: @& W2 ^2 X4 d2 ]! U. _2 K; ^. b) W1 s
. M; t: e7 ?# u3 F. E
4 i* d9 Z+ B" k+ {+ b
0 s% q6 j5 V3 R0 y$ V+ T/ f下面命令备忘待整理& a% E2 v) {, w% @7 K9 G" e
6 t$ R) H" l$ _! t# J
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
# l+ v1 a" j/ aaescrypt2 1 hw_ctree.xml tmp
: I' |, z5 ~9 F4 u" F' Pgzip -d hw_ctree.xml
T# m) c; g; C' Star czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*: R: h2 Y! j; e
( {' Q; r5 J! Q8 t/ r2 Y" G
7 k# [' \; R' L- |7 i; w& y- O% B6 O: m& i* }6 @! C
; b! _2 w2 n; i8 {8 a2 B
, e; N' w/ }+ }2 o! b: L" c
; J# B1 Z3 k: w- w
) z$ u9 A( ~4 u' o* ~' `6 N7 e |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|