Coreinfo: Difference between revisions

From coreboot
Jump to navigation Jump to search
(→‎Building coreinfo: svn bad. git good.)
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''coreinfo''' is a small informational [[Payloads|payload]] for coreboot. Currently, it can display CPU information, PCI information, coreboot table information, and show an NVRAM dump.
'''coreinfo''' is a small informational [[Payloads|payload]] for coreboot. Currently, it can display CPU information, PCI information, coreboot table information, show an NVRAM dump, as well as a RAM dump.


== Screenshots ==
== Screenshots ==


<gallery>
<gallery perrow="5">
Image:Coreinfo cpu.png|<small>CPU info</small>
Image:Coreinfo cpu.png|<small>CPU info</small>
Image:Coreinfo pci.png|<small>PCI info</small>
Image:Coreinfo pci.png|<small>PCI info</small>
Image:Coreinfo coreboot.png|<small>coreboot table</small>
Image:Coreinfo coreboot.png|<small>coreboot table</small>
Image:Coreinfo nvram.png|<small>NVRAM dump</small>
Image:Coreinfo nvram.png|<small>NVRAM dump</small>
Image:Coreinfo ramdump.jpg|<small>RAM dump</small>
</gallery>
</gallery>


== Building coreinfo ==
== Building coreinfo ==
[[libpayload]] and coreinfo are in the '''payloads/''' directory of the coreboot tree. If you have already checked out the tree, you can skip the git clone steps below.


=== libpayload ===
=== libpayload ===
The coreinfo payload uses [[libpayload]], thus you need to get that first and build it:
The coreinfo payload uses [[libpayload]], thus you need to get that first and build it:


  $ mkdir foo
  $ '''git clone http://review.coreboot.org/p/coreboot'''
$ cd foo
  $ '''cd coreboot/payloads/libpayload'''
$ svn co svn://coreboot.org/repos/trunk/payloads/libpayload
  $ '''make menuconfig'''
  $ cd libpayload
  $ '''make install'''
  $ make menuconfig
  $ make


=== coreinfo ===
=== coreinfo ===
Line 26: Line 28:
You can then get coreinfo itself and build it:
You can then get coreinfo itself and build it:


  $ cd ..
  $ '''cd coreboot/payloads/coreinfo'''
$ svn co svn://coreboot.org/repos/trunk/payloads/coreinfo
  $ '''make menuconfig'''
  $ cd coreinfo
  $ '''make'''
$ make menuconfig
  $ make


The file '''build/coreinfo.elf''' is your final coreinfo payload which you can use with coreboot (v2 or v3), either on real hardware or in a QEMU image.
The file '''build/coreinfo.elf''' is your final coreinfo payload which you can use with coreboot, either on real hardware or in a [[QEMU]] image.


=== coreboot ===
=== coreboot ===


Finally, you have to build coreboot (v3 in this example) with coreinfo as payload:
Finally, you have to build coreboot with coreinfo as payload:


  $ cd ..
  $ '''cp coreboot/payloads/coreinfo/build/coreinfo.elf coreboot/payload.elf'''
$ svn co svn://coreboot.org/repository/coreboot-v3
  $ '''cd coreboot'''
$ cp coreinfo/build/coreinfo.elf coreboot-v3/payload.elf
  $ '''make menuconfig'''
  $ cd coreboot-v3
  $ make menuconfig


Now enter the '''Payload''' menu and select '''Payload type''' and then '''An ELF executable payload file'''. Now exit the menu, save your settings, and build coreboot:
Now enter the '''Payload''' menu and select '''Payload type''' and then '''An ELF executable payload file'''. Then, exit the menu, save your settings, and build coreboot:


  $ make
  $ '''make'''


The file '''build/coreboot.rom''' (or '''build/bios.bin''') is your final coreboot v3 image, which also contains the coreinfo payload.
The file '''build/coreboot.rom''' is your final coreboot image, which also contains the coreinfo payload.


== Running coreinfo in QEMU ==
== Running coreinfo in QEMU ==


For running coreboot+coreinfo image in QEMU, you need a patched version of '''vgabios-cirrus.bin''' in your '''build''' directory first:
For running coreboot+coreinfo image in [[QEMU]], you need  
 
1 Previously described steps (build coreboot image for QEMU)
 
2 Patched version of '''vgabios-cirrus.bin''' in your '''build''' directory:


  $ cd build
  $ '''cd build'''
  $ wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip
  $ '''wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip'''
  $ unzip Vgabios-cirrus.zip
  $ '''unzip Vgabios-cirrus.zip'''
  $ cd ..
  $ '''cd ..'''


You can now run coreinfo in QEMU:
You can now run coreinfo in [[QEMU]]:


  $ qemu -L build -hda /dev/zero -serial stdio
  $ qemu-system-i386 -L build -hda /dev/zero -serial stdio


== Ready-made coreinfo QEMU image ==
== Ready-made coreinfo QEMU image ==


If you don't want to build libpayload, coreinfo, and coreboot from source, you can also use the [[QEMU#coreboot_v3_.2B_coreinfo|ready-made coreinfo QEMU image]] by following the instructions on that page.
If you don't want to build libpayload, coreinfo, and coreboot from source, you can also use the [[QEMU#coreboot_v3_.2B_libpayload_.2B_coreinfo|ready-made coreinfo QEMU image]] by following the instructions on that page.




{{PD-self}}
{{PD-self}}

Revision as of 18:41, 20 March 2013

coreinfo is a small informational payload for coreboot. Currently, it can display CPU information, PCI information, coreboot table information, show an NVRAM dump, as well as a RAM dump.

Screenshots

Building coreinfo

libpayload and coreinfo are in the payloads/ directory of the coreboot tree. If you have already checked out the tree, you can skip the git clone steps below.

libpayload

The coreinfo payload uses libpayload, thus you need to get that first and build it:

$ git clone http://review.coreboot.org/p/coreboot
$ cd coreboot/payloads/libpayload
$ make menuconfig
$ make install

coreinfo

You can then get coreinfo itself and build it:

$ cd coreboot/payloads/coreinfo
$ make menuconfig
$ make

The file build/coreinfo.elf is your final coreinfo payload which you can use with coreboot, either on real hardware or in a QEMU image.

coreboot

Finally, you have to build coreboot with coreinfo as payload:

$ cp coreboot/payloads/coreinfo/build/coreinfo.elf coreboot/payload.elf
$ cd coreboot
$ make menuconfig

Now enter the Payload menu and select Payload type and then An ELF executable payload file. Then, exit the menu, save your settings, and build coreboot:

$ make

The file build/coreboot.rom is your final coreboot image, which also contains the coreinfo payload.

Running coreinfo in QEMU

For running coreboot+coreinfo image in QEMU, you need

1 Previously described steps (build coreboot image for QEMU)

2 Patched version of vgabios-cirrus.bin in your build directory:

$ cd build
$ wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip
$ unzip Vgabios-cirrus.zip
$ cd ..

You can now run coreinfo in QEMU:

$ qemu-system-i386 -L build -hda /dev/zero -serial stdio

Ready-made coreinfo QEMU image

If you don't want to build libpayload, coreinfo, and coreboot from source, you can also use the ready-made coreinfo QEMU image by following the instructions on that page.


Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.