|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
; C5 c0 a: H+ M5 \" @% n2 R% M; y! s
8 K3 a, z4 K9 t4 a r前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。+ ^' Q" i" V" e+ G
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。( I4 J f2 n. q ~3 R
这里先把包放上来。使用方法和他的懒人包一样。1 ~9 Z" |9 R/ s& r
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
) A3 ?" P* R# u" W9 f( Q2 L. b8 q1 I+ e( S0 Z. [- L
* L4 t4 P1 F4 L
) W" m/ K7 q" {3 |* R) i6 |; h: g/opt/upt/framework下是只读的文件,
' V4 F& o- {2 a/ `6 Q/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
6 t1 V+ @" K' A: }7 P3 s& H1 p所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.5 l# V* T6 d) l H
- h/ Z1 v, e; H: S: C" ^! ?
# I; U) e, M. x对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
5 \( u4 v7 U# s% k进入openwrt有2种方法5 [) _: ]; ]7 ]9 O/ g" V2 f0 K
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
4 K& H/ S: n/ {' \有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
. M4 S3 c7 Y/ y. d执行前后可以通过whoami命令来得知当前是什么用户权限.
; E, ~7 w, M4 c m ~. b6 l
) P) Q3 w2 u4 ~7 J3 Z, `. w& T% ]# v) L& y4 d: C
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接5 v$ m: i+ `( g9 f1 ~9 ~* [/ T Z
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
4 H% Q0 C: L$ w( a: k+ \
; G' @/ G. a9 A( i; M
) b+ i+ i5 R; T# F Y% ], ~- i实际测试9 a# v! q+ z4 o/ }7 e3 \" ?5 ^6 N
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
6 |, Q' s( b) J! o; r9 x重启光猫,可以由telnet登陆光猫2121端口.
- p- n6 z- g: P: T" `- L如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
: |. l# F0 [& A ` y+ p建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码+ V0 n. k; H6 J0 }# @1 H5 J
不然登陆上去不需要密码! i* F6 Y. c; F1 Q) C# I& C' F
具体方法可以看后面.- I: q# _& ]9 y4 g! `
" u* O5 N s7 m. y# O2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
( \ N2 u" g1 t主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,5 X; q7 P2 P: C0 Y1 ]
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
5 O: C5 w+ i6 j7 ~3 v可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.$ u2 s/ P+ e8 ?6 {+ I1 p! w, y
察看内核信息
" c3 N* f! j& B) `1 K% Luname -a
* I/ ~) `, f1 m& P5 k5 L) a$ f$ U% h察看openwrt版本; r, s. ?. G7 U8 b, S5 i
cat openwrt_release0 H( | F4 u$ N r" l# j8 X# s
察看cpu信息
$ M- F) G d$ ~. C9 {1 a rcat /proc/cpuinfo
# Y4 \8 q; T4 _/ a2 B ? j( W8 M( R7 b B! A# I
: B* E! Q) Z& Y8 z4 S# F据说电信内置opkg程序的参数被改过,还没有找到用法.8 h5 D( C5 a! z/ |& s* _# g3 d' A4 G
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换' ^8 s! |4 n1 |* _
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp./ m. F" B% V! i
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
+ t- ~- l% P5 \# R8 M' [下面是在openwrt中操作4 P9 u! S3 C' L- s
进入tmp目录8 Z' X1 k) B7 `5 u# ^! V! b& N; O
cd /tmp
/ H" ? O# n$ e; S5 Q, c/ Q: b* F [: y下载opkg包# F3 ^1 G( D. j+ U
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
8 O* i. A3 Q- }+ T# x解压2次文件包得到opkg可执行文件
9 q9 Q$ I1 Q' Y+ j& w1 \9 B, [tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk P- W7 l: g! D+ o9 k
tar zxvf data.tar.gz
g( ^5 k7 Q2 P) \移动当前目录解压出的opkg到系统的bin目录替换opkg程序8 R& r8 c7 Z8 f' g( `0 t2 ?! I
mv bin/opkg /bin4 z' N2 }8 y7 M- h4 ~; l
( S6 y7 S8 a3 u% R+ S( c) t
同样补上opkg运行需要的缺失的libgcc库文件
" Q/ o' H# o0 P6 S1 jwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
; b1 [9 k, ?; c. K( b9 ytar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
6 p& P7 Q8 X8 o1 g/ N) mtar zxvf data.tar.gz
+ W5 {* i: s$ C5 W7 z" U* f( emv lib/libgcc* /lib/ P5 @# L3 h2 x+ X$ I
3 M' r F% F4 q, T6 t* e
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,% {4 s7 E+ _7 E, |, Q8 A
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包" l3 ^; j+ N- p4 \1 _
5 `: r/ T5 Q) C: m2 w: M: q还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
) u& R8 \. Q; y( k
' F; s- R# t' J* _* k! X8 Q$ K& i
tftp用法( S( N7 A6 t! w, v
上传openwrt的本地文件到电脑的tftp服务器2 q) e. s! q( U( ^
tftp -pl 文件名 电脑的IP地址
2 e6 ^6 c( l, T, g下载电脑tftp服务器的文件到openwrt
3 W. C# ?* T8 d! L8 n+ C5 n/ f: xtftp -gr 文件名 电脑的IP地址
# M, s3 i1 o' u" k* F+ v% Y- c3 A, l& {
tar用法
' j2 @. t @. \9 m3 {打包成tar.gz文件4 y0 A0 Y$ ]7 I0 {8 }2 \
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式. v5 |; j5 Q! {* N& O2 G
解压4 {% | N- [* B* F6 A0 v
tar xzvf 要解压打包压缩文件到当前目录 0 @& s! ?1 T6 n& k. `
; J8 E7 I9 h1 r' X0 u8 x: D4 V/ I) {3 ?% f' R* `: L
% q& m$ `! g+ {' Q, S0 \1 z
! I0 ~& j" W! z, J# x; D- Cdistfeeds.conf是软件源地址.' u8 X& r% m8 F( J: t
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别! b5 z3 P6 a8 [# X/ W( ^; A! _
文件内容如下
2 [6 v" v# C$ V9 w9 l2 h9 {" Sdest root /
+ \' R2 a5 _- [/ Idest ram /tmp
8 c# ~& p0 w7 v" Vlists_dir ext /var/opkg-lists( P. ?- `; @4 h! E, J7 h
option overlay_root /overlay
- n G& s1 W |, p. @5 F9 E& @#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查 ]) J. J: k+ u
#option check_signature 1
; a- t6 f# j- w% [ p#不依赖架构的软件
( F/ H; l1 v7 M* s) ]7 Sarch all 1
, H" [. |3 h7 D3 [% u) h* \( n% {arch any 14 ~2 o) ^- n, j8 K# R7 d7 G
arch noarch 18 P9 U. J! X; p/ B1 C! t$ y% e
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44; S7 l& Y# ~5 b$ K5 _$ M" ~
#添加 rtos44
2 n- \" e) y7 X) w' ]arch rtos44 10( n$ h0 c, ~# [+ r# X
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
/ h% i* c$ }" E2 |) aarch arm_cortex-a9 208 ^) B3 Y0 z4 w/ }4 t/ i
2 ?, E+ A/ N( w1 o/ P8 l. Y1 V. [! H
+ v/ C5 H, V7 Z
清理当前目录下释放的文件
$ n% D' H% S% `+ |, T$ c8 W/ xrm -rf *.ipk *.gz debian-binary bin etc lib usr% }& j6 O% W/ p/ {7 k: i
' g7 f$ r4 L6 f# G' n! h2 B& D9 P! B
5 T8 _9 r7 V( s* z1 b现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
0 g' r" w, I2 e, C* |1 b6 H如果已经在主系统中下载安装就不用再安装.
2 W: ]9 L& J: I: K& Q- \) Aopkg update& `: B6 P6 v9 p9 V
opkg install dropbear
; u4 v' k% y' ]修改dropbear的配置文件,位置/etc/config/dropbear.
, w! g% T7 h3 i' J5 w修改端口不与主系统的默认端口冲突,我这里修改为2222端口
! s, w0 x2 Q# f, J. |option Port '2222'
; C8 y3 O/ ^$ q: G3 V
# n# L2 W( Z r* q再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
4 H# K K$ h' ~* }opkg install luci-base luci-mod-admin-full luci-theme-bootstrap; C) z; `( W7 k2 ]( Y
+ K' g, r0 d$ t3 Q9 r) p9 b' Z4 @6 _4 i
. S8 V% j) `$ n/ K' a3 H9 _
/ M8 L. `" Q0 n& }工作告一段落,打包备份一下就是懒人包了
/ l4 r& m/ X& `, B登陆主系统
: b/ G% I0 E* x5 ^& c% n! Bcd /opt/upt/apps4 ^9 B, |& C: ?1 N3 `- w1 S3 h
mv apps openwrt
+ d4 W7 j2 j' \' ]2 X5 ^4 v3 l5 ptar czvf openwrt_R20S35.tar.gz openwrt
& ?! q1 @, B @0 i4 d6 {7 l, |. _( v
使用tftp传输到电脑保存.使用时登陆主系统,
/ @7 `0 u O4 @! M7 ?- E2 ?3 Fcd /opt/upt/apps0 h& G: K7 v# ]0 q1 I
tftp -gr openwrt_R20S35.tar.gz 电脑IP+ d$ C8 L" j$ G6 p9 c
tar xzvf openwrt_R20S35.tar.gz
( \4 m% F I) E9 a* urm openwrt_R20S35.tar.gz
9 d3 p& C) z, g* N( E+ q6 |) F备份删除当前的openwrt,我直接删除了0 d- k& W# m. O- E6 G( M* Y, U
rm -rf apps
7 E4 h* Q: @9 N' u p1 U; T建立指向openwrt目录的软链接,代替原有的apps目录( e7 l, t+ ~' |: m
ln -sf openwrt apps
) G1 t4 Z! K: c3 \( d* @) y# v: L3 z
一些有用的工具用法后面再追加
; m- _& ~; c( b0 K! X% E' e/ c3 j9 {* z5 m' f
4 e4 m2 y) f6 d f. O
# S* }% p4 p; u0 m# A/ \5 s4 @# B9 i a
% \" K8 T2 j2 ~+ o. q
8 j n! d+ U) n3 e u下面命令备忘待整理
: \ q2 m7 ]2 R" [! E9 b& a/ `8 L+ T5 F$ n; b/ K5 p
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string H4 ?% ]8 F+ c( C/ J. L, ]4 T# }
aescrypt2 1 hw_ctree.xml tmp% D) k3 ^* {/ ^8 l4 A
gzip -d hw_ctree.xml! ~# ?, [. J8 u5 K' V
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
/ O6 V& J0 y' k/ K4 W
: b. G- j+ }6 T. i5 w4 ]6 Q( J( o3 R
6 J' ^# Y# ?( F2 Z/ V2 D( f5 N3 Q# ~! M. I
+ b$ U7 H/ b; t% ]4 T
7 F! [' O6 @2 a2 R. K
- ~. r, T8 T% V8 y9 R$ \, O y
E$ E5 c9 W9 e8 E |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|