diff options
Diffstat (limited to 'sys-boot/colo')
-rw-r--r-- | sys-boot/colo/Manifest | 8 | ||||
-rw-r--r-- | sys-boot/colo/colo-1.22.ebuild | 117 | ||||
-rw-r--r-- | sys-boot/colo/files/default.colo | 25 | ||||
-rw-r--r-- | sys-boot/colo/files/menu.colo | 60 | ||||
-rw-r--r-- | sys-boot/colo/files/simple.colo | 19 | ||||
-rw-r--r-- | sys-boot/colo/metadata.xml | 12 |
6 files changed, 241 insertions, 0 deletions
diff --git a/sys-boot/colo/Manifest b/sys-boot/colo/Manifest new file mode 100644 index 000000000000..98e91a01f787 --- /dev/null +++ b/sys-boot/colo/Manifest @@ -0,0 +1,8 @@ +AUX default.colo 840 SHA256 00e33293a9bef9f3b1503c3f17a0de149efa38a89be8785bec35ff0090533c33 SHA512 fdf82c9a6adaa5711d8d2c0efc6dc051158ed815f6b870b516eec497d8ce17608fd01dc795e35aaa22cc33c97bc9458803976f5265a196adbb5a89457e88e2b0 WHIRLPOOL 30178e5658c9fdd8dcce63470e12a01552e7a8c4b54d1c369b2043f22d664548202130f987fb787a207da7f00a24d20a071d6066bb70b94a30b4099d84239611 +AUX menu.colo 1517 SHA256 a113b65fe188f1e24dfe0c3892101ed8dcee8d66910de236e71558661d7f326f SHA512 a7357e176f45d5d352ea450349986ae5493900d60b363f688371348b727859d7be9b2a732e5210beba5216bfa8b8e6c861f2433573a009aabb71569eefcc5eaa WHIRLPOOL f61a29132cd3c4092afbcf611699249fd1b27f6d63443c17a2a2906b97ca4142ad09cd2c7269f7ccdc6c34be59b55664b24fa52d4d84bc3f4ccc7537f4bb4966 +AUX simple.colo 539 SHA256 8d97a3efcb96c3f807f1e18d794a78e4a4a3d1195a8c6fc20eb9f640d9096cd8 SHA512 38b3481adbad50c344f87cfd9a5346a78158cfd298194f715b40ad582d5fad9ad6e16f773004a8732e673bc8b3791dde39da10ac85c72a8e236837ca82a91d1a WHIRLPOOL 6c08194cc5e2aba013a441a6af5562a186a7c70f8c8313db198a80912faf8f15e0a698bf58c04502f07ee420e8d4bb95415ee4ef6e3dffc72879902c8c960139 +DIST colo-1.22.tar.gz 257968 SHA256 ec51237286be9581d6be1ff3e43c9a654aaf4e1414d1bb194f02032e57119163 SHA512 c983f36991a6275d4864cbd12e00f4e73d3b722746b3d3c8442afc8fe00d5432772c93007999858afb0993e1a4917f94bc9803f017ace3e65535cad7e8fb9b1e WHIRLPOOL 5145a72c8a08f032cbd57ce8bb283dcda4d9d7902644b0dadeeaafd533b9de69ad75a467f647d995fde37b0f70c07dcc6879616952044186e59260d2b7dc3303 +EBUILD colo-1.22.ebuild 3678 SHA256 a9248ef875ba39ed0169b29a813af3ea29516129b034f9377bb8297fe3664ec5 SHA512 71e8b182907f377fd5b83aed7726af614a6640768ed2b8cef0083f08cf3820033564c53b25c15a370809ba41e409bd5f80e8b530c1f8908b7566440ef7912b72 WHIRLPOOL cf2d38fffebcfc66dc9d20520cf97ccef66cec2972901fd72cac9e2790cae87437f341becc55c887bdf6aee2af8d20d02ce8bdaa76fd5e0fb428468ddf65f687 +MISC ChangeLog 2868 SHA256 2bd56df4c64e48a856a87152d4929634515f86df1b8e31bb0538e5c2ca591b84 SHA512 9772eb1a03dad3ba88aa171331622d94da2d030df35e7a0e5f0afdbc89eefc9c279b55b6317ccb253135af3af686e4759c33e6dc4422f97b86a99c218c2c949d WHIRLPOOL 4c16a38c107b7ba49453f729bf2e6711b91aed022ee2d6c2beee2b2e23989b57f53baa93b7e15d60ec906bb5182b14878a762777ad868ec995ed4eb9d6330686 +MISC ChangeLog-2015 3884 SHA256 bc3cece21fdfde45734607e79c394987c8bc1c995c8c1e3dcd7f71cbe37a2de1 SHA512 19c8493bab3fd52a01e94ed224a6116418c97e0b3bc67e37c0b14375ff953c7a0d6b4f2807fa5ff4c5b6c9c571f1ffcbaccbfd8e29297ad372598f22db519227 WHIRLPOOL ed75405887d81fc1c7c3d10385237678fe05492b41f41e54b783e3321aace9c0c02cd3734bcea25a20b9e04731fa50e12ca9bf8831441c7325314ae54734655b +MISC metadata.xml 359 SHA256 4f3a96f14c1b5cccefa551616ce25f7e0557e3c8ad6191f9f0abf62096df1970 SHA512 5471afe51705e3499f4820e3a9e6af18166075fec78eee0f60866ce844b06f73148663630f9aedbb4f300f26608d8135385135a142533553939ed2924e97826f WHIRLPOOL 8568e33d0619a50fbd96021ea1d0188c16c00aa13adbf35a88c0e1952487ea91a632c4d8ced39975b8decb15ec81e5f086e7c43233fffa655ec3d2db589e27c9 diff --git a/sys-boot/colo/colo-1.22.ebuild b/sys-boot/colo/colo-1.22.ebuild new file mode 100644 index 000000000000..94a56a3c4d50 --- /dev/null +++ b/sys-boot/colo/colo-1.22.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +inherit eutils toolchain-funcs + +DESCRIPTION="CObalt LOader - Modern bootloader for Cobalt MIPS machines" +HOMEPAGE="http://www.colonel-panic.org/cobalt-mips/" +SRC_URI="http://www.colonel-panic.org/cobalt-mips/colo/colo-${PV}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~mips" +IUSE="" +DEPEND="" +RDEPEND="" +RESTRICT="strip" + +src_unpack() { + unpack ${A} +} + +src_compile() { + echo -e "" + einfo ">>> Building the CoLo Bootloader ..." + + # Remove -Werror from CFLAGS + # gcc-4.3.x is more strict; We'll go back and fix later + cd "${S}" + for x in $(grep -rl "Werror" "${S}"/*); do + sed -i -e 's/\-Werror//g' "${x}" + done + + # Keep elf2rfx from automatically building via the Makefile + sed -i -e 's/tools\/elf2rfx //' "${S}"/Makefile + + # Build it first with BUILD_CC in case of cross-compiles + cd "${S}"/tools/elf2rfx + make CC="$(tc-getBUILD_CC)" || die + + # Build the rest + cd "${S}" + make clean || die # emake breaks the build + make CC="$(tc-getCC)" OBJCOPY="$(tc-getOBJCOPY)" \ + STRIP="$(tc-getSTRIP)" || die + + # Now rebuild elf2rfx again with CC so it can be installed + cd "${S}"/tools/elf2rfx + make clean || die + make CC="$(tc-getCC)" || die +} + +src_install() { + # bins + dodir /usr/lib/colo + cp binaries/colo-chain.elf "${D}"/usr/lib/colo + cp binaries/colo-rom-image.bin "${D}"/usr/lib/colo + + # docs + dodoc CHANGES INSTALL README README.{restore,shell,netcon} tools/README.tools TODO + + # all tools except lcdtools (see below) + local tool + for tool in flash-tool colo-perm copy-rom elf2rfx; do + + einfo "Installing ${tool} binary to ${D}/usr/sbin" + dosbin tools/${tool}/${tool} + if [ -f tools/${tool}/${tool}.8 ]; then + einfo "Installing ${tool} manpage to ${D}/usr/share/man" + doman tools/flash-tool/flash-tool.8 + fi + + done + + # lcdtools + for tool in paneld putlcd e2fsck-lcd; do + einfo "Installing ${tool} binary and manpage to ${D}/usr/sbin" + dosbin tools/lcdtools/${tool}/${tool} + doman tools/lcdtools/${tool}/${tool}.8 + done + dolib.a tools/lcdtools/liblcd/liblcd.a + + # bootscripts + dodir /usr/lib/colo/scripts + cp "${FILESDIR}"/*.colo "${D}"/usr/lib/colo/scripts +} + +pkg_postinst() { + echo -e "" + einfo "Install locations:" + einfo " Binaries:\t/usr/lib/${PN}" + einfo " Docs:\t/usr/share/doc/${PF}" + einfo " Tools:\t/usr/sbin/{flash-tool,colo-perm,copy-rom," + einfo " \tputlcd,paneld,e2fsck-lcd,elf2rfx}" + einfo " Scripts:\t/usr/lib/${PN}/scripts" + echo -e "" + einfo "Please read the docs to fully understand the behavior of this bootloader, and" + einfo "edit the boot scripts to suit your needs." + echo -e "" + ewarn "Users installing ${PN} for the first time need to be aware that newer" + ewarn "versions of ${PN} disable the serial port by default. If the serial port" + ewarn "is needed, select it from the boot menu. Users using the example boot" + ewarn "scripts provided will have the serial port automatically enabled." + echo -e "" + ewarn "Note: It is HIGHLY recommended that you use the chain" + ewarn "bootloader (colo-chain.elf) first before attempting to" + ewarn "write the bootloader to the flash chip to verify that" + ewarn "it will work for you. It is also recommended that" + ewarn "you read the documentation in /usr/share/doc/${PF}" + ewarn "as it explains how to properly use this package." + echo -e "" + eerror "Warning: Make sure that IF you plan on flashing the" + eerror "bootloader into the flash chip that you are using a" + eerror "modern 2.4 Linux kernel (i.e., >2.4.18), otherwise" + eerror "you run a risk of destroying the contents of the" + eerror "flash chip and rendering the machine unusable." + echo -e "" + echo -e "" +} diff --git a/sys-boot/colo/files/default.colo b/sys-boot/colo/files/default.colo new file mode 100644 index 000000000000..676a038388d1 --- /dev/null +++ b/sys-boot/colo/files/default.colo @@ -0,0 +1,25 @@ +#:CoLo:# + +# Turn on the serial port +-serial on + +# Generate a menu to select the appropriate kernel image on the LCD Screen +# Format is: +# menu "<message>" <time out> <menu text 1> <menu option 1> <menu text 2> <menu option 2> ... +# +# Where <menu text> is the item displayed, and <menu option> is the item +# that the text corresponds to. When a menu item is selected, the env variable +# {menu-option} gets set to the value of <menu option>. +# +# Please note, no sample script has been provided for a backup script (linuxold). +# You will need to create one yourself if you require this. +menu "colo-@COLOVER@" 100 Linux linux Linux-OLD linuxold + +# Loads the corresponding script depending on the selected value from the menu +-load /boot/menu-{menu-option}.colo +-script + +# Incase of failure, return to the menu +load /boot/default.colo +script + diff --git a/sys-boot/colo/files/menu.colo b/sys-boot/colo/files/menu.colo new file mode 100644 index 000000000000..ddc76135d450 --- /dev/null +++ b/sys-boot/colo/files/menu.colo @@ -0,0 +1,60 @@ +#:CoLo:# +# Example configuration file for CoLo, version 1.16 or above. +# + +# Turn on the serial port; if possible. - means to ignore the error and keep +# going. Without this, execution would halt here if this command failed (e.g. +# on Qube 2700; which lacks serial ports) +-serial on + +# Mount the hard drive +lcd "Mounting hda1" +mount hda1 + +# Ask the user... which kernel? +# Timeout; 50/10 seconds +# +# The format is: +# select "Message Goes Here" TimeOut label1 [label2 ... [labelN]] +# +# This will set the {menu-option} variable to the entry corresponding to the +# selected value, or 0 if no option is selected. +select "Which Kernel?" 50 Working New + +# Now... jump to the line corresponding to the selection... +# +# Explaination of the goto command... +# goto [-]numMarks -- prefixing with - means jump backwards +# or +# goto numMarks{b|f} -- b == jump back, f == jump forward +# +# Marks are indicated by a line starting with a @ symbol. +# +# We use this jump to set the {image-name} variable to a kernel image. +# +# Explaination of the var command: +# var VariableName Value +# + +goto {menu-option} + +# {menu-option} = 0; TimeOut or Cancel +var image-name vmlinux.gz.working + +# Skip to the next two @ lines, start at the third @ line. +goto 3f + +# {menu-option} = 1; "Working" selected. +@var image-name vmlinux.gz.working + +goto 2f +@var image-name vmlinux.gz.new + +# Load the requested image +@lcd "Loading Linux" {image-name} +load /{image-name} + +# Boot +lcd "Booting..." +execute root=/dev/hda5 ro console=ttyS0,115200 +boot diff --git a/sys-boot/colo/files/simple.colo b/sys-boot/colo/files/simple.colo new file mode 100644 index 000000000000..05574454e811 --- /dev/null +++ b/sys-boot/colo/files/simple.colo @@ -0,0 +1,19 @@ +#:CoLo:# +# +# Simple CoLo boot script. + +# Turn serial on; if possible +# - means: "ignore any failure", so if the machine has no serial device (such as +# a Qube 2700), it will simply pretend the command never happened. +-serial on + +# Mount the hard drive +mount hda1 + +# Loads the kernel into memory (and unzips if needed) +# Makes sure this points at the correct kernel image +load /boot/kernel.gz + +# Executes the loaded image with the specified command args +# Change these args to suit your purposes +execute root=/dev/hda5 console=ttyS0,115200 diff --git a/sys-boot/colo/metadata.xml b/sys-boot/colo/metadata.xml new file mode 100644 index 000000000000..5304fcc4e451 --- /dev/null +++ b/sys-boot/colo/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>mips@gentoo.org</email> + <name>Mips Team</name> + </maintainer> + + <longdescription> + COLO is CObalt Linux lOader - a Modern Bootloader for Cobalt MIPS machines. + </longdescription> +</pkgmetadata> |