|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 1 q L8 _( h( g5 V0 L' t0 [
5 ]$ B) ~4 i, _7 \+ Y
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
% ]$ x! X3 e9 z0 I( ~# S; ]0 q 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
0 r2 ?1 v2 Y& b9 F. X4 X6 r' d这里先把包放上来。使用方法和他的懒人包一样。
9 c4 \7 M/ Q( r9 U0 D后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
* p: M2 \; V9 R' j* {; Z
' Z, z* e3 f: b6 ^+ }; x! A' Z6 x+ r7 z4 d, Q% ]# G. O
' A M- F, l+ D: C" R' X5 w/opt/upt/framework下是只读的文件,# m$ p5 e3 p$ S2 b6 I, C4 _
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
6 i: X2 n; y3 L2 E$ Z0 S1 k4 D所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.; T. f% j$ B! C( {7 n( w. b
. v* P" d+ d/ F9 ]6 I# t/ x
5 G: n1 R' V1 Y7 Y/ D对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
4 I( D4 Y* R3 P @进入openwrt有2种方法 t7 |. a8 f# E
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.! e) @6 r- k+ Y; I" R, v
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.1 q& O, d7 ]* q* B7 L* f2 J
执行前后可以通过whoami命令来得知当前是什么用户权限.* Z8 U( y. I8 v( S4 R
5 ^1 ]7 O( {, f% M8 ~% @3 A9 f3 R4 q
3 N+ Z+ R% t6 I# O% v& q+ z8 u1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接& Z! H6 E, \0 g, K
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
/ A, D1 e2 x' {. s7 T# }) h" P9 J8 B* Y$ O: F
# x* T5 |% a& K' L5 P2 F
实际测试' r& i& R ]- M* B! n8 x
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
) T4 a# v, n ~; @$ S; m, `重启光猫,可以由telnet登陆光猫2121端口.
, m ?/ U' C) B' y) D2 H如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.& u1 H B+ I. v# C4 D0 s
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
' r0 z6 s) X/ p2 v3 U不然登陆上去不需要密码/ _1 f+ Q& J$ Y! K
具体方法可以看后面.
& o) h1 q4 F1 w2 N2 ]" R: E1 ]
' [( E$ B2 M+ a$ T6 e, _2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
( w' v. H- N# O3 [4 J' {3 J7 v4 \主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,$ y0 s; z. K# X, j3 o
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell
' y0 `. C6 V2 N" \( q可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.* s8 S" j0 U1 h7 w) n8 `5 g% h7 T
察看内核信息# k" V$ w. Z; I
uname -a
3 e" @9 G$ W0 \, ^$ U察看openwrt版本
1 j5 ~0 p8 |$ K% @7 q" n: Fcat openwrt_release
" z) A/ Y6 I9 j+ a: w3 U察看cpu信息
. |$ D6 b5 D4 ]( N% q+ ?cat /proc/cpuinfo- L" x$ Y) Y) s; ^
0 U& z0 \, f4 W, D$ ~) n# [
) ]6 r3 R' h( @据说电信内置opkg程序的参数被改过,还没有找到用法.1 ], m& J1 y4 e0 U& i- B9 P6 u
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换, c9 N5 h/ e( F$ h( r7 b) O
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
: M5 i1 f' M, g此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
( Z9 J6 T3 j" e) ]* b3 d1 \下面是在openwrt中操作6 ~8 B7 F( \3 D2 F U6 y+ W4 G
进入tmp目录
/ A- D% K0 t) m% ecd /tmp; p: {7 }( m# d* Z
下载opkg包
h: i# ]! I( h' ^wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk d$ B2 U, B5 @. R. Z
解压2次文件包得到opkg可执行文件
; z6 V, m0 P5 [; p7 {8 D& B. r0 Htar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
- k0 Y0 M2 W, L% T" jtar zxvf data.tar.gz% G9 j4 V3 @5 V5 T* H6 u7 T: e5 B: c
移动当前目录解压出的opkg到系统的bin目录替换opkg程序( N, z/ c: O! \% g! K
mv bin/opkg /bin0 F8 k1 M* k' b( {5 X5 @2 @) L
6 A4 W! C5 B& {" {+ Y9 h! i$ Y* w
同样补上opkg运行需要的缺失的libgcc库文件
/ t* O) S" `" @+ y3 fwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk1 b0 n( I j, I! f( V
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk6 d9 q# l8 W5 x" Y; {; t) ~& F
tar zxvf data.tar.gz
- n4 @0 q/ {% pmv lib/libgcc* /lib
* y! p5 X6 S' ~% H9 [9 k5 P$ U( V# y' @& A
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
1 [& p8 x2 G0 e+ u; E6 d, ?顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包& F3 c/ \: e* Q; {5 l4 Z3 m
0 [# p) V/ @. T3 t( Q. K
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因0 G0 ^8 `6 q5 {( V6 `
6 O6 w4 B4 q9 |
5 q- T0 ^3 d; B+ d, f; r, {2 ttftp用法
; U6 J8 Z# J# C6 t0 j C上传openwrt的本地文件到电脑的tftp服务器3 L G, i2 |8 N& T
tftp -pl 文件名 电脑的IP地址
0 L! j0 t) Y" J( l! C1 T/ A+ e7 z- i2 H下载电脑tftp服务器的文件到openwrt
6 V3 \) Z8 a; {' ptftp -gr 文件名 电脑的IP地址
: S2 a$ ]: r, H; L, E3 N5 U
7 ^" ^3 r+ v4 _/ ~# N( Otar用法2 Z/ \+ B+ G' c2 i1 X
打包成tar.gz文件
2 H$ _' U1 D$ l+ u$ z0 Otar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
{( _' \0 ]. e7 W3 w, c0 X解压
3 f2 ]8 J2 z4 G, I' mtar xzvf 要解压打包压缩文件到当前目录 + R% y2 q+ {4 x
# o! N; \/ a- P* j4 b
& e) A' L4 g. k, a! ~! J3 O8 E# g& S. f! F1 D
; Q" A: J) m" m
distfeeds.conf是软件源地址.
/ U! h5 r% u1 [1 k3 w4 popkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
5 u* Q7 D5 S" Q! _文件内容如下
8 k6 |/ Z( g; O# t3 c7 E. A' ]dest root /4 ~7 }9 ~! A9 g7 F4 b7 ^
dest ram /tmp1 {# s3 k7 P! ~7 E4 s, ~
lists_dir ext /var/opkg-lists
, _6 ~9 j: @( q% v, Qoption overlay_root /overlay$ A2 s, b0 B) e- k7 s) o% Y) h
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查! e. W& m# T! u0 `
#option check_signature 1
/ k6 B( I1 z5 I4 O7 I2 p$ u#不依赖架构的软件
4 t' P( O" Z( yarch all 1# a- {/ q! C4 V- z: p, p
arch any 1
7 Z& P7 e# y9 p7 Q( H9 Q8 u, Zarch noarch 1& m4 R9 Q3 X7 `: e# l# \
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
* A! p7 N: L1 r* t0 f7 C, f#添加 rtos44
0 B4 v% t$ D% O* Tarch rtos44 10( }) \" I( m" R& V9 e- W; ]
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
' _& B! [/ _ J+ Warch arm_cortex-a9 20! l$ }. I2 O& H0 D! O
, Z. G) X. M9 K; ^# H. E g
7 U& g: Q4 ^- w: H
( C" _9 R k {# j2 U# c清理当前目录下释放的文件
( ~: S9 o$ Y Z% T" k. Brm -rf *.ipk *.gz debian-binary bin etc lib usr# F# J, h) _. f9 {
5 P" R8 @) e# B; E7 ^8 Z; V5 d
1 ^$ o: ^1 g7 T现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面4 P4 O2 \$ G; B w! Y" N+ c
如果已经在主系统中下载安装就不用再安装." C- ~. @& Z! ^# W# d. q
opkg update
8 _$ m7 q/ P; X" P1 k$ Iopkg install dropbear
8 X# U/ L- ~4 l# t修改dropbear的配置文件,位置/etc/config/dropbear.
- t# c9 E: K" H& j0 W' l修改端口不与主系统的默认端口冲突,我这里修改为2222端口2 Z% R+ z+ `! |) G4 g
option Port '2222'# M; ^0 c6 c) f: G$ @8 ]! e
4 B+ t; H/ k. p) ?
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面" B$ k4 ?& U/ @- U4 Z- r/ {
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap
& N& s1 S5 [! [+ {" P" V, _5 p/ P1 f* G( i8 v- a
$ Q6 a9 ^5 V6 A# z4 d4 A6 M
+ F* w5 k4 l4 Q1 S, D. G
工作告一段落,打包备份一下就是懒人包了4 M& s, c. _5 n6 T1 ~. Q
登陆主系统* l+ R1 \2 E# z6 |
cd /opt/upt/apps" c5 T- @- t7 |; A+ d
mv apps openwrt9 p2 i/ _, ^1 w8 p( k& U4 ~
tar czvf openwrt_R20S35.tar.gz openwrt. O& i3 B/ Z' }2 P; i5 ~/ ?
- h- N5 U( g( \& a
使用tftp传输到电脑保存.使用时登陆主系统,0 w; x, r; }' [ S1 R
cd /opt/upt/apps
+ L6 g: Z5 i/ @/ f! d0 ltftp -gr openwrt_R20S35.tar.gz 电脑IP
8 s: z& [3 `) ~+ ^0 |( i6 Htar xzvf openwrt_R20S35.tar.gz
, o+ Z8 H( K; g. S6 hrm openwrt_R20S35.tar.gz
- ^3 i5 z8 w; @3 g* V备份删除当前的openwrt,我直接删除了
2 B3 ^3 Z# a: h3 A) ?* O- `" ~rm -rf apps t- T* f: Y ~' }% i
建立指向openwrt目录的软链接,代替原有的apps目录
7 i9 ?3 h5 p8 S& oln -sf openwrt apps
4 q! S, m1 G! _4 v. i: X" B$ K2 G1 z2 B
一些有用的工具用法后面再追加0 L' O# F( C; t, ~
+ s" n9 P$ J) Y# o: E0 [& p$ c; H7 t
/ `: ]- m$ i# ~8 D
! |+ Y6 m6 v* T2 p$ Y
. k# W% c; O- K/ C1 I; Z9 [
. a a" L/ N* }. q. M下面命令备忘待整理
7 E5 K* b2 [' G! c4 y% i
. R, r, [- S1 Dtar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
- T: h8 L3 p4 }* b: ~aescrypt2 1 hw_ctree.xml tmp
4 h' j9 \( @3 x' I) Wgzip -d hw_ctree.xml( }* l& V; K; A' w: I
tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
+ ~' [/ {8 m$ ~+ x2 v/ Z! u. L3 C+ ~- D' ^. n* `& i2 r
, s* u4 U# o) M; l% F
. [$ I4 ?" L o# N8 \
! u2 M7 h) B" X- G% K
& j2 H: f+ t M, T9 L& k
% s( f4 Y; x4 B. y, J8 A* Z; Z* R/ G/ K3 [7 r
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|