From d441feab1929b046cca4ea247bd018c06497dc8d Mon Sep 17 00:00:00 2001 From: Valeria Fadeeva Date: Sun, 24 Dec 2023 19:44:34 +0500 Subject: [PATCH] Update --- Melawy-Linux-Full/00_mkdirs.sh | 9 -- Melawy-Linux-Full/00_reset_light.sh | 15 --- Melawy-Linux-Full/00_reset_with_packages.sh | 21 ---- Melawy-Linux-Full/01_rank_mirrorlist.sh | 15 --- Melawy-Linux-Full/02_prepare.sh | 49 ---------- Melawy-Linux-Full/03_chown.sh | 11 --- Melawy-Linux-Full/04_make.sh | 44 --------- Melawy-Linux-Full/05_sign.sh | 43 --------- Melawy-Linux-Full/06_chown.sh | 9 -- .../airootfs/etc/mkinitcpio.conf | 4 +- .../airootfs/etc/pacman.d/mirrorlist | 42 ++++---- .../ipv6-privacy-extensions.conf | 2 + .../etc/systemd/network/20-ethernet.network | 3 + .../etc/systemd/network/20-wlan.network | 3 + .../etc/systemd/network/20-wwan.network | 3 + .../airootfs/usr/local/bin/choose-mirror | 17 ++-- .../airootfs/usr/local/bin/livecd-sound | 95 +++++++++---------- .../entries/01-archiso-x86_64-linux.conf | 4 +- .../entries/02-archiso-x86_64-linux-nv.conf | 4 +- .../loader/entries/03-archiso-x86_64-efi.conf | 4 +- .../entries/04-archiso-x86_64-efi-nv.conf | 4 +- Melawy-Linux-Full/grub/grub.cfg | 81 +++++++++++----- Melawy-Linux-Full/grub/loopback.cfg | 80 ++++++++++++++++ Melawy-Linux-Full/mkarchiso_last_my | 48 ++++++---- Melawy-Linux-Full/netinstall.yaml | 5 +- Melawy-Linux-Full/netinstall_min.yaml | 5 +- Melawy-Linux-Full/netinstall_netinstall.yaml | 5 +- Melawy-Linux-Full/netinstall_tiny.yaml | 5 +- Melawy-Linux-Full/packages.x86_64 | 3 +- .../airootfs/etc/mkinitcpio.conf | 4 +- .../airootfs/etc/pacman.d/mirrorlist | 42 ++++---- .../etc/sddm.conf.d/kde_settings.conf | 2 +- .../ipv6-privacy-extensions.conf | 2 + .../etc/systemd/network/20-ethernet.network | 3 + .../etc/systemd/network/20-wlan.network | 3 + .../etc/systemd/network/20-wwan.network | 3 + .../airootfs/usr/local/bin/choose-mirror | 17 ++-- .../airootfs/usr/local/bin/livecd-sound | 95 +++++++++---------- .../entries/01-archiso-x86_64-linux.conf | 4 +- .../entries/02-archiso-x86_64-linux-nv.conf | 4 +- .../loader/entries/03-archiso-x86_64-efi.conf | 4 +- .../entries/04-archiso-x86_64-efi-nv.conf | 4 +- Melawy-Linux-NetInstall/grub/grub.cfg | 81 +++++++++++----- Melawy-Linux-NetInstall/grub/loopback.cfg | 80 ++++++++++++++++ Melawy-Linux-NetInstall/mkarchiso_last_my | 48 ++++++---- Melawy-Linux-NetInstall/netinstall.yaml | 5 +- Melawy-Linux-NetInstall/netinstall_min.yaml | 5 +- .../netinstall_netinstall.yaml | 5 +- Melawy-Linux-NetInstall/netinstall_tiny.yaml | 5 +- .../airootfs/etc/mkinitcpio.conf | 4 +- .../airootfs/etc/pacman.d/mirrorlist | 42 ++++---- .../ipv6-privacy-extensions.conf | 2 + .../etc/systemd/network/20-ethernet.network | 3 + .../etc/systemd/network/20-wlan.network | 3 + .../etc/systemd/network/20-wwan.network | 3 + .../airootfs/usr/local/bin/choose-mirror | 17 ++-- .../airootfs/usr/local/bin/livecd-sound | 95 +++++++++---------- .../entries/01-archiso-x86_64-linux.conf | 4 +- .../entries/02-archiso-x86_64-linux-nv.conf | 4 +- .../loader/entries/03-archiso-x86_64-efi.conf | 4 +- .../entries/04-archiso-x86_64-efi-nv.conf | 4 +- Melawy-Linux-Tiny/grub/grub.cfg | 81 +++++++++++----- Melawy-Linux-Tiny/grub/loopback.cfg | 80 ++++++++++++++++ Melawy-Linux-Tiny/mkarchiso_last_my | 48 ++++++---- Melawy-Linux-Tiny/netinstall.yaml | 5 +- Melawy-Linux-Tiny/netinstall_min.yaml | 5 +- Melawy-Linux-Tiny/netinstall_netinstall.yaml | 5 +- Melawy-Linux-Tiny/netinstall_tiny.yaml | 5 +- Melawy-Linux-Tiny/packages.x86_64 | 1 + 69 files changed, 816 insertions(+), 648 deletions(-) delete mode 100755 Melawy-Linux-Full/00_mkdirs.sh delete mode 100755 Melawy-Linux-Full/00_reset_light.sh delete mode 100755 Melawy-Linux-Full/00_reset_with_packages.sh delete mode 100755 Melawy-Linux-Full/01_rank_mirrorlist.sh delete mode 100755 Melawy-Linux-Full/02_prepare.sh delete mode 100755 Melawy-Linux-Full/03_chown.sh delete mode 100755 Melawy-Linux-Full/04_make.sh delete mode 100755 Melawy-Linux-Full/05_sign.sh delete mode 100755 Melawy-Linux-Full/06_chown.sh create mode 100644 Melawy-Linux-Full/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf create mode 100644 Melawy-Linux-Full/grub/loopback.cfg create mode 100644 Melawy-Linux-NetInstall/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf create mode 100644 Melawy-Linux-NetInstall/grub/loopback.cfg create mode 100644 Melawy-Linux-Tiny/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf create mode 100644 Melawy-Linux-Tiny/grub/loopback.cfg diff --git a/Melawy-Linux-Full/00_mkdirs.sh b/Melawy-Linux-Full/00_mkdirs.sh deleted file mode 100755 index 4805a8b..0000000 --- a/Melawy-Linux-Full/00_mkdirs.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -edition="$(basename $(pwd))" -mkdir -pv ../boot/{fd,iso,qcow2,shell_scripts,txt} 2>/dev/null -# mkdir -pv ../make_iso 2>/dev/null -mkdir -pv ../sf 2>/dev/null -mkdir -pv ../work_${edition} 2>/dev/null - -echo "Ready" diff --git a/Melawy-Linux-Full/00_reset_light.sh b/Melawy-Linux-Full/00_reset_light.sh deleted file mode 100755 index 1beeb1d..0000000 --- a/Melawy-Linux-Full/00_reset_light.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -edition="$(basename $(pwd))" -sudo rm -rfv ../work_${edition} -status="$?" - -mkdir ../work_${edition} - -notify-send -a "$(basename $(pwd)): Reset" -t 10000 "finished" "$(date '+%Y.%m.%d %H:%M:%S')" - -echo "Ready" -if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') -fi diff --git a/Melawy-Linux-Full/00_reset_with_packages.sh b/Melawy-Linux-Full/00_reset_with_packages.sh deleted file mode 100755 index 7d19136..0000000 --- a/Melawy-Linux-Full/00_reset_with_packages.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -edition="$(basename $(pwd))" -sudo rm -rfv ../work_${edition} -status="$?" -rm -v airootfs/opt/extra-drivers/*.pkg.tar.* -status=$(( $status + "$?" )) -rm -v airootfs/root/packages/*.pkg.tar.* -status=$(( $status + "$?" )) -rm -v airootfs/usr/share/packages/*.pkg.tar.* -status=$(( $status + "$?" )) - -mkdir ../work_${edition} - -notify-send -a "$(basename $(pwd)): Reset" -t 10000 "finished" "$(date '+%Y.%m.%d %H:%M:%S')" - -echo "Ready" -if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') -fi diff --git a/Melawy-Linux-Full/01_rank_mirrorlist.sh b/Melawy-Linux-Full/01_rank_mirrorlist.sh deleted file mode 100755 index fcc2f0d..0000000 --- a/Melawy-Linux-Full/01_rank_mirrorlist.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -sudo sed -i -e "s/#Server/Server/g" /etc/pacman.d/mirrorlist.pacnew -sudo cp /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist -sudo reflector --save /etc/pacman.d/mirrorlist -c "CA,FI,FR,DE,IS,IE,IT,JP,KZ,LV,LU,NZ,NO,PL,PT,RU,SG,ES,SE,CH,TW,TH, " --protocol https --latest 50 --fastest 50 --sort rate - -cp -vf "/etc/pacman.d/mirrorlist" "./airootfs/etc/pacman.d/" - -notify-send -a "$(basename $(pwd)): Prepare" -t 10000 "finished" "$(date '+%Y.%m.%d %H:%M:%S')" - -echo "Ready" -if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') -fi diff --git a/Melawy-Linux-Full/02_prepare.sh b/Melawy-Linux-Full/02_prepare.sh deleted file mode 100755 index 8d876d5..0000000 --- a/Melawy-Linux-Full/02_prepare.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -cp -vf "/etc/pacman.d/mirrorlist" "./airootfs/etc/pacman.d/" - -sudo pacman -Sy --config pacman_sys.conf - -sudo pacman -Sw --config pacman_sys.conf --noconfirm --cachedir "./airootfs/opt/extra-drivers" r8168-dkms - -# sudo mv -vf "./airootfs/opt/extra-drivers/linux"* "./airootfs/usr/share/packages/" -sudo rm -vf "./airootfs/opt/extra-drivers/linux"* - -packs=( - dracut - grub-dracut - grub - systemd-boot-dracut - libxvmc - linux-api-headers - linux-cachyos - linux-cachyos-headers - linux-cachyos-zfs - melawy-dracut-initramfs - melawy-dracut-ukify - melawy-refind-menu-generator - melawy-refind-theme-nier-a2 - melawy-plymouth-theme-nier-a2 - os-prober - refind - update-grub - xf86-video-intel -) - -for pack in ${packs[@]} -do - sudo pacman -Sw --config pacman_sys.conf --noconfirm --cachedir "./airootfs/usr/share/packages" $pack -done - -sudo paccache -rvk 1 --cachedir "./airootfs/opt/extra-drivers" -sudo paccache -rvk 1 --cachedir "./airootfs/usr/share/packages" - -# sudo rm "./airootfs/opt/extra-drivers/linux"* - -notify-send -a "$(basename $(pwd)): Prepare" -t 10000 "finished" "$(date '+%Y.%m.%d %H:%M:%S')" - -echo "Ready" -if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') -fi diff --git a/Melawy-Linux-Full/03_chown.sh b/Melawy-Linux-Full/03_chown.sh deleted file mode 100755 index a924380..0000000 --- a/Melawy-Linux-Full/03_chown.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -sudo chown -R 1000:1000 ./airootfs/opt/extra-drivers/ -sudo chown -R 1000:1000 ./airootfs/usr/share/packages/ -sudo chown -R 1000:1000 ../boot/iso - -echo "Ready" -if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') -fi diff --git a/Melawy-Linux-Full/04_make.sh b/Melawy-Linux-Full/04_make.sh deleted file mode 100755 index 21e3dde..0000000 --- a/Melawy-Linux-Full/04_make.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -edition="$(basename $(pwd))" -date_tag=$(date +%Y.%m.%d) -std_iso_name="Melawy-Linux-${date_tag}-x86_64" -iso_name="${edition}-${date_tag}-x86_64" -iso_dir="${edition}-${date_tag}" - -mkdir -p "../sf/${iso_dir}" -sudo ./mkarchiso_last_my -v "." - -if [ "$?" -eq 0 ]; then - cp -vf "../work_${edition}/iso/arch/pkglist.x86_64.txt" "../sf/${iso_dir}/${iso_name}-pkglist.txt" - - mv "../sf/${iso_dir}/${std_iso_name}.iso" "../sf/${iso_dir}/${iso_name}.iso" - - echo "Sign ../sf/${iso_dir}/${iso_name}.iso.sig ../sf/${iso_dir}/${iso_name}.iso" - if [ -f "../sf/${iso_dir}/${iso_name}.iso.sig" ]; then rm "../sf/${iso_dir}/${iso_name}.iso.sig"; fi - gpg --detach-sign --local-user BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8 --output "../sf/${iso_dir}/${iso_name}.iso.sig" "../sf/${iso_dir}/${iso_name}.iso" - - - cd "../sf/${iso_dir}" - - echo "md5sum ${iso_name}.iso" - md5sum "${iso_name}.iso" > "${iso_name}.iso.md5" - - echo "sha1sum ${iso_name}.iso" - sha1sum "${iso_name}.iso" > "${iso_name}.iso.sha1" - - echo "sha256sum ${iso_name}.iso" - sha256sum "${iso_name}.iso" > "${iso_name}.iso.sha256" - - cd ".." - - mktorrent --verbose --comment="https://melawy.ru" --announce="udp://fosstorrents.com:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://opentracker.i2p.rocks:6969/announce,udp://open.demonii.com:1337/announce,udp://tracker.openbittorrent.com:6969/announce,http://tracker.openbittorrent.com:80/announce,udp://open.stealth.si:80/announce,udp://tracker.torrent.eu.org:451/announce,udp://exodus.desync.com:6969/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker.moeking.me:6969/announce,udp://explodie.org:6969/announce,https://tracker.tamersunion.org:443/announce,udp://uploads.gamecoast.net:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.bittor.pw:1337/announce,udp://retracker01-msk-virt.corbina.net:80/announce,udp://movies.zsw.ca:6969/announce,udp://isk.richardsw.club:6969/announce,https://tracker.renfei.net:443/announce,https://tr.burnabyhighstar.com:443/announce,http://fosstorrents.com:6969/announce" --output="${iso_dir}/${iso_name}.torrent" "${iso_dir}" - - notify-send -a "$(basename $(pwd)): Sign" -t 10000 "finished" "$(date '+%Y.%m.%d %H:%M:%S')" - - echo "Ready" - if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') - fi -fi diff --git a/Melawy-Linux-Full/05_sign.sh b/Melawy-Linux-Full/05_sign.sh deleted file mode 100755 index f04b5f6..0000000 --- a/Melawy-Linux-Full/05_sign.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -edition="$(basename $(pwd))" -date_tag="$(date +%Y.%m.%d)" - -iso_name="${edition}-${date_tag}-x86_64" -iso_dir="${edition}-${date_tag}" - - - - - -cp -vf "../work_${edition}/iso/arch/pkglist.x86_64.txt" "../sf/${iso_dir}/${iso_name}-pkglist.txt" - - - -echo "Sign ../sf/${iso_dir}/${iso_name}.iso.sig ../sf/${iso_dir}/${iso_name}.iso" -if [ -f "../sf/${iso_dir}/${iso_name}.iso.sig" ]; then rm "../sf/${iso_dir}/${iso_name}.iso.sig"; fi -gpg --detach-sign --local-user BC8B600E8DDA1F4CB77B10D2BA803A261A5EE6B8 --output "../sf/${iso_dir}/${iso_name}.iso.sig" "../sf/${iso_dir}/${iso_name}.iso" - - -cd "../sf/${iso_dir}" - -echo "md5sum ${iso_name}.iso" -md5sum "${iso_name}.iso" > "${iso_name}.iso.md5" - -echo "sha1sum ${iso_name}.iso" -sha1sum "${iso_name}.iso" > "${iso_name}.iso.sha1" - -echo "sha256sum ${iso_name}.iso" -sha256sum "${iso_name}.iso" > "${iso_name}.iso.sha256" - -cd ".." - -mktorrent --verbose --comment="https://melawy.ru" --announce="udp://fosstorrents.com:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://opentracker.i2p.rocks:6969/announce,udp://open.demonii.com:1337/announce,udp://tracker.openbittorrent.com:6969/announce,http://tracker.openbittorrent.com:80/announce,udp://open.stealth.si:80/announce,udp://tracker.torrent.eu.org:451/announce,udp://exodus.desync.com:6969/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker.moeking.me:6969/announce,udp://explodie.org:6969/announce,https://tracker.tamersunion.org:443/announce,udp://uploads.gamecoast.net:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.bittor.pw:1337/announce,udp://retracker01-msk-virt.corbina.net:80/announce,udp://movies.zsw.ca:6969/announce,udp://isk.richardsw.club:6969/announce,https://tracker.renfei.net:443/announce,https://tr.burnabyhighstar.com:443/announce,http://fosstorrents.com:6969/announce" --output="${iso_dir}/${iso_name}.torrent" "${iso_dir}" - -notify-send -a "$(basename $(pwd)): Sign" -t 10000 "finished" "$(date '+%Y.%m.%d %H:%M:%S')" - -echo "Ready" -if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') -fi diff --git a/Melawy-Linux-Full/06_chown.sh b/Melawy-Linux-Full/06_chown.sh deleted file mode 100755 index 4834fed..0000000 --- a/Melawy-Linux-Full/06_chown.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -sudo chown -R 1000:1000 ../sf - -echo "Ready" -if [ "$status" == 0 ]; then - sleep 5 - kill $(ps x | grep konsole | grep $0 | awk '{print $1}') -fi diff --git a/Melawy-Linux-Full/airootfs/etc/mkinitcpio.conf b/Melawy-Linux-Full/airootfs/etc/mkinitcpio.conf index 623313c..e49f5c1 100644 --- a/Melawy-Linux-Full/airootfs/etc/mkinitcpio.conf +++ b/Melawy-Linux-Full/airootfs/etc/mkinitcpio.conf @@ -58,10 +58,10 @@ HOOKS=(base udev modconf kms sd-vconsole memdisk archiso archiso_loop_mnt archis #COMPRESSION="gzip" #COMPRESSION="bzip2" #COMPRESSION="lzma" -#COMPRESSION="xz" +COMPRESSION="xz" #COMPRESSION="lzop" #COMPRESSION="lz4" -COMPRESSION="zstd" +#COMPRESSION="zstd" # COMPRESSION_OPTIONS # Additional options for the compressor diff --git a/Melawy-Linux-Full/airootfs/etc/pacman.d/mirrorlist b/Melawy-Linux-Full/airootfs/etc/pacman.d/mirrorlist index 48a09ed..bf4b8a5 100644 --- a/Melawy-Linux-Full/airootfs/etc/pacman.d/mirrorlist +++ b/Melawy-Linux-Full/airootfs/etc/pacman.d/mirrorlist @@ -3,28 +3,28 @@ ################################################################################ # With: reflector @/etc/xdg/reflector/reflector.conf -# When: 2023-12-19 05:14:30 UTC +# When: 2023-12-23 11:39:24 UTC # From: https://archlinux.org/mirrors/status/json/ -# Retrieved: 2023-12-19 05:13:06 UTC -# Last Check: 2023-12-19 05:01:52 UTC +# Retrieved: 2023-12-23 11:38:53 UTC +# Last Check: 2023-12-23 11:12:26 UTC -Server = http://archlinux.thaller.ws/$repo/os/$arch -Server = https://archlinux.thaller.ws/$repo/os/$arch -Server = rsync://archlinux.mailtunnel.eu/archlinux/$repo/os/$arch -Server = https://mirror.f4st.host/archlinux/$repo/os/$arch -Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch -Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch -Server = https://de.arch.mirror.kescher.at/$repo/os/$arch -Server = rsync://de.arch.mirror.kescher.at/mirror/arch/$repo/os/$arch -Server = http://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = rsync://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch -Server = http://arch.sakamoto.pl/$repo/os/$arch -Server = https://arch.sakamoto.pl/$repo/os/$arch -Server = rsync://archlinux.thaller.ws/archlinux/$repo/os/$arch -Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch -Server = rsync://mirror.ubrco.de/archlinux/$repo/os/$arch -Server = http://archlinux.mailtunnel.eu/$repo/os/$arch +Server = https://pkg.adfinis.com/archlinux/$repo/os/$arch Server = http://mirror.f4st.host/archlinux/$repo/os/$arch +Server = https://mirror.sunred.org/archlinux/$repo/os/$arch +Server = http://mirror.sunred.org/archlinux/$repo/os/$arch +Server = https://archlinux.mailtunnel.eu/$repo/os/$arch +Server = http://pkg.adfinis.com/archlinux/$repo/os/$arch +Server = https://archlinux.thaller.ws/$repo/os/$arch +Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch +Server = http://archlinux.thaller.ws/$repo/os/$arch +Server = https://mirror.moson.org/arch/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch +Server = https://mirror.f4st.host/archlinux/$repo/os/$arch +Server = rsync://sync.mirror.sunred.org/archlinux/$repo/os/$arch +Server = rsync://archlinux.thaller.ws/archlinux/$repo/os/$arch +Server = rsync://pkg.adfinis.com/archlinux/$repo/os/$arch +Server = rsync://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = rsync://archlinux.mailtunnel.eu/archlinux/$repo/os/$arch Server = rsync://mirror.f4st.host/archlinux/$repo/os/$arch diff --git a/Melawy-Linux-Full/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/Melawy-Linux-Full/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 0000000..0e9ceb4 --- /dev/null +++ b/Melawy-Linux-Full/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/Melawy-Linux-Full/airootfs/etc/systemd/network/20-ethernet.network b/Melawy-Linux-Full/airootfs/etc/systemd/network/20-ethernet.network index ce8de1f..81249b9 100644 --- a/Melawy-Linux-Full/airootfs/etc/systemd/network/20-ethernet.network +++ b/Melawy-Linux-Full/airootfs/etc/systemd/network/20-ethernet.network @@ -5,6 +5,9 @@ Name=en* Name=eth* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes MulticastDNS=yes diff --git a/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wlan.network b/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wlan.network index e5990bf..e49d714 100644 --- a/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wlan.network +++ b/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wlan.network @@ -1,6 +1,9 @@ [Match] Name=wl* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes MulticastDNS=yes diff --git a/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wwan.network b/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wwan.network index 9104c24..ae94e78 100644 --- a/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wwan.network +++ b/Melawy-Linux-Full/airootfs/etc/systemd/network/20-wwan.network @@ -1,6 +1,9 @@ [Match] Name=ww* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes IPv6PrivacyExtensions=yes diff --git a/Melawy-Linux-Full/airootfs/usr/local/bin/choose-mirror b/Melawy-Linux-Full/airootfs/usr/local/bin/choose-mirror index b021945..d2349de 100755 --- a/Melawy-Linux-Full/airootfs/usr/local/bin/choose-mirror +++ b/Melawy-Linux-Full/airootfs/usr/local/bin/choose-mirror @@ -4,21 +4,22 @@ get_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(/etc/pacman.d/mirrorlist << EOF +cat >/etc/pacman.d/mirrorlist < # $2 # $3 -unmute_and_set_level(){ - { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout +unmute_and_set_level() { + [[ -n "$3" && -n "$2" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute return 0 @@ -42,9 +41,8 @@ unmute_and_set_level(){ # $1 # $2 -mute_and_zero_level() -{ - { [ "$1" ] && [ "$2" ] ; } || bugout +mute_and_zero_level() { + [[ -n "$1" && -n "$2" ]] || bugout systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute return 0 @@ -53,17 +51,15 @@ mute_and_zero_level() # $1 # $2 # $3 "on" | "off" -switch_control() -{ - { [ "$3" ] && [ "$1" ] ; } || bugout +switch_control() { + [[ -n "$3" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" return 0 } # $1 -sanify_levels_on_card() -{ +sanify_levels_on_card() { unmute_and_set_level "$1" "Front" "80%" unmute_and_set_level "$1" "Master" "80%" unmute_and_set_level "$1" "Master Mono" "80%" @@ -134,94 +130,89 @@ sanify_levels_on_card() } # $1 | "all" -sanify_levels() -{ +sanify_levels() { local ttsdml_returnstatus=0 local card case "$1" in - all) - for card in $(echo_card_indices) ; do - sanify_levels_on_card "$card" || ttsdml_returnstatus=1 - done - ;; - *) - sanify_levels_on_card "$1" || ttsdml_returnstatus=1 - ;; + all) + for card in $(echo_card_indices); do + sanify_levels_on_card "$card" || ttsdml_returnstatus=1 + done + ;; + *) + sanify_levels_on_card "$1" || ttsdml_returnstatus=1 + ;; esac - return $ttsdml_returnstatus + return "$ttsdml_returnstatus" } # List all cards that *should* be usable for PCM audio. In my experience, # the console speaker (handled by the pcsp driver) isn't a suitable playback # device, so we'll exclude it. -list_non_pcsp_cards() -{ +list_non_pcsp_cards() { for card in $(echo_card_indices); do local cardfile="/proc/asound/card${card}/id" - if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ - [ "$(cat "$cardfile")" != pcsp ]; then + if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then echo "$card" fi done } # Properly initialize the sound card so that we have audio at boot. -unmute_all_cards() -{ +unmute_all_cards() { sanify_levels all } is_numeric() { - local str=$1 + local str="$1" [[ "$str" =~ ^[0-9]+$ ]] } set_default_card() { - local card=$1 - sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ - > /etc/asound.conf + local card="$1" + sed -e "s/%card%/$card/g" /etc/asound.conf } play_on_card() { - local card=$1 file=$2 + local card="$1" file="$2" aplay -q "-Dplughw:$card,0" "$file" } # If there are multiple usable sound cards, prompt the user to choose one, # using auditory feedback. -pick_a_card() -{ +pick_a_card() { set -f usable_cards="$(list_non_pcsp_cards)" - num_usable_cards="$(wc -w <<< "$usable_cards")" + num_usable_cards="$(wc -w <<<"$usable_cards")" - if [ "$num_usable_cards" -eq 1 ]; then + if (( num_usable_cards == 1 )); then systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" exit 0 fi systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue fi - play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav & done wait sleep 1 - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue - fi - play_on_card "$card" /usr/share/livecd-sounds/beep.wav - if read -r -t 10; then - systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" - set_default_card "$card" - break - fi -done + fi + play_on_card "$card" /usr/share/livecd-sounds/beep.wav + if read -r -t 10; then + systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" + set_default_card "$card" + break + fi + done } -if [[ $# -eq 0 ]]; then +if (( $# == 0 )); then echo "error: No argument passed." exit 1 fi diff --git a/Melawy-Linux-Full/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/Melawy-Linux-Full/efiboot/loader/entries/01-archiso-x86_64-linux.conf index 9dd05f3..34e732b 100644 --- a/Melawy-Linux-Full/efiboot/loader/entries/01-archiso-x86_64-linux.conf +++ b/Melawy-Linux-Full/efiboot/loader/entries/01-archiso-x86_64-linux.conf @@ -1,7 +1,7 @@ -title Melawy Linux x86_64 UEFI Default +title Melawy Linux install medium x86_64 UEFI Default sort-key 01 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Full/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf b/Melawy-Linux-Full/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf index a807af7..b12aa2c 100644 --- a/Melawy-Linux-Full/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf +++ b/Melawy-Linux-Full/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf @@ -1,7 +1,7 @@ -title Melawy Linux x86_64 UEFI NVIDIA (latest cards only) +title Melawy Linux install medium x86_64 UEFI NVIDIA (latest cards only) sort-key 02 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Full/efiboot/loader/entries/03-archiso-x86_64-efi.conf b/Melawy-Linux-Full/efiboot/loader/entries/03-archiso-x86_64-efi.conf index f672209..95ec9c0 100644 --- a/Melawy-Linux-Full/efiboot/loader/entries/03-archiso-x86_64-efi.conf +++ b/Melawy-Linux-Full/efiboot/loader/entries/03-archiso-x86_64-efi.conf @@ -1,4 +1,4 @@ -title Melawy Linux x86_64 UEFI EFI Default +title Melawy Linux install medium x86_64 UEFI EFI Default sort-key 03 efi /%INSTALL_DIR%/boot/x86_64/linux-cachyos.efi -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Full/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf b/Melawy-Linux-Full/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf index ffd3a44..36c955d 100644 --- a/Melawy-Linux-Full/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf +++ b/Melawy-Linux-Full/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf @@ -1,4 +1,4 @@ -title Melawy Linux x86_64 UEFI EFI NVIDIA (latest cards only) +title Melawy Linux install medium x86_64 UEFI EFI NVIDIA (latest cards only) sort-key 04 efi /%INSTALL_DIR%/boot/x86_64/linux-cachyos.efi -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Full/grub/grub.cfg b/Melawy-Linux-Full/grub/grub.cfg index 8e38559..cc18cab 100644 --- a/Melawy-Linux-Full/grub/grub.cfg +++ b/Melawy-Linux-Full/grub/grub.cfg @@ -12,12 +12,18 @@ insmod udf insmod all_video insmod font if loadfont "${prefix}/fonts/unicode.pf2" ; then + insmod all_video set gfxmode="auto" terminal_input console terminal_output console fi # Enable serial console +insmod serial +insmod usbserial_common +insmod usbserial_ftdi +insmod usbserial_pl2303 +insmod usbserial_usbdebug if serial --unit=0 --speed=115200; then terminal_input --append serial terminal_output --append serial @@ -32,41 +38,62 @@ if [ -z "${ARCHISO_UUID}" ]; then probe --set ARCHISO_UUID --fs-uuid "${root}" fi +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + archiso_platform="x64 ${archiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + archiso_platform="IA32 ${archiso_platform}" + else + archiso_platform="${grub_cpu} ${archiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu} ${grub_platform}" +fi + # Set default menu entry default="Melawy Linux" timeout=15 timeout_style=menu -# GRUB init tune for accessibility -play 600 988 1 1319 4 # Menu entries -menuentry "Melawy Linux install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' { +menuentry "Melawy Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img } -menuentry "Melawy Linux install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' { +menuentry "Melawy Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img } -if [ "${grub_platform}" == "efi" ]; then - if [ "${grub_cpu}" == "x86_64" ]; then - menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class gnu --class tool { - set gfxpayload=800x600,1024x768 - linux /boot/memtest86+/memtest.efi - } - menuentry "UEFI Shell" { - insmod chain + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { chainloader /shellx64.efi } - elif [ "${grub_cpu}" == "i386" ]; then - menuentry "UEFI Shell" { - insmod chain + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { chainloader /shellia32.efi } fi @@ -76,12 +103,16 @@ if [ "${grub_platform}" == "efi" ]; then } fi -menuentry "System restart" --class reboot --class restart { - echo "System rebooting..." +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' reboot } -menuentry "System shutdown" --class shutdown --class poweroff { - echo "System shutting down..." - halt -} + +# GRUB init tune for accessibility +play 600 988 1 1319 4 diff --git a/Melawy-Linux-Full/grub/loopback.cfg b/Melawy-Linux-Full/grub/loopback.cfg new file mode 100644 index 0000000..d64e3da --- /dev/null +++ b/Melawy-Linux-Full/grub/loopback.cfg @@ -0,0 +1,80 @@ +# https://www.supergrubdisk.org/wiki/Loopback.cfg + +# Search for the ISO volume +search --no-floppy --set=archiso_img_dev --file "${iso_path}" +probe --set archiso_img_dev_uuid --fs-uuid "${archiso_img_dev}" + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + archiso_platform="x64 ${archiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + archiso_platform="IA32 ${archiso_platform}" + else + archiso_platform="${grub_cpu} ${archiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu} ${grub_platform}" +fi + +# Set default menu entry +default="Melawy Linux" +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "Melawy Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memma + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img +} + +menuentry "Melawy Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap accessibility=on + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img +} + + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot +} diff --git a/Melawy-Linux-Full/mkarchiso_last_my b/Melawy-Linux-Full/mkarchiso_last_my index 5da3ce5..ff1b2fc 100755 --- a/Melawy-Linux-Full/mkarchiso_last_my +++ b/Melawy-Linux-Full/mkarchiso_last_my @@ -862,7 +862,7 @@ _make_common_bootmode_systemd-boot() { efiboot_files+=("${pacstrap_dir}/usr/lib/systemd/boot/efi/systemd-bootia32.efi" "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi") fi - efiboot_files+=("${profile}/efiboot/" + efiboot_files+=("${work_dir}/loader/" "${pacstrap_dir}/boot/vmlinuz-"* "${pacstrap_dir}/boot/initramfs-"*".img" "${pacstrap_dir}/boot/linux-"* @@ -872,39 +872,39 @@ _make_common_bootmode_systemd-boot() { _make_efibootimg "$efiboot_imgsize" } -_make_common_bootmode_systemd-boot_conf.isofs() { +_make_common_bootmode_systemd-boot_conf() { local _conf - # Copy systemd-boot configuration files - install -d -m 0755 -- "${isofs_dir}/loader/entries" - install -m 0644 -- "${profile}/efiboot/loader/loader.conf" "${isofs_dir}/loader/" - for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do - sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g; - s|%ARCH%|${arch}|g" \ - "${_conf}" >"${isofs_dir}/loader/entries/${_conf##*/}" - done -} + install -d -m 0755 -- "${work_dir}/loader" "${work_dir}/loader/entries" -_make_common_bootmode_systemd-boot_conf.esp() { - local _conf - - # Copy systemd-boot configuration files - mmd -i "${efibootimg}" ::/loader ::/loader/entries - mcopy -i "${efibootimg}" "${profile}/efiboot/loader/loader.conf" ::/loader/ + install -m 0644 -- "${profile}/efiboot/loader/loader.conf" "${work_dir}/loader" for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%ARCHISO_UUID%|${iso_uuid}|g; s|%INSTALL_DIR%|${install_dir}|g; s|%ARCH%|${arch}|g" \ - "${_conf}" | mcopy -i "${efibootimg}" - "::/loader/entries/${_conf##*/}" + "${_conf}" >"${work_dir}/loader/entries/${_conf##*/}" done } +# Copy systemd-boot configuration files to ISO 9660 +_make_common_bootmode_systemd-boot_conf.isofs() { + cp -r --remove-destination -- "${work_dir}/loader" "${isofs_dir}/" +} + +# Copy systemd-boot configuration files to FAT image +_make_common_bootmode_systemd-boot_conf.esp() { + mcopy -i "${efibootimg}" -s "${work_dir}/loader" ::/ +} + # Prepare systemd-boot for booting when written to a disk (isohybrid) _make_bootmode_uefi-x64.systemd-boot.esp() { _msg_info "Setting up systemd-boot for x64 UEFI booting..." + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + + # Prepare a FAT image for the EFI system partition _run_once _make_common_bootmode_systemd-boot # Copy systemd-boot EFI binary to the default/fallback boot path @@ -929,6 +929,9 @@ _make_bootmode_uefi-x64.systemd-boot.esp() { # Prepare systemd-boot for El Torito booting _make_bootmode_uefi-x64.systemd-boot.eltorito() { + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + # El Torito UEFI boot requires an image containing the EFI system partition. # uefi-x64.systemd-boot.eltorito has the same requirements as uefi-x64.systemd-boot.esp _run_once _make_bootmode_uefi-x64.systemd-boot.esp @@ -958,6 +961,10 @@ _make_bootmode_uefi-x64.systemd-boot.eltorito() { _make_bootmode_uefi-ia32.systemd-boot.esp() { _msg_info "Setting up systemd-boot for IA32 UEFI booting..." + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + + # Prepare a FAT image for the EFI system partition _run_once _make_common_bootmode_systemd-boot # Copy systemd-boot EFI binary to the default/fallback boot path @@ -981,6 +988,9 @@ _make_bootmode_uefi-ia32.systemd-boot.esp() { } _make_bootmode_uefi-ia32.systemd-boot.eltorito() { + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + # El Torito UEFI boot requires an image containing the EFI system partition. # uefi-ia32.systemd-boot.eltorito has the same requirements as uefi-ia32.systemd-boot.esp _run_once _make_bootmode_uefi-ia32.systemd-boot.esp diff --git a/Melawy-Linux-Full/netinstall.yaml b/Melawy-Linux-Full/netinstall.yaml index cfaf84b..ba24508 100644 --- a/Melawy-Linux-Full/netinstall.yaml +++ b/Melawy-Linux-Full/netinstall.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Full/netinstall_min.yaml b/Melawy-Linux-Full/netinstall_min.yaml index 587b7bc..7c24f15 100644 --- a/Melawy-Linux-Full/netinstall_min.yaml +++ b/Melawy-Linux-Full/netinstall_min.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Full/netinstall_netinstall.yaml b/Melawy-Linux-Full/netinstall_netinstall.yaml index 0dc0aca..a9c5c7f 100644 --- a/Melawy-Linux-Full/netinstall_netinstall.yaml +++ b/Melawy-Linux-Full/netinstall_netinstall.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Full/netinstall_tiny.yaml b/Melawy-Linux-Full/netinstall_tiny.yaml index 0dc0aca..a9c5c7f 100644 --- a/Melawy-Linux-Full/netinstall_tiny.yaml +++ b/Melawy-Linux-Full/netinstall_tiny.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Full/packages.x86_64 b/Melawy-Linux-Full/packages.x86_64 index e98516e..3c65696 100644 --- a/Melawy-Linux-Full/packages.x86_64 +++ b/Melawy-Linux-Full/packages.x86_64 @@ -230,6 +230,7 @@ openvpn ppp pptpclient rp-pppoe +shadowsocks-electron-bin systemd-resolvconf traceroute usb_modeswitch @@ -547,8 +548,6 @@ vlc-luajit audacious elisa ffmpeg-obs -haruna -mpv vlc-luajit ## Picture editors (minimal) (full) diff --git a/Melawy-Linux-NetInstall/airootfs/etc/mkinitcpio.conf b/Melawy-Linux-NetInstall/airootfs/etc/mkinitcpio.conf index 623313c..e49f5c1 100644 --- a/Melawy-Linux-NetInstall/airootfs/etc/mkinitcpio.conf +++ b/Melawy-Linux-NetInstall/airootfs/etc/mkinitcpio.conf @@ -58,10 +58,10 @@ HOOKS=(base udev modconf kms sd-vconsole memdisk archiso archiso_loop_mnt archis #COMPRESSION="gzip" #COMPRESSION="bzip2" #COMPRESSION="lzma" -#COMPRESSION="xz" +COMPRESSION="xz" #COMPRESSION="lzop" #COMPRESSION="lz4" -COMPRESSION="zstd" +#COMPRESSION="zstd" # COMPRESSION_OPTIONS # Additional options for the compressor diff --git a/Melawy-Linux-NetInstall/airootfs/etc/pacman.d/mirrorlist b/Melawy-Linux-NetInstall/airootfs/etc/pacman.d/mirrorlist index 48a09ed..bf4b8a5 100644 --- a/Melawy-Linux-NetInstall/airootfs/etc/pacman.d/mirrorlist +++ b/Melawy-Linux-NetInstall/airootfs/etc/pacman.d/mirrorlist @@ -3,28 +3,28 @@ ################################################################################ # With: reflector @/etc/xdg/reflector/reflector.conf -# When: 2023-12-19 05:14:30 UTC +# When: 2023-12-23 11:39:24 UTC # From: https://archlinux.org/mirrors/status/json/ -# Retrieved: 2023-12-19 05:13:06 UTC -# Last Check: 2023-12-19 05:01:52 UTC +# Retrieved: 2023-12-23 11:38:53 UTC +# Last Check: 2023-12-23 11:12:26 UTC -Server = http://archlinux.thaller.ws/$repo/os/$arch -Server = https://archlinux.thaller.ws/$repo/os/$arch -Server = rsync://archlinux.mailtunnel.eu/archlinux/$repo/os/$arch -Server = https://mirror.f4st.host/archlinux/$repo/os/$arch -Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch -Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch -Server = https://de.arch.mirror.kescher.at/$repo/os/$arch -Server = rsync://de.arch.mirror.kescher.at/mirror/arch/$repo/os/$arch -Server = http://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = rsync://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch -Server = http://arch.sakamoto.pl/$repo/os/$arch -Server = https://arch.sakamoto.pl/$repo/os/$arch -Server = rsync://archlinux.thaller.ws/archlinux/$repo/os/$arch -Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch -Server = rsync://mirror.ubrco.de/archlinux/$repo/os/$arch -Server = http://archlinux.mailtunnel.eu/$repo/os/$arch +Server = https://pkg.adfinis.com/archlinux/$repo/os/$arch Server = http://mirror.f4st.host/archlinux/$repo/os/$arch +Server = https://mirror.sunred.org/archlinux/$repo/os/$arch +Server = http://mirror.sunred.org/archlinux/$repo/os/$arch +Server = https://archlinux.mailtunnel.eu/$repo/os/$arch +Server = http://pkg.adfinis.com/archlinux/$repo/os/$arch +Server = https://archlinux.thaller.ws/$repo/os/$arch +Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch +Server = http://archlinux.thaller.ws/$repo/os/$arch +Server = https://mirror.moson.org/arch/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch +Server = https://mirror.f4st.host/archlinux/$repo/os/$arch +Server = rsync://sync.mirror.sunred.org/archlinux/$repo/os/$arch +Server = rsync://archlinux.thaller.ws/archlinux/$repo/os/$arch +Server = rsync://pkg.adfinis.com/archlinux/$repo/os/$arch +Server = rsync://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = rsync://archlinux.mailtunnel.eu/archlinux/$repo/os/$arch Server = rsync://mirror.f4st.host/archlinux/$repo/os/$arch diff --git a/Melawy-Linux-NetInstall/airootfs/etc/sddm.conf.d/kde_settings.conf b/Melawy-Linux-NetInstall/airootfs/etc/sddm.conf.d/kde_settings.conf index 970c182..28d570a 100644 --- a/Melawy-Linux-NetInstall/airootfs/etc/sddm.conf.d/kde_settings.conf +++ b/Melawy-Linux-NetInstall/airootfs/etc/sddm.conf.d/kde_settings.conf @@ -1,7 +1,7 @@ [Autologin] Relogin=false -User= Session=plasma +User= [General] HaltCommand=/usr/bin/systemctl poweroff diff --git a/Melawy-Linux-NetInstall/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 0000000..0e9ceb4 --- /dev/null +++ b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-ethernet.network b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-ethernet.network index ce8de1f..81249b9 100644 --- a/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-ethernet.network +++ b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-ethernet.network @@ -5,6 +5,9 @@ Name=en* Name=eth* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes MulticastDNS=yes diff --git a/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wlan.network b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wlan.network index e5990bf..e49d714 100644 --- a/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wlan.network +++ b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wlan.network @@ -1,6 +1,9 @@ [Match] Name=wl* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes MulticastDNS=yes diff --git a/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wwan.network b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wwan.network index 9104c24..ae94e78 100644 --- a/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wwan.network +++ b/Melawy-Linux-NetInstall/airootfs/etc/systemd/network/20-wwan.network @@ -1,6 +1,9 @@ [Match] Name=ww* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes IPv6PrivacyExtensions=yes diff --git a/Melawy-Linux-NetInstall/airootfs/usr/local/bin/choose-mirror b/Melawy-Linux-NetInstall/airootfs/usr/local/bin/choose-mirror index b021945..d2349de 100755 --- a/Melawy-Linux-NetInstall/airootfs/usr/local/bin/choose-mirror +++ b/Melawy-Linux-NetInstall/airootfs/usr/local/bin/choose-mirror @@ -4,21 +4,22 @@ get_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(/etc/pacman.d/mirrorlist << EOF +cat >/etc/pacman.d/mirrorlist < # $2 # $3 -unmute_and_set_level(){ - { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout +unmute_and_set_level() { + [[ -n "$3" && -n "$2" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute return 0 @@ -42,9 +41,8 @@ unmute_and_set_level(){ # $1 # $2 -mute_and_zero_level() -{ - { [ "$1" ] && [ "$2" ] ; } || bugout +mute_and_zero_level() { + [[ -n "$1" && -n "$2" ]] || bugout systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute return 0 @@ -53,17 +51,15 @@ mute_and_zero_level() # $1 # $2 # $3 "on" | "off" -switch_control() -{ - { [ "$3" ] && [ "$1" ] ; } || bugout +switch_control() { + [[ -n "$3" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" return 0 } # $1 -sanify_levels_on_card() -{ +sanify_levels_on_card() { unmute_and_set_level "$1" "Front" "80%" unmute_and_set_level "$1" "Master" "80%" unmute_and_set_level "$1" "Master Mono" "80%" @@ -134,94 +130,89 @@ sanify_levels_on_card() } # $1 | "all" -sanify_levels() -{ +sanify_levels() { local ttsdml_returnstatus=0 local card case "$1" in - all) - for card in $(echo_card_indices) ; do - sanify_levels_on_card "$card" || ttsdml_returnstatus=1 - done - ;; - *) - sanify_levels_on_card "$1" || ttsdml_returnstatus=1 - ;; + all) + for card in $(echo_card_indices); do + sanify_levels_on_card "$card" || ttsdml_returnstatus=1 + done + ;; + *) + sanify_levels_on_card "$1" || ttsdml_returnstatus=1 + ;; esac - return $ttsdml_returnstatus + return "$ttsdml_returnstatus" } # List all cards that *should* be usable for PCM audio. In my experience, # the console speaker (handled by the pcsp driver) isn't a suitable playback # device, so we'll exclude it. -list_non_pcsp_cards() -{ +list_non_pcsp_cards() { for card in $(echo_card_indices); do local cardfile="/proc/asound/card${card}/id" - if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ - [ "$(cat "$cardfile")" != pcsp ]; then + if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then echo "$card" fi done } # Properly initialize the sound card so that we have audio at boot. -unmute_all_cards() -{ +unmute_all_cards() { sanify_levels all } is_numeric() { - local str=$1 + local str="$1" [[ "$str" =~ ^[0-9]+$ ]] } set_default_card() { - local card=$1 - sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ - > /etc/asound.conf + local card="$1" + sed -e "s/%card%/$card/g" /etc/asound.conf } play_on_card() { - local card=$1 file=$2 + local card="$1" file="$2" aplay -q "-Dplughw:$card,0" "$file" } # If there are multiple usable sound cards, prompt the user to choose one, # using auditory feedback. -pick_a_card() -{ +pick_a_card() { set -f usable_cards="$(list_non_pcsp_cards)" - num_usable_cards="$(wc -w <<< "$usable_cards")" + num_usable_cards="$(wc -w <<<"$usable_cards")" - if [ "$num_usable_cards" -eq 1 ]; then + if (( num_usable_cards == 1 )); then systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" exit 0 fi systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue fi - play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav & done wait sleep 1 - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue - fi - play_on_card "$card" /usr/share/livecd-sounds/beep.wav - if read -r -t 10; then - systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" - set_default_card "$card" - break - fi -done + fi + play_on_card "$card" /usr/share/livecd-sounds/beep.wav + if read -r -t 10; then + systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" + set_default_card "$card" + break + fi + done } -if [[ $# -eq 0 ]]; then +if (( $# == 0 )); then echo "error: No argument passed." exit 1 fi diff --git a/Melawy-Linux-NetInstall/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/Melawy-Linux-NetInstall/efiboot/loader/entries/01-archiso-x86_64-linux.conf index 9dd05f3..34e732b 100644 --- a/Melawy-Linux-NetInstall/efiboot/loader/entries/01-archiso-x86_64-linux.conf +++ b/Melawy-Linux-NetInstall/efiboot/loader/entries/01-archiso-x86_64-linux.conf @@ -1,7 +1,7 @@ -title Melawy Linux x86_64 UEFI Default +title Melawy Linux install medium x86_64 UEFI Default sort-key 01 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-NetInstall/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf b/Melawy-Linux-NetInstall/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf index a807af7..b12aa2c 100644 --- a/Melawy-Linux-NetInstall/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf +++ b/Melawy-Linux-NetInstall/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf @@ -1,7 +1,7 @@ -title Melawy Linux x86_64 UEFI NVIDIA (latest cards only) +title Melawy Linux install medium x86_64 UEFI NVIDIA (latest cards only) sort-key 02 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-NetInstall/efiboot/loader/entries/03-archiso-x86_64-efi.conf b/Melawy-Linux-NetInstall/efiboot/loader/entries/03-archiso-x86_64-efi.conf index f672209..95ec9c0 100644 --- a/Melawy-Linux-NetInstall/efiboot/loader/entries/03-archiso-x86_64-efi.conf +++ b/Melawy-Linux-NetInstall/efiboot/loader/entries/03-archiso-x86_64-efi.conf @@ -1,4 +1,4 @@ -title Melawy Linux x86_64 UEFI EFI Default +title Melawy Linux install medium x86_64 UEFI EFI Default sort-key 03 efi /%INSTALL_DIR%/boot/x86_64/linux-cachyos.efi -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-NetInstall/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf b/Melawy-Linux-NetInstall/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf index ffd3a44..36c955d 100644 --- a/Melawy-Linux-NetInstall/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf +++ b/Melawy-Linux-NetInstall/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf @@ -1,4 +1,4 @@ -title Melawy Linux x86_64 UEFI EFI NVIDIA (latest cards only) +title Melawy Linux install medium x86_64 UEFI EFI NVIDIA (latest cards only) sort-key 04 efi /%INSTALL_DIR%/boot/x86_64/linux-cachyos.efi -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-NetInstall/grub/grub.cfg b/Melawy-Linux-NetInstall/grub/grub.cfg index 8e38559..cc18cab 100644 --- a/Melawy-Linux-NetInstall/grub/grub.cfg +++ b/Melawy-Linux-NetInstall/grub/grub.cfg @@ -12,12 +12,18 @@ insmod udf insmod all_video insmod font if loadfont "${prefix}/fonts/unicode.pf2" ; then + insmod all_video set gfxmode="auto" terminal_input console terminal_output console fi # Enable serial console +insmod serial +insmod usbserial_common +insmod usbserial_ftdi +insmod usbserial_pl2303 +insmod usbserial_usbdebug if serial --unit=0 --speed=115200; then terminal_input --append serial terminal_output --append serial @@ -32,41 +38,62 @@ if [ -z "${ARCHISO_UUID}" ]; then probe --set ARCHISO_UUID --fs-uuid "${root}" fi +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + archiso_platform="x64 ${archiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + archiso_platform="IA32 ${archiso_platform}" + else + archiso_platform="${grub_cpu} ${archiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu} ${grub_platform}" +fi + # Set default menu entry default="Melawy Linux" timeout=15 timeout_style=menu -# GRUB init tune for accessibility -play 600 988 1 1319 4 # Menu entries -menuentry "Melawy Linux install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' { +menuentry "Melawy Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img } -menuentry "Melawy Linux install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' { +menuentry "Melawy Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img } -if [ "${grub_platform}" == "efi" ]; then - if [ "${grub_cpu}" == "x86_64" ]; then - menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class gnu --class tool { - set gfxpayload=800x600,1024x768 - linux /boot/memtest86+/memtest.efi - } - menuentry "UEFI Shell" { - insmod chain + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { chainloader /shellx64.efi } - elif [ "${grub_cpu}" == "i386" ]; then - menuentry "UEFI Shell" { - insmod chain + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { chainloader /shellia32.efi } fi @@ -76,12 +103,16 @@ if [ "${grub_platform}" == "efi" ]; then } fi -menuentry "System restart" --class reboot --class restart { - echo "System rebooting..." +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' reboot } -menuentry "System shutdown" --class shutdown --class poweroff { - echo "System shutting down..." - halt -} + +# GRUB init tune for accessibility +play 600 988 1 1319 4 diff --git a/Melawy-Linux-NetInstall/grub/loopback.cfg b/Melawy-Linux-NetInstall/grub/loopback.cfg new file mode 100644 index 0000000..d64e3da --- /dev/null +++ b/Melawy-Linux-NetInstall/grub/loopback.cfg @@ -0,0 +1,80 @@ +# https://www.supergrubdisk.org/wiki/Loopback.cfg + +# Search for the ISO volume +search --no-floppy --set=archiso_img_dev --file "${iso_path}" +probe --set archiso_img_dev_uuid --fs-uuid "${archiso_img_dev}" + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + archiso_platform="x64 ${archiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + archiso_platform="IA32 ${archiso_platform}" + else + archiso_platform="${grub_cpu} ${archiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu} ${grub_platform}" +fi + +# Set default menu entry +default="Melawy Linux" +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "Melawy Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memma + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img +} + +menuentry "Melawy Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap accessibility=on + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img +} + + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot +} diff --git a/Melawy-Linux-NetInstall/mkarchiso_last_my b/Melawy-Linux-NetInstall/mkarchiso_last_my index 5da3ce5..ff1b2fc 100755 --- a/Melawy-Linux-NetInstall/mkarchiso_last_my +++ b/Melawy-Linux-NetInstall/mkarchiso_last_my @@ -862,7 +862,7 @@ _make_common_bootmode_systemd-boot() { efiboot_files+=("${pacstrap_dir}/usr/lib/systemd/boot/efi/systemd-bootia32.efi" "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi") fi - efiboot_files+=("${profile}/efiboot/" + efiboot_files+=("${work_dir}/loader/" "${pacstrap_dir}/boot/vmlinuz-"* "${pacstrap_dir}/boot/initramfs-"*".img" "${pacstrap_dir}/boot/linux-"* @@ -872,39 +872,39 @@ _make_common_bootmode_systemd-boot() { _make_efibootimg "$efiboot_imgsize" } -_make_common_bootmode_systemd-boot_conf.isofs() { +_make_common_bootmode_systemd-boot_conf() { local _conf - # Copy systemd-boot configuration files - install -d -m 0755 -- "${isofs_dir}/loader/entries" - install -m 0644 -- "${profile}/efiboot/loader/loader.conf" "${isofs_dir}/loader/" - for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do - sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g; - s|%ARCH%|${arch}|g" \ - "${_conf}" >"${isofs_dir}/loader/entries/${_conf##*/}" - done -} + install -d -m 0755 -- "${work_dir}/loader" "${work_dir}/loader/entries" -_make_common_bootmode_systemd-boot_conf.esp() { - local _conf - - # Copy systemd-boot configuration files - mmd -i "${efibootimg}" ::/loader ::/loader/entries - mcopy -i "${efibootimg}" "${profile}/efiboot/loader/loader.conf" ::/loader/ + install -m 0644 -- "${profile}/efiboot/loader/loader.conf" "${work_dir}/loader" for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%ARCHISO_UUID%|${iso_uuid}|g; s|%INSTALL_DIR%|${install_dir}|g; s|%ARCH%|${arch}|g" \ - "${_conf}" | mcopy -i "${efibootimg}" - "::/loader/entries/${_conf##*/}" + "${_conf}" >"${work_dir}/loader/entries/${_conf##*/}" done } +# Copy systemd-boot configuration files to ISO 9660 +_make_common_bootmode_systemd-boot_conf.isofs() { + cp -r --remove-destination -- "${work_dir}/loader" "${isofs_dir}/" +} + +# Copy systemd-boot configuration files to FAT image +_make_common_bootmode_systemd-boot_conf.esp() { + mcopy -i "${efibootimg}" -s "${work_dir}/loader" ::/ +} + # Prepare systemd-boot for booting when written to a disk (isohybrid) _make_bootmode_uefi-x64.systemd-boot.esp() { _msg_info "Setting up systemd-boot for x64 UEFI booting..." + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + + # Prepare a FAT image for the EFI system partition _run_once _make_common_bootmode_systemd-boot # Copy systemd-boot EFI binary to the default/fallback boot path @@ -929,6 +929,9 @@ _make_bootmode_uefi-x64.systemd-boot.esp() { # Prepare systemd-boot for El Torito booting _make_bootmode_uefi-x64.systemd-boot.eltorito() { + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + # El Torito UEFI boot requires an image containing the EFI system partition. # uefi-x64.systemd-boot.eltorito has the same requirements as uefi-x64.systemd-boot.esp _run_once _make_bootmode_uefi-x64.systemd-boot.esp @@ -958,6 +961,10 @@ _make_bootmode_uefi-x64.systemd-boot.eltorito() { _make_bootmode_uefi-ia32.systemd-boot.esp() { _msg_info "Setting up systemd-boot for IA32 UEFI booting..." + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + + # Prepare a FAT image for the EFI system partition _run_once _make_common_bootmode_systemd-boot # Copy systemd-boot EFI binary to the default/fallback boot path @@ -981,6 +988,9 @@ _make_bootmode_uefi-ia32.systemd-boot.esp() { } _make_bootmode_uefi-ia32.systemd-boot.eltorito() { + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + # El Torito UEFI boot requires an image containing the EFI system partition. # uefi-ia32.systemd-boot.eltorito has the same requirements as uefi-ia32.systemd-boot.esp _run_once _make_bootmode_uefi-ia32.systemd-boot.esp diff --git a/Melawy-Linux-NetInstall/netinstall.yaml b/Melawy-Linux-NetInstall/netinstall.yaml index cfaf84b..ba24508 100644 --- a/Melawy-Linux-NetInstall/netinstall.yaml +++ b/Melawy-Linux-NetInstall/netinstall.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-NetInstall/netinstall_min.yaml b/Melawy-Linux-NetInstall/netinstall_min.yaml index 587b7bc..7c24f15 100644 --- a/Melawy-Linux-NetInstall/netinstall_min.yaml +++ b/Melawy-Linux-NetInstall/netinstall_min.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-NetInstall/netinstall_netinstall.yaml b/Melawy-Linux-NetInstall/netinstall_netinstall.yaml index 0dc0aca..a9c5c7f 100644 --- a/Melawy-Linux-NetInstall/netinstall_netinstall.yaml +++ b/Melawy-Linux-NetInstall/netinstall_netinstall.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-NetInstall/netinstall_tiny.yaml b/Melawy-Linux-NetInstall/netinstall_tiny.yaml index 0dc0aca..a9c5c7f 100644 --- a/Melawy-Linux-NetInstall/netinstall_tiny.yaml +++ b/Melawy-Linux-NetInstall/netinstall_tiny.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Tiny/airootfs/etc/mkinitcpio.conf b/Melawy-Linux-Tiny/airootfs/etc/mkinitcpio.conf index 623313c..e49f5c1 100644 --- a/Melawy-Linux-Tiny/airootfs/etc/mkinitcpio.conf +++ b/Melawy-Linux-Tiny/airootfs/etc/mkinitcpio.conf @@ -58,10 +58,10 @@ HOOKS=(base udev modconf kms sd-vconsole memdisk archiso archiso_loop_mnt archis #COMPRESSION="gzip" #COMPRESSION="bzip2" #COMPRESSION="lzma" -#COMPRESSION="xz" +COMPRESSION="xz" #COMPRESSION="lzop" #COMPRESSION="lz4" -COMPRESSION="zstd" +#COMPRESSION="zstd" # COMPRESSION_OPTIONS # Additional options for the compressor diff --git a/Melawy-Linux-Tiny/airootfs/etc/pacman.d/mirrorlist b/Melawy-Linux-Tiny/airootfs/etc/pacman.d/mirrorlist index 48a09ed..bf4b8a5 100644 --- a/Melawy-Linux-Tiny/airootfs/etc/pacman.d/mirrorlist +++ b/Melawy-Linux-Tiny/airootfs/etc/pacman.d/mirrorlist @@ -3,28 +3,28 @@ ################################################################################ # With: reflector @/etc/xdg/reflector/reflector.conf -# When: 2023-12-19 05:14:30 UTC +# When: 2023-12-23 11:39:24 UTC # From: https://archlinux.org/mirrors/status/json/ -# Retrieved: 2023-12-19 05:13:06 UTC -# Last Check: 2023-12-19 05:01:52 UTC +# Retrieved: 2023-12-23 11:38:53 UTC +# Last Check: 2023-12-23 11:12:26 UTC -Server = http://archlinux.thaller.ws/$repo/os/$arch -Server = https://archlinux.thaller.ws/$repo/os/$arch -Server = rsync://archlinux.mailtunnel.eu/archlinux/$repo/os/$arch -Server = https://mirror.f4st.host/archlinux/$repo/os/$arch -Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch -Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch -Server = https://de.arch.mirror.kescher.at/$repo/os/$arch -Server = rsync://de.arch.mirror.kescher.at/mirror/arch/$repo/os/$arch -Server = http://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = rsync://mirror.theo546.fr/archlinux/$repo/os/$arch -Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch -Server = http://arch.sakamoto.pl/$repo/os/$arch -Server = https://arch.sakamoto.pl/$repo/os/$arch -Server = rsync://archlinux.thaller.ws/archlinux/$repo/os/$arch -Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch -Server = rsync://mirror.ubrco.de/archlinux/$repo/os/$arch -Server = http://archlinux.mailtunnel.eu/$repo/os/$arch +Server = https://pkg.adfinis.com/archlinux/$repo/os/$arch Server = http://mirror.f4st.host/archlinux/$repo/os/$arch +Server = https://mirror.sunred.org/archlinux/$repo/os/$arch +Server = http://mirror.sunred.org/archlinux/$repo/os/$arch +Server = https://archlinux.mailtunnel.eu/$repo/os/$arch +Server = http://pkg.adfinis.com/archlinux/$repo/os/$arch +Server = https://archlinux.thaller.ws/$repo/os/$arch +Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch +Server = http://archlinux.thaller.ws/$repo/os/$arch +Server = https://mirror.moson.org/arch/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch +Server = https://mirror.f4st.host/archlinux/$repo/os/$arch +Server = rsync://sync.mirror.sunred.org/archlinux/$repo/os/$arch +Server = rsync://archlinux.thaller.ws/archlinux/$repo/os/$arch +Server = rsync://pkg.adfinis.com/archlinux/$repo/os/$arch +Server = rsync://mirror.ubrco.de/archlinux/$repo/os/$arch +Server = rsync://archlinux.mailtunnel.eu/archlinux/$repo/os/$arch Server = rsync://mirror.f4st.host/archlinux/$repo/os/$arch diff --git a/Melawy-Linux-Tiny/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/Melawy-Linux-Tiny/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 0000000..0e9ceb4 --- /dev/null +++ b/Melawy-Linux-Tiny/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-ethernet.network b/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-ethernet.network index ce8de1f..81249b9 100644 --- a/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-ethernet.network +++ b/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-ethernet.network @@ -5,6 +5,9 @@ Name=en* Name=eth* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes MulticastDNS=yes diff --git a/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wlan.network b/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wlan.network index e5990bf..e49d714 100644 --- a/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wlan.network +++ b/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wlan.network @@ -1,6 +1,9 @@ [Match] Name=wl* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes MulticastDNS=yes diff --git a/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wwan.network b/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wwan.network index 9104c24..ae94e78 100644 --- a/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wwan.network +++ b/Melawy-Linux-Tiny/airootfs/etc/systemd/network/20-wwan.network @@ -1,6 +1,9 @@ [Match] Name=ww* +[Link] +RequiredForOnline=routable + [Network] DHCP=yes IPv6PrivacyExtensions=yes diff --git a/Melawy-Linux-Tiny/airootfs/usr/local/bin/choose-mirror b/Melawy-Linux-Tiny/airootfs/usr/local/bin/choose-mirror index b021945..d2349de 100755 --- a/Melawy-Linux-Tiny/airootfs/usr/local/bin/choose-mirror +++ b/Melawy-Linux-Tiny/airootfs/usr/local/bin/choose-mirror @@ -4,21 +4,22 @@ get_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(/etc/pacman.d/mirrorlist << EOF +cat >/etc/pacman.d/mirrorlist < # $2 # $3 -unmute_and_set_level(){ - { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout +unmute_and_set_level() { + [[ -n "$3" && -n "$2" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute return 0 @@ -42,9 +41,8 @@ unmute_and_set_level(){ # $1 # $2 -mute_and_zero_level() -{ - { [ "$1" ] && [ "$2" ] ; } || bugout +mute_and_zero_level() { + [[ -n "$1" && -n "$2" ]] || bugout systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute return 0 @@ -53,17 +51,15 @@ mute_and_zero_level() # $1 # $2 # $3 "on" | "off" -switch_control() -{ - { [ "$3" ] && [ "$1" ] ; } || bugout +switch_control() { + [[ -n "$3" && -n "$1" ]] || bugout systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3" systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" return 0 } # $1 -sanify_levels_on_card() -{ +sanify_levels_on_card() { unmute_and_set_level "$1" "Front" "80%" unmute_and_set_level "$1" "Master" "80%" unmute_and_set_level "$1" "Master Mono" "80%" @@ -134,94 +130,89 @@ sanify_levels_on_card() } # $1 | "all" -sanify_levels() -{ +sanify_levels() { local ttsdml_returnstatus=0 local card case "$1" in - all) - for card in $(echo_card_indices) ; do - sanify_levels_on_card "$card" || ttsdml_returnstatus=1 - done - ;; - *) - sanify_levels_on_card "$1" || ttsdml_returnstatus=1 - ;; + all) + for card in $(echo_card_indices); do + sanify_levels_on_card "$card" || ttsdml_returnstatus=1 + done + ;; + *) + sanify_levels_on_card "$1" || ttsdml_returnstatus=1 + ;; esac - return $ttsdml_returnstatus + return "$ttsdml_returnstatus" } # List all cards that *should* be usable for PCM audio. In my experience, # the console speaker (handled by the pcsp driver) isn't a suitable playback # device, so we'll exclude it. -list_non_pcsp_cards() -{ +list_non_pcsp_cards() { for card in $(echo_card_indices); do local cardfile="/proc/asound/card${card}/id" - if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \ - [ "$(cat "$cardfile")" != pcsp ]; then + if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then echo "$card" fi done } # Properly initialize the sound card so that we have audio at boot. -unmute_all_cards() -{ +unmute_all_cards() { sanify_levels all } is_numeric() { - local str=$1 + local str="$1" [[ "$str" =~ ^[0-9]+$ ]] } set_default_card() { - local card=$1 - sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \ - > /etc/asound.conf + local card="$1" + sed -e "s/%card%/$card/g" /etc/asound.conf } play_on_card() { - local card=$1 file=$2 + local card="$1" file="$2" aplay -q "-Dplughw:$card,0" "$file" } # If there are multiple usable sound cards, prompt the user to choose one, # using auditory feedback. -pick_a_card() -{ +pick_a_card() { set -f usable_cards="$(list_non_pcsp_cards)" - num_usable_cards="$(wc -w <<< "$usable_cards")" + num_usable_cards="$(wc -w <<<"$usable_cards")" - if [ "$num_usable_cards" -eq 1 ]; then + if (( num_usable_cards == 1 )); then systemd-cat -t "livecdsound" printf "Only one sound card is detected\n" exit 0 fi systemd-cat -t "livecdsound" printf "multiple sound cards detected\n" - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue fi - play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav & done wait sleep 1 - for card in $usable_cards; do + for card in "${usable_cards[@]}"; do if ! is_numeric "$card"; then continue - fi - play_on_card "$card" /usr/share/livecd-sounds/beep.wav - if read -r -t 10; then - systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" - set_default_card "$card" - break - fi -done + fi + play_on_card "$card" /usr/share/livecd-sounds/beep.wav + if read -r -t 10; then + systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card" + set_default_card "$card" + break + fi + done } -if [[ $# -eq 0 ]]; then +if (( $# == 0 )); then echo "error: No argument passed." exit 1 fi diff --git a/Melawy-Linux-Tiny/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/Melawy-Linux-Tiny/efiboot/loader/entries/01-archiso-x86_64-linux.conf index 9dd05f3..34e732b 100644 --- a/Melawy-Linux-Tiny/efiboot/loader/entries/01-archiso-x86_64-linux.conf +++ b/Melawy-Linux-Tiny/efiboot/loader/entries/01-archiso-x86_64-linux.conf @@ -1,7 +1,7 @@ -title Melawy Linux x86_64 UEFI Default +title Melawy Linux install medium x86_64 UEFI Default sort-key 01 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Tiny/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf b/Melawy-Linux-Tiny/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf index a807af7..b12aa2c 100644 --- a/Melawy-Linux-Tiny/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf +++ b/Melawy-Linux-Tiny/efiboot/loader/entries/02-archiso-x86_64-linux-nv.conf @@ -1,7 +1,7 @@ -title Melawy Linux x86_64 UEFI NVIDIA (latest cards only) +title Melawy Linux install medium x86_64 UEFI NVIDIA (latest cards only) sort-key 02 linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos initrd /%INSTALL_DIR%/boot/intel-ucode.img initrd /%INSTALL_DIR%/boot/amd-ucode.img initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Tiny/efiboot/loader/entries/03-archiso-x86_64-efi.conf b/Melawy-Linux-Tiny/efiboot/loader/entries/03-archiso-x86_64-efi.conf index f672209..95ec9c0 100644 --- a/Melawy-Linux-Tiny/efiboot/loader/entries/03-archiso-x86_64-efi.conf +++ b/Melawy-Linux-Tiny/efiboot/loader/entries/03-archiso-x86_64-efi.conf @@ -1,4 +1,4 @@ -title Melawy Linux x86_64 UEFI EFI Default +title Melawy Linux install medium x86_64 UEFI EFI Default sort-key 03 efi /%INSTALL_DIR%/boot/x86_64/linux-cachyos.efi -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n module_blacklist=nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm,pcspkr nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 nvme_load=yes quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Tiny/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf b/Melawy-Linux-Tiny/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf index ffd3a44..36c955d 100644 --- a/Melawy-Linux-Tiny/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf +++ b/Melawy-Linux-Tiny/efiboot/loader/entries/04-archiso-x86_64-efi-nv.conf @@ -1,4 +1,4 @@ -title Melawy Linux x86_64 UEFI EFI NVIDIA (latest cards only) +title Melawy Linux install medium x86_64 UEFI EFI NVIDIA (latest cards only) sort-key 04 efi /%INSTALL_DIR%/boot/x86_64/linux-cachyos.efi -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% cow_spacesize=10G copytoram=n nvidia nvidia-drm.modeset=1 nouveau.modeset=0 i915.modeset=1 radeon.modeset=1 nvme_load=yes module_blacklist=pcspkr quiet splash bgrt_disable add_efi_memmap diff --git a/Melawy-Linux-Tiny/grub/grub.cfg b/Melawy-Linux-Tiny/grub/grub.cfg index 8e38559..cc18cab 100644 --- a/Melawy-Linux-Tiny/grub/grub.cfg +++ b/Melawy-Linux-Tiny/grub/grub.cfg @@ -12,12 +12,18 @@ insmod udf insmod all_video insmod font if loadfont "${prefix}/fonts/unicode.pf2" ; then + insmod all_video set gfxmode="auto" terminal_input console terminal_output console fi # Enable serial console +insmod serial +insmod usbserial_common +insmod usbserial_ftdi +insmod usbserial_pl2303 +insmod usbserial_usbdebug if serial --unit=0 --speed=115200; then terminal_input --append serial terminal_output --append serial @@ -32,41 +38,62 @@ if [ -z "${ARCHISO_UUID}" ]; then probe --set ARCHISO_UUID --fs-uuid "${root}" fi +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + archiso_platform="x64 ${archiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + archiso_platform="IA32 ${archiso_platform}" + else + archiso_platform="${grub_cpu} ${archiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu} ${grub_platform}" +fi + # Set default menu entry default="Melawy Linux" timeout=15 timeout_style=menu -# GRUB init tune for accessibility -play 600 988 1 1319 4 # Menu entries -menuentry "Melawy Linux install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' { +menuentry "Melawy Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'Melawy Linux' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img } -menuentry "Melawy Linux install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' { +menuentry "Melawy Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'Melawy-accessibility' { set gfxpayload=keep - linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap - initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux-cachyos.img + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-cachyos archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img } -if [ "${grub_platform}" == "efi" ]; then - if [ "${grub_cpu}" == "x86_64" ]; then - menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class gnu --class tool { - set gfxpayload=800x600,1024x768 - linux /boot/memtest86+/memtest.efi - } - menuentry "UEFI Shell" { - insmod chain + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { chainloader /shellx64.efi } - elif [ "${grub_cpu}" == "i386" ]; then - menuentry "UEFI Shell" { - insmod chain + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { chainloader /shellia32.efi } fi @@ -76,12 +103,16 @@ if [ "${grub_platform}" == "efi" ]; then } fi -menuentry "System restart" --class reboot --class restart { - echo "System rebooting..." +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' reboot } -menuentry "System shutdown" --class shutdown --class poweroff { - echo "System shutting down..." - halt -} + +# GRUB init tune for accessibility +play 600 988 1 1319 4 diff --git a/Melawy-Linux-Tiny/grub/loopback.cfg b/Melawy-Linux-Tiny/grub/loopback.cfg new file mode 100644 index 0000000..d64e3da --- /dev/null +++ b/Melawy-Linux-Tiny/grub/loopback.cfg @@ -0,0 +1,80 @@ +# https://www.supergrubdisk.org/wiki/Loopback.cfg + +# Search for the ISO volume +search --no-floppy --set=archiso_img_dev --file "${iso_path}" +probe --set archiso_img_dev_uuid --fs-uuid "${archiso_img_dev}" + +# Get a human readable platform identifier +if [ "${grub_platform}" == 'efi' ]; then + archiso_platform='UEFI' + if [ "${grub_cpu}" == 'x86_64' ]; then + archiso_platform="x64 ${archiso_platform}" + elif [ "${grub_cpu}" == 'i386' ]; then + archiso_platform="IA32 ${archiso_platform}" + else + archiso_platform="${grub_cpu} ${archiso_platform}" + fi +elif [ "${grub_platform}" == 'pc' ]; then + archiso_platform='BIOS' +else + archiso_platform="${grub_cpu} ${grub_platform}" +fi + +# Set default menu entry +default="Melawy Linux" +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "Melawy Linux install medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memma + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img +} + +menuentry "Melawy Linux install medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% img_dev=UUID=${archiso_img_dev_uuid} img_loop="${iso_path}" cow_spacesize=10G copytoram=n quiet splash bgrt_disable add_efi_memmap accessibility=on + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-cachyos.img +} + + +if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest.efi + } +fi +if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then + menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool { + set gfxpayload=800x600,1024x768 + linux /boot/memtest86+/memtest + } +fi +if [ "${grub_platform}" == 'efi' ]; then + if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then + menuentry 'UEFI Shell' --class efi { + chainloader /shellia32.efi + } + fi + + menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' { + fwsetup + } +fi + +menuentry 'System shutdown' --class shutdown --class poweroff { + echo 'System shutting down...' + halt +} + +menuentry 'System restart' --class reboot --class restart { + echo 'System rebooting...' + reboot +} diff --git a/Melawy-Linux-Tiny/mkarchiso_last_my b/Melawy-Linux-Tiny/mkarchiso_last_my index 5da3ce5..ff1b2fc 100755 --- a/Melawy-Linux-Tiny/mkarchiso_last_my +++ b/Melawy-Linux-Tiny/mkarchiso_last_my @@ -862,7 +862,7 @@ _make_common_bootmode_systemd-boot() { efiboot_files+=("${pacstrap_dir}/usr/lib/systemd/boot/efi/systemd-bootia32.efi" "${pacstrap_dir}/usr/share/edk2-shell/ia32/Shell_Full.efi") fi - efiboot_files+=("${profile}/efiboot/" + efiboot_files+=("${work_dir}/loader/" "${pacstrap_dir}/boot/vmlinuz-"* "${pacstrap_dir}/boot/initramfs-"*".img" "${pacstrap_dir}/boot/linux-"* @@ -872,39 +872,39 @@ _make_common_bootmode_systemd-boot() { _make_efibootimg "$efiboot_imgsize" } -_make_common_bootmode_systemd-boot_conf.isofs() { +_make_common_bootmode_systemd-boot_conf() { local _conf - # Copy systemd-boot configuration files - install -d -m 0755 -- "${isofs_dir}/loader/entries" - install -m 0644 -- "${profile}/efiboot/loader/loader.conf" "${isofs_dir}/loader/" - for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do - sed "s|%ARCHISO_LABEL%|${iso_label}|g; - s|%INSTALL_DIR%|${install_dir}|g; - s|%ARCH%|${arch}|g" \ - "${_conf}" >"${isofs_dir}/loader/entries/${_conf##*/}" - done -} + install -d -m 0755 -- "${work_dir}/loader" "${work_dir}/loader/entries" -_make_common_bootmode_systemd-boot_conf.esp() { - local _conf - - # Copy systemd-boot configuration files - mmd -i "${efibootimg}" ::/loader ::/loader/entries - mcopy -i "${efibootimg}" "${profile}/efiboot/loader/loader.conf" ::/loader/ + install -m 0644 -- "${profile}/efiboot/loader/loader.conf" "${work_dir}/loader" for _conf in "${profile}/efiboot/loader/entries/"*".conf"; do sed "s|%ARCHISO_LABEL%|${iso_label}|g; s|%ARCHISO_UUID%|${iso_uuid}|g; s|%INSTALL_DIR%|${install_dir}|g; s|%ARCH%|${arch}|g" \ - "${_conf}" | mcopy -i "${efibootimg}" - "::/loader/entries/${_conf##*/}" + "${_conf}" >"${work_dir}/loader/entries/${_conf##*/}" done } +# Copy systemd-boot configuration files to ISO 9660 +_make_common_bootmode_systemd-boot_conf.isofs() { + cp -r --remove-destination -- "${work_dir}/loader" "${isofs_dir}/" +} + +# Copy systemd-boot configuration files to FAT image +_make_common_bootmode_systemd-boot_conf.esp() { + mcopy -i "${efibootimg}" -s "${work_dir}/loader" ::/ +} + # Prepare systemd-boot for booting when written to a disk (isohybrid) _make_bootmode_uefi-x64.systemd-boot.esp() { _msg_info "Setting up systemd-boot for x64 UEFI booting..." + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + + # Prepare a FAT image for the EFI system partition _run_once _make_common_bootmode_systemd-boot # Copy systemd-boot EFI binary to the default/fallback boot path @@ -929,6 +929,9 @@ _make_bootmode_uefi-x64.systemd-boot.esp() { # Prepare systemd-boot for El Torito booting _make_bootmode_uefi-x64.systemd-boot.eltorito() { + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + # El Torito UEFI boot requires an image containing the EFI system partition. # uefi-x64.systemd-boot.eltorito has the same requirements as uefi-x64.systemd-boot.esp _run_once _make_bootmode_uefi-x64.systemd-boot.esp @@ -958,6 +961,10 @@ _make_bootmode_uefi-x64.systemd-boot.eltorito() { _make_bootmode_uefi-ia32.systemd-boot.esp() { _msg_info "Setting up systemd-boot for IA32 UEFI booting..." + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + + # Prepare a FAT image for the EFI system partition _run_once _make_common_bootmode_systemd-boot # Copy systemd-boot EFI binary to the default/fallback boot path @@ -981,6 +988,9 @@ _make_bootmode_uefi-ia32.systemd-boot.esp() { } _make_bootmode_uefi-ia32.systemd-boot.eltorito() { + # Prepare configuration files + _run_once _make_common_bootmode_systemd-boot_conf + # El Torito UEFI boot requires an image containing the EFI system partition. # uefi-ia32.systemd-boot.eltorito has the same requirements as uefi-ia32.systemd-boot.esp _run_once _make_bootmode_uefi-ia32.systemd-boot.esp diff --git a/Melawy-Linux-Tiny/netinstall.yaml b/Melawy-Linux-Tiny/netinstall.yaml index cfaf84b..ba24508 100644 --- a/Melawy-Linux-Tiny/netinstall.yaml +++ b/Melawy-Linux-Tiny/netinstall.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Tiny/netinstall_min.yaml b/Melawy-Linux-Tiny/netinstall_min.yaml index 587b7bc..7c24f15 100644 --- a/Melawy-Linux-Tiny/netinstall_min.yaml +++ b/Melawy-Linux-Tiny/netinstall_min.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Tiny/netinstall_netinstall.yaml b/Melawy-Linux-Tiny/netinstall_netinstall.yaml index 0dc0aca..a9c5c7f 100644 --- a/Melawy-Linux-Tiny/netinstall_netinstall.yaml +++ b/Melawy-Linux-Tiny/netinstall_netinstall.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Tiny/netinstall_tiny.yaml b/Melawy-Linux-Tiny/netinstall_tiny.yaml index 0dc0aca..a9c5c7f 100644 --- a/Melawy-Linux-Tiny/netinstall_tiny.yaml +++ b/Melawy-Linux-Tiny/netinstall_tiny.yaml @@ -283,6 +283,7 @@ - vpnc - whois - wireguard-tools + - shadowsocks-electron-bin - wireless-regdb - wireless_tools - wpa_supplicant @@ -730,8 +731,8 @@ - ffmpeg-obs - audacious - elisa - - haruna - - mpv + # - haruna + # - mpv - name: "Picture editors (minimal) (full)" description: "Add the photo and picture editors" diff --git a/Melawy-Linux-Tiny/packages.x86_64 b/Melawy-Linux-Tiny/packages.x86_64 index 8eba692..892a9aa 100644 --- a/Melawy-Linux-Tiny/packages.x86_64 +++ b/Melawy-Linux-Tiny/packages.x86_64 @@ -230,6 +230,7 @@ openvpn ppp pptpclient rp-pppoe +shadowsocks-electron-bin systemd-resolvconf traceroute usb_modeswitch