|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
. K* C2 H" b, n9 R) r, H/ n# z- S6 T. x/ `- j5 a1 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 R! z5 r1 i) g: W- l2 U
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
3 _/ L6 H* v2 ?4 m+ k4 n" _这里先把包放上来。使用方法和他的懒人包一样。
& W, _ W8 {3 t% i后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
- R' Y( R, H' c; I1 m
- r; x: `0 ?6 n
3 f8 g. } S2 X( V1 d; x
0 Z' l' c! j& J) u9 N. y/opt/upt/framework下是只读的文件,/ X7 u$ }0 C+ F& n( X6 u
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
8 \8 ]/ s; e& L: I' f# A/ R所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
2 e% P) F2 S. m8 o. B* s- _
6 e$ {9 D4 s, y* R% U; E2 h* @' O( r. |, c
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
7 i$ W/ w2 U! _/ n进入openwrt有2种方法5 g5 a2 I: W! D9 ?' R
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.* s6 W0 {4 z" Z6 J! @ k
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
4 B5 v/ y' N9 F( S/ I0 ?4 f# L6 H; b$ u执行前后可以通过whoami命令来得知当前是什么用户权限.( R. Z4 Q& A2 k% `7 Q2 q
- q: Q; o, F& y. x: M V/ K2 f: g$ b) w
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接- t& f6 Z7 {$ q! B5 b( e* T
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行. R6 ^. U& x) [3 H& m* B& Q
- B8 ]& u6 R2 O9 w# G' R
& d" S+ p+ t& J+ f5 ?实际测试
! J+ E( S- o+ C' q$ n! J创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & ) K: a; b) J* N
重启光猫,可以由telnet登陆光猫2121端口.3 C- V9 C- e9 f M! G
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.$ e3 ] u1 S) C) q" a: L
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
% E0 n* [+ |2 N# `( Y5 E不然登陆上去不需要密码- r! f) q9 y& V; s' O
具体方法可以看后面.
3 A f* g$ y1 n1 n0 Z8 {! ]4 I- t2 \. F5 D2 o0 K. l' ?
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,0 g* h9 K- i$ o, g
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
$ z' |# i0 n; K: j7 y输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell9 {8 r& i2 x3 j, V4 T& f
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.. m% ?& y: O' W$ j; ` i) ~) C; h
察看内核信息# b9 C( r( S1 I* J6 l6 p- Y! s
uname -a
$ k& f1 w9 ?5 H" a5 x察看openwrt版本4 |/ W( l% }, q* L+ r& V# ?& R' @
cat openwrt_release L. n; A, y9 U% A/ P, \
察看cpu信息
& w1 q1 H' L3 f' ucat /proc/cpuinfo! l; F+ Q: v$ X$ \" m/ t% S0 H
5 C O' O) h; |6 ?
# |% e6 c) L6 C1 M5 G8 Q& k! I0 g& d% X
据说电信内置opkg程序的参数被改过,还没有找到用法.
: K7 z% e# _, m我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换9 D; ~- w1 A; z6 u
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
! @% J. T% V- k% u: ]! _" J此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
% {; e( @. v5 u0 O' Q5 ?3 @下面是在openwrt中操作: s' K. P& }! L. m* D1 N; b
进入tmp目录
6 Y) [$ [) X' p: \4 ^* tcd /tmp& M4 {- ?, i' x ~/ _+ M4 p4 l V) [
下载opkg包& H/ S) Y! d9 Q
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
. e& C' [& d1 ?$ d; @! R& W解压2次文件包得到opkg可执行文件. q/ s9 y( u; o# F1 e+ V1 ^- l
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk. J* W2 v, }1 B N. N
tar zxvf data.tar.gz2 [9 j& d! ]1 @$ ?7 R% @) m
移动当前目录解压出的opkg到系统的bin目录替换opkg程序7 ~1 [, C5 D1 I1 X8 D
mv bin/opkg /bin/ \/ E. \/ l0 c2 A; i- Q$ H5 A" L6 h
) Z/ U G8 P3 Q
同样补上opkg运行需要的缺失的libgcc库文件0 X, @+ A6 ~( g; N2 }
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
9 @8 j6 Q/ ^2 J/ Qtar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk: `- V- U) R/ b6 y
tar zxvf data.tar.gz
! b1 C+ N! P* E, e0 {1 q3 v" ^mv lib/libgcc* /lib) q& C0 f3 _$ [* }' @' l# `
; F9 W' d! V$ Y1 _& f9 m然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,1 R( E) O) A+ t& Q* s. T4 a
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
/ f2 c+ A! x& A; Y' T3 R9 F; \, Z7 Z+ R' S' n+ r* F/ M
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因* T. e6 ~ A5 U- _4 j8 _
7 w y5 x* I1 x' { P# L9 \# b4 n
tftp用法7 R7 f8 i7 S! Z6 l" Q( y% ]6 U
上传openwrt的本地文件到电脑的tftp服务器
! e. n, u \0 b9 c$ g# a& |3 t% w7 a( utftp -pl 文件名 电脑的IP地址
& v0 b1 k3 A& O# h/ I下载电脑tftp服务器的文件到openwrt
, D- S- J) s/ s$ ^3 B8 F0 Btftp -gr 文件名 电脑的IP地址
* o$ ^ x I+ B
+ z7 l: b& G# Star用法
# Z; x! c+ Q. k. d& H打包成tar.gz文件
, @8 _* o3 s; r2 y0 H" Btar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式% S* d2 V! ]+ |; L* g
解压# i6 e, X: Q% ^1 W2 K2 B+ j
tar xzvf 要解压打包压缩文件到当前目录 6 o) J/ O+ J# |3 G3 l
2 W" ^3 }3 D4 a& g6 d
" z5 U$ W1 X0 O' ~5 t% Y$ }* i6 L1 m* ]8 j
" ?8 @/ ?8 n7 t( f- l
distfeeds.conf是软件源地址.
C- q- a- z' H: D( b8 c" a5 a) ]opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别 U' u, I [8 J+ l
文件内容如下+ j& a1 s" j: c% E0 A* B" M) i
dest root /4 W8 D" W% }0 D) G, d) ~
dest ram /tmp
8 D+ P% S1 o6 m+ u4 s* Q3 }lists_dir ext /var/opkg-lists5 T% a! E" D6 Z8 W* c8 {
option overlay_root /overlay
) Z$ R2 S4 p: Q1 w7 e. w# v#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
$ q3 l5 k- m7 ?#option check_signature 1
u* J) T# f2 r; s" `; ?#不依赖架构的软件
F' [* X3 {7 g% B# farch all 1+ y. B* X5 l; \$ B: j6 r/ a
arch any 1
) A1 m* }$ F4 c' j8 S/ ^arch noarch 1" ?1 M0 R' E* y; e$ z. W6 G n0 {* n
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44; W4 x: @5 `$ L
#添加 rtos440 a& q) e' S" }2 |
arch rtos44 10
' P# C1 T4 i9 ~! l7 B1 t' Q6 i+ I! f#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9% u* Y8 y9 b q1 O
arch arm_cortex-a9 20% S, r) O- L. m/ W6 z
+ F7 P5 A6 P* D; X2 x# k6 l6 }7 P" O( n' M
# x$ p: H$ w- e$ G清理当前目录下释放的文件, V, u6 L$ U3 f8 z$ u
rm -rf *.ipk *.gz debian-binary bin etc lib usr& j9 J+ Q* \4 T3 p5 S( T/ X
/ u; t7 e8 [( |: w/ Q0 @! n( w' R; E' D- ?& w4 ~
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面5 p( [5 D B9 d- h0 e8 ]6 n8 {# H
如果已经在主系统中下载安装就不用再安装.6 ~6 z& N- G3 l6 F3 \: U& \
opkg update
' p) N- D* j ^ O0 v" Topkg install dropbear- O1 W' S- s; ]8 }
修改dropbear的配置文件,位置/etc/config/dropbear.
. V2 a U6 J/ d3 q修改端口不与主系统的默认端口冲突,我这里修改为2222端口
& b. j9 I+ k, Boption Port '2222'
/ Y+ P7 @) `0 F; N8 x1 R. t- l b8 S/ J+ ~! Z
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
. Z/ D- _# \" ]: h- |( g/ {/ Eopkg install luci-base luci-mod-admin-full luci-theme-bootstrap
1 r; ?! Q0 w8 c" B/ Q3 e& }/ e" ~* q4 L
7 ?% f, o0 d6 f7 m8 a
$ ^4 F" g5 F, H: T& Z4 j工作告一段落,打包备份一下就是懒人包了
3 \1 l* H2 u: l登陆主系统3 I! `) o2 B' j$ d% x; Q# G7 P* B6 R
cd /opt/upt/apps# l+ N+ `" J0 h
mv apps openwrt( e- I% W1 _) c# d& D+ |& ]
tar czvf openwrt_R20S35.tar.gz openwrt( W; K; {: T$ d$ W. @
b5 S9 x. R* s4 ^, w, n: _
使用tftp传输到电脑保存.使用时登陆主系统,
6 B. f8 z, v: p7 C8 z% I% c% y/ acd /opt/upt/apps
9 d; V: Q& h& G6 ^* a. g2 |" `tftp -gr openwrt_R20S35.tar.gz 电脑IP3 J$ m7 @) F3 i% z0 C$ E" E! p
tar xzvf openwrt_R20S35.tar.gz% ^ P/ N$ U# F* o
rm openwrt_R20S35.tar.gz( t8 O. G9 v8 m# E/ s) o
备份删除当前的openwrt,我直接删除了# K: a n. k0 o1 b
rm -rf apps
7 q, V7 t8 {% _建立指向openwrt目录的软链接,代替原有的apps目录
; @4 p: F* `- e- J/ Gln -sf openwrt apps
) v0 n. @6 y! L
9 F9 ~, {% ]2 M一些有用的工具用法后面再追加" J& y9 z& l& u8 b
3 [! Q: t$ l) P: ?& W
8 v1 K7 m; N3 j& N: ?$ N# A1 M+ Y0 A. N
5 g3 S* P7 Z" W6 B, u( v# p# w# E( ~- |* `8 R0 A
; x8 a/ m c4 y
下面命令备忘待整理
, y2 P) ~. L( y1 H0 Q& i: W
& G* w2 F7 }8 etar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string+ @! ]# i* o1 v& u$ u. F
aescrypt2 1 hw_ctree.xml tmp+ ?: ^1 l* D! b# u6 |, V
gzip -d hw_ctree.xml
5 D5 V5 [9 N- a7 f6 V1 |tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
# o( D* d& k3 L; Y& P
; n: x k u" h3 e& f! z
# ?4 O8 ]) l% F# _
9 x, B' M4 v& q. {5 B- }' H
0 J( b0 h) X# m9 G/ l, K( _
1 _& x% Z; Y4 `
8 ?" L- T* N. |
* C0 q, A! W7 C0 r |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|