|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
, C( j" l' d/ f. g$ `( N& m2 S7 i& m; e1 U/ r
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。4 L! E ~! a! g9 e! {& l% W
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
6 |8 I; y) I& u8 r( z9 F这里先把包放上来。使用方法和他的懒人包一样。
% Q6 y- O* c" ]6 t后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,4 H4 N$ Q$ z1 ]9 |9 H
+ S8 R3 ]3 @- [5 o8 V" I
/ |3 x- r( m+ N; q/ `* s, I3 e
1 [; n5 c0 R9 b2 @+ b: V4 T" [/opt/upt/framework下是只读的文件,) d# _4 k5 }% n4 K
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
3 l# ^8 [" c( [' E" T @所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.+ j, ] _ i7 c0 \, c, L8 D
1 M/ a6 p! |! q4 ~; |- \( D. E- c- r* U7 p% S4 @" L1 P' x
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
: k$ V; h0 @- p! k4 ^7 }进入openwrt有2种方法5 E- h/ I3 B) W1 A4 h8 C
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
+ S0 M5 o: Q7 `有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
; O1 ?* T! v. S执行前后可以通过whoami命令来得知当前是什么用户权限.
" F/ m: i1 ?4 A" ?0 `/ [; ~
! K& K0 ^1 N, U5 m) h' e5 g$ r
/ T, l; [# U) t5 A+ c" {9 ?- h1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接; s" H7 N% r {0 A
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行4 Y6 G0 X' G: e7 v6 m
! U& _! F! e. X- ~4 r% ]) T9 U+ Y0 X) v) g5 v
实际测试
5 h( @- e+ B( E$ a$ ?6 c' M$ @) t创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
j9 p( y: s; a+ o% c7 E( f重启光猫,可以由telnet登陆光猫2121端口.
# U: a M1 S) c+ Q, @6 Q如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.% ?/ F8 ~2 e y# g/ u
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码- n( g9 L# Y' ]- L+ m) n
不然登陆上去不需要密码
7 S* ?! m0 V6 n' W- S具体方法可以看后面.
@- Q1 x7 V `) E% S$ i+ X4 S: `$ [/ r" E5 O$ d( v2 e8 `: b- k
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
- x$ a' w0 E5 k( d主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,8 M* s3 z b l3 K2 I+ ~
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell; T: T6 R2 ~% Y$ u
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
$ h! w3 e: |+ n; J; K7 O% r察看内核信息- i1 Z3 A! n* @1 z
uname -a
- k. U' U7 ]+ Z2 K察看openwrt版本
( c+ }8 l# L( b% T4 [4 C7 m6 @/ icat openwrt_release
/ M: m O R' c4 V察看cpu信息
! |* w6 c* \& p" _cat /proc/cpuinfo
. E& L$ T& p, ~; l
4 v" C0 u! G; b. _
& T9 H+ V& T/ v# l6 S, }* M! k( O! w据说电信内置opkg程序的参数被改过,还没有找到用法.
/ j) G5 f7 P- M+ [/ c% P% X我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
6 R1 ?: ^% Q' M$ @) p) xopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.3 c9 t% Z2 l. C5 F! N5 Q( `
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
" B1 W' H2 N: g! `9 Z下面是在openwrt中操作) \ @/ b4 f& q. J& G/ i
进入tmp目录
" Z/ |( u1 ~6 \$ icd /tmp
& k/ F" i$ K- h% Q2 b下载opkg包
7 d( \1 ?) o, [# f2 J5 y% Bwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk: j9 _- `( I6 a6 k5 y. r3 T" ?
解压2次文件包得到opkg可执行文件
, U! o* m; d `/ q$ |tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
1 E' G9 i% }+ _7 }' Q8 etar zxvf data.tar.gz
& f% i5 p% m+ T) T* k' w3 W移动当前目录解压出的opkg到系统的bin目录替换opkg程序
. f/ B# \% B( O V( a! Mmv bin/opkg /bin7 E$ t' k7 I2 X3 x7 U1 B, \, `0 c
4 A3 x0 g, K1 N5 S" x
同样补上opkg运行需要的缺失的libgcc库文件, m+ O) ~" o" h1 c5 @7 l
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk' ?5 V8 o3 N' l& F5 m( [
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
+ R4 j, H, G' S8 b+ x! ^/ Htar zxvf data.tar.gz; G; X" L% S% g+ C- Y2 T6 B
mv lib/libgcc* /lib
. H) D1 r. C. E- E$ C3 [5 b4 w! c& G8 x% e3 {6 `* o
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,' z8 ?, u7 R9 N: H' i8 P S7 @% Z3 I3 D
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包/ O( m7 }' v* H) e
: L- z3 `* S9 r0 z: Q! H
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因* h) ?# r0 l& Q6 |& i3 N% v4 Q
9 H. L' L; Y% H! q( Y9 d3 j3 X5 m
% d* Y2 J% G% Q* itftp用法4 |# O3 V, u X) X
上传openwrt的本地文件到电脑的tftp服务器( x! y( O1 [ K
tftp -pl 文件名 电脑的IP地址" Z7 t0 o2 v5 p# z. D& e" F
下载电脑tftp服务器的文件到openwrt0 U1 @4 |. x. A' w K
tftp -gr 文件名 电脑的IP地址
, x/ B/ d& {% y2 j# O ~, ?+ }) o, X% H
tar用法$ A5 l4 P% S# n0 R' C( F" W
打包成tar.gz文件: j0 B/ G# i4 F4 M/ j
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
6 H+ ^7 _' y; k! H& s: U( {解压5 k* u" J. i# C0 ]
tar xzvf 要解压打包压缩文件到当前目录
) B' w0 h" d! K4 j3 X' ~7 B2 R7 K' x
) v* R1 p! {' p: T! y
0 A% |1 O& e5 b3 X5 X+ L9 r- e: I/ w" K& K+ w, {3 H0 v5 U; A& J+ J
distfeeds.conf是软件源地址.
0 p9 Y5 T1 t* T! {- ? m. J0 Uopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别 z, T& {# x% v
文件内容如下
/ E3 e2 n7 i4 }# f. ~! mdest root /
" n) o6 j+ w1 `/ _5 R7 c7 Rdest ram /tmp
5 w( ^' X" g/ }) Z9 l: a* olists_dir ext /var/opkg-lists
3 [7 R9 x W( m1 ooption overlay_root /overlay
( d* Z4 y+ \" b1 N0 G( W* ~+ O5 }#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
# i; F! g( s9 B4 ]; p0 S. [#option check_signature 1, ?, Y$ G+ @6 a7 r
#不依赖架构的软件
0 i8 s3 t: d$ j6 {& J2 ]! U0 y( parch all 15 K; Y/ y( S) {# L4 v
arch any 1
7 @$ B6 t0 v) ]- E+ H! m2 p3 W+ March noarch 13 b/ w3 `8 z5 Y6 b' V0 R
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos447 C9 f6 c1 `+ g' ~2 y
#添加 rtos44
o3 z$ H' d h4 \% Y' D+ K9 T" Sarch rtos44 101 ^" d e1 [2 h) e# M4 s
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a96 ?* z) c! U4 p- m
arch arm_cortex-a9 20& i. ^* R/ v+ }% r7 |4 \: @
, S2 E6 E, @' i1 ?. n
5 L7 |( K: S& ]: |
, l% [9 C: Z3 g8 U; j清理当前目录下释放的文件) Y8 @1 J$ r, {/ |
rm -rf *.ipk *.gz debian-binary bin etc lib usr& R) J) c2 a8 h9 _
3 N1 n! H' y% W, y
1 U, }1 Q$ l: {* S: V5 V, T7 q
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面 @- m6 j( O3 z9 w
如果已经在主系统中下载安装就不用再安装.
3 e+ y1 U8 U: I. b& Qopkg update
' `; j( W! C, I: m" p/ @opkg install dropbear/ c& j6 |; B U/ `6 d
修改dropbear的配置文件,位置/etc/config/dropbear.
1 N/ g% A* t" P. l8 k修改端口不与主系统的默认端口冲突,我这里修改为2222端口) n$ N( I8 A* m# m
option Port '2222'
: E: d0 [! E( o7 N" j
8 j' y& o" ]. @, |" l再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
1 p# H- |' b$ K5 X( G4 xopkg install luci-base luci-mod-admin-full luci-theme-bootstrap; M/ p9 u, S7 i: z% _
7 M ~6 k! O( o z' \
0 c1 c% l; K8 R5 G4 ^" z9 ~$ T! V {! k: G3 Z
工作告一段落,打包备份一下就是懒人包了7 f0 K& o+ r% W$ a" J& B7 C0 Y# C
登陆主系统' e, H3 o* q$ V- f/ ~: s; V
cd /opt/upt/apps
" h- y( T4 m d" R- c8 Gmv apps openwrt
! }1 W2 V) x5 p* {tar czvf openwrt_R20S35.tar.gz openwrt2 j3 f* i& U+ [1 u# ^8 ^ u
+ O1 I3 k. D2 n+ Q) C+ D6 d G( p使用tftp传输到电脑保存.使用时登陆主系统,5 T4 k, T) G* {8 f; I$ Z
cd /opt/upt/apps
+ H: u X2 k2 stftp -gr openwrt_R20S35.tar.gz 电脑IP
( ?6 u, F) s5 b9 ]% Htar xzvf openwrt_R20S35.tar.gz- L2 G5 d j$ t& K& ?$ o0 O6 w
rm openwrt_R20S35.tar.gz
5 _8 |$ f! n4 `6 E备份删除当前的openwrt,我直接删除了
5 ]: |& F) K+ urm -rf apps
' X) U5 Z# e6 c; @ |5 ], F3 ]建立指向openwrt目录的软链接,代替原有的apps目录
& w A: _# V! Z6 cln -sf openwrt apps
" q9 \* U3 R7 O6 s6 o
# j& T: R# f/ b# m1 R) W一些有用的工具用法后面再追加; U# g# u0 K5 P* Z7 H8 }! [8 r) V* ]
1 b x) c2 N% k) Q' V
# L0 l5 C- _$ R# K5 y1 `' q' L% O, B$ U2 j2 N" M: J5 o5 i
/ X) I2 s* s7 u$ y
. N; X0 y3 G& V" D5 U" `5 Q' o8 M9 f
下面命令备忘待整理- J$ X4 v" p& B+ T. n, d( F
' P' O+ P) h& rtar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
3 _. O" w, q9 ~3 D" j+ C" o3 |aescrypt2 1 hw_ctree.xml tmp U3 F; L# H+ M7 d' U# \$ f2 f
gzip -d hw_ctree.xml' r+ g& A( z2 b! F: j$ J6 j
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
! L, l) a( ^9 W( v, o
6 z: [ r# q1 s/ t3 r2 v4 @ B/ g3 F4 S& |& [
* D L# O6 Q* q
' `. n) e: }2 p: p( o
. q: r. N* @+ I% _) q0 Q. X- D: S6 s: M6 r- ?
8 b& ~* z. X: M; O6 o |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|