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 - qemu-port-e9.diff: patch over qemu to suppo 022 - qemu-port-e9.diff: patch over qemu to support the bochs "port 0xe9 hack"
023 023
024 024
025 What you can do with these files 025 What you can do with these files
026 ================================ 026 ================================
027 027
028 028
029 *** Compile SOS from another architecture: 029 *** Compile SOS from another architecture:
030 ------------------------------------------ 030 ------------------------------------------
031 - compile a cross-compiler for the i586-gnu t 031 - compile a cross-compiler for the i586-gnu target. This involves
032 compiling the binutils and gcc. Here are ex 032 compiling the binutils and gcc. Here are example configuration
033 options for them: 033 options for them:
034 binutils (replace sparc-cun-solaris with yo 034 binutils (replace sparc-cun-solaris with your arch):
035 ../binutils-2.13/configure --prefix=/udd/ 035 ../binutils-2.13/configure --prefix=/udd/ddecotig/temp_dd/xgcc/host-sparc-solaris7/stow/binutils-2.11 --host=sparc-sun-solaris2.7 i586-gnu
036 make && make install 036 make && make install
037 gcc (ditto): 037 gcc (ditto):
038 CFLAGS="-O2 -Dinhibit_libc" ../gcc-3.2/co 038 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
039 make && make install 039 make && make install
040 - compile the mtools 040 - compile the mtools
041 - copy dot.mkvars to the root directory of SO 041 - copy dot.mkvars to the root directory of SOS, as ".mkvars"
042 - customize the CC/LD/... variables to suit y 042 - customize the CC/LD/... variables to suit your cross-compiler
043 installatioon 043 installatioon
044 - now you may run make from the SOS root dire 044 - now you may run make from the SOS root directory, it should
045 generate the Grub boot floppy image. The fo 045 generate the Grub boot floppy image. The following warning is
046 normal: 046 normal:
047 .mkvars:16: attention : écrasement des co 047 .mkvars:16: attention : écrasement des commandes pour la cible « grub-sos.img »
048 Makefile:92: attention : anciennes comman 048 Makefile:92: attention : anciennes commandes ignorées pour la cible « grub-sos.img »
049 049
050 050
051 *** To compile SOS from an x86 where grub is n 051 *** To compile SOS from an x86 where grub is not or incorrectly installed:
052 ---------------------------------------------- 052 --------------------------------------------------------------------------
053 - copy dot.mkvars to the root directory of SO 053 - copy dot.mkvars to the root directory of SOS, as ".mkvars"
054 - customize the CC/LD/... variables to suit y 054 - customize the CC/LD/... variables to suit your cross-compiler
055 installatioon 055 installatioon
056 - now you may run make from the SOS root dire 056 - now you may run make from the SOS root directory, it should
057 generate the Grub boot floppy image. The fo 057 generate the Grub boot floppy image. The following warning is
058 normal: 058 normal:
059 .mkvars:16: attention : écrasement des co 059 .mkvars:16: attention : écrasement des commandes pour la cible « grub-sos.img »
060 Makefile:92: attention : anciennes comman 060 Makefile:92: attention : anciennes commandes ignorées pour la cible « grub-sos.img »
061 061
062 062
063 *** To compile SOS with its own bootloader: 063 *** To compile SOS with its own bootloader:
064 ------------------------------------------- 064 -------------------------------------------
065 - for cross-architecture compilation: see abo 065 - for cross-architecture compilation: see above
066 - cd to this extra/ directory 066 - cd to this extra/ directory
067 - run 'make' 067 - run 'make'
068 - the floppy image is: sos_bsect.img 068 - the floppy image is: sos_bsect.img
069 NOTE : SOS will not boot correctly this way a 069 NOTE : SOS will not boot correctly this way after article 2 !
070 070
071 071
072 -- 072 --
073 David Decotigny 073 David Decotigny