linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
@ 2012-03-12 21:52 Ben Greear
  2012-03-12 22:13 ` Florian Fainelli
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Ben Greear @ 2012-03-12 21:52 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org

It seems we bought a Lenovo laptop that has a BIOS lock where it will only
support certain wifi NICs based on the pci-id.  It came with an Intel
NIC, so at least that ID must work...

One way around this might be to over-write the pci-id of an Atheros NIC
in it's non-volatile storage to make it look like an Intel, at least until
the kernel boots.

Then maybe add some sort of ugly code to force the Atheros driver
to manage this Intel pci-id (and probably disable the same pci-id in
the Intel driver).

Has anyone tried doing anything like this?  Any suggestions for a cleaner
way to go about this?

Thanks,
Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-12 21:52 Hacking PCI-ids to allow Atheros NIC into Lenovo laptop Ben Greear
@ 2012-03-12 22:13 ` Florian Fainelli
  2012-03-12 22:16 ` Julian Calaby
  2012-03-12 22:32 ` Christian Lamparter
  2 siblings, 0 replies; 12+ messages in thread
From: Florian Fainelli @ 2012-03-12 22:13 UTC (permalink / raw)
  To: Ben Greear; +Cc: linux-wireless@vger.kernel.org

Hi,

Le 12/03/2012 22:52, Ben Greear a écrit :
> It seems we bought a Lenovo laptop that has a BIOS lock where it will only
> support certain wifi NICs based on the pci-id. It came with an Intel
> NIC, so at least that ID must work...
>
> One way around this might be to over-write the pci-id of an Atheros NIC
> in it's non-volatile storage to make it look like an Intel, at least until
> the kernel boots.
>
> Then maybe add some sort of ugly code to force the Atheros driver
> to manage this Intel pci-id (and probably disable the same pci-id in
> the Intel driver).
>
> Has anyone tried doing anything like this? Any suggestions for a cleaner
> way to go about this?

The only viable hack that I have came to with my laptop (Lenovo X61) is 
to have a patched BIOS. Fortunately the web is full of such modified 
BIOSes enabling various features (SATA2 vs SATA1, Wireless NICs 
whitelisting ...)
--
Florian

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-12 21:52 Hacking PCI-ids to allow Atheros NIC into Lenovo laptop Ben Greear
  2012-03-12 22:13 ` Florian Fainelli
@ 2012-03-12 22:16 ` Julian Calaby
  2012-03-12 22:32 ` Christian Lamparter
  2 siblings, 0 replies; 12+ messages in thread
From: Julian Calaby @ 2012-03-12 22:16 UTC (permalink / raw)
  To: Ben Greear; +Cc: linux-wireless@vger.kernel.org

Hi Ben,

On Tue, Mar 13, 2012 at 08:52, Ben Greear <greearb@candelatech.com> wrote:
> It seems we bought a Lenovo laptop that has a BIOS lock where it will only
> support certain wifi NICs based on the pci-id.  It came with an Intel
> NIC, so at least that ID must work...

This is standard with Lenovo (and I believe this originated back when
IBM was building the machines) as it's their method of ensuring some
form of compliance - i.e. they guarantee that it complies with

More details here:

http://www.thinkwiki.org/wiki/Problem_with_unauthorized_MiniPCI_network_card

> One way around this might be to over-write the pci-id of an Atheros NIC
> in it's non-volatile storage to make it look like an Intel, at least until
> the kernel boots.

That is one of the solutions discussed on that page, it also discusses
a few others with varying amounts of success.

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
.Plan: http://sites.google.com/site/juliancalaby/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-12 21:52 Hacking PCI-ids to allow Atheros NIC into Lenovo laptop Ben Greear
  2012-03-12 22:13 ` Florian Fainelli
  2012-03-12 22:16 ` Julian Calaby
@ 2012-03-12 22:32 ` Christian Lamparter
  2012-03-12 22:36   ` Ben Greear
  2 siblings, 1 reply; 12+ messages in thread
From: Christian Lamparter @ 2012-03-12 22:32 UTC (permalink / raw)
  To: Ben Greear; +Cc: linux-wireless@vger.kernel.org

On Monday, March 12, 2012 10:52:49 PM Ben Greear wrote:
> It seems we bought a Lenovo laptop that has a BIOS lock where it will only
> support certain wifi NICs based on the pci-id.  It came with an Intel
> NIC, so at least that ID must work...
> 
> One way around this might be to over-write the pci-id of an Atheros NIC
> in it's non-volatile storage to make it look like an Intel, at least until
> the kernel boots.
> 
> Then maybe add some sort of ugly code to force the Atheros driver
> to manage this Intel pci-id (and probably disable the same pci-id in
> the Intel driver).
> 
> Has anyone tried doing anything like this?  Any suggestions for a cleaner
> way to go about this?
Been down this road before. First an old X41 Tablet and more recently a HP
dv6 laptop.

I think if you manage to reprogram the cards pciids then you are more than
halfway there. Because theoretically, you can get away with adding the fake
intel id to ath9k through sysfs: 

echo "8086 dead" > /sys/bus/pci/drivers/ath9k/new_id
[for more information, take a look at the new_id sysfs interface]
(Of course, you'll have to get rid of the intel driver first)

That said, in both cases I risked flashing a modded bios. So whitelists are
no longer a problem. 

PS: AFAIK [Maybe some QCA dev can verify this]: all AR9300+ have OTP ROMs
for the pciids. So you might want to get an older AR9280 for your laptop.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-12 22:32 ` Christian Lamparter
@ 2012-03-12 22:36   ` Ben Greear
  2012-03-13  0:53     ` Luis R. Rodriguez
  0 siblings, 1 reply; 12+ messages in thread
