|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
y- s( L' h: M+ L0 a9 U1 s; L/ b- p
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。/ ^6 ^3 d- C! d
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。! S4 j7 o# T0 `' ]( u, {7 M0 I8 C
这里先把包放上来。使用方法和他的懒人包一样。, \6 [) @1 h( B! M' j$ C& @
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
" w) j" z/ [' K- I+ |' g& {5 V0 Q' M4 }7 ~, ^
2 s9 \* b! p/ {& _0 ]4 z% j' r6 w/ j. }+ U0 y
/opt/upt/framework下是只读的文件,
2 ]* W0 R6 O& o. y, n/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.6 E" J* c! _3 l4 ^
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
- @4 y) S' z: P {5 r3 F( U) s+ O8 q) ^5 S
! Y) [2 Y; T' i3 N: S
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
/ E: f# n, w) ^6 T% n% u进入openwrt有2种方法. ]) N; _. p2 |
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.5 B2 _1 G! [, Q) [
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
" s' ?: V! l3 n- b执行前后可以通过whoami命令来得知当前是什么用户权限.: }+ Y4 w* ?" b" B! M2 N* e
* O, ^! n% v, K6 _9 j* f/ \
% p0 v& h9 v& o: R1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接; `2 k: G! }# K+ e" w
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行8 x' v4 B+ t# \+ }7 i+ B
0 N" u, A1 I+ y$ w/ j& a% [. M
+ {& c* Y3 R3 b- B
实际测试
8 b4 _2 m+ S5 _6 P( p4 B- P0 L创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & . ?: r4 j& I0 H% N% h
重启光猫,可以由telnet登陆光猫2121端口.; x) o! H/ l1 s0 _
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
% M' }$ c2 L3 R7 D* v8 Q建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码$ M! I& |/ @3 X$ i+ g! I
不然登陆上去不需要密码
4 W/ A6 p8 \2 F8 h$ Q具体方法可以看后面." h$ ^( N' o4 i/ ^7 D+ {9 R0 ?
1 g% l* X; u' F, P" G3 C2 @- E. [2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,3 a2 Y+ E) K) |) Q2 G( v! k7 |
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,5 q( C: Z! e% ^
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell/ Q& U0 y) G0 Q' s$ I) p& T( D9 ?$ J
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
3 N- T8 o$ u! m; V察看内核信息
$ U H2 ~" C6 e* {+ `uname -a
- R0 T6 F- B2 j) Z+ M察看openwrt版本
7 p# K# B" O* ^: r+ b+ E# wcat openwrt_release
* N6 q+ K8 Z, d/ t; ~9 {( g察看cpu信息
( R: Y6 |! d: |) f1 E0 `! Kcat /proc/cpuinfo0 {+ a* K9 D( b- u$ ?& Q& C" \
8 a5 m# d" P+ m! D6 y
. Z" O7 {% T8 \& j* U! L据说电信内置opkg程序的参数被改过,还没有找到用法.
% Z0 U2 V0 B7 `' h4 l我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
; E$ u }4 P1 L1 l/ P4 o8 e4 zopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
8 @, v ?6 k" p2 _& m7 r Z( n8 T此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
|) Z( m8 B- [( [9 k V下面是在openwrt中操作
% s) ~+ @* `3 }+ I+ c" m- e% u* k0 ^进入tmp目录+ d( ~$ r/ _! x/ X* L
cd /tmp H P& V2 x! G0 J
下载opkg包
], e7 Y1 ^5 Q- T0 \wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
& X4 j1 [( {5 L! F+ M解压2次文件包得到opkg可执行文件
4 ^# ~* z# G8 f+ D, A9 i& Gtar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
! M* ]9 A- u1 x: N( m) W! N2 Jtar zxvf data.tar.gz% j6 w* f: O6 d% o0 |' T& o
移动当前目录解压出的opkg到系统的bin目录替换opkg程序% |" g* x, G W0 M% O7 s
mv bin/opkg /bin- L# Q. o* Q5 W7 d
" D U$ U% N8 o2 V同样补上opkg运行需要的缺失的libgcc库文件* ^) I# c9 H8 V: b
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk& X8 o4 V, i m) ]6 u: |# L
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk: [( G5 U4 I2 K5 o1 o+ I6 w7 d1 H
tar zxvf data.tar.gz6 J1 U+ B# H! P6 b. i
mv lib/libgcc* /lib+ t6 Z" G, c" D) H# {; [
; L3 w1 ]6 O% h3 v
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
( L! T- ~; s5 A/ b% c% O4 b顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
7 M$ ~6 v6 E/ T. f3 I7 p8 Y$ s" w- h" \' g( A; X
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因
8 N0 X( w% ]5 o
7 }+ @( M `, J- W Q7 ?" X+ I; g& C/ N9 J" W/ I5 ?" C6 B
tftp用法. k. w8 ~6 ^2 ]. A- x
上传openwrt的本地文件到电脑的tftp服务器! K7 {# n/ u: Q1 A# o% j
tftp -pl 文件名 电脑的IP地址
# d3 w0 v9 \7 S7 I3 ~下载电脑tftp服务器的文件到openwrt0 x! U! y/ r7 R) G1 e8 ^
tftp -gr 文件名 电脑的IP地址3 M3 i. I$ `# O; \
2 _3 p/ K1 q# E$ }, T
tar用法
' p9 F: x- T6 x* A! i4 r打包成tar.gz文件) |4 p0 L; J% L/ H
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式% m. f% L' Q. n7 d
解压
4 t5 q) C! q6 q2 @' `, A6 C) Y( n! Ptar xzvf 要解压打包压缩文件到当前目录
$ K# ?8 V# k( Z: m! I6 H3 C( ^1 C* p/ `/ T. o7 G) [
9 x, _( d7 O# ?
, D' g+ d3 J! A0 @; ?
T/ n5 I. k, w8 K, a udistfeeds.conf是软件源地址.
2 T! J8 F) W3 T$ N$ b8 E0 dopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别 ~$ B3 \; C5 n
文件内容如下
( g, H' }" B! x9 T3 H& y! ^5 udest root /8 ~* @2 N$ A& P& M% F
dest ram /tmp, Z G8 Q+ @' k3 M3 K2 d6 F. u$ R
lists_dir ext /var/opkg-lists
/ e7 t; h* R7 V4 [) k& S! moption overlay_root /overlay v4 r+ H1 e5 g; W$ A# p5 v
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
2 _# t2 E7 R$ V* U' y#option check_signature 1
+ s3 U7 x2 w5 t* @ f% m B' q#不依赖架构的软件. m$ B! p; e2 C( j& l9 J
arch all 1
. I F" F- g) d) w$ q1 O* {- uarch any 1
+ h- I- Q- N8 V+ M# Tarch noarch 1. R5 q, u- e2 q) Z
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44. y( |" B7 i6 h+ e& O6 z4 _
#添加 rtos44: X- M" _0 n1 x) L& ^) u
arch rtos44 10
0 g; E, ?; X) O& c2 \9 x+ X#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9% K3 ~/ F, |3 D1 ~
arch arm_cortex-a9 203 [( B0 Y' q8 e" I2 h }
7 i5 [' S/ n/ \* c P: O7 @. f
, D: |5 S; D7 k1 k7 r8 b, f
! y; e& X4 G. ]4 Y
清理当前目录下释放的文件
) b* q J) _0 }5 i/ J6 p4 rrm -rf *.ipk *.gz debian-binary bin etc lib usr
# }, u) g7 T5 W t/ f* d% I4 `
0 A: O) N4 M. a- N K, S. [& ^+ H* ]% u+ o6 y" b
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面& D8 X2 S& x. q- A# S" n
如果已经在主系统中下载安装就不用再安装.
7 H( h/ r3 _1 }opkg update
& `8 {* o9 A% @* c; P gopkg install dropbear
2 j) I) V, M9 D$ F6 `8 I( X* W修改dropbear的配置文件,位置/etc/config/dropbear.
/ u, C" s! J3 Z1 l8 w W/ |修改端口不与主系统的默认端口冲突,我这里修改为2222端口: r! D' V: {' S7 O
option Port '2222'8 E- g' l+ p$ X1 l% R3 e X5 [7 q/ h
3 a4 h/ r4 r1 p8 L E再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
6 b, ]6 T1 C% p7 Zopkg install luci-base luci-mod-admin-full luci-theme-bootstrap
+ l$ h" z" f' p9 u2 Y# c8 F8 C# r+ g& O+ h
' K2 p' \2 S# P# v& U4 b, ]
3 B( S4 K3 X) ^. L/ n$ Y& }8 P+ O
工作告一段落,打包备份一下就是懒人包了& Z8 W& k5 u3 V0 w2 I, c
登陆主系统" d9 ^, ^2 `4 H" s! R7 E
cd /opt/upt/apps
- J. [7 O8 N2 }" Z2 xmv apps openwrt4 G7 W q: x/ e# `
tar czvf openwrt_R20S35.tar.gz openwrt
/ j+ b8 F7 e( R, D- L" [% K+ f! V
9 V. w& J/ G9 H/ P9 s使用tftp传输到电脑保存.使用时登陆主系统,# D* c' w' W. S; O) }; a$ G1 g! F
cd /opt/upt/apps4 _9 l- w( d- U7 m5 Z
tftp -gr openwrt_R20S35.tar.gz 电脑IP
+ m+ j X& \8 d& Xtar xzvf openwrt_R20S35.tar.gz
! P9 _6 K2 j) [0 V9 m2 |4 trm openwrt_R20S35.tar.gz0 ]5 m7 o9 x: R- |; Y$ D Z; C
备份删除当前的openwrt,我直接删除了
. q( I; b4 I$ wrm -rf apps
a0 B! |0 P6 R6 M, X) q! T" k建立指向openwrt目录的软链接,代替原有的apps目录( d* `/ O6 D. u6 Y
ln -sf openwrt apps 5 K- Q N8 P/ b. D" X
) v' ?4 w! P- J一些有用的工具用法后面再追加
8 g$ j$ M- u" M2 L; L5 X, t
% t6 Y7 [( U1 S! S/ p2 e! I1 I, `) p$ r8 Y, c" I
0 k9 Z, t: ~# k8 W/ d8 a$ U. f
& w% Y# M& O9 b' x4 J2 K1 c6 t
( }: U' R( M6 g" j
! r, |, W: y7 ]4 l% u3 [: P下面命令备忘待整理
' p/ J+ T! [8 k, C9 t2 t
/ r& ^) N8 W) f: }' }tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string8 N, S0 T9 b, q* a
aescrypt2 1 hw_ctree.xml tmp+ u' U) o p( C6 b. Q' q: _
gzip -d hw_ctree.xml
7 ^) B& `( x5 B1 x. K6 i @( Atar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
0 R4 Q! C ^& O4 F* s
- E6 Q# u. \% J8 N7 x2 g/ A# m/ ~6 P: K
& o4 D( i) Q( u' T/ W! y
) x4 ^ f3 M0 W6 j' o3 J4 c2 {( E4 g) G" _
5 I: D0 F7 I3 Y0 @6 Y
, X; E; G, P7 Q3 a |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|