Discussion:
[SeaBIOS] Added ACPI SLIC table
Arseny Klimovsky
2010-06-21 12:07:33 UTC
Permalink
Hello,
in some cases Microsoft OEM licence can be used in virtual machine legally.
http://www.microsoft.com/windowsserver2008/en/us/licensing-datacenter.aspx
For Windows 7 it is not clear, but possibly it is legal.
To make in technically possible, one should use its ACPI SLIC table from
original BIOS in virtual BIOS.
I've created a patch for some versions (including latest stable), it can
be easily cherry-picked in master.
http://gitorious.org/seabios/seabios
Of course, the patch does not include this SLIC table, only a code and
place to put it.

Coreboot project have such support (at least for some motherboards).

--
Klimovsky Arseny
Gleb Natapov
2010-06-21 13:16:00 UTC
Permalink
Post by Arseny Klimovsky
Hello,
in some cases Microsoft OEM licence can be used in virtual machine legally.
http://www.microsoft.com/windowsserver2008/en/us/licensing-datacenter.aspx
For Windows 7 it is not clear, but possibly it is legal.
To make in technically possible, one should use its ACPI SLIC table from
original BIOS in virtual BIOS.
I've created a patch for some versions (including latest stable), it can
be easily cherry-picked in master.
http://gitorious.org/seabios/seabios
Of course, the patch does not include this SLIC table, only a code and
place to put it.
Qemu support passing acpi tables to Seabios already using -acpitable
option. It was added specifically to pass SLIC tables.

--
Gleb.
Arseny Klimovsky
2010-06-21 15:54:15 UTC
Permalink
Post by Gleb Natapov
Post by Arseny Klimovsky
Hello,
in some cases Microsoft OEM licence can be used in virtual machine legally.
http://www.microsoft.com/windowsserver2008/en/us/licensing-datacenter.aspx
For Windows 7 it is not clear, but possibly it is legal.
To make in technically possible, one should use its ACPI SLIC table from
original BIOS in virtual BIOS.
I've created a patch for some versions (including latest stable), it can
be easily cherry-picked in master.
http://gitorious.org/seabios/seabios
Of course, the patch does not include this SLIC table, only a code and
place to put it.
Qemu support passing acpi tables to Seabios already using -acpitable
option. It was added specifically to pass SLIC tables.
Yes, I argee, that such support should be made in qemu/kvm also,
because this way one should recompile BIOS for adding SLIC.

But actually passing -acpitable is not enough for Windows OEM activation,
in all tables oem_id and table_oem_id should match manufacturer.
You can read about this here
http://kerneltrap.org/mailarchive/linux-kvm/2010/3/25/6260141/thread
Now, no support for changing these fields, which are already inserted in
BIOS.
So, anyway one should recompile BIOS to have OEM activation working.

Anyway, even if such support is added, sometimes it is more convenient
for user to add SLIC table to BIOS file.
This way you should not think about this every time you change
configuration in scripts/libvirt.

I think this feature is useful and easy to support, while it should not
be enabled by default.

--
Klimovsky Arseny
Kevin O'Connor
2010-06-22 02:52:02 UTC
Permalink
Post by Arseny Klimovsky
Post by Gleb Natapov
Qemu support passing acpi tables to Seabios already using -acpitable
option. It was added specifically to pass SLIC tables.
Yes, I argee, that such support should be made in qemu/kvm also,
because this way one should recompile BIOS for adding SLIC.
I don't understand, why would someone want to recompile their bios in
place of just passing in the slic table?
Post by Arseny Klimovsky
But actually passing -acpitable is not enough for Windows OEM activation,
in all tables oem_id and table_oem_id should match manufacturer.
If I understand your changes, you want seabios to update the oem ids
in the passed in slic table so that it matches seabios' other tables.
Is this correct? Why do you need to both update the oem ids and
compile in a slic table?

-Kevin
Olivier Galibert
2010-06-22 04:41:42 UTC
Permalink
Post by Kevin O'Connor
If I understand your changes, you want seabios to update the oem ids
in the passed in slic table so that it matches seabios' other tables.
Is this correct? Why do you need to both update the oem ids and
compile in a slic table?
Because Vista checks both.

OG.
Arseny Klimovsky
2010-06-22 04:51:39 UTC
Permalink
Post by Kevin O'Connor
Post by Arseny Klimovsky
Post by Gleb Natapov
Qemu support passing acpi tables to Seabios already using -acpitable
option. It was added specifically to pass SLIC tables.
Yes, I argee, that such support should be made in qemu/kvm also,
because this way one should recompile BIOS for adding SLIC.
I don't understand, why would someone want to recompile their bios in
place of just passing in the slic table?
Sorry, my sentence was not clear. I mean, that using the introduced
patch one should recompile BIOS to have OEM activation working. But if
needed support is added to qemu, recompilation will be not necessary.
So, the introduced patch is a partial solution, full solution can be
made in qemu.
Post by Kevin O'Connor
Post by Arseny Klimovsky
But actually passing -acpitable is not enough for Windows OEM activation,
in all tables oem_id and table_oem_id should match manufacturer.
If I understand your changes, you want seabios to update the oem ids
in the passed in slic table so that it matches seabios' other tables.
Is this correct? Why do you need to both update the oem ids and
compile in a slic table?
No, I want seabios update oem_id in all other tables, so that it match
oem_id in SLIC table. SLIC table must be untouched, it has some digital
signature.
The best solution for qemu is adding a parameter like "-oemid", so that
all this filed will be updated in all tables. And this is a dynamic
support for carrying OEM information to virtual environment, I
introduced a patch for static support.
--
Klimovsky Arseny
Loading...