From: Ben Greear @ 2012-03-12 22:36 UTC (permalink / raw)
  To: Christian Lamparter; +Cc: linux-wireless@vger.kernel.org

On 03/12/2012 03:32 PM, Christian Lamparter wrote:
> On Monday, March 12, 2012 10:52:49 PM Ben Greear wrote:
>> It seems we bought a Lenovo laptop that has a BIOS lock where it will only
>> support certain wifi NICs based on the pci-id.  It came with an Intel
>> NIC, so at least that ID must work...
>>
>> One way around this might be to over-write the pci-id of an Atheros NIC
>> in it's non-volatile storage to make it look like an Intel, at least until
>> the kernel boots.
>>
>> Then maybe add some sort of ugly code to force the Atheros driver
>> to manage this Intel pci-id (and probably disable the same pci-id in
>> the Intel driver).
>>
>> Has anyone tried doing anything like this?  Any suggestions for a cleaner
>> way to go about this?
> Been down this road before. First an old X41 Tablet and more recently a HP
> dv6 laptop.
>
> I think if you manage to reprogram the cards pciids then you are more than
> halfway there. Because theoretically, you can get away with adding the fake
> intel id to ath9k through sysfs:
>
> echo "8086 dead">  /sys/bus/pci/drivers/ath9k/new_id
> [for more information, take a look at the new_id sysfs interface]
> (Of course, you'll have to get rid of the intel driver first)
>
> That said, in both cases I risked flashing a modded bios. So whitelists are
> no longer a problem.
>
> PS: AFAIK [Maybe some QCA dev can verify this]: all AR9300+ have OTP ROMs
> for the pciids. So you might want to get an older AR9280 for your laptop.


We're hoping to use the WPEA-127N.

Thanks for all the info!

Ben

-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-12 22:36   ` Ben Greear
@ 2012-03-13  0:53     ` Luis R. Rodriguez
  2012-03-13  0:57       ` Matthew Garrett
  2012-03-13  0:58       ` Ben Greear
  0 siblings, 2 replies; 12+ messages in thread
From: Luis R. Rodriguez @ 2012-03-13  0:53 UTC (permalink / raw)
  To: Ben Greear, David Woodhouse, Matthew Garrett
  Cc: Christian Lamparter, linux-wireless@vger.kernel.org

On Mon, Mar 12, 2012 at 3:36 PM, Ben Greear <greearb@candelatech.com> wrote:
> On 03/12/2012 03:32 PM, Christian Lamparter wrote:
>>
>> On Monday, March 12, 2012 10:52:49 PM Ben Greear wrote:
>>>
>>> It seems we bought a Lenovo laptop that has a BIOS lock where it will
>>> only
>>> support certain wifi NICs based on the pci-id.  It came with an Intel
>>> NIC, so at least that ID must work...
>>>
>>> One way around this might be to over-write the pci-id of an Atheros NIC
>>> in it's non-volatile storage to make it look like an Intel, at least
>>> until
>>> the kernel boots.
>>>
>>> Then maybe add some sort of ugly code to force the Atheros driver
>>> to manage this Intel pci-id (and probably disable the same pci-id in
>>> the Intel driver).
>>>
>>> Has anyone tried doing anything like this?  Any suggestions for a cleaner
>>> way to go about this?
>>
>> Been down this road before. First an old X41 Tablet and more recently a HP
>> dv6 laptop.
>>
>> I think if you manage to reprogram the cards pciids then you are more than
>> halfway there. Because theoretically, you can get away with adding the
>> fake
>> intel id to ath9k through sysfs:
>>
>> echo "8086 dead">  /sys/bus/pci/drivers/ath9k/new_id
>> [for more information, take a look at the new_id sysfs interface]
>> (Of course, you'll have to get rid of the intel driver first)
>>
>> That said, in both cases I risked flashing a modded bios. So whitelists
>> are
>> no longer a problem.
>>
>> PS: AFAIK [Maybe some QCA dev can verify this]: all AR9300+ have OTP ROMs
>> for the pciids. So you might want to get an older AR9280 for your laptop.
>
>
>
> We're hoping to use the WPEA-127N.

I might as well chime in to explain the long story. If we figure out a
way to ensure we can always get the antenna gain uniformly across
different systems and expose this to the OS I suspect we can convince
some OEMs this would be a better solution than simply restricting
devices. I looked a the newer generation of dmidecode (its not called
DMI, its something else now) thingy but saw no one yet had added
802.11 specifically, perhaps it may be good to consider it in the
future for this. that's as far as I got from trying to kill this
concern.

  Luis

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-13  0:53     ` Luis R. Rodriguez
@ 2012-03-13  0:57       ` Matthew Garrett
  2012-03-13  1:11         ` Luis R. Rodriguez
  2012-03-13  0:58       ` Ben Greear
  1 sibling, 1 reply; 12+ messages in thread
From: Matthew Garrett @ 2012-03-13  0:57 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: Ben Greear, David Woodhouse, Christian Lamparter,
	linux-wireless@vger.kernel.org

On Mon, Mar 12, 2012 at 05:53:03PM -0700, Luis R. Rodriguez wrote:

> I might as well chime in to explain the long story. If we figure out a
> way to ensure we can always get the antenna gain uniformly across
> different systems and expose this to the OS I suspect we can convince
> some OEMs this would be a better solution than simply restricting
> devices. I looked a the newer generation of dmidecode (its not called
> DMI, its something else now) thingy but saw no one yet had added
> 802.11 specifically, perhaps it may be good to consider it in the
> future for this. that's as far as I got from trying to kill this
> concern.

Exposing it as either an smbios table or in ACPI somewhere would be the 
two most typical methods for doing this. It's easy to spec an ACPI table 
for it if you think there'd be any vendor interest.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-13  0:53     ` Luis R. Rodriguez
  2012-03-13  0:57       ` Matthew Garrett
@ 2012-03-13  0:58       ` Ben Greear
  2012-03-13  3:13         ` Julian Calaby
  1 sibling, 1 reply; 12+ messages in thread
From: Ben Greear @ 2012-03-13  0:58 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: David Woodhouse, Matthew Garrett, Christian Lamparter,
	linux-wireless@vger.kernel.org

On 03/12/2012 05:53 PM, Luis R. Rodriguez wrote:
> On Mon, Mar 12, 2012 at 3:36 PM, Ben Greear<greearb@candelatech.com>  wrote:
>> On 03/12/2012 03:32 PM, Christian Lamparter wrote:
>>>
>>> On Monday, March 12, 2012 10:52:49 PM Ben Greear wrote:
>>>>
>>>> It seems we bought a Lenovo laptop that has a BIOS lock where it will
>>>> only
>>>> support certain wifi NICs based on the pci-id.  It came with an Intel
>>>> NIC, so at least that ID must work...
>>>>
>>>> One way around this might be to over-write the pci-id of an Atheros NIC
>>>> in it's non-volatile storage to make it look like an Intel, at least
>>>> until
>>>> the kernel boots.
>>>>
>>>> Then maybe add some sort of ugly code to force the Atheros driver
>>>> to manage this Intel pci-id (and probably disable the same pci-id in
>>>> the Intel driver).
>>>>
>>>> Has anyone tried doing anything like this?  Any suggestions for a cleaner
>>>> way to go about this?
>>>
>>> Been down this road before. First an old X41 Tablet and more recently a HP
>>> dv6 laptop.
>>>
>>> I think if you manage to reprogram the cards pciids then you are more than
>>> halfway there. Because theoretically, you can get away with adding the
>>> fake
>>> intel id to ath9k through sysfs:
>>>
>>> echo "8086 dead">    /sys/bus/pci/drivers/ath9k/new_id
>>> [for more information, take a look at the new_id sysfs interface]
>>> (Of course, you'll have to get rid of the intel driver first)
>>>
>>> That said, in both cases I risked flashing a modded bios. So whitelists
>>> are
>>> no longer a problem.
>>>
>>> PS: AFAIK [Maybe some QCA dev can verify this]: all AR9300+ have OTP ROMs
>>> for the pciids. So you might want to get an older AR9280 for your laptop.
>>
>>
>>
>> We're hoping to use the WPEA-127N.
>
> I might as well chime in to explain the long story. If we figure out a
> way to ensure we can always get the antenna gain uniformly across
> different systems and expose this to the OS I suspect we can convince
> some OEMs this would be a better solution than simply restricting
> devices. I looked a the newer generation of dmidecode (its not called
> DMI, its something else now) thingy but saw no one yet had added
> 802.11 specifically, perhaps it may be good to consider it in the
> future for this. that's as far as I got from trying to kill this
> concern.

Seems like laptop vendors are just being lame.  Why can normal PCs
get away with no restrictions but somehow laptop makers have to do this??

Seems ethtool cannot dump eeprom from the atheros NICs I have
(including the WPEA-127N).  Any idea if it's possible to add
the ability to dump (and eventually write) to the WPA-127N
(and possibly others)?

Thanks,
Ben

>
>    Luis


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-13  0:57       ` Matthew Garrett
@ 2012-03-13  1:11         ` Luis R. Rodriguez
  2012-03-21  5:01           ` Adrian Chadd
  0 siblings, 1 reply; 12+ messages in thread
From: Luis R. Rodriguez @ 2012-03-13  1:11 UTC (permalink / raw)
  To: Matthew Garrett
  Cc: Ben Greear, David Woodhouse, Christian Lamparter,
	linux-wireless@vger.kernel.org

On Mon, Mar 12, 2012 at 5:57 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
> On Mon, Mar 12, 2012 at 05:53:03PM -0700, Luis R. Rodriguez wrote:
>
>> I might as well chime in to explain the long story. If we figure out a
>> way to ensure we can always get the antenna gain uniformly across
>> different systems and expose this to the OS I suspect we can convince
>> some OEMs this would be a better solution than simply restricting
>> devices. I looked a the newer generation of dmidecode (its not called
>> DMI, its something else now) thingy but saw no one yet had added
>> 802.11 specifically, perhaps it may be good to consider it in the
>> future for this. that's as far as I got from trying to kill this
>> concern.
>
> Exposing it as either an smbios table or in ACPI somewhere would be the
> two most typical methods for doing this. It's easy to spec an ACPI table
> for it if you think there'd be any vendor interest.

Better than what we have today, no alternative proposal.

  Luis

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-13  0:58       ` Ben Greear
@ 2012-03-13  3:13         ` Julian Calaby
  0 siblings, 0 replies; 12+ messages in thread
From: Julian Calaby @ 2012-03-13  3:13 UTC (permalink / raw)
  To: Ben Greear
  Cc: Luis R. Rodriguez, David Woodhouse, Matthew Garrett,
	Christian Lamparter, linux-wireless@vger.kernel.org

Hi Ben,

On Tue, Mar 13, 2012 at 11:58, Ben Greear <greearb@candelatech.com> wrote:
> Seems like laptop vendors are just being lame.  Why can normal PCs
> get away with no restrictions but somehow laptop makers have to do this??

>From what I've read, the issue isn't the card or regulatory itself,
it's the antennae.

In a desktop situation, you have a card with an detachable antenna,
and the card / antenna unit can be confirmed to comply with whatever
regulations are in effect.

In a laptop, the antennae are usually part of the laptop body, and
only the card itself is replaceable, so the manufacturer is locking
out cards that it has not tested with the built-in antennae.

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
.Plan: http://sites.google.com/site/juliancalaby/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-13  1:11         ` Luis R. Rodriguez
@ 2012-03-21  5:01           ` Adrian Chadd
  2012-03-21 11:15             ` Matthew Garrett
  0 siblings, 1 reply; 12+ messages in thread
From: Adrian Chadd @ 2012-03-21  5:01 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: Matthew Garrett, Ben Greear, David Woodhouse, Christian Lamparter,
	linux-wireless@vger.kernel.org

On 12 March 2012 18:11, Luis R. Rodriguez <mcgrof@frijolero.org> wrote:

>> Exposing it as either an smbios table or in ACPI somewhere would be the
>> two most typical methods for doing this. It's easy to spec an ACPI table
>> for it if you think there'd be any vendor interest.
>
> Better than what we have today, no alternative proposal.

Is there any current "vendor space" in ACPI that we can write to and
leverage as a kind of example test case?



Adrian

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Hacking PCI-ids to allow Atheros NIC into Lenovo laptop.
  2012-03-21  5:01           ` Adrian Chadd
@ 2012-03-21 11:15             ` Matthew Garrett
  0 siblings, 0 replies; 12+ messages in thread
From: Matthew Garrett @ 2012-03-21 11:15 UTC (permalink / raw)
  To: Adrian Chadd
  Cc: Luis R. Rodriguez, Ben Greear, David Woodhouse,
	Christian Lamparter, linux-wireless@vger.kernel.org

On Tue, Mar 20, 2012 at 10:01:05PM -0700, Adrian Chadd wrote:
> On 12 March 2012 18:11, Luis R. Rodriguez <mcgrof@frijolero.org> wrote:
> 
> >> Exposing it as either an smbios table or in ACPI somewhere would be the
> >> two most typical methods for doing this. It's easy to spec an ACPI table
> >> for it if you think there'd be any vendor interest.
> >
> > Better than what we have today, no alternative proposal.
> 
> Is there any current "vendor space" in ACPI that we can write to and
> leverage as a kind of example test case?

Not really. In theory the ACPI namespace is only usable if you've pushed 
something through the ACPI process - in practice, grabbing a table name 
first and asking questions later tends to work fine.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2012-03-21 11:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-12 21:52 Hacking PCI-ids to allow Atheros NIC into Lenovo laptop Ben Greear
2012-03-12 22:13 ` Florian Fainelli
2012-03-12 22:16 ` Julian Calaby
2012-03-12 22:32 ` Christian Lamparter
2012-03-12 22:36   ` Ben Greear
2012-03-13  0:53     ` Luis R. Rodriguez
2012-03-13  0:57       ` Matthew Garrett
2012-03-13  1:11         ` Luis R. Rodriguez
2012-03-21  5:01           ` Adrian Chadd
2012-03-21 11:15             ` Matthew Garrett
2012-03-13  0:58       ` Ben Greear
2012-03-13  3:13         ` Julian Calaby

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).