Subject: [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

STEPS
=====

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@teo-en-ming-pc ~]$ rpm -qa | grep gcc
gcc-gfortran-4.4.7-23.el6.x86_64
gcc-4.4.7-23.el6.x86_64
gcc-c++-4.4.7-23.el6.x86_64
libgcc-4.4.7-23.el6.x86_64

010. Search for make.

[teoenming@teo-en-ming-pc ~]$ rpm -qa | grep make
make-3.81-23.el6.x86_64
automake-1.11.1-4.el6.noarch

011. Search for ncurses.

[teoenming@teo-en-ming-pc ~]$ rpm -qa | grep ncurses
ncurses-libs-5.7-4.20090207.el6.x86_64
ncurses-devel-5.7-4.20090207.el6.x86_64
ncurses-5.7-4.20090207.el6.x86_64
ncurses-base-5.7-4.20090207.el6.x86_64

012. Search for perl.

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

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

[teoenming@teo-en-ming-pc ~]$ rpm -qa | grep grub
grubby-7.0.15-7.el6.x86_64
grub-0.97-99.el6.x86_64

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

SUPER IMPORTANT NOTICE
======================

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).

===BEGIN SIGNATURE===

Turritopsis Dohrnii Teo En Ming's Academic Qualifications as at 30 Oct 2017

[1] https://tdtemcerts.wordpress.com/

[2] http://tdtemcerts.blogspot.sg/

[3] https://www.scribd.com/user/270125049/Teo-En-Ming

===END SIGNATURE===