Contents of the extra/ directory
================================
Data and configuration files to support generation of sos on non-x86
and/or grub-less hosts:
- dot.mkvars: file to copy as .mkvars in the root directory to
compile on a non-x86 host, and to generate the grub floppy image on
a grub-less host
- grub.img.gz: compressed image of a Grub floppy (without any
kernel). Used by dot.mkvars.
- mtoolsrc: file needed by .mkvars to compile a the floppy image
Support of a sos-specific boot sector:
- Makefile: rules to compile sos_bsect.img, the floppy image with the
boot sector and the Sos
- bootsect.S: x86 Sos boot sector (GNU as). Depends on sos_bsect.lds
- sos_bsect.lds: ld script to bind the boot sector with the remaining
of the kernel
Misc:
- patch-qemu-port-e9.diff: patch over qemu to support the bochs "port
0xe9 hack"
- patch-qemu-pty.diff: patch over qemu to fix a bug related to the
handling of the "-monitor pty" and "-serial pty" options
- termslave.c: Linux program to dial with qemu's monitor (or serial
line) from within a terminal. See comments in the beginning
What you can do with these files
================================
*** Compile SOS from another architecture:
------------------------------------------
- compile a cross-compiler for the i586-gnu target. This involves
compiling the binutils and gcc. Here are example configuration
options for them:
binutils (replace sparc-cun-solaris with your arch):
../binutils-2.13/configure --prefix=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/stow/binutils-2.11 --host=sparc-sun-solaris2.7 i586-gnu
make && make install
gcc (ditto):
CFLAGS="-O2 -Dinhibit_libc" ../gcc-3.2/configure --target=i586-gnu --prefix=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/stow/gcc-3.2 --with-as=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/bin/as --with-ld=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/bin/ld --with-gnu-as --with-gnu-ld --enable-languages=c --disable-shared --disable-multilib --disable-nls --enable-threads=single
make && make install
- compile the mtools
- copy dot.mkvars to the root directory of SOS, as ".mkvars"
- customize the CC/LD/... variables to suit your cross-compiler
installatioon
- now you may run make from the SOS root directory, it should
generate the Grub boot floppy image. The following warning is
normal:
.mkvars:16: attention : <20>crasement des commandes pour la cible <20> grub-sos.img <20>
Makefile:92: attention : anciennes commandes ignor<6F>es pour la cible <20> grub-sos.img <20>
*** To compile SOS from an x86 where grub is not or incorrectly installed:
--------------------------------------------------------------------------
- copy dot.mkvars to the root directory of SOS, as ".mkvars"
- customize the CC/LD/... variables to suit your cross-compiler
installatioon
- now you may run make from the SOS root directory, it should
generate the Grub boot floppy image. The following warning is
normal:
.mkvars:16: attention : <20>crasement des commandes pour la cible <20> grub-sos.img <20>
Makefile:92: attention : anciennes commandes ignor<6F>es pour la cible <20> grub-sos.img <20>
*** To compile SOS with its own bootloader:
-------------------------------------------
- for cross-architecture compilation: see above
- cd to this extra/ directory
- run 'make'
- the floppy image is: sos_bsect.img for use with bochs or on a real
floppy disk
to use the image under qemu: use sos_qemu.img
NOTE : From article 2 onward, be warned that using this bootsect
might lead to system crashes. This would be because the
solution we use to retrieve the RAM size might not work
properly on some systems (BIOS buggy or more than 1G RAM). THE
best way to boot SOS is always to use Grub.
--
David Decotigny