OS Week 08 Assignment #3: Linux From Scratch 12.2 Ch. 1-5
Preparation (IMPORTANT!)
Check file system /mnt/lfs
df | grep lfs
If there is no "/mnt/lfs", see here.
Check some environments for your account (e.g. cbkadal) and root:
echo "LFS=\"$LFS $(df $LFS|tail -1|awk '{print $1,int($2/1000000)"G"}')\" ARCH=$(arch) NPROC=$(nproc)"
Follow "The Linux From Scratch version 12.2 Book" chapter 1-5
- VirtualBox (AMD64)
- LFS 12.2 ORI (alt1) (alt2) (alt3)
- UTM/M1 (ARM64/AARCH64)
- LFS 12.2 CBK --- This version was adjusted to be close to the AMD ORI 12.2 version.
- Source Code Mirrors: (source mirror1) (source mirror2) (source mirror3)
- Kernotex's YouTube LFS 12.2 PlayList
- Kernotex's Host Linux configuration for LFS Chapter 2.2 - "Host System Requirements"
- Kernotex's LFS in VirtualBox
Take Note: SKIP Ch 2.4, 2.5, 2.7
Because "/mnt/lfs/" already exists!
- SKIP Chapter 2.4. Creating a New Partition
- SKIP Chapter 2.5. Creating a File System on the Partition
- SKIP Chapter 2.7. Mounting the New Partition
Take Note: DO NOT SKIP Ch 2.6, 3.1 (ROOT)
Use this SCRIPT for chapter 3.1. Make sure no ERRORS! * See also os1:///home/zzyLFS/
# ROOT
# This is for both VirtualBox and UTM
#
if [[ "$(id -u)" == "0" ]] ; then
echo "============================================"
echo "LFS should be /mnt/lfs AND MAKEFLAGS = cores"
echo "LFS=$LFS MAKEFLAGS=$MAKEFLAGS"
echo "============================================"
sleep 3
mkdir -pv $LFS/sources/
chmod -v a+wt $LFS/sources/
cd $LFS/sources/
wget -c https://www.linuxfromscratch.org/lfs/view/12.2/wget-list-sysv --directory-prefix=$LFS/sources
wget -c --input-file=$LFS/sources/wget-list-sysv --directory-prefix=$LFS/sources
wget -c https://www.linuxfromscratch.org/lfs/view/12.2/md5sums --directory-prefix=$LFS/sources
md5sum -c md5sums
chown root:root $LFS/sources/*
else
echo "=== === === === ERROR: ROOT ONLY === === === ERROR ==="
echo "=== === === === ERROR: ROOT ONLY === === === ERROR ==="
echo "=== === === === ERROR: ROOT ONLY === === === ERROR ==="
fi
Make sure files "wget-list-sysv" and "md5sums" are in $LFS/sources/
ls -al $LFS/sources/{md5sums,wget-list-sysv}
# -rw-r--r-- 1 root root 5110 Sep 1 02:27 /mnt/lfs/sources/md5sums
# -rw-r--r-- 1 root root 5957 Sep 1 02:27 /mnt/lfs/sources/wget-list-sysv
- Download locations may not always be accessible.
If unsuccessful, try:
(source mirror1) (source mirror2) (source mirror3) - See also os1:///home/zzyLFS/
- After downloading the packages (chapter 3.1), continue to Chapter 4, and so on.
- Make sure you have three accounts:
- your own account (e.g. cbkadal but you are not cbkadal!)
- root account
- lfs account
- Make sure when to use:
- your own account (e.g. "cbkadal")
- root account
- lfs account
Binutils-2.41 - Pass 1: Standard Build Unit (SBU)
Chapter 5.2.1. Installation of Cross Binutils (lfs) * Check your "LFS", "ARCH", "NPROC", and "MAKEFLAGS" environment for all accounts (e.g. "cbkadal", "root", "lfs").
mkdir -v build
cd build
time { ../configure --prefix=$LFS/tools \
--with-sysroot=$LFS \
--target=$LFS_TGT \
--disable-nls \
--enable-gprofng=no \
--disable-werror && make && make install; }
echo "ZCZC I am $(whoami)@$(hostname) using $(uname -r) $(df $LFS|tail -1|awk '{print $1,int($2/1000000)"G"}')"
echo "LFS=\"$LFS\" ARCH=$(arch) NPROC=$(nproc) MAKEFLAGS=$MAKEFLAGS"
Generate LFS Chapters 1-5 Report
Last, after finishing chapter 5, run (cbkadal):
export LFS="/mnt/lfs/"
cd $HOME/mywork/WEEK08/
bash 08_WEEK08.sh
Result/Report
(cbkadal):
cd $HOME/RESULT/W08/
ls -al