易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 540|回复: 3
收起左侧

华为交换机ipmitool处理问题修改IBMC登录用户密码全过程解决办法

[复制链接]
发表于 2023-6-15 01:00:01 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 2 金钱 才能浏览
 楼主| 发表于 2023-6-15 01:00:02 | 显示全部楼层
ipmitool user list 1/ e& R- ^1 B: o; Z9 S9 p6 x: v

5 M# |7 ]$ ]. i: x. e9 [/ b. l1 _
ipmitool user set password 3 rzzzzzzzz6 }! x9 y6 ^) a' T  ?& N
# C9 y1 a9 ~, t8 v1 R. U" h) [4 a4 f
ipmitool user list 1
  V1 l  u& Q( z1 l" G
# ]% ]& P- H/ Jipmitool user set password 3 rzzzzzzzzzz
. b0 f& `$ k. m8 p- `* M, A% O' _; g5 p) r
ipmitool user set password 3 rzzzzzzzzzzz4 `5 u/ v" R3 J0 @0 W

6 P* i; D6 k6 c+ q" z& T6 X4 i3 s3 }ipmitool user priv 3 4 11 A' Q$ f( B% X

, O, x9 @7 F4 Lipmitool user list 1" m  q5 M2 X8 L! [

8 S) O* ~; d& @+ i
: o1 o4 {0 C/ U& K7 e: gipmitool user enable 31 G( D" B$ _" b% g

8 C6 L# G2 ]  h) j# I( [2 }' `' ?0 h) {+ G7 Y/ Y

! w) `6 C) a4 z( f6 d
 楼主| 发表于 2023-6-15 01:00:03 | 显示全部楼层
问题描述
在windows 2019下,客户测试ipmiutil tool工具,反馈大部分功能都能满足,但是关于用户的部分功能无法支持。Ipmiutil工具是开源工具,类似ipmitool。ipmiutil命令与ipmitool有所差异,需要验证用户功能不支持原因。- j# x. @: r$ S; U- M( f

3 Q/ `$ h6 {7 t8 `#用户列表
' B5 p) b3 A3 b6 [$ipmitool user list 1
! Z$ s" m+ }# CID Name Callin Link Auth IPMI Msg Channel Priv Limit2 H4 C' G( b( c! U$ u
2 ADMIN false false true ADMINISTRATOR' O4 D; t/ ?6 O+ W2 j4 c
- x( l$ P$ g& h  P# C) h( E) K5 h
#ID 更改' I; b* e: u, D% d, G2 G! k7 _9 X
$ipmitool user set name 5 admin
5 o0 h3 r! X% z) X) {: g# M! Z$ E' @" [, Y" x2 i
#更改密码 ( p@sswOrd)
5 w% D8 K2 P) n+ y! ^$ipmitool user set password 5 p@sswOrd
9 h! P2 {2 i) A, X9 u7 }0 Z* ]3 x% _- E( V/ E
#添加用户(添加ID)
* {( t. v# v( d0 {) p. @& ~! a$ipmitool user set name 6 testuser
6 n- Q  c6 Z$ ]3 [, R- Y" ~! d; w0 n5 W) W/ x! x+ o
#用户权限( ipmitool user priv   [] )& @  `$ p/ x4 m6 K9 d0 }8 L
$ipmitool user priv 5 4 1
2 l9 U4 M8 ^; m9 m
' N. [$ @2 D" p5 n2 a* ~# f/ z- }7 R
处理过程
1)ipmiutil工具验证
经确认,ipmiutil开源工具在3.0.3版本之后才支持user子命令,如果需要使用,则需要升级下ipmiutil工具版本。
3 c. w% @! f# N, _0 w0 O
& P3 A8 b# _, C; d* R$ {# {6 ~
通过网站http://ipmiutil.sourceforge.net/,下载ipmiutil工具的最新版本3.0.9。
使用3.0.9版本的工具,验证了下user命令是可以执行的,但是会出现报错“ipmiutil user, Request data length invalid”,见下面的截图。Linux系统下也会报相同的错误,怀疑和ipmiutil的解析规则有关系。
#用户列表5 N' B7 s7 G6 n3 s4 Q
, Z' U5 S/ Y* q" K  ~* w' X
#ID 更改(无法直接变更)
+ S) w; y/ b( J; q1 `* M; l$ipmitool user set name 5 admin
' X1 J- \& W# G% \* n1 p  |8 W

% w2 }- E4 I( H
Ipmiutil工具验证结论:经多次验证,确认使用ipmiutil 执行用户添加操作,是可以添加用户、配置密码以及设置用户权限,但是不能给用户使能生效。

3 h# b/ |+ {4 S4 u; Q* ?3 G  h) b# U/ {
2)ipmitool工具对比验证
BMC默认支持ipmitool工具,ipmiutil工具很少用。
采用ipmitool工具验证命令可行性,以及服务器环境。
验证使用的ipmitool的版本为:1.8.14。

! B  f! ]  Q/ Y' D+ d. x+ e
#用户列表---说明:该命令是支持的。$ipmitool user list 1
. C& F3 ^% H+ p
#更改密码 (p@sswOrd)
) a, l6 }1 s( Z$ipmitool user set password 5 p@sswOrd

% A9 w+ d: A# Q) ?9 j5 M
说明:如果使能了密码复杂度校验,则上面的密码配置会失败,必须含有数字、大写字符、小写字符、特殊字符的组合,禁用后,上面的命令可以执行成功
9 \- J; {1 z, ~9 ?, _% ?
#添加用户(添加ID4 u) w9 v( ^5 U, V& v+ ^
$ipmitool user set name 6 testuser

5 E, E# r& ^8 A! i/ \8 q3 J
说明:如果已经存在相同的用户名,则配置会失败,下面截图是成功的截图:

6 m! R& o% p* |- b" b* {
#用户权限( ipmitool user priv   [] )
2 S) ?2 U4 ~" X; f  n$ipmitool user priv 5 4 1

' m& O! F9 C/ Q2 q4 ]8 o* T2 f4 q
说明:经过测试验证,权限设置是支持的
9 F* J/ b! ~+ y
采用ipmitool工具配置用户信息后,可以成功使能用户,且采用该用户进入IBMC。

8 E5 m% L/ a" j3 Z% n
Ipmitool工具验证结论:经多次验证,相同服务器环境下ipmitool工具配置用户功能均正常,命令没有问题。
3)ipmiutil报文分析
BMC研发出调试版本,抓取ipmiutil工具发送命令时的报文信息。
经验证,在使能用户命令上,ipmitool发出的使能用户的命令有16个或者20个byte,而ipmiutil发出的使能命令只有3个byte,这个是不符合ipmi规范的。
- x2 u) j: _$ M; A. o
ipmiutil数据如下:

6 {, N3 _8 }) y
Ipmitool发出的使能命令的数据结构如下:

7 g* }& O% i7 h$ N* M1 N2 k2 \4 w
参考ipmi规范如下:
1 c, m; ^6 `) u, A
经确认,ipmiutil工具发送其他正常命令时,返回值为00;使能用户等不正常命令时,返回值为C7。

