BIOS-Approved PCI Cards For Laptops
derek_farn writes "First there were printers that would would only work with vendor annointed ink cartridges; now we have laptops that will only boot with vendor annointed PCI cards. Keeping a list of approved PCI cards in the bios is one way of ensuring that customers renew their maintenance contracts. How else are they going to be able to plug in a PCI card released after the last BIOS update?" My HP laptop is several years old; can anyone confirm this?
My HP laptop is several years old; can anyone confirm this?
How should we know? It's your laptop.
I want to drag this out as long as possible. Bring me my protractor.
My older Thinkpad T40p has a whitelist, too. Luckily the Cisco 350 mini-PCI card I needed to connect to the corporate wireless LAN is on the whitelist. IBM actually sells the Cisco card with an IBM part number.
But forget trying to buy a random 802.11 a/b/g card and plug it in.
We can keep our own list of venders who do this... ..and don't buy from them.
# You need an uncompressed copy of the BIOS. The easiest way to obtain this is probably to use phlash16 under DOS with the /BU option. This will write out an uncompressed copy as BIOS.BAK. /CS option to phlash16 in order to check the checksum.
# Find out the PCI vendor, device and subsystem IDs of your card. In Linux, doing lspci -v will tell you this.
# Open the BIOS file in a hex editor. Find the BCPUSB header (there's an index near the start of the file that contains references to lots of BCP stuff. Ignore the one that appears here). Shortly after this is a set of PCI IDs, split up with 0s. The file is in little endian format, so the first byte in the file is the second byte of the ID. For instance, an IBM Pro/Wireless 2100 is 8086:1043 with a subsystem id of 8086:2551. This will appear as 8680431086805125. Make the modifications to suit your card.
# Find the string EXTD. The 4 bytes after that are an additive checksum. When all the 4 byte blocks in the file are added up, they must equal 0. Change the checksum as appropriate. At some point I'll probably get round to writing a tool to do this.
# Reflash your BIOS. Make sure that you use the
# If it's worked, your card should now work. If it hasn't, your laptop is probably dead.
I have an old NetServer LPr that I use as a Debian server. It's built like a tank, and has been fairly reliable, save for one issue:
Since I got it (used), it always printed a warning that non-HP DIMMs were detected, and HP's on-site warranty didn't cover problems caused by non-HP memory.
Then two of the DIMMs failed, so I popped the lid.
You guessed it. HP memory.
At least the motherboard was kind enough to turn on a flashing light next to the bad DIMMS. (Seriously)
You have violated Robot's Rules of Order and will be asked to leave the future immediately.
I came across his site a while back, and holy crap if he isn't hacking his BIOS to get around these limitations. (His page is linked to if you follow a link from TFA, but I figured he deserves more prominence here.)
Interestingly, this is the same IBM (and HP, for that matter) that we have come to know and love for their help with Linux. I realize they're a big company, full of lawyers and patents and left hands unaware of what the right hand's doing, but I'm still really surprised I haven't heard about this before.
Anyone know of a blacklist of this sort of shenanigans? I'm the sysadmin where I work, and it'd be great to know what to stay away from -- and to explain to these companies why they've lost our business.
Carousel is a lie!
There is a list of hardware that is not very Linux friendly here: http://www.leenooks.com/ - perhaps this stuff would make a good addition to the list.
http://www.welton.it/davidw/
Matthew Garrett
...because apple does not market it as a miniPCI slot, but rather an AirPort card slot. It doesn't claim to be something that it's not - a place to plug in whatever you feel like plugging in. It's there just for the AirPort card, and nothing more.
(note: this is not Apple fanboyism -- I don't complain about the proprietary slot on the lid of of my Compaq laptop either.)
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
My HP laptop is several years old; can anyone confirm this?
Yeah, Timothy. I was there with you when you bought your laptop. It was around the same time that I got my iPod. It was a first generation, so, yeah, your laptop is definitely a few years old.
You're welcome. =)
Your laptop is downloading pr0n and warez from the internet, and is unresponsive when you try to get it to do something useful. I'd put it's age at about 14.
HA! I just wasted some of your bandwidth with a frivolous sig!
Unlike a regular PCI add-in card, the miniPCI WiFi card(s) in question doesn't contain a PCI option ROM. Like VGA, SCSI or RAID cards, this option ROM configures the device before the OS loads.
Since the option ROM isn't on the device, the ROM is stored in the system BIOS. When PCI option ROMs are stored in the BIOS, they are associated with the device's PCI "vendor ID" and "device ID". The "hack" described in an earlier post tells the BIOS to look for a different vendor/device ID (which hopefully is compatible with the embedded option ROM).
Some network adapters require the option ROM for the OS drivers to work, and network booting requires the option ROM so the BIOS can use UNDI/PXE.
This is a support problem from the notebook manufacturer. They only tested a few adapters, and only have room in the BIOS for one network option ROM. This has nothing to do with "trusted computing" or weird conspiracy theories. If the integrated card can't be upgraded, then USB or PCMCIA devices should be an option.