This repo contains software to build linux from scratch and package it into rpm files.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Baho Utot 8e776ca2c3 2019-05-25 1 year ago
BOOK 2019-05-24 1 year ago
SOURCES 2019-05-24 1 year ago
SPECS 2019-05-25 1 year ago
.gitignore 2019-05-24 1 year ago
LICENSE 2019-05-24 1 year ago
README 2019-05-24 1 year ago
TODO 2019-05-25 1 year ago
base.sh 2019-05-25 1 year ago
cleanup.sh 2019-05-24 1 year ago
installer.sh Update installer.sh 1 year ago
lfs.sh 2019-05-24 1 year ago
setup.sh 2019-05-25 1 year ago
tools.sh 2019-05-25 1 year ago
version-check.sh 2019-05-24 1 year ago

README

#-----------------------------------------------------------------------------
# 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