This repo contains software to build linux from scratch and package it into rpm files.
BOOK | ||
SOURCES | ||
SPECS | ||
.gitignore | ||
base.sh | ||
cleanup.sh | ||
installer.sh | ||
lfs.sh | ||
LICENSE | ||
README | ||
setup.sh | ||
TODO | ||
tools.sh | ||
version-check.sh |
#----------------------------------------------------------------------------- # 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 8.4 #----------------------------------------------------------------------------- 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 I have not tested it on a i686 system as I no longer have or use such systems. 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 Microcode updates for AMD CPUs. To use it make a link to the proper cpu family. 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 firmware-radeon # firmware for radeon graphics firmware-realtek # firmware for realtek network firmware-amd-ucode # microcode updates for AMD CPUs #----------------------------------------------------------------------------- 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://github.com/baho-utot/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 (8.4) (on /dev/sdxx)' { insmod part_gpt insmod ext2 set root='hdx,gptx' linux /boot/vmlinuz-4.20.12 root=/dev/sdxx initrd /boot/initrd.img-4.20.12 } MSDOS/BIOS partitioned drive menuentry 'Linux From Scratch (8.4) (on /dev/sdxx)' { insmod part_msdos insmod ext2 set root='hdx,msdosx' linux /boot/vmlinuz-4.20.12 root=/dev/sdxx initrd /boot/initrd.img-4.20.12 } 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