ibm开机报错0188,求救

ibm开机报错0188,求救,第1张

Thinkpad 笔记本0175、0188、 0198报错,属于CRC校验错误,在 T系列 R系列 A系列中比较普遍。

导致该报错的原因有许多。 一般在更换耐派CMOS电池,或者光软驱互换,重负荷运行程序以及维修笔记本的时候都容易发生0175的错误。

其实解决改故障并不困难,仅仅需要把EEPROM程序纠正过来就可以了。

为啥IBM机器需要CRC校验EEPROM芯片程序?

在笔记本行业中IBM在数据安全方面是做得最好的.根据不同的安全级别其密码分为:

开机密码(Power on password,简称POP) 设定后电脑开机时,就要输入这个密码, 才能开机, 进入 *** 作系统.

超级密码(Supervisor password, 简称SP), 如果设定后,当需要修改BIOS里面的一些关键设定的时候, 就要求输入这个密码. 这个密码在进入BIOS时才需要. 如果开机时按F1, 就会进入BIOS. 如果设定了SP, 就会在这个时候要求输入.但在这个时候, 如果输入POP, 也可以进入BIOS设定界面, 但有些功能会受到限制.

硬盘用户密码(HDD User password,简称HUP), HUP, 主要控制对硬盘的存取权. 也就是说, 在HDD上电时, 要输入这个密码, 才能获得对HDD的存取权.

硬盘薯亩郑超级密码(HDD Supervisor password, 简称HSP),HSP, 主要用于修改HUP.

安全芯片密码(部数颂分机器才有). 安全芯片密码要和软件配套使用才行,主要是保护数据的安全.

存放在密码的EEPROM 芯片的数据加密的,每次开机,系统都要读写里面的数据(CRC校验)

CRC校验还包括对机器UUID 识别码校验

.如果在开机的过程中或是系统死机后,直接就拔掉电源,都会造成芯片里面的数据出错.导致下次开机的时候报错0175,系统挂起,没法正常进入系统.

机器UUID 识别码与机器上其他芯片不符 回出现0188,0189 错误.

0175 0188 0189 是指CRCI错,停止POST任务。EEPROM(24RF08CT、24RF08BT、24RF08CN)检验错,系统主板。

在代数编码理论中,将一个码组表示为一个多项式,码组中各码元当作多项式的系数。例如 1100101 表示为1·x6+1·x5+0·x4+0·x3+1·x2+0·x+1,即 x6+x5+x2+1。

设编码前的原始信息多项式为P(x),P(x)的最高幂次加1等于k;生成多项式为G(x),G(x)的最高幂次等于r;CRC多项式为R(x);编码后的带CRC的信息多项式为岁腔T(x)。

发送方编码方法:将P(x)乘以xr(即对应的二进制码序列左移r位),再除以圆雀老G(x),所得余式即为R(x)。用公式表示为T(x)=xrP(x)+R(x)

接收方解码方法:将T(x)除以G(x),得到一个数,如果这个余数为0,则说明传输中无错误发生,否则说明传输有误。

举例来说,设信息编码为1100,生成多项式为1011,即P(x)=x3+x2,G(x)=x3+x+1,计算CRC的过程为

xrP(x) =x3(x3+x2) = x6+x5 G(x)= x3+x+1 即 R(x)=x。注意到G(x)最高幂次r=3,得出CRC为010。

如果用竖式除法(计算机的模二,计算过程为

1110 ------- 1011 /1100000 (1100左移3位) 1011 ---- 1110 1011 ----- 1010 1011 ----- 0010 0000 ---- 010 因此,T(x)=(x6+x5)+(x)=x6+x5+x, 即 1100000+010=1100010

如果传输无误,

T(x)= (x6+x5+x)/G(x) = , G(x)= 无余式。回头看一下上面的竖式除法,如果被除数是1100010,显然在商第三个1时,就能除尽。

上述推算过程,有助于我们理解CRC的概念。但直接编程来实现上面的算法,不仅繁琐,效率也不高。实际橘升上在工程中不会直接这样去计算和验证CRC。

下表中列出了一些见于标准的CRC资料:

名称 生成多项式 简记式*应用举例

CRC-4x4+x+1 3ITU G.704

CRC-8x8+x5+x4+131 DS18B20

CRC-12 x12+x11+x3+x2+x+1 80F

CRC-16 x16+x15+x2+1 8005 IBM SDLC

CRC-ITU** x16+x12+x5+1 1021 ISO HDLC, ITU X.25, V.34/V.41/V.42, PPP-FCS,ZigBee

CRC-32 x32+x26+x23+...+x2+x+1 04C11DB7 ZIP, RAR, IEEE 802 LAN/FDDI,IEEE 1394,PPP-FCS

CRC-32c x32+x28+x27+...+x8+x6+1 1EDC6F41 SCTP

* 生成多项式的最高幂次项系数是固定的1,故在简记式中,将最高的1统一去掉了,如04C11DB7实际上是104C11DB7。 ** 前称CRC-CCITT。ITU的前身是CCITT。

备注:

(1)生成多项式是标准规定的

(2)CRC校验码是基于将位串看作是系数为0或1的多项式,一个k位的数据流可以看作是关于x的从k-1阶到0阶的k-1次多项式的系数序列。采用此编码,发送方和接收方必须事先商定一个生成多项式G(x),其高位和低位必须是1。要计算m位的帧M(x)的校验和,基本思想是将校验和加在帧的末尾,使这个带校验和的帧的多项式能被G(x)除尽。当接收方收到加有校验和的帧时,用G(x)去除它,如果有余数,则CRC校验错误,只有没有余数的校验才是正确的。

方法如下:

CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算 相同为0,不同为1;0^0=00^1=11^0=11^1=0), 之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处睁余理完毕,用此时CRC寄存器的值纳早扮与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。

1.设置CRC寄存器,并给其赋值FFFF(hex)。

2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。 3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。

4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。

5.重复第3与第4步直到8次移位全部完成。洞灶此时一个8-bit数据处理完毕。

6.重复第2至第5步直到所有数据全部处理完成。

7.最终CRC寄存器的内容即为CRC值。

CRC(16位)多项式为 X16+X15+X2+1,其对应校验二进制位列为1 1000 0000 0000 0101。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8263903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存