|
本帖最后由 rainytimes 于 2019-11-6 03:00 编辑
& @' ~* r5 N" Y: [' t" }; J: Z, P9 Z6 F) E$ o
参照了目前网上的帖子,但是帖子中有些问题没有说清楚,至少我遇到了问题,这里把我遇到的问题再说下。
" _3 c, R' J2 z% S, ]8 s# `3 a原帖是在群晖中执行计划任务中的触发任务,点亮LED灯的同时,利用ping命令检测是否一直能连接百度,从而判断猫盘是否在线,让LED灯根据在线状态显示不同的颜色。4 B) T+ A, J+ m. _
原帖的脚本:$ q0 F1 W' S2 F: N2 P
- i2cset -y -f pxa_i2c-i2c 0x45 0x01 0x01 #开启LED控制器
. [# s4 z: v. a9 K - i2cset -y -f pxa_i2c-i2c 0x45 0x31 0x03 #最大电流不呼吸$ a( |$ Y# D# ] U! h
- i2cset -y -f pxa_i2c-i2c 0x45 0x32 0x03 #最大电流不呼吸
6 N2 j9 N* B7 s/ ?0 Z0 g - i2cset -y -f pxa_i2c-i2c 0x45 0x33 0x03 #最大电流不呼吸; T- r9 o4 q9 P+ h: a
- i2cset -y -f pxa_i2c-i2c 0x45 0x30 0x07 . G5 e' c+ J# C8 W8 X L L) W6 e. ]
- while :
% K6 C) Y) I: P0 `* H) n - do
/ \; y) e% N$ Z L' } - ping -W 1 -c 1 www.baidu.com > /dev/null 2>&1+ E2 ]7 @1 c# q9 B
- if [ $? -eq 0 ];then 9 z* _- G/ t5 U6 I( W6 |3 r4 I" B; I$ x
- i2cset -y -f pxa_i2c-i2c</font> 0x45 0x34 0 #R
1 X" \' b1 ~6 l1 B- a% f - i2cset -y -f pxa_i2c-i2c</font> 0x45 0x35 255 #G
$ n4 z# n$ h. @& H4 A2 X% L - i2cset -y -f pxa_i2c-i2c</font> 0x45 0x36 0 #B
9 H B7 w. [8 C9 X* E4 j2 Y - else/ V q3 Q- h& \9 [2 ]
- i2cset -y -f pxa_i2c-i2c 0x45 0x34 255 #R
7 K0 W+ p& o( f! q% R - i2cset -y -f pxa_i2c-i2c 0x45 0x35 0 #G& {* S; h: o! `! c
- i2cset -y -f pxa_i2c-i2c 0x45 0x36 0 #B
. w' d5 o0 F$ R - fi2 a6 Y; D2 C1 l# Z4 t; n1 K* F- |
- sleep 1s! E. y: F% o d* S# v8 j$ X4 o
- done
复制代码 运行的话会报如下错误:
8 I S' G+ ]& s8 Z% U4 Z- Error: I2C bus name is not unique!
$ h4 @* X9 n F! D- Q - Usage: i2cset [-f] [-y] [-m MASK] [-r] I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE] ... [MODE]
) b/ Z" K! b* u* ~! d - I2CBUS is an integer or an I2C bus name4 g( X2 Z% c, K
- ADDRESS is an integer (0x03 - 0x77)
+ t( K' e3 Z6 n# T# Z - MODE is one of:: X3 X! [# f' v
- c (byte, no value)
/ o U+ Q: M$ S) J - b (byte data, default)+ n$ J; x2 K1 }
- w (word data)2 M z, n! i2 W+ b
- i (I2C block data)* o& D* O+ q8 Z! O+ I; O4 Q
- s (SMBus block data)
& m4 [! T6 v0 Z9 i3 M - Append p for SMBus PEC
复制代码
1 }) r- z' w; W0 j& q. O t% O) M$ u- m3 u$ \ D7 x
, j4 n: o2 } Z1 n" _; u3 }: O- d2 d, ^9 o6 u" @2 v1 f
. h) m) M# I5 j& K4 z
科普下标红的pxa_i2c-i2c 是i2c总线的名称,我猫盘中的群晖没有这个名称的总线。所以报上面的错误,下面讲如何解决:
- @7 c4 D: P, ~+ T+ ^2 Q: }/ f! {; O5 b- l6 B( h
% m4 M2 W/ D. E! ~
+ @. N+ ]% \) n( d( R4 c4 i$ `3 T+ {) s2 s
群晖开ssh用root进入这个目录 , P6 O" b5 J; x2 Q( C! \3 ]
- >cd /sys/bus/i2c/devices 3 r6 Q) s: X4 R; _# u
- > ls
) ]% ]* l- O$ k: K - i2c-0 i2c-1
复制代码 / R, l' A) p o/ G7 L! j; X
下面看到2个总线设备,我也不知道那个是控制LED灯的,尝试把脚本改成下面也是自己尝试看好用不,我的是0号总线控制灯。我设置1号总线也写入不了,下面的 0 即对应总线标识:i2c-0
s; y% {& ^, e: ^) o. |% P1 o% C
: a% R" {/ @5 Z
: T" M0 \% [: s; f! G' W2 Q' ^( p7 W# Y7 D/ z! D7 U
- i2cset -y -f 0 0x45 0x01 0x01 #开启LED控制器
9 s0 k1 r# ~: P - i2cset -y -f 0 0x45 0x31 0x03 #最大电流不呼吸, ]" U; |1 }8 g$ T q' J q
- i2cset -y -f 0 0x45 0x32 0x03 #最大电流不呼吸
) J7 ]/ u3 r. O; ^' r - i2cset -y -f 0 0x45 0x33 0x03 #最大电流不呼吸) D4 [+ g d3 O$ b0 `4 F$ [( o
- i2cset -y -f 0 0x45 0x30 0x07
8 d& Q" \8 a( ]) G - while :; o |* E& P C% @
- do
! l. |9 ^3 s, p - ping -W 1 -c 1 www.baidu.com > /dev/null 2>&1
* r7 ]# P5 A- h& q- h - if [ $? -eq 0 ];then
* X' N, o6 C! d7 { - i2cset -y -f 0 0x45 0x34 0 #R
. O& |0 C, j& u1 E - i2cset -y -f 0 0x45 0x35 255 #G
6 _) W9 A: w6 W& r* n - i2cset -y -f 0 0x45 0x36 0 #B
3 ]' ]0 I. B7 ? s& w1 c+ m2 y, { - else
. b2 ?: o) t" R( Z R - i2cset -y -f 0 0x45 0x34 255 #R: W* M) R- x) F5 `/ e6 K/ |
- i2cset -y -f 0 0x45 0x35 0 #G9 Z" f6 ~# i- P$ t
- i2cset -y -f 0 0x45 0x36 0 #B
! m6 ]& L8 Y) Z) D% | - fi, z( ^# T' y/ g$ K, Z4 @
- sleep 10s! i8 I! @& P K( q9 K. M/ y1 E. _3 ~
- done
复制代码
+ f. U( M; N2 g+ N! T# g/ I' a* x, U( D5 v/ Z# n+ o
|
评分
-
查看全部评分
|