|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
S; G K, l. ?8 J0 f% v! [' f
, F0 M. b, X) d( j前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。4 d4 Q) ^0 M$ X1 b0 |9 W# X% w
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。: D K3 U( R) l0 z
这里先把包放上来。使用方法和他的懒人包一样。 U" L3 P( o: j1 _4 C u
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,/ d2 r/ M( n* ?+ Q0 x
3 {& y f, b* n
+ e2 z& M- E" X
. J" X7 n* F5 S5 T/ ^% a9 B) |6 U/opt/upt/framework下是只读的文件,
6 M* l- Y$ C) g. C3 [2 p/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
8 m9 {; a' A6 W& f* `所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
+ V) c) v4 N3 T" J9 C7 S- e% \! |3 ^/ I
) L! n+ C% a; G9 X5 j. L
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,7 v- u" ?) t6 r0 O9 G- v* t4 O f
进入openwrt有2种方法9 R& h+ s& g. D1 z8 n% B
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
; t, t6 m2 b% z, [0 D有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.4 C, ]3 t, S( C4 i9 F( {# a; s
执行前后可以通过whoami命令来得知当前是什么用户权限.2 Y- l2 A V6 o8 z$ E0 q& x. ?
4 _6 L; y1 {6 o- L3 \& ^
9 d" O [0 W1 F7 M& u1 w7 |1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接6 B$ ^7 d6 x& |6 _. I% q
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行& K/ h" Y0 `4 n# w
, e I& Q3 K/ H
2 \; D5 s5 z8 J( N1 f实际测试
1 g# N% h& g; ]% W' _0 d( o创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
* v m) [( l/ o/ b重启光猫,可以由telnet登陆光猫2121端口.7 s4 {- C- V. @" q$ C7 D; t
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.4 J# N! E- G( T/ ~3 D- D, `
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码1 q' A4 L: E/ z# M( A* @* O
不然登陆上去不需要密码
- _ y4 a0 y3 T, J1 g. O9 N具体方法可以看后面.
' D, M! }7 x8 _1 l- E$ d" c( _; J3 l' G7 @
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
0 W' `% Q- }/ ~, n0 ^. \( o主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,# x; k. `; N9 ~7 v
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell J ?5 t; g4 t3 c% c6 U
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.! K- Y n t" G: ?# _* L% q0 w
察看内核信息7 L: y9 w+ u6 l: D& c( C
uname -a( O# x; x: F/ ~2 {) K2 e
察看openwrt版本1 t6 {* h: ^4 _0 Z) q( u
cat openwrt_release
) w* [4 H* H2 k* t8 s# ?' @! p察看cpu信息! p w$ q* [& i& i! i
cat /proc/cpuinfo" H, ?. O, |! \1 s1 F
: a& p6 u4 Q* {4 |3 f, y
4 t/ W0 H- w4 @" M/ T2 ~8 [据说电信内置opkg程序的参数被改过,还没有找到用法.
6 C+ {" d, C' Y9 i. R我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换: A5 G2 b# g; o% b% O
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.$ ~6 h7 L9 e7 x0 |' q; T+ v* |
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.$ n# d" ?9 L) c0 G; g
下面是在openwrt中操作7 L0 e' X) |8 E/ v5 K3 S8 F# Y: Z
进入tmp目录
: r' b3 w7 p2 s& \cd /tmp
8 b& f- t. ~0 j& G6 o- X下载opkg包
" d8 y( i7 {5 @2 e: Mwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk9 G: C6 w" J6 \2 ~8 c; x7 V' b; a
解压2次文件包得到opkg可执行文件% z( D# t1 l5 Q* I
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk# W H6 A$ ~3 J3 w
tar zxvf data.tar.gz
L5 \6 B) c3 w1 [$ u移动当前目录解压出的opkg到系统的bin目录替换opkg程序
$ d; E g L* _5 N9 [mv bin/opkg /bin; p) i6 ] K$ N1 _5 M
b+ a S# {2 W* |, E8 F同样补上opkg运行需要的缺失的libgcc库文件; p0 ^7 k/ W y& N8 x
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk/ ]$ ^2 }! r1 `! e
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk L% r1 p, q6 p9 f
tar zxvf data.tar.gz) I& v. {$ U3 n$ O* f$ e- H
mv lib/libgcc* /lib' F+ @" |8 s* \2 i
" Q$ H! u3 K5 K9 \. c然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回, o( R& c, u8 j3 \& L
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
0 j& s9 B9 t, |6 B- q! {9 j3 `. `5 b# S
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
0 b: }: l; K7 { s8 x, r/ W" H% M0 h3 M" r& a: ~; |: `9 @
8 ^. o9 R" ~0 A2 B, R
tftp用法! @. r2 }3 d0 H% h- ^$ T. l: B5 n
上传openwrt的本地文件到电脑的tftp服务器
+ z F1 ?+ \; g" y, e. a2 R; ]4 qtftp -pl 文件名 电脑的IP地址1 |6 q- ~. b, `
下载电脑tftp服务器的文件到openwrt
: h( L) ~1 d4 z+ G, {0 _tftp -gr 文件名 电脑的IP地址
( k9 H( L( M: `) I! b
: U* Q, H. Z3 P9 y. |tar用法
" c8 ~. i/ }/ o8 V. H: c4 u+ N- ]打包成tar.gz文件
9 }1 b# k, u9 p B5 ytar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
5 f& J9 q9 u7 c w8 c1 }( t解压4 o g; I( ^$ [. B! S/ l& ^5 L3 `
tar xzvf 要解压打包压缩文件到当前目录
3 n/ [% N' t5 c
b. [7 ^! F* J
) P6 ]$ Z9 t, ^1 b8 b b+ l3 F/ M$ B+ {
t) Y/ y5 |$ D+ N: K9 |5 [3 ~# d1 U$ o& f* q. _2 P( j
distfeeds.conf是软件源地址.
/ n# w& i1 Q7 T- `" ]opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别% p P. R8 t- U6 J! _3 l- L
文件内容如下
7 G4 g) W* W& h, Z! P" Q. c. {dest root /
. N* h. D* b6 m# q5 b4 x. {dest ram /tmp: t, l, {1 @) W* P
lists_dir ext /var/opkg-lists
0 q6 q: _9 u; U* r5 _6 ^% boption overlay_root /overlay, w' h, p& Q9 `! E2 s
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
' ?' w! x! {- n1 l#option check_signature 1& G5 B- f( G8 y9 \5 L- A
#不依赖架构的软件
( L! G5 L1 r e% m7 L! m8 y/ tarch all 1; Z, e, n( s- \6 m
arch any 10 H' O8 W+ x6 B: b
arch noarch 1
7 ?. b; B3 @/ l. Q; o( d7 K1 a#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos445 @, s. O' p( X: g$ T8 H/ r y
#添加 rtos44( `8 f5 J; _% L E$ T
arch rtos44 10
' a. ^+ k- s; c* P% X( e#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
% _( C9 I! R" \& xarch arm_cortex-a9 202 B2 |. O9 l+ ?1 ^1 B
" R8 j8 g$ A% c$ z" U( a
* o5 Z0 v- G# ^' y+ E0 a
/ h6 ^2 V0 g& }% ~清理当前目录下释放的文件
& g/ U/ |9 P+ s$ `' @1 Q+ }5 Jrm -rf *.ipk *.gz debian-binary bin etc lib usr
" L, J' N( H5 b4 o8 z% v* r
1 _( P/ ]9 W+ r U. J/ {: C S( A8 `1 j7 e4 u) C1 V
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
( N3 \, T( G3 Z8 k% N/ |- U' Q如果已经在主系统中下载安装就不用再安装.$ }9 O& j8 [7 z. Q( B9 I5 ?
opkg update
; E$ Q( t+ u+ m/ Y" c5 h0 oopkg install dropbear
5 X9 \; S) u" F修改dropbear的配置文件,位置/etc/config/dropbear.
" n: y5 b# X- A修改端口不与主系统的默认端口冲突,我这里修改为2222端口
& T- y, R' g8 k' l$ ~9 ~. v* goption Port '2222'# Y0 u2 B; z i& L0 T# ~& c( Y
2 e& J% Y- W1 H f: e' _再次安装luci一些包后,原有的电信页面就会变成普通的luci页面1 m4 J! \/ }* ]+ f6 w& E
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap
- [. F1 H% z8 @3 L- S0 v* ~6 N# M, f1 ]3 R4 O
1 f! s: s) C* a0 b, }7 h C8 s( w8 C0 y( D, A: I
工作告一段落,打包备份一下就是懒人包了
2 H4 D( d8 A3 a, e登陆主系统9 _- E# b4 |. {0 Z( M
cd /opt/upt/apps
4 A2 ^+ z: v! W4 }& Amv apps openwrt
, u( l5 a2 J# [tar czvf openwrt_R20S35.tar.gz openwrt
; w- U# @; D' I* o9 y
) p/ q$ C7 G6 ]' `/ h0 ^使用tftp传输到电脑保存.使用时登陆主系统,
2 G5 M0 I. i& `% X6 r2 O2 S5 bcd /opt/upt/apps
; u# M# o5 d) B btftp -gr openwrt_R20S35.tar.gz 电脑IP0 m' g! i, X C" E6 i
tar xzvf openwrt_R20S35.tar.gz
- \% Z r. a; C; W( Xrm openwrt_R20S35.tar.gz; ?: _ G) a& \9 w6 J( G6 w
备份删除当前的openwrt,我直接删除了
' h! b( y0 X/ Hrm -rf apps
2 m) Z% {3 `) i1 g6 s0 N: u+ k建立指向openwrt目录的软链接,代替原有的apps目录
) o: c; V- g) m2 L0 Z; ]" G2 mln -sf openwrt apps
: u* @- _6 R4 [' |* r! B
: u1 a$ ]5 T% @+ J+ h2 y% f7 X0 n一些有用的工具用法后面再追加( ^% F1 J) ^0 W% Y% F! |& t: ^
( c ~: o5 O2 P* O
( E7 h g6 B9 U# Q1 a: p2 u7 f. a" r, P! D& J @$ [7 L6 J
( s7 p9 Q# O) m& |0 F7 i+ c
& [! y" E6 [, U2 A8 ]
4 `' u7 i* \( a+ x/ O
下面命令备忘待整理5 _( u1 h) M4 I$ s6 W0 z+ E# G
9 }% K! S; e' p6 K9 |
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string# O5 G" x; v; e
aescrypt2 1 hw_ctree.xml tmp8 }- E5 ]5 x4 K% h6 H
gzip -d hw_ctree.xml
1 P+ q- ?: |( c1 K: Q+ P. Xtar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
2 k! K) f3 F8 ?1 B9 f" B. S/ g% V9 f$ O
) P% l% a9 U( G. M
; B6 [ I {/ r; U
- m6 ]3 Q- c0 G3 c$ h0 U2 x9 A" y6 F8 t9 h4 f+ N+ G
+ K" T: r/ i! _" b9 n8 }' y2 L, E8 [' G! f# J) f" G
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|