From 0c3f31c1ff0de5f3782e0d807dbad33e6d2e3e84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Guilherme=20Bergamini=20Mendes?= Date: Thu, 17 Sep 2020 21:58:29 -0300 Subject: [PATCH] Final script to configure the system --- lfs-final.sh | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 lfs-final.sh diff --git a/lfs-final.sh b/lfs-final.sh new file mode 100644 index 0000000..23f0d80 --- /dev/null +++ b/lfs-final.sh @@ -0,0 +1,235 @@ +#!/bin/bash +# LFS 10.0 Build Script +# Final steps to configure the system +# by Luís Mendes :) +# 17/09/2020 + +package_name="" +package_ext="" + +begin() { + package_name=$1 + package_ext=$2 + + echo "[lfs-scripts] Starting build of $package_name at $(date)" + + tar xf $package_name.$package_ext + cd $package_name +} + +finish() { + echo "[lfs-scripts] Finishing build of $package_name at $(date)" + + cd /sources + rm -rf $package_name +} + +cd /sources + +# 9.2. LFS-Bootscripts-20200818 +begin lfs-bootscripts-20200818 tar.xz +make install +finish + +# 9.4.1.2. Creating Custom Udev Rules +bash /lib/udev/init-net-rules.sh + +# 9.5.1. Creating Network Interface Configuration Files +cd /etc/sysconfig/ +cat > ifconfig.enp0s3 << "EOF" +ONBOOT=yes +IFACE=enp0s3 +SERVICE=ipv4-static +IP=192.168.1.2 +GATEWAY=192.168.1.1 +PREFIX=24 +BROADCAST=192.168.1.255 +EOF + +# 9.5.2. Creating the /etc/resolv.conf File +cat > /etc/resolv.conf << "EOF" +# Begin /etc/resolv.conf + +nameserver 8.8.8.8 +nameserver 8.8.4.4 + +# End /etc/resolv.conf +EOF + +# 9.5.3. Configuring the system hostname +echo "lfs" > /etc/hostname + +# 9.5.4. Customizing the /etc/hosts File +cat > /etc/hosts << "EOF" +# Begin /etc/hosts + +127.0.0.1 localhost.localdomain localhost +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters + +# End /etc/hosts +EOF + +# 9.6.2. Configuring Sysvinit +cat > /etc/inittab << "EOF" +# Begin /etc/inittab + +id:3:initdefault: + +si::sysinit:/etc/rc.d/init.d/rc S + +l0:0:wait:/etc/rc.d/init.d/rc 0 +l1:S1:wait:/etc/rc.d/init.d/rc 1 +l2:2:wait:/etc/rc.d/init.d/rc 2 +l3:3:wait:/etc/rc.d/init.d/rc 3 +l4:4:wait:/etc/rc.d/init.d/rc 4 +l5:5:wait:/etc/rc.d/init.d/rc 5 +l6:6:wait:/etc/rc.d/init.d/rc 6 + +ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now + +su:S016:once:/sbin/sulogin + +1:2345:respawn:/sbin/agetty --noclear tty1 9600 +2:2345:respawn:/sbin/agetty tty2 9600 +3:2345:respawn:/sbin/agetty tty3 9600 +4:2345:respawn:/sbin/agetty tty4 9600 +5:2345:respawn:/sbin/agetty tty5 9600 +6:2345:respawn:/sbin/agetty tty6 9600 + +# End /etc/inittab +EOF + +# 9.6.4. Configuring the System Clock +cat > /etc/sysconfig/clock << "EOF" +# Begin /etc/sysconfig/clock + +UTC=1 + +# Set this to any options you might need to give to hwclock, +# such as machine hardware clock type for Alphas. +CLOCKPARAMS= + +# End /etc/sysconfig/clock +EOF + +# 9.7. The Bash Shell Startup Files +cat > /etc/profile << "EOF" +# Begin /etc/profile + +export LANG=en_US.UTF-8 + +# End /etc/profile +EOF + +# 9.8. Creating the /etc/inputrc File +cat > /etc/inputrc << "EOF" +# Begin /etc/inputrc +# Modified by Chris Lynn + +# Allow the command prompt to wrap to the next line +set horizontal-scroll-mode Off + +# Enable 8bit input +set meta-flag On +set input-meta On + +# Turns off 8th bit stripping +set convert-meta Off + +# Keep the 8th bit for display +set output-meta On + +# none, visible or audible +set bell-style none + +# All of the following map the escape sequence of the value +# contained in the 1st argument to the readline specific functions +"\eOd": backward-word +"\eOc": forward-word + +# for linux console +"\e[1~": beginning-of-line +"\e[4~": end-of-line +"\e[5~": beginning-of-history +"\e[6~": end-of-history +"\e[3~": delete-char +"\e[2~": quoted-insert + +# for xterm +"\eOH": beginning-of-line +"\eOF": end-of-line + +# for Konsole +"\e[H": beginning-of-line +"\e[F": end-of-line + +# End /etc/inputrc +EOF + +# 9.9. Creating the /etc/shells File +cat > /etc/shells << "EOF" +# Begin /etc/shells + +/bin/sh +/bin/bash + +# End /etc/shells +EOF + +# 10.2. Creating the /etc/fstab File +cat > /etc/fstab << "EOF" +# Begin /etc/fstab + +# file system mount-point type options dump fsck +# order + +/dev/sda1 / ext4 defaults 1 1 +proc /proc proc nosuid,noexec,nodev 0 0 +sysfs /sys sysfs nosuid,noexec,nodev 0 0 +devpts /dev/pts devpts gid=5,mode=620 0 0 +tmpfs /run tmpfs defaults 0 0 +devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 + +# End /etc/fstab +EOF + +# 10.3. Linux-5.8.3 +begin linux 5.8.3.tar.xz +make mrproper +make defconfig +make +make modules_install +cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.8.3-lfs-10.0 +cp -iv System.map /boot/System.map-5.8.3 +cp -iv .config /boot/config-5.8.3 +install -d /usr/share/doc/linux-5.8.3 +cp -r Documentation/* /usr/share/doc/linux-5.8.3 +finish + +# 10.3.2. Configuring Linux Module Load Order +install -v -m755 -d /etc/modprobe.d +cat > /etc/modprobe.d/usb.conf << "EOF" +# Begin /etc/modprobe.d/usb.conf + +install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true +install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true + +# End /etc/modprobe.d/usb.conf +EOF + +# 10.4. Using GRUB to Set Up the Boot Process +grub-install /dev/sdb +cat > /boot/grub/grub.cfg << "EOF" +# Begin /boot/grub/grub.cfg +set default=0 +set timeout=5 + +insmod ext2 +set root=(hd0,1) + +menuentry "GNU/Linux, Linux 5.8.3-lfs-10.0" { + linux /boot/vmlinuz-5.8.3-lfs-10.0 root=/dev/sda1 ro +} +EOF \ No newline at end of file