This repo contains software to build linux from scratch and package it into rpm files.
Go to file
2020-05-31 15:25:14 -04:00
BOOK update book to 9.1 2020-05-31 11:47:17 -04:00
SOURCES update scripts for 9.1 2020-05-31 13:19:17 -04:00
SPECS fix broken links 2020-05-31 01:17:51 -04:00
.gitignore update gitignore 2020-05-30 23:17:42 -04:00
base.sh update scripts for 9.1 2020-05-31 13:19:17 -04:00
cleanup.sh update scripts for 9.1 2020-05-31 13:19:17 -04:00
cromer-todo update scripts for 9.1 2020-05-31 13:19:17 -04:00
installer.sh update scripts for 9.1 2020-05-31 13:19:17 -04:00
lfs.sh update scripts for 9.1 2020-05-31 13:19:17 -04:00
LICENSE 2019-05-24 2019-05-24 08:27:40 -04:00
README.MD update scripts for 9.1 2020-05-31 13:19:17 -04:00
setup.sh fix spacing 2020-05-31 14:15:18 -04:00
TODO 2019-05-25 2019-05-25 20:27:33 -04:00
tools.sh update toolchain to 9.1 2020-05-31 15:25:14 -04:00
version-check.sh 2019-05-24 2019-05-24 08:27:40 -04:00

#-----------------------------------------------------------------------------

Copyright 2020 Chris Cromer

Copyright 2019 Baho Utot

#-----------------------------------------------------------------------------

This program is free software: you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program. If not, see https://www.gnu.org/licenses/.

#----------------------------------------------------------------------------- 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 partition mounted there.
	You will be responsible for that.
	This build system uses whatever filesystem
	that is 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. Not responsible for trashed host system. 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: cpio # needed for mkinitramfs mkinitramfs # to create initrd popt # needed for rpm python2 # needed for rpm rpm # package manager wget # needed to fetch packages linux-firmware # firmware for various 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:

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