> 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]

