sos-code-article10/extra
Mathieu Maret 7a37e94da3 Initial import 2018-07-13 17:13:10 +02:00
..
Makefile Initial import 2018-07-13 17:13:10 +02:00
README Initial import 2018-07-13 17:13:10 +02:00
bootsect.S Initial import 2018-07-13 17:13:10 +02:00
dot.mkvars Initial import 2018-07-13 17:13:10 +02:00
grub.img.gz Initial import 2018-07-13 17:13:10 +02:00
hd20M.img.gz Initial import 2018-07-13 17:13:10 +02:00
mtoolsrc Initial import 2018-07-13 17:13:10 +02:00
patch-qemu-port-e9.diff Initial import 2018-07-13 17:13:10 +02:00
patch-qemu-pty.diff Initial import 2018-07-13 17:13:10 +02:00
sos_bsect.lds Initial import 2018-07-13 17:13:10 +02:00
termslave.c Initial import 2018-07-13 17:13:10 +02:00

README

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