Tint: Difference between revisions
m (→coreboot) |
PaulePanter (talk | contribs) (→tint: Use Tinycurses instead of PDCurses as Curses implementation.) |
||
(13 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:Coreboot libpayload tint.png|thumb|right|The [[tint]] payload.]] | [[Image:Coreboot libpayload tint.png|thumb|right|The [[tint]] payload.]] | ||
'''[http://oasis.frogfoot.net/code/tint | '''[http://oasis.frogfoot.net/code/tint/ tint]''' is a small curses-based game. | ||
We have ported this game to [[libpayload]] so it can now be used as a coreboot [[Payloads|payload]]. | We have ported this game to [[libpayload]] so it can now be used as a coreboot [[Payloads|payload]]. | ||
Line 7: | Line 7: | ||
== Building == | == Building == | ||
=== | === tint === | ||
First, get tint itself and patch it: | |||
$ git clone http://review.coreboot.org/p/coreboot.git | |||
$ cd coreboot/payloads/external/tint | |||
$ wget http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool/main/t/tint/tint_0.03b.tar.gz | |||
$ tar xfvz tint_0.03b.tar.gz | |||
$ cd tint-0.03b | |||
$ patch -p1 < ../libpayload_tint.patch | |||
Then, build [[libpayload]]: | |||
$ cd ../../../libpayload | |||
$ cd | |||
$ make menuconfig | $ make menuconfig | ||
Under ''Standard Libraries'' choose Tinycurses instead of the default PDCurses as the Curses implementation as building Tint fails with the PDCurses implementation. Then exit the Kconfig menu and say ''Yes'' to saving the config. | |||
$ make | $ make | ||
$ make install | |||
The '''libpayload''' directory has to be in the '''tint-0.03b''' directory: | |||
$ cd ../external/tint/tint-0.03b | |||
$ ln -s ../../../libpayload/install/libpayload libpayloadbin | |||
Finally, build tint itself: | |||
$ cd .. | $ cd .. | ||
$ make | $ make | ||
The file '''tint | The ELF file '''tint''' is your final payload which you can use with coreboot, either on real hardware or in a [[QEMU]] image. | ||
=== coreboot === | === coreboot === | ||
Finally, you have to build coreboot | Finally, you have to build coreboot with tint as payload: | ||
$ cd .. | $ cd ../../../.. | ||
$ cp ../tint/tint-0.03b/tint payload.elf | |||
$ cp tint-0.03b/tint | |||
$ make menuconfig | $ make menuconfig | ||
Now enter the '''Payload''' menu and select '''Payload type''' and then '''An ELF executable payload file'''. | 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''' | The file '''build/coreboot.rom''' is your final coreboot image, which also contains the tint payload. | ||
== Running tint in QEMU == | == Running tint in QEMU == | ||
For running the coreboot+libpayload+tint image in QEMU, | For running the coreboot+libpayload+tint image in [[QEMU]], you need a patched version of '''vgabios-cirrus.bin''' in your '''build''' directory first, and you also need to rename or copy '''coreboot.rom''' to '''bios.bin''': | ||
$ cd build | $ cd build | ||
$ mv coreboot.rom bios.bin | |||
$ 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 tint in QEMU: | You can now run tint in [[QEMU]]: | ||
$ qemu -L build -hda /dev/zero -serial stdio | $ qemu -L build -hda /dev/zero -serial stdio | ||
Line 63: | Line 70: | ||
== Ready-made QEMU image == | == Ready-made QEMU image == | ||
Please follow [ | Please follow [[QEMU#coreboot_v3_.2B_libpayload_.2B_tint these instructions]] if you want to try out coreboot and tint in [[QEMU]]. | ||
{{PD-self}} | {{PD-self}} |
Latest revision as of 09:29, 16 May 2014
tint is a small curses-based game.
We have ported this game to libpayload so it can now be used as a coreboot payload.
Building
tint
First, get tint itself and patch it:
$ git clone http://review.coreboot.org/p/coreboot.git $ cd coreboot/payloads/external/tint $ wget http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool/main/t/tint/tint_0.03b.tar.gz $ tar xfvz tint_0.03b.tar.gz $ cd tint-0.03b $ patch -p1 < ../libpayload_tint.patch
Then, build libpayload:
$ cd ../../../libpayload $ make menuconfig
Under Standard Libraries choose Tinycurses instead of the default PDCurses as the Curses implementation as building Tint fails with the PDCurses implementation. Then exit the Kconfig menu and say Yes to saving the config.
$ make $ make install
The libpayload directory has to be in the tint-0.03b directory:
$ cd ../external/tint/tint-0.03b $ ln -s ../../../libpayload/install/libpayload libpayloadbin
Finally, build tint itself:
$ cd .. $ make
The ELF file tint is your final payload which you can use with coreboot, either on real hardware or in a QEMU image.
coreboot
Finally, you have to build coreboot with tint as payload:
$ cd ../../../.. $ cp ../tint/tint-0.03b/tint payload.elf $ 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 tint payload.
Running tint in QEMU
For running the coreboot+libpayload+tint image in QEMU, you need a patched version of vgabios-cirrus.bin in your build directory first, and you also need to rename or copy coreboot.rom to bios.bin:
$ cd build $ mv coreboot.rom bios.bin $ wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip $ unzip Vgabios-cirrus.zip $ cd ..
You can now run tint in QEMU:
$ qemu -L build -hda /dev/zero -serial stdio
Ready-made QEMU image
Please follow QEMU#coreboot_v3_.2B_libpayload_.2B_tint these instructions if you want to try out coreboot and tint in QEMU.
I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.
In case this is not legally possible: |