[Successful] Installation Notes for Teo En Ming Extremely Simple Linux 1810.11 on CentOS 6.10

[Successful] Installation Notes for Teo En Ming Extremely Simple Linux 1810.11 on CentOS 6.10

Author: Mr. Turritopsis Dohrnii Teo En Ming
Country: Singapore
Date: 11th October 2018 Thursday

YouTube video: Teo En Ming Extremely Simple Linux 1810.11 (Successful)
URL: https://www.youtube.com/watch?v=L5da1xdQ7Kw


001. Download CentOS 6.10 Linux from your favorite mirror.

002. Install CentOS 6.10 as an Oracle Virtualbox 5.2.18 virtual machine in Windows 10 version 1803 host operating system.

003. During installation, choose "Software Development Workstation".

004. Click Next.

005. Click Reboot to complete the installation of CentOS 6.10.

006. On VirtualBox in Windows host, click Machine > Setttings > Network.

007. Choose Bridged Adapter. Please note that you CANNOT choose a Wireless LAN adapter. Bridging with a Wireless LAN adapter will never work.

008. Login to CentOS 6.10 using Putty.

009. Search for gcc (GNU Compiler Collection).

[teoenming at teo-en-ming-pc ~]$ rpm -qa | grep gcc

010. Search for make.

[teoenming at teo-en-ming-pc ~]$ rpm -qa | grep make

011. Search for ncurses.

[teoenming at teo-en-ming-pc ~]$ rpm -qa | grep ncurses

012. Search for perl.

[teoenming at teo-en-ming-pc ~]$ rpm -qa | grep perl
<Super long list...snipped>

013. Search for grub (Grand Unified Boot Loader).

[teoenming at teo-en-ming-pc ~]$ rpm -qa | grep grub

Yay! Grub Legacy 0.97 is installed by default on CentOS 6.10.

014. Download the latest binutils-2.31

wget https://ftp.gnu.org/gnu/binutils/binutils-2.31.tar.xz

015. Download the latest busybox-1.29.3

wget https://busybox.net/downloads/busybox-1.29.3.tar.bz2

016. Download the latest Cross Linux From Scratch (CLFS) Bootscripts

wget http://ftp.osuosl.org/pub/clfs/conglomeration/clfs-embedded-bootscripts/clfs-embedded-bootscripts-1.0-pre5.tar.bz2

017. Download the latest GNU Compiler Collection (gcc) version 8.2.0

wget https://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz

018. Download the latest GNU C Programming Library version 2.28

wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.xz

019. Download the latest gmp-6.1.2

wget https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2

020. Download the latest Linux Kernel version 4.18.12 (stable branch)

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.18.12.tar.xz

021. Download the latest mpc-1.1.0

wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz

022. Download the latest mpfr-4.0.1

wget https://ftp.gnu.org/gnu/mpfr/mpfr-4.0.1.tar.xz

023. Download the latest zlib-1.2.11

wget https://zlib.net/zlib-1.2.11.tar.gz

>From now on, follow Petros Koutoupis' guide at Linux Journal.

[Guide] DIY: Build a Custom Minimal Linux Distribution from Source
Link: https://www.linuxjournal.com/content/diy-build-custom-minimal-linux-distribution-source

Follow the instructions until the section "Building the Cross Compiler".

At the Kernel Headers sub-section,

025. Extract the latest Linux Kernel 4.18.12 (stable branch)

tar xfvJ linux-4.18.12.tar.xz

026. Change directory into the Linux Kernel 4.18.12 source code directory

cd linux-4.18.12

Then continue following the instructions.

At the section on Glibc, glibc-2.28 (C Programming Library version
2.28) won't compile.

So we will use glibc-2.27 (C Programming Library version 2.27) instead.

027. Download C Programming Library version 2.27

wget https://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.xz

Glibc 2.27 also cannot compile because the installed bison is too old. 
Glibc 2.28 down to Glibc 2.21 requires bison 2.7 or later.
But bison 2.4 is installed by default on CentOS 6.10.

We will need to use glibc 2.20 as it DOES NOT depend on bison.

028. Download C Programming Library version 2.20

wget http://ftp.gnu.org/gnu/glibc/glibc-2.20.tar.xz

Continue following the instructions from the section Zlib until the command 

sudo grub-install --root-directory=/home/teoenming/tmp/ /dev/sdb

This is the output of the command grub-install:

Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported.
This is the contents of the device map /home/teoenming/tmp/boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0)   /dev/fd0
(hd0)   /dev/sda
(hd1)   /dev/sdb


If you are using GRUB Legacy 0.97 in CentOS 6.10, please DO NOT use /boot/grub/grub.cfg as provided by
Petros Koutoupis at Linux Journal. /boot/grub/grub.cfg as provided by Petros is meant for GRUB2 only.

029. Rename /boot/grub/grub.cfg

mv /boot/grub/grub.cfg /boot/grub/grub.cfg.bak

030. Create Grub Legacy 0.97 Configuration File /boot/grub/menu.lst

031. The contents of /boot/grub/menu.lst are as follows:

default 0
timeout 60

title Teo En Ming Extremely Simple Linux 1810.11
root (hd0,0)
kernel /boot/vmlinuz-4.18.12 root=/dev/sda1 ro quiet

032. Run grub-install again.

# grub-install --root-directory=/home/teoenming/tmp /dev/sdb

*This will create a symbolic link /boot/grub/grub.conf which points to /boot/grub/menu.lst*

033. Reboot Teo En Ming Extremely Simple Linux 1810.11. You will see Grub Legacy 0.97 operating system selection menu
showing up now. 

034. Congratulations! I have solved all the problems and I have successfully created a custom minimal Linux distribution which looks a bit like MS-DOS. Please watch my YouTube video(s).


Popular posts from this blog

Special Appeal to U.S. President Donald Trump: Please Take Me With You On Board Air Force One...

So Many Millionaires in Singapore, But Teo En Ming Lives in a HDB One-Room Rental Flat for the Poor