[<prev] [next>] [day] [month] [year] [list]
Message-ID: <26299.12218.qm@web23602.mail.ird.yahoo.com>
Date:	Tue, 12 May 2009 22:01:08 +0000 (GMT)
From:	Etienne Lorrain <etienne_lorrain@...oo.fr>
To:	linux-kernel@...r.kernel.org
Subject: [ANNOUNCE] Gujin GPL bootloader version 2.6
There is a new version v2.6 of Gujin at http://gujin.sf.net with 
bugfixes and improvement, like: 
  - Better PCI BIOS to detect IDE interfaces (SATA CDROM at non
  conventional address)
  - Better EDID BIOS support (screen definition detection)
  - Fix modification of *.iso images, fix ELF32/64 handling by
  tiny images.
  - works with GCC-4.4, works with every distribution-provided
  compiler I tested.
  - Align by default the clusters of FAT16/32 filesystems even if
  the start of the partition isn't aligned, generate FAT32 useable
  by Windows.
  - Completely remove the support for zImage and for locating
  the ELF in the Linux kernel, now only the official way to boot a
  bzImage Linux kernel is possible, and *.kgz files have to be
  compressed ELF32/64 files.
  - Gives few examples of ELF32 and ELF64 bootable kgz files,
  with and without memory relocation by using ld option --emit-relocs:
  see hello*.kgz in Makefile.
  - Generate a "gujin" executable, which is "instboot + few embedded
  boot images" for either 32 or 64 bits Linux, to use like (as root):
    -> to install the way GRUB or LILO installs themselves:
./gujin /boot/gujin.ebios
    -> to remove (and re-install previous bootloader)
./gujin --remove=/dev/sda && rm /boot/gujin.ebios
    -> to initialise a "superfloppy" FAT filesystem on a USB drive:
umount /dev/sdz*      # device /dev/sdz will be ERASED
./gujin --disk=BIOS:0x0,auto /dev/sdz
    -> to  transform a bootable ISO file and write it to a USB stick:
umount /dev/sdz*      # device /dev/sdz will be ERASED
./gujin eeebuntu-2.0-standard.iso \\
        && cat eeebuntu-2.0-standard.iso > /dev/sdz && sync
    -> for more example, use gujin without parameters,
        or with --help parameter.
 
 The simplest bootable "hello world" kgz file is:
/*  To be compiled by:
$ gcc -m32 -Wall -O2 -s -static -nostartfiles -nodefaultlibs \
   -Wl,-Ttext=0x110000 hello.c -o hello.elf
$ gzip -9 hello.elf -c > hello.kgz
*/
const char msg1[] = "Hello protected-mode text world! please reboot ...";
#define STACKSIZE 64 * 1024
static unsigned stack[STACKSIZE / 4] __attribute__ ((aligned(32)));
void _start (void)
{
    /* We are flat non-paged memory and interrupt disabled */
    asm (" mov %0,%%esp " : : "i" (&stack[STACKSIZE / 4]));
    /* This work only in text modes (assumed mode 3), video
    memory at real mode address 0xB800:0000. At this address,
    we shall write two bytes per char, one  containing the foreground
    and background color, the other containing the letter: */
    volatile unsigned short *video_array
         = (volatile unsigned short *)0xB8000;
    unsigned cpt1;
    video_array += 10 * 80;  /* few empty lines */
    /* We want blue background color and lightgray foreground: */
    for (cpt1 = 0; cpt1 < sizeof(msg1) - 1; cpt1++)
            video_array[cpt1] = 0x1700 + msg1[cpt1];
    while (1)
        continue;
}
 Downloads at:
http://sourceforge.net/project/showfiles.php?group_id=15465
  Have fun,
  Etienne.
      
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Powered by blists - more mailing lists