Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Jul 2015 10:50:06 -0400
From:      Allan Jude <allanjude@freebsd.org>
To:        Hans Ottevanger <hans@beastielabs.net>
Cc:        "Andrey V. Elsukov" <bu7cher@yandex.ru>, freebsd-current@freebsd.org
Subject:   Re: Lenovo BIOS boot fix
Message-ID:  <55A3D01E.40102@freebsd.org>
In-Reply-To: <55A36FBE.1020206@beastielabs.net>
References:  <55A1FFD5.7080008@freebsd.org> <55A2030B.7010405@freebsd.org> <55A2835F.1030004@yandex.ru> <55A2ACDD.408@freebsd.org> <55A36FBE.1020206@beastielabs.net>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
On 2015-07-13 03:58, Hans Ottevanger wrote:
> On 07/12/15 20:07, Allan Jude wrote:
>> On 2015-07-12 11:10, Andrey V. Elsukov wrote:
>>> On 12.07.2015 09:02, Allan Jude wrote:
>>>> I forgot to include the link to the patch as well:
>>>>
>>>> http://www.allanjude.com/bsd/lenovofix_gpart.patch
>>>>
>>>> I will most likely make this patch optional, behind a flag to the
>>>> 'gpart
>>>> create -s gpt' command, to avoid potentially breaking existing working
>>>> systems, but if using offset 1 works on all other hardware, having
>>>> it as
>>>> the default would be nice.
>>>>
>>>> Another option would be to make a separate standalone program to modify
>>>> the pMBR for Lenovo machines, rather than modifying gpart.
>>>
>>> Hi,
>>>
>>> I think Lenovo's BIOS just think that your partition layout is MBR and
>>> uses legacy boot.
>>>
>>> if (MBR_partition[0].type == 0xee && gpt_is_ok()) {
>>>      UEFI_boot();
>>> } else {
>>>      MBR_boot();
>>> }
>>>
>>
>> I am not sure what they actually do, but, by making it the
>> MBR_partition[1].type that is 0xee, FreeBSD is still perfectly happy,
>> and the Lenovo boots.
>>
>> Other non-lenovo machines I tested on also worked.
>>
>> Tested Platforms (in BIOS/non-UEFI mode):
>>
>> Lenovo X220
>> Lenovo X230 (doesn't have the bug, boots fine with MBR[0].type = 0xee)
>> Lenovo T530 (also doesn't have the bug)
>> Asus Core2Duo
>> Asus i7 Nehalem desktop
>> Asus i5 Sandy bridge desktop
>> Gigabyte i5 Ivy bridge desktop
>> Intel Ivy bridge NUC
>> Intel Haswell NUC
>> Supermicro i7 Haswell workstation
>>
>>
> 
> Hi Allan,
> 
> I did some experiments with the newest memstick image you provided
> (lenovofix_20150712-r285132.img).
> 
> On an oldish Q6600 based system using an INTEL DP965LT main-board (it
> only has BIOS mode) I first pulled the SATA connectors before trying to
> boot from the USB stick. It shows the same problem as always with a
> fresh install of FreeBSD 10.x:
> 
> No bootable device -- insert boot disk and press any key
> 
> This can be fixed by first modifying the image on the USB stick using
> 
> gpart recover da0
> 
> (the stick is 8Gbyte and the image as copied on it is 1Gbyte, so the GPT
> seems corrupt), followed by the usual
> 
> gpart set -a active da0
> 
> I think this issue manifests itself on a generation of older Intel and
> Foxconn main-boards and possibly differs from the problem that you try
> to solve with Lenovo hardware.
> 
> I also tried the unmodified image on an even older T7200 based system
> having an Asus NL4VM-DH main-board and there it just dumps the registers
> (followed by "BTX Halted") very early in the boot process. This has
> happened before on several occasions with FreeBSD 10.x. The board is
> probably too rare to worry about too much, though it still runs OpenBSD
> 5.7 perfectly.
> 
> 
> Kind regards,
> 
> Hans Ottevanger
> 
> Eindhoven, Netherlands
> www.beastielabs.net
> 
> 
> 
> 
> 

Needing the active flag set is indeed a different problem. I am working
on a patch for bsdinstall that will allow the user to request the active
bit be set as well.

-- 
Allan Jude


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iQIcBAEBAgAGBQJVo9AjAAoJEBmVNT4SmAt+wa0QAKdxxqcRyRAtokJKSowBXUMr
4gqOCaCC4zu8WivSRupcEfUQ9vS52YLYc6JNfWnLk5ol/3bhhbPtwc8VvCXj0Hrk
0/Xg+xRs/T4CWK2IhL2GQs3qyZGxU0UwXx/UsKeFmcLP9FMvO6ZcwxLFemhXOHRK
8XpNod6eHCjs6+2E2JE2JOiD5EsOZdHUigMicM5BoPUFDeaUYinNTJVBv6SrtDhe
cDjFXeOZ7w6j8TzvaFsWAqzWo3BrfyHhZVeGavPxX8Vw7imAkStF0MwIDVcBGrfL
KhcOGtLWz/irzlBu3I0wtymGqlh/5sZG1G/7YlwTzTZaWvVsnrZswy0W7PI+bsJq
rjDzVkWvpOqpvv+szA7ktGD52TmVVmyxsYGhsIc2zjRFNoinoAylWNE9hfpmGge+
CVyFx14Bqz0LKuW1UKqqa0drZoFXl6PuZv0E8LaRd/2/0e7zTgTOQKHRpaA9b3ah
BelE20bySBZsRJ5B4/bZhIOWqIGF0HQAO5S6NrdzGheouOMFrhldXqwHehoYXS+g
ViHeD34+C1BBum3OUC3ouLIEt93drKNWahN8qv4Nep+COzLFAkcxquq+L+hUTkeV
tl11Eqb2+eb6jf6enpXTvNenBVT/JuN/oSaZrtZYJJAPBESvxWARw3hnc2iYHW+M
HytgsRWpqPwZtcAIMwWc
=1v0c
-----END PGP SIGNATURE-----
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55A3D01E.40102>