mirror of
https://git.suyu.dev/suyu/suyu-os
synced 2024-11-21 06:26:11 -07:00
initial release
- use gamemode - rebranded bootloader to suyuOS - included lastest source code - include user suyu This project is officially made BUT NOT OFFICIALLY SUPPORTED
This commit is contained in:
commit
2dc0dcc04e
88 changed files with 1264 additions and 0 deletions
6
airootfs/etc/group
Normal file
6
airootfs/etc/group
Normal file
|
@ -0,0 +1,6 @@
|
|||
root:x:0:root
|
||||
adm:x:4:suyu
|
||||
wheel:x:10:suyu
|
||||
uucp:x:14:suyu
|
||||
suyu:x:1000:
|
||||
gamemode:x:968:suyu
|
2
airootfs/etc/gshadow
Normal file
2
airootfs/etc/gshadow
Normal file
|
@ -0,0 +1,2 @@
|
|||
root:!*::root
|
||||
suyu:!*::
|
1
airootfs/etc/hostname
Normal file
1
airootfs/etc/hostname
Normal file
|
@ -0,0 +1 @@
|
|||
archiso
|
1
airootfs/etc/locale.conf
Normal file
1
airootfs/etc/locale.conf
Normal file
|
@ -0,0 +1 @@
|
|||
LANG=C.UTF-8
|
1
airootfs/etc/localtime
Symbolic link
1
airootfs/etc/localtime
Symbolic link
|
@ -0,0 +1 @@
|
|||
/usr/share/zoneinfo/UTC
|
2
airootfs/etc/mkinitcpio.conf.d/archiso.conf
Normal file
2
airootfs/etc/mkinitcpio.conf.d/archiso.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
HOOKS=(base udev modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard)
|
||||
COMPRESSION="xz"
|
8
airootfs/etc/mkinitcpio.d/linux.preset
Normal file
8
airootfs/etc/mkinitcpio.d/linux.preset
Normal file
|
@ -0,0 +1,8 @@
|
|||
# mkinitcpio preset file for the 'linux' package on archiso
|
||||
|
||||
PRESETS=('archiso')
|
||||
|
||||
ALL_kver='/boot/vmlinuz-linux'
|
||||
archiso_config='/etc/mkinitcpio.conf.d/archiso.conf'
|
||||
|
||||
archiso_image="/boot/initramfs-linux.img"
|
7
airootfs/etc/modprobe.d/broadcom-wl.conf
Normal file
7
airootfs/etc/modprobe.d/broadcom-wl.conf
Normal file
|
@ -0,0 +1,7 @@
|
|||
# The broadcom-wl package requires some modules to be disabled in order to use
|
||||
# wl. Since the ISO image needs to cover many hardware cases, this file
|
||||
# overrides the default blacklist in /usr/lib/modprobe.d/
|
||||
#
|
||||
# If you need to use wl, you may need to delete this file, then `rmmod` any
|
||||
# already-loaded modules that are now blacklisted before proceeding to modprobe
|
||||
# wl itself.
|
11
airootfs/etc/motd
Normal file
11
airootfs/etc/motd
Normal file
|
@ -0,0 +1,11 @@
|
|||
To install [38;2;23;147;209mArch Linux[0m follow the installation guide:
|
||||
https://wiki.archlinux.org/title/Installation_guide
|
||||
|
||||
For Wi-Fi, authenticate to the wireless network using the [35miwctl[0m utility.
|
||||
For mobile broadband (WWAN) modems, connect with the [35mmmcli[0m utility.
|
||||
Ethernet, WLAN and WWAN interfaces using DHCP should work automatically.
|
||||
|
||||
After connecting to the internet, the installation guide can be accessed
|
||||
via the convenience script [35mInstallation_guide[0m.
|
||||
|
||||
[41m [41m [41m [40m [44m [40m [41m [46m [45m [41m [46m [43m [41m [44m [45m [40m [44m [40m [41m [44m [41m [41m [46m [42m [41m [44m [43m [41m [45m [40m [40m [44m [40m [41m [44m [42m [41m [46m [44m [41m [46m [47m [0m
|
9
airootfs/etc/os-release
Normal file
9
airootfs/etc/os-release
Normal file
|
@ -0,0 +1,9 @@
|
|||
NAME="suyuOS"
|
||||
PRETTY_NAME="suyuuOS"
|
||||
ID=suyuos
|
||||
ANSI_COLOR="38;2;23;147;209"
|
||||
HOME_URL="https://suyu.dev/"
|
||||
DOCUMENTATION_URL="https://git.suyu.dev/suyu/suyu/wiki"
|
||||
SUPPORT_URL="https://chat.suyu.dev/"
|
||||
BUG_REPORT_URL="https://git.suyu.dev/suyu/suyu/issues"
|
||||
VERSION="v0.0.1 ALPHA"
|
13
airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook
Normal file
13
airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook
Normal file
|
@ -0,0 +1,13 @@
|
|||
# remove from airootfs!
|
||||
[Trigger]
|
||||
Operation = Install
|
||||
Operation = Upgrade
|
||||
Type = Package
|
||||
Target = pacman-mirrorlist
|
||||
|
||||
[Action]
|
||||
Description = Uncommenting all mirrors in /etc/pacman.d/mirrorlist...
|
||||
When = PostTransaction
|
||||
Depends = pacman-mirrorlist
|
||||
Depends = sed
|
||||
Exec = /usr/bin/sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
|
|
@ -0,0 +1,18 @@
|
|||
# remove from airootfs!
|
||||
# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process.
|
||||
# If not, they would be used when pacstrap is run in the live environment.
|
||||
|
||||
[Trigger]
|
||||
Operation = Install
|
||||
Operation = Upgrade
|
||||
Operation = Remove
|
||||
Type = Package
|
||||
Target = *
|
||||
|
||||
[Action]
|
||||
Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build...
|
||||
When = PostTransaction
|
||||
Depends = sh
|
||||
Depends = coreutils
|
||||
Depends = grep
|
||||
Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)"
|
2
airootfs/etc/passwd
Normal file
2
airootfs/etc/passwd
Normal file
|
@ -0,0 +1,2 @@
|
|||
root:x:0:0:root:/root:/usr/bin/zsh
|
||||
suyu:x:1000:1000::/home/suyu:/usr/bin/zsh
|
1
airootfs/etc/resolv.conf
Symbolic link
1
airootfs/etc/resolv.conf
Symbolic link
|
@ -0,0 +1 @@
|
|||
/run/systemd/resolve/stub-resolv.conf
|
2
airootfs/etc/shadow
Normal file
2
airootfs/etc/shadow
Normal file
|
@ -0,0 +1,2 @@
|
|||
root::14871::::::
|
||||
suyu::14871::::::
|
3
airootfs/etc/ssh/sshd_config.d/10-archiso.conf
Normal file
3
airootfs/etc/ssh/sshd_config.d/10-archiso.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Allow root login using password authentication
|
||||
PasswordAuthentication yes
|
||||
PermitRootLogin yes
|
|
@ -0,0 +1,2 @@
|
|||
[Journal]
|
||||
Storage=volatile
|
4
airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf
Normal file
4
airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf
Normal file
|
@ -0,0 +1,4 @@
|
|||
[Login]
|
||||
HandleSuspendKey=ignore
|
||||
HandleHibernateKey=ignore
|
||||
HandleLidSwitch=ignore
|
|
@ -0,0 +1,2 @@
|
|||
[Network]
|
||||
IPv6PrivacyExtensions=yes
|
24
airootfs/etc/systemd/network/20-ethernet.network
Normal file
24
airootfs/etc/systemd/network/20-ethernet.network
Normal file
|
@ -0,0 +1,24 @@
|
|||
[Match]
|
||||
# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*).
|
||||
# See https://bugs.archlinux.org/task/70892
|
||||
# Instead match by globbing the network interface name.
|
||||
Name=en*
|
||||
Name=eth*
|
||||
|
||||
[Link]
|
||||
RequiredForOnline=routable
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
MulticastDNS=yes
|
||||
|
||||
# systemd-networkd does not set per-interface-type default route metrics
|
||||
# https://github.com/systemd/systemd/issues/17698
|
||||
# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
|
||||
# Use values from NetworkManager. From nm_device_get_route_metric_default in
|
||||
# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
|
||||
[DHCPv4]
|
||||
RouteMetric=100
|
||||
|
||||
[IPv6AcceptRA]
|
||||
RouteMetric=100
|
20
airootfs/etc/systemd/network/20-wlan.network
Normal file
20
airootfs/etc/systemd/network/20-wlan.network
Normal file
|
@ -0,0 +1,20 @@
|
|||
[Match]
|
||||
Name=wl*
|
||||
|
||||
[Link]
|
||||
RequiredForOnline=routable
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
MulticastDNS=yes
|
||||
|
||||
# systemd-networkd does not set per-interface-type default route metrics
|
||||
# https://github.com/systemd/systemd/issues/17698
|
||||
# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
|
||||
# Use values from NetworkManager. From nm_device_get_route_metric_default in
|
||||
# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
|
||||
[DHCPv4]
|
||||
RouteMetric=600
|
||||
|
||||
[IPv6AcceptRA]
|
||||
RouteMetric=600
|
19
airootfs/etc/systemd/network/20-wwan.network
Normal file
19
airootfs/etc/systemd/network/20-wwan.network
Normal file
|
@ -0,0 +1,19 @@
|
|||
[Match]
|
||||
Name=ww*
|
||||
|
||||
[Link]
|
||||
RequiredForOnline=routable
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
|
||||
# systemd-networkd does not set per-interface-type default route metrics
|
||||
# https://github.com/systemd/systemd/issues/17698
|
||||
# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband.
|
||||
# Use values from NetworkManager. From nm_device_get_route_metric_default in
|
||||
# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
|
||||
[DHCPv4]
|
||||
RouteMetric=700
|
||||
|
||||
[IPv6AcceptRA]
|
||||
RouteMetric=700
|
4
airootfs/etc/systemd/resolved.conf.d/archiso.conf
Normal file
4
airootfs/etc/systemd/resolved.conf.d/archiso.conf
Normal file
|
@ -0,0 +1,4 @@
|
|||
# Default systemd-resolved configuration for archiso
|
||||
|
||||
[Resolve]
|
||||
MulticastDNS=yes
|
|
@ -0,0 +1 @@
|
|||
/dev/null
|
10
airootfs/etc/systemd/system/choose-mirror.service
Normal file
10
airootfs/etc/systemd/system/choose-mirror.service
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Unit]
|
||||
Description=Choose mirror from the kernel command line
|
||||
ConditionKernelCommandLine=mirror
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/bin/choose-mirror
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/cloud-config.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/cloud-final.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/cloud-init-local.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/cloud-init.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/ModemManager.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-networkd.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-resolved.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-timesyncd.service
|
8
airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
Normal file
8
airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
Normal file
|
@ -0,0 +1,8 @@
|
|||
[Unit]
|
||||
Description=Temporary /etc/pacman.d/gnupg directory
|
||||
|
||||
[Mount]
|
||||
What=tmpfs
|
||||
Where=/etc/pacman.d/gnupg
|
||||
Type=tmpfs
|
||||
Options=mode=0755,noswap
|
|
@ -0,0 +1,3 @@
|
|||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin suyu - $TERM
|
13
airootfs/etc/systemd/system/livecd-alsa-unmuter.service
Normal file
13
airootfs/etc/systemd/system/livecd-alsa-unmuter.service
Normal file
|
@ -0,0 +1,13 @@
|
|||
[Unit]
|
||||
Description=Unmute All Sound Card Controls For Use With The Live Arch Environment
|
||||
# This needs to run after the audio device becomes available.
|
||||
Wants=systemd-udev-settle.service
|
||||
After=systemd-udev-settle.service sound.target
|
||||
ConditionKernelCommandLine=accessibility=on
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/bin/livecd-sound -u
|
||||
|
||||
[Install]
|
||||
WantedBy=sound.target
|
20
airootfs/etc/systemd/system/livecd-talk.service
Normal file
20
airootfs/etc/systemd/system/livecd-talk.service
Normal file
|
@ -0,0 +1,20 @@
|
|||
[Unit]
|
||||
Description=Screen reader service
|
||||
After=livecd-alsa-unmuter.service
|
||||
Before=getty@tty1.service
|
||||
ConditionKernelCommandLine=accessibility=on
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
TTYPath=/dev/tty13
|
||||
ExecStartPre=/usr/bin/chvt 13
|
||||
ExecStart=/usr/local/bin/livecd-sound -p
|
||||
ExecStartPost=/usr/bin/chvt 1
|
||||
ExecStartPost=systemctl start espeakup.service
|
||||
StandardInput=tty
|
||||
TTYVHangup=yes
|
||||
TTYVTDisallocate=yes
|
||||
RemainAfterExit=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/ModemManager.service
|
|
@ -0,0 +1 @@
|
|||
../choose-mirror.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/hv_fcopy_daemon.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/hv_kvp_daemon.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/hv_vss_daemon.service
|
1
airootfs/etc/systemd/system/multi-user.target.wants/iwd.service
Symbolic link
1
airootfs/etc/systemd/system/multi-user.target.wants/iwd.service
Symbolic link
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/iwd.service
|
|
@ -0,0 +1 @@
|
|||
/etc/systemd/system/livecd-talk.service
|
|
@ -0,0 +1 @@
|
|||
../pacman-init.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/reflector.service
|
1
airootfs/etc/systemd/system/multi-user.target.wants/sshd.service
Symbolic link
1
airootfs/etc/systemd/system/multi-user.target.wants/sshd.service
Symbolic link
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/sshd.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-networkd.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-resolved.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/vboxservice.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/vmtoolsd.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/vmware-vmblock-fuse.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-networkd-wait-online.service
|
15
airootfs/etc/systemd/system/pacman-init.service
Normal file
15
airootfs/etc/systemd/system/pacman-init.service
Normal file
|
@ -0,0 +1,15 @@
|
|||
[Unit]
|
||||
Description=Initializes Pacman keyring
|
||||
Requires=etc-pacman.d-gnupg.mount
|
||||
After=etc-pacman.d-gnupg.mount time-sync.target
|
||||
BindsTo=etc-pacman.d-gnupg.mount
|
||||
Before=archlinux-keyring-wkd-sync.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/bin/pacman-key --init
|
||||
ExecStart=/usr/bin/pacman-key --populate
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1,6 @@
|
|||
[Unit]
|
||||
ConditionKernelCommandLine=!mirror
|
||||
|
||||
[Service]
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
1
airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket
Symbolic link
1
airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket
Symbolic link
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/pcscd.socket
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-networkd.socket
|
|
@ -0,0 +1 @@
|
|||
../livecd-alsa-unmuter.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-time-wait-sync.service
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/systemd/system/systemd-timesyncd.service
|
|
@ -0,0 +1,6 @@
|
|||
# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist,
|
||||
# network-online.target gets needlessly delayed.
|
||||
# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
|
8
airootfs/etc/xdg/reflector/reflector.conf
Normal file
8
airootfs/etc/xdg/reflector/reflector.conf
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Reflector configuration file for the systemd service.
|
||||
|
||||
--save /etc/pacman.d/mirrorlist
|
||||
--ipv4
|
||||
--ipv6
|
||||
--protocol https
|
||||
--latest 20
|
||||
--sort rate
|
17
airootfs/home/suyu/Desktop/suyu.desktop
Executable file
17
airootfs/home/suyu/Desktop/suyu.desktop
Executable file
|
@ -0,0 +1,17 @@
|
|||
[Desktop Entry]
|
||||
Comment[en_US]=
|
||||
Comment=
|
||||
Exec=gamemoderun suyu
|
||||
GenericName[en_US]=
|
||||
GenericName=
|
||||
Icon=system-run
|
||||
MimeType=
|
||||
Name[en_US]=suyu
|
||||
Name=suyu
|
||||
Path=../suyu/build/bin
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
TerminalOptions=
|
||||
Type=Application
|
||||
X-KDE-SubstituteUID=false
|
||||
X-KDE-Username=
|
1
airootfs/home/suyu/suyu
Submodule
1
airootfs/home/suyu/suyu
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 2b16baf506886ab7df9c4df0b48ae43e047aa593
|
44
airootfs/root/.automated_script.sh
Executable file
44
airootfs/root/.automated_script.sh
Executable file
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
script_cmdline() {
|
||||
local param
|
||||
for param in $(</proc/cmdline); do
|
||||
case "${param}" in
|
||||
script=*)
|
||||
echo "${param#*=}"
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
automated_script() {
|
||||
local script rt
|
||||
script="$(script_cmdline)"
|
||||
if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
|
||||
if [[ "${script}" =~ ^((http|https|ftp|tftp)://) ]]; then
|
||||
# there's no synchronization for network availability before executing this script
|
||||
printf '%s: waiting for network-online.target\n' "$0"
|
||||
until systemctl --quiet is-active network-online.target; do
|
||||
sleep 1
|
||||
done
|
||||
printf '%s: downloading %s\n' "$0" "${script}"
|
||||
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script
|
||||
rt=$?
|
||||
else
|
||||
cp "${script}" /tmp/startup_script
|
||||
rt=$?
|
||||
fi
|
||||
if [[ ${rt} -eq 0 ]]; then
|
||||
chmod +x /tmp/startup_script
|
||||
printf '%s: executing automated script\n' "$0"
|
||||
# note that script is executed when other services (like pacman-init) may be still in progress, please
|
||||
# synchronize to "systemctl is-system-running --wait" when your script depends on other services
|
||||
/tmp/startup_script
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ $(tty) == "/dev/tty1" ]]; then
|
||||
automated_script
|
||||
fi
|
4
airootfs/root/.gnupg/scdaemon.conf
Normal file
4
airootfs/root/.gnupg/scdaemon.conf
Normal file
|
@ -0,0 +1,4 @@
|
|||
disable-ccid
|
||||
disable-pinpad
|
||||
pcsc-driver /usr/lib/libpcsclite.so
|
||||
pcsc-shared
|
6
airootfs/root/.zlogin
Normal file
6
airootfs/root/.zlogin
Normal file
|
@ -0,0 +1,6 @@
|
|||
# fix for screen readers
|
||||
if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then
|
||||
setopt SINGLE_LINE_ZLE
|
||||
fi
|
||||
|
||||
~/.automated_script.sh
|
5
airootfs/usr/local/bin/Installation_guide
Executable file
5
airootfs/usr/local/bin/Installation_guide
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
exec lynx 'https://wiki.archlinux.org/title/Installation_guide'
|
29
airootfs/usr/local/bin/choose-mirror
Executable file
29
airootfs/usr/local/bin/choose-mirror
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
get_cmdline() {
|
||||
local param
|
||||
for param in $(</proc/cmdline); do
|
||||
case "${param}" in
|
||||
"${1}="*)
|
||||
echo "${param##*=}"
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
mirror="$(get_cmdline mirror)"
|
||||
[[ "$mirror" == 'auto' ]] && mirror="$(get_cmdline archiso_http_srv)"
|
||||
[[ -n "$mirror" ]] || exit 0
|
||||
|
||||
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
|
||||
cat >/etc/pacman.d/mirrorlist <<EOF
|
||||
#
|
||||
# Arch Linux repository mirrorlist
|
||||
# Generated by archiso
|
||||
#
|
||||
|
||||
Server = ${mirror%%/}/\$repo/os/\$arch
|
||||
EOF
|
239
airootfs/usr/local/bin/livecd-sound
Executable file
239
airootfs/usr/local/bin/livecd-sound
Executable file
|
@ -0,0 +1,239 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
usage() {
|
||||
cat <<-_EOF_
|
||||
live cd sound helper script.
|
||||
Usage: livecdsound [OPTION]
|
||||
OPTIONS
|
||||
-u, --unmute unmute all sound cards
|
||||
-p, --pick select a card for speetch output
|
||||
-h, --help Show this usage message
|
||||
|
||||
_EOF_
|
||||
}
|
||||
|
||||
bugout() {
|
||||
printf "/usr/local/bin/livecdsound: programming error"
|
||||
stat_fail
|
||||
}
|
||||
|
||||
echo_card_indices() {
|
||||
if [[ -f /proc/asound/cards ]]; then
|
||||
sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
|
||||
fi
|
||||
}
|
||||
|
||||
# The following functions try to set many controls.
|
||||
# No card has all the controls and so some of the attempts are bound to fail.
|
||||
# Because of this, the functions can't return useful status values.
|
||||
|
||||
# $1 <card id>
|
||||
# $2 <control>
|
||||
# $3 <level>
|
||||
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
|
||||
}
|
||||
|
||||
# $1 <card id>
|
||||
# $2 <control>
|
||||
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
|
||||
}
|
||||
|
||||
# $1 <card ID>
|
||||
# $2 <control>
|
||||
# $3 "on" | "off"
|
||||
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 <card ID>
|
||||
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%"
|
||||
unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B
|
||||
unmute_and_set_level "$1" "Playback" "80%"
|
||||
unmute_and_set_level "$1" "Headphone" "100%"
|
||||
unmute_and_set_level "$1" "PCM" "80%"
|
||||
unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969
|
||||
unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx
|
||||
unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24
|
||||
unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24
|
||||
unmute_and_set_level "$1" "Synth" "80%"
|
||||
unmute_and_set_level "$1" "CD" "80%"
|
||||
unmute_and_set_level "$1" "PC Speaker" "100%"
|
||||
|
||||
mute_and_zero_level "$1" "Mic"
|
||||
mute_and_zero_level "$1" "IEC958" # Ubuntu #19648
|
||||
|
||||
# Intel P4P800-MX
|
||||
switch_control "$1" "Master Playback Switch" on
|
||||
switch_control "$1" "Master Surround" on
|
||||
|
||||
# Trident/YMFPCI/emu10k1:
|
||||
unmute_and_set_level "$1" "Wave" "80%"
|
||||
unmute_and_set_level "$1" "Music" "80%"
|
||||
unmute_and_set_level "$1" "AC97" "80%"
|
||||
|
||||
# DRC:
|
||||
unmute_and_set_level "$1" "Dynamic Range Compression" "80%"
|
||||
|
||||
# Required for HDA Intel (hda-intel):
|
||||
unmute_and_set_level "$1" "Front" "80%"
|
||||
|
||||
# Required for SB Live 7.1/24-bit (ca0106):
|
||||
unmute_and_set_level "$1" "Analog Front" "80%"
|
||||
|
||||
# Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard
|
||||
switch_control "$1" "IEC958 Capture Monitor" off
|
||||
|
||||
# Required for hardware allowing toggles for AC97 through IEC958,
|
||||
# valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
|
||||
unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0"
|
||||
|
||||
# Required for newer Via hardware
|
||||
unmute_and_set_level "$1" "VIA DXS,0" "80%"
|
||||
unmute_and_set_level "$1" "VIA DXS,1" "80%"
|
||||
unmute_and_set_level "$1" "VIA DXS,2" "80%"
|
||||
unmute_and_set_level "$1" "VIA DXS,3" "80%"
|
||||
|
||||
# Required on some notebooks with ICH4:
|
||||
switch_control "$1" "Headphone Jack Sense" off
|
||||
switch_control "$1" "Line Jack Sense" off
|
||||
|
||||
# Some machines need one or more of these to be on;
|
||||
# others need one or more of these to be off:
|
||||
|
||||
switch_control "$1" "Audigy Analog/Digital Output Jack" on
|
||||
switch_control "$1" "SB Live Analog/Digital Output Jack" on
|
||||
|
||||
# D1984 -- Thinkpad T61/X61
|
||||
switch_control "$1" "Speaker" on
|
||||
switch_control "$1" "Headphone" on
|
||||
|
||||
# HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
|
||||
unmute_and_set_level "$1" "Digital" "80%"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# $1 <card ID> | "all"
|
||||
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
|
||||
;;
|
||||
esac
|
||||
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() {
|
||||
for card in $(echo_card_indices); do
|
||||
local cardfile="/proc/asound/card${card}/id"
|
||||
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() {
|
||||
sanify_levels all
|
||||
}
|
||||
|
||||
is_numeric() {
|
||||
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
|
||||
}
|
||||
|
||||
play_on_card() {
|
||||
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() {
|
||||
set -f
|
||||
usable_cards="$(list_non_pcsp_cards)"
|
||||
num_usable_cards="$(wc -w <<<"$usable_cards")"
|
||||
|
||||
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
|
||||
if ! is_numeric "$card"; then
|
||||
continue
|
||||
fi
|
||||
play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav &
|
||||
done
|
||||
wait
|
||||
sleep 1
|
||||
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
|
||||
}
|
||||
|
||||
if (( $# == 0 )); then
|
||||
echo "error: No argument passed."
|
||||
exit 1
|
||||
fi
|
||||
while [[ "${1}" != "" ]]; do
|
||||
case ${1} in
|
||||
-h|--help)
|
||||
usage
|
||||
exit
|
||||
;;
|
||||
-u|--unmute)
|
||||
systemd-cat -t "livecdsound" printf "Unmuting all cards"
|
||||
unmute_all_cards
|
||||
;;
|
||||
-p|--pick)
|
||||
pick_a_card
|
||||
;;
|
||||
*)
|
||||
echo "error: Unsupported argument"
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
3
airootfs/usr/local/share/livecd-sound/asound.conf.in
Normal file
3
airootfs/usr/local/share/livecd-sound/asound.conf.in
Normal file
|
@ -0,0 +1,3 @@
|
|||
Defaults node
|
||||
defaults.ctl.card %card%;
|
||||
defaults.pcm.card %card%;
|
2
bootstrap_packages.x86_64
Normal file
2
bootstrap_packages.x86_64
Normal file
|
@ -0,0 +1,2 @@
|
|||
arch-install-scripts
|
||||
base
|
7
efiboot/loader/entries/01-archiso-x86_64-linux.conf
Normal file
7
efiboot/loader/entries/01-archiso-x86_64-linux.conf
Normal file
|
@ -0,0 +1,7 @@
|
|||
title Arch Linux install medium (x86_64, UEFI)
|
||||
sort-key 01
|
||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID%
|
|
@ -0,0 +1,7 @@
|
|||
title Arch Linux install medium (x86_64, UEFI) with speech
|
||||
sort-key 02
|
||||
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/amd-ucode.img
|
||||
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% accessibility=on
|
3
efiboot/loader/loader.conf
Normal file
3
efiboot/loader/loader.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
timeout 15
|
||||
default 01-archiso-x86_64-linux.conf
|
||||
beep on
|
116
grub/grub.cfg
Normal file
116
grub/grub.cfg
Normal file
|
@ -0,0 +1,116 @@
|
|||
# Load partition table and file system modules
|
||||
insmod part_gpt
|
||||
insmod part_msdos
|
||||
insmod fat
|
||||
insmod iso9660
|
||||
insmod ntfs
|
||||
insmod ntfscomp
|
||||
insmod exfat
|
||||
insmod udf
|
||||
|
||||
# Use graphics-mode output
|
||||
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
|
||||
fi
|
||||
|
||||
# Search for the ISO volume
|
||||
if [ -z "${ARCHISO_UUID}" ]; then
|
||||
if [ -z "${ARCHISO_HINT}" ]; then
|
||||
regexp --set=1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}"
|
||||
fi
|
||||
search --no-floppy --set=root --file '%ARCHISO_SEARCH_FILENAME%' --hint "${ARCHISO_HINT}"
|
||||
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=archlinux
|
||||
timeout=15
|
||||
timeout_style=menu
|
||||
|
||||
|
||||
# Menu entries
|
||||
|
||||
menuentry "suyuOS 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% archisodevice=UUID=${ARCHISO_UUID}
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
|
||||
}
|
||||
|
||||
menuentry "suyuOS 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% archisodevice=UUID=${ARCHISO_UUID} accessibility=on
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.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
|
||||
}
|
||||
|
||||
|
||||
# GRUB init tune for accessibility
|
||||
play 600 988 1 1319 4
|
80
grub/loopback.cfg
Normal file
80
grub/loopback.cfg
Normal file
|
@ -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=archlinux
|
||||
timeout=15
|
||||
timeout_style=menu
|
||||
|
||||
|
||||
# Menu entries
|
||||
|
||||
menuentry "Arch 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}"
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
|
||||
}
|
||||
|
||||
menuentry "Arch 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}" accessibility=on
|
||||
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.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
|
||||
}
|
154
packages.x86_64
Normal file
154
packages.x86_64
Normal file
|
@ -0,0 +1,154 @@
|
|||
alsa-utils
|
||||
amd-ucode
|
||||
arch-install-scripts
|
||||
archinstall
|
||||
b43-fwcutter
|
||||
base
|
||||
bcachefs-tools
|
||||
bind
|
||||
bolt
|
||||
brltty
|
||||
broadcom-wl
|
||||
btrfs-progs
|
||||
clonezilla
|
||||
cloud-init
|
||||
cryptsetup
|
||||
darkhttpd
|
||||
ddrescue
|
||||
dhclient
|
||||
dhcpcd
|
||||
diffutils
|
||||
dmidecode
|
||||
dmraid
|
||||
dnsmasq
|
||||
dosfstools
|
||||
e2fsprogs
|
||||
edk2-shell
|
||||
efibootmgr
|
||||
espeakup
|
||||
ethtool
|
||||
exfatprogs
|
||||
f2fs-tools
|
||||
fatresize
|
||||
foot-terminfo
|
||||
fsarchiver
|
||||
gnu-netcat
|
||||
gpart
|
||||
gpm
|
||||
gptfdisk
|
||||
grml-zsh-config
|
||||
grub
|
||||
hdparm
|
||||
hyperv
|
||||
intel-ucode
|
||||
irssi
|
||||
iw
|
||||
iwd
|
||||
jfsutils
|
||||
kitty-terminfo
|
||||
ldns
|
||||
less
|
||||
lftp
|
||||
libfido2
|
||||
libusb-compat
|
||||
linux
|
||||
linux-atm
|
||||
linux-firmware
|
||||
linux-firmware-marvell
|
||||
livecd-sounds
|
||||
lsscsi
|
||||
lvm2
|
||||
lynx
|
||||
man-db
|
||||
man-pages
|
||||
mc
|
||||
mdadm
|
||||
memtest86+
|
||||
memtest86+-efi
|
||||
mkinitcpio
|
||||
mkinitcpio-archiso
|
||||
mkinitcpio-nfs-utils
|
||||
modemmanager
|
||||
mtools
|
||||
nano
|
||||
nbd
|
||||
ndisc6
|
||||
nfs-utils
|
||||
nilfs-utils
|
||||
nmap
|
||||
ntfs-3g
|
||||
nvme-cli
|
||||
open-iscsi
|
||||
open-vm-tools
|
||||
openconnect
|
||||
openpgp-card-tools
|
||||
openssh
|
||||
openvpn
|
||||
partclone
|
||||
parted
|
||||
partimage
|
||||
pcsclite
|
||||
ppp
|
||||
pptpclient
|
||||
pv
|
||||
qemu-guest-agent
|
||||
refind
|
||||
reflector
|
||||
reiserfsprogs
|
||||
rp-pppoe
|
||||
rsync
|
||||
rxvt-unicode-terminfo
|
||||
screen
|
||||
sdparm
|
||||
sequoia-sq
|
||||
sg3_utils
|
||||
smartmontools
|
||||
sof-firmware
|
||||
squashfs-tools
|
||||
sudo
|
||||
syslinux
|
||||
systemd-resolvconf
|
||||
tcpdump
|
||||
terminus-font
|
||||
testdisk
|
||||
tmux
|
||||
tpm2-tools
|
||||
tpm2-tss
|
||||
udftools
|
||||
usb_modeswitch
|
||||
usbmuxd
|
||||
usbutils
|
||||
vim
|
||||
virtualbox-guest-utils-nox
|
||||
vpnc
|
||||
wezterm-terminfo
|
||||
wireless-regdb
|
||||
wireless_tools
|
||||
wpa_supplicant
|
||||
wvdial
|
||||
xfsprogs
|
||||
xl2tpd
|
||||
zsh
|
||||
plasma-meta
|
||||
base-devel
|
||||
boost
|
||||
catch2
|
||||
cmake
|
||||
ffmpeg
|
||||
fmt
|
||||
git
|
||||
glslang
|
||||
libzip
|
||||
lz4
|
||||
mbedtls
|
||||
ninja
|
||||
nlohmann-json
|
||||
openssl
|
||||
opus
|
||||
qt5
|
||||
sdl2
|
||||
zlib
|
||||
zstd
|
||||
zip
|
||||
unzip
|
||||
gamemode
|
98
pacman.conf
Normal file
98
pacman.conf
Normal file
|
@ -0,0 +1,98 @@
|
|||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
#HookDir = /etc/pacman.d/hooks/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#NoProgressBar
|
||||
# We cannot check disk space from within a chroot environment
|
||||
#CheckSpace
|
||||
#VerbosePkgLists
|
||||
ParallelDownloads = 5
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The testing repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
#[core-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[extra-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# If you want to run 32 bit applications on your x86_64 system,
|
||||
# enable the multilib repositories as required here.
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[multilib]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
29
profiledef.sh
Normal file
29
profiledef.sh
Normal file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2034
|
||||
|
||||
iso_name="archlinux"
|
||||
iso_label="ARCH_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
|
||||
iso_publisher="Arch Linux <https://archlinux.org>"
|
||||
iso_application="Arch Linux Live/Rescue DVD"
|
||||
iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)"
|
||||
install_dir="arch"
|
||||
buildmodes=('iso')
|
||||
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
|
||||
'uefi-ia32.grub.esp' 'uefi-x64.grub.esp'
|
||||
'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito')
|
||||
arch="x86_64"
|
||||
pacman_conf="pacman.conf"
|
||||
airootfs_image_type="squashfs"
|
||||
airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M')
|
||||
bootstrap_tarball_compression=(gzip -cn9)
|
||||
file_permissions=(
|
||||
["/etc/shadow"]="0:0:400"
|
||||
["/root"]="0:0:750"
|
||||
["/root/.automated_script.sh"]="0:0:755"
|
||||
["/root/.gnupg"]="0:0:700"
|
||||
["/usr/local/bin/choose-mirror"]="0:0:755"
|
||||
["/usr/local/bin/Installation_guide"]="0:0:755"
|
||||
["/usr/local/bin/livecd-sound"]="0:0:755"
|
||||
["/etc/shadow"]="0:0:0400"
|
||||
["/etc/gshadow"]="0:0:0400"
|
||||
)
|
28
syslinux/archiso_head.cfg
Normal file
28
syslinux/archiso_head.cfg
Normal file
|
@ -0,0 +1,28 @@
|
|||
SERIAL 0 115200
|
||||
UI vesamenu.c32
|
||||
MENU TITLE Arch Linux
|
||||
MENU BACKGROUND splash.png
|
||||
|
||||
MENU WIDTH 78
|
||||
MENU MARGIN 4
|
||||
MENU ROWS 7
|
||||
MENU VSHIFT 10
|
||||
MENU TABMSGROW 14
|
||||
MENU CMDLINEROW 14
|
||||
MENU HELPMSGROW 16
|
||||
MENU HELPMSGENDROW 29
|
||||
|
||||
# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32
|
||||
|
||||
MENU COLOR border 30;44 #40ffffff #a0000000 std
|
||||
MENU COLOR title 1;36;44 #9033ccff #a0000000 std
|
||||
MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
|
||||
MENU COLOR unsel 37;44 #50ffffff #a0000000 std
|
||||
MENU COLOR help 37;40 #c0ffffff #a0000000 std
|
||||
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
|
||||
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
|
||||
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
|
||||
MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
|
||||
|
||||
MENU CLEAR
|
||||
MENU IMMEDIATE
|
32
syslinux/archiso_pxe-linux.cfg
Normal file
32
syslinux/archiso_pxe-linux.cfg
Normal file
|
@ -0,0 +1,32 @@
|
|||
LABEL arch64_nbd
|
||||
TEXT HELP
|
||||
Boot the Arch Linux install medium using NBD.
|
||||
It allows you to install Arch Linux or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL Arch Linux install medium (x86_64, NBD)
|
||||
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y
|
||||
SYSAPPEND 3
|
||||
|
||||
LABEL arch64_nfs
|
||||
TEXT HELP
|
||||
Boot the Arch Linux live medium using NFS.
|
||||
It allows you to install Arch Linux or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL Arch Linux install medium (x86_64, NFS)
|
||||
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y
|
||||
SYSAPPEND 3
|
||||
|
||||
LABEL arch64_http
|
||||
TEXT HELP
|
||||
Boot the Arch Linux live medium using HTTP.
|
||||
It allows you to install Arch Linux or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL Arch Linux install medium (x86_64, HTTP)
|
||||
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y
|
||||
SYSAPPEND 3
|
5
syslinux/archiso_pxe.cfg
Normal file
5
syslinux/archiso_pxe.cfg
Normal file
|
@ -0,0 +1,5 @@
|
|||
INCLUDE archiso_head.cfg
|
||||
|
||||
INCLUDE archiso_pxe-linux.cfg
|
||||
|
||||
INCLUDE archiso_tail.cfg
|
20
syslinux/archiso_sys-linux.cfg
Normal file
20
syslinux/archiso_sys-linux.cfg
Normal file
|
@ -0,0 +1,20 @@
|
|||
LABEL arch64
|
||||
TEXT HELP
|
||||
Boot the suyuOS install medium on BIOS.
|
||||
It allows you to install suyuOS or perform system maintenance.
|
||||
ENDTEXT
|
||||
MENU LABEL suyuOS install medium (x86_64, BIOS)
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID%
|
||||
|
||||
# Accessibility boot option
|
||||
LABEL arch64speech
|
||||
TEXT HELP
|
||||
Boot the suyuOS install medium on BIOS with speakup screen reader.
|
||||
It allows you to install suyuOS or perform system maintenance with speech feedback.
|
||||
ENDTEXT
|
||||
MENU LABEL suyuOS install medium (x86_64, BIOS) with ^speech
|
||||
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux
|
||||
INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
||||
APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% accessibility=on
|
8
syslinux/archiso_sys.cfg
Normal file
8
syslinux/archiso_sys.cfg
Normal file
|
@ -0,0 +1,8 @@
|
|||
INCLUDE archiso_head.cfg
|
||||
|
||||
DEFAULT arch64
|
||||
TIMEOUT 150
|
||||
|
||||
INCLUDE archiso_sys-linux.cfg
|
||||
|
||||
INCLUDE archiso_tail.cfg
|
35
syslinux/archiso_tail.cfg
Normal file
35
syslinux/archiso_tail.cfg
Normal file
|
@ -0,0 +1,35 @@
|
|||
LABEL existing
|
||||
TEXT HELP
|
||||
Boot an existing operating system.
|
||||
Press TAB to edit the disk and partition number to boot.
|
||||
ENDTEXT
|
||||
MENU LABEL Boot existing OS
|
||||
COM32 chain.c32
|
||||
APPEND hd0 0
|
||||
|
||||
# https://www.memtest.org/
|
||||
LABEL memtest
|
||||
MENU LABEL Run Memtest86+ (RAM test)
|
||||
LINUX /boot/memtest86+/memtest
|
||||
|
||||
# https://wiki.syslinux.org/wiki/index.php/Hdt_(Hardware_Detection_Tool)
|
||||
LABEL hdt
|
||||
MENU LABEL Hardware Information (HDT)
|
||||
COM32 hdt.c32
|
||||
APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz
|
||||
|
||||
LABEL reboot
|
||||
TEXT HELP
|
||||
Reboot computer.
|
||||
The computer's firmware must support APM.
|
||||
ENDTEXT
|
||||
MENU LABEL Reboot
|
||||
COM32 reboot.c32
|
||||
|
||||
LABEL poweroff
|
||||
TEXT HELP
|
||||
Power off computer.
|
||||
The computer's firmware must support APM.
|
||||
ENDTEXT
|
||||
MENU LABEL Power Off
|
||||
COM32 poweroff.c32
|
BIN
syslinux/splash.png
Normal file
BIN
syslinux/splash.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 287 KiB |
11
syslinux/syslinux.cfg
Normal file
11
syslinux/syslinux.cfg
Normal file
|
@ -0,0 +1,11 @@
|
|||
DEFAULT select
|
||||
|
||||
LABEL select
|
||||
COM32 whichsys.c32
|
||||
APPEND -pxe- pxe -sys- sys -iso- sys
|
||||
|
||||
LABEL pxe
|
||||
CONFIG archiso_pxe.cfg
|
||||
|
||||
LABEL sys
|
||||
CONFIG archiso_sys.cfg
|
Loading…
Reference in a new issue