|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
. P4 Y* R/ d O8 O- _6 _) g0 F( W* z$ w% G5 _3 V6 V" n
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
) x! s7 M2 m( x/ z 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。" _ @5 ?+ q8 @8 H+ I7 W; R* d& L
这里先把包放上来。使用方法和他的懒人包一样。
3 H9 {: H, q: f# X" X4 o2 M后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,* }( r8 D6 ~: V+ W
$ m( T0 w# ^& H y5 E' ?' v
$ i) J1 P* x& K. V
1 X& B% p0 Y# [4 r. Q/opt/upt/framework下是只读的文件,
}$ u: k: R" b! s( M1 g; g/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
p ]6 w8 S# Z" f- W) w$ b所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
8 B8 M0 t+ X! F7 O- _6 Q* A- [+ z- h- l% T$ { _+ |; ~4 e
5 U' r! m) ?& r' _9 W
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后, ^- X" N* S1 B+ a' a
进入openwrt有2种方法' K* w* U2 a# Y1 t$ X9 G' \
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
, ]+ L e, m5 Q% n& H有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题." U2 ~1 `$ B* i4 s
执行前后可以通过whoami命令来得知当前是什么用户权限.+ {4 a( K: o) r1 u1 Q+ V9 F+ B
/ Z' t, H! s- O4 Y* H# w# @
5 D2 w& b8 x( x0 Q8 Z$ q1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接6 l/ A* E+ h2 d9 x) s# G& Z7 V$ }
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
8 f( j/ z9 v; l6 v( d$ h W9 Q3 N% a5 ?, _; A
2 G+ j/ }' y6 b
实际测试8 b/ C5 W0 K9 [ \) G- d+ J/ o' T
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & 1 ^. c8 B( P0 V# b
重启光猫,可以由telnet登陆光猫2121端口.; v9 c( Q" ~9 S" a' X
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.) ?% v6 Z# N( c! u
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
) j4 c E9 @" R) c% ]% w# O不然登陆上去不需要密码
8 o% f, e. y ^1 {4 ^具体方法可以看后面.
9 ~" a0 a' @+ b; p7 F8 ?. |0 V @
2 T, @4 z2 Y, n: H' R) b2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
5 i# p3 M$ ]. f; j主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
* F! q# A2 |/ @2 G. P* [输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell3 h0 q: P4 _5 o
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
; V0 J/ d- }( `& w, I) t3 }察看内核信息
8 N! V* k( J* p. iuname -a
( g% }# Q Y- J7 R/ J5 Z察看openwrt版本
' H5 @8 a' g9 e, k mcat openwrt_release G9 N2 j; u5 q' l& _
察看cpu信息* u* m6 B# z2 D! T2 u
cat /proc/cpuinfo! v( O) z- l( a/ s$ B/ h
& |, l) b: K6 F# p' _+ ^3 a
1 {' L4 m/ u$ w) C+ M- G0 a据说电信内置opkg程序的参数被改过,还没有找到用法.
% Z( C# ^; Q8 p5 g我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
% F4 k! v' @* L. R7 `1 Wopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
3 l: k" {$ N( `& B7 \5 s. E此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.! b2 R' n% Z/ o/ F' l
下面是在openwrt中操作
$ k0 N8 L4 c2 \7 n3 I9 V进入tmp目录
+ N+ f( [- [: R4 h; V# E7 Xcd /tmp
4 j: \% `2 ]& I7 W a; y下载opkg包
d' s% r# ^* ^# x/ B& z2 H6 I3 jwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
9 `9 u7 {) y, i解压2次文件包得到opkg可执行文件
9 m$ \2 R0 P3 T" `; C6 r) L6 ~tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
$ M' S3 B' I5 _) Htar zxvf data.tar.gz. m) ~# C- W4 L' B0 a4 G' w9 h+ M
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
/ x8 V: _7 c; ]8 amv bin/opkg /bin
/ E! c' o }0 v' {2 w0 Y4 v8 u$ Z$ o$ c- ]0 G
同样补上opkg运行需要的缺失的libgcc库文件
+ ^3 ^/ U7 J. ?/ t l6 Dwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
! \2 i4 g; p( ?% S8 Ztar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk S* a" }* {2 v; _4 E
tar zxvf data.tar.gz0 X- |$ e4 f. l. J* T; n/ `3 L
mv lib/libgcc* /lib: e0 p( h0 ^2 O2 p
+ N; K; Y, [$ q2 L
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
& |+ Y1 ^# k Q* o$ b0 P顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包 V4 n' ?/ W$ ^! t8 B- \" _
4 h. s& f$ O6 y( D5 c% u0 w+ O
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
8 g! t3 t7 Y5 i
: d$ a4 a3 u- t6 h2 K- W/ ~9 j5 U% E3 C, Y4 m
tftp用法
+ f1 [# E% v Z. V4 l$ C上传openwrt的本地文件到电脑的tftp服务器
0 q+ a) o. p& t' h+ ?' ntftp -pl 文件名 电脑的IP地址7 ?4 Y D6 d2 c7 {' l0 L
下载电脑tftp服务器的文件到openwrt
# W8 u ~3 I' |( D1 r- m" }tftp -gr 文件名 电脑的IP地址
% T* }/ M# Q& U$ N3 S2 b8 z& W' z9 ~8 i) S/ }
tar用法
6 z( ~7 }8 H2 O打包成tar.gz文件
' d. C7 _/ z2 S: ?& y. F1 a; atar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式/ M3 C D; r; h" ~
解压
% U% o" z0 k8 @tar xzvf 要解压打包压缩文件到当前目录 & b) h) y& Q5 Y3 l5 f* a3 D8 f
8 B4 M+ ]# ]4 X
! S0 A. M' u% @, G9 f+ f% D: v( K
' q& g+ S+ D I, ^; k4 j0 q0 j/ J' x! I. {' s- T% \
distfeeds.conf是软件源地址.* K! |8 x2 Z M9 p6 U6 b$ z
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别: \$ @+ V. _3 c5 N9 P$ f8 Q! x
文件内容如下
1 C0 B n* _7 V: mdest root /
' R' A i a" cdest ram /tmp
, N2 h0 L& l9 P0 ~% X* Nlists_dir ext /var/opkg-lists
. \: N5 ~5 V9 \" }$ r( |option overlay_root /overlay
' n# n, A6 j0 R! R2 c# j#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查% C7 X# s( x+ U$ N# B& K2 T
#option check_signature 1
6 |" r6 @8 k2 N8 a! L" J+ W+ z#不依赖架构的软件
2 y& P3 [8 i( ~+ h/ h! Garch all 18 `4 p, Y' M# e) n
arch any 1$ ]: x5 M! f" I1 h2 p% L
arch noarch 17 [# @! q% u7 ?0 R0 }
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
! F: r+ T0 a, A! c) G8 G- G/ Q#添加 rtos44) i7 H/ p& c) ~+ S8 \* I( [
arch rtos44 10$ H' Q' K- K7 V/ D* c9 D
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9* J/ Z$ F2 X, t3 H; {3 X& S. a
arch arm_cortex-a9 20
& x% w6 H% e: {) J/ e
s) G' z' I" r( k7 T! @# Z9 }$ H u1 l& }) K, w
" [* t1 G5 ~0 a' n: |' M/ z清理当前目录下释放的文件/ e3 A% ]0 Z- ~3 u; L5 A$ K
rm -rf *.ipk *.gz debian-binary bin etc lib usr, D4 {4 R) R2 W- p0 U
% [3 H) E! k( P9 O# b: z6 N
" y4 J. O0 O% `9 O! {% ], V6 f现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面) L# c( }0 w I: C: ~: W; l9 ?& }
如果已经在主系统中下载安装就不用再安装.9 f7 ^0 v* }5 U9 v: _# B b
opkg update
, W; a" Q* C# {- T; N: ]( mopkg install dropbear
5 w1 e- I$ B$ v" d2 r# }修改dropbear的配置文件,位置/etc/config/dropbear.1 s; T2 n/ B0 `, ?! ]
修改端口不与主系统的默认端口冲突,我这里修改为2222端口; O$ B; C l h0 c: X
option Port '2222'* K% e; [" g* R& e
% W6 N; v$ W6 h+ N {# [
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
5 F. e$ z. E f1 ^; }7 ^opkg install luci-base luci-mod-admin-full luci-theme-bootstrap
" h, Q2 R9 m* ]4 o8 z
/ G+ ^! z& P3 z3 b' t& `* |& }6 O! I, [
0 [. q6 n# @& i' Q- T1 g8 r1 d5 R' M* i工作告一段落,打包备份一下就是懒人包了3 Q! E, T! g& f- U$ N
登陆主系统
E4 W; y$ X/ Kcd /opt/upt/apps
* X" A' b+ I' n" H# Nmv apps openwrt9 `/ k. |, W3 o% U* s# _# X7 | m
tar czvf openwrt_R20S35.tar.gz openwrt
, f/ e6 K: |% R/ O0 D: B J1 V
$ t: g3 Z4 y' q; x: q使用tftp传输到电脑保存.使用时登陆主系统,
8 h3 q! K' O) C% v1 l# M0 g; L, @! Rcd /opt/upt/apps1 f$ ~: a) F3 _- S0 I' z" p. ]. ~9 B" u
tftp -gr openwrt_R20S35.tar.gz 电脑IP
$ Z* G8 g( w0 I* u/ T5 dtar xzvf openwrt_R20S35.tar.gz: C! F( v; h* x5 h. v
rm openwrt_R20S35.tar.gz
z! y1 q- B3 _. O2 }+ Y, P; K% s备份删除当前的openwrt,我直接删除了
6 u0 R4 i9 |( F# F _rm -rf apps
* W0 Q0 q4 Z7 o" \- C! M建立指向openwrt目录的软链接,代替原有的apps目录7 q' c/ g0 O8 t+ g
ln -sf openwrt apps % b h# Z2 G7 ^ i+ j4 V! Z
( Y. p. a) Z( e# q4 W1 U0 [一些有用的工具用法后面再追加
% m$ r8 K" V( p8 D! h
. x A' i2 G6 I) I0 H9 R- ?' m& M5 Z, z6 c) r, ?3 `
% _: b9 G/ t& h% B; A/ J4 P) H3 d, _# D6 T6 Q
1 |: f" Y+ A# x6 o# _$ ]4 r
1 X: G' r) l" i% E# q. `9 u8 n
下面命令备忘待整理
$ U: Y& K; q- S0 ]
8 V% k" C1 C k, |! ]tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string8 i% W) G8 x' C1 p% B% o
aescrypt2 1 hw_ctree.xml tmp+ J# s5 g& u8 f( n2 `. x8 g
gzip -d hw_ctree.xml2 m7 K' }1 h( {7 e) v
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*1 H1 A% W1 D% L0 B+ C) ?8 b( T0 G# i
3 S" Y5 d7 ?6 r% E7 b
6 f1 A; J1 P5 C6 K1 ` X
# |* L: a6 {' e1 ]
9 r1 \8 Z# i. u x+ \* R& J
7 I+ E: u* r' e& `
# ]- [7 O. X% y0 d4 y2 W3 j1 m2 J" u: i; m
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|