LFS-RPM/README.MD

126 lines
4.7 KiB
Plaintext
Raw Normal View History

2019-05-24 08:27:40 -04:00
#-----------------------------------------------------------------------------
2020-05-30 23:07:41 -04:00
# Copyright 2020 Chris Cromer
2019-05-24 08:27:40 -04:00
# 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:
2020-05-31 13:19:17 -04:00
This build tracks linux from scratch version 9.1
2019-05-24 08:27:40 -04:00
#-----------------------------------------------------------------------------
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
2020-05-31 13:19:17 -04:00
and does not support i686.
2019-05-24 08:27:40 -04:00
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.
2020-05-31 13:19:17 -04:00
This build has linux-firmware to provide firmware for various
hardware.
2019-05-24 08:27:40 -04:00
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
2020-05-30 23:07:41 -04:00
python2 # needed for rpm
2020-05-31 13:19:17 -04:00
rpm # package manager
2019-05-24 08:27:40 -04:00
wget # needed to fetch packages
2020-05-31 13:19:17 -04:00
linux-firmware # firmware for various hardware
2019-05-24 08:27:40 -04:00
#-----------------------------------------------------------------------------
BUILD PROCEDURE:
login as root user
2020-05-30 23:07:41 -04:00
fdisk /dev/sdx partition drive, you need to do this
2019-05-24 08:27:40 -04:00
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
2020-05-31 13:19:17 -04:00
git clone https://git.cromer.cl/cromer/LFS-RPM.git
2019-05-24 08:27:40 -04:00
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
2020-05-31 13:19:17 -04:00
menuentry 'Linux From Scratch (9.1) (on /dev/sdxx)' {
2019-05-24 08:27:40 -04:00
insmod part_gpt
insmod ext2
set root='hdx,gptx'
2020-05-31 13:19:17 -04:00
linux /boot/vmlinuz-5.5.3 root=/dev/sdxx
initrd /boot/initrd.img-5.5.3
2019-05-24 08:27:40 -04:00
}
MSDOS/BIOS partitioned drive
2020-05-31 13:19:17 -04:00
menuentry 'Linux From Scratch (9.1) (on /dev/sdxx)' {
2019-05-24 08:27:40 -04:00
insmod part_msdos
insmod ext2
set root='hdx,msdosx'
2020-05-31 13:19:17 -04:00
linux /boot/vmlinuz-5.5.3 root=/dev/sdxx
initrd /boot/initrd.img-5.5.3
2019-05-24 08:27:40 -04:00
}
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:
2020-05-31 13:19:17 -04:00
base.sh* builds chapter 6
cleanup.sh* cleanup host system after build
2019-05-24 08:27:40 -04:00
installer.sh* install rpm binaries to mounted partition
2020-05-31 13:19:17 -04:00
lfs.sh* builds the whole thing
setup.sh* configure for build
tools.sh* builds chapter 5
2019-05-24 08:27:40 -04:00
version-check.sh* checks host system for requirements