Messages in this thread |  | | | Date | Sun, 13 Jun 2004 21:31:05 +0200 | | From | Vojtech Pavlik <> | | Subject | Re: Solution to the "1802: Unauthorized network card" problem in recent thinkpad systems |
| |
On Sun, Jun 13, 2004 at 12:10:29PM -0700, Tisheng Chen wrote:
> In linux, there is only 114 bytes in /dev/nvram, not > 128. The correct address is not 0x6a, but 0x5c. You > can try it with "inb" and "outb".
I thought the data at the end were missing. If it's data at the beginning, that makes sense then.
> In T30, the original value of the control byte is > 0x01, which needs to be set to 0x81.
OK.
> And "data &= ~0x80;" is incorrect. It should be "data > |=0x80" or "data^=0x80", I think.
My mistake. I tried clearing the bit instead of setting it, which made my X31 unbootable until I restored default CMOS settings.
> Somebody did succeed with a X31.
Good to know.
> As I know, it should works for T30,R40,X31,R40E at > least.
I'll try.
> Tisheng > > --- Vojtech Pavlik <vojtech@suse.cz> wrote: > > On Sun, Jun 13, 2004 at 12:39:50AM -0700, Tisheng > > Chen wrote: > > > > > In recent IBM thinkpad systems, there is a limit > > to > > > allowed MiniPCI wireless cards. When an > > unauthorized > > > card is plugged in, the system doesn't boot and > > > halt with an error message like: > > > > > > ERROR > > > 1802: Unauthorized network card is plugged in > > > Power off and remove the miniPCI network card. > > > > [snip] > > > > > The other way is unbelievably simple. There is a > > byte > > > in CMOS which controls whether an "unauthorized" > > card > > > is allowed or not. That's 0x6a, actually only > > > the bit 0x80. The program to unlock the > > authorization > > > mechanism is like (asm): > > > > > > MOV DX,0070 > > > MOV AL,6A > > > OUT DX,AL > > > MOV DX,0071 > > > IN AL,DX > > > OR AL,80 > > > OUT DX,AL > > > MOV AX,4C00 > > > INT 21 > > > > > > The program can be downloaded from: > > > http://jcnp.pku.edu.cn/~shadow/1802/no-1802.com > > > To use this program, you need to boot to DOS. > > > > > > The CMOS solution is safe, but I'm not sure that > > it > > > works for all recent thinkpads and all cards. The > > BIOS > > > crack sure does, however it is difficult > > > and dangerous. > > > > Well, here is a version for Linux: > > > > > ------------------------------------------------------------ > > > > #include <stdio.h> > > #include <sys/types.h> > > #include <unistd.h> > > #include <sys/stat.h> > > #include <fcntl.h> > > > > int main(void) > > { > > int fd; > > unsigned char data; > > > > printf("Disabling WiFi whitelist check.\n"); > > fd = open("/dev/nvram", O_RDWR); > > lseek(fd, 0x6a, SEEK_SET); > > read(fd, &data, 1); > > printf("CMOS address 0x6a: %02x->", data); > > data &= ~0x80; > > printf("%02x\n", data); > > lseek(fd, 0x6a, SEEK_SET); > > write(fd, &data, 1); > > close(fd); > > printf("Done.\n"); > > } > > > > > ------------------------------------------------------------ > > > > I've tried it on my ThinkPad X31, but it doesn't > > work at all. The CMOS > > has a value 0xfa at the offset 0x6a, so the most > > upper bit is already > > set. > > > > -- > > Vojtech Pavlik > > SuSE Labs, SuSE CR > > > > > > > > > __________________________________ > Do you Yahoo!? > Friends. Fun. Try the all-new Yahoo! Messenger. > http://messenger.yahoo.com/ >
-- Vojtech Pavlik SuSE Labs, SuSE CR - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |