FsOS without X11: Difference between revisions
From LFScript
m moved FsOS without X11, 32-bit to FsOS without X11  | 
				|||
| (6 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Scripts]]  | [[Category:Scripts]]  | ||
<scriptname>fsos-nox-  | This package lists all software to be included in the [[fsOS]] distribution as a dependency, with the exception of graphical software. It further contains the instructions that configure and brand the distribution.  | ||
<scriptname>fsos-nox</scriptname>  | |||
== Sources ==  | |||
* <sourcecode>http://www.lfscript.org/sources/fsos_boot.png</sourcecode>  | |||
* <sourcecode>http://www.lfscript.org/sources/MnmKr16-IBMPC.psf.gz</sourcecode>  | |||
<md5>f7828ddf8eef71a2d269462d9cef3a03  fsos_boot.png  | |||
4ad62706f96d28304a501b96ecd107a7  MnmKr16-IBMPC.psf.gz</md5>  | |||
The file <code>fsos_boot.png</code> is used as background image for the <code>isolinux</code> boot menu on the Live CD. <code>MnmKr16-IBMPC.psf.gz</code> is a custom font which is heavily based on the font presented on http://powerman.name/config/font.html.  | |||
== Dependencies ==  | == Dependencies ==  | ||
* <dependency value="  | ''File systems'':  | ||
* <dependency>btrfs-progs</dependency>  | |||
* <dependency>ntfs-3g</dependency>  | |||
''Tools'':  | |||
* <dependency>cpio</dependency>  | |||
* <dependency>nano</dependency>  | |||
* <dependency>postlfs</dependency>  | |||
* <dependency>screen</dependency>  | |||
* <dependency>unrar</dependency>  | |||
* <dependency>which</dependency>  | |||
''Sound'':  | |||
* <dependency>alsa-utils</dependency>  | |||
''Programming'':  | |||
* <dependency>java-bin</dependency>  | |||
''Networking:''  | |||
* <dependency>dhcpcd</dependency>  | |||
* <dependency>networkmanager</dependency>  | |||
* <dependency>nmap</dependency>  | |||
* <dependency>openssh</dependency>  | |||
* <dependency>rsync</dependency>  | |||
* <dependency>traceroute</dependency>  | |||
* <dependency>wget</dependency>  | |||
* <dependency>whois</dependency>  | |||
* <dependency>wpa_supplicant</dependency>  | |||
''Installation and Live CD'':  | |||
* <dependency value="buildiso-dep"></dependency>[[BuildISO Dependencies]]  | |||
* <dependency value="os-prober"></dependency>[[OS Prober]]  | |||
* <dependency value="memtest86+"></dependency>[[Memtest86+]]  | |||
== Installation ==  | == Installation ==  | ||
This is a [[  | <build user="root"># Install the custom font  | ||
mkdir -pv /usr/share/consolefonts  | |||
mkdir -pv /etc/sysconfig  | |||
cat MnmKr16-IBMPC.psf.gz > /usr/share/consolefonts/MnmKr16-IBMPC.psf.gz  | |||
cat > /etc/sysconfig/console << "EOF"  | |||
# Begin /etc/sysconfig/console  | |||
FONT="MnmKr16-IBMPC -m 8859-1"  | |||
# End /etc/sysconfig/console  | |||
EOF</build>  | |||
<!-- Spaces around the var, ensures ${FAKEROOT} is added -->  | |||
<build user="root"># Prepare a LiveCD configuration with a graphical boot menu  | |||
local LIVEDIR="usr/share/live"  | |||
mkdir -pv /${LIVEDIR}/medium/boot/isolinux  | |||
cat fsos_boot.png > /${LIVEDIR}/medium/boot/isolinux/fsos_boot.png   | |||
cat > /${LIVEDIR}/medium/boot/isolinux/isolinux.cfg << "EOF"  | |||
DEFAULT vesamenu.c32  | |||
PROMPT 0  | |||
TIMEOUT 300  | |||
MENU BACKGROUND fsos_boot.png  | |||
MENU COLOR border 0 #00000000 #00000000 none  | |||
MENU COLOR title  0 #00000000 #00000000 none  | |||
MENU COLOR tabmsg 0 #00000000 #00000000 none  | |||
MENU COLOR unsel  0 #FFFFFFFF #00000000 none  | |||
MENU COLOR hotkey 0 #FFFFFFFF #00000000 none  | |||
MENU COLOR sel    0 #FF006080 #FFFFFFFF none  | |||
MENU COLOR hotsel 0 #FF006080 #FFFFFFFF none  | |||
MENU VSHIFT 15  | |||
MENU MARGIN 22  | |||
MENU ROWS 4  | |||
MENU TIMEOUTROW -1  | |||
MENU CMDLINEROW -1  | |||
INCLUDE i486.cfg  | |||
INCLUDE i586.cfg  | |||
INCLUDE i686.cfg  | |||
INCLUDE x86_64.cfg  | |||
INCLUDE memtest86plus.cfg  | |||
LABEL harddisk  | |||
    MENU LABEL Boot from first ^Hard disk  | |||
    LOCALBOOT 0x80  | |||
EOF  | |||
cat > /${LIVEDIR}/medium/boot/isolinux/$(uname -m).cfg << "EOF"  | |||
LABEL system_<ARCH>  | |||
    MENU LABEL ^Boot fsOS (<ARCH>, default)  | |||
    KERNEL /boot/<ARCH>/vmlinuz  | |||
    APPEND initrd=/boot/<ARCH>/initram.fs quiet  | |||
LABEL system_<ARCH>_force_vga  | |||
    MENU LABEL ^Boot fsOS (<ARCH>, 1024x768)  | |||
    KERNEL /boot/<ARCH>/vmlinuz  | |||
    APPEND initrd=/boot/<ARCH>/initram.fs quiet vga=792  | |||
EOF  | |||
sed -i "s/<ARCH>/$(uname -m)/g" /${LIVEDIR}/medium/boot/isolinux/$(uname -m).cfg</build>  | |||
<build user="root"># If this system is to be used as a Live CD, configure it as such  | |||
cat > /${LIVEDIR}/sec_init.sh << EndOfFile  | |||
#!/bin/busybox sh  | |||
# This script modifies the system at boot time, but only if it is started from  | |||
# a Live CD. This way, the system image remains clean of any Live CD specific  | |||
# settings, and can be installed to harddisk as a normal OS.  | |||
# Print a welcome message before login  | |||
b="\033[1;34m" # Light Blue  | |||
c="\033[0;1m"  # Bright White  | |||
d="\033[1;33m" # Bright Yellow  | |||
e="\033[1;31m" # Bright Red  | |||
(/bin/busybox clear;  | |||
 echo -en "\${b}______________________________________________________________";  | |||
 echo -e "___";  | |||
 echo -e "";  | |||
 echo -e "\${c}  Welcome to the 'From Script' Live OS! ";  | |||
 echo -e "";  | |||
 echo -e "\${b}    Created on \${d}_DATE_STAMP_\${b}.";  | |||
 echo -e "\${b}    Created with an \${e}$(uname -m)\${b} processor.";  | |||
 echo -e "\${b}    You are now using an \${e}\\m\${b} processor.";  | |||
 echo -e "";  | |||
 echo -e "\${c}  Login instructions:";  | |||
 echo -e "\${b}    In addition to the 'root' account, an unpriviledged account";  | |||
 echo -e "\${b}    called 'user' is also available. There is no password set";  | |||
 echo -e "\${b}    for either account.";  | |||
 echo -en "\${b}______________________________________________________________";  | |||
 echo -e "___";  | |||
 echo -e "\033[0m") > \${ROOT}/etc/issue  | |||
# Configure users  | |||
cat > \${ROOT}/etc/rc.d/rcS.d/S80livesetup << "EOF"  | |||
#!/bin/sh  | |||
case "\${1}" in  | |||
    start)  | |||
        # Add a normal user with sound card privileges  | |||
        groupadd user  | |||
        useradd -m user -g user -G audio  | |||
        # Remove passwords for LiveCD users  | |||
        echo "user:" | chpasswd  | |||
        echo "root:" | chpasswd  | |||
        # (Re)generate SSH keys for security  | |||
        if [ "\$(which ssh-keygen)" != "" ]; then  | |||
            for algo in rsa dsa ecdsa ed25519; do  | |||
                yes | ssh-keygen -N "" -t \${algo} -f /etc/ssh/ssh_host_\${algo}_key > /dev/null  | |||
            done  | |||
        fi  | |||
        ;;  | |||
    *)  | |||
        echo "Usage: \${0} {start}"  | |||
        exit 1  | |||
        ;;  | |||
