-
Notifications
You must be signed in to change notification settings - Fork 110
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Release ELKS 0.2.0 with massive improvements
Many improvements in this commit: - Add a script "build.sh" that makes building ELKS dead simple - Add a script "elkscmd/image_stats.sh" to get detailed image file statistics such as free space and inode counts - Fix failure to build 360K floppy images due to insufficient available inodes. mkfs.minix defaults to 128 inodes for a 360K Minix filesystem, but the minimal root filesystem "min_rfs" would populate the image with well over 128 inodes. A disk image that has no free inodes is useless anyway, so the mkfs.minix options were modified to make 360 inodes for all images. The largest image available still has over 100 inodes available when fully populated, so there is plenty of room for the future. - Add a new disk image type called 'full1722'. This image is made to fit on a 1.722MB formatted floppy disk. Most 1.44MB floppies can be formatted to 1.722MB using the Linux 'fdformat' command and special options. The only reason this has been added is to increase the available disk space for capable systems. - Improved disk image creation options. There are now four ways to build all of the disk images and package them up: make images - build all image types but don't make an archive make images.zip - make images into a Zip archive make images.tar.xz - make images into a Gzip-compressed tarball make images.tar.xz - make images into a XZ-compressed tarball (images.tar.xz compresses to about 1/7 the size of the others) - Disk image builds will automatically link /bin/sh to either ash (preferred) or sash, depending on what is available. - All disk image build types were tested in QEMU to ensure they boot correctly. - Bump kernel version to 0.2.0 (yay!) - Pre-built disk images for ELKS 0.2.0 will be made generally available at: https://github.com/jbruchon/elks/releases Special thanks to Juan Perez-Sanchez for all his recent ELKS kernel patches!
- Loading branch information
Showing
30 changed files
with
282 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,26 +12,54 @@ ELKS source code root. For a Dev86 source at /usr/src/dev86 do this: | |
|
||
user:/usr/src/elks$ ln -s /usr/src/dev86 dev86 | ||
|
||
The general build procedure is as follows: | ||
A script that attempts to automate the build process and make it easier | ||
for ELKS newbies has been provided. Simply run: | ||
|
||
./build.sh | ||
|
||
If you want to clean everything up afterwards, run './build.sh clean' | ||
and it will run 'make clean' in the build directories for you. | ||
|
||
The general build procedure for ELKS is as follows: | ||
|
||
* Build Dev86, usually with default options | ||
|
||
* Make sure 'dev86' is beside 'elks' 'elkscmd' etc. | ||
|
||
* 'cd elks' | ||
|
||
* 'make menuconfig' and configure the kernel | ||
|
||
* Run 'make' to build the kernel | ||
* 'cd ../elkscmd' | ||
* 'make' (builds the core command line utilities) | ||
|
||
* 'cd ../elksnet' | ||
|
||
* 'make' (builds the networking components) | ||
|
||
* 'cd ../elkscmd' | ||
|
||
* 'make' (builds the core command line utilities) | ||
|
||
* As root, run 'make [imagetype]' where image type is one of these: | ||
|
||
- full3: 1.44MB 3.5" floppy image, all-inclusive | ||
|
||
- full1722: same as full3 but on a 1.722MB 3.5" "extended format" floppy | ||
|
||
- full5: 1.2MB 5.25" floppy image, all-inclusive | ||
|
||
- comb: 720K floppy image, ELKS kernel plus minimal root filesystem | ||
|
||
- comb_net: Same as 'comb' but with 'elksnet' components included | ||
|
||
- boot: 360K floppy image, ELKS kernel only | ||
|
||
- root: 360K floppy image, minimal root filesystem only | ||
- images.zip: make every image type and zip them all into "images.zip" | ||
|
||
- images: make all images but don't create an archive of them | ||
- images.zip: make all images, pack into a Zip-compress archive | ||
- images.tar.gz: make all images, pack into Gzip-compressed tar archive | ||
- images.tar.xz: make all images, pack into XZ-compressed tar archive | ||
|
||
Questions? Problems? Patches? Join and email the Linux-8086 mailing list at | ||
[email protected] or email the maintainer at [email protected] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
#!/bin/sh | ||
|
||
# Quick and dirty build script for ELKS | ||
# Probably buggy, but makes from-scratch builds easier | ||
|
||
pause () { | ||
echo | ||
echo -n "Press a key to continue... " | ||
read -n 1 -s | ||
echo | ||
} | ||
|
||
clean_exit () { | ||
E="$1" | ||
test -z $1 && E=0 | ||
if [ $E -eq 0 ] | ||
then echo "Build terminated successfully." | ||
else echo "Build script has terminated with error $E" | ||
fi | ||
exit $E | ||
} | ||
|
||
# Disk images cannot be built unless we're UID 0 | ||
if [ "$UID" != "0" ] | ||
then echo "WARNING: Disk images can only be built logged in as 'root'" | ||
fi | ||
|
||
# A copy of dev86 is REQUIRED to build! | ||
if [ ! -e "./dev86" ] | ||
then | ||
echo "ERROR: You must copy or symlink 'dev86' to the root of the" | ||
echo " ELKS source tree. If you don't have dev86, you can obtain" | ||
echo " a copy at: https://github.com/lkundrak/dev86" | ||
echo "Cannot build without dev86 in the source tree. Aborting." | ||
exit 1 | ||
fi | ||
|
||
# bcc is required (but has no --version switch, so test for stdio output) | ||
if [ -z "$(bcc 2>&1)" ] | ||
then | ||
echo "ERROR: Cannot execute 'bcc'. You must build and install dev86 to" | ||
echo " your system before attempting to build ELKS. Aborting." | ||
exit 1 | ||
fi | ||
|
||
# Working directory | ||
WD="$(pwd)" | ||
|
||
|
||
### Clean if asked | ||
if [ "$1" = "clean" ] | ||
then echo | ||
echo "Cleaning up. Please wait." | ||
sleep 1 | ||
for X in elks elkscmd elksnet | ||
do cd $X; make clean; cd "$WD" | ||
done | ||
clean_exit 0 | ||
fi | ||
|
||
### Kernel build | ||
echo | ||
echo "Preparing to build the ELKS kernel. This will invoke 'make menuconfig'" | ||
echo "for you to configure the system. The defaults should be OK for many" | ||
echo "systems, but you may want to review them." | ||
pause | ||
cd elks || clean_exit 1 | ||
make clean | ||
make menuconfig || clean_exit 2 | ||
test -e .config || clean_exit 3 | ||
make defconfig || clean_exit 4 | ||
make -j4 || clean_exit 4 | ||
test -e arch/i86/boot/Image || clean_exit 4 | ||
cd "$WD" | ||
|
||
|
||
### dev86 verification | ||
echo "Verifying dev86 is built." | ||
sleep 1 | ||
cd dev86 || clean_exit 5 | ||
make || clean_exit 5 | ||
cd "$WD" | ||
|
||
|
||
### elksnet build | ||
echo "Building 'elksnet'" | ||
sleep 1 | ||
cd elksnet || clean_exit 6 | ||
make clean | ||
make || clean_exit 6 | ||
cd "$WD" | ||
|
||
|
||
### elkscmd build | ||
echo "Building 'elkscmd'" | ||
sleep 1 | ||
cd elkscmd || clean_exit 7 | ||
make clean | ||
make || clean_exit 7 | ||
|
||
|
||
### Make image files | ||
test $UID -ne 0 && echo "Skipping image file build (not root)." && clean_exit 0 | ||
make images.zip || clean_exit 8 | ||
make images.tar.gz || clean_exit 8 | ||
make images.tar.xz || clean_exit 8 | ||
cd "$WD" | ||
|
||
echo "Images and image file archives are under 'elkscmd'." | ||
clean_exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -40,6 +40,8 @@ SPROGS=mkfs | |
|
||
all: $(PROGS) | ||
|
||
max_rfs: install | ||
|
||
rfs: install | ||
|
||
min_rfs: install | ||
|
Oops, something went wrong.