Difference between revisions of "Wireless Network Adapters"
(→Atheros) |
(→"Unauthorized" MiniPCI network card) |
||
Line 37: | Line 37: | ||
There is a tool in the internet called "no-1802". It is used to set a certain bit in the CMOS memory which overrides the whitelist. This does not work on my t43. | There is a tool in the internet called "no-1802". It is used to set a certain bit in the CMOS memory which overrides the whitelist. This does not work on my t43. | ||
+ | |||
+ | I had the same problem with my T41p and a new wireless card. Doing some research on the internet | ||
+ | I found the C-code below (which worked for me): | ||
+ | |||
+ | #include <stdio.h> | ||
+ | #include <sys/types.h> | ||
+ | #include <unistd.h> | ||
+ | #include <sys/stat.h> | ||
+ | #include <asm/fcntl.h> | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | int fd; | ||
+ | unsigned char data; | ||
+ | |||
+ | fd=open("/dev/nvram", O_RDWR); | ||
+ | |||
+ | if (fd < 0) { | ||
+ | fprintf(stderr, "Error\n"); | ||
+ | } | ||
+ | lseek(fd,0x5c, SEEK_SET); | ||
+ | read(fd, &data, 1); | ||
+ | printf("index: 0x5c 0x%02x", data); | ||
+ | data |= 0x80; | ||
+ | lseek(fd,0x5c, SEEK_SET); | ||
+ | write(fd, &data, 1); | ||
+ | printf("-> 0x%02x\n", data); | ||
+ | close(fd); | ||
+ | } | ||
+ | |||
+ | As far as i can tell this is very similar to the code used in no-1802, only the | ||
+ | byte index in NVRAM has changed, and the above code is designed to work from within a running | ||
+ | linux system. Just compile it with gcc and run the resulting binary as root. | ||
Additional Information about "Unauthorised" MiniPCI adapters can be found at: http://www.srcf.ucam.org/~mjg59/thinkpad/ | Additional Information about "Unauthorised" MiniPCI adapters can be found at: http://www.srcf.ucam.org/~mjg59/thinkpad/ |
Revision as of 18:10, 23 October 2005
This document covers IBM integrated (MiniPCI), Cardbus and PC Card (PCMCIA) Wi-Fi devices.
Contents
Finding out which adapter you have
For MiniPCI or Cardbus adapters run the command:
lspci -n | grep "Class 0200"
And compare the PCI IDS with the ones below.
Note: This will also return the PCI IDS of any Ethernet adapters, as Ethernet adapters and Wireless adapters share the same PCI Class ID.
MiniPCI adapters
Atheros
- IBM Dual-Band 11a/b Wi-Fi Wireless Mini PCI Adapter (PCI-ID: 168c:0012)
- IBM 11b/g Wireless LAN Mini PCI Adapter (PCI-ID: 168c:0013)
- IBM 11a/b/g Wireless LAN Mini PCI Adapter (PCI-ID: 168c:1014)
- IBM 11a/b/g Wireless LAN Mini PCI Adapter II (PCI-ID: 168c:1014)
- ThinkPad 11a/b/g Wireless LAN Mini Express Adapter
Cisco
- Cisco Aironet Wireless 802.11b (PCI-ID: 14b9:a504)
Intel
- Intel PRO/Wireless LAN 2100 3B Mini PCI Adapter (PCI-ID: 8086:1043)
- Intel PRO/Wireless 2200BG Mini-PCI Adapter (PCI-ID: 8086:4220)
- Intel PRO/Wireless 2915ABG Mini-PCI Adapter (PCI-ID: 8086:4224)
Prism
- IBM High Rate Wireless LAN Mini-PCI Adapter with Modem (PCI-ID: 1260:3873)
- IBM High Rate Wireless LAN Mini-PCI Adapter with Modem II (PCI-ID: 1260:3873)
- IBM High Rate Wireless LAN Mini-PCI Adapter III
"Unauthorized" MiniPCI network card
Although the MiniPCI slot is an industry standard and can accept any MiniPCI adapter, the IBM BIOS is set to only allow you to boot with an 'authorized' adapter installed. Attempts to install an unsupported card will result in the following message:
1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.
This is because the cards ID(s) (what lspci uses) are checked against a whitelist in the BIOS. IBM's reasoning for this is that the combination of MiniPCI card and the integrated antenna in the ThinkPad needs to be certified by the US FCC (Federal Communications Committee).
Several people say that it is not necessary to switch off the computer after receiving the error message. It seems to be possible to press F1 to enter the BIOS and deactivate the WLAN card. -- This does not work on my t43.
There is a tool in the internet called "no-1802". It is used to set a certain bit in the CMOS memory which overrides the whitelist. This does not work on my t43.
I had the same problem with my T41p and a new wireless card. Doing some research on the internet I found the C-code below (which worked for me):
#include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <asm/fcntl.h> int main(void) { int fd; unsigned char data; fd=open("/dev/nvram", O_RDWR); if (fd < 0) { fprintf(stderr, "Error\n"); } lseek(fd,0x5c, SEEK_SET); read(fd, &data, 1); printf("index: 0x5c 0x%02x", data); data |= 0x80; lseek(fd,0x5c, SEEK_SET); write(fd, &data, 1); printf("-> 0x%02x\n", data); close(fd); }
As far as i can tell this is very similar to the code used in no-1802, only the byte index in NVRAM has changed, and the above code is designed to work from within a running linux system. Just compile it with gcc and run the resulting binary as root.
Additional Information about "Unauthorised" MiniPCI adapters can be found at: http://www.srcf.ucam.org/~mjg59/thinkpad/
Also see Paul Sladens and Matthew Garretts detailed page on IBM BIOS hacking.
The BIOS hack described in the above links does not seem to apply to the t43. It seems that IBM has changed the way that the PCI ID's are stored in the BIOS code in the later Thinkpads.
Cardbus adapters
Cardbus is a 32bits bus that runs at 33MHz, and is in many ways simular to the PCI bus. In fact under Linux Cardbus adapters are handled by the PCI subsystem.
You can differentiate a PC Card adapter from a Cardbus adapter as the later has a gold coloured grounding strip
IBM 11 a/b/g Wireless Cardbus Adapter
Chipset: Atheros
Driver: madwifi
Supported wireless modes: 802.11a, 802.11b, 802.11g
Specifications: MIGR-51855
Users Guide: MIGE-51855
Service Parts: MIGR-51874
IBM 802.11a Wireless LAN Cardbus Adapter
Chipset: Atheros
Driver: madwifi
Supported wireless modes: 802.11a
Specifications: MIGR-42209
Users Guide: MIGR-42233
Service Parts: MIGR-42231
PC Card (PCMCIA) adapters
PC Card or PCMCIA (Personal Computer Memory Card International Association) as it used to be called, is an 8 or 16bits bus limited to 8MHz, in many ways simular to the old ISA bus and not suitable for highspeed devices.
Cisco Aironet 350 802.11b wireless PC card with 128bit
Chipset: Cisco
Driver: airo_cs
Supported wireless modes: 802.11b
IBM High Rate Wireless LAN PC Card
Chipset: Prism 2.5
Drivers: orinoco_pci or hostap
Supported wireless modes: 802.11b