|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 0 }' F( s% s6 s- S- X
, o, d- I1 N; m2 j* _$ }% F
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
1 j( S+ X. c; W$ { 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
, ^* M/ m9 k+ C# J这里先把包放上来。使用方法和他的懒人包一样。
" W% x3 I5 m* y3 o% Y9 \后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,! w$ ?( d3 Z5 H/ N. M% {7 T. P& l3 ~/ v
" Z1 k- [: N' p
8 ^: Y9 `3 O; f* N$ C. K
. {, q( D7 u9 b/opt/upt/framework下是只读的文件,
' x, X% U+ @6 h9 g8 T7 K/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.3 [# `% ?0 \! J$ H) B
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
1 d8 p+ ]" T* n, `! |& Q
( F2 l* x5 H1 P2 [5 B, G3 l! o a7 ^1 t4 [( {" i# u8 f1 j
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,9 W7 O" ]" y1 A& N% y. S
进入openwrt有2种方法
; h7 j1 R* q* r5 s! g注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.0 P: ]( y9 k$ x. k0 V/ M
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
u7 V8 H( }6 A D) [/ n0 y# V# |! i执行前后可以通过whoami命令来得知当前是什么用户权限./ A. L+ e, H9 T% w; B$ N% L' Q
! c+ P( |! z: X! n& o+ M! i( R% p! R3 ^
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
# j: d% g4 v% r可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行; ]! T$ Z9 A9 c: N: \: S; m
: M# Y4 }: @) f9 r3 J
4 e$ V- C4 `% k1 k: c4 K实际测试( p7 B K* Z# x* ]. A# n
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & & b6 w7 ?* a5 j& W! p
重启光猫,可以由telnet登陆光猫2121端口.1 a- V8 A" |% |6 }
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突." l: d3 Z* Q M6 O3 y. r
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码" h4 s) d7 @6 |/ X
不然登陆上去不需要密码: Q4 K; a! F# G
具体方法可以看后面.( }; L8 o% x! y" J2 H7 f
! I6 q: _, P8 D& D( `) Q# y
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
3 T- t2 p$ O9 D ~% `主系统下输入saf-huawei可以找到saf-huawei的一些命令参数," B# b2 a* u$ H6 M% E9 v3 C5 T6 |
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell' |, J% B# x7 _! P) `0 I8 D
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.. |1 n$ |$ ]# F7 w
察看内核信息3 L! S8 R# m+ y7 g" ~" q
uname -a+ L- h& G! ?% F& _$ k. i. U
察看openwrt版本
v6 ~+ p, `8 L7 |$ X* _cat openwrt_release" v2 s; S) G3 A6 ]. ]! P+ c( c
察看cpu信息5 ?9 _ w6 B' O# c8 Y8 Q, a y; s
cat /proc/cpuinfo \/ G. J1 g6 |4 W/ m
. s0 G$ B' ^' Q: u) ?1 `. L# u
* K j# |+ Q3 A据说电信内置opkg程序的参数被改过,还没有找到用法.
, |( z! }* e1 J( \* y/ z' m我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换. ?1 D! d7 Y; @7 F% s
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
' W% U- `' P6 H) P% f此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.' D9 b0 b; F9 u0 {2 w2 t
下面是在openwrt中操作
; ?% c3 q) [' ~- b: y. t$ e: z% k进入tmp目录* e/ r8 a) y9 T' C$ }
cd /tmp
' C0 b* }0 D& p5 y5 }下载opkg包; V4 C. g: j9 l- G8 \2 E9 G
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk2 ?( B$ y/ b- C& o1 i% Y1 @. r) G
解压2次文件包得到opkg可执行文件/ D' ~/ i; A9 K& }! a
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
- _3 ~. v3 e# R# b9 Atar zxvf data.tar.gz( N% Z$ u" s0 Z0 f/ H$ ^1 k+ l: C9 y% H
移动当前目录解压出的opkg到系统的bin目录替换opkg程序
. U s" n. \$ ymv bin/opkg /bin+ {( a+ x+ x# I" b
! T& v9 E+ L3 h7 d7 h& u* i
同样补上opkg运行需要的缺失的libgcc库文件
! |/ K2 P% Z! i! A/ hwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
! S, j s4 [5 Htar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
7 Z* C) c& J- `2 J4 I! `tar zxvf data.tar.gz
! M) l6 d# c9 _* N9 U# c" [mv lib/libgcc* /lib
7 S5 b5 b" | ?% A- |
6 D- T' Z! i- w* k7 d t, k4 @然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
B7 D8 e! C: E# X顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包+ V# J$ u5 s! q+ L) [
( ]- r0 }% Z" p4 y4 v9 e
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因5 B5 u- D5 i, u8 `; s6 S3 L
: y1 n. m% d, V- t8 S4 q/ v
+ P6 m0 n, D7 E1 u K9 ^0 i+ @tftp用法& n' U0 Q& a' I2 s! ~
上传openwrt的本地文件到电脑的tftp服务器# [3 q, x- L6 M
tftp -pl 文件名 电脑的IP地址" ]& \; \: V0 R2 Y! _
下载电脑tftp服务器的文件到openwrt
. o' k- X1 K1 ?( @0 i. P# e: o, ^tftp -gr 文件名 电脑的IP地址
4 p& J1 Y- R8 H! \# h4 R% x3 r
5 Z- G2 Z4 r. _, Dtar用法 M+ O7 B7 q& Z7 ~, [
打包成tar.gz文件) m, v! h$ V$ C
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式' D9 d* ], J( j7 _& L/ s, ^) }
解压5 y4 h& v% l) S0 N) J% p) ]1 j
tar xzvf 要解压打包压缩文件到当前目录
* c6 c7 q, g! R; j3 X
, v* z# X6 }0 B+ I# o6 d F" l3 [% C4 r3 v* Q
3 @7 j( g+ j$ L4 G. Q$ @0 ]
2 m, [. ^& e* B3 A6 @
distfeeds.conf是软件源地址.1 y9 z$ ?5 P* c& X: B
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别 J! k* Y; v# v1 i3 _- q
文件内容如下
; f/ U5 Y, ^+ s3 B) g/ R, Cdest root /5 j# Y6 A6 E/ D: r2 k5 i( K
dest ram /tmp
2 K5 o' l( s8 [+ K1 W8 Olists_dir ext /var/opkg-lists4 g. m% t% r1 x% d5 N- Y$ p& Q
option overlay_root /overlay+ g. Y- K9 m0 z: D( t; P3 y1 ~
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查7 `) Q) D" P/ R# ?
#option check_signature 1
2 u! ~& J- \, y, k3 _$ a#不依赖架构的软件
& N I \4 c0 W( e u& yarch all 17 y5 h. i0 d3 I( F. t
arch any 17 g1 H& H: x. E: n7 l/ g+ O9 y, M
arch noarch 1% C' v7 |6 L% H' @2 j% b' ?
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44& B# C* t7 }3 n' X& ?! F
#添加 rtos44
2 b9 t, L0 Z9 B4 q$ T3 H& Barch rtos44 106 {$ _1 P5 O5 a$ ~* m6 T @( T
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9 k6 Z7 w) B* U) [: r) R+ U% d o' F
arch arm_cortex-a9 20/ T3 o: |8 z5 ?: f
! v# Q' e- J/ t. w
9 `9 {; J( ]. O
5 r: R2 @4 D/ o- ?2 f0 @, P清理当前目录下释放的文件
, X, ]* X) L+ N3 t. X( Krm -rf *.ipk *.gz debian-binary bin etc lib usr
9 J5 t/ ~: `" R. D1 V7 C5 @! c! a
! U& q8 g' m/ r& O0 ^3 q, V
: V7 p4 Z& Q3 X5 K, J; F3 [6 q; d现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面. j. T5 j: o% c6 L( L6 Z; U) a7 y
如果已经在主系统中下载安装就不用再安装.3 L) r! Z& g9 _
opkg update) g# T% p6 n( U3 E" O" ]7 ]
opkg install dropbear( ~ K y: y5 L; p2 ]
修改dropbear的配置文件,位置/etc/config/dropbear.
7 m# o+ O) z8 t修改端口不与主系统的默认端口冲突,我这里修改为2222端口
* v' p/ i _4 Z& n6 Poption Port '2222'
3 K6 W; S1 F! A& a8 D; _, X
9 T# v5 E! m9 W( d& q1 V1 x- H/ A再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
# U s! E" S/ V, q; L( g9 ropkg install luci-base luci-mod-admin-full luci-theme-bootstrap. p3 l0 t( Q0 O. Q$ G$ [* }# n
% | \ R) `" M: W" B" Y$ Q- @# q& W1 t, J
5 K6 v& f3 z% ^% M$ u/ v0 E$ }
工作告一段落,打包备份一下就是懒人包了
?/ q7 C. k2 Z登陆主系统
8 }, F2 {. [! }* x2 I2 z9 ?cd /opt/upt/apps
% k3 o, X4 M# ]. Q, r9 q: dmv apps openwrt# _6 A$ V+ F) k+ t, U1 Z$ U6 r! y* P
tar czvf openwrt_R20S35.tar.gz openwrt- A; r" X& Q; R
* _6 h" P# U% H+ y, H0 ~
使用tftp传输到电脑保存.使用时登陆主系统,
* j( F5 z* e, e, ~, Rcd /opt/upt/apps8 O9 H, y/ O8 s2 t
tftp -gr openwrt_R20S35.tar.gz 电脑IP3 M! n6 E% a: n) V( U" {
tar xzvf openwrt_R20S35.tar.gz
2 R" W7 _9 T! x5 _. @rm openwrt_R20S35.tar.gz. m" V; K) j( B. m d
备份删除当前的openwrt,我直接删除了
$ D5 V R ?) T* z9 drm -rf apps1 ]) s7 p4 O4 d( v# c
建立指向openwrt目录的软链接,代替原有的apps目录% T3 ~# Z7 F7 ] v
ln -sf openwrt apps ! L% Q3 j( `& h9 t( G
3 `9 Q6 x1 \4 ~6 m
一些有用的工具用法后面再追加4 E! `. i+ I5 B) B5 F
w, e; a l5 \- R8 G5 z+ y4 ]" J
* {. A2 q. ^. X# y! ?. \# q! M, c* j
1 I! S" d _, b6 F, K, A* ~- X6 S$ d, @4 n4 t% c7 U
2 |9 X! T4 M$ Q1 v, J3 A下面命令备忘待整理" x8 r! c5 N# h. |6 _
% i7 z5 t* I( ?- `4 ?# F
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string' ^7 S! X R) S3 w6 m' X$ S
aescrypt2 1 hw_ctree.xml tmp
% `8 |* X7 S; L. mgzip -d hw_ctree.xml
! I' G& J$ ~% j btar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*" \) E; I2 L# F) n! ^ x0 |
2 l( x8 d' A- H5 r7 g. E. ~/ P
% g: h& O! M" {) {, H b' T
; O0 g+ Q$ g5 k* {
% |6 V& Q/ |( W. n* h
* Q. u- J& ]6 Y1 c6 U9 K+ V& _ r+ t' p3 U1 o1 H) g; I" p
" ~9 U1 F: M0 D! Y
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|