2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>

* util/i386/pc/grub-install.in (grub_probefs): New variable.
        (modules): Likewise.
        (usage): Added descriptions for --modules and --grub-probefs.
        Handle --modules and --grub-probefs. Save the arguments in MODULES
        and GRUB_PROBEFS, respectively.
        Auto-detect a filesystem module against GRUBDIR. If the result is
        empty and modules are not specified explicitly, abort the
        installation. Add the result to MODULES.

        * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
        disk/powerpc/ieee1275/ofdisk.c,
        include/grub/powerpc/ieee1275/init.h and
        term/powerpc/ieee1275/ofconsole.c.
        Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
        term/ieee1275/ofconsole.c.

        * include/grub/powerpc/ieee1275/console.h: Resurrected.

        * COPYING: Upgraded to the latest version. Only the address of the
        FSF office has changed.
This commit is contained in:
okuji 2005-08-07 14:59:56 +00:00
parent efd6e6d564
commit 0e1430737f
7 changed files with 113 additions and 30 deletions

View file

@ -2,7 +2,7 @@
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found. the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.> <one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author> Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -313,7 +313,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this If the program is interactive, make it output a short notice like this
when it starts in an interactive mode: when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details. under certain conditions; type `show c' for details.

View file

@ -1,3 +1,26 @@
2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-install.in (grub_probefs): New variable.
(modules): Likewise.
(usage): Added descriptions for --modules and --grub-probefs.
Handle --modules and --grub-probefs. Save the arguments in MODULES
and GRUB_PROBEFS, respectively.
Auto-detect a filesystem module against GRUBDIR. If the result is
empty and modules are not specified explicitly, abort the
installation. Add the result to MODULES.
* DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
disk/powerpc/ieee1275/ofdisk.c,
include/grub/powerpc/ieee1275/init.h and
term/powerpc/ieee1275/ofconsole.c.
Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
term/ieee1275/ofconsole.c.
* include/grub/powerpc/ieee1275/console.h: Resurrected.
* COPYING: Upgraded to the latest version. Only the address of the
FSF office has changed.
2005-08-07 Yoshinori K. Okuji <okuji@enbug.org> 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced

View file

@ -30,7 +30,6 @@ boot/i386/pc/diskboot.S
boot/i386/pc/pxeboot.S boot/i386/pc/pxeboot.S
boot/powerpc/ieee1275/cmain.c boot/powerpc/ieee1275/cmain.c
boot/powerpc/ieee1275/crt0.S boot/powerpc/ieee1275/crt0.S
boot/powerpc/ieee1275/ieee1275.c
commands/i386/pc/halt.c commands/i386/pc/halt.c
commands/i386/pc/reboot.c commands/i386/pc/reboot.c
commands/ieee1275/halt.c commands/ieee1275/halt.c
@ -50,7 +49,7 @@ conf/i386-pc.rmk
conf/powerpc-ieee1275.mk conf/powerpc-ieee1275.mk
conf/powerpc-ieee1275.rmk conf/powerpc-ieee1275.rmk
disk/i386/pc/biosdisk.c disk/i386/pc/biosdisk.c
disk/powerpc/ieee1275/ofdisk.c disk/ieee1275/ofdisk.c
disk/loopback.c disk/loopback.c
font/manager.c font/manager.c
fs/ext2.c fs/ext2.c
@ -81,7 +80,6 @@ include/grub/powerpc/ieee1275/util/biosdisk.h
include/grub/powerpc/ieee1275/biosdisk.h include/grub/powerpc/ieee1275/biosdisk.h
include/grub/powerpc/ieee1275/console.h include/grub/powerpc/ieee1275/console.h
include/grub/powerpc/ieee1275/ieee1275.h include/grub/powerpc/ieee1275/ieee1275.h
include/grub/powerpc/ieee1275/init.h
include/grub/powerpc/ieee1275/kernel.h include/grub/powerpc/ieee1275/kernel.h
include/grub/powerpc/ieee1275/loader.h include/grub/powerpc/ieee1275/loader.h
include/grub/powerpc/ieee1275/multiboot.h include/grub/powerpc/ieee1275/multiboot.h
@ -122,6 +120,7 @@ kern/i386/pc/init.c
kern/i386/pc/lzo1x.S kern/i386/pc/lzo1x.S
kern/i386/pc/startup.S kern/i386/pc/startup.S
kern/i386/dl.c kern/i386/dl.c
kern/ieee1275/of.c
kern/powerpc/ieee1275/init.c kern/powerpc/ieee1275/init.c
kern/powerpc/ieee1275/openfw.c kern/powerpc/ieee1275/openfw.c
kern/powerpc/cache.S kern/powerpc/cache.S
@ -163,7 +162,7 @@ partmap/pc.c
partmap/sun.c partmap/sun.c
term/i386/pc/console.c term/i386/pc/console.c
term/i386/pc/vga.c term/i386/pc/vga.c
term/powerpc/ieee1275/ofconsole.c term/ieee1275/ofconsole.c
util/i386/pc/biosdisk.c util/i386/pc/biosdisk.c
util/i386/pc/getroot.c util/i386/pc/getroot.c
util/i386/pc/grub-install.in util/i386/pc/grub-install.in

2
NEWS
View file

@ -9,6 +9,8 @@ New in 1.90:
PowerPC-based machines as well, if they use IEEE 1275 PowerPC-based machines as well, if they use IEEE 1275
(Open Firmware). (Open Firmware).
* Too many changes to describe. Look at ChangeLog for more details.
New in 0.7: New in 0.7:

19
README
View file

@ -2,10 +2,6 @@ This is GRUB 2, the second version of the GRand Unified Bootloader.
GRUB 2 is rewritten from scratch to make GNU GRUB cleaner, safer, more GRUB 2 is rewritten from scratch to make GNU GRUB cleaner, safer, more
robust, more powerful, and more portable. robust, more powerful, and more portable.
Because GRUB 2 was formerly developed under the project PUPA, there
remain still many places where PUPA is used instead of GRUB 2. So
suppose that PUPA is a synonym of GRUB 2 for now.
See the file NEWS for a description of recent changes to GRUB 2. See the file NEWS for a description of recent changes to GRUB 2.
See the file INSTALL for instructions on how to build and install the See the file INSTALL for instructions on how to build and install the
@ -14,16 +10,5 @@ GRUB 2 data and program files.
Please visit the official web page of GRUB 2, for more information. Please visit the official web page of GRUB 2, for more information.
The URL is <http://www.gnu.org/software/grub/grub.html>. The URL is <http://www.gnu.org/software/grub/grub.html>.
For now, there is not much documentation yet. Please look at the GRUB
Wiki <http://www.autistici.org/grub/> for testing procedures.
Because GRUB 2 is still in developmental stage, GRUB 2 is not for general
use (yet). For now, you can install GRUB 2 into a floppy by these
instructions:
$ configure && make
$ ./grub-mkimage -v -d . -o core.img _chain ext2
$ dd if=boot.img of=/dev/fd0 bs=512 count=1
$ dd if=core.img of=/dev/fd0 bs=512 seek=1
It would be easier to use Bochs <http://bochs.sf.net/> than a real
machine.

View file

@ -0,0 +1,59 @@
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 2002, 2004 Free Software Foundation, Inc.
*
* 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 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef GRUB_CONSOLE_MACHINE_HEADER
#define GRUB_CONSOLE_MACHINE_HEADER 1
/* Define scan codes. */
#define GRUB_CONSOLE_KEY_LEFT 0x4B00
#define GRUB_CONSOLE_KEY_RIGHT 0x4D00
#define GRUB_CONSOLE_KEY_UP 0x4800
#define GRUB_CONSOLE_KEY_DOWN 0x5000
#define GRUB_CONSOLE_KEY_IC 0x5200
#define GRUB_CONSOLE_KEY_DC 0x5300
#define GRUB_CONSOLE_KEY_BACKSPACE 0x0008
#define GRUB_CONSOLE_KEY_HOME 0x4700
#define GRUB_CONSOLE_KEY_END 0x4F00
#define GRUB_CONSOLE_KEY_NPAGE 0x4900
#define GRUB_CONSOLE_KEY_PPAGE 0x5100
#ifndef ASM_FILE
#include <grub/types.h>
#include <grub/symbol.h>
/* These are global to share code between C and asm. */
extern grub_uint8_t grub_console_cur_color;
void grub_console_real_putchar (int c);
int EXPORT_FUNC(grub_console_checkkey) (void);
int EXPORT_FUNC(grub_console_getkey) (void);
grub_uint16_t grub_console_getxy (void);
void grub_console_gotoxy (grub_uint8_t x, grub_uint8_t y);
void grub_console_cls (void);
void grub_console_setcursor (int on);
/* Initialize the console system. */
void grub_console_init (void);
/* Finish the console system. */
void grub_console_fini (void);
#endif
#endif /* ! GRUB_CONSOLE_MACHINE_HEADER */

View file

@ -33,8 +33,10 @@ pkgdatadir=${datadir}/${PACKAGE_TARNAME}/${host_cpu}-${host_vendor}
grub_setup=${sbindir}/grub-setup grub_setup=${sbindir}/grub-setup
grub_mkimage=${sbindir}/grub-mkimage grub_mkimage=${sbindir}/grub-mkimage
grub_mkdevicemap=${sbindir}/grub-mkdevicemap grub_mkdevicemap=${sbindir}/grub-mkdevicemap
grub_probefs=${sbindir}/grub-probefs
rootdir= rootdir=
grub_prefix=/boot/grub grub_prefix=/boot/grub
modules=
install_device= install_device=
no_floppy= no_floppy=
@ -51,11 +53,13 @@ Install GRUB on your drive.
-h, --help print this message and exit -h, --help print this message and exit
-v, --version print the version information and exit -v, --version print the version information and exit
--modules=MODULES pre-load specified modules MODULES
--root-directory=DIR install GRUB images under the directory DIR --root-directory=DIR install GRUB images under the directory DIR
instead of the root directory instead of the root directory
--grub-setup=FILE use FILE as grub-setup --grub-setup=FILE use FILE as grub-setup
--grub-mkimage=FILE use FILE as grub-mkimage --grub-mkimage=FILE use FILE as grub-mkimage
--grub-mkdevicemap=FILE use FILE as grub-mkdevicemap --grub-mkdevicemap=FILE use FILE as grub-mkdevicemap
--grub-probefs=FILE use FILE as grub-probefs
--no-floppy do not probe any floppy drive --no-floppy do not probe any floppy drive
--recheck probe a device map even if it already exists --recheck probe a device map even if it already exists
@ -78,6 +82,8 @@ for option in "$@"; do
-v | --version) -v | --version)
echo "grub-install (GNU GRUB ${PACKAGE_VERSION})" echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
exit 0 ;; exit 0 ;;
--modules=*)
modules=`echo "$option" | sed 's/--modules=//'` ;;
--root-directory=*) --root-directory=*)
rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
--grub-setup=*) --grub-setup=*)
@ -85,7 +91,9 @@ for option in "$@"; do
--grub-mkimage=*) --grub-mkimage=*)
grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;; grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
--grub-mkdevicemap=*) --grub-mkdevicemap=*)
grub_setup=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;; grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
--grub-probefs=*)
grub_probefs=`echo "$option" | sed 's/--grub-probefs=//'` ;;
--no-floppy) --no-floppy)
no_floppy="--no-floppy" ;; no_floppy="--no-floppy" ;;
--recheck) --recheck)
@ -198,10 +206,17 @@ for file in ${pkgdatadir}/*.mod ${pkgdatadir}/*.lst ${pkgdatadir}/*.img; do
cp -f $file ${grubdir} || exit 1 cp -f $file ${grubdir} || exit 1
done done
# Create the core image. # Create the core image. First, auto-detect the filesystme module.
modules="_chain pc" fs_module=`$grub_probefs --device-map=${device_map} ${grubdir}`
# XXX This must be dynamic. I'm still thinking how to implement this. if test "x$fs_module" = x -a "x$modules" = x; then
modules="$modules fat" echo "Auto-detection of a filesystem module failed." 1>&2
echo "Please specify the module with the option `--modules' explicitly." 1>&2
exit 1
fi
# Typically, _chain and pc are required.
modules="$modules $fs_module _chain pc"
$grub_mkimage --output=${grubdir}/core.img $modules || exit 1 $grub_mkimage --output=${grubdir}/core.img $modules || exit 1
# Now perform the installation. # Now perform the installation.