|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑
* F: Z( Z0 W6 C9 L: P% E% N1 T; B" w+ m/ c% x) }$ g1 v
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。" y6 j9 @& b) |6 N- T. S/ J J( `; X( Z
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
( m. ^/ G0 o! T7 T" E& y这里先把包放上来。使用方法和他的懒人包一样。& Z! e0 I. o- _3 H
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,7 s2 f4 E" |/ G" x$ l
$ E% d$ `9 N! u8 s7 q# N5 A% }5 R
) V. @6 s+ c4 d; m
! M+ ^0 k0 F. {$ z+ u( L$ D/opt/upt/framework下是只读的文件,
( i$ r. b! z* j/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.% n# `$ l* M8 h6 J
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
; z' [" i F- I# b6 [; H
( U$ k- J% U+ X. x E7 O
9 O; b5 U" A4 V对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,; B! t' U( T5 G7 K. r
进入openwrt有2种方法% i9 c1 a( X2 p5 U
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
( G4 j5 |0 L u1 S有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.3 A1 Y7 o/ w/ ?, q
执行前后可以通过whoami命令来得知当前是什么用户权限.
' Y g( R6 b4 ~; ^/ T
: V: H5 q! e* s2 l% _4 g, D |. G
% G7 Q# G& b3 B1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
5 T, n# L6 Y$ p3 ~+ O& A可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
0 d% F; \0 w6 I5 _7 v1 Q! h9 v) B) v4 e/ E4 H" o- P- s$ I
+ L' L, r; X" K) B4 z
实际测试
: Z4 K. ~2 y0 `' P V% i3 T5 x! ~创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash & 5 g% f: V1 ?- b: d! i0 `
重启光猫,可以由telnet登陆光猫2121端口., K6 s, L* l5 t( J) E2 ^
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
& v$ i+ C |' O( Z0 W% ~: Z建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
! N6 E1 k7 w- ^不然登陆上去不需要密码
U5 C6 C& }4 t8 R& |具体方法可以看后面.& e5 g8 H. _; |* d& x* N( Q) _
. b5 d3 }; I6 b& z7 d0 @2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,9 i, n2 c, L0 o: i( \9 j5 U6 o
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
( `% S6 ~) ~4 t% c! _2 z# v输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell3 [6 M/ L5 Y5 F, G/ [" Z* e
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.$ j- j0 M1 s9 I6 E9 H2 [/ {
察看内核信息
2 Q3 e a7 I3 P& f" H6 i7 P0 V3 \uname -a' f- D2 @) I J8 m* y+ }
察看openwrt版本& |4 K3 c: r: h% [" C+ w+ |9 `& d
cat openwrt_release
: n* e/ J; P/ z8 [8 L7 w x察看cpu信息: ~2 G# ]0 g( a# B0 v. t
cat /proc/cpuinfo
4 P1 a& {! s# c6 v" \7 ?$ t. X" o" _. I3 A" U
' Y$ e8 G t8 n5 G# }据说电信内置opkg程序的参数被改过,还没有找到用法.
* V3 T' m, k. Z* \4 K5 N$ ^我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换8 u9 p$ S: O" G8 }% I# R, ]
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
# r: w" p9 k& B( s& l/ \8 B此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.7 ~) `5 ]! s5 y. i+ a% I& T( y: ?
下面是在openwrt中操作5 i/ P& w7 ^4 q, l7 R1 U( s- L
进入tmp目录
! H8 h4 h5 c' q! _cd /tmp
8 H3 M6 e' x# \3 K! }下载opkg包" l" ^$ M2 |6 r
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk) s6 C1 W, d1 ]2 Y# f$ |
解压2次文件包得到opkg可执行文件
7 w% Z$ t' M3 v6 |tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
9 n6 [! g+ u r2 Qtar zxvf data.tar.gz
. ` s/ V, H. b7 `移动当前目录解压出的opkg到系统的bin目录替换opkg程序
/ F! Z: o" C+ r7 v) p* ~5 nmv bin/opkg /bin
1 i1 u# ?6 t, r* i0 q
! l# x$ E% c4 Z3 h同样补上opkg运行需要的缺失的libgcc库文件/ |9 ^1 o: C! f+ o" _
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
' ?/ c) _8 x u7 Q; ftar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
4 |# I' T3 @% `* Q) z) m8 W1 {tar zxvf data.tar.gz
+ X& w6 c3 J; B! jmv lib/libgcc* /lib) z+ U& j) e: [- T2 i+ @5 {& a" j5 e
% b! h1 I, d5 n- i然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
1 O2 ^5 D/ k3 ]* }8 @7 ?( \顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包: E. E9 w7 y" R* B
0 I$ g& h. M) \, ]" _' l7 f还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因' T& w5 U4 I/ m, G
) T& H: n1 U/ s1 Q+ }
0 l1 g' T H0 |- r) Ftftp用法
3 r+ e3 F$ x) e6 U! T上传openwrt的本地文件到电脑的tftp服务器
/ }- T" O/ ]3 H. vtftp -pl 文件名 电脑的IP地址
! w" d/ E3 I( {" |* q% T4 J: K下载电脑tftp服务器的文件到openwrt ]+ M$ ^6 S8 ~" U) t% f
tftp -gr 文件名 电脑的IP地址
3 P6 Y; S/ Y: c1 e! _
) U: {. g5 f. b& p. O: W; A) Z2 ^5 Ctar用法# r- k$ z; ^2 Q5 a6 _* o( _; G
打包成tar.gz文件" T' _4 Q, K$ o l8 ?/ g
tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
8 F3 i j* X+ R$ B解压
6 Y2 [& B! J) F/ A$ ttar xzvf 要解压打包压缩文件到当前目录 ( d& y# n! L. v- ^
. \; m7 s$ |- v: O: C( v1 B9 A2 W+ M; d; u3 n: F& L+ Z
( Q/ ]. P( w+ s4 e) M* K m4 S2 X( P- D/ K( o7 M
distfeeds.conf是软件源地址.3 E9 C7 H4 P3 h* C
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
$ T& G/ U( A$ f) E& b# O文件内容如下
7 x$ N0 D3 ?, H; m+ Z# Edest root /
J1 Z. f8 v5 K' d6 d) Ndest ram /tmp9 w# w% H0 D. Y E. ]% ]* G
lists_dir ext /var/opkg-lists9 x. o2 j, I* \0 S5 q* ~! ]
option overlay_root /overlay
0 S/ \$ K# r) J9 @+ P P#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
, ` K0 m w s5 x( v#option check_signature 1+ r. ]0 W3 [+ z+ W" U0 D
#不依赖架构的软件
0 [- C0 H! R& k. C3 qarch all 1
: ?5 a) H* h5 Z& T8 {arch any 1
( a7 _" n. F1 O, o$ o. }arch noarch 1
# q+ ]4 [* `- C* S) a$ d4 J3 \, H" v1 U$ r#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44( G0 Z4 a& }# h4 e* F
#添加 rtos448 s5 x( D+ v- [2 b, w9 q5 D3 |
arch rtos44 10
9 s. x+ C! {( A3 @5 Y- H#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
+ I, k0 B2 e+ q% W. ^! H. harch arm_cortex-a9 20% S O3 D- X+ R/ Y
) g5 a6 ^1 y7 C$ K0 f) i4 V& w9 ^& E X% N' R
% Q$ x$ _' n( D/ q% n9 D1 d清理当前目录下释放的文件
( b8 f8 S6 O) V+ M/ H4 M5 V8 @rm -rf *.ipk *.gz debian-binary bin etc lib usr
g% l" H6 x, x9 x0 v
; u& U+ e; _' r4 r" W7 h, Y2 q
/ g, R7 W- m7 L! w! i现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面
3 e! L6 i1 j1 R0 v$ X# k' E! \如果已经在主系统中下载安装就不用再安装.
( z; O& d7 B; ?5 Z/ C, @- w! I% ^opkg update# c( k, a& B/ g' }7 L1 o2 s
opkg install dropbear
: H1 E6 z& Z; o. G% A: T$ p修改dropbear的配置文件,位置/etc/config/dropbear. W# p) k/ W- {! k2 x
修改端口不与主系统的默认端口冲突,我这里修改为2222端口2 U+ I& k [3 }: ~- i& q, S
option Port '2222'
7 M% W1 |$ x8 H5 C: K+ n) M6 y8 `/ F# m+ p& o
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面( b* q# { {; J# h& y
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap5 X! X5 R5 @$ @0 z$ F! m$ F
6 C* D* j) Z0 Q. B" e5 Q
2 w9 _/ D( Y0 ]$ m$ O$ [+ _+ `& U' x
工作告一段落,打包备份一下就是懒人包了9 S) E7 e2 R5 Q
登陆主系统3 X9 ]! A( e: b; [: w
cd /opt/upt/apps
& g+ t5 b; K; P& v% C( A: Emv apps openwrt" e/ F5 P) _% @4 x
tar czvf openwrt_R20S35.tar.gz openwrt$ C$ ?8 [- z. n- m, B
& g* Y6 y% o$ G& O使用tftp传输到电脑保存.使用时登陆主系统,
4 a3 t; u5 g) w% ncd /opt/upt/apps
$ b% v* J, c5 V; Jtftp -gr openwrt_R20S35.tar.gz 电脑IP; V9 D6 d- p$ j1 J4 M, {
tar xzvf openwrt_R20S35.tar.gz- I& n! v" \4 G! n: H" r6 t
rm openwrt_R20S35.tar.gz4 W1 ~- y9 ^% Q0 j
备份删除当前的openwrt,我直接删除了
1 g7 G% ~, w lrm -rf apps
; q" O5 K2 A4 ]# e( w2 d, O建立指向openwrt目录的软链接,代替原有的apps目录" S# o* o; \4 ~+ N& {
ln -sf openwrt apps 0 K9 |% _, U& m4 d9 ~# `
- {4 C0 s6 F4 R6 e一些有用的工具用法后面再追加
: U0 m6 {0 I- q
" e! w4 l2 |) @+ D: j
9 y9 q3 V7 T7 B/ n/ r
; e$ o6 _3 W0 Q, H% G0 x7 R! L: Z5 y
7 p/ c- j9 r5 q# i6 I; [8 B* b
. G; F6 G, l0 g6 q5 D( O1 O下面命令备忘待整理& U% l# r. o3 w" P: S* ]* V- Z4 N
7 i/ Q$ T! g2 ?6 N, etar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string+ }6 a- M3 p% l. A1 S
aescrypt2 1 hw_ctree.xml tmp
2 p+ l( e' F0 K1 P2 ?" Dgzip -d hw_ctree.xml9 G1 S3 A% P0 k- ? q& O& L7 t, p
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*) h+ X0 A4 |/ U( v# J0 p
7 E5 M( {* D. T/ _; B
|+ G6 C' o7 N' o+ Z8 {- o
/ d3 @* Z) W! v( S" t- T$ v( y1 |4 l# I5 S
8 ]% r/ n5 S1 D$ j1 o% V$ l4 \1 }% F
# g/ H# P3 { P! j1 w |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|