|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 2 V9 k9 y" t2 {! G/ R1 H; u. C
1 B( \) D4 F3 Y/ g6 U$ f u前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。2 g& k) u5 I- {$ Q# V
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。6 Z, Z$ ~4 Y+ f! C: p+ @
这里先把包放上来。使用方法和他的懒人包一样。
1 g. m5 N* B1 ` |! \% E* u后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
6 S; A: _, ^; o. d8 g# j6 H: E v; Q, L; T
. |. }/ L( i; ^4 D0 R. G J
, u2 K% D k' q( R
/opt/upt/framework下是只读的文件,
5 O( i( Z$ S7 `8 o+ w f; t/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
+ m- [9 v0 A. H* M5 ^7 N1 o所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.- ?$ w" k4 A9 y* I
7 t+ p, _' A0 W: O2 I
/ b' p; j. s4 K- d0 v' i
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
+ w2 P: |0 {: X1 c& L# B3 E进入openwrt有2种方法
1 {$ e! i& q$ t5 z2 P; H" c; b注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.5 g) {4 `" v7 O8 j) q
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.. `( O, n6 n0 `0 l0 |. U3 I
执行前后可以通过whoami命令来得知当前是什么用户权限.5 e4 F- {0 M- V7 g. |
+ h# }+ R6 Y6 L$ y
. t2 I) y4 ^8 b8 U) k; J1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接9 t$ R3 g2 ^7 T0 Y# X% p
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行3 y$ {, R' F+ g9 m0 w j X, i
# B5 V: ]$ u& [8 z+ v. c
& O; k- o; [ u实际测试8 E! W4 P8 z! c8 n- X
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & 1 Y) y; @: D# H8 R* y$ r
重启光猫,可以由telnet登陆光猫2121端口.# I: Y. V4 M% n; O* c
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
7 X2 G7 y3 O, ]0 |7 W建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码4 D; J1 H& D R+ c- b0 d
不然登陆上去不需要密码
* ?2 }& }# A+ z* S具体方法可以看后面.# l' C {. P' ]
* M2 m, @3 h+ N9 T
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,) a* G: G& I4 O, ^0 Y- _0 ~
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
; V, ^! x+ N9 @4 {" a输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
9 J3 p6 A8 x6 W- v2 `/ u0 H可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
9 e6 o1 H0 _! f察看内核信息
- q. ]# G6 S8 \- r/ y+ juname -a* O+ t2 P: i6 c
察看openwrt版本 B( U2 z( R! j& v! @5 [" n
cat openwrt_release
" P7 Q* W, X% k6 N察看cpu信息
; B8 p4 o0 C. x# [0 e) j8 e( Kcat /proc/cpuinfo# C2 R. U; d) l1 k
. w! U, {8 \% ]" ]0 L
0 O$ h# Q' m9 j& \) c据说电信内置opkg程序的参数被改过,还没有找到用法., M5 K$ c" L0 b/ o6 W0 k
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换1 @# Q/ _- ^* @: H2 H
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
: r8 H6 e Q- ^' f1 `此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
C$ F# b; C6 ], y. n$ H7 n3 N下面是在openwrt中操作# b* R! ^+ m: T/ o Z( R
进入tmp目录/ V9 S" u0 e- K) i
cd /tmp
7 y8 B1 Z' S# g8 x% X下载opkg包2 w" N2 ^& \7 L1 `- R0 Y: X
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk3 Q3 `% f' \% I
解压2次文件包得到opkg可执行文件
! ~, x7 P# x# s: F4 o Z* `( c5 vtar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
; \- X* n8 P+ F" w* Atar zxvf data.tar.gz
+ E/ v% c* v0 X; e+ N7 \3 e( ]移动当前目录解压出的opkg到系统的bin目录替换opkg程序
, ]& O/ r1 ^ [) R. X4 ymv bin/opkg /bin1 k& i+ K0 y! C. \ y
& ]* p9 Q9 a _1 ?& q同样补上opkg运行需要的缺失的libgcc库文件
4 {5 b6 [, I+ zwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
5 V8 r& Z P0 w# ?! ctar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk3 w& B [: A' L9 a) k
tar zxvf data.tar.gz8 n3 q( B3 W2 C- p
mv lib/libgcc* /lib
( C" s) h/ E- O9 S/ ]. b$ E8 o# ^- p0 U/ x6 g
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,+ }" H$ {9 b" f8 h% j- i
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
$ \2 u' r6 ^$ W/ {4 K7 L- u8 q* y( h# B/ m; x* l
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
' G, K3 Z6 r3 R5 {6 Z0 b, ]6 }
$ K6 W2 _8 I I: h2 b* t4 E
2 V# ]9 g9 }. K. `- btftp用法
* {! N& N- U( o. m9 _, |0 l上传openwrt的本地文件到电脑的tftp服务器. A- E/ \: M' r1 s i- O
tftp -pl 文件名 电脑的IP地址
+ ~' u/ ?; X5 G5 D& ~) M$ \下载电脑tftp服务器的文件到openwrt* ~8 F# }/ y0 Z p8 T
tftp -gr 文件名 电脑的IP地址0 Z! j6 c! w! y3 C% a
6 I) o6 O t' f! w2 [tar用法
7 s/ S$ h) h: T! h打包成tar.gz文件, n7 T" g8 O+ Y* N* z# N. _. S8 f
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式! q3 i/ n+ [2 E% x! z& J
解压4 {% R8 o, x& F1 X% R2 `4 w
tar xzvf 要解压打包压缩文件到当前目录
) Q$ P3 T2 V7 ]* h: |
* j2 S- B! x/ @& c) b l- F3 K' l7 [# ]! y+ f a! s0 r
4 y( Z( O; ~- Z9 P+ `$ T+ z! P
$ n/ o* C! S/ _* P3 j! gdistfeeds.conf是软件源地址.
. y) r8 x' T4 b) a; qopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
- e" z2 q3 }1 B4 i8 J; P文件内容如下7 K, X. Y) ^3 f3 P0 n5 B q
dest root /
+ d* b5 F1 {0 ?: wdest ram /tmp# |8 ]5 {( D% t Z4 R! J- G
lists_dir ext /var/opkg-lists4 z' X) j$ D& Q( u; D
option overlay_root /overlay& |2 d) V6 X7 e! k. { \3 O9 J5 j
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
* z6 F* \/ W* |- ^, P#option check_signature 14 U4 e5 V: }4 J% _ T
#不依赖架构的软件
; O0 {3 ?# z# F6 aarch all 1
' D4 |* `* R% E- `/ g( i/ Darch any 1
; M9 ?; j& v& ^arch noarch 1
) y7 {) e6 ^9 X" F# U$ C5 l8 S1 W#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos445 P1 f' ^4 I; {) N7 D
#添加 rtos44
9 G5 K8 S2 w. y. Y1 Yarch rtos44 10
3 l" P1 |/ o9 u7 A#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
G7 H: }) l# Aarch arm_cortex-a9 20
" y9 e. m" L$ B8 W, @) a0 R. @' E. D9 E! l8 I0 I3 P* n4 H
4 f: S$ E8 d5 K: I; r+ b& \' N: z: \9 [, ^' x, v' ]2 r
清理当前目录下释放的文件4 J8 A% {( v8 y( F1 n$ S
rm -rf *.ipk *.gz debian-binary bin etc lib usr
& f2 d9 e" _1 R9 I! ^
/ D+ [- X0 ]8 n8 e" I' d
$ ~9 L- [! j, | I0 G现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面% K+ k6 Y/ v$ m
如果已经在主系统中下载安装就不用再安装.
8 s* p5 ~ x1 ~8 c+ E) t# C- M" j& {opkg update4 U. e( X; \+ H( a3 R$ [8 P4 i( I
opkg install dropbear0 w/ v6 o2 L" f
修改dropbear的配置文件,位置/etc/config/dropbear.# s' v" X* [: ~1 ~( o
修改端口不与主系统的默认端口冲突,我这里修改为2222端口" E8 Z% `- K) L
option Port '2222'9 L) G: b7 Y/ U* I1 y, p b
% B" ]1 X; c4 {/ d1 O再次安装luci一些包后,原有的电信页面就会变成普通的luci页面; x1 s' B8 v# F. I7 p3 e! U; y: }* T
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap
2 ~( K' c1 {& ^7 a# n' f/ a1 U
! ^/ _2 [* X4 X5 }5 B' \/ d% m3 Y. o* Q/ T
; R! F! P6 v) |3 Y9 u工作告一段落,打包备份一下就是懒人包了& K1 o0 d$ F" x( S; W" X' R
登陆主系统
6 C5 h; H8 G# W( f- B# S% q0 C, Qcd /opt/upt/apps- g0 X2 n. j* f# m4 Z m' L
mv apps openwrt2 l: d+ X2 H/ d R
tar czvf openwrt_R20S35.tar.gz openwrt1 v% j& Y$ s H/ G
( W( |3 w' n. \
使用tftp传输到电脑保存.使用时登陆主系统,; }6 L1 @* Q9 B( E$ \& ]
cd /opt/upt/apps" \1 l/ o- H# e- a( W6 v" T
tftp -gr openwrt_R20S35.tar.gz 电脑IP, ^3 C3 O" d3 u% V6 D% a# q* O7 I8 O: X
tar xzvf openwrt_R20S35.tar.gz
" s, p( @7 A+ ^rm openwrt_R20S35.tar.gz6 I, s; c9 f: f( p( T2 ]
备份删除当前的openwrt,我直接删除了
4 F j% T( A6 D% Yrm -rf apps
- h; ?. Q: u" j建立指向openwrt目录的软链接,代替原有的apps目录4 @( b# ]5 V2 Z
ln -sf openwrt apps
% s( E. V2 o3 z( X6 B
% T: P+ p4 h* S3 S+ y% ^- d一些有用的工具用法后面再追加
* }/ g5 Y* r Q( s* H% @. r
% B. k7 m* x8 W# ^" b& a
2 u: c4 X2 d. z" P% o/ H
/ G" N$ {; \0 p! ^" t
+ y9 M* l5 B0 J/ Y y4 M: I2 l6 f+ }0 ?/ j& |6 F& {) L
1 n7 h9 [8 s2 s4 z, w下面命令备忘待整理
2 P: @. @8 `/ T. w& n3 M5 X/ @# w# B; r N, U% d% N9 t
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
& R1 c* A2 a, U" F oaescrypt2 1 hw_ctree.xml tmp! h5 c( V+ J2 v8 j) j9 k: L6 f
gzip -d hw_ctree.xml+ [. b( O; a R U1 O
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
. w) y2 ]' N: ^9 l, I$ V
" _) K, q& Y/ t! O' P) \- v( G* ^, n( d0 ^
7 M& V' I4 T' g! @; S# J6 V
$ E `" w h! ~4 o9 q s
% o1 |/ I0 u& B" y8 m
+ B% j8 L+ s+ a4 H1 N0 T
1 G. p: E' E, X9 N# g7 T |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|