> I did have some trouble getting this to work correctly. I believe you must 
> add it to cbfs with "add-payload" and not just as a regular file.
> If that doesn't work let us know, I'll take a look at what exactly I did.

Thank you, with the help of people on irc, now I have been able to make it 
work. At first I used the UEFIPAYLOAD.fd in tianocore's build output folder, it 
does not work. Then I extracted it from coreboot.rom, and it works. I will 
document the process for maybe someone will find this useful in the future:

Firstly I follow this guide to build seabios 
(https://github.com/librecore-org/librecore/wiki/Chainloading-SeaBIOS-from-a-GRUB-payload).
 But I just use the bios.bin.elf I did not use that vgabios.bin that display is 
not good on T420.

Next I build coreboot and select tianocore as payload, and then extract it.
cbfstool ./build/coreboot.rom extract -m x86 -n fallback/payload -f 
./GrubPayloads/tianocore

Then I build coreboot again and select GRUB as payload with high-resulotion 
framebuffer, and add SeaBIOS, Tianocore and grub.cfg
cbfstool ./build/coreboot.rom add -n elf/seabios.elf -f 
./GrubPayloads/bios.bin.elf -t raw
cbfstool ./build/coreboot.rom add-payload -n img/tianocore -f 
./GrubPayloads/tianocore
cbfstool ./build/coreboot.rom add -n etc/grub.cfg -f ./GrubPayloads/grub.cfg -t 
raw

This will work, but without VBG BIOS, the DP output does not work on T420. So I 
add the VGA BIOS blob.
cbfstool ./build/coreboot.rom add -f pci8086,0166.rom -n pci8086,0166.rom -t 
optionrom



2020年3月24日 02:05 来自 [email protected]:

> Hi,
> I did have some trouble getting this to work correctly. I believe you must 
> add it to cbfs with "add-payload" and not just as a regular file.
> If that doesn't work let us know, I'll take a look at what exactly I did.
>
> Good luck,
> R
>
> On Sat, Mar 21, 2020 at 6:08 AM Dalao <> [email protected]> > wrote:
>
>> > FWIW I use Grub to load either SeaBIOS or Tianocore at boot, defaulting to 
>> > Tianocore for this exact problem. Hope that's of some help :)
>>
>> Cool! This is what I want. I have followed this tutorial (>> 
>> https://github.com/librecore-org/librecore/wiki/Chainloading-SeaBIOS-from-a-GRUB-payload>>
>>  ) and now I'm able to use Grub to chainload SeaBIOS. But in order to load 
>> Tianocore, it appears there is no tutorial online. I tried to use the above 
>> method to chainload the Tianocore's build output file UEFIPAYLOAD.fd, but it 
>> can't load. So how you achieved this?
>>
>>
>> Mar 21, 2020, 5:55 AM by >> [email protected]>> :
>>
>>> FWIW I use Grub to load either SeaBIOS or Tianocore at boot, defaulting to 
>>> Tianocore for this exact problem. Hope that's of some help :)
>>>
>>> R
>>>
>>> On Fri, Mar 20, 2020 at 1:35 PM Dalao via coreboot <>>> 
>>> [email protected]>>> > wrote:
>>>
>>>> > The Tianocore package which ran on top of SeaBIOS, DuetPkg, was remove 
>>>> > long ago, so that's not a viable approach (and it was buggy AF anyway). 
>>>> > You'd need to build SeaBIOS as a CSM, package it with Tianocore, and add 
>>>> > the appropriate hooks. Then debug from there
>>>>
>>>> It appears building SeaBIOS as CSM for Tianocore is quite hard and I have 
>>>> searched around there is no guide. Could we build two roms and use 
>>>> something like coreboot's fallback mechanism feature to achieve the hybrid 
>>>> boot goal? Like default to boot in Tianocore image but with an option to 
>>>> reboot to SeaBIOS image...
>>>>
>>>>
>>>> Mar 15, 2020, 15:45 by >>>> [email protected]>>>> :
>>>>
>>>>>
>>>>>
>>>>> On Sat, Mar 14, 2020, 11:02 PM Dalao <>>>>> [email protected]>>>>> > 
>>>>> wrote:
>>>>>
>>>>>> > SeaBIOS is a legacy BIOS implementation, so no it can't boot UEFI boot 
>>>>>> > media. Likewise, Tianocore is a pure UEFI implementation, and doesn't 
>>>>>> > boot legacy boot media / legacy installed OSes. There should be a way 
>>>>>> > to use SeaBIOS as a CSM for Tianocore, but currently it's not working 
>>>>>> > / not implemented (I tried briefly awhile back but didn't have any 
>>>>>> > luck).
>>>>>>
>>>>>> I tried to follow the steps to build tianocore for SeaBIOS >>>>>> 
>>>>>> https://www.coreboot.org/TianoCore>>>>>>  But I get these errors. It 
>>>>>> says it can't found nmake.exe... Is this should be build on Windows? How 
>>>>>> to setup the environment?
>>>>>>
>>>>>>
>>>>>
>>>>> The Tianocore package which ran on top of SeaBIOS, DuetPkg, was remove 
>>>>> long ago, so that's not a viable approach (and it was buggy AF anyway). 
>>>>> You'd need to build SeaBIOS as a CSM, package it with Tianocore, and add 
>>>>> the appropriate hooks. Then debug from there 
>>>>>
>>>>>
>>>>>>
>>>>>> [dalao@pc tianocore2018]$ git clone --branch UDK2018 >>>>>> 
>>>>>> https://github.com/tianocore/edk2>>>>>>                   
>>>>>> Cloning into 'edk2'...
>>>>>> remote: Enumerating objects: 66, done.
>>>>>> remote: Counting objects: 100% (66/66), done.
>>>>>> remote: Compressing objects: 100% (43/43), done.
>>>>>> remote: Total 342725 (delta 35), reused 31 (delta 23), pack-reused 342659
>>>>>> Receiving objects: 100% (342725/342725), 286.48 MiB | 436.00 KiB/s, done.
>>>>>> Resolving deltas: 100% (247240/247240), done.
>>>>>> Updating files: 100% (15636/15636), done.
>>>>>> [dalao@pc tianocore2018]$ cd edk2/
>>>>>> [dalao@pc edk2]$ cd BaseTools
>>>>>> [dalao@pc BaseTools]$ export EDK_TOOLS_PATH=$(pwd)
>>>>>> [dalao@pc BaseTools]$ cd ../
>>>>>> [dalao@pc edk2]$ . ./edksetup.sh BaseTools
>>>>>> WORKSPACE: 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2
>>>>>> EDK_TOOLS_PATH: 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/BaseTools
>>>>>> CONF_PATH: 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf
>>>>>> Copying $EDK_TOOLS_PATH/Conf/build_rule.template
>>>>>>      to 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf/build_rule.txt
>>>>>> Copying $EDK_TOOLS_PATH/Conf/tools_def.template
>>>>>>      to 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf/tools_def.txt
>>>>>> Copying $EDK_TOOLS_PATH/Conf/target.template
>>>>>>      to 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf/target.txt
>>>>>> [dalao@pc edk2]$ build -p DuetPkg/DuetPkgIa32.dsc
>>>>>> Build environment: Linux-5.4.22-1-MANJARO-x86_64-with-glibc2.2.5
>>>>>> Build start time: 11:48:18, Mar.15 2020
>>>>>>
>>>>>> WORKSPACE        = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2
>>>>>> ECP_SOURCE       = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/EdkCompatibilityPkg
>>>>>> EDK_SOURCE       = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/EdkCompatibilityPkg
>>>>>> EFI_SOURCE       = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/EdkCompatibilityPkg
>>>>>> EDK_TOOLS_PATH   = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/BaseTools
>>>>>> CONF_PATH        = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf
>>>>>> POSTBUILD        = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/DuetPkg/PostBuild.bat
>>>>>>  -p DuetPkg/DuetPkgIa32.dsc -b DEBUG -a IA32 -t MYTOOLS 
>>>>>> --conf=/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf
>>>>>>  all
>>>>>>
>>>>>>
>>>>>> Architecture(s)  = IA32
>>>>>> Build target     = DEBUG
>>>>>> Toolchain        = MYTOOLS
>>>>>>
>>>>>> Active Platform          = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/DuetPkg/DuetPkgIa32.dsc
>>>>>> Flash Image Definition   = 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/DuetPkg/DuetPkg.fdf
>>>>>>
>>>>>> Processing meta-data ......... done!
>>>>>> Building ... 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>>>>>>  [IA32]
>>>>>> Building ... 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
>>>>>>  [IA32]
>>>>>> Building ... 
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
>>>>>>  [IA32]
>>>>>> /bin/sh: Vcbinnmake.exe: command not found
>>>>>>
>>>>>>
>>>>>> build.py...
>>>>>> : error 7000: Failed to execute command
>>>>>>         Vc\bin\nmake.exe /nologo tbuild 
>>>>>> [/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Build/DuetPkgIA32/DEBUG_MYTOOLS/IA32/MdePkg/Library/BasePcdLibNull/BasePcdLibNull]
>>>>>>
>>>>>>
>>>>>> build.py...
>>>>>> : error 7000: Failed to execute command
>>>>>>         Vc\bin\nmake.exe /nologo tbuild 
>>>>>> [/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Build/DuetPkgIA32/DEBUG_MYTOOLS/IA32/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull]
>>>>>>
>>>>>>
>>>>>> build.py...
>>>>>> : error 7000: Failed to execute command
>>>>>>         Vc\bin\nmake.exe /nologo tbuild 
>>>>>> [/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Build/DuetPkgIA32/DEBUG_MYTOOLS/IA32/MdePkg/Library/BaseMemoryLib/BaseMemoryLib]
>>>>>>
>>>>>>
>>>>>> build.py...
>>>>>> : error F002: Failed to build module
>>>>>>         
>>>>>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>>>>>>  [IA32, MYTOOLS, DEBUG]
>>>>>>
>>>>>> - Failed -
>>>>>> Build end time: 11:48:28, Mar.15 2020
>>>>>> Build total time: 00:00:10
>>>>>>
>>>>>> [dalao@pc edk2]$
>>>>>>
>>>>>> > Personally, given that it's 2020, I'd not bother with legacy-installed 
>>>>>> > OSes (or SeaBIOS) outside of use with emulation or if a special use 
>>>>>> > case demands it. Esp given that it's easy enough to migrate Windows 
>>>>>> > from legacy to UEFI.
>>>>>>
>>>>>> I tried the tianocore payload by selecting it and using all default 
>>>>>> settings. But I can't see anything like the SeaBIOS for me to select the 
>>>>>> boot media. But it does boot the archlinux in UEFI mode. I'm wondering 
>>>>>> is this the problem with my display (I have tried both "Use libgfxinit" 
>>>>>> and "Run VGA Option ROMs" with tianocore) or the tianocore has nothing 
>>>>>> to display to select boot media?
>>>>>>
>>>>>> Mar 15, 2020, 10:08 by >>>>>> [email protected]>>>>>> :
>>>>>>
>>>>>>> On Sat, Mar 14, 2020 at 8:33 PM Dalao via coreboot
>>>>>>> <>>>>>>> [email protected]>>>>>>> > wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> I have just corebooted T440p. Then I noticed some graphic display 
>>>>>>>> problems...
>>>>>>>>
>>>>>>>> Firstly I "Use libgfxinit" with "Legacy VGA text mode", insert a usb 
>>>>>>>> disk with archlinux's latest install image iso. I can see a text mode 
>>>>>>>> of archlinux's start screen.
>>>>>>>>
>>>>>>>> https://imgur.com/0QqQgJn
>>>>>>>>
>>>>>>>> But when I hit enter, it shows some log till "Triggering uevents" and 
>>>>>>>> then there is no display...
>>>>>>>>
>>>>>>>> https://imgur.com/CHI9jeE
>>>>>>>>
>>>>>>>> Then I tried "Use libgfxinit" with "Linear "high-resolution" 
>>>>>>>> framebuffer". I can see the graphic mode of archlinux's start screen, 
>>>>>>>> but again after I hit enter and see some logs, there is no display... 
>>>>>>>> Also, the display is not ideal, just at the top left corner not full 
>>>>>>>> screen.
>>>>>>>>
>>>>>>>> https://imgur.com/dvYLERu
>>>>>>>>
>>>>>>>> Also, under this setting, the nvramcui's display becomes bad.
>>>>>>>>
>>>>>>>> https://imgur.com/7YG0kOX
>>>>>>>>
>>>>>>>
>>>>>>> unfortunately, many legacy bootloaders seem to assume a full array of
>>>>>>> VESA video modes will be available, and fail less than gracefully when
>>>>>>> that's not the case. With libgfxinit there is no ability to change
>>>>>>> video modes -- all that's available is either the native panel
>>>>>>> resolution (high resolution framebuffer) or VGA text mode.
>>>>>>>
>>>>>>>> Next I included pci8086,0416.rom vbios and tried "Run VGA Option ROMs" 
>>>>>>>> with "Legacy VGA text mode". This time, I can't see the archlinux 
>>>>>>>> start screen as shown above, there is no display at the beginning. But 
>>>>>>>> I can hit the enter blindly. Then after a while I can see archlinux is 
>>>>>>>> booting and the first line I can see is "Probing EDD (edd=off to 
>>>>>>>> disable)...ok" the archlinux starts ok.
>>>>>>>>
>>>>>>>> Lastly I also tried "Run VGA Option ROMs" with "Set framebuffer 
>>>>>>>> graphics resolution" with the default "framebuffer graphics resolution 
>>>>>>>> (1024x768 16.8M-color (8:8:8))" (although my T440p's resolution is 
>>>>>>>> 1920x1080). Also the Framebuffer mode is changed to "VESA 
>>>>>>>> framebuffer". I still can't see archlinux's start screen...
>>>>>>>>
>>>>>>>>
>>>>>>>> How to make everything work like the vendor BIOS? i.e., I can see both 
>>>>>>>> the archlinux's start screen and it's booting.
>>>>>>>>
>>>>>>>
>>>>>>> add the VGA BIOS. set the PCI IDs correctly. Set coreboot display init
>>>>>>> to none, and let SeaBIOS run the VBIOS.
>>>>>>>
>>>>>>>> How to fix the nvramcui under "high-resolution" framebuffer"?
>>>>>>>>
>>>>>>>
>>>>>>> will work properly with above settings
>>>>>>>
>>>>>>>> Also, as for now it appears seabios can't boot UEFI media. Tianocore 
>>>>>>>> by default can't boot Linux/Windows installed by legacy method 
>>>>>>>> (installed when using seabios). my goal is to add UEFI support through 
>>>>>>>> tianocore as seabios payload (or through tianocore's CSM compatibility 
>>>>>>>> support module? ). So that it can boot both UEFI installed Windows or 
>>>>>>>> legacy installed Windows like the vendor bios can do. How to achieve 
>>>>>>>> this?
>>>>>>>>
>>>>>>>
>>>>>>> SeaBIOS is a legacy BIOS implementation, so no it can't boot UEFI boot
>>>>>>> media. Likewise, Tianocore is a pure UEFI implementation, and doesn't
>>>>>>> boot legacy boot media / legacy installed OSes. There should be a way
>>>>>>> to use SeaBIOS as a CSM for Tianocore, but currently it's not working
>>>>>>> / not implemented (I tried briefly awhile back but didn't have any
>>>>>>> luck).
>>>>>>>
>>>>>>> Personally, given that it's 2020, I'd not bother with legacy-installed
>>>>>>> OSes (or SeaBIOS) outside of use with emulation or if a special use
>>>>>>> case demands it. Esp given that it's easy enough to migrate Windows
>>>>>>> from legacy to UEFI.
>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> coreboot mailing list -- >>>>>>>> [email protected]
>>>>>>>> To unsubscribe send an email to >>>>>>>> [email protected]
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> coreboot mailing list -- >>>>>>> [email protected]
>>>>>>> To unsubscribe send an email to >>>>>>> [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>> _______________________________________________
>>>> coreboot mailing list -- >>>> [email protected]
>>>> To unsubscribe send an email to >>>> [email protected]
>>>>
>>
>>

_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to