: G& v1 e$ C; [" N
Ipmiutil为开源工具,该bug主要体现在与华为服务器的BMC版本兼容问题上。
解决方案经讨论主要有以下几种:
A.由于Ipmiutil为开源工具,与其开发者联系,反馈bug,下一个版本合入。
B.已经有ipmiutil源代码,华为修改代码优化,出一个临时版本工具。但有2个问题:后续工具版本更新及维护问题;代码工作量和时间计划,需要评估。
C.BMC出个限制商用版本,解决该问题。但该版本不符合规范,无法通用。其他工具使用可能存在问题。兼容性无法评估。
1 g$ H4 f; p# \$ Q  g& Y2 |& c+ `
D.推荐客户使用ipmitool工具。该工具经研发和现网实际验证,可以满足客户所有要求。
该问题是否也存在友商服务器环境上呢?
对比验证结果如下:

, E' _* D" y: h+ n
序列
友商(V5服务器)
结果
1
HP
PASS
2
DELL
FAIL
3
联想
FAIL
( V8 R7 v% A# g7 G( ^, _
由于HP服务器确认可以支持,为了兼容友商,BMC研发确认合入BMC版本解决ipmiutil问题。
6 A9 j* P, j; I- o
" Z/ o) e+ m; J, n! K

7 d, @" q) Q7 c3 U5 d8 K根因
在使能用户命令上,ipmitool发出的使能用户的命令有16个或者20个byte,而ipmiutil发出的使能命令只有3个byte,这个是不符合ipmi规范的。
9 \5 }& m- i9 D. I

; W" a: j2 I# u5 h& V- C4 n. K+ x
& h+ ~1 Z3 y& x
 楼主| 发表于 2023-6-17 07:49:24 | 显示全部楼层
Ipmitool –I open sensor list #命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息)- Z5 t% k" `# ^$ @3 s8 `( M

: x' }6 L9 U3 M: j6 K- UIpmitool –I open sensor get “CPU0Temp” #可以获取ID为CPU0Temp监测值,CPU0Temp是sensor的ID,服务器不同,ID表示也不同。
  K+ _% j1 @& T: [6 H8 F- O
  [. J: f/ Y- x; U, R, ^9 n3 |1 dIpmitool –I open sensor thresh #设置ID值等于id的监测项的各种限制值。
% p6 X8 Z) ~: E7 `1 ]& Q/ B% f$ _$ ~7 \8 p
Ipmitool –I open chassis status #查看底盘状态,其中包括了底盘电源信息,底盘工作状态等
& A3 _* s) A5 _6 P6 U1 C" j( H$ z! g" Y/ S8 Z
Ipmitool –I open chassis restart_cause #查看上次系统重启的原因- ?6 z3 W3 _/ [: K$ l; C. q

5 ?2 n$ a# ~$ A( _4 l4 @2 l6 x( LIpmitool –I open chassis policy list #查看支持的底盘电源相关策略。
, ~( g! C3 }& }% v# C' x7 _' M$ _! S
Ipmitool –I open chassis power on #启动底盘,用此命令可以远程开机
6 L6 d; ]  ]7 [& Z! g: A  Q# Z0 ]' T1 S
Ipmitool –I open chassis power off #关闭底盘,用此命令可以远程关机
( {4 K; `" `* ~& {: W: P3 c& `% w
* c) m% ]& L/ i! J  r0 \Ipmitool –I open chassis power reset #实现硬重启,用此命令可以远程重启
7 n: G! D  M! p; c' D! ^+ S, R4 _1 c0 X
#Ipmi还可以设置系统启动boot的设备,具体见ipmitool帮助文档
8 R: C' l7 v$ O9 k) e
0 {0 E8 e- a' |' {: EIpmitool –I open mc reset #使BMC重新硬启动
0 o; O7 s7 `" s: z& N8 ?2 q. n2 T, E( {* h# P4 `
Ipmitool –I open mc info #查看BMC硬件信息( v9 U$ l" G% e2 x- }6 A* Z

9 h: o0 R9 w. P% w9 W' }$ j0 O5 NIpmitool –I open mc getenables #列出BMC所有允许的选项
" [. Z4 t+ D% G8 B$ K: U( E) M. ~2 K
Ipmitool –I open mc setenables =[on|off] #设置bmc相应的允许/禁止选项。. d; R$ ?3 H5 m, B8 x6 q
+ R1 b4 X- m' K" M: M/ F( E! @. z- a
Ipmitool-I open event 1 #发送一个温度过高的消息到System Event Log中,可以发送的Event有:
  O* W7 e) c) O- O: L4 F: t$ h# l) m. O5 Z. j& a, j2 Z/ N0 K+ M
