|
本帖最后由 ufo1cn 于 2022-4-13 11:48 编辑 4 g d1 y6 V t) B( G
0 Z4 J( K* w T% t- u+ T% O& J [前面看了 唤醒华为智能网关光猫隐藏的小宇宙:OpenWRT这个贴,想把我的hs8145x6电信版也装上普通的Luci页面和openwrt包。但是由于与贴主的机器不一样,opkg一直没办法正常使用。 感谢HN8145X6安装虚拟机openwrt 21.02.2以及17.01.7懒人版的贴主,下载他的懒人包也可以运行,但是由于和他的系统不一致,运行主系统复制过来的程序会有Error relocating。经过他的指点,而且经过分析他的17.01.7包里面的opkg使用的distfeeds.conf和opkg.conf,正确把我的光猫也装上了能用的软件源。, a0 A3 ^+ n7 U
注意,我的系统版本是V5.20.C00S035, 不同的版本请参照他的贴的注意事项,如变砖后果自负。( d! ]! y: z Y1 Z$ m
这里先把包放上来。使用方法和他的懒人包一样。! a* Q0 K3 Y' g* D
后面有空这里会编辑追加下产生这个包的一些步骤和经验,以便作为备忘和便于抛砖引玉大家举一反三生成自己的包,
$ K- L' k, p+ h
' G5 r7 @: {7 s" Y8 G4 x+ e; v% {4 V. a4 H5 x& V [
. ]6 y+ X' t- j" R! O) `# j
/opt/upt/framework下是只读的文件,- j8 P2 g- t3 k. x+ M
/opt/upt/apps/apps这个目录存放着openwrt启动时会覆盖到openwrt根目录的文件.
3 i4 p8 m/ R+ K所以这里的子目录可以创建一些启动文件来让openwrt启动时自动执行一些程序或脚本.3 X4 e0 o: D' o8 y
5 n$ m) t/ }7 R1 v! G* E
9 {1 D& f# l) c* s对于我的光猫来说,通过telnet或或者ssh登陆光猫主系统后,
4 N1 q1 M& q4 t5 j" k进入openwrt有2种方法! {3 t+ K/ ?; c+ @9 }+ K+ V& a
注意:登陆光猫输入su,shell进入主系统shell后,权限并不是root,需要提升权限到root,再次输入su进入root用户." |7 O! [* L8 B# V
有些操作需要root用户,复制到openwrt的文件如果不用root用户复制或创建,可能运行由于权限不够就会有问题.
( M h( j; y9 Z Q" i6 q Z执行前后可以通过whoami命令来得知当前是什么用户权限.
$ n6 W& E1 _/ ~. V; ?- e$ J2 c
" y& a5 E& ~6 p4 E& p* j
( Q3 @, g! l- y6 {9 S! }2 p0 i/ }1:找到正确版本架构的dropbear之类SSH或telnet软件包解包放入/opt/upt/apps/apps里面,并手动创建自启动链接
- r' B2 e* W6 m: r- T7 s$ Y可以直接在openwrt的启动脚本加入openwrt已经有的telnet或ssh服务器程序自动执行' \/ h ~7 K; S3 ?! [/ z/ Q
( }* O# b% T7 U* D u! d
6 p9 [# ^4 U' k: k/ b Y! |
实际测试
P# c( z: Z7 E7 X% K1 @+ w" |1 P创建/opt/upt/apps/apps/etc/rc.local ,加入/usr/sbin/telnetd -p 2121 -F -l /bin/ash &
0 M0 i- H- v: y/ m( i+ C- q$ U重启光猫,可以由telnet登陆光猫2121端口.
( V: {- G" A. l% _2 c% ^如果放入dropbear后通过ssh登陆,注意关掉主光猫的默认ssh端口或修改dropbear的配置,不要和主光猫ssh端口冲突.
! T8 T0 Z! R7 ? l建立并修改 /opt/upt/apps/apps/etc/shadow,把里面root的数据改成 /etc/shadow的root密码, M, |; \! G4 G* _. j) X
不然登陆上去不需要密码
, S- k3 H6 M4 f4 h0 `具体方法可以看后面.
# B6 S. _! v4 e3 ?7 q- a3 e# c' r4 |( {# t& E
2:通过光猫自带的saf管理程序进入,我的saf管理程序是saf-huawei,7 v. g$ U$ x8 N5 V
主系统下输入saf-huawei可以找到saf-huawei的一些命令参数,
/ O, [) G3 A* r4 g输入saf-huawei console回车进入openwrt的控制台.此时没有提示,密码是upt,直接输入密码回车再回车几次可以进入openwrt的shell. O1 g: T L% Z! y( d
可以用以下命令在主系统和openwrt察看一些信息以便提供网络搜索的信息.5 M# z+ L7 }9 u$ e- u" ~
察看内核信息3 E! r7 M0 S5 I: s. [& W
uname -a
/ ^3 L+ F9 N; {1 n& M" S. r* ^察看openwrt版本- _4 W0 Y& \, c* T( n% U' i$ h) N, t
cat openwrt_release
: {0 \9 _1 a, k+ j1 y察看cpu信息& C) ]$ E0 @' [* j) j, i
cat /proc/cpuinfo
1 [$ B3 U g# k* D) U5 i% r' K3 G' T. `+ P. _
I: G! j& g N# \. t. p% F/ m据说电信内置opkg程序的参数被改过,还没有找到用法.; c% u1 f% i2 }0 r% A; L8 p( N s
我直接用张小牛的懒人包opkg软件源的地址(已经验证过它的懒人包如果不运行光猫主系统复制过来的命令能用)来下载opkg替换, D" ^5 D1 S7 f: g" |% P Q
openwrt中可以访问主系统的一些共享目录.比如主系统的/tmp在openwrt中是/e8ctmp.
+ H; S" `' |) H K此时通过wget命令下载下面地址的opkg包解压并替换原有的opkg,可以在主系统也可以在openwrt中下载并替换.3 a; ^( G6 t m2 d7 o
下面是在openwrt中操作
8 I0 c% |- g" ~7 c1 k5 z进入tmp目录
* Q7 a9 ]2 a W* T9 `+ R2 Z& _+ w0 ^cd /tmp1 ?: P/ u5 o5 O# Z% Q
下载opkg包, E3 E. w: s' r4 U$ M
wget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk/ U; k2 `9 V/ [0 n+ a4 r; `
解压2次文件包得到opkg可执行文件
+ r, g, C @+ u! \) ]$ U" ]$ Atar zxvf opkg_2019-01-18-7708a01a-1_arm_cortex-a9.ipk
! b& q5 a0 l6 ctar zxvf data.tar.gz
" P; K- K z" ^, { p+ g移动当前目录解压出的opkg到系统的bin目录替换opkg程序
2 w- z$ S# A; @) v* emv bin/opkg /bin i+ a3 q, B& t3 l" _: d- u3 i
" N+ m2 j' R" W6 O3 M* _ t" y: q9 H
同样补上opkg运行需要的缺失的libgcc库文件
3 Z7 t; w$ p: P; |# P, s- d: awget -c http://mirrors.aliyun.com/openwr ... 1_arm_cortex-a9.ipk" u9 f% r* e. R- I0 u6 l9 n, ~$ z( Z
tar zxvf libgcc_5.4.0-1_arm_cortex-a9.ipk
8 V. ~# S' P# g9 z& n2 xtar zxvf data.tar.gz) I3 D. Z% Q8 ^* E5 o" P/ A9 _
mv lib/libgcc* /lib5 _7 }% m t& ^3 D8 u7 Q
; \2 K7 o) t$ b+ Z6 N
然后修改opkg的配置文件opkg.conf和distfeeds.conf,可以vi直接修改,也可以通过tftp传回电脑修改再传回,. b# T# x) u2 u! t7 N
顺便提醒有些文件包不能在windows解压再传到openwrt,需要直接在openwrt解压,才可以保留权限和文件链接,比如我的懒入包
; z6 Y2 v b* U. }- r4 L# R) E. b% m8 C. X! ~, K4 ?: @$ a* r
还可以直接把整个目录打包后直接通过tftp传输到电脑解压察看分析,解压会有一些报错,这是因为linux的文件系统权限不一致的原因 a3 Q) O$ D; }, A
9 t+ _: `- @7 n+ t) T# `/ u0 O9 [( _: u5 |5 d
tftp用法
+ ]- F8 C2 F: K5 \ ~: d U上传openwrt的本地文件到电脑的tftp服务器
\! d- d8 d: R/ Vtftp -pl 文件名 电脑的IP地址2 r/ n9 _8 b8 T+ {
下载电脑tftp服务器的文件到openwrt8 K% Y- h. h2 v1 h
tftp -gr 文件名 电脑的IP地址7 I+ P. j9 B6 b, m D& Y* P
/ G9 ?( M" w5 t/ N
tar用法/ x- c( q' b; w* C! O/ ^3 [
打包成tar.gz文件
1 n. k" p' c/ D; G6 a; x$ m. W2 ?tar cvzf 文件名.tar.gz 要打包目录并压缩为gzip格式2 ?) X( `; R! _
解压
: T# U( x6 r: y7 J% D! N/ atar xzvf 要解压打包压缩文件到当前目录
3 G9 j* \, L4 ~7 \5 _2 v* W% l$ y& ~# J& d6 l% m
8 ?' {9 _5 w) f% ]/ x+ h7 N$ I
* I4 A4 ]. M u, t9 Z
9 p- E$ W" `& K6 I8 f4 edistfeeds.conf是软件源地址.
/ [+ ?& T' U( ~- X1 N: [1 Bopkg.conf是opkg的其他一些配置,主要添加修改一些架构信息以便让opkg识别
0 Y: W* R: [/ c) W Q+ m0 k文件内容如下: h) P2 o5 z: C2 c
dest root /
, t- }- }# S0 n1 p. tdest ram /tmp' I% S' E) P8 }# g6 f
lists_dir ext /var/opkg-lists
?# k& j) s/ l& r/ H! K/ r8 k5 x4 roption overlay_root /overlay& y/ T0 X; U# Y- x! `/ h2 ~9 d
#因为软件源并不与当前的编译的openwrt百分百一致.注释掉签名检查
- x1 L) q- o2 e% m#option check_signature 1; `; y2 Z }$ z6 H- P$ W
#不依赖架构的软件
/ z! Q5 M# l' J" V; uarch all 1
3 W- W t" U' V& Aarch any 1
. X3 e! K0 l! ]3 I9 j! @arch noarch 1
; T# a% }9 d' n6 p! g#通过察看openwrt自带的电信插件的软件包,发现架构信息是rtos449 Y0 @+ i. {# T6 k m! A/ L
#添加 rtos44. ?1 |3 f/ i2 p$ W4 y& H
arch rtos44 10
0 W( X2 O$ T) ^- Y#由于光猫cpu架构是arm cortex a9,添加软件源的cpu架构cortex a9& S( ~, H# I6 ^8 E, _5 ^! c1 k
arch arm_cortex-a9 20( j9 q% n& F* y/ @6 N
9 v6 i6 B5 a) b/ F8 A4 _- R
3 b2 }3 G' M' D$ S1 k
( [+ d- d/ k9 t& d8 ~" l清理当前目录下释放的文件
# u4 e0 H. u0 T: hrm -rf *.ipk *.gz debian-binary bin etc lib usr/ o, |, W) v/ z* j1 L" ~
! @: n# [1 C" B
: D6 p! x' E) L( m4 q1 W
现在opkg能用了,直接通过opkg可以安装dropbear和通常的luci界面$ M. r- D% t5 g5 k2 b! O/ ]
如果已经在主系统中下载安装就不用再安装.3 S& T8 }$ S' X- `" W1 _7 B7 \
opkg update
) q6 c8 G" y( m# Ropkg install dropbear
8 Y# `; p! ` r! y& M. w6 U6 v修改dropbear的配置文件,位置/etc/config/dropbear.
6 m8 L3 q& B, y$ K9 h修改端口不与主系统的默认端口冲突,我这里修改为2222端口
6 K$ C& o, A, z' p) Doption Port '2222' @) ]/ C$ K( }" s
: D8 @% f' I/ ]4 M' ^4 ^: D
再次安装luci一些包后,原有的电信页面就会变成普通的luci页面9 g* K+ M) f9 U7 y n
opkg install luci-base luci-mod-admin-full luci-theme-bootstrap1 o% R4 w& H+ W6 A- v; x( C
& {* y t/ d* B4 r
( M) |% j: a7 g# V3 O2 A/ V/ e0 z6 r
工作告一段落,打包备份一下就是懒人包了! r3 _/ q$ N- L$ r+ E/ h
登陆主系统7 c- d' ^/ p+ ?5 @' l
cd /opt/upt/apps: h1 U% t! k) N/ J. D
mv apps openwrt
& C) c- b' t% k, {4 wtar czvf openwrt_R20S35.tar.gz openwrt6 B0 X( k# C: e4 Q% Y2 }
( }- _* ^- j+ f8 z5 i使用tftp传输到电脑保存.使用时登陆主系统,* G( u$ x+ E3 g, c3 `: k5 t
cd /opt/upt/apps0 O8 b! u, I9 S/ W
tftp -gr openwrt_R20S35.tar.gz 电脑IP
% J4 X' V( N o+ S. S8 ^4 Qtar xzvf openwrt_R20S35.tar.gz8 [" f! R6 t% O# O" P: ?
rm openwrt_R20S35.tar.gz
# c7 B/ e1 ]; a+ u0 u/ S3 J备份删除当前的openwrt,我直接删除了: w# Y- A* ~/ I/ `9 h
rm -rf apps
6 R3 h+ M* |- J5 Y( q4 V建立指向openwrt目录的软链接,代替原有的apps目录& ~5 S) `# L4 _9 ]7 ~% _
ln -sf openwrt apps + [, g) R% Z3 ^ q5 {
: D. W( z' x1 K$ O7 @3 T4 K/ z一些有用的工具用法后面再追加
7 r+ U3 k0 \, ^
. J ^ t% }+ ~, V) z3 Y5 m; E" y! _* S7 c: ~7 @* ?' l+ j4 j
& A( _+ w J' s+ a! r8 `/ S4 W9 M
L4 j6 n, y( x8 @
2 H6 i5 ^, k) W" l. [; T8 \" i3 F" }0 y6 \* G
下面命令备忘待整理- e3 Q' H5 _, `/ O# O
$ k, w* Y' g8 M
tar czf aescrypt2.tgz /lib/libhw_ssp_basic.so /lib/libclang_rt.builtins_s.so /bin/aescrypt2 /etc/wap/aes_string
# e, ]- j6 L& e0 d+ \9 Eaescrypt2 1 hw_ctree.xml tmp
. q7 b6 s' C8 Ugzip -d hw_ctree.xml
$ ~0 r" |0 r- r9 E; T5 \tar czf iptables.tgz /lib/xtables /lib/libip* /lib/libxt* /sbin/ip* /sbin/xtables-legacy-multi /lib/pkgconfig/*
& Z/ [6 |' |: J5 D, e+ d$ M) }/ O
, ^4 x: ]- l& z* b" y0 Y) M) I" {# C6 k6 J* l% R
+ v$ \0 g% C+ A& u
9 B+ P. Y/ ^0 \5 ^. B. g Y( n! j" Z/ ~$ {3 h- m
8 [& t5 P' R( v1 o' M' C7 s9 y
' N6 h/ v" b% t0 v
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|