找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 27713|回复: 42

[其他] HS8145X6 的 openwrt 17.01.7懒人版

[复制链接]
发表于 2022-4-13 00:16:13 | 显示全部楼层 |阅读模式
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 4 p1 k, z2 S" ~0 k$ a2 n

9 [0 R) _, @% o: D( ~7 K( n前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
' c2 T9 }$ S& V! s; D' j 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。
) y" E) ~) E8 `1 |1 n  ~这里先把包放上来。使用方法和他的懒人包一样。) n- P  }, h% |* b! k5 p3 x
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,) I& r& u% ?# K

3 l& l" ^5 O! l, v) F6 p
$ y2 z" I$ C( O6 Q, E: c7 Z2 y3 F$ B( H2 ^! H. F- w
/opt/upt/framework下是只读的文件,$ E+ x% Z0 V- `% B
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
* }0 ]" ~% `* _& o5 {所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.
. p6 \2 i6 K5 i7 f6 n% X! a/ o0 P) l# t" u4 K. \* `

( p4 S  ?2 x& B# r  Q5 w对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
% o, s- [% i2 T) O; d5 N2 \进入openwrt有2种方法$ A/ z. P: H* W* k8 K
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.
2 Y1 P2 M1 k9 Q有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
6 [3 |" U3 t% A6 D* W- n/ y执行前后可以通过whoami命令来得知当前是什么用户权限.
5 K$ X4 |9 Q3 x: h  y3 y( {# w3 b, D- |$ r2 u' @0 C( ?7 |- b0 z
5 E: a) ^* _' K. T
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
3 m! {' Q# q9 h可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行
: U: ^6 a$ M- o. P' {
& O5 V) x3 L9 T( d- X% w/ t, R' y! ?
实际测试
6 H4 \: e9 x- X' K1 T8 v3 ]' \创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
# ^! _% e1 t: e6 ~4 V2 H重启光猫,可以由telnet登陆光猫2121端口.  E( W8 r2 ]* W0 ~
如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.- s& c% e/ W* T5 n. V
建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
( P9 W4 S, l# p不然登陆上去不需要密码! |7 D+ o/ i/ |& ]; \0 `& ?
具体方法可以看后面.
! O6 ^1 @9 s: M
" |/ h5 b: k) g! _2 w2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,# S; c- F# ^1 W2 S2 i
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
9 `% @: r/ C, l6 Z& h/ O输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell3 g. H3 B7 u# \; C+ h& ?1 [3 {
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.8 S7 j/ o( O9 Y/ F0 @* B% s! ^
察看内核信息
% M' {# |1 _( z% Q$ Quname -a1 G/ b' ?9 u. v
察看openwrt版本+ H+ r2 U+ H3 B) L: N% w
cat openwrt_release
; ]! ?8 D3 s7 U- y察看cpu信息6 l- r( m% E- Z1 E" d: m
cat /proc/cpuinfo
/ Q# z) u; H, h. {! f/ [2 f
, m3 c0 M, v: t' a, X( `$ e* `/ r0 T, h3 G5 O
据说电信内置opkg程序的参数被改过,还没有找到用法.
2 p. }3 L" r# y我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
0 [# l& y# D. u" M9 {openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp./ k& Q5 J& [7 {
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.) q8 Y( ?9 }: M1 k: h& ^( m
下面是在openwrt中操作; F, I: M2 F3 W; t
进入tmp目录
; z( z- o. n6 `  d, }+ L% Mcd /tmp1 y7 g, O9 {' x4 z* M/ z6 N: V) z
下载opkg包5 `/ t8 t- Y) n/ ^
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
, y& f9 p# E1 k$ b( ^7 f解压2次文件包得到opkg可执行文件
# A( j# w0 q& P: X5 |- a( R7 vtar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
$ w4 V5 w& U6 X1 l# }tar zxvf data.tar.gz
2 n3 x) s" M/ l) J( I移动当前目录解压出的opkg到系统的bin目录替换opkg程序
5 _9 h- Y& h, ^mv bin/opkg /bin
' }* H3 E4 m$ Y+ ?& V. E. S3 Q9 F9 K
同样补上opkg运行需要的缺失的libgcc库文件
$ f9 d# F3 V% r9 N, swget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
4 ^  a; E, G" C$ T; Star zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
! x+ H( A, H2 A7 y! x! ?. ptar zxvf data.tar.gz9 Z8 p2 o% ?* _% C, |* ~( _
mv lib/libgcc* /lib- h7 R% J8 N; ^1 z

( W0 {9 ]6 o5 C  S然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
- v+ F4 m7 ~; P1 @6 }6 d顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
) q  Y2 a" j3 H+ S6 i' ~+ o0 g
6 G7 ?' _! R/ o5 {6 a# M! [9 O还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因; F1 g& i% C7 r
. T3 j6 ^$ i0 c8 d9 G6 M5 ]! }2 w5 R
& Z9 {* F& {  F  I8 @. T" |6 t: R8 i
tftp用法$ {4 C" |( h2 L
上传openwrt的本地文件到电脑的tftp服务器
# m8 H" _% Q& o$ {5 g2 H& dtftp -pl 文件名  电脑的IP地址
" \. J# s8 a0 O2 A2 g. u5 H下载电脑tftp服务器的文件到openwrt3 \0 `" I" ]# b( `% C# F# H# Z9 j
tftp -gr 文件名  电脑的IP地址
5 ]& S  @) U/ ?; c+ Z8 l! f# o  k, C" e" j; R9 j0 S
tar用法
1 x* g& E  v  F7 J打包成tar.gz文件2 p0 E% ]1 O% u
tar  cvzf 文件名.tar.gz  要打包目录并压缩为gzip格式5 c5 c! B$ e6 {
解压
+ ]7 S1 |  x: Htar  xzvf  要解压打包压缩文件到当前目录   
5 R0 V0 t/ V0 `. p7 U6 J3 f, C) k3 d% B- C6 V9 L
! o* T9 E" u# a' P  C; I8 N

$ t5 ?3 a3 k% Z. _; H1 M' O
5 ?8 b  G- F% }+ r" Ddistfeeds.conf是软件源地址.
( d4 l6 |; l1 Q/ T: [opkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
) @$ _* A4 ~2 E4 r: e7 n! J文件内容如下
1 l8 v2 a/ B' z; d( sdest root /4 X0 b, Z* G4 L4 _. x9 J+ k
dest ram /tmp9 P- R1 P8 S; N5 u; M$ {
lists_dir ext /var/opkg-lists1 W2 |+ S  G2 t
option overlay_root /overlay
7 [" y. Y5 i& [#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
* A. d0 M, S0 A) a* R% S" J7 w#option check_signature 1
1 Z+ D( n* Z- P; Q$ u" o) u#不依赖架构的软件
: E# @6 i. D: larch all 13 O4 L7 t' L( Q. r
arch any 1) [/ ~; l- Y# ]5 A& }  p
arch noarch 1. ?0 |8 z5 A& l- H1 }
#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44  R5 j4 d/ F% L0 Z6 y, l
#添加 rtos44
+ N1 i: ]! q6 l6 D3 Tarch rtos44 109 f" j$ Z4 m& k  D) y; k# T. g( w
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
# v! m( w9 ^* g/ D; U. C+ darch arm_cortex-a9 20) [( N4 O3 j' w) H( Z

( P! c, D. g) n% e% n7 y( g7 G$ G' q- k# P, Y9 D

$ L( Z% @' T6 b$ M) |清理当前目录下释放的文件
2 N' A, A; z5 A6 n( trm -rf *.ipk  *.gz  debian-binary bin etc lib usr
) }" d# m2 ]7 s& |1 x, H, }: y, I! S' r1 ~  c

, l. u, O% y0 c% f" m: l现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面* r$ a* j, S, y: N
如果已经在主系统中下载安装就不用再安装., ^9 W' k8 c  m. ?2 @
opkg update9 c$ c/ _% n; x+ @& H2 A
opkg install dropbear
0 R$ K: g, d9 p9 \0 m修改dropbear的配置文件,位置/etc/config/dropbear.
4 r$ w& x: n' j! [1 O/ r修改端口不与主系统的默认端口冲突,我这里修改为2222端口9 d( Z+ Z6 k9 ~
option Port         '2222'3 j3 g" [( q/ n8 r  m! f6 e
6 v8 \7 j7 h% Q; u/ U6 c; G
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面* D% g$ l. `  j5 t
opkg install luci-base luci-mod-admin-full  luci-theme-bootstrap  x. U* ?( _( L: t! D9 p4 m

  N2 ]: ^- e6 P- o7 q: c: ]5 G4 `/ q

- q) X, @8 A" j8 j; r工作告一段落,打包备份一下就是懒人包了8 v! K! a0 e' H- g% ^6 F2 D
登陆主系统
7 K; A4 E: a( D) Z4 X3 [  Icd /opt/upt/apps% E2 P  O2 \( {. V
mv apps  openwrt
0 }+ A. t8 o4 ^6 otar czvf openwrt_R20S35.tar.gz  openwrt9 O5 h8 _; h# K) |% {4 t
' E# `. e* `% t% s
使用tftp传输到电脑保存.使用时登陆主系统,
. j' [+ o# Z4 Y2 X+ e1 V8 d% [cd /opt/upt/apps
& K( l. N/ }1 V8 _tftp -gr  openwrt_R20S35.tar.gz  电脑IP' Z- L+ w+ U1 V: @& v" b* G
tar xzvf openwrt_R20S35.tar.gz
, S5 L1 S6 X4 j9 nrm openwrt_R20S35.tar.gz4 T6 I% O- I; O! m
备份删除当前的openwrt,我直接删除了
1 X0 K: X$ Y, m$ }3 x) x% ]rm -rf apps
9 [- `5 |4 S; I建立指向openwrt目录的软链接,代替原有的apps目录5 d7 |- N: X) p; \: o8 O- Y: [
ln -sf openwrt apps 3 {5 n$ [& }% t: X  B4 {1 Z

2 e# E8 x# p8 D2 z0 t5 l一些有用的工具用法后面再追加
$ }7 h) t% }2 e6 c5 G) P. y
% P3 X2 W" \* z) i8 C. M
' ?0 B, ~- u9 c' j# P8 o, z" ?: }9 M0 k
/ J# e8 X- q$ l! S" q' j2 g! O
. S$ v8 p8 h5 \' ~) h
7 H" [0 @- [& V8 Q; E$ w
下面命令备忘待整理; d4 [* \7 {$ L% Y2 v/ N
% y8 e/ P1 i( L- {5 ]# u
tar czf aescrypt2.tgz     /lib/libhw_ssp_basic.so   /lib/libclang_rt.builtins_s.so  /bin/aescrypt2  /etc/wap/aes_string
) B- ^" ]7 e& e) Raescrypt2 1  hw_ctree.xml  tmp
+ L, V2 K2 K& ^+ c' Agzip -d  hw_ctree.xml
9 `* g# @5 q- J; D4 ntar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
0 j; r  E9 N; p8 Q

  H: |2 R, x3 r( x% Q8 G- e; e* [; U7 i

, b" u) i( C* C6 ?2 a( m: G
4 D7 N1 q* N& S9 \
& ]6 h8 n7 B: O7 ~" Z9 @5 T4 W+ Z. S* d- u$ Q

/ D2 ^' r3 q" i! D3 X6 C! k& n

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2022-4-13 11:32:29 | 显示全部楼层
虽然我不懂,但觉得好历害,支持。并希望能进一步优化能大众通俗简单易用版。
发表于 2022-4-13 21:04:24 | 显示全部楼层
楼主厉害,深入浅出的讲解了制作方法
发表于 2022-4-13 23:11:37 | 显示全部楼层
顶,耐心超好。送一个原厂opkg兼容的法子:
: w5 u& A1 `0 M) [% e# G* A1、原厂opkg改名为ipkg; Q- `8 y1 m# G
2、/bin下新建一个shell脚本,命名为opkg,权限755,内容如下7 U) c! U/ n% O
#!/bin/sh
1 u9 {2 z) S: i1 R
8 D- |2 J; q+ _6 y& [+ ~0 Lif [ `echo $0 | sed -En '/\/?opkg$/p'` ]; then
$ S8 Q5 @7 ]+ s0 S+ c  opkg=`echo $0 | sed 's/opkg/ipkg/'`2 O6 F/ n6 i9 H2 P
  opkg_para=`echo $* | sed -e 's/^install/aW5zdGFsbA==/' -e 's/^remove/cmVtb3Zl/' -e 's/^upgrade/dXBncmFkZQ==/'`
# y: M* ~0 a7 aelse  d1 M" o" k- D( `; f
  opkg=$0
+ p6 f( K# u- G% \0 q$ C  opkg_para=$*5 L$ ^. Q" o# `2 m" k7 G) z0 K( x
fi
8 [$ R6 Z% n3 w8 R/ v. j# Y+ Z$ J: X  M$ U
$opkg $opkg_para
 楼主| 发表于 2022-4-14 13:52:36 | 显示全部楼层
张小牛 发表于 2022-4-13 23:11" Y3 B9 D& n$ I  g
顶,耐心超好。送一个原厂opkg兼容的法子:% W# @2 D  T1 E% \: A% ~- f
1、原厂opkg改名为ipkg
& O9 p: g) j+ v* |. v2、/bin下新建一个shell脚本,命名为opk ...

# j2 f. r) ^9 k2 @4 ]( y谢谢,请问这个脚本怎么用的?4 k$ V$ G3 e* r5 V. I) a
有点看不懂,是可以根据电信原厂插件安装包的特征来自动调用原厂安装程序安装吗?0 z) j$ P- e  x/ d4 A
以前没有用到带电信插件平台的猫.
3 o1 x+ k* A9 Y记得在光猫的电信界面访问获取应用连接不上. 网上说电信的插件应用平台已经关了.$ G# t$ G7 u& @& q0 P
是不是真的?电信的应用包现在还有渠道可以获取吗?
发表于 2022-4-14 15:01:39 | 显示全部楼层
ufo1cn 发表于 2022-4-14 13:52
/ b% p; [& Z0 Q: v( X% q. k谢谢,请问这个脚本怎么用的?
0 D1 i$ m& e/ `有点看不懂,是可以根据电信原厂插件安装包的特征来自动调用原厂安装程序安装 ...

& A6 h8 H. q0 R照我的方法做就行,这样,x6的opkg既保留了原来的功能,又能安装、卸载、升级软件。电信插件平台应该没关,只是不是distfeeds.conf里面的地址,因为我发现它下载安装过比光猫自己的插件更新的版本。
 楼主| 发表于 2022-4-14 16:16:23 | 显示全部楼层
张小牛 发表于 2022-4-14 15:01
) W7 K1 E8 R, M0 n% j3 _% b照我的方法做就行,这样,x6的opkg既保留了原来的功能,又能安装、卸载、升级软件。电信插件平台应该没关 ...
8 R( i, H5 a8 R  W( N. q
我系统里面opkg文件是在/bin目录,已经用下载的opkg替换过,' `2 C# B& ^: d4 U
请问是要从framework复制原厂的opkg改名后放到/opkg/ipkg这里吗,! u* Z& r7 k" P$ o2 K* F8 M  d1 D
软件源下载opkg和脚本重名了.是要把脚本命名为opkg.sh还是说把下载的opkg放其他目录?
发表于 2022-4-14 18:04:08 | 显示全部楼层
ufo1cn 发表于 2022-4-14 16:16
3 ~2 b2 d* T: [: k1 ]% H我系统里面opkg文件是在/bin目录,已经用下载的opkg替换过,( B& J% [3 j$ D) L2 Z# s- y
请问是要从framework复制原厂的opkg改名后放到 ...
$ y  ]' k: M8 ~* g
下载的另外改个名字,放别的地方也行。脚本就是用来做兼容处理的,不叫opkg就失去意义了。
发表于 2022-4-15 12:59:49 | 显示全部楼层
光猫变成路由器?
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2026-3-2 00:17 , Processed in 0.027154 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表