Diff markup
001 001
002 Contents of the extra/ directory 002 Contents of the extra/ directory
003 ================================ 003 ================================
004 004
005 Data and configuration files to support genera 005 Data and configuration files to support generation of sos on non-x86
006 and/or grub-less hosts: 006 and/or grub-less hosts:
007 - dot.mkvars: file to copy as .mkvars in the 007 - dot.mkvars: file to copy as .mkvars in the root directory to
008 compile on a non-x86 host, and to generate 008 compile on a non-x86 host, and to generate the grub floppy image on
009 a grub-less host 009 a grub-less host
010 - grub.img.gz: compressed image of a Grub flo 010 - grub.img.gz: compressed image of a Grub floppy (without any
011 kernel). Used by dot.mkvars. 011 kernel). Used by dot.mkvars.
012 - mtoolsrc: file needed by .mkvars to compile 012 - mtoolsrc: file needed by .mkvars to compile a the floppy image
013 013
014 Support of a sos-specific boot sector: 014 Support of a sos-specific boot sector:
015 - Makefile: rules to compile sos_bsect.img, t 015 - Makefile: rules to compile sos_bsect.img, the floppy image with the
016 boot sector and the Sos 016 boot sector and the Sos
017 - bootsect.S: x86 Sos boot sector (GNU as). D 017 - bootsect.S: x86 Sos boot sector (GNU as). Depends on sos_bsect.lds
018 - sos_bsect.lds: ld script to bind the boot s 018 - sos_bsect.lds: ld script to bind the boot sector with the remaining
019 of the kernel 019 of the kernel
020 020
021 Misc: 021 Misc:
022 - patch-qemu-port-e9.diff: patch over qemu to 022 - patch-qemu-port-e9.diff: patch over qemu to support the bochs "port
023 0xe9 hack" 023 0xe9 hack"
024 - patch-qemu-pty.diff: patch over qemu to fix 024 - patch-qemu-pty.diff: patch over qemu to fix a bug related to the
025 handling of the "-monitor pty" and "-serial 025 handling of the "-monitor pty" and "-serial pty" options
026 - termslave.c: Linux program to dial with qem 026 - termslave.c: Linux program to dial with qemu's monitor (or serial
027 line) from within a terminal. See comments 027 line) from within a terminal. See comments in the beginning
028 028
029 029
030 What you can do with these files 030 What you can do with these files
031 ================================ 031 ================================
032 032
033 033
034 *** Compile SOS from another architecture: 034 *** Compile SOS from another architecture:
035 ------------------------------------------ 035 ------------------------------------------
036 - compile a cross-compiler for the i586-gnu t 036 - compile a cross-compiler for the i586-gnu target. This involves
037 compiling the binutils and gcc. Here are ex 037 compiling the binutils and gcc. Here are example configuration
038 options for them: 038 options for them:
039 binutils (replace sparc-cun-solaris with yo 039 binutils (replace sparc-cun-solaris with your arch):
040 ../binutils-2.13/configure --prefix=/udd/ 040 ../binutils-2.13/configure --prefix=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/stow/binutils-2.11 --host=sparc-sun-solaris2.7 i586-gnu
041 make && make install 041 make && make install
042 gcc (ditto): 042 gcc (ditto):
043 CFLAGS="-O2 -Dinhibit_libc" ../gcc-3.2/co 043 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
044 make && make install 044 make && make install
045 - compile the mtools 045 - compile the mtools
046 - copy dot.mkvars to the root directory of SO 046 - copy dot.mkvars to the root directory of SOS, as ".mkvars"
047 - customize the CC/LD/... variables to suit y 047 - customize the CC/LD/... variables to suit your cross-compiler
048 installatioon 048 installatioon
049 - now you may run make from the SOS root dire 049 - now you may run make from the SOS root directory, it should
050 generate the Grub boot floppy image. The fo 050 generate the Grub boot floppy image. The following warning is
051 normal: 051 normal:
052 .mkvars:16: attention : écrasement des co 052 .mkvars:16: attention : écrasement des commandes pour la cible « grub-sos.img »
053 Makefile:92: attention : anciennes comman 053 Makefile:92: attention : anciennes commandes ignorées pour la cible « grub-sos.img »
054 054
055 055
056 *** To compile SOS from an x86 where grub is n 056 *** To compile SOS from an x86 where grub is not or incorrectly installed:
057 ---------------------------------------------- 057 --------------------------------------------------------------------------
058 - copy dot.mkvars to the root directory of SO 058 - copy dot.mkvars to the root directory of SOS, as ".mkvars"
059 - customize the CC/LD/... variables to suit y 059 - customize the CC/LD/... variables to suit your cross-compiler
060 installatioon 060 installatioon
061 - now you may run make from the SOS root dire 061 - now you may run make from the SOS root directory, it should
062 generate the Grub boot floppy image. The fo 062 generate the Grub boot floppy image. The following warning is
063 normal: 063 normal:
064 .mkvars:16: attention : écrasement des co 064 .mkvars:16: attention : écrasement des commandes pour la cible « grub-sos.img »
065 Makefile:92: attention : anciennes comman 065 Makefile:92: attention : anciennes commandes ignorées pour la cible « grub-sos.img »
066 066
067 067
068 *** To compile SOS with its own bootloader: 068 *** To compile SOS with its own bootloader:
069 ------------------------------------------- 069 -------------------------------------------
070 - for cross-architecture compilation: see abo 070 - for cross-architecture compilation: see above
071 - cd to this extra/ directory 071 - cd to this extra/ directory
072 - run 'make' 072 - run 'make'
073 - the floppy image is: sos_bsect.img for use 073 - the floppy image is: sos_bsect.img for use with bochs or on a real
074 floppy disk 074 floppy disk
075 to use the image under qemu: use sos_qemu.i 075 to use the image under qemu: use sos_qemu.img
076 076
077 NOTE : From article 2 onward, be warned that 077 NOTE : From article 2 onward, be warned that using this bootsect
078 might lead to system crashes. This wou 078 might lead to system crashes. This would be because the
079 solution we use to retrieve the RAM si 079 solution we use to retrieve the RAM size might not work
080 properly on some systems (BIOS buggy o 080 properly on some systems (BIOS buggy or more than 1G RAM). THE
081 best way to boot SOS is always to use 081 best way to boot SOS is always to use Grub.
082 082
083 083
084 -- 084 --
085 David Decotigny 085 David Decotigny