|
|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 ; j: A0 {' B- _3 V
% V8 E. i! i( w前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。
( w. ~ G& X H9 A 注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。) _& o# p. U& ?9 y! l: k8 K2 w
这里先把包放上来。使用方法和他的懒人包一样。4 J; f8 Q& ]1 M0 F$ O2 V
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
" t4 l4 ^! v, Y+ n& c' G# _# b
9 y# v7 `+ `4 O: j! Z/ M6 W# b# d* w& Y ~& D
/ U6 _! Z/ u z- R9 A
/opt/upt/framework下是只读的文件,
! w2 b- K3 t+ B/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
" N- M% S2 ]+ n& y) }所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.: y/ c0 r4 w9 o$ t3 a. x( }, o
, k6 m/ ~* b' A5 `
E9 {! M/ O; O1 q
对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,+ }1 [7 M, U2 C( I8 n
进入openwrt有2种方法
& B! `1 l3 \% L3 F6 ?注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户.& Z, g9 s1 m* c$ `% w$ q& x
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.* w! ?' A7 |5 V
执行前后可以通过whoami命令来得知当前是什么用户权限." _ N0 A1 A6 J! v D% h$ ^
6 D/ J6 E6 S4 V. {! P3 m K7 \# ~' \+ n6 {" |3 h, Z
1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
9 A1 Y6 L4 L6 ~6 R: I/ W# d可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行& {$ m3 N! E+ p, Q1 _- m9 \
4 K" b( x% B4 u' M; k6 {( n. P- x. R; X" F2 S! U# ?
实际测试
/ l6 y. ?% f# W+ I. H创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
; _6 ?* u+ h4 ` i4 k( I- t重启光猫,可以由telnet登陆光猫2121端口.
/ F: P }" w* D3 ~9 a2 d如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
. V1 _, h. a& W5 q" ~0 o9 ?+ b( l建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码
; b" F; r, G- F4 e# @2 t6 @0 S不然登陆上去不需要密码- o0 Z4 j( D1 C! a/ {- a
具体方法可以看后面.
, ?# j. ~0 V* p5 ^! Y) f' Q+ h( n" R: [# I$ ]
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,7 J0 Q( a0 Q& j
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,6 k1 L# b1 f4 r, G) C6 D
输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell6 \( j1 t. }5 }; E0 Z3 z
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息." S |) G7 T( Y) n
察看内核信息
9 c$ o8 f0 \) U& kuname -a6 Y2 y: ~5 a b# a
察看openwrt版本
( f0 x3 K& \+ Q8 ]* \2 U5 Ecat openwrt_release
% u' N9 a! w% h) Y/ }3 p察看cpu信息
+ z! `1 Z2 |; m8 }cat /proc/cpuinfo
( L5 _ e: z7 @- ?
! q. ^6 P1 R }& z% b. f* v
5 g5 S- S4 u; X4 O2 u `4 B据说电信内置opkg程序的参数被改过,还没有找到用法.
) D8 L/ s5 T; Q我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换
% n3 _# _$ X- v" Yopenwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.. [0 A# m i& h
此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.
5 H7 y" a1 U/ @9 C: b" Z下面是在openwrt中操作+ ^$ n E: b4 r' d4 ]- j# D
进入tmp目录
/ N7 ]5 r3 b, l- w( I, Vcd /tmp
! _6 N. x# z7 F5 w! S+ l. q, ]下载opkg包0 ~7 P# I0 Z8 V* \
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk
2 M/ |9 {; X/ l0 @, G解压2次文件包得到opkg可执行文件0 |; h) v* F- Y- p4 v1 S# Z
tar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
* ^ G9 `( [3 R V! b( B0 ~tar zxvf data.tar.gz7 }& R3 J1 U4 v2 a j& F$ {
移动当前目录解压出的opkg到系统的bin目录替换opkg程序& v' I/ e' i5 _4 v
mv bin/opkg /bin/ L/ C1 G/ p. I5 r
+ S8 z5 J) e5 N& J! K6 s- S同样补上opkg运行需要的缺失的libgcc库文件
% w2 P& y# `+ p8 x# b" r7 d! Zwget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk( {& F' L& r! V7 R
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
X/ u2 F7 J. ~. E6 xtar zxvf data.tar.gz
, h2 [3 C+ K/ @( H1 nmv lib/libgcc* /lib
* u% M9 s$ C! F8 A2 \/ C
/ i" y" v2 Z# ]6 K, q7 `' |然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,
7 i" @- s" g% j/ r9 X顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
5 h6 a; e3 g. ^! L
; [- B# f2 _4 r7 v2 V4 \. ?还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因( y. q5 s' I7 f$ {
: W- N$ s/ [6 H& G, o! M5 C' ~, N9 W2 L
tftp用法
, ?. |& ~- k4 n, h上传openwrt的本地文件到电脑的tftp服务器
8 O" M ~" B# s9 h. a2 Y2 H3 mtftp -pl 文件名 电脑的IP地址: p, i% \1 W" F5 r% ]
下载电脑tftp服务器的文件到openwrt
0 z M$ c3 x$ N4 p# B0 ]tftp -gr 文件名 电脑的IP地址
4 c7 y: i, ~) V: ? ]* X: `" _- ~2 P. H
tar用法5 I) t0 ~+ j1 w5 f) C* @. Z9 p
打包成tar.gz文件
1 G( ^! R* D7 K1 c9 Wtar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式
; n: S/ q& s- _! R! N! u解压1 v: D. G1 w4 ]5 R3 Q; R
tar xzvf 要解压打包压缩文件到当前目录
, J6 f5 Q3 P; V
% W# E5 _, u* v" W% r; I, c
4 Z2 G" n! O3 V: m' X( |0 {) \" P! [# G+ ]- e% y( N
% i4 a# \0 W3 h zdistfeeds.conf是软件源地址.
1 _: W9 O9 V( T. u6 T! f# G$ L; x( mopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
2 d: t7 g9 j. p8 Y# g7 V2 P4 h文件内容如下$ U3 A$ h* K6 Z( w9 K" M0 J
dest root /
5 W+ l, F& \+ qdest ram /tmp) U+ y# j( @& w
lists_dir ext /var/opkg-lists6 `3 B" R8 j7 _! L0 D6 W, `0 `
option overlay_root /overlay, i, ~6 |+ ]* n' M) b% v$ V" i" Z
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查; |' j# r5 k' B
#option check_signature 18 o: Y+ {- P) m- w& p/ T6 Q& Z9 E7 ?
#不依赖架构的软件5 M0 {! {8 e" k2 Y9 k0 K, t6 F
arch all 1
" V) R9 _' {. q7 s2 ^arch any 1( J! N$ A* |$ k& b4 j
arch noarch 1
) |; [( I- {' I9 k( s, X#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos44
% c8 `: C1 o. \# V- P6 [( ?#添加 rtos441 e# n7 \8 l9 P$ G L% W
arch rtos44 10. I8 \5 M9 ?9 c7 r0 t) r0 A
#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9
6 V+ {8 c& Y- Y5 O3 J* p9 Oarch arm_cortex-a9 20
- h$ J1 F0 i. p" E' ^# o- R0 x% M0 ~
$ T/ G6 u& T6 _
, m& k( L7 n% |+ P3 s( w: z8 D& }$ c+ F% U5 q
清理当前目录下释放的文件
. z) w9 ?/ j. J. R! C0 v$ W4 u/ t! Irm -rf *.ipk *.gz debian-binary bin etc lib usr% K. a1 s7 D8 j' r2 ?9 C; t; F @
& E, m3 s! v% P! x8 I0 l
' r0 j8 L* y# z e' r! z现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面8 x1 v/ y( O" h K+ K/ U
如果已经在主系统中下载安装就不用再安装.2 Z0 |% R) K ]9 i$ g
opkg update; W+ E. T5 |, z, Y' J. {
opkg install dropbear
/ s( A) y8 O( i修改dropbear的配置文件,位置/etc/config/dropbear.$ D( Z5 o# B( B3 u5 A
修改端口不与主系统的默认端口冲突,我这里修改为2222端口
. d% k8 `% A# d6 ]6 C$ }0 @& coption Port '2222'2 f" J& t4 Z' z9 }5 l3 `3 D& u
o0 _( u) _4 }: D: z. G
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面
: C4 Z) E7 G0 J1 C+ t4 x; W% w1 jopkg install luci-base luci-mod-admin-full luci-theme-bootstrap
0 s5 R, @' k8 P7 `" i2 ~" r& W) t0 ?! D" p
( G3 N- B) J% _, \5 G: t! B
$ A7 h2 D$ R& |" | h* {# I* x) F工作告一段落,打包备份一下就是懒人包了 w1 j: z$ J( f7 W/ D% C. w
登陆主系统
: L5 n8 D) w% C9 wcd /opt/upt/apps/ m0 R' G4 |% O
mv apps openwrt2 N6 T) _1 V& Q9 T7 N; B
tar czvf openwrt_R20S35.tar.gz openwrt; [! p9 z: Z! @6 R( f' R
9 L# {" o+ R$ }- @+ u' j% R使用tftp传输到电脑保存.使用时登陆主系统,5 i3 a# Q3 c- Q. a
cd /opt/upt/apps
1 q4 P; i5 @! B! c! O% G; @tftp -gr openwrt_R20S35.tar.gz 电脑IP4 Z2 b, a _2 |' d" G
tar xzvf openwrt_R20S35.tar.gz; B) u) b. `4 `2 |% O+ `, V& Z* R
rm openwrt_R20S35.tar.gz& Y5 Y/ A- A: Y. ?/ L1 f- K
备份删除当前的openwrt,我直接删除了- Y3 I0 Q7 U$ }" M- D
rm -rf apps* q" g0 O5 Q# v2 ~
建立指向openwrt目录的软链接,代替原有的apps目录# U0 f1 H# q: v3 J6 Z) u
ln -sf openwrt apps " F6 Q$ g* _6 b- U$ f5 X! e) L
0 v3 O! b% j7 p# a( j( M
一些有用的工具用法后面再追加0 w3 L+ L# Y0 _+ k+ |" A
8 D3 X' n9 R& E! s2 I
" W; F0 x0 C5 C" E, N
( V+ k+ e9 d8 `5 s6 l5 c& h+ P, p8 m: B$ z- O S( N
# r$ B# ? |$ }& ]* y* C2 g) I, ^. R* W% W* o
下面命令备忘待整理& t7 w# g. X, v/ l1 J8 H
; n* O. y$ v$ r( K
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
4 Y4 {1 _$ u. F- g3 v- ^) Paescrypt2 1 hw_ctree.xml tmp
; R6 g" S- B ~+ Bgzip -d hw_ctree.xml
$ }4 X' k: u+ D" Q9 s; o3 U% [tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*8 @! }: F$ ^( I8 A
; R' A7 g8 i% M
/ D0 q! h$ b$ d% W/ ^5 Q
3 w, m( |5 F; E4 J) J! W4 V
# j) T8 z# H, V2 ]
D3 L! `) S8 W/ F; w, U! G8 v, D. }& |0 b+ f
6 N. t! V4 d" x$ W6 v
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|