1# @(#)README 8.1 (Berkeley) 06/11/93 2 34.4BSD-alpha 80386/80486 Status 4June 20, 1992 5Pace Willisson <pace@blitz.com> +1 508 533 6430 6 7I believe that the sources in the 4.4BSD-alpha release can be compiled 8into a fairly usable system on IBM-AT class machines, although it is 9still pretty hard to bootstrap from the sources. In this file, I'll 10describe the kinds of testing I've done with this kernel, and I'll 11give some hints about how to compiled it. 12 13I've been testing on a no-name motherboard with a 33 MHz 80486DX, 16 14Megabytes of RAM, an 80 Megabyte ST-506 MFM disk, a 500 Megabyte SCSI 15Wren 5 and a Western Digital 8003 Ethernet controller. I've also run 16a predecessor to this kernel on a very old 16 MHz 80386/80387. 17 18My main test is to run a loop of kernel compiles: 19 20 cd /sys/compile/PACE 21 while true 22 do 23 rm -f *.o 24 make 25 done 26 27This takes about 35 minutes per loop, and I haven't seen it fail with 28recent kernels. The longest I've let it run is about 2 days. 29 30I don't do any real development on the machine (I keep the active 31kernel sources on another machine and usually cross compile it), but I 32haven't seen any problems with running a random collection of 33utilities including gnuemacs, gcc, gdb, ftp, rlogin, trn and xterm. 34 35If you want to try to compile and run this kernel, here are some hints: 36 37First, if you received the "lite" distribution, then you will need to 38fill in the missing files. The changes needed are almost exactly the 39same as those needed to fill out the NET/2 distribution, so a 40reasonable start would be to use the 386BSD diffs. 41 42Next, you have to run a Berkeley version of gcc. Although it 43identifies itself as "gcc version 1.39", it has some changes from the 44real 1.39 that are important. The main thing is that bit fields may 45cross 32 bit boundaries. Therefore, the first step in cross compiling 46the kernel must be to compile the gcc from this tape (or the one from 47the NET/2 tape). The compiler supplied with either the Jolitz or BSDI 48distributions should also be acceptable. If you want to double check, 49make a test file that includes i386/include/segments.h, and make sure 50that sizeof (struct segment_descriptor) == 8. 51 52If your host is not a very modern BSD system, you will also need to 53make cross versions of "make" and perhaps other binary utilities. 54You will certainly need a cross version of src/usr.sbin/config. 55 56Hopefully, you will be able to use your own system's include files 57while compiling the cross-compilation system, since many of the 58include files on the 4.4BSD tape are incompatible even with NET/2 59systems. You may need to make a few changes to the programs in the 60compilation system, since they assume they will run under 4.4BSD, even 61if they don't explicitly take advantage of the new features. 62 63If you host is not a NET/2 based system, be sure to configure the 64cross compilation system to ignore the host's include files and 65libraries, and instead use the 4.4BSD versions. Also, if your host 66is not little endian, then you have major work to do to most of the 67binary utilities. 68 69Now you need to configure the kernel - start with i386/conf/BLITZ. 70You can probably use it as it stands, but look it over to make sure. 71Then do: 72 73 $ cd i386/conf 74 $ config BLITZ 75 $ cd ../../compile/BLITZ 76 $ make 77 78You may need to compile genassym.c by hand, since it is executed on the 79host machine to create assym.s. 80 81Once you have a kernel, you need to get a disk ready to run it. Since 82this is an experimental system, you should make sure you don't have 83any important files on the disk. I have been successful in switching 84back and forth between a NET/2 kernel and a 4.4BSD kernel, but I never 85keep important files on that disk. Also, 4.4BSD does not make any 86attempt to co-exist with MSDOS. 87 88Now you have to create a file system. The easiest approach would be 89to load either the Jolitz or BSDI binaries, then install your new 90kernel. If you do this, you should check the device numbers first, 91and perhaps adjust the drivers or conf.c file. 4.4BSD is supposed to 92be binary compatible with these systems, so you should be able to use 93the existing programs in bin, usr/bin, etc. Binaries from 4.3BSD 386 94systems may be compatible as well. 95 96When you are ready to install the new libraries, you must install the 97new include files at the same time. Programs compiled with the new 98libraries will not be compatible with the old kernel. 99 100If you don't have either the Jolitz or BSDI system, you can bootstrap 101using some other system that has a little endian the Berkeley file 102system. If you do this, you can mount a floppy on your host and copy 103over the kernel, the boot programs, and cross compiled versions of 104critical utilities. Then you can boot the floppy, make a hard disk 105file system, and copy the files over. Now you can boot from the hard 106disk and load more files from floppy tar's or over the network. (Note 107that although ESIX System 5.3.2 has a version of the Berkeley file 108system, it has a slightly different inode format, so it is not a good 109choice as a host.) 110 111If you compile the boot programs from this tape, you may need to 112change the RELOC value from 70000 to 90000. Unfortunately, I cannot 113test this before the 4.4BSD-alpha sources are frozen, but if you think 114your kernel is clobbering the boot program, then change 7 to 9 in 115these places: 116 117 cd /sys/i386/stand/ 118 grep -n 70 * 119 Makefile:13:RELOC= 70000 120 Makefile:14:RELOC2= 70200 121 fdbootblk.c:47:#define start 0x70400 122 fdbootblk.c:128: movl $0x70200,%edi 123 wdbootblk.c:56:#define start 0x70400 124 125This distribution assumes that the main floppy is a 3.5 inch drive. 126If you have a 5.25, you will have to do something creative. The easy 127hack I've chosen is to reverse the first two lines of the array 128fd_types in i386/stand/fd.c and i386/isa/fd.c. 129 130The Adaptech scsi driver will not be part of 4.4BSD-alpha (it has to 131wait until the grand scsi plan is implemented), but you should be able 132to add the driver that I posted to alt.sources without any trouble. 133 134Finally, I've done all of my testing of this kernel on my old NET/2 135file system. This means that I have not checked out the configuration 136files (things like /etc/rc and /etc/ttys) that are on this tape. 137