esac  | |||
EOF  | |||
chmod 755 \${ROOT}/etc/rc.d/rcS.d/S80livesetup  | |||
EndOfFile  | |||
chmod +x /${LIVEDIR}/sec_init.sh</build>  | |||
== Post-installation ==  | |||
<delaypostinst/><postinst>local LIVEBOOT="/usr/share/live/medium/boot"</postinst>  | |||
<postinst># Slightly change the colors of the "OK" messages on boot  | |||
sed -i 's@#BRACKET="\\\\033\[1;34m" # Blue@BRACKET="\\\\033\[0;34m"@g' \  | |||
        /etc/sysconfig/rc.site  | |||
sed -i 's@#SUCCESS="\\\\033\[1;32m" # Green@SUCCESS="\\\\033\[1;34m"@g' \  | |||
        /etc/sysconfig/rc.site</postinst>  | |||
<postinst># Apply a datestamp  | |||
local DATESTAMP="$(date +%B\ %d,\ %C%y)"  | |||
sed -i "s@_DATE_STAMP_@${DATESTAMP}@g" /usr/share/live/sec_init.sh</postinst>  | |||
<postinst># Ensure the installed version of syslinux' vesamenu is copied to the live cd  | |||
cp -v /usr/share/syslinux/vesamenu.c32 ${LIVEBOOT}/isolinux  | |||
cp -v /usr/share/syslinux/libcom32.c32 ${LIVEBOOT}/isolinux  | |||
cp -v /usr/share/syslinux/libutil.c32  ${LIVEBOOT}/isolinux</postinst>  | |||
<postinst># If memtest has been installed, make it available in the live cd boot menu  | |||
[ ! -r /boot/memtest86plus ] ||  | |||
cp -v /boot/memtest86plus ${LIVEBOOT}  | |||
[ ! -r /boot/memtest86plus ] ||  | |||
cat > ${LIVEBOOT}/isolinux/memtest86plus.cfg << "EOF"  | |||
LABEL memtest86plus  | |||
    MENU LABEL ^Memory test (Memtest86+)  | |||
    KERNEL /boot/memtest86plus  | |||
