diff --git a/blobs/xx30/README_vbios b/blobs/xx30/README_vbios new file mode 100644 index 00000000..bebcc521 --- /dev/null +++ b/blobs/xx30/README_vbios @@ -0,0 +1,15 @@ +The vbios scripts in this directory help owners with discrete GPU's to initialize them. In order to do so it is required to place the iGPU and dGPU roms into this folder. These can either be extracted from the backup of the bios or extracted automatically from bios updates provided online by Lenovo using the VBiosFinder tool (see https://github.com/coderobe/VBiosFinder). + +The vbios scripts in this directory install the dependencies for VBiosFinder. They then run VBiosFinder against the latest relevant bios update, which finds and extracts the relevant roms. Finally, the scripts rename and move the relevant extracted roms, place them in this blobs directory, and clean up. + +The scripts require sudo to run, but should be run initally without sudo (e.g. ./vbios_w530.sh). The bios updates used, for example, are: + +* For the w530: https://download.lenovo.com/pccbbs/mobiles/g5uj39us.exe +* For the t530: https://download.lenovo.com/pccbbs/mobiles/g4uj41us.exe + +The scripts have been successfully tested on Debian 10 and Ubuntu 21.04. + +NOTE: Once built the dGPU will still not yet be fully initialized. After successfully building the relevant rom for your board and before flashing it is necessary to build and use the nvramtool to change the value from Integrated-Only graphics to either Dual Graphics or Discrete Graphics. In the build directory find the coreboot version that you have just built. Navigate into that directory > utils > nvramtool and make the nvramtool. Then, for example, to initialize dual graphics run: + +nvramtool -C /path/to/12MB/rom -w hybrid_graphics_mode="Dual Graphics" + diff --git a/boards/t530-hotp-maximized/t530-hotp-maximized.config b/boards/t530-hotp-maximized/t530-hotp-maximized.config index f30e6b4f..3c6dfdc8 100644 --- a/boards/t530-hotp-maximized/t530-hotp-maximized.config +++ b/boards/t530-hotp-maximized/t530-hotp-maximized.config @@ -6,6 +6,7 @@ # - Note that this MAC address can be modified under build/coreboot-VER/util/bincfg/gbe-82579LM.set # # - Includes Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code) +# This board is designed for a t530 without a dGPU. It will work just fine for a board with a dGPU, except you will not be able to use an external monitor via the mini-displayport or the dock's displayport, though external monitors will work via VGA ports. To initialize the dGPU please use one of the dgpu boards. export CONFIG_COREBOOT=y export CONFIG_COREBOOT_VERSION=4.13 export CONFIG_LINUX_VERSION=4.14.62 diff --git a/boards/t530-maximized/t530-maximized.config b/boards/t530-maximized/t530-maximized.config index f3845732..9760e3d9 100644 --- a/boards/t530-maximized/t530-maximized.config +++ b/boards/t530-maximized/t530-maximized.config @@ -6,6 +6,7 @@ # - Note that this MAC address can be modified under build/coreboot-VER/util/bincfg/gbe-82579LM.set # # - Includes Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code) +# This board is designed for a t530 without a dGPU. It will work just fine for a board with a dGPU, except you will not be able to use an external monitor via the mini-displayport or the dock's displayport, though external monitors will work via VGA ports. To initialize the dGPU please use one of the dgpu boards. export CONFIG_COREBOOT=y export CONFIG_COREBOOT_VERSION=4.13 export CONFIG_LINUX_VERSION=4.14.62 diff --git a/boards/w530-hotp-maximized/w530-hotp-maximized.config b/boards/w530-hotp-maximized/w530-hotp-maximized.config index cc378cbc..a2e7e3e9 100644 --- a/boards/w530-hotp-maximized/w530-hotp-maximized.config +++ b/boards/w530-hotp-maximized/w530-hotp-maximized.config @@ -6,6 +6,7 @@ # - Note that this MAC address can be modified under build/coreboot-VER/util/bincfg/gbe-82579LM.set # # - Includes Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code) +# This board ignores the in-built dGPU that comes with all w530's. In doing so the dGPU will not be initialized. This has some benefits in terms of reduced complexity in working with OS's with poor support for NVIDIA, better battery life and lower heat (making use of the thicker heatsink from a dGPU). Conversely, if you do not initialize the dGPU you will be unable to use an external monitor. To initialize the dGPU please use the dGPU boards that corresponds with the model of dGPU included with your device. export CONFIG_COREBOOT=y export CONFIG_COREBOOT_VERSION=4.13 export CONFIG_LINUX_VERSION=4.14.62 diff --git a/boards/w530-maximized/w530-maximized.config b/boards/w530-maximized/w530-maximized.config index f151bb83..735a64e4 100644 --- a/boards/w530-maximized/w530-maximized.config +++ b/boards/w530-maximized/w530-maximized.config @@ -6,6 +6,7 @@ # - Note that this MAC address can be modified under build/coreboot-VER/util/bincfg/gbe-82579LM.set # # - Includes Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code) +# This board ignores the in-built dGPU that comes with all w530's. In doing so the dGPU will not be initialized. This has some benefits in terms of reduced complexity in working with OS's with poor support for NVIDIA, better battery life and lower heat (making use of the thicker heatsink from a dGPU). Conversely, if you do not initialize the dGPU you will be unable to use an external monitor. To initialize the dGPU please use the dGPU boards that corresponds with the model of dGPU included with your device. export CONFIG_COREBOOT=y export CONFIG_COREBOOT_VERSION=4.13 export CONFIG_LINUX_VERSION=4.14.62 diff --git a/config/coreboot-t530-hotp-maximized.config b/config/coreboot-t530-hotp-maximized.config index b3f6dabd..8f759fec 100644 --- a/config/coreboot-t530-hotp-maximized.config +++ b/config/coreboot-t530-hotp-maximized.config @@ -11,6 +11,8 @@ CONFIG_BOARD_LENOVO_T530=y CONFIG_NO_POST=y CONFIG_UART_PCI_ADDR=0 # CONFIG_CONSOLE_SERIAL is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000 CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5=y CONFIG_PAYLOAD_LINUX=y diff --git a/config/coreboot-t530-maximized.config b/config/coreboot-t530-maximized.config index d4fa81db..7aca922a 100644 --- a/config/coreboot-t530-maximized.config +++ b/config/coreboot-t530-maximized.config @@ -12,6 +12,8 @@ CONFIG_NO_POST=y CONFIG_UART_PCI_ADDR=0 # CONFIG_CONSOLE_SERIAL is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000 +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5=y CONFIG_PAYLOAD_LINUX=y CONFIG_PAYLOAD_FILE="../../build/t530-maximized/bzImage" diff --git a/config/coreboot-w530-hotp-maximized.config b/config/coreboot-w530-hotp-maximized.config index b621d64c..54313a99 100644 --- a/config/coreboot-w530-hotp-maximized.config +++ b/config/coreboot-w530-hotp-maximized.config @@ -11,6 +11,8 @@ CONFIG_BOARD_LENOVO_W530=y CONFIG_NO_POST=y CONFIG_UART_PCI_ADDR=0 # CONFIG_CONSOLE_SERIAL is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000 CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5=y CONFIG_PAYLOAD_LINUX=y diff --git a/config/coreboot-w530-maximized.config b/config/coreboot-w530-maximized.config index 9e376828..06934316 100644 --- a/config/coreboot-w530-maximized.config +++ b/config/coreboot-w530-maximized.config @@ -11,6 +11,8 @@ CONFIG_BOARD_LENOVO_W530=y CONFIG_NO_POST=y CONFIG_UART_PCI_ADDR=0 # CONFIG_CONSOLE_SERIAL is not set +CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y +CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000 CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5=y CONFIG_PAYLOAD_LINUX=y