|
|
@ -1,49 +1,31 @@ |
|
|
|
#----------------------------------------------------------------------------- |
|
|
|
# Copyright 2020 Chris Cromer |
|
|
|
# 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: |
|
|
|
# OVERVIEW: |
|
|
|
This build tracks linux from scratch version 9.1 |
|
|
|
#----------------------------------------------------------------------------- |
|
|
|
REQUIREMENTS: |
|
|
|
|
|
|
|
# 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. |
|
|
|
There will need to be a partition mounted there. |
|
|
|
You will be responsible for that. |
|
|
|
This build system uses whatever filesystem |
|
|
|
that is at ${LFS} |
|
|
|
This build system uses whatever filesystem that is present at ${LFS} |
|
|
|
|
|
|
|
4. run version-check.sh and install required packages if needed |
|
|
|
#----------------------------------------------------------------------------- |
|
|
|
WARNING: |
|
|
|
|
|
|
|
# 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 |
|
|
|
I am not responsible for trashed host systems. You |
|
|
|
bear all responsibilities for any failures. |
|
|
|
#----------------------------------------------------------------------------- |
|
|
|
GENERAL NOTES: |
|
|
|
|
|
|
|
# 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 |
|
|
|
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. |
|
|
|
|
|
|
@ -55,17 +37,24 @@ GENERAL NOTES: |
|
|
|
/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 |
|
|
|
linux-firmware # firmware for various hardware |
|
|
|
#----------------------------------------------------------------------------- |
|
|
|
BUILD PROCEDURE: |
|
|
|
|
|
|
|
# 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 |
|
|
@ -86,9 +75,10 @@ BUILD PROCEDURE: |
|
|
|
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: |
|
|
|
|
|
|
|
This completes the build. |
|
|
|
|
|
|
|
# GRUB Examples: |
|
|
|
|
|
|
|
GPT partitioned drive |
|
|
|
menuentry 'Linux From Scratch (9.1) (on /dev/sdxx)' { |
|
|
@ -108,18 +98,25 @@ GRUB: |
|
|
|
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 |
|
|
|
|
|
|
|
# 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 |
|
|
|
|
|
|
|
# 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 |