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 726e6c5fc8 Merge pull request '9.1' (#1) from 9.1 into master 5 months ago
BOOK update book to 9.1 5 months ago
SOURCES update specs for 9.1 5 months ago
SPECS fix missing folder 5 months ago
.gitignore update gitignore 5 months ago
LICENSE 2019-05-24 1 year ago
README.MD fix case of examples in readme 5 months ago
TODO 2019-05-25 1 year ago
base.sh remove python 2 5 months ago
cleanup.sh update scripts for 9.1 5 months ago
cromer-todo update todo 5 months ago
installer.sh update scripts for 9.1 5 months ago
lfs.sh update scripts for 9.1 5 months ago
setup.sh fix spacing 5 months ago
tools.sh remove openmp since lfs doesn't have it 5 months ago
version-check.sh 2019-05-24 1 year 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