EOF</postinst>  | |||
<postinst># Set distribution codename  | |||
sed 's/<your name here>/fsOS (LFScript 4)/g' -i /etc/lsb-release</postinst>  | |||
Latest revision as of 18:57, 28 April 2017
This package lists all software to be included in the fsOS distribution as a dependency, with the exception of graphical software. It further contains the instructions that configure and brand the distribution.
LFScript can find this software under the name fsos-nox.
Sources
MD5 Checksums:
f7828ddf8eef71a2d269462d9cef3a03 fsos_boot.png 4ad62706f96d28304a501b96ecd107a7 MnmKr16-IBMPC.psf.gz
The file fsos_boot.png is used as background image for the isolinux boot menu on the Live CD. MnmKr16-IBMPC.psf.gz is a custom font which is heavily based on the font presented on http://powerman.name/config/font.html.
Dependencies
File systems:
- btrfs-progs
 - ntfs-3g
 
Tools:
- cpio
 - nano
 - postlfs
 - screen
 - unrar
 - which
 
Sound:
- alsa-utils
 
Programming:
- java-bin
 
Networking:
- dhcpcd
 - networkmanager
 - nmap
 - openssh
 - rsync
 - traceroute
 - wget
 - whois
 - wpa_supplicant
 
Installation and Live CD:
Installation
As the root user:
# Install the custom font mkdir -pv /usr/share/consolefonts mkdir -pv /etc/sysconfig cat MnmKr16-IBMPC.psf.gz > /usr/share/consolefonts/MnmKr16-IBMPC.psf.gz cat > /etc/sysconfig/console << "EOF" # Begin /etc/sysconfig/console FONT="MnmKr16-IBMPC -m 8859-1" # End /etc/sysconfig/console EOF
As the root user:
# Prepare a LiveCD configuration with a graphical boot menu
local LIVEDIR="usr/share/live"
mkdir -pv /${LIVEDIR}/medium/boot/isolinux
cat fsos_boot.png > /${LIVEDIR}/medium/boot/isolinux/fsos_boot.png 
cat > /${LIVEDIR}/medium/boot/isolinux/isolinux.cfg << "EOF"
DEFAULT vesamenu.c32
PROMPT 0
TIMEOUT 300
MENU BACKGROUND fsos_boot.png
MENU COLOR border 0 #00000000 #00000000 none
MENU COLOR title  0 #00000000 #00000000 none
MENU COLOR tabmsg 0 #00000000 #00000000 none
MENU COLOR unsel  0 #FFFFFFFF #00000000 none
MENU COLOR hotkey 0 #FFFFFFFF #00000000 none
MENU COLOR sel    0 #FF006080 #FFFFFFFF none
MENU COLOR hotsel 0 #FF006080 #FFFFFFFF none
MENU VSHIFT 15
MENU MARGIN 22
MENU ROWS 4
MENU TIMEOUTROW -1
MENU CMDLINEROW -1
INCLUDE i486.cfg
INCLUDE i586.cfg
INCLUDE i686.cfg
INCLUDE x86_64.cfg
INCLUDE memtest86plus.cfg
LABEL harddisk
    MENU LABEL Boot from first ^Hard disk
    LOCALBOOT 0x80
