|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 V$ z' {! u# K/ x' c4 H2 h; O, G0 h
* B9 B. I2 p n' J" D/ }) L前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
5 ^4 v4 C5 n; t% E' @! w6 P 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。% V( e; `% f; P
这里先把包放上来。使用方法和他的懒人包一样。
6 Q4 A z) y4 p& m5 L后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
2 Z4 z z/ Z! A8 @9 P
! z) n+ n& h5 D* e0 W$ V. a0 d: F1 R
" u6 `- \6 z" _! d/opt/upt/framework下是只读的文件,8 _/ @$ t& }$ D% b
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
2 I) \: J. ~$ I1 |9 `4 Y) Q所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.8 {& N$ P/ f+ L! Y% a6 z$ p
) D" F6 ]/ Q/ y* P7 Z! }9 o3 k
1 e `7 n5 T5 H- a对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,4 w. @. V2 W+ \/ s
进入openwrt有2种方法
9 H1 S( [, A) x+ ~4 ]4 _- t! }注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户." N5 l) `1 P* \' g" O0 ~0 @+ V% i
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
, }8 ^% {* h0 ?执行前后可以通过whoami命令来得知当前是什么用户权限.5 i3 X1 f4 k, T. D/ U4 D2 x, h
1 f% D7 f$ q) S* G- @9 ?/ F
; c* y& A# z8 E' |1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接! o0 `/ h4 i6 ~* Q6 O7 s2 Y0 i/ U
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行& s( I' g; }5 {3 T. t, k
+ v8 W7 y8 F8 F) M' I
9 w: t8 P' C% w% E# J1 k5 G' ]7 w. O
实际测试
' v" z8 e# o, Z) G创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
, [. K7 _$ A+ {* s重启光猫,可以由telnet登陆光猫2121端口.
# G2 _( Q6 V' N6 ^1 M, O# S# @如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.# l8 i0 @! G/ A) T5 j a* G! t
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码# y0 r) e" h3 F6 W% R5 t* z
不然登陆上去不需要密码 t; G' e" z6 h3 V
具体方法可以看后面.: |) ]2 l. }! E8 M4 l
2 y7 e! A! Y; i2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,! N2 o1 o- M1 m, R+ s% v' A; }
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
9 X5 z. ^3 R- p5 Z1 L输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
" d! J$ W' Y& c0 l可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.+ H7 v4 P1 s1 U/ w7 a
察看内核信息
) L2 ?" }8 G+ P. _uname -a
! i2 b- D3 B( [6 Y& A- R$ Z: T察看openwrt版本( X) `# J3 O' u- c
cat openwrt_release! z) z6 Q: n& A, F0 `7 M
察看cpu信息
C6 Y& f4 O9 p, P; ^, }cat /proc/cpuinfo% }4 P# ~. \. m( O
+ M2 E( O9 |; `- _9 E7 {# {$ [
; M0 K3 h0 `3 ]: m6 z据说电信内置opkg程序的参数被改过,还没有找到用法.
, t) |' q V, U我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换5 ?& s% E1 e* {
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
~5 ?8 B( z9 b/ g; q& W, a此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
: r) C# V. u q) o0 B" l下面是在openwrt中操作
# W5 z2 w/ O- E: _进入tmp目录
3 {/ n P# f3 O/ [* ]: b0 l! `cd /tmp" ~* O2 g$ o" M
下载opkg包 L0 y$ ]- A; c3 z6 Y
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
' c9 J2 Z" T( F8 c: t解压2次文件包得到opkg可执行文件
' w8 D: A/ \. htar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk$ \1 ?- J1 }, b2 @
tar zxvf data.tar.gz( Y2 Y3 T# {' T
移动当前目录解压出的opkg到系统的bin目录替换opkg程序( l$ P* i. z. p6 r, [
mv bin/opkg /bin- u9 z$ m! d" ^8 P# K
- B( G' O$ P7 L/ W
同样补上opkg运行需要的缺失的libgcc库文件
- n! z1 v* ]; G9 ^wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
0 p: q) u8 M; O. ^+ u) {tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk- r- o4 A& U; L a2 J$ l
tar zxvf data.tar.gz
( l7 ^. C0 K6 A7 `- amv lib/libgcc* /lib
# o% e; S8 E$ K" ]& _* U7 B. H" h6 f# x, W1 M4 X# H+ A7 c$ E
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,) G! g+ {# U8 ?1 O
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包5 z- }4 _3 M( G% q; ^5 E6 L
. K8 {% P4 T" w& }5 F还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
2 t7 m' F, x J1 M& q9 M5 n5 J2 h, L
/ B% I( C- S B, C
tftp用法* O1 k+ \; t6 i6 a) Y5 w( ~6 V
上传openwrt的本地文件到电脑的tftp服务器
4 P# l' I3 A3 T& e: {- e; {2 Ktftp -pl 文件名 电脑的IP地址
% N( P+ t7 C3 @& e' d1 [4 T下载电脑tftp服务器的文件到openwrt
: v2 Z+ q& d9 D, {# [tftp -gr 文件名 电脑的IP地址
. ?' V* z* w! _8 P* a
9 _' o# `8 x! D: D7 star用法: ~1 N3 U7 S+ g/ `' m9 `
打包成tar.gz文件
o U6 x" k# ]1 H r% Star cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
- w& h5 G# b9 x: e' p解压0 a- ?% ^& _- b7 U0 e
tar xzvf 要解压打包压缩文件到当前目录
* G6 U/ B& A) g, K' [0 q' X1 S/ H" [+ x: p, Z+ |" \- E7 B
5 U0 {7 a! N# t
* ~* }. c( [& ~. C
4 `2 P- l& ], U+ ]# H0 Xdistfeeds.conf是软件源地址.- C) J& U# m) y3 q, X4 Y
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
) K; v8 k9 ~$ j {0 B文件内容如下
$ Z# j& ?5 [3 Z, m# U; U" T/ Adest root /
: Q% n# y- w5 t9 d" I9 g5 i4 n: @dest ram /tmp
/ k7 J: q9 r% Llists_dir ext /var/opkg-lists
% r$ M* e7 s+ C9 d1 ]5 L' A9 d9 V5 joption overlay_root /overlay
: Z5 G0 |/ ^ K. `4 u* S `2 ~% i) D#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查0 p' G' f0 c; e Q7 o& a
#option check_signature 1# k" X l6 F. a/ H2 S
#不依赖架构的软件+ e8 d2 s3 x# B" U# p2 Q: D
arch all 1( C# V4 w- T$ n& p+ R; E
arch any 15 Y6 V9 B8 @! ^+ T1 \$ L
arch noarch 1
( n, Z8 L1 c" o: ~( t" t% O K3 A#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
/ y* @, L9 Q7 X7 Y. X" V#添加 rtos446 k2 T+ H: `) E7 P$ c
arch rtos44 10+ K, O ~. r( V3 \9 R
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9# |! {* F8 K, ]8 t4 J5 P. E
arch arm_cortex-a9 20
5 R2 S) M2 Q+ H- V4 U% b+ ?6 |6 B8 h9 E' n5 c3 X. g" p
( ]. H( c+ k3 {5 H3 p
6 K5 ^, P$ e% Y清理当前目录下释放的文件( k( O; v0 n) m+ V
rm -rf *.ipk *.gz debian-binary bin etc lib usr* L1 r2 {( ^3 ]' E5 G, `
( A0 `3 k' m) O+ z5 J. _
; A. S& i" [0 b3 p. ~" K现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面# y. `. d0 ~% p; k4 D
如果已经在主系统中下载安装就不用再安装.$ V0 Y" O& f: t: \
opkg update+ W4 E' R' D! t+ }$ ~1 k
opkg install dropbear: \* i6 F8 T; Y3 b* J, h
修改dropbear的配置文件,位置/etc/config/dropbear.) W+ h( y# I/ r/ l) |) I- e9 _ r1 ~+ E
修改端口不与主系统的默认端口冲突,我这里修改为2222端口
1 T( A2 k% t/ m" @option Port '2222'
! D# x1 ~, G0 W% \; i$ a! n* ?; e7 L" \6 ~/ Y
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
: r0 c* C7 d7 U6 ?0 n$ Wopkg install luci-base luci-mod-admin-full luci-theme-bootstrap
" Q' ]2 r2 V/ E& q' |
8 H- g: b* N& Y: @* C( b0 l# f' l( r/ x: Y5 i
/ _% Z% _# c+ o9 Y5 R% R
工作告一段落,打包备份一下就是懒人包了
6 k# [( m( |6 T0 I; k" S; Z登陆主系统
, c/ i: o0 g+ o: {2 zcd /opt/upt/apps2 G4 b! |9 @: g# v* m
mv apps openwrt7 }8 l6 W" H% n( `5 }8 R# A
tar czvf openwrt_R20S35.tar.gz openwrt
W* `, a' ~& |+ Z# g. A- @
2 T( E) Z1 |! O使用tftp传输到电脑保存.使用时登陆主系统,
9 w( b0 e+ H/ L, vcd /opt/upt/apps7 c/ P7 C/ T% ?" V' X8 f" F
tftp -gr openwrt_R20S35.tar.gz 电脑IP- F5 L8 J* m2 w0 x
tar xzvf openwrt_R20S35.tar.gz' y7 R# R1 \: R& T2 G
rm openwrt_R20S35.tar.gz B1 |$ I2 j( `
备份删除当前的openwrt,我直接删除了
7 f6 w$ B- I4 V8 s1 x3 G- t& Grm -rf apps6 D: L! y( ]4 h! t0 K" F
建立指向openwrt目录的软链接,代替原有的apps目录2 Y+ i- t+ V! n/ r' u4 l5 y& Z) |
ln -sf openwrt apps
4 E7 Y! I' W- x t+ I$ R9 M' D
2 q( Y3 ]$ P1 X* R+ v/ N" W' l一些有用的工具用法后面再追加* K# L+ P4 l; o( D
E( g6 c# @7 V
, y6 R) {4 I) `* j) Y
$ ^2 b1 Y: {* G9 l! r3 ]. ^6 Z, b5 W' ~" \9 D0 g
P, j* N/ e5 K4 Q, m5 \, ~: y
) V$ d7 ^ l, M) z3 Q
下面命令备忘待整理( n2 w4 J/ }% i+ c. R5 S5 F& X
7 _# b* y' k5 w) P, i- M
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
8 F: u3 M# B: }4 |0 p! qaescrypt2 1 hw_ctree.xml tmp
1 u& n- d% r1 H) l& u& _gzip -d hw_ctree.xml
( B9 D) t2 z( h7 r; Xtar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
7 T W( E! e$ c' ^6 \1 A5 y& _* U2 D& a
/ B O1 b9 N" d) @+ {- j9 @6 E- d4 f- `" c. c, f$ _+ F
9 d, }# I; v6 n" K, v1 N- J# \9 H
* c2 I# k! N6 g7 q, q
# d+ c( s! p u/ m/ L; o
1 D- E: Q# `) w" M |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|