This repo contains software to build linux from scratch and package it into rpm files.
BOOK | ||
SOURCES | ||
SPECS | ||
.gitignore | ||
base.sh | ||
cleanup.sh | ||
cromer-todo | ||
installer.sh | ||
lfs.sh | ||
LICENSE | ||
README.MD | ||
setup.sh | ||
TODO | ||
tools.sh | ||
version-check.sh |
OVERVIEW:
This build tracks linux from scratch version 9.1
REQUIREMENTS:
1. git installed on the host
2. wget on host system
3. Directory for build, mounted at /mnt/lfs
There will need to be a partition mounted there.
You will be responsible for that.
This build system uses whatever filesystem that is present at ${LFS}
4. run version-check.sh and install required packages if needed
WARNING:
This build system is designed in such a way to not be
able to trash your host system. Mistakes can happen.
I am not responsible for trashed host systems. You
bear all responsibilities for any failures.
GENERAL NOTES:
This system was designed and debugged on an AMD64 {x86_64} system
and does not support i686.
The build system installs/work directory:
/mnt/lfs/usr/src/LFS-RPM
This build has a mkinitramfs step (which requires cpio) this step
creates an initrd so cpu updates and firmware is loaded.
Your lfs kernel should be configured to use this.
This build has linux-firmware to provide firmware for various
hardware.
See BLFS book for more information.
I have installed rpm macro files in:
/home/lfs/.rpmmacros
This makes the rpm environment correct so it builds
the base system correctly.
ADDITIONS:
- rpm
- the package manager
- mkinitramfs
- to create initramfs
- cpio
- needed for mkinitramfs
- popt
- needed for rpm
- python2
- needed for rpm
- wget
- needed to fetch packages
- linux-firmware
- needed to boot under certain hardware
BUILD PROCEDURE:
login as root user
fdisk /dev/sdx partition drive, you need to do this
mkfs.ext4 /dev/sdxx create ext4 filesystem
install -vdm 755 /mnt/lfs create lfs directory
mount /dev/sdxx /mnt/lfs mount partition to work directory
install -vdm 755 /mnt/lfs/usr/src create build directory
cd /mnt/lfs/usr/src goto build directory
Now fetch the build system it will go into /mnt/lfs/usr/src/LFS-RPM by default
git clone https://git.cromer.cl/cromer/LFS-RPM.git
cd LFS-RPM Lets do this
./setup.sh setup environment and fetches source tarballs
./lfs.sh build it
./cleanup.sh cleanup host
Build at this point is complete.
All that is needed is to install grub and/or add a menu item in the
the grub configuration file /boot/grub.cfg
This completes the build.
GRUB Examples:
GPT partitioned drive
menuentry 'Linux From Scratch (9.1) (on /dev/sdxx)' {
insmod part_gpt
insmod ext2
set root='hdx,gptx'
linux /boot/vmlinuz-5.5.3 root=/dev/sdxx
initrd /boot/initrd.img-5.5.3
}
MSDOS/BIOS partitioned drive
menuentry 'Linux From Scratch (9.1) (on /dev/sdxx)' {
insmod part_msdos
insmod ext2
set root='hdx,msdosx'
linux /boot/vmlinuz-5.5.3 root=/dev/sdxx
initrd /boot/initrd.img-5.5.3
}
Change the x's to the proper drives and partition
INSTALLER SCRIPT:
The installer.sh script will take the binary rpms (chapter 6) and
install them into a partition that YOU mounted on /mnt. If you want
to install else where then change ROOTPATH="/mnt" to the installation
partition mounted by YOU.
SCRIPTS:
- base.sh
- builds chapter 6
- cleanup.sh
- cleanup host system after build
- installer.sh
- install rpm binaries to mounted partition
- lfs.sh
- builds the whole thing
- setup.sh
- configure for build
- tools.sh
- builds chapter 5
- version-check.sh
- checks host system for requirements