|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 ) c2 l! m6 }9 N& R/ R
p- m5 P$ ^4 i) T$ d, l
前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
: z1 ?6 {- U+ {/ a 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
. v( b" ]( L3 U, @! g" T+ R这里先把包放上来。使用方法和他的懒人包一样。
" p! m. A0 y8 }后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
# r8 A. U: v. X& x8 N9 ^% q* m8 V+ W9 i" M# @* V
3 H* L% Y3 t( F/ o: s/ l2 U
( u( q6 _ z$ S+ |: t
/opt/upt/framework下是只读的文件,
& y; ?+ s* z8 a, ~1 ?- z0 S/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.) e4 b9 Z; Z- T; X7 h) x( X! V) n4 i6 O
所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
; h, T ]4 d7 b7 O
+ U# z9 H" d- e: A- j
+ m, a9 Y& a, s- \( }对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后," G! [& X! J7 i+ q4 A' d- g2 H
进入openwrt有2种方法
/ k/ \5 z1 q% }注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.- O% ?9 T: N! B9 _+ l# D
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
~+ D; k9 f' b$ \执行前后可以通过whoami命令来得知当前是什么用户权限.
2 I, v+ `9 [9 o5 ?! [* f1 p( _$ e0 E2 v; x. s
: A1 t' ] {! d% D# G
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接6 m8 X) C3 o* v. s2 C# X, O3 ?5 Y
可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行. ~/ R1 V4 F6 j2 f2 v. l
: u5 e/ P- w0 U: u! c- |$ C3 N8 r( Z; v2 U' R& o9 q% A" Y
实际测试7 N; f+ g% a: E8 t
创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
& Q9 g1 S, G) X1 S( p9 ^重启光猫,可以由telnet登陆光猫2121端口.
: [# T5 {0 Q* P. l e; Y& w如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.8 j3 H, ~' d9 s. Z
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码( I$ A: k$ L7 g& }5 {$ a r3 t2 ?
不然登陆上去不需要密码
' F9 y Y% i( s$ l具体方法可以看后面.7 B2 e; C) b! F: \5 b- R; g- ~
5 h( j/ n& ~5 L$ @# Z0 U2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,
& C$ B# T' e$ P: }: m主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
0 T* c* i& P3 u6 X1 N+ G输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell! s* ]. A3 C2 v* I
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.
8 m' z, V% V) D+ I4 P察看内核信息
0 e( [! H: Y) x* L! auname -a
* ]" }9 \4 e9 m/ m! ?0 p6 L察看openwrt版本1 G$ ?0 x3 V1 o- e7 X, Y
cat openwrt_release
. k# P; I8 N1 J C4 D察看cpu信息1 @/ }( D9 B, H! ^( F- q4 [
cat /proc/cpuinfo
# x: }8 Z ~* Z9 Q( a+ `0 B
" D8 @2 L6 E. A& u* O0 H& \' I* R3 }
据说电信内置opkg程序的参数被改过,还没有找到用法.
8 }7 Y6 n" S+ U1 Y4 E- k, v L4 T我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换* N/ t: z8 f$ @- x9 x8 n
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
b4 ^7 C( H/ { p' U此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
# r9 ^; \% l: q+ _/ i下面是在openwrt中操作5 p8 j! t8 q1 L" A$ m7 b+ P3 g8 n
进入tmp目录4 K; F" U6 [$ X4 u) z d& V- j
cd /tmp
+ n/ t8 p" Q, z0 |* ]7 B下载opkg包# U8 F; V \1 k. Z& q# ], y
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
/ m! M" N w2 E解压2次文件包得到opkg可执行文件, R6 N6 ^/ D3 [7 Q, o& _
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk4 _+ c" L. F) f% z0 Y3 o- M% w
tar zxvf data.tar.gz
4 A" c5 t! T8 a& z3 Z, U& M" ]1 m移动当前目录解压出的opkg到系统的bin目录替换opkg程序
6 J3 O; ?0 W8 j; D( U4 F7 i2 c% ?& gmv bin/opkg /bin* H. y. W, a4 S1 J% a* |
/ p; q O$ L* @. F
同样补上opkg运行需要的缺失的libgcc库文件
7 V: ]3 W4 W2 uwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
q: H2 n' R# S. n' K* W V$ |: ftar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk; T8 f5 y. C: b# Y# P7 g6 T: i1 W
tar zxvf data.tar.gz- O7 q" h5 Q6 W! o: Z6 R: [! x
mv lib/libgcc* /lib
) k4 ~1 P( S! G6 z9 b: _8 b7 h3 C6 X
- r8 L+ z' G4 L" \然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
: y" Z, B2 Y5 d- f$ b0 u# [6 i7 _8 t1 Q顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
. T! U( Q6 V7 k/ }# {( r
2 ^6 ^; }5 ^, P- t还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因# u4 R: a, a8 j |' |- m5 I
$ m! r9 E9 o' Z( k# v: g
7 }" b2 o5 l4 p+ n# F! }9 V
tftp用法
- q# A7 ^4 t% y/ u7 a上传openwrt的本地文件到电脑的tftp服务器
, _/ ^: u+ }3 ?2 M, L9 d- Y& Etftp -pl 文件名 电脑的IP地址9 B2 W8 L- g6 ^9 X# x8 a8 ^1 g$ \
下载电脑tftp服务器的文件到openwrt
8 \! r/ o6 r* b R3 Y4 q( J4 H2 Vtftp -gr 文件名 电脑的IP地址6 q% ?- O9 f5 i6 `2 @: D6 e9 l: T6 M
: x3 X, S9 h! c8 i
tar用法
0 {- N8 k3 M$ Z! ^( U$ W打包成tar.gz文件
. y9 a: Q4 Q9 O" c3 x: htar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式( S& y! g% |) Q
解压
9 {: {+ b( G" L1 h" otar xzvf 要解压打包压缩文件到当前目录 9 {: h! X4 B% b0 `& B+ X8 F1 S* }
% N; z$ J _; W l
$ A N% Q6 ]$ s4 Q+ W" b2 P& }- z2 r* o, A# @
; U% F$ V3 n3 ]" h9 ~
distfeeds.conf是软件源地址.3 K. O' A2 N V& L* g' K4 N/ r
opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
6 g# T2 @ F) Q1 p文件内容如下
& Z; h9 m+ m: X- v- Ddest root /, N) m1 j+ R$ y2 Q. | X; X* n) B
dest ram /tmp
1 O( e$ z: ?& l3 jlists_dir ext /var/opkg-lists
& @, C8 ^# L5 X+ c' |* y- ]* Aoption overlay_root /overlay
5 f% Y5 y8 s" c4 Q V#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
( s( l& y. J1 J3 X#option check_signature 1
% U _* @* I* j2 |# T- [# ~#不依赖架构的软件: M( U% N, @! y7 c% P+ E$ e
arch all 1
& R. z& g! I* K; Earch any 1) d+ s" r, u# b
arch noarch 13 \( d0 {) z, m T* p1 w; l& S' D
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44& w% K. j' }: j0 r- P6 E
#添加 rtos44
) Q( o1 P: P& Oarch rtos44 10/ W4 H2 P% N5 I* u3 k2 [" \
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
/ X3 r$ y1 {$ l9 Sarch arm_cortex-a9 20: n: {: t( Z" Y8 ?; w
0 ^3 a8 V3 M! [! }; U( O" }7 X
+ `$ y n. F* n* w+ J% Y( J- z
9 a$ m' y6 g5 I3 D9 o5 l清理当前目录下释放的文件6 p: G7 K3 J( F5 p& ?1 P% W: ~
rm -rf *.ipk *.gz debian-binary bin etc lib usr
7 p' J; I; ?- w0 y& Z3 C( V. P5 ? t$ R: V) U
R& M5 x7 c" M ?8 H+ ?现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面6 [' [/ p% }, e
如果已经在主系统中下载安装就不用再安装.+ g3 [" ]5 ?2 O' A. G0 N X! I
opkg update6 c1 k, I! h: q+ |5 V( A
opkg install dropbear
9 C' b* C: p/ q0 s修改dropbear的配置文件,位置/etc/config/dropbear.
) u i" a: t; T8 ]( @7 t. s修改端口不与主系统的默认端口冲突,我这里修改为2222端口
+ V. U& L& U2 G* @4 N$ Z* l5 woption Port '2222'
: P' c* D5 ^$ U1 C \2 P* Q. ?" l$ A! }( {0 B! n) e
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
4 r% }& ]' l$ V# s' E9 B% aopkg install luci-base luci-mod-admin-full luci-theme-bootstrap* S4 a( W/ x2 Z) Y" Q( G
8 w! q! J8 h) H6 k b
: @# i# G' [7 C0 _; x
8 S3 I/ w2 x7 D0 B+ l工作告一段落,打包备份一下就是懒人包了& O) Z6 ^0 T& ~! f
登陆主系统( ^! f2 I# n4 h9 [
cd /opt/upt/apps
, ~' q/ [$ ?/ Z5 `+ d' ?mv apps openwrt3 Q' L( E p& N/ d
tar czvf openwrt_R20S35.tar.gz openwrt
( U& h2 U' f' |' N# s8 [/ Z+ Z0 H' `$ i i' m8 W/ U, ~: R
使用tftp传输到电脑保存.使用时登陆主系统,! ~5 i( V* u- \" v2 v+ O
cd /opt/upt/apps" J: g( q+ j K' u! Y- I- M9 y
tftp -gr openwrt_R20S35.tar.gz 电脑IP
1 C. n! \: n! s7 _' K" J0 S. Btar xzvf openwrt_R20S35.tar.gz; N3 j7 }8 i/ q! y
rm openwrt_R20S35.tar.gz
- J8 x1 o7 y0 r备份删除当前的openwrt,我直接删除了
3 G+ j; x$ Y3 e5 S9 G, xrm -rf apps% F) ?" ]& L: O0 J
建立指向openwrt目录的软链接,代替原有的apps目录
- Q# }! y! O) U8 V- c: B/ uln -sf openwrt apps
: Q$ f8 M4 Q# J
" x/ ]3 R" G8 Z0 d$ v一些有用的工具用法后面再追加
" ~( F4 j E5 B# a' y# K$ B7 ^$ b; b
9 A6 L$ z( b- k4 T9 W
! m/ [8 R% ?# g1 g( j2 z3 b7 H# e; a. ~5 L3 F/ }- C( x1 D% b. C9 x' S3 _+ v
q/ \& e" ]7 l1 s* R+ ]8 z/ J% \( B' K' J- R3 d
下面命令备忘待整理( X/ X; |7 ]# K
- V9 E7 Q3 T T$ [" N
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
) G. s# U0 q' z9 J7 L8 N/ V( w; i* i1 laescrypt2 1 hw_ctree.xml tmp
8 N2 S' k/ ]" [$ a7 k: n" cgzip -d hw_ctree.xml
1 p; B9 V4 Y. \+ Xtar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*: H3 w5 ?4 X9 O- C$ c$ i
' s9 h% r2 h$ @' h
: B4 T; J' f: }9 h" _
$ U3 c- I3 V% V) Z' @9 T+ i7 W" ^
9 `9 V P( ?) c0 w0 }0 T4 {5 h6 ^; k E. G
# n1 j- o0 z. ~* H, c* C
7 F4 D6 N. A. D& E) D: [. p& D x9 D
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|