User:Fchmmr

From coreboot
Revision as of 20:34, 5 December 2013 by Fchmmr (talk | contribs) (Created page with "For X60 Compile GNUtoo's fork of coreboot with: - GRUB2 payload - native graphics (replacement for VGA option ROM / Video BIOS / VBIOS) This version also removes the nonfr...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

For X60

Compile GNUtoo's fork of coreboot with:

- GRUB2 payload
- native graphics (replacement for VGA option ROM / Video BIOS / VBIOS)

This version also removes the nonfree microcode. I have tested this on an X60s 170237G. GNUtoo uses this on an X60. I hope to test it on more machines also.

git clone git://gitorious.org/gnutoo-for-coreboot/build-makefiles.git (get the grub config, etc) that is where i got the grub.cfg from. rename it to coreboot.cfg and put it in the root of the grub source code directory (see below) note: i'm not using this. i adapted my own.

git clone git://gitorious.org/gnutoo-for-coreboot/coreboot.git cd coreboot git checkout 6ec9b1637b4e75de0ae4e2de258f72a7811aafbf (the checkout gets gnutoo's patches to remove microcode, etc)

the .config (included in this post), put it in the coreboot directory. I got it from here, which GNUtoo uploaded: http://paste.debian.net/68794

Now coreboot is there, with the right config.

Now need to compile grub2 use this guide: http://www.coreboot.org/index.php?title=GRUB2&oldid=11812 (note to self: include a backup of this)

come out of coreboot: cd ..

do that: git clone git://git.savannah.gnu.org/grub.git cd grub ./autogen.sh ./configure --with-platform=coreboot make

Now we need to create a grub elf file as the payload: note: in grub source root directory, make a coreboot.cfg with your grub config text inside

do that command: ./grub-mkstandalone --grub-mkimage=./grub-mkimage -O i386-coreboot -o grub2-X60.elf --modules='ahci pata ehci uhci ohci usb_keyboard usbms part_msdos xfs ext2 fat at_keyboard part_gpt usbserial_usbdebug cbfs' --install-modules='ls linux search configfile normal cbtime cbls memrw iorw minicmd lsmmap lspci halt reboot hexdump pcidump regexp setpci lsacpi chain test' --fonts= --themes= --locales= -d grub-core/ /boot/grub/grub.cfg=coreboot.cfg


test qemu.elf in a coreboot.rom compiled for qemu first (not covered in this guide). assuming that it works, continue on...

ok, just put grub2-X60.elf (it will be in the root of the grub source directory) in coreboot directory. in make menuconfig, change the path to say grub2-X60.elf then: make

and now a coreboot.rom is in ./build/

if you are flashing this for the first time on a machine that has the factory bios, then using the coreboot.rom just follow the wiki insturctions, especially with regards to the dd commands and the bucts commands

most important: cd build dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc

flash the resulting coreboot.com like you normally would. (with the dd commands you should also be able to use the flashing procedure from factory BIOS, but I haven't tested that. yet)

see below:

---

phcoder sasy to remove memdisk.tar and rebuild grub2.elf, if you want to change something

boot from grub cli, eg: grub> linux (ahci0,1)/vmlinuz root=/dev/sda1 grub> initrd (ahci0,1)/initrd.img grub> boot (on grub command line. this can boot a kernel)

---

.config (put it in root coreboot source directory) is like this:

  1. This image was built using git revision 6ec9b1637b4e75de0ae4e2de258f72a7811aafbf

CONFIG_LOCALVERSION="7BETC7WW (2.08 )" CONFIG_CBFS_PREFIX="fallback" CONFIG_COMPILER_GCC=y CONFIG_USE_OPTION_TABLE=y CONFIG_COMPRESS_RAMSTAGE=y CONFIG_INCLUDE_CONFIG_FILE=y CONFIG_EARLY_CBMEM_INIT=y CONFIG_VENDOR_LENOVO=y CONFIG_BOARD_SPECIFIC_OPTIONS=y CONFIG_MAINBOARD_DIR="lenovo/x60" CONFIG_MAINBOARD_PART_NUMBER="ThinkPad X60 / X60s" CONFIG_IRQ_SLOT_COUNT=18 CONFIG_MAINBOARD_VENDOR="Lenovo" CONFIG_MAX_CPUS=2 CONFIG_RAMTOP=0x200000 CONFIG_HEAP_SIZE=0x4000 CONFIG_RAMBASE=0x100000 CONFIG_VGA_BIOS_ID="8086,27a2" CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_DCACHE_RAM_BASE=0xffdf8000 CONFIG_DCACHE_RAM_SIZE=0x8000 CONFIG_SERIAL_CPU_INIT=y CONFIG_ACPI_SSDTX_NUM=0 CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 CONFIG_ID_SECTION_OFFSET=0x80 CONFIG_XIP_ROM_SIZE=0x10000 CONFIG_MMCONF_SUPPORT_DEFAULT=y CONFIG_BOARD_LENOVO_X60=y CONFIG_MAX_REBOOT_CNT=1 CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="LENOVO" CONFIG_SEABIOS_PS2_TIMEOUT=3000 CONFIG_LOGICAL_CPUS=y CONFIG_IOAPIC=y CONFIG_SMP=y CONFIG_TTYS0_BAUD=115200 CONFIG_TTYS0_BASE=0x3f8 CONFIG_TTYS0_LCS=3 CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 CONFIG_CONSOLE_SERIAL8250=y CONFIG_USBDEBUG=y CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0 CONFIG_CPU_ADDR_BITS=32 CONFIG_BOARD_ROMSIZE_KB_2048=y CONFIG_COREBOOT_ROMSIZE_KB_2048=y CONFIG_COREBOOT_ROMSIZE_KB=2048 CONFIG_ROM_SIZE=0x200000 CONFIG_MAINBOARD_SERIAL_NUMBER="L3BY949" CONFIG_MAINBOARD_VERSION="ThinkPad X60" CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="ThinkPad X60 / X60s" CONFIG_ARCH_X86=y CONFIG_X86_ARCH_OPTIONS=y CONFIG_MARK_GRAPHICS_MEM_WRCOMB=y CONFIG_AP_IN_SIPI_WAIT=y CONFIG_STACK_SIZE=0x1000 CONFIG_NUM_IPI_STARTS=2 CONFIG_X86_BOOTBLOCK_SIMPLE=y CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" CONFIG_PC80_SYSTEM=y CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/i945/bootblock.c" CONFIG_HAVE_CMOS_DEFAULT=y CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801gx/bootblock.c" CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y CONFIG_HPET_ADDRESS=0xfed00000 CONFIG_HAVE_ARCH_MEMSET=y CONFIG_HAVE_ARCH_MEMCPY=y CONFIG_HAVE_ARCH_MEMMOVE=y CONFIG_SOCKET_SPECIFIC_OPTIONS=y CONFIG_HAVE_INIT_TIMER=y CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0 CONFIG_CPU_INTEL_MODEL_6EX=y CONFIG_CPU_INTEL_MODEL_6FX=y CONFIG_SMM_TSEG_SIZE=0 CONFIG_CPU_INTEL_SOCKET_MFCPGA478=y CONFIG_SSE2=y CONFIG_UDELAY_LAPIC=y CONFIG_LAPIC_MONOTONIC_TIMER=y CONFIG_TSC_SYNC_MFENCE=y CONFIG_CACHE_ROM=y CONFIG_CACHE_AS_RAM=y CONFIG_AP_SIPI_VECTOR=0xfffff000 CONFIG_MMX=y CONFIG_SSE=y CONFIG_CPU_MICROCODE_CBFS_NONE=y CONFIG_VIDEO_MB=0 CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y CONFIG_NORTHBRIDGE_INTEL_I945=y CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GM=y CONFIG_CHANNEL_XOR_RANDOMIZATION=y CONFIG_CBFS_SIZE=0x200000 CONFIG_HPET_MIN_TICKS=0x80 CONFIG_MAX_PIRQ_LINKS=4 CONFIG_EHCI_BAR=0xfef00000 CONFIG_EHCI_DEBUG_OFFSET=0xa0 CONFIG_AMD_SB_SPI_TX_LEN=4 CONFIG_SOUTHBRIDGE_INTEL_COMMON=y CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y CONFIG_SOUTHBRIDGE_RICOH_RL5C476=y CONFIG_SUPERIO_NSC_PC87382=y CONFIG_SUPERIO_NSC_PC87392=y CONFIG_EC_ACPI=y CONFIG_EC_LENOVO_H8=y CONFIG_EC_LENOVO_PMH7=y CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y CONFIG_MAINBOARD_DO_EDID=y CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y CONFIG_PCI=y CONFIG_PCIX_PLUGIN_SUPPORT=y CONFIG_PCIEXP_PLUGIN_SUPPORT=y CONFIG_AGP_PLUGIN_SUPPORT=y CONFIG_CARDBUS_PLUGIN_SUPPORT=y CONFIG_PCIEXP_COMMON_CLOCK=y CONFIG_PCIEXP_ASPM=y CONFIG_PCI_BUS_SEGN_BITS=0 CONFIG_FRAMEBUFFER_VESA_MODE_117=y CONFIG_FRAMEBUFFER_VESA_MODE=0x117 CONFIG_DRIVERS_ICS_954309=y CONFIG_MMCONF_SUPPORT=y CONFIG_EARLY_CONSOLE=y CONFIG_SQUELCH_EARLY_SMP=y CONFIG_CONSOLE_SERIAL=y CONFIG_CONSOLE_SERIAL_COM1=y CONFIG_CONSOLE_SERIAL_115200=y CONFIG_HAVE_USBDEBUG=y CONFIG_USBDEBUG_IN_ROMSTAGE=y CONFIG_USBDEBUG_HCD_INDEX=0 CONFIG_USBDEBUG_DEFAULT_PORT=1 CONFIG_USBDEBUG_DONGLE_STD=y CONFIG_USBDEBUG_OPTIONAL_HUB_PORT=0 CONFIG_CONSOLE_CBMEM=y CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x10000 CONFIG_CONSOLE_CAR_BUFFER_SIZE=0xc00 CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y CONFIG_NO_POST=y CONFIG_HAVE_UART_IO_MAPPED=y CONFIG_HAVE_ACPI_RESUME=y CONFIG_HAVE_HARD_RESET=y CONFIG_HAVE_MONOTONIC_TIMER=y CONFIG_HAVE_OPTION_TABLE=y CONFIG_HAVE_SMI_HANDLER=y CONFIG_CACHE_ROM_SIZE=0x200000 CONFIG_USE_WATCHDOG_ON_BOOT=y CONFIG_GFXUMA=y CONFIG_RELOCATABLE_MODULES=y CONFIG_HAVE_ACPI_TABLES=y CONFIG_HAVE_MP_TABLE=y CONFIG_HAVE_PIRQ_TABLE=y CONFIG_MULTIBOOT=y CONFIG_GENERATE_ACPI_TABLES=y CONFIG_GENERATE_MP_TABLE=y CONFIG_GENERATE_PIRQ_TABLE=y CONFIG_GENERATE_SMBIOS_TABLES=y CONFIG_PAYLOAD_ELF=y CONFIG_PAYLOAD_FILE="../config/grub2-x60.elf" CONFIG_COMPRESSED_PAYLOAD_LZMA=y CONFIG_HAVE_DEBUG_RAM_SETUP=y CONFIG_WARNINGS_ARE_ERRORS=y