&dhucpackage; &dhsection;

&dhpackage;

create a kernel to boot a PowerPC machine from Open Firmware

          &dhpackage;
          -o output
          -a arch
          -k kernel
          -s sysmap
          -i initrd
          -d objdir
          -r release
          -l linkaddress
          -n
          -z
          -u
          -v
          release kernel

## DESCRIPTION

This manual page documents briefly the `&dhpackage;` command.

`&dhpackage;` is a program that takes a PowerPC Linux kernel as an uncompressed ELF image file (usually called `vmlinux` or somesuch) and adds boot code and possibly a ramdisk to create a compressed kernel image that can be booted directly from Open Firmware, thus eliminating the need for a second-stage bootloader such as `yaboot` or `quik`.

## OPTIONS

`-o`

- Specify the path to the output file for the compressed kernel image. If this option is not set, the file `/etc/mkvmlinuz/output` is sourced, in the hope that it will set the shell variable `output` to something useful. If this doesn't work either, the program stops with a non-zero exit code.

`-a`

- Specify the PowerPC sub-architecture to build for. If this option is not set, the program will guess based on the contents of /proc/cpuinfo. At the moment, the following values are supported:

  chrp

- This build a compressed kernel for CHRP machines.

coff

- The COFF format is understood by the Open Firmware of many OldWorld PowerMacs. You will need it if you intend to boot a Linux kernel directly from Open Firmware. Note that you can also choose between a variety of boot loaders for that platform, such as `quik`, `BootX`, and `miBoot`.

miboot

- This prepares the Linux kernel for booting from a `miBoot` floppy.

pmac

- While most NewWorld PowerMacs use the bootloader `yaboot`, they can also start directly from Open Firmware.

prep

- The PReP sub-architecture is mainly found on old RS/6000 systems. After creating the compressed kernel, you have to move it to a bootable location, either by `dd`ing it onto the PReP boot partition of a hard disk, or writing it to a CD using the `-prep-boot` option of `mkisofs`.

ppcbug

- PPCBug is strictly a sub-sub-architecture of the above-mentioned PReP. It uses a slightly different wrapper around the compressed kernel, though.

`-k`

- Specify the path to the Linux kernel as an uncompressed ELF image file. Usually, this filename contains `vmlinux` in some form. If this option is not set, the program will make guesses based on the release number and the currently running kernel.

`-s`

- Specify the path to the System.map file. This will greatly enlarge the resulting image, and is only needed if you intend to use the in-kernel debugger `xmon`.

`-i`

- Specify the path to a ramdisk (initrd) image to include in the compressed kernel image. If this option is not set, the program will look in a location analogous to the kernel image location, but will continue without a ramdisk if nothing is found there. This guess can be turned off with the `-n` option.

`-d`

- Specify the directory containing boot code. If this option is not set, the program will try a default directory and the current directory.

`-r`

- Specify the release of the kernel. This option is only used for guessing path names that have not been specified explicitly.

`-n`

- Do not attempt to find an initrd image file if none was specified with the `-i` option.

`-z`

- Assume the initrd image file is already compressed. The default is to autodetect if the initrd is compressed or not.

`-u`

- Assume the initrd image file is not already compressed. The default is to autodetect if the initrd is compressed or not.

`-l`

- Set the elf link address where the kernel will be relocated inside the firmware.

`-v`

- Print progress messages, and echo commands as they are executed.

It is also possible to specify the release number and the kernel image file as the first and second non-option arguments, respectively. However, the values are only used if they are not already given as option arguments.

## FILES

/etc/mkvmlinuz/output

- A shell script fragment that specifies the output file for the compressed kernel image. It is sourced by &dhpackage; if the output file is not specified on the command line, and therefore should set the shell variable `output` at some point. The shell variables `arch`, `kernel`, `sysmap`, `initrd`, `objdir`, and `release` are all set at this point and can be used to construct the filename.

## AUTHOR

This manual page was written by &dhusername; &dhemail; for the &debian; system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the &gnu; General Public License, Version 2 any later version published by the Free Software Foundation.

On Debian systems, the complete text of the &gnu; General Public License can be found in `/usr/share/common-licenses/GPL`.