EOF
cat > /${LIVEDIR}/medium/boot/isolinux/$(uname -m).cfg << "EOF"
LABEL system_<ARCH>
    MENU LABEL ^Boot fsOS (<ARCH>, default)
    KERNEL /boot/<ARCH>/vmlinuz
    APPEND initrd=/boot/<ARCH>/initram.fs quiet
LABEL system_<ARCH>_force_vga
    MENU LABEL ^Boot fsOS (<ARCH>, 1024x768)
    KERNEL /boot/<ARCH>/vmlinuz
    APPEND initrd=/boot/<ARCH>/initram.fs quiet vga=792
EOF
sed -i "s/<ARCH>/$(uname -m)/g" /${LIVEDIR}/medium/boot/isolinux/$(uname -m).cfgAs the root user:
# If this system is to be used as a Live CD, configure it as such
cat > /${LIVEDIR}/sec_init.sh << EndOfFile
#!/bin/busybox sh
# This script modifies the system at boot time, but only if it is started from
# a Live CD. This way, the system image remains clean of any Live CD specific
# settings, and can be installed to harddisk as a normal OS.
# Print a welcome message before login
b="\033[1;34m" # Light Blue
c="\033[0;1m"  # Bright White
d="\033[1;33m" # Bright Yellow
e="\033[1;31m" # Bright Red
(/bin/busybox clear;
 echo -en "\${b}______________________________________________________________";
 echo -e "___";
 echo -e "";
 echo -e "\${c}  Welcome to the 'From Script' Live OS! ";
 echo -e "";
 echo -e "\${b}    Created on \${d}_DATE_STAMP_\${b}.";
 echo -e "\${b}    Created with an \${e}$(uname -m)\${b} processor.";
 echo -e "\${b}    You are now using an \${e}\\m\${b} processor.";
 echo -e "";
 echo -e "\${c}  Login instructions:";
 echo -e "\${b}    In addition to the 'root' account, an unpriviledged account";
 echo -e "\${b}    called 'user' is also available. There is no password set";
 echo -e "\${b}    for either account.";
 echo -en "\${b}______________________________________________________________";
 echo -e "___";
 echo -e "\033[0m") > \${ROOT}/etc/issue
# Configure users
cat > \${ROOT}/etc/rc.d/rcS.d/S80livesetup << "EOF"
#!/bin/sh
case "\${1}" in
    start)
        # Add a normal user with sound card privileges
        groupadd user
        useradd -m user -g user -G audio
        # Remove passwords for LiveCD users
        echo "user:" | chpasswd
        echo "root:" | chpasswd
        # (Re)generate SSH keys for security
        if [ "\$(which ssh-keygen)" != "" ]; then
            for algo in rsa dsa ecdsa ed25519; do
                yes | ssh-keygen -N "" -t \${algo} -f /etc/ssh/ssh_host_\${algo}_key > /dev/null
            done
        fi
        ;;
    *)
        echo "Usage: \${0} {start}"
        exit 1
        ;;
esac
EOF
chmod 755 \${ROOT}/etc/rc.d/rcS.d/S80livesetup
EndOfFile
chmod +x /${LIVEDIR}/sec_init.sh
Post-installation
Note: Post-installation of this software should be performed after all other software has been installed.
local LIVEBOOT="/usr/share/live/medium/boot"
# Slightly change the colors of the "OK" messages on boot
sed -i 's@#BRACKET="\\\\033\[1;34m" # Blue@BRACKET="\\\\033\[0;34m"@g' \
        /etc/sysconfig/rc.site
sed -i 's@#SUCCESS="\\\\033\[1;32m" # Green@SUCCESS="\\\\033\[1;34m"@g' \
        /etc/sysconfig/rc.site
# Apply a datestamp
local DATESTAMP="$(date +%B\ %d,\ %C%y)"
sed -i "s@_DATE_STAMP_@${DATESTAMP}@g" /usr/share/live/sec_init.sh
# Ensure the installed version of syslinux' vesamenu is copied to the live cd
cp -v /usr/share/syslinux/vesamenu.c32 ${LIVEBOOT}/isolinux
cp -v /usr/share/syslinux/libcom32.c32 ${LIVEBOOT}/isolinux
cp -v /usr/share/syslinux/libutil.c32  ${LIVEBOOT}/isolinux
# If memtest has been installed, make it available in the live cd boot menu
[ ! -r /boot/memtest86plus ] ||
cp -v /boot/memtest86plus ${LIVEBOOT}
[ ! -r /boot/memtest86plus ] ||
cat > ${LIVEBOOT}/isolinux/memtest86plus.cfg << "EOF"
LABEL memtest86plus
    MENU LABEL ^Memory test (Memtest86+)
    KERNEL /boot/memtest86plus
EOF
# Set distribution codename sed 's/<your name here>/fsOS (LFScript 4)/g' -i /etc/lsb-release
