|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 # V+ v. |; n9 N+ H
6 I4 f/ M, O8 m% q) U$ Y前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。8 x4 e0 t8 p6 R( M& \
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。! R2 }( b$ y9 C
这里先把包放上来。使用方法和他的懒人包一样。& X' l9 O/ S4 Y: @- v& L: a
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,3 i% z+ t! ^& s( s+ N8 C
% n1 z7 w0 x9 G% g) C. a/ I
N1 u5 c9 K$ d7 } ]. E# f7 E; V; i9 Q) k
/opt/upt/framework下是只读的文件, ^/ r+ z* f$ s% H0 C. M
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
6 H3 Y: c& q* R1 W9 ~8 N所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.( V7 V3 N& H' a/ ?/ N
A* N: U# ?( Q* g" Y3 e7 g: W# I
0 B/ w1 ^ }) P. n8 _6 ~3 j对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
$ h6 Q0 g; e2 y+ e& W8 ` G进入openwrt有2种方法
3 \0 g% W/ I# z& q注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
1 ~; C, F7 x8 @5 T* ]# s0 e) }9 z有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
5 d7 A4 I& x. y- T6 X- [执行前后可以通过whoami命令来得知当前是什么用户权限.( s- K6 f7 n# ]
% W2 K8 ]3 F6 \+ _0 q
" _1 h, H8 f( Q1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
r/ @2 z3 c( A5 H可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行6 k/ v' S! Q. u3 r' t
1 y) D& s: P+ N7 g! A
0 X7 R3 A$ B2 [0 K' b2 @# O( {实际测试
|8 E5 c" x6 b/ O5 s) z& B' X创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
9 B+ O6 ?( E% X f重启光猫,可以由telnet登陆光猫2121端口.& J$ L; C9 \4 z- x
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.6 L3 V5 Y" ~& ~ e/ B! r
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码% ? L7 N. a* `) _4 W' H" F T g
不然登陆上去不需要密码( }3 E8 u8 E+ S
具体方法可以看后面.
# U3 Y9 d% v( z+ S* M3 u+ E' ~2 u# @2 h$ s! P+ |9 p4 Y1 a* T
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,, U4 @3 _! c( q( n8 D9 d5 o
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
# @0 y4 M7 e" T$ V+ |6 H9 @! e+ c# F+ P输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell# C9 T7 ?7 f* Y) ]
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
4 [; D3 k; Y' H察看内核信息( v/ T4 v4 O+ z* O' b
uname -a5 M4 i$ f5 B M; G8 Y
察看openwrt版本& K* A7 j: k# i6 b4 N
cat openwrt_release; C0 f9 P; W( j6 d4 E2 t$ h# G* R9 ?
察看cpu信息. ~; a* X8 k9 ^, B1 h
cat /proc/cpuinfo
* N6 B; }3 c" g0 M g
0 n7 w' R5 V3 [5 P" E$ B
" k9 d# [' P* y' a据说电信内置opkg程序的参数被改过,还没有找到用法.4 I% Z7 k/ k( i- {! l- L
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
& m6 T; x: P- vopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.0 H5 [. S" ^: f; ^8 L) P' P ~
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.9 T. @/ j/ L& ]3 X% N
下面是在openwrt中操作
$ Z" ~) M8 m9 T: o' i; w! r进入tmp目录$ _1 P$ G9 O% |# i' L% S
cd /tmp
" Q* w" a, U8 x* P" o) {" C. l下载opkg包
. O( P5 e' |# g. K4 Nwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk+ F, w- j2 ~6 F' K$ I) y
解压2次文件包得到opkg可执行文件6 P8 S$ Y$ X4 q* l7 B. }
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk- ] K0 y5 Q5 a6 D& F' \8 p
tar zxvf data.tar.gz5 Y0 Q) o4 r, W0 o$ D, Z7 }* V/ p
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
' E: ^: c3 G; Q3 c) Q4 Nmv bin/opkg /bin f2 ]5 }2 p3 e3 f% O( R
# v5 ]+ \7 I6 o5 N. _同样补上opkg运行需要的缺失的libgcc库文件, q8 S( Y! i9 d! \" c
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
: L9 B5 y1 q+ \1 otar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk, c' V6 U% R/ n
tar zxvf data.tar.gz
& b( _( U# g2 @3 c4 Q8 J) o) d: w; A% _* Hmv lib/libgcc* /lib) ?$ {" z5 f6 ~% T
- @( V$ _" n" e I然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
, _8 Q7 h8 o! a/ l( [! ]# U顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包) v! P; {% x& W* @: V' C: D
, T" ?: M ]8 ]4 t' V @8 ^还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
2 G- h, r+ e% v5 z: Y- D
8 [" s7 r: U( [& {# N: v) p/ }1 F# X7 M. m& h
tftp用法
% J- X8 M5 t" P上传openwrt的本地文件到电脑的tftp服务器4 y' m" o/ _. W4 C6 i
tftp -pl 文件名 电脑的IP地址
7 m+ {$ |5 B0 S2 \% p下载电脑tftp服务器的文件到openwrt
3 {+ y1 [. {) ?* [ ?tftp -gr 文件名 电脑的IP地址
2 x5 f7 h8 a+ J8 Q0 |$ I4 [ R) h. b7 o; I7 d2 @9 u7 v5 x. M
tar用法& d u0 {! D* c9 W* f
打包成tar.gz文件/ K! Q- \; K0 ]2 G7 E6 n
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
# Y# S) w! v6 ^+ L% P解压
; w; R; k% d0 C) q' k3 V+ Xtar xzvf 要解压打包压缩文件到当前目录 6 F, B( C; t: C, z. {& k9 p, a
7 C6 d- ]# W( x' x. N9 |* q
& V5 n! m' A3 ^+ F, s a+ ^
: y( I( k! [3 @: K0 x+ P
0 y) I0 R- h1 X1 n* a5 Jdistfeeds.conf是软件源地址.
3 r$ F8 c3 h' X! s' ^opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
' _6 \& C: T( P5 a3 {+ f文件内容如下
+ Q- G8 }- \0 ^9 l; _/ [9 edest root /
# H r7 ~. d8 _ Bdest ram /tmp& L/ W6 S; Z1 h
lists_dir ext /var/opkg-lists" W& t0 G6 i) i g5 K0 P
option overlay_root /overlay* c/ e, Z4 h ~" M, y0 N9 |
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查' m$ V+ p- C+ S& P$ j: c- c
#option check_signature 1
: @$ z* j- i1 Y W' x#不依赖架构的软件% k4 F/ o! C8 T6 j# z5 g6 G/ D
arch all 1" A' L. \5 ~) a( E+ G5 k
arch any 11 _# |) ~+ e; Y5 T7 g
arch noarch 1
, T& S7 ~, V# M2 a: x3 x# _6 ]#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
4 w) Z" N/ y# q$ [#添加 rtos44
# t) z) Q3 Z9 n" march rtos44 104 O+ l& O& x- V1 K' d
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
# I* _, Y& t. y) q" x, i' z$ yarch arm_cortex-a9 20
0 j1 `4 k/ Q. Y$ W* ]8 f0 K: _" A* k5 A& X# L( w
3 a& C3 M7 f. V c# z
9 F* A# P! O; O" a; \. f0 {清理当前目录下释放的文件# |6 N- u" j1 }- I9 d; Z
rm -rf *.ipk *.gz debian-binary bin etc lib usr
0 X2 T3 |8 G- R+ N5 K& ~3 m, B. a& R0 d! I' h3 I2 p
9 a4 t& o, N: p
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
4 m- M* B; ^6 C- f% T+ G6 p5 h* O如果已经在主系统中下载安装就不用再安装.$ a! L9 |* i2 d* f
opkg update
: v4 u+ ~2 A" p. F) M6 \opkg install dropbear5 K* T9 H5 ?9 g& a
修改dropbear的配置文件,位置/etc/config/dropbear.
, k9 | P2 A# m- D修改端口不与主系统的默认端口冲突,我这里修改为2222端口$ g. k# C3 L- k
option Port '2222'
+ E% l# W9 y+ _1 M) E
. v; T8 l; q) G7 ~0 m& c+ j6 e再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
+ ~$ I3 a1 {' ?opkg install luci-base luci-mod-admin-full luci-theme-bootstrap
3 D$ f, A) N4 e* e/ H% q0 q8 n+ u+ C- e& l* D8 v
" I, B0 P1 c% {- Y0 o9 J9 h
) E' `$ B2 p2 e- Z工作告一段落,打包备份一下就是懒人包了8 ~( g* ]3 \; B$ @0 d4 R) u
登陆主系统
5 G& W' ~4 i' @( X4 l5 S; t8 Ucd /opt/upt/apps
2 R* f, x8 l2 t/ r/ u$ z) Wmv apps openwrt
7 a# R8 X) R2 n& l/ B1 H1 Ptar czvf openwrt_R20S35.tar.gz openwrt7 C2 j G- J8 t% ~7 |- `$ C* M
- H: |0 t G0 s: D9 w/ Z使用tftp传输到电脑保存.使用时登陆主系统,
6 f/ U( ~9 T( Acd /opt/upt/apps) V7 G" P) R6 Q
tftp -gr openwrt_R20S35.tar.gz 电脑IP+ V F7 h5 H3 ?& L- {
tar xzvf openwrt_R20S35.tar.gz! v! e% e% t$ I1 h
rm openwrt_R20S35.tar.gz! _- w r9 T6 B2 p( m
备份删除当前的openwrt,我直接删除了
- T6 b. b5 w/ \! q& Srm -rf apps, j+ a6 `! D& m s; L. _- `' M
建立指向openwrt目录的软链接,代替原有的apps目录
. V( j# N7 `# n" p$ Z) Q% C8 tln -sf openwrt apps
- ^1 C6 j9 G& Q& }8 W, I" o0 y# ?7 \
一些有用的工具用法后面再追加# ]0 F' t" ^( X V, G
/ D$ m- j2 p) o4 x. q/ y
9 l1 U: g3 y' j( B2 M+ W
. D Q2 i1 \7 W. x, H7 V
4 \9 s1 f, N |$ I
8 f* y+ ~+ b' a; h; M+ ^; F. r0 \" X1 T, N) M( w: T$ @; o9 x
下面命令备忘待整理
' \' |3 ~3 M g0 g5 Q0 m; b1 w( y: g' z. b
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string$ Z4 q! O/ [# R$ g u
aescrypt2 1 hw_ctree.xml tmp, m1 J/ R, @. w9 @9 r5 U5 c3 E5 F
gzip -d hw_ctree.xml7 f0 X, c; Y0 U- u v
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*7 D$ O V9 c/ C/ V* g
2 J: }' q; ?% V( R y! m% S0 n4 ]
' g. B7 b. D U3 K9 c1 E
7 N3 M. G# X( L U0 Y
; X0 F- W. T+ D- r6 P! L/ Z) e* ^
+ l2 n- V* t# q7 |. o" w; ]: P5 k2 J% C) x# l9 w
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|