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.
 
 
 
 
Chris Cromer 1e2f0a976a
info file is not part of zstd
11 months ago
BOOK update book to 9.1 11 months ago
SOURCES update specs for 9.1 11 months ago
SPECS info file is not part of zstd 11 months ago
.gitignore update gitignore 11 months ago
LICENSE 2019-05-24 2 years ago
README.MD fix case of examples in readme 11 months ago
TODO 2019-05-25 2 years ago
base.sh update specs for 9.1 11 months ago
cleanup.sh update scripts for 9.1 11 months ago
cromer-todo update todo 11 months ago
installer.sh update scripts for 9.1 11 months ago
lfs.sh update scripts for 9.1 11 months ago
setup.sh fix spacing 11 months ago
tools.sh remove openmp since lfs doesn't have it 11 months ago
version-check.sh 2019-05-24 2 years ago

README.MD

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