Temperature: Upper Critical: Going High
( X. C9 _" r: C' h+ M9 G0 ~3 \
- o  \7 Y4 n8 k7 u4 b" R) |Voltage Threshold: Lower Critical: Going Low, d4 P/ g, O0 T% T0 [
- r; `2 f& S$ N4 M4 \2 g$ b
Memory: Correctable ECC Error Detected
3 z# M6 K+ M1 F3 q0 {+ G) c9 x6 S9 K& F) ]! P+ U* M
Ipmitool-I open event #命令可以用测试配置的IPMI中的snmp功能是否成功。
: ]* d" _: m2 b+ j& g) H
, w( I4 H$ y: rIpmitool -I open lan print 1 #打印现咱channel 1的信息 。
; X9 @! f  z/ ^( X7 P+ Q5 n6 Y0 X' V: [0 [7 k2 n) N- F
Ipmitool -I open lan set 1 ipaddr 10.10.113.95 #设置channel 1的IP地址为10.10.113.95
8 Z! j' @$ G0 v/ ^8 }
9 s9 D/ m) Q, E# sIpmitool -I open lan set 1 snmp public #设置channel 1 上snmp的community为public。
6 v% L3 L7 }. u/ j$ B4 r, m9 j) }% p/ B+ X, z
Ipmitool -I open lan set 1 access on #设置channel 1允许访问。
0 G: `0 k9 A" j) g
0 s! _8 E; f9 \4 o; ?Ipmitool -I open pef info #打印Platform Event Filtering (pef)信息
  Z. B( a" u$ J2 T
3 i& Q  Z. C* ^7 C' V6 n6 @/ p9 j' ~Ipmitool -I open pef status #查看Platform Event Filtering (pef)状态
9 B1 f, h: X5 B+ N# ~5 j
' I, J* e  r9 f( k$ B. j9 aIpmitool -I open pef policy #查看Platform Event Filtering (pef)策略设置
2 g' _# |' D1 k7 c9 _/ Q4 ]- [2 |+ o' x0 L' Q6 a! Q
Ipmitool -I open sdr list fru #读取fru信息并显示。$ i$ v" {8 T+ W& s4 t4 q* F7 A
2 n: v, Z6 G- Q4 ^* k- W: F
ipmitool sel clear #清除记录9 ^& S/ p2 Y' b3 v

# ?0 g" U- q) cipmitool sel elist$ Y# C% G  N! ~% l9 _3 M
+ }) s2 y3 t! ?& m! a
ipmitool sel list
8 X' K5 n8 U9 s9 T- V
# Y: ]" V" H/ bipmitool fru  J1 S, S3 T/ i
" c: S9 H/ }0 v3 O% J) d
ipmitool fru print #显示fru信息
  h- `& E; y+ I! {( u: L
7 M6 J" u/ r, ~" Cipmitool fru print 0
5 I) g' E) |9 Q; o! R! [+ \
5 I+ K2 r8 M# fipmitool fru print 1
! ?2 b: V* x" ?4 t0 V" o* h$ S0 I0 O2 }8 h! o+ x; c: W
ipmitool bmc reset cold #重启bmc: B, Q' @3 S: M$ r

0 o$ ~: t: Q/ d% Q' t) A# nipmitool sdr #查看psu fan (BAT)等信息
9 f! d* ]+ ^8 k, c- O% f1 D
# Y3 M0 _% j/ b8 p8 S0 lipmitool sdr type fan
  T- s5 c; t! E4 N- r7 l! p  U/ x4 T- c: \
ipmitool mc info #查看bmc信息% P& u+ Y8 |$ P. s* j+ _; f

5 x) C  C6 S  l0 ^( Mipmitool lan print #显示lan信息& h3 X' Y$ a. Q' A
8 ^7 R! s. J  U3 D
ipmitool lan print|egrep "MAC Address" #得到bmc的oui
  F! ^0 ^( K& j* W" e* L1 }. o9 O7 i1 K) v) K
ipmitool lan set 1 ipsrc dhcp #设置动态ip 1用户$ B/ c6 M7 L/ e- w, y( |

# A3 c' }! ^8 E4 X) K" l/ Eipmitool -H $bmc_ip -U admin -P admin mc info #设置用户名密码/ N0 h: X% t6 E" |$ v% l7 i

& Z1 B* _+ Z, \  \( Qipmitool chassis policy always-off
7 P6 ~- Y4 q5 k6 V4 K* B+ X1 \4 m3 q# L+ }- t
ipmitool chassis identify force4 ?+ Y' o4 B* v( W' L

& ~5 W2 M1 D/ t1 h, s3 Gipmitool chassis identify off
8 _& d/ o$ N/ U7 n, J& U, @
: {( i3 `8 |+ }3 b3 N- I+ x0 `ipmitool sdr type Temperature# d+ q0 y/ r, p5 X% e

7 h0 N3 `7 T: X( vipmitool sol payload enable 11 v0 k: _: w* a9 m0 @
" m2 z! S+ [* w

8 \' A" X& E+ N& T: |- BIPMI RAW command
" n3 F  C3 ~0 L$ i参照IPMI spec 2.0 with KCS
( F3 T9 M: e6 u( h- x& V" x$ [% G$ c+ E: V
BMC 可以控制的功能很多, 除了常用的ipmi command, 其馀还有许多,可以依靠RAW command 来与BMC 沟通完成, 并且有"隐藏"的command 可以用,尤其是OEM command, 可以询问各机种BMC RD) J) B# G& X+ P# A4 G. ?3 n
. j  ?3 [  m- j7 I+ t$ A
以下整理出来较有用的command, 需注意Data 的Request/Response 起始位置。
: Y3 P( G) M( G" ?+ J
" ~+ ]+ a8 a: P" ERequest 指令格式 "ipmitool raw NetFnCode CommandCode Data .."; `. B; p* x- p: ~

5 H+ e1 o, p& Q5 LEx.ipmitool raw 0x0C 0x02 0x01 0x04 0x00 0x00(Get BMC IP Source)7 N* T+ Z; {) W" S0 f
# [$ d0 V0 C: e( o
0x0C Request Transport Media-specific configuration & control
# j2 Y' ?6 F0 `: L/ O1 S. @
( k+ N) G4 v8 G( L4 v9 S9 c" X0x02 GET LAN Config$ m# t2 \5 U, C# F0 E
, r' T. k  l8 O: g- y. \  `2 X- C" _$ i2 h
0x01 Channel Num% Y1 r% k6 H0 Y0 {3 F) L4 s

6 e3 z# |: z$ I3 S0x04 IP Source(Selector)% a; w5 R% d6 Y- }

( j% o& W- i6 _0 s% c0x00 not use set Selector
9 J) [& J) O4 u$ W2 B
6 g8 j0 y: @5 G/ b0x00 not require block num
6 e. u( j9 J# n' x' N  |! _8 e% P
Response 指令格式 "NetFnCode CommandCode CopmpletionCode Data .."' I( r- x  i/ O& B' F! ~
2 m& Z" C# B* p
Ex.0x0D 0x02 0x00 0x01* t8 ~9 ?. {5 H/ P- `

7 o, K* G, J; r4 R' G% P0x0D Response Transport Media-specific configuration & control7 D9 q- e3 T: ]  E

  s" C& l& [7 p* K9 [5 T) C0x02 GET LAN Config
+ I( `3 s' `$ \* I; B# u1 V# x$ M7 ]6 R, s: s5 ]9 [
0x00 Command Completed Successful
8 x  j7 a; x# N) ~! _1 j8 P  e- \7 \# S# B  D  [9 A9 B
0x01 IP source is Static: e# L2 W# B7 D. D) X( M( L3 F
; O: F4 A3 a2 C7 ~& e+ L
## NetFn code  E0 o& X- z( t% d

7 A& _( R; {" [' n& z' O0x00(request), 0x01(Response) Chassis, ?' ~5 I5 ^5 N  h7 j

+ f6 R( I0 z* v: F/ Q/ L0x02(request), 0x03(Response) Bridge3 E4 ]) k3 M- M

8 {0 ]2 n  a: t7 V7 t0 L$ s0x04(request), 0x05(Response) Sensor/Event
; n. L# G" g# v# @. [$ |5 B' k& J5 W! M  H7 i
0x06(request), 0x07(Response) Application
) a5 e; `  q& a1 w( m
4 }, W" r% D, m0 P- c7 M0x08(request), 0x09(Response) Firmware Transfer
* O3 `# W  ^, q( c3 t+ u. ?
/ i! F1 F" ]& a, Z0x0A(request), 0x0B(Response) Non-volatile storage+ ?4 C3 e: I& V' ?3 t7 v: k  h# v6 K

7 ?" k, _4 U' J, j0x0C(request), 0x0D(Response) Transport Media-specific configuration & control
- q: j$ e* Q+ l% m
( _* e# z1 m) `: O6 y# o, t0x0E- 0x2B Reserved
5 x' J& S; m: J. D. L9 _& Z$ L# g4 ~! ?9 i: C! i
2Ch-2Dh Extension Non-IPMI group
' `& W$ T$ J  V4 z& q0 [7 O( ^/ v  {& J7 {) ?& B- l
2Eh-2Fh OEM/Non-IPMI group1 h3 r! P) u! t& ]/ y

/ {' t9 f/ i- _/ g: M30h-3Fh Controllerspecific OEM/Group
& M5 U" O- q3 `+ Q' X6 l
! y; J6 u" S' R- k& ~) x## Completion Code
% o* R' v% Z+ {, o( N
! W6 ~: t- y7 W0x00 Command Completed Normally+ l, H1 r: N/ Y

/ Z4 U5 b& r. i6 r& a) Y0xC0 Node Busy
( z9 G3 V# y! I2 ~( ]
2 E' |: V( K$ F$ ?+ ^1 m0xC1 Invalid Command
' h# M$ J, @- a4 Y, v5 x
6 w2 ^% i7 S; c$ {/ g0xC2 Command invalid for given NetFn
. `3 [9 A; V+ C5 i  H
' r- N# ?1 U! r- a" W( D, L0xC3 Timeout/ \5 f$ d5 n# r$ n/ \$ p% z
' ~" d% ~. j- \! @; Q6 l
0xC4 Storage Out of space
# I! o! \* P! D) G! ^4 p2 V. A0 \
# Z0 \+ E, p% u0 B) W& h+ h0 W0xC5 Reservation Canceled or Invalid Reservation ID
6 Q1 D5 n" M( ~  |% k. Y& k! w- V# P& n* Q4 S3 H0 ~" @. Y9 @$ ?8 H) f
0xC6 Request data truncated8 Q8 G; ~: R5 }
- G% y& d- w! ]$ ^1 S; t" w& q3 _! o
0xC7 Request data length invalid' R- _! |4 l7 O/ P+ t5 l

$ ]) O0 n5 V8 V# K0xC8 Request data field length limit exceeded5 {5 g6 K+ V# f1 p) j; h
. c1 Q: O# u8 e2 X# i+ L9 l
0xC9 Parameter/Data out of range
$ f6 M# `8 l5 k1 I) h7 R7 ^* D" w% z9 \
0xCA Cannot return number of requested data bytes
6 w! V  p1 t! C! i; @
2 ]5 ~  A- E6 P: Z0xCB Requested Sensor, data, or record not present$ J. ^' p9 O3 o8 e$ D+ }

$ X) N8 S$ `9 ]2 c/ Z0xCC Invalid data field in Request* Q2 _$ W3 _0 L- o0 y* U

! v2 K. x9 i' |& W8 B# \0xCD Command illegal for specified sensor or record type  L' B$ \5 ?/ D5 f

" P0 K- b2 K- K" L4 F, v( h) L0xCE Command response could not be provided  o( V* m. n2 Q

9 F9 M9 K5 y5 \8 f2 Y# S# S, q0xCF Cannot execute duplicated request9 T2 A8 `# F: ]5 N

# y5 ]( f2 t! |( v- @0xD0 Command response could not be provided. SDR Repository in update mode.3 e% J% ?: [0 J3 T7 s$ A5 ]

) C0 ?) q% j9 {6 u0xD1 Command response could not be provided. Device in firmware update mode.
9 S5 \  b3 [( @' ^
5 b) S' T$ w6 z! D' G0xD2 Command response could not be provided. BMC initialization or9 q3 o$ D, q/ b

2 \& t+ p% M  \5 R2 ~initializationagent in progress
7 ]$ p1 C$ P$ [# o3 K7 `
9 `; q' y* Z- D7 P' |0xD3 Destination unavailable
0 S0 u1 j0 t: a# j
! p3 C7 ~9 Q% |- ^3 `0xD4 Cannot execute command due to insufficient privilege level or other
1 d! ]( q0 n0 |% ]# Y7 p/ C. o4 h) s, h2 c6 h0 z5 U
securitybased restriction' T8 i8 C8 H1 |. K' ^5 B' A

. ~3 I# j: D) l! `0 ^8 Q0xD5 Cannot execute command. Command or parameter not supported in present# S# Y# r/ g6 t* O& E

2 T* G2 m7 k3 o! b( L# fstate
0 ~% P% t2 j  C2 Q
. }7 k2 \; S7 M2 K+ ?* ^0xD6 Cannot execute command. Parameter is illegal
: s9 U8 \; K" R4 F
2 T3 \3 _& r+ [! t: B0xFF Unspecified error1 q4 b' r! u, J9 ?! `
% S+ U/ a; u2 r! X: Z7 q0 U/ }
0x01-0x7E OEM completion codes& l* D; L! A! L# i) b* a+ u: Q
+ }! M5 S* g4 p, Y
0x80-0xBE Standard command-specific codes2 s0 D# \, r. r$ |1 X1 j
" b! A5 M- {7 U5 m- m- a( Z
0x7F, 0xBF, 0xD7-0xFE Reserved0 c& ^& V9 g  A; q+ }( }/ }
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-8 07:23 , Processed in 0.048632 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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