diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2017-12-31 18:47:16 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2017-12-31 18:47:25 +0100 |
commit | 3a96085b999220c4da0c5ef7d1f7ba26b9ddfb98 (patch) | |
tree | 77f1445aae2e6be5135594e95986b3278bbc061c /package/aboot/src/doc/man/de | |
parent | cc28479164b8dc8afd4310716da32f16022f5974 (diff) |
dec-multia: make netboot possible, add aboot bootloader
Diffstat (limited to 'package/aboot/src/doc/man/de')
-rw-r--r-- | package/aboot/src/doc/man/de/Makefile | 46 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/aboot.conf.sgml | 108 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/aboot.sgml | 89 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/abootconf.sgml | 146 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/docbook2man-de-spec.pl | 1304 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/e2writeboot.8 | 45 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/isomarkboot.sgml | 92 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/netabootwrap.sgml | 107 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/sdisklabel.sgml | 247 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/srmbootfat.sgml | 86 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/srmbootraw.sgml | 84 | ||||
-rw-r--r-- | package/aboot/src/doc/man/de/swriteboot.8 | 61 |
12 files changed, 2415 insertions, 0 deletions
diff --git a/package/aboot/src/doc/man/de/Makefile b/package/aboot/src/doc/man/de/Makefile new file mode 100644 index 000000000..22ef583a1 --- /dev/null +++ b/package/aboot/src/doc/man/de/Makefile @@ -0,0 +1,46 @@ +all: srmbootraw.de.8 aboot.de.8 aboot.conf.de.5 abootconf.de.8 isomarkboot.de.1 sdisklabel.de.8 srmbootfat.de.1 e2writeboot.de.8 swriteboot.de.8 netabootwrap.de.1 + +aboot.de.8: aboot.sgml + nsgmls aboot.sgml | sgmlspl docbook2man-de-spec.pl + mv aboot.8 aboot.de.8 + +aboot.conf.de.5: aboot.conf.sgml + nsgmls aboot.conf.sgml | sgmlspl docbook2man-de-spec.pl + mv aboot.conf.5 aboot.conf.de.5 + +abootconf.de.8: abootconf.sgml + nsgmls abootconf.sgml | sgmlspl docbook2man-de-spec.pl + mv abootconf.8 abootconf.de.8 + +netabootwrap.de.1: netabootwrap.sgml + nsgmls netabootwrap.sgml | sgmlspl docbook2man-de-spec.pl + mv netabootwrap.1 netabootwrap.de.1 + +isomarkboot.de.1: isomarkboot.sgml + nsgmls isomarkboot.sgml | sgmlspl docbook2man-de-spec.pl + mv isomarkboot.1 isomarkboot.de.1 + +sdisklabel.de.8: sdisklabel.sgml + nsgmls sdisklabel.sgml | sgmlspl docbook2man-de-spec.pl + mv sdisklabel.8 sdisklabel.de.8 + +srmbootfat.de.1: srmbootfat.sgml + nsgmls srmbootfat.sgml | sgmlspl docbook2man-de-spec.pl + mv srmbootfat.1 srmbootfat.de.1 + +srmbootraw.de.8: srmbootraw.sgml + nsgmls srmbootraw.sgml | sgmlspl docbook2man-de-spec.pl + mv srmbootraw.8 srmbootraw.de.8 + +e2writeboot.de.8: e2writeboot.8 + ln -s e2writeboot.8 e2writeboot.de.8 + +swriteboot.de.8: swriteboot.8 + ln -s swriteboot.8 swriteboot.de.8 + +clean : + rm -f *.html *.de.? srmbootraw.8 srmbootfat.1 sdisklabel.8 isomarkboot.8 abootconf.8 aboot.conf.5 aboot.8 netabootwrap.1 manpage.links manpage.log manpage.refs + rm -rf SRM-HOWTO + + +#.PHONY clean diff --git a/package/aboot/src/doc/man/de/aboot.conf.sgml b/package/aboot/src/doc/man/de/aboot.conf.sgml new file mode 100644 index 000000000..5702c70db --- /dev/null +++ b/package/aboot/src/doc/man/de/aboot.conf.sgml @@ -0,0 +1,108 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="aboot.conf"> + +<refmeta> +<refentrytitle>aboot.conf</refentrytitle> +<manvolnum>5</manvolnum> +<refmiscinfo>aboot.conf</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>aboot.conf</refname> +<refpurpose>Die Konfigurationsdatei für <application>aboot</application>(8) +</refpurpose> +</refnamediv> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>aboot.conf</primary></indexterm> +<filename>aboot.conf</filename> enthält eine Liste von Boot-Einstellungen +für <application>aboot</application>(8). Jede Boot-Einstellung hat eine +eindeutige Zahl, die am SRM-Prompt angegeben werden kann. +<indexterm><primary>SRM</primary></indexterm>. +</para> +<para> +<filename>aboot.conf</filename> muß sich in einem Verzeichnis names +<filename>etc</filename> auf der <emphasis>gleichen Partition</emphasis> +wie Ihre Kernel befinden, es sei den, Sie geben explizit die Partition +für Ihre Kernel an (siehe dazu die Ausführungen weiter unten). Falls Sie +also eine seperate Boot-Partition (namens <filename>/boot</filename>) +erzeugen, dann sollte <filename>aboot.conf</filename> in +<filename>/boot/etc/</filename> liegen. +</para> +<para> +Im folgenden Beispiel liegen die Kernel auf einer anderen Partition (hda4) +als <filename>/</filename> (hda5), während in der fünften Zeile +<filename>/boot</filename> auf der gleichen Partition (hda6) wie +<filename>/</filename> liegt. Daher kann sich <filename>aboot.conf</filename> +auf einer der drei Partitionen befinden, muß aber <emphasis>immer</emphasis> +in einem Verzeichnis namens <filename>etc</filename> relativ zur obersten +Verzeichnisebene auf dieser Partition angelegt sein. Die zu verwendene +Partition können Sie mittels <application>abootconf</application>(8) +ändern. +</para> +<para><example> +<title>BEISPIEL <filename>aboot.conf</filename></title> +<blockquote> +<literallayout> +0:4/vmlinuz root=/dev/hda5 +1:4/vmlinuz root=/dev/hda5 single +2:4/vmlinuz.old ro root=/dev/hda5 +3:4/vmlinuz-2.4.9-32 root=/dev/sdc3 initrd=/initrd-2.4.9-32.img console=tty0 +8:6/boot/vmlinuz ro root=/dev/hda6 +</literallayout> +</blockquote> +</example></para> +<para> +Die erste Zahl ist ein eindeutige Identifikation für jede Boot-Konfiguration. +Um eine bestimmte Konfiguration am SRM-Prompt zu booten, geben Sie +</para> +<para> +<command> +boot <parameter>dka0 -fl "0"</parameter> +</command> +</para> +<para> +ein, wobei dka0 durch Ihr Boot-Gerät und die 0 durch die zur bootende, +in <filename>etc/aboot.conf</filename> angegegebene Konfigurationszahl +ersetzt werden muß. +</para> + +<para> +Nach dem Doppelpunkt ist die Partition, auf der sich der Kernel befindet, +angegeben. 1 entspricht der BSD-Partition mit Namen A:, 2 B: und so weiter. +</para> + +<para> +Nach dem Schrägstrich ist der Name (ggf. inklusive des zugehörigen Pfads) +des zu bootenden Kernels angegeben. Falls sich Ihr Kernel nicht in einem +Dateisystem, sondern direkt nach <application>aboot</application>(8) am Anfang +der Festplatte befindet lassen Sie die Zahl, den Schrägstrich und den +Kernelnamen weg. +</para> + +<para> +Als nächstes ist die als <filename>/</filename> zu montierende Partition +angegeben. Andere benötigte Kernel-Parameter folgen. Wie gezeigt kann auch +eine initrd angegeben werden. +</para> + +<para> +Der Inhalt dieser Datei kann vor dem Booten mittels des interaktiven +Modus -- durch Booten mit dem Paramter "i" -- +von <application>aboot</application>(8) und der Angabe von +"h" am <application>aboot</application>-Prompt angezeigt werden. +</para> + +</refsect1> +<refsect1><title>AUTOR</title> +<para> +Diese Handbuchseite wurde von Helge Kreutzmann +<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt +geschrieben, sie darf aber auch von anderen verwendet werden. +</para> +</refsect1> +<refsect1><title>SIEHE AUCH</title> +<para><application>aboot</application>(8), <application>abootconf</application>(8), <application>swriteboot</application>(8), HP SRM Handbuch (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>) +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/aboot.sgml b/package/aboot/src/doc/man/de/aboot.sgml new file mode 100644 index 000000000..49fa124e6 --- /dev/null +++ b/package/aboot/src/doc/man/de/aboot.sgml @@ -0,0 +1,89 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="aboot"> + +<refmeta> +<refentrytitle>aboot</refentrytitle> +<manvolnum>8</manvolnum> +<refmiscinfo>aboot</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>aboot</refname> +<refpurpose>Der Bootloader (Urlader) der zweiten Stufe auf Linux/Alpha</refpurpose> +</refnamediv> + +<refsect1><title>COPYRIGHT</title> +<para> +<application>aboot</application> unterliegt dem Copyright (C) 1996 Linus Torvalds, David Mosberger-Tang und Michael Schwingen +</para> +</refsect1> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>aboot</primary></indexterm> +<application>aboot</application> wird als Bootloader (Urlader) der zweiten +Stufe benötigt, falls das System via SRM gebootet wird. Er wird normalerweise +während der Systeminstallation durch +<application>swriteboot</application>(8) installiert. +</para> +<para> +Um den Bootprozess zu automatisieren können vordefinierte Boot-Konfigurationen +in <filename>etc/aboot.conf</filename>(5) eingetragen werden. +</para> +<para> +<application>aboot</application> kann durch die Angabe von +</para> +<para> +<command>boot <parameter>dka0 -fl "i"</parameter></command> +</para> +<para> +am SRM-Prompt auch interaktiv verwendet werden, wobei dka0 durch das +verwendete Gerät ersetzt werden muß. +</para> +<para> +Im interaktiven Modus können Sie das Kommando l zur Anzeige der derzeitigen +<filename>etc/aboot.conf</filename> verwenden, und durch die Angabe der +entsprechenden Zahl (oder des kompletten Boot-Kommandos wie bei SRM) +Linux booten. +</para> +<para> +Falls Sie nicht die von <application>abootconf</application>(8) erstellte +<filename>etc/aboot.conf</filename> verwenden wollen, können Sie +<application>aboot</application> explizit angeben, wo es nach der +<filename>etc/aboot.conf</filename> suchen soll, indem Sie vor die +Zahl der Konfiguration die passende Partition angeben, d.h. falls +Ihre <filename>etc/aboot.conf</filename> sich auf Ihrer zweiten Partition +befindet und Sie den mit 3 benannten Eintrag booten wollen, dann gäben +Sie an +</para> +<para> +<command>boot <parameter>dqa -fl "2:3"</parameter></command> +</para> +<para> +Beachten Sie, daß dies nur für das Booten von Linux via SRM zutrifft, da +<ProductName>VMS</ProductName>, <ProductName>Tru64</ProductName>, *BSD und +<ProductName>Windows NT</ProductName> jeweils über ihren eigenen Bootloader +für die zweite Stufe verfügen. Desweiteren wird <application>aboot</application> +nicht benötigt, falls das System mittels <application>milo</application> +gebootet wird. +</para> +</refsect1> + + +<refsect1><title>AUTOR</title> +<para> +Diese Handbuchseite wurde von Helge Kreutzmann +<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt +geschrieben, sie darf aber auch von anderen verwendet werden. +</para> +</refsect1> + +<refsect1><title>DATEIEN</title> +<para><filename>etc/aboot.conf</filename></para> +</refsect1> + +<refsect1><title>SIEHE AUCH</title> +<para><application>abootconf</application>(8), <filename>aboot.conf</filename>(5), +<application>swriteboot</application>(8), HP SRM Handbuch (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>)</para> +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/abootconf.sgml b/package/aboot/src/doc/man/de/abootconf.sgml new file mode 100644 index 000000000..21cbe5ebf --- /dev/null +++ b/package/aboot/src/doc/man/de/abootconf.sgml @@ -0,0 +1,146 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="abootconf"> + +<refmeta> +<refentrytitle>abootconf</refentrytitle> +<manvolnum>8</manvolnum> +<refmiscinfo>abootconf</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>abootconf</refname> +<refpurpose> +Konfiguration des Ortes der Konfigurationsdatei für den Bootloader der zweiten Stufe <application>aboot</application>(8) von Linux/Alpha. +</refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>abootconf</command> <arg choice="plain">/dev/xxx num</arg> + </cmdsynopsis> +</refsynopsisdiv> + +<refsect1><title>COPYRIGHT</title> +<para> +<application>abootconf</application> unterliegt dem Copyright (C) 1996 Linus Torvalds, David Mosberger-Tang und Michael Schwingen +</para> +</refsect1> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>abootconf</primary></indexterm> +<indexterm><primary>aboot</primary></indexterm> +<application>abootconf</application> wird zur Änderung der +Partition<indexterm><primary>partition</primary></indexterm>, in der der Linux +Boot-Loader (Urlader) <application>aboot</application>(8) nach seiner +Konfigurationsdatei schaut, verwendet. Die Konfiguration wird in +<filename>etc/aboot.conf</filename>(5) relativ zur Wurzel des Dateisystems +auf dieser Partition gespeichert. +</para> +<para> +<application>abootconf</application> benötigt das Boot-Gerät (bspw. +<filename>/dev/hdb</filename>, <filename>/dev/sda</filename>) und die +zu verwendende Partition (z.B. 3). Wollen Sie daher von Partition E: +auf Ihrer zweiten SCSI-Festplatte booten, dann geben Sie</para> +<para> +<command> +abootconf <parameter>/dev/sdb 5</parameter> +</command> +</para> +<para> +ein. +</para> +</refsect1> +<refsect1><title>HINWEISE</title> +<para> +<application>abootconf</application> wird nicht benötigt, wenn Sie Ihr +alpha-System mittels <application>milo</application> booten. +</para> +<para> +Auf jeder Festplatte kann eine Partition aktiviert werden, die die +Konfiguration für <application>aboot</application>(8) enthält, welche +unter <filename>etc/aboot.conf</filename>(5) liegt. Die zu bootende +Festplatte wird am SRM-Prompt als zweites Argument ausgewählt, also +beispielsweise +</para> +<para> +<command> +boot <parameter>dqa</parameter> +</command> +</para> +<para> +um von der ersten IDE-Festplatte zu booten. Lesen Sie bitte das +HP SRM-Handbuch und <application>aboot</application>(8) für weitere +Informationen. +</para> +<para> +<application>aboot</application>(8) kann einen Kernel von einer beliebiegen +Partition laden und kann soger eine andere Root-Partition verwenden, als die +zu der <filename>etc/aboot.conf</filename> gehört. Daher sollten Sie +normalerweise eine <filename>etc/aboot.conf</filename> mit allen Kombinationen +erstellen und benötigten <application>abootconf</application> außer für +die Erstinstallation nicht. Sie können dann den gewünschten Linuxkernel über +die entsprechenden Parameter am SRM-Prompt booten, z.B. um den mit 2 +bezeichneten Eintrag zu booten würden Sie +</para> +<para> +<command> +boot <parameter>dqa -fl "2"</parameter> +</command> +</para> +<para> +verwenden. Bitte lesen Sie das HP SRM-Handbuch und +<filename>aboot.conf</filename>(5) für weitere Informationen. +</para> +<para> +Um die derzeitigen Einstellungen anzuzeigen, lassen Sie einfach das letzte +Argument fort (d.h. die Partitionsnummer). +</para> +<para> +Beachten Sie, daß Sie <application>abootconf</application> erneut ausführen +müssen, wenn Sie <application>aboot</application>(8) aktualisiert haben. +</para> +<para> +Streng genommen wird <application>abootconf</application> nicht benötigt, +da Sie die Partition, auf der <filename>etc/aboot.conf</filename> liegt +auf dem SRM-Prompt spezifizieren können, indem Sie den Flags-Parameter mit +der Partitions-Nummer, gefolgt vom einem Doppelpunkt, einleiten, d.h. +falls <filename>etc/aboot.conf</filename> auf der vierten Partition liegt +und Sie den Eintrag mit der Nummer 2 booten wollen, dann könnte Sie am +SRM-Prompt auch +</para> +<para> +<command> +boot <parameter>dqa -fl "4:2"</parameter> +</command> +</para> +<para> +eingeben. +</para> +<para> +Beachten Sie, daß dies nur auf Linux zutrifft, da +<ProductName>VMS</ProductName>, <ProductName>Tru64</ProductName>, *BSD und +<ProductName>Windows NT</ProductName> jeweils über Ihren eigenen Bootloader +der zweiten Stufe verfügen. +</para> +<para> +Beachten Sie desweiteren, daß für das erstmalige Aufsetzen auf der Festplatte +<application>abootconf</application> ebenfalls nicht mehr benötigt wird, da +<application>swriteboot</application>(8) über die gesamte Funktionalität +von <application>abootconf</application> verfügt. +</para> +</refsect1> +<refsect1><title>AUTOR</title> +<para> +Diese Handbuchseite wurde von Helge Kreutzmann +<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt +geschrieben, sie darf aber auch von anderen verwendet werden. +</para> +</refsect1> +<refsect1><title>DATEIEN</title> +<para><filename>etc/aboot.conf</filename></para> +</refsect1> +<refsect1><title>SIEHE AUCH</title> +<para><application>aboot</application>(8), <application>swriteboot</application>(8), <filename>aboot.conf</filename>(5), HP SRM Handbuch (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>)</para> +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/docbook2man-de-spec.pl b/package/aboot/src/doc/man/de/docbook2man-de-spec.pl new file mode 100644 index 000000000..2eed9015e --- /dev/null +++ b/package/aboot/src/doc/man/de/docbook2man-de-spec.pl @@ -0,0 +1,1304 @@ +=head1 NAME + +docbook2man-spec - convert DocBook RefEntries to Unix manpages + +=head1 SYNOPSIS + +The SGMLSpm package from CPAN. This contains the sgmlspl script which +is used to grok this file. Use it like this: + +nsgmls some-docbook-document.sgml | sgmlspl sgmlspl-specs/docbook2man-spec.pl + +=head1 OPTIONS + +=over 4 + +=item --section <label> + +Use the specified manpage section number, +if not specified in <MANVOLNUM>. Default is one (1). + +=item --date <string> + +Use the specified date in the .TH header. +Default is today. + +=item --lowercase | --preserve-case + +Convert output file names and cross-references to lower case. +Default is to convert to upper case. + +=head1 DESCRIPTION + +This is a sgmlspl spec file that produces Unix-style +manpages from RefEntry markup. + +See the accompanying RefEntry man page for 'plain new' documentation. :) + +=head1 LIMITATIONS + +Trying docbook2man on non-DocBook or non-conformant SGML results in +undefined behavior. :-) + +This program is a slow, dodgy Perl script. + +This program does not come close to supporting all the possible markup +in DocBook, and will produce wrong output in some cases with supported +markup. + +=head1 TODO + +Add new element handling and fix existing handling. Be robust. +Produce cleanest, readable man output as possible (unlike some +other converters). Follow Linux man(7) convention. +If this results in added logic in this script, +that's okay. The code should still be reasonably organized. + +Make it faster. If Perl sucks port it to another language. + +=head1 COPYRIGHT + +Copyright (C) 1998-1999 Steve Cheng <steve@ggi-project.org> + +Copyright (C) 1999 Thomas Lockhart <lockhart@alumni.caltech.edu> + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +You should have received a copy of the GNU General Public License along with +this program; see the file COPYING. If not, please write to the Free +Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +=cut + +# $Id: docbook2man-de-spec.pl,v 1.1 2004/07/05 09:32:10 kreutzm-guest Exp $ + +use SGMLS; # Use the SGMLS package. +use SGMLS::Output; # Use stack-based output. +use SGMLS::Refs; + + +######################################################################## +# SGMLSPL script produced automatically by the script sgmlspl.pl +# +# Document Type: any, but processes only RefEntries +# Edited by: me :) +######################################################################## + + +$write_manpages = 0; +$blank_xrefs = 0; + +$default_sect = "1"; +$default_date = `date "+%d %B %Y"`; # L10N + +while (@ARGV) { + my $arg = shift @ARGV; + if ($arg eq "--section") { + $default_sect = shift @ARGV || die "$arg requires an argument\n"; # L10N + } elsif ($arg eq "--date") { + $default_date = shift @ARGV || die "$arg requires an argument\n"; # L10N + } elsif ($arg eq "--lowercase") { + $lowercase_names = 1; + } elsif ($arg eq "--preserve-case") { + $lowercase_names = 0; + } elsif ($arg eq "--help") { + print "Usage: $0", + " [ --section <label> ]", + " [ --date <string> ]", + " [ --lowercase | --preserve-case ]", + "\n"; + exit; + } else { + die "unrecognized switch $arg; try $0 --help\n"; # L10N + } +} + +sgml('start', sub { + push_output('nul'); + $raw_cdata = 1; # Makes it a bit faster. + + # Links file + open(LINKSFILE, ">manpage.links"); + + $Refs = new SGMLS::Refs("manpage.refs", "manpage.log"); +}); +sgml('end', sub { + close(LINKSFILE); + + # Explicitly invoke destructor, + # otherwise cache file may not get written! + # Thomas Lockhart, 1999-08-03, perl-5.004, RedHat5.2 + undef $Refs; + + if($blank_xrefs) { + warn "Warning: output contains unresolved XRefs\n"; # L10N + } +}); + + +######################################################################## +# +# Output helpers +# +######################################################################## + +# Remove leading and trailing blanks. + +sub StripString +{ + my $str = shift; + + $str = $1 if ($str =~ m#^\s*(\S.*)#); + $str = $1 if ($str =~ m#^(.*\S)\s*$#); + + return $str; +} + +# Generate a good file name, for given manpage title and manvolnum +# (cdata content). +# Cleanup whitespace and convert to lower case if required. + +sub FileInfo +{ + my $title = StripString(shift); + my $volnum = StripString(shift); + + $title = lc $title if $lowercase_names; + + $title =~ tr/ /_/; + $volnum =~ tr/ /_/; + + # The 'package name' part of the section should + # not be used when citing it. + my $sectcite = $1 if ($volnum =~ /([0-9]*)/); + + return ("$title.$volnum", "$title($sectcite)"); +} + +# Our own version of sgml() and output() to allow simple string output +# to play well with roff's stupid whitespace rules. + +sub man_sgml +{ + if(ref($_[1]) eq 'CODE') { + return &sgml; + } + + my $s = $_[1]; + $s =~ s/\\/\\\\/g; + $s =~ s/'/\\'/g; + + sgml($_[0], eval("sub { man_output '$s' }")); +} + +sub man_output +{ + if($separator eq 'full') { + output "\n" unless $newline_last++; + output ".PP\n"; + $separator = ''; + } + + $_ = shift; + if(s/^\n//) { + output "\n" unless $newline_last++; + } + return if $_ eq ''; + + output $_; + + if(@_) { + output @_; + $newline_last = (pop(@_) =~ /\n$/); + } else { + $newline_last = ($_ =~ /\n$/) + } +} + +# Fold lines into one, quote some characters +sub fold_string +{ + $_ = shift; + + s/\\/\\\\/g; + s/"/\\\&"/g; + + # Change tabs and newlines to spaces + # The newlines will be swallowed later while trimming + tr/[\t\n]/ /; + + # Trim whitespace from beginning and end. + s/^ +//; + s/ +$//; + + return $_; +} + +sub save_cdata() +{ + $raw_cdata++; + push_output('string'); +} + +sub bold_on() +{ + # If the last font is also bold, don't change anything. + # Basically this is to just get more readable man output. + if($fontstack[$#fontstack] ne 'bold') { + if(!$raw_cdata) { + output '\fB'; + #$newline_last = 0; + } + } + push(@fontstack, 'bold'); +} + +sub italic_on() +{ + # If the last font is also italic, don't change anything. + if($fontstack[$#fontstack] ne 'italic') { + if(!$raw_cdata) { + output '\fI'; + #$newline_last = 0; + } + } + push(@fontstack, 'italic'); +} + +sub font_off() +{ + my $thisfont = pop(@fontstack); + my $lastfont = $fontstack[$#fontstack]; + + # Only output font change if it is different + if($thisfont ne $lastfont) { + if($raw_cdata) { return; } + elsif($lastfont eq 'bold') { output '\fB'; } + elsif($lastfont eq 'italic') { output '\fI'; } + else { output '\fR'; } + + #$newline_last = 0; + } +} + + +######################################################################## +# +# Manpage management +# +######################################################################## + +sgml('<REFENTRY>', sub { + # This will be overwritten at end of REFMETA, when we know the name of the page. + pop_output(); + + $write_manpages = 1; # Currently writing manpage. + + $nocollapse_whitespace = 0; # Current whitespace collapse counter. + $newline_last = 1; # At beginning of line? + # Just a bit of warning, you will see this variable manipulated + # manually a lot. It makes the code harder to follow but it + # saves you from having to worry about collapsing at the end of + # parse, stopping at verbatims, etc. + $raw_cdata = 0; # Instructs certain output functions to + # leave CDATA alone, so we can assign + # it to a string and process it, etc. + @fontstack = (); # Fonts being activated. + + $list_nestlevel = 0; # Indent certain nested content. + + # Separator to use between 'elements' in the content of a + # paragraph (usually). This makes sure that PCDATA after a list + # in a PARA gets a break in between and not become part of the + # last listitem. Note that we can't do it after the list ends, + # because often the list ends the paragraph and we'll get an + # extra break. Anything that changes the separator status from + # the default should also save its last state in the parent + # element's ext, but I'm not going to explain further. It's a + # gross hack and almost guaranteed to fail in unforseen cases. + # The only way to avoid all this is to use a tree/grove model, which + # we're _not_ doing. + $separator = ''; + + $manpage_title = ''; # Needed for indexing. + $manpage_sect = ''; + @manpage_names = (); + + $manpage_misc = ''; +}); +sgml('</REFENTRY>', sub { + if(!$newline_last) { + output "\n"; + } + + $raw_cdata = 1; + push_output('nul'); + + $write_manpages = 0; +}); + +sgml('</REFMETA>', sub { + my ($filename, $citation) = + FileInfo($manpage_title, $manpage_sect || $default_sect); + + push_output('file', $filename); + + output <<_END_BANNER; +.\\" This manpage has been automatically generated by docbook2man-spec +.\\" from a DocBook document. docbook2man-spec can be found at: +.\\" <http://shell.ipoline.com/~elmert/hacks/docbook2X/> +.\\" Please send any bug reports, improvements, comments, patches, +.\\" etc. to Steve Cheng <steve\@ggi-project.org>. +_END_BANNER + + my $manpage_date = $_[0]->parent->ext->{'date'} || $default_date; + + output '.TH "'; + + # If the title is not mixed-case, convention says to + # uppercase the whole title. (The canonical title is + # lowercase.) + if($manpage_title =~ /[A-Z]/) { + output fold_string($manpage_title); + } else { + output uc(fold_string($manpage_title)); + } + + output '" "', fold_string($manpage_sect), + '" "', fold_string($manpage_date), + '" "', $manpage_misc, + '" "', $manpage_manual, + "\"\n"; + + $newline_last = 1; + + # References to this RefEntry. + if(defined($_[0]->parent->attribute('ID')->value)) { + my $id = $_[0]->parent->attribute('ID')->value; + + # Append XREFLABEL content to citations. + if(defined($_[0]->parent->attribute('XREFLABEL')->value)) { + $citation = $_[0]->parent->attribute('XREFLABEL')->value . + ' [' . $citation . ']'; + } + + $Refs->put("refentry:$id", $citation); + } +}); + +sgml('<REFENTRYTITLE>', sub { + if($_[0]->in('REFMETA')) { + save_cdata(); + } else { + # Manpage citations are in bold. + bold_on(); + } +}); +sgml('</REFENTRYTITLE>', sub { + if($_[0]->in('REFMETA')) { + $raw_cdata--; + $manpage_title = pop_output(); + } + else { font_off(); } + + if (defined($_[0]->attribute('ID')->value)) { + my $id = $_[0]->attribute('ID')->value; + my ($name, $citation) = FileInfo($manpage_title, $default_sect); + + $Refs->put("refentrytitle:$id", $citation); + } +}); + +sgml('<MANVOLNUM>', sub { + if($_[0]->in('REFMETA')) { + save_cdata(); + } else { + # Manpage citations use (). + output '('; + } +}); +sgml('</MANVOLNUM>', sub { + if($_[0]->in('REFMETA')) { + $raw_cdata--; + $manpage_sect = pop_output(); + } + else { output ')' } +}); + +sgml('<REFMISCINFO>', \&save_cdata); +sgml('</REFMISCINFO>', sub { + $raw_cdata--; + $manpage_misc = fold_string(pop_output()); +}); + + +# NAME section +man_sgml('<REFNAMEDIV>', "\n.SH NAME\n"); # L10N + +sgml('<REFNAME>', \&save_cdata); +sgml('</REFNAME>', sub { + $raw_cdata--; + push(@manpage_names, pop_output()); +}); + +sgml('<REFPURPOSE>', \&save_cdata); +sgml('</REFPURPOSE>', sub { + $raw_cdata--; + my $manpage_purpose = fold_string(pop_output()); + + for(my $i = 0; $i < $#manpage_names; $i++) { + output fold_string($manpage_names[$i]), ', '; + } + + output fold_string($manpage_names[$#manpage_names]); + output " \\- $manpage_purpose\n"; + + $newline_last = 1; + + foreach(@manpage_names) { + # Don't link to itself + if($_ ne $manpage_title) { + print LINKSFILE "$manpage_title.$manpage_sect $_.$manpage_sect\n"; + } + } +}); + +man_sgml('<REFCLASS>', "\n.sp\n"); + +#RefDescriptor + + +######################################################################## +# +# SYNOPSIS section and synopses +# +######################################################################## + +man_sgml('<REFSYNOPSISDIV>', "\n.SH ÜBERSICHT\n"); # L10N +man_sgml('</REFSYNOPSISDIV>', "\n"); + +## FIXME! Must be made into block elements!! +#sgml('<FUNCSYNOPSIS>', \&bold_on); +#sgml('</FUNCSYNOPSIS>', \&font_off); +#sgml('<CMDSYNOPSIS>', \&bold_on); +#sgml('</CMDSYNOPSIS>', \&font_off); + +man_sgml('<FUNCSYNOPSIS>', sub { + #man_output("\n.sp\n"); + bold_on(); +}); +man_sgml('</FUNCSYNOPSIS>', sub { + font_off(); + man_output "\n"; +}); + +man_sgml('<CMDSYNOPSIS>', "\n.sp\n"); +man_sgml('</CMDSYNOPSIS>', "\n"); + +man_sgml('<FUNCPROTOTYPE>', "\n.sp\n"); + +# Arguments to functions. This is C convention. +man_sgml('<PARAMDEF>', '('); +man_sgml('</PARAMDEF>', ");\n"); +man_sgml('<VOID>', "(void);\n"); + + +sub arg_start +{ + # my $choice = $_[0]->attribute('CHOICE')->value; + + # The content model for CmdSynopsis doesn't include #PCDATA, + # so we won't see any of the whitespace in the source file, + # so we have to add it after each component. + man_output ' '; + + if($_[0]->attribute('CHOICE')->value =~ /opt/i) { + man_output '[ '; + } + bold_on(); +} +sub arg_end +{ + font_off(); + if($_[0]->attribute('REP')->value =~ /^Repeat/i) { + italic_on(); + man_output '...'; + font_off(); + } + if($_[0]->attribute('CHOICE')->value =~ /opt/i) { + man_output ' ] '; + } +} + +sgml('<ARG>', \&arg_start); +sgml('</ARG>', \&arg_end); +sgml('<GROUP>', \&arg_start); +sgml('</GROUP>', \&arg_end); + +sgml('<OPTION>', \&bold_on); +sgml('</OPTION>', \&font_off); + +# FIXME: This is one _blank_ line. +man_sgml('<SBR>', "\n\n"); + + +######################################################################## +# +# General sections +# +######################################################################## + +# The name of the section is handled by TITLE. This just sets +# up the roff markup. +man_sgml('<REFSECT1>', sub { $separator = ''; man_output "\n.SH "}); +man_sgml('<REFSECT2>', sub { $separator = ''; man_output "\n.SS "}); +man_sgml('<REFSECT3>', sub { $separator = ''; man_output "\n.SS "}); + + +######################################################################## +# +# Titles, metadata. +# +######################################################################## + +sgml('<TITLE>', sub { + if($_[0]->in('REFERENCE') or $_[0]->in('BOOK')) { + $write_manpages = 1; + } + save_cdata(); +}); +sgml('</TITLE>', sub { + my $title = fold_string(pop_output()); + $raw_cdata--; + + if($_[0]->in('REFERENCE') or $_[0]->in('BOOK')) { + # We use TITLE of enclosing Reference or Book as manual name + $manpage_manual = $title; + $write_manpages = 0; + } + elsif(exists $_[0]->parent->ext->{'title'}) { + # By far the easiest case. Just fold the string as + # above, and then set the parent element's variable. + $_[0]->parent->ext->{'title'} = $title; + } + else { + # If the parent element's handlers are lazy, + # output the folded string for them :) + # We assume they want uppercase and a newline. + man_output '"', uc($title), "\"\n"; + } + + if (defined($_[0]->attribute('ID')->value)) { + my $id = $_[0]->attribute('ID')->value; + my ($name, $citation) = FileInfo($manpage_title, $default_sect); + + $Refs->put("title:$id", $citation); + } +}); + +sgml('<ATTRIBUTION>', sub { + if($_[0]->in('BLOCKQUOTE')) { + push_output('string'); + } +}); +sgml('</ATTRIBUTION>', sub { + if($_[0]->in('BLOCKQUOTE')) { + $_[0]->parent->ext->{'attribution'} = pop_output(); + } else { + # For an Epigraph. + man_output "\n\n"; + } +}); + +sgml('<DATE>', sub { + save_cdata(); +}); +sgml('</DATE>', sub { + $_[0]->parent->parent->ext->{'date'} = fold_string(pop_output()); + $raw_cdata--; +}); + +sub ignore_content { push_output 'nul'; } +sub restore_content { pop_output(); } + +sgml('<DOCINFO>', \&ignore_content); +sgml('</DOCINFO>', \&restore_content); +sgml('<REFSYNOPSISDIVINFO>', \&ignore_content); +sgml('</REFSYNOPSISDIVINFO>', \&restore_content); +sgml('<REFSECT1INFO>', \&ignore_content); +sgml('</REFSECT1INFO>', \&restore_content); +sgml('<REFSECT2INFO>', \&ignore_content); +sgml('</REFSECT2INFO>', \&restore_content); +sgml('<REFSECT3INFO>', \&ignore_content); +sgml('</REFSECT3INFO>', \&restore_content); + +sgml('<INDEXTERM>', \&ignore_content); +sgml('</INDEXTERM>', \&restore_content); + +sgml('<AUTHORBLURB>', \&ignore_content); +sgml('</AUTHORBLURB>', \&restore_content); + + +######################################################################## +# +# Set bold on enclosed content +# +######################################################################## + +sgml('<APPLICATION>', \&bold_on); +sgml('</APPLICATION>', \&font_off); + +sgml('<CLASSNAME>', \&bold_on); sgml('</CLASSNAME>', \&font_off); +sgml('<STRUCTNAME>', \&bold_on); sgml('</STRUCTNAME>', \&font_off); +sgml('<STRUCTFIELD>', \&bold_on); sgml('</STRUCTFIELD>', \&font_off); +sgml('<SYMBOL>', \&bold_on); sgml('</SYMBOL>', \&font_off); +sgml('<TYPE>', \&bold_on); sgml('</TYPE>', \&font_off); + +sgml('<ENVAR>', \&bold_on); sgml('</ENVAR>', \&font_off); + +sgml('<FUNCTION>', \&bold_on); sgml('</FUNCTION>', \&font_off); + +sgml('<EMPHASIS>', \&bold_on); sgml('</EMPHASIS>', \&font_off); + +sgml('<ERRORNAME>', \&bold_on); sgml('</ERRORNAME>', \&font_off); +# ERRORTYPE + +sgml('<COMMAND>', \&bold_on); sgml('</COMMAND>', \&font_off); + +sgml('<GUIBUTTON>', \&bold_on); sgml('</GUIBUTTON>', \&font_off); +sgml('<GUIICON>', \&bold_on); sgml('</GUIICON>', \&font_off); +# GUILABEL +# GUIMENU +# GUIMENUITEM +# GUISUBMENU +# MENUCHOICE + +sgml('<ACCEL>', \&bold_on); sgml('</ACCEL>', \&font_off); +# KEYCODE +# SHORTCUT + + +sgml('<KEYCOMBO>', sub { + $separator = 'none'; + $_[0]->ext->{'separator'} = 'none'; +}); +sgml('</KEYCOMBO>', sub { $separator = $_[0]->parent->ext->{'separator'}; }); + +sub _keycombo { + if($_[0]->in('KEYCOMBO')) { + if($separator eq 'none') { $separator = '' } + else { man_output "+"; } + } + bold_on(); +} +sgml('<KEYCAP>', \&_keycombo); sgml('</KEYCAP>', \&font_off); +sgml('<KEYSYM>', \&_keycombo); sgml('</KEYSYM>', \&font_off); +sgml('<MOUSEBUTTON>', \&_keycombo); sgml('</MOUSEBUTTON>', \&font_off); + + +sgml('<USERINPUT>', \&bold_on); sgml('</USERINPUT>', \&font_off); + +sgml('<INTERFACEDEFINITION>', \&bold_on); +sgml('</INTERFACEDEFINITION>', \&font_off); + +# May need to look at the CLASS +sgml('<SYSTEMITEM>', \&bold_on); +sgml('</SYSTEMITEM>', \&font_off); + + +######################################################################## +# +# Set italic on enclosed content +# +######################################################################## + +sgml('<FIRSTTERM>', \&italic_on); sgml('</FIRSTTERM>', \&font_off); + +sgml('<FILENAME>', \&italic_on); sgml('</FILENAME>', \&font_off); +sgml('<PARAMETER>', \&italic_on); sgml('</PARAMETER>', \&font_off); +sgml('<PROPERTY>', \&italic_on); sgml('</PROPERTY>', \&font_off); + +sgml('<REPLACEABLE>', sub { + italic_on(); + if($_[0]->in('TOKEN')) { + # When tokenizing, follow more 'intuitive' convention + output "<"; + } +}); +sgml('</REPLACEABLE>', sub { + if($_[0]->in('TOKEN')) { + output ">"; + } + font_off(); +}); + +sgml('<CITETITLE>', \&italic_on); sgml('</CITETITLE>', \&font_off); +sgml('<FOREIGNPHRASE>', \&italic_on); sgml('</FOREIGNPHRASE>', \&font_off); + +sgml('<LINEANNOTATION>', \&italic_on); sgml('</LINEANNOTATION>', \&font_off); + + +######################################################################## +# +# Other 'inline' elements +# +######################################################################## + +man_sgml('<EMAIL>', '<'); +man_sgml('</EMAIL>', '>'); +man_sgml('<OPTIONAL>', '['); +man_sgml('</OPTIONAL>', ']'); + +man_sgml('</TRADEMARK>', "\\u\\s-2TM\\s+2\\d"); # L10N + +man_sgml('<COMMENT>', "[Kommentar: "); # L10N +man_sgml('</COMMENT>', "]"); + +man_sgml('<QUOTE>', "»"); # L10N +man_sgml('</QUOTE>', "«"); # L10N + +#man_sgml('<LITERAL>', '"'); +#man_sgml('</LITERAL>', '"'); +# There doesn't seem to be a good way to represent LITERAL in -man +# ComputerOutput, SGMLTag, Markup are the same thing. + +# These create spaces between content in special elements +# without PCDATA content. +man_sgml('</HONORIFIC>', " "); +man_sgml('</FIRSTNAME>', " "); +man_sgml('</SURNAME>', " "); +man_sgml('</LINEAGE>', " "); +man_sgml('</OTHERNAME>', " "); + +man_sgml('<AFFILIATION>', "("); +man_sgml('</AFFILIATION>', ") "); +man_sgml('<CONTRIB>', "("); +man_sgml('</CONTRIB>', ") "); + +man_sgml('</STREET>', " "); +man_sgml('</POB>', " "); +man_sgml('</POSTCODE>', " "); +man_sgml('</CITY>', " "); +man_sgml('</STATE>', " "); +man_sgml('</COUNTRY>', " "); +man_sgml('</PHONE>', " "); +man_sgml('</FAX>', " "); +man_sgml('</OTHERADDRESS>', " "); + +man_sgml('</ALT>', ": "); +man_sgml('<GRAPHIC>', " [GRAPHIK] "); # L10N + +# No special presentation: + +# AUTHORINITIALS + +# ABBREV +# ACTION +# ACRONYM +# CITATION +# PHRASE +# QUOTE +# WORDASWORD + +# PROMPT +# RETURNVALUE +# TOKEN + +# DATABASE +# HARDWARE +# INTERFACE +# MEDIALABEL + + +######################################################################## +# +# Paragraph and paragraph-like elements +# +######################################################################## + +sub para_start { + if($separator eq '' or $separator eq 'full') { + $separator = ''; + man_output "\n.PP\n"; + } elsif($separator eq 'blank') { + man_output "\n\n"; + } elsif($separator eq 'none' ) { + $_[0]->parent->ext->{'separator'} = 'blank'; + $separator = 'blank'; + } +} +# Actually applies to a few other block elements as well +sub para_end { + $separator = $_[0]->parent->ext->{'separator'}; + man_output "\n"; +} + +sgml('<PARA>', \¶_start); +sgml('</PARA>', \¶_end); +sgml('<SIMPARA>', \¶_start); +sgml('</SIMPARA>', \¶_end); + +# Nothing special, except maybe FIXME set nobreak. +sgml('<INFORMALEXAMPLE>', \¶_start); +sgml('</INFORMALEXAMPLE>', \¶_end); + + +######################################################################## +# +# Blocks using SS sections +# +######################################################################## + +# FIXME: We need to consider the effects of SS +# in a hanging tag :( + +# Complete with the optional-title dilemma (again). +sgml('<ABSTRACT>', sub { + $_[0]->ext->{'title'} = 'ABSTRAKT'; # L10N + output "\n" unless $newline_last++; + push_output('string'); +}); +sgml('</ABSTRACT>', sub { + my $content = pop_output(); + + # As ABSTRACT is never on the same level as RefSect1, + # this leaves us with only .SS in terms of -man macros. + output ".SS \"", uc($_[0]->ext->{'title'}), "\"\n"; + + output $content; + output "\n" unless $newline_last++; +}); + + + +# Ah, I needed a break. Example always has a title. +sgml('<EXAMPLE>', sub { $separator = ''; man_output "\n.SS "}); +sgml('</EXAMPLE>', \¶_end); + +# Same with sidebar. +sgml('<SIDEBAR>', sub { $separator = ''; man_output "\n.SS "}); +sgml('</SIDEBAR>', \¶_end); + +sgml('<FORMALPARA>', sub { $separator = ''; man_output "\n.SS "}); +sgml('</FORMALPARA>', \¶_end); + +sgml('<FIGURE>', sub { $separator = ''; man_output "\n.SS "}); +sgml('</FIGURE>', \¶_end); + + + +# NO title. # L10N +sgml('<HIGHLIGHTS>', sub { $separator = ''; man_output "\n.SS HIGHLIGHTS\n"}); +sgml('</HIGHLIGHTS>', \¶_end); + + +######################################################################## +# +# Indented 'Block' elements +# +######################################################################## + +sub indent_block_start +{ + $separator = ''; + man_output "\n.sp\n.RS\n"; +} +sub indent_block_end +{ + $separator = $_[0]->parent->ext->{'separator'}; + man_output "\n.RE\n.sp\n"; +} + +sgml('<ADDRESS>', sub { + &indent_block_start; + if($_[0]->attribute('FORMAT')->type eq 'NOTATION' + and $_[0]->attribute('FORMAT')->value->name eq 'LINESPECIFIC') { + &verbatim_start; + } +}); +sgml('</ADDRESS>', sub { + if($_[0]->attribute('FORMAT')->type eq 'NOTATION' + and $_[0]->attribute('FORMAT')->value->name eq 'LINESPECIFIC') { + &verbatim_end; + } + &indent_block_end; +}); + +# This element is almost like an admonition (below), +# only the default title is blank :) + +sgml('<BLOCKQUOTE>', sub { + $_[0]->ext->{'title'} = ''; + &indent_block_start; + push_output('string'); +}); +sgml('</BLOCKQUOTE>', sub { + my $content = pop_output(); + + if($_[0]->ext->{'title'}) { + output ".B \"", $_[0]->ext->{'title'}, ":\"\n"; + } + + output $content; + + if($_[0]->ext->{'attribution'}) { + man_output "\n\n -- ", + $_[0]->ext->{'attribution'}, "\n"; + } + + &indent_block_end; +}); + +# Set off admonitions from the rest of the text by indenting. +# FIXME: Need to check if this works inside paragraphs, not enclosing them. +sub admonition_end { + my $content = pop_output(); + + # When the admonition is only one paragraph, + # it looks nicer if the title was inline. + my $num_para; + while ($content =~ /^\.PP/gm) { $num_para++ } + if($num_para==1) { + $content =~ s/^\.PP\n//; + } + + output ".B \"" . $_[0]->ext->{'title'} . ":\"\n"; + output $content; + + &indent_block_end; +} + +sgml('<NOTE>', sub { + # We can't see right now whether or not there is a TITLE + # element, so we have to save the output now and add it back + # at the end of this admonition. + $_[0]->ext->{'title'} = 'Note'; # L10N + + &indent_block_start; + + push_output('string'); +}); +sgml('</NOTE>', \&admonition_end); + +# Same as above. +sgml('<WARNING>', sub { + $_[0]->ext->{'title'} = 'Warnung'; # L10N + &indent_block_start; + push_output('string'); +}); +sgml('</WARNING>', \&admonition_end); + +sgml('<TIP>', sub { + $_[0]->ext->{'title'} = 'Tipp'; # L10N + &indent_block_start; + push_output('string'); +}); +sgml('</TIP>', \&admonition_end); +sgml('<CAUTION>', sub { + $_[0]->ext->{'title'} = 'Caution'; # L10N + &indent_block_start; + push_output('string'); +}); +sgml('</CAUTION>', \&admonition_end); + +sgml('<IMPORTANT>', sub { + $_[0]->ext->{'title'} = 'Wichtig'; # L10N + &indent_block_start; + push_output('string'); +}); +sgml('</IMPORTANT>', \&admonition_end); + + +######################################################################## +# +# Verbatim displays. +# +######################################################################## + +sub verbatim_start { + $separator = ''; + man_output "\n.sp\n"; + man_output "\n.nf\n" unless $nocollapse_whitespace++; +} + +sub verbatim_end { + man_output "\n.sp\n"; + man_output "\n.fi\n" unless --$nocollapse_whitespace; + $separator = $_[0]->parent->ext->{'separator'}; +} + +sgml('<PROGRAMLISTING>', \&verbatim_start); +sgml('</PROGRAMLISTING>', \&verbatim_end); + +sgml('<SCREEN>', \&verbatim_start); +sgml('</SCREEN>', \&verbatim_end); + +sgml('<LITERALLAYOUT>', \&verbatim_start); +sgml('</LITERALLAYOUT>', \&verbatim_end); + +sgml('<SYNOPSIS>', sub { + my $format = $_[0]->attribute('FORMAT'); + + if($format->type eq 'NOTATION' + and $format->value->name eq 'LINESPECIFIC') + { + &verbatim_start; + } else { + $separator = ''; + man_output "\n.sp\n"; + } +}); + +sgml('</SYNOPSIS>', sub { + my $format = $_[0]->attribute('FORMAT'); + + if($format->type eq 'NOTATION' + and $format->value->name eq 'LINESPECIFIC') + { + &verbatim_end; + } else { + man_output "\n"; + $_[0]->parent->ext->{'separator'} = 'full'; + $separator = 'full'; + } +}); + + +######################################################################## +# +# Lists +# +######################################################################## + +# Indent nested lists. +sub list_start { + man_output "\n.RS\n" if $list_nestlevel++; +} +sub list_end { + man_output "\n.RE\n" if --$list_nestlevel; + $_[0]->parent->ext->{'separator'} = 'full'; + $separator = 'full'; +} + +sgml('<VARIABLELIST>', \&list_start); +sgml('</VARIABLELIST>', \&list_end); +sgml('<ITEMIZEDLIST>', \&list_start); +sgml('</ITEMIZEDLIST>', \&list_end); +sgml('<ORDEREDLIST>', sub { + &list_start; + $_[0]->ext->{'count'} = 1; +}); +sgml('</ORDEREDLIST>', \&list_end); + +# Output content on one line, bolded. +sgml('<TERM>', sub { + man_output "\n.TP\n"; + bold_on(); + push_output('string'); +}); +sgml('</TERM>', sub { + my $term = StripString(pop_output()); + $term =~ tr/\n/ /; + output $term; + font_off(); + output "\n"; + $newline_last = 1; +}); + +sgml('<LISTITEM>', sub { + # A bulleted list. + if($_[0]->in('ITEMIZEDLIST')) { + man_output "\n.TP 0.2i\n\\(bu\n"; + } + + # Need numbers. + # Assume Arabic numeration for now. + elsif($_[0]->in('ORDEREDLIST')) { + man_output "\n.IP ", $_[0]->parent->ext->{'count'}++, ". \n"; + } + + $_[0]->ext->{'separator'} = 'none'; + $separator = 'none'; +}); + +sgml('<SIMPLELIST>', sub { + $_[0]->ext->{'first_member'} = 1; +}); +sgml('<MEMBER>', sub { + my $parent = $_[0]->parent; + + if($parent->attribute('TYPE')->value =~ /Inline/i) { + if($parent->ext->{'first_member'}) { + # If this is the first member don't put any commas + $parent->ext->{'first_member'} = 0; + } else { + man_output ", "; + } + + # We don't really have Horiz rendering, so it's the same + # as Vert. + } else { + man_output "\n\n"; + } +}); + +# We implement Procedures as indent and lists + +sgml('<PROCEDURE>', sub { + $_[0]->ext->{'count'} = 1; + &indent_block_start; +}); +sgml('</PROCEDURE>', sub { + &indent_block_end; + $_[0]->parent->ext->{'separator'} = 'full'; + $separator = 'full'; +}); + +sgml('<STEP>', sub { + man_output "\n.IP ", $_[0]->parent->ext->{'count'}++, ". \n"; + $_[0]->ext->{'separator'} = 'none'; + $separator = 'none'; +}); + + +######################################################################## +# +# Linkage, cross references +# +######################################################################## + +# Print the URL +sgml('</ULINK>', sub { + man_output ' <URL:', $_[0]->attribute('URL')->value, '>'; +}); + +# If cross reference target is a RefEntry, +# output CiteRefEntry-style references. +sgml('<XREF>', sub { + my $id; + + $id = $_[0]->attribute('LINKEND')->value; + + my $manref = $Refs->get("refentry:$id"); + if(!defined $manref) { + $blank_xrefs++ if $write_manpages; + man_output "[XRef auf $id]"; # L10N + return; + } + + # Limited ENDTERM support. + if(defined $_[0]->attribute('ENDTERM')->value) { + my $content = $Refs->get("title:$id") || + $Refs->get("refentrytitle:$id"); + man_output $content, ' ['; + } + + # This also displays the XREFLABEL (as bold)... + # It's not worth the bother to fix it though, there + # are better tools for this. + my ($title, $sect) = ($manref =~ /(.*)(\(.*\))/); + bold_on(); + man_output $title; + font_off(); + man_output $sect; + + if(defined $_[0]->attribute('ENDTERM')->value) { + man_output ']'; + } +}); + +# Anchor + + +######################################################################## +# +# SDATA +# +######################################################################## + +man_sgml('|[lt ]|', '<'); +man_sgml('|[gt ]|', '>'); +man_sgml('|[amp ]|', '&'); + +man_sgml('|[ndash ]|', '\(en'); +man_sgml('|[mdash ]|', '\(em'); + +sgml('sdata',sub { + man_output "|[", $_[0], "]|"; + warn "Warning: unrecognized SDATA: please add definition to docbook2man-spec.pl\n"; # L10N +}); + +# +# Default handlers (uncomment these if needed). Right now, these are set +# up to gag on any unrecognised elements, sdata, processing-instructions, +# or entities. +# +# sgml('start_element',sub { die "Unknown element: " . $_[0]->name; }); # L10N +# sgml('end_element',''); + +# This is for weeding out and escaping certain characters. +# This looks like it's inefficient since it's done on every line, but +# in reality, SGMLSpm and sgmlspl parsing ESIS takes _much_ longer. + +sgml('cdata', sub +{ + if(!$write_manpages) { return; } + elsif($raw_cdata) { output $_[0]; return; } + + if($separator eq 'full') { + output "\n" unless $newline_last++; + output ".PP\n"; + $separator = ''; + } + + # Escape backslashes + $_[0] =~ s/\\/\\\\/g; + + # In non-'pre'-type elements: + if(!$nocollapse_whitespace) { + # Change tabs to spaces + $_[0] =~ tr/\t / /s; + + # Do not allow indents at beginning of line + # groff chokes on that. + if($newline_last) { + $_[0] =~ s/^ //; + + # If the line is all blank, don't do anything. + if($_[0] eq '') { return; } + + $_[0] =~ s/^\./\\\&\./; + + # Argh... roff doesn't like ' for some unknown reason + $_[0] =~ s/^\'/\\\&\'/; + } + } + + $newline_last = 0; + + output $_[0]; +}); + + +# When in whitespace-collapsing mode, we disallow consecutive newlines. + +sgml('re', sub +{ + if($nocollapse_whitespace || !$newline_last) { + output "\n"; + } + + $newline_last = 1; +}); + +sgml('pi', sub {}); +sgml('entity',sub { die "Unknown external entity: " . $_[0]->name; }); # L10N +sgml('start_subdoc',sub { die "Unknown subdoc entity: " . $_[0]->name; });# L10N +sgml('end_subdoc',sub{}); +sgml('conforming',sub{}); + +1; + diff --git a/package/aboot/src/doc/man/de/e2writeboot.8 b/package/aboot/src/doc/man/de/e2writeboot.8 new file mode 100644 index 000000000..1c6b786dd --- /dev/null +++ b/package/aboot/src/doc/man/de/e2writeboot.8 @@ -0,0 +1,45 @@ +.\" e2writeboot - Write secondary SRM bootloader to ext2 filesystem. +.\" +.\" Translated to German by Helge Kreutzmann <debian@helgefjell.de> +.TH e2writeboot 8 "27 Juni 2004" "David Mosberger-Tang" "" +.SH NAME +e2writeboot \- Schreibt den sekundären Boot-Lader in ein ext2-Dateisystem. +.SH "ÜBERSICHT" +\fBe2writeboot\fP <ext2fs> <bootlader> +.SH BESCHREIBUNG + +\fBe2writeboot\fP kann zum Schreiben des sekundären Boot-Laders in ein +ext2-formatiertes Dateisystem (normalerweise auf einer Diskette) verwendet +werden. Der Lader ist so geschrieben, daß die SRM-Firmware von diesem +Dateisystem booten kann (SRM ist die Firmware die auch zu Booten von +\fBHP Tru64\fP, \fBOpenVMS\fP und *BSD verwendet wird). Insbesondere ist +der Lader so geschrieben, daß er einen kontinuierlichen Bereich von Sektoren +belegt und der erste Sektor wird so aktualisiert, daß die SRM-Firmware den +Boot-Lader finden kann. Der Lader wird immer unter dem Dateinamen +\fBlinuxboot\fP gespeichert und falls solch eine Datei bereits existiert, +wird diese ohne Rückfrage überschrieben. Dieser Befehl kann fehlschlagen, +wenn das Dateisystem stark fragmentiert ist. In diesem Fall reformatieren +Sie das Dateisystem mit \fBmke2fs\fP(8) (dies wird den derzeitigen +Inhalt des Dateisystems zerstören, daher mit Vorsicht verwenden). + +.P +Das \fI<ext2fs>\fP-Argument spezifiziert das Dateisystem oder spezielle +Gerät auf das die \fI<bootlader>\fP-Datei geschrieben werden soll. Die +Boot-Lader-Datei muß eine ECOFF-Objektdatei sein. Ein typischer Befehl, +um eine Diskette mit dem \fIaboot\fP(8)-Lader zu machen, ist im folgenden +gezeigt: + +.I »e2writeboot /dev/fd0 aboot« + +.nf +.SH SIEHE AUCH +.IR aboot (8) , +.IR mke2fs (8) , +.IR swriteboot (8) +.nf +.SH AUTOREN +.nf +Jim Paradis <paradis@amt.tay1.dec.com> +Jay Estabrook <Jay.Estabrook@hp.com> +David Mosberger-Tang <David.Mosberger@acm.org> +.fi diff --git a/package/aboot/src/doc/man/de/isomarkboot.sgml b/package/aboot/src/doc/man/de/isomarkboot.sgml new file mode 100644 index 000000000..7155bcb82 --- /dev/null +++ b/package/aboot/src/doc/man/de/isomarkboot.sgml @@ -0,0 +1,92 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="isomarkboot"> + +<refmeta> +<refentrytitle>isomarkboot</refentrytitle> +<manvolnum>1</manvolnum> +<refmiscinfo>isomarkboot</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>isomarkboot</refname> +<refpurpose> +Erzeugt bootbare CD-ROMs für Linux/Alpha-Systeme. +</refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>isomarkboot</command> + <arg choice="plain">/dev/xxx</arg> + <arg choice="plain">pfad/zu/bootlx</arg> + <arg choice="opt">pfad/zu/root.bin</arg> + </cmdsynopsis> +</refsynopsisdiv> + +<refsect1><title>COPYRIGHT</title> +<para> +<application>isomarkboot</application> unterliegt dem Copyright (C) 1996 David Mosberger-Tang +</para> +</refsect1> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>isomarkboot</primary></indexterm> +<application>isomarkboot</application> +befähigt mit <application>mkisofs</application>(8) erstellte oder vom Netz +heruntergeladene ISO-Images auf Linux/Alpha-Systemen zu booten. +</para> + +<para> +Zuerst müssen Sie Ihr ISO-Image vorbereiten und über das Loopback-Gerät +auf <filename>/dev/xxx</filename> (typischerweise +<filename>/dev/loop0</filename>) montieren (siehe +<application>mount</application>(8) für Details). +</para> + +<para> +Als nächstes müssen Sie den aboot-Loader (<filename>bootlx</filename> genannt) +und das RAM-Disk-Image, das das Wurzelverzeichnisdateisystem enthält, +welches oft <filename>root.bin</filename> heißt, in Ihrem ISO-Image bestimmen. +Die Angabe letzterm ist optional, aber oft sinnvoll. +</para> +<para> +Schließlich machen Sie das Image bootbar: +</para> +<para> +<command> +isomarkboot <parameter>/dev/xxx pfad/zu/bootlx pfad/zu/root.bin</parameter> +</command> +</para> +<para> +Ein typischer Ort für <filename>bootlx</filename> auf dem Disk-Image ist +<filename>boot/bootlx</filename>. Die Pfade von <filename>bootlx</filename> +und <filename>root.bin</filename> sind relativ zur Wurzel des Images. Falls +Ihr Image nicht montiert ist müssen Sie <filename>/dev/xxx</filename> durch +dem Pfad zu Ihrem Image ersetzen. +</para> + +</refsect1> +<refsect1><title>FEHLER</title> +<para> +<application>isomarkboot</application> ist auf anderen Architekturen +(außer Alpha) nicht sehr intensiv getestet, obwohl es (mit kleinen Patches) +dort übersetzt. Bitte berichten Sie uns von Ihren Erfahrungen. +</para> +</refsect1> +<refsect1><title>ANMERKUNGEN</title> +<para> +<application>isomarkboot</application> ist in der Lage, Symlinks im Image +zu verarbeiten. +</para> +</refsect1> +<refsect1><title>AUTOR</title> +<para> +Diese Handbuchseite wurde von Helge Kreutzmann <email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt geschrieben; sie darf aber auch von +anderen verwendet werden. +</refsect1> +<refsect1><title>SIEHE AUCH</title> +<para><application>aboot</application>(8), <application>mkisofs</application>(8) +</para> +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/netabootwrap.sgml b/package/aboot/src/doc/man/de/netabootwrap.sgml new file mode 100644 index 000000000..9ef857674 --- /dev/null +++ b/package/aboot/src/doc/man/de/netabootwrap.sgml @@ -0,0 +1,107 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="netabootwrap"> + +<refmeta> +<refentrytitle>netabootwrap</refentrytitle> +<manvolnum>1</manvolnum> +<refmiscinfo>netabootwrap</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>netabootwrap</refname> +<refpurpose> +erzeugt netzbootbare Images für Linux/Alpha +</refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>netabootwrap</command> + <arg choice="opt">-t netboot.img</arg> + <arg choice="opt">-k vmlinux.gz</arg> + <arg choice="opt">-i initrd.gz</arg> + <arg choice="opt">-a "einige Kernelparameter"</arg> + </cmdsynopsis> +</refsynopsisdiv> + +<refsect1><title>COPYRIGHT</title> +<para> +<application>netabootwrap</application> ist (c) 2000 von Soohoon Lee +<email>soohoon.lee@api-networks.com</email> +</para> +</refsect1> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>netabootwrap</primary></indexterm> +<application>netabootwrap</application> fügt <filename>net_aboot</filename>, +den Kernel und die initrd Images zusammen, um ein netzbootbares Image für +Linux/Alpha-Systeme zu erstellen. +<filename>net_aboot.nh</filename> ist nicht funktionstüchtig, aber +<application>netabootwrap</application> hat die volle Funktionalität. +Ohne Optionen schaut es nach <filename>vmlinux.gz</filename> +und baut <filename>netboot.img</filename>, das ist <filename>net_aboot</filename> ++ <filename>vmlinux.gz</filename>. +</para> + +<para> +<variablelist> +<varlistentry><term>-t dateiname</term> +<listitem><para> +Setzt den Dateinamen des zu erzeugenden Netboot-Images, standardmäßig ist dies +<filename>netboot.img</filename>. Diese Datei wird überschrieben falls sie +existiert. +</para></listitem></varlistentry> +<varlistentry><term>-k dateiname</term> +<listitem><para> +Setzt den Dateinamen des Kernel-Images, standardmäßig ist dies +<filename>vmlinux.gz</filename> +</para></listitem></varlistentry> +<varlistentry><term>-i dateiname</term> +<listitem><para> +Setzt den Dateinamen des anfänglichen RAM-Disk-Images, standardmäßig ist dies <filename>initrd.gz</filename> +</para></listitem></varlistentry> +<varlistentry><term>-a "einige Kernelparameter"</term> +<listitem><para> +Stellt weitere Kerneloptionen bereit, z.B. -a "root=/dev/sda1 single" +</variablelist> +</para> + +</refsect1> + +<!-- <refsect1><title>FEHLER</title> +<para> +</para> + +</refsect1> --> + +<refsect1><title>HINWEISE</title> +<para> +Um das Image zu verwenden, benötigen Sie einen +<application>tftpd</application>(8)- und einen <application>dhcp</application>(8)- +oder <application>bootpd</application>(8)-Server. +Weitere Details finden Sie im SRM-HOWTO: +(<ULink URL="http://www.alphalinux.org/faq/srm.html"></ULink> oder in +<filename>/usr/share/doc/aboot/SRM-HOWTO/</filename> auf Debian GNU/Linux-Systemen (und möglicherweise auch anderen)) +</para> + +</refsect1> + +<refsect1><title>AUTOR</title> +<para> +Diese Handbuchseite wurde von Helge Kreutzmann +<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt geschrieben. Sie darf auch +von anderen verwendet werden. +</para> +</refsect1> +<refsect1><title>SIEHE AUCH</title> +<para> +<application>tftpd</application>(8), +<application>dhcpd</application>(8), +<application>bootpd</application>(8), +<application>aboot</application>(8), +SRM-HOWTO in <filename>/usr/share/doc/aboot/SRM-HOWTO/</filename> oder <ULink URL="http://www.alphalinux.org/faq/srm.html"></ULink>, +HP SRM Manual (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>) +</para> +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/sdisklabel.sgml b/package/aboot/src/doc/man/de/sdisklabel.sgml new file mode 100644 index 000000000..e1dbbd67a --- /dev/null +++ b/package/aboot/src/doc/man/de/sdisklabel.sgml @@ -0,0 +1,247 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="sdisklabel"> + +<refmeta> +<refentrytitle>sdisklabel</refentrytitle> +<manvolnum>8</manvolnum> +<refmiscinfo>sdisklabel</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>sdisklabel</refname> +<refpurpose> +Erzeugt/verändert Disklabels auf Linux/Alpha-Systemen +</refpurpose> +</refnamediv> + +<!-- This is the proper SGML way, but somehow doesn't work here --> +<refsynopsisdiv> + <cmdsynopsis> + <command>sdisklabel</command> + <arg choice="plain">gerät</arg> + <group choice="opt"><arg choice="plain">print</arg> + <arg choice="plain">zero</arg> + <arg choice="plain">sum</arg> + </group> + </cmdsynopsis> + <cmdsynopsis> + <command>sdisklabel</command> + <arg choice="plain">gerät</arg> + <arg choice="plain">size</arg> + <arg choice="plain">partitionsgrösse</arg> + </cmdsynopsis> + <cmdsynopsis> + <command>sdisklabel</command> + <arg choice="plain">gerät</arg> + <arg choice="plain">partnum</arg> + <arg choice="plain">offset</arg> + <arg choice="plain">größe</arg> + <arg choice="plain">parttype</arg> + </cmdsynopsis> +</refsynopsisdiv> +<!-- <refsect1><title>SYNOPSIS</title> +<para>sdisklabel <parameter>drive [print|zero|sum]</parameter></para> +<para>sdisklabel <parameter>drive size partsize</parameter></para> +<para>sdisklabel <parameter>drive partnum offset size parttype</parameter></para> +</refsect1> --> + +<refsect1><title>COPYRIGHT</title> +<para> +<application>sdisklabel</application> unterliegt dem Copyright von Red Hat +Inc. Der Autor dieser Handbuchseite hat versucht, den Originalautor des +Programms ausfindig zu machen, was ihm aber nicht gelungen ist. Ein +abschließender Bugzilla-Eintrag bei Red Hat ergab die folgende Antwort: +<quote> +I can't track down a Bob Manson (and I cannot find any record of his association +with Red Hat in the aboot sources), but any work he did on behalf of Red Hat +would be property of Red Hat, and you can consider all our changes to be release +under the GPL the same as the rest of the aboot package.</quote> + +</para> +</refsect1> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>sdisklabel</primary></indexterm> +<application>sdisklabel</application> +kann zum Anlegen von Partitionen (genannt Disklabels) auf Linux/Alpha-Systemen +verwendet werden. Sie <emphasis>müssen</emphasis> Disklabels anstatt des +<productname>DOS</productname>-artigen Partitionierungsschematas auf jeder +Festplatte, von der Sie mittels SRM booten, oder welche Sie mit +<productname>HP Tru64</productname> gemeinsam nutzen wollen, verwenden. +Falls Sie stattdessen mit <application>milo</application> booten, dann +dürfen Sie <emphasis>keine</emphasis> Disklabels auf Ihrer +Boot-Festplatte verwenden. +</para> + +<para> +Selbst wenn Sie Disklabels verwenden, wird der Einsatz von +<application>fdisk</application>(8) anstelle von +<application>sdisklabel</application> empfohlen. +</para> + +<para> +<application>sdisklabel</application> nimmt desweiteren an, daß Sie +eine SCSI-Festplatte mit 512 Byte Sektoren haben, obwohl es auch +problemlos auf IDE-Laufwerken arbeiten sollte. Alle Größenangaben werden +auf der Kommandozeile in Sektoren angegeben. +</para> + +<para> +Es gibt insgesamt 8 Partitionen, nummeriert von 0 bis 7. Sie entsprechen +den BSD Disklabels A bis H. Partitionen müssen sequentiell hinzugefügt +werden, da <application>sdisklabel</application> im Gegensatz zu vielen anderen +BSD-Disklabel-Programmen keine leeren Partitionen erlaubt. Falls Sie dies +möchten (oder falls Sie überlappende Disklabels wollen), verwenden Sie +stattdessen <application>fdisk</application>(8). +</para> + +<para> +Zuersteinmal, wenn Sie ein ungültiges Disklabel haben (Sie haben +<application>sdisklabel</application> auf dieser Festplatte nie zuvor +verwendet), dann müssen Sie +</para> + +<para> +<command> +sdisklabel <parameter>/dev/sda zero</parameter> +</command> +</para> + +<para> +eingeben (<filename>/dev/sda</filename> ist das Gerät, das Sie +partitionieren, passen Sie es entsprechend an). +</para> + +<para> +Dies überschreibt Ihr Disklabel. Verwenden Sie dies nur, wenn Sie das +Disklabel wirklich überschreiben wollen. Es macht genau das; es fragt +nicht, oder warnt nicht, oder sonstwas. +</para> + +<para> +Das Programm hat wahrscheinlich auch die Größe Ihrer Festplatte in kB +ausgegeben. Falls dies falsch war, können Sie die »<parameter>size +xxx</parameter>«-Option zusammen mit den restlichen Kommandos verwenden. +Die Größe ist nicht kritisch, sie wird nur verwendet, um zu versuchen, +sie am Überschreiten des Endes der Festplatte zu hindern. +</para> + +<para> +Als nächstes fügen Sie Ihre erste Partition hinzu. Diese fängt +<emphasis>nicht</emphasis> bei 0 an, da Sie für den Bootloader und +anderen Kram Platz lassen müssen. 256 kB (oder 512 Sektoren) sind genug. +</para> + +<para> +Nehmen wir an, daß Sie eine 250000 kB große Partition, beginnend beim +Sektor-Offset 512, anlegen wollen: +</para> + +<para> +<command> +sdisklabel <parameter>/dev/sda 0 512 500000 8 print</parameter> +</command> +</para> + +<para> +Die letzte Zahl ist der Dateisystemtyp, und ist derzeit 8 für ext2fs +Dateisysteme (Eine andere Zahl würde verwendet, um beispielsweise eine +<productname>Tru64</productname>-Partition anzugeben). +</para> + +<para> +Falls alles erfolgreich war, zeigt das Programm die Partition an (das letzte +Schlüsselwort, »print«, spezifiziert, das es die Partition nach der Veränderung +mit dem vorhergehenden Befehl anzeigen soll), und Sie sollten etwas ähnlich zu +</para> + +<para> +<blockquote> +<literallayout> +---------------------------------------------------------- +I think your disk is 528870K total size. +If I'm wrong, override the size with the 'size num' option + +partition 0: type 8, starts sector 512, size 500000 +---------------------------------------------------------- +</literallayout> +</blockquote> +</para> + +<para> +sehen. Sie können dann die nächste Partition, dies wäre dann Partition 1, +hinzufügen. Um eine zweite Partition, die 200000 kB lang ist, hinzuzufügen, +geben Sie +</para> + +<para> +<command> +sdisklabel <parameter>/dev/sda 1 512256 400000 8 print</parameter> +</command> +</para> +<para> +ein und beide Partitionen würden ausgegeben. +</para> + +<para> +Falls aus irgendeinem Grund die Größe falsch bestimmt worden wäre, würden +Sie stattdessen +</para> +<para> +<command> +sdisklabel <parameter>/dev/sda size 528870 0 512 400000 8 print</parameter> +</command> +</para> + +<para> +eingeben. Die »size«-Option sollte direkt dem Gerätenamen folgen, und +die Größe ist die Gesamtanzahl von Sektoren auf diesem Laufwerk. +</para> + +</refsect1> +<refsect1><title>FEHLER</title> +<para> +<application>sdisklabel</application> prüft nicht auf alle Fehler, bitte +mit Vorsicht benutzen. +</para> +</refsect1> +<refsect1><title>ANMERKUNGEN</title> +<para> +Falls Sie die Festplatte mit <productname>HP Tru64</productname> +(<productname>OSF/1</productname>) gemeinsam nutzen wollen, wird +empfohlen, die Partitionierungswerkzeuge von <productname>Tru64</productname> +zu verwenden, um die Festplatte vorzubereiten. +</para> +<para> +Um tatsächlich von der frisch markierten Festplatte zu booten müssen Sie +ebenfalls einen Urlader (boot strap) installieren, lesen Sie hierzu +<application>aboot</application>(8) und <application>swriteboot</application>(8) +für Einzelheiten. +</para> +<para> +Das »print«-Kommando kann vor oder nach jedem anderen Kommando angegeben werden. +</para> +<para> +Falls Sie leere Partitionen erhalten oder Labels, die über das Ende der +Festplatte hinausreichen, erstellen wollen (z.B. wenn Sie wissen, daß +<application>sdisklabel</application> eine falsche Größe meldet), dann +können Sie den <parameter>force</parameter>-Schalter auf der Kommandozeile +verwenden. +</para> +</refsect1> +<refsect1><title>AUTOR</title> +<para> +Diese Handbuchseite wurde von Helge Kreutzmann <email>debian@helgefjell.de</email> +für das Debian GNU/Linux-Projekt geschrieben; Sie kann aber von +anderen verwendet werden. Sie basiert wesentlich auf der bei den +<application>sdisklabel</application>-Quellen mitgelieferten +<filename>README</filename>-Datei. +</para> +</refsect1> +<refsect1><title>SIEHE AUCH</title> +<para> +<application>fdisk</application>(8), <application>aboot</application>(8), <application>swriteboot</application>(8) +</para> +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/srmbootfat.sgml b/package/aboot/src/doc/man/de/srmbootfat.sgml new file mode 100644 index 000000000..5711983b9 --- /dev/null +++ b/package/aboot/src/doc/man/de/srmbootfat.sgml @@ -0,0 +1,86 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="srmbootfat"> + +<refmeta> +<refentrytitle>srmbootfat</refentrytitle> +<manvolnum>1</manvolnum> +<refmiscinfo>srmbootfat</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>srmbootfat</refname> +<refpurpose> +Linux/Alpha SRM Boot-Block-Ersteller +</refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>srmbootfat</command> + <arg choice="plain">dateisystem_image</arg> + <arg choice="plain">boot_datei</arg> + </cmdsynopsis> +</refsynopsisdiv> + +<!-- <refsect1><title>COPYRIGHT</title> +<para> +</para> +</refsect1> --> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>srmbootfat</primary></indexterm> +Dieses Werkzeug ist schnell zusammengestrickt und sollte in seiner +derzeitigen Form nicht lange existieren. +</para> + +<para> +<application>Srmbootfat</application> findet die <filename>boot_datei</filename> +im Wurzelverzeichnis des in der Datei +<filename>dateisystem_image</filename> gespeicherten +<acronym>FAT</acronym>-Dateisystems und macht dies bootbar indem es den +geeigneten SRM-Boot-Block in diese Dateisystem-Image-Datei schreibt. +Dies funktioniert nur mit nicht partitionierten Medien (wie beispielsweise +Disketten), da andernfalls der Boot-Block in die Partitionstabelle geschrieben +werden müßte, welche sich außerhalb des Dateisystems befindet. Allerdings ist +eine Festplatte, die ein FAT-Dateisystem enthält, höchstwahrscheinlich mit der +PC-Partitionstabelle partitioniert, von der SRM sowieso nicht booten kann. +</para> + +<para> +Der Boot-Lader (<filename>boot_datei</filename>) muß fortlaufend sein, d.h. +hintereinanderfolgende Blöcke belegen. +</para> +</refsect1> + +<refsect1><title>ARGUMENTE</title> +<para> +<variablelist> +<varlistentry><term><filename>dateisystem_image</filename></term> +<listitem><para> +Der Name der Datei die das FAT-Dateisystem-Image enthält, bspw. +<filename>/dev/fd0</filename>. +</para></listitem></varlistentry> +<varlistentry><term><filename>boot_datei</filename></term> +<listitem><para> +Der Dateiname des Boot-Laders. +</para></listitem></varlistentry> +</variablelist> +</refsect1> + +<!-- <refsect1><title>FEHLER</title> +<para> +</para> +</refsect1> --> + +<refsect1><title>AUTOR</title> +<para> +Nikita Schmidt <email>cetus@snowball.ucd.ie</email> +</para> +</refsect1> +<refsect1><title>SIEHE AUCH</title> +<para> +<application>aboot</application>(8), <application>mke2fs</application>(8), <application>e2writeboot</application>(8) +</para> +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/srmbootraw.sgml b/package/aboot/src/doc/man/de/srmbootraw.sgml new file mode 100644 index 000000000..465401ecd --- /dev/null +++ b/package/aboot/src/doc/man/de/srmbootraw.sgml @@ -0,0 +1,84 @@ +<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<refentry id="srmbootraw"> + +<refmeta> +<refentrytitle>srmbootraw</refentrytitle> +<manvolnum>8</manvolnum> +<refmiscinfo>srmbootraw</refmiscinfo> +</refmeta> + +<refnamediv Lang="de"> +<refname>srmbootraw</refname> +<refpurpose> +Linux/Alpha SRM Bootblock-Ersteller +</refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>srmbootraw</command> + <arg choice="plain">boot_gerät</arg> + <arg choice="plain">boot_datei</arg> + </cmdsynopsis> +</refsynopsisdiv> + +<!-- <refsect1><title>COPYRIGHT</title> +<para> +</para> +</refsect1> --> + +<refsect1><title>BESCHREIBUNG</title> +<para> +<indexterm><primary>srmbootraw</primary></indexterm> +Dieses Werkzeug ist ein schneller Hack und soll in seinem derzeitigen +Zustand nicht lange exisitieren. +</para> + +<para> +<application>Srmbootraw</application> schreibt das Image aus +<filename>boot_datei</filename> +mit vorangestelltem SRM Bootblock unter Beibehaltung des disklabels +in die ersten Blocks des <filename>boot_geräts</filename>. +Es ist dazu gedacht, wenn Sie eine kleine rohe, für den Bootloader +dedizierte Partition am Anfang Ihrer Festplatte haben. Falls Sie diese +nicht haben, wird <application>srmbootraw</application> ohne Fehlermeldung +Ihr System unbenutzbar machen. +</para> +</refsect1> + +<refsect1><title>ARGUMENTE</title> +<para> +<variablelist> +<varlistentry><term><filename>boot_gerät</filename></term> +<listitem><para> +Das Gerät von dem Sie planen zu booten, bspw. <filename>/dev/sda</filename>. +Es muß genug Platz am Anfang sein, um den Bootblock und den Bootloader +aufzunehmen. +</para></listitem></varlistentry> +<varlistentry><term><filename>boot_datei</filename></term> +<listitem><para> +Der Dateiname des Bootloaders. +</para></listitem></varlistentry> +</variablelist> +</refsect1> + +<!-- <refsect1><title>FEHLER</title> +<para> +</para> +</refsect1> --> + +<refsect1><title>AUTOR</title> +<para> +Nikita Schmidt <email>cetus@snowball.ucd.ie</email> +</para> +</refsect1> +<refsect1><title>SIEHE AUCH</title> +<para> +<application>aboot</application>(8), +<application>mke2fs</application>(8), +<application>swriteboot</application>(8), +<application>e2writeboot</application>(8), +<application>srmbootfat</application>(1) +</para> +</refsect1> +</refentry> diff --git a/package/aboot/src/doc/man/de/swriteboot.8 b/package/aboot/src/doc/man/de/swriteboot.8 new file mode 100644 index 000000000..69e25e2f9 --- /dev/null +++ b/package/aboot/src/doc/man/de/swriteboot.8 @@ -0,0 +1,61 @@ +.\" sdisklabel - Write secondary SRM bootloader to harddisk +.\" +.\" Translated to german by Helge Kreutzmann <debian@helgefjell.de> +.TH swriteboot 8 "27 Juni 2004" "David Mosberger" "" +.SH NAME +swriteboot \- Schreibt sekundären SRM-Boot-Lader auf Festplatte. +.SH "ÜBERSICHT" +\fBswriteboot\fP [-v] [-f#] <gerät> <bootlader> [kernel] +.SH BESCHREIBUNG + +\fBswriteboot\fP kann zum Schreiben des sekundären Boot-Laders und -- +optional -- eines Kernels auf die Festplatte verwendet werden. Das +Ladeprogramm ist so geschrieben, daß es der SRM-Firmware erlaubt, davon +zu booten (SRM ist die Firmware, die auch zum Booten von \fBHP Tru64\fP, +\fBOpenVMS\fP und *BSD verwendet wird). Insbesondere ist das Ladeprogramm +so geschrieben, daß ein physikalisch kontinuierlicher Bereich von Sektoren, +beginnend bei Sektor 2 belegt wird und das der erste Sektor so aktualisiert +wird, daß die SRM-Firmware den Boot-Lader finden kann. \fBswriteboot\fP +kann versagen, falls der Bootstrap-Lader zu groß ist, um in die reservierten +Sektoren zu passen. Es wird daher empfohlen, die ersten 512 Sektoren +einer Festplatte für Boot-Zwecke zu reservieren. Dies läßt 256 kB Platz +für einen sekundären Bootstrap-Lader, was massig ausreichen sollte (derzeit +ist der \fBaboot\fP(8) Bootstrap-Lader ungefähr 90 kB groß). Reservieren Sie +mehr, falls Sie dort auch einen Kernel haben wollen - 2 MB sollte in diesem +Fall ausreichen. + +.P +Das \fI<gerät>\fP-Argument bestimmt das spezielle Gerät auf das die +\fI<bootlader>\fP-Datei geschrieben werden soll. Die Boot-Lader-Datei +muß ein »Header-Less«-Image (keine Objekt-Datei) sein, die den rohen +Inhalt der Text-, Data- und BSS-Sektionen enthält. Ein typisches Kommando +um SCSI-Platte 0 bootbar mit dem \fIaboot\fP(8)-Lader zu machen wird im +folgenden gezeigt: + +.I »swriteboot /dev/sda bootlx« + +.P +Die \fI-v\fP Option sorgt für etwas ausführlichere Meldungen von +\fBswriteboot\fP. +.P +Die \fI-f#\fP Option teilt \fBswriteboot\fP mit, einen Überlapp des Bootbereichs +mit der Partition \fI#\fP zu ignorieren. +.P +Die \fI-c#\fP Option teilt \fBswriteboot\fP explizit die Boot-Partition mit. +Falls dieses Argument fehlt, versucht \fBswriteboot\fP falls möglich die +Boot-Partition automatisch zu erkennen. Beachten Sie, daß Sie die +Boot-Partition später ebenfalls mit \fBabootconf\fP(8) setzten können. + +.nf +.SH SIEHE AUCH +.IR aboot (8) , +.IR abootconf (8) , +.IR mke2fs (8) , +.IR e2writeboot (8) +.nf +.SH AUTOREN +.nf +Bob Manson <manson@magnus.acs.ohio-state.edu> +Michael Schwingen <michael@schwingen.org> +Helge Kreutzmann <debian@helgefjell.de> (Aktualisierung der Handbuchseite) +.fi |