mirror of
https://github.com/tuxdotrs/tuxOS.git
synced 2025-07-06 17:56:35 +05:30
moved base to iso
This commit is contained in:
18
iso/airootfs/etc/group
Normal file
18
iso/airootfs/etc/group
Normal file
@ -0,0 +1,18 @@
|
||||
root:x:0:root
|
||||
sys:x:3:bin,liveuser
|
||||
network:x:90:liveuser
|
||||
power:x:98:liveuser
|
||||
adm:x:999:liveuser
|
||||
lp:x:992:liveuser
|
||||
wheel:x:998:liveuser
|
||||
uucp:x:987:liveuser
|
||||
optical:x:990:liveuser
|
||||
scanner:x:991:liveuser
|
||||
rfkill:x:983:liveuser
|
||||
video:x:986:liveuser
|
||||
storage:x:988:liveuser
|
||||
audio:x:995:liveuser
|
||||
users:x:985:liveuser
|
||||
nopasswdlogin:x:966:liveuser
|
||||
autologin:x:967:liveuser
|
||||
liveuser:x:1000:
|
18
iso/airootfs/etc/gshadow
Normal file
18
iso/airootfs/etc/gshadow
Normal file
@ -0,0 +1,18 @@
|
||||
root:::root
|
||||
sys:!!::liveuser
|
||||
network:!!::liveuser
|
||||
power:!!::liveuser
|
||||
adm:!!::liveuser
|
||||
lp:!!::liveuser
|
||||
wheel:!!::liveuser
|
||||
uucp:!!::liveuser
|
||||
optical:!!::liveuser
|
||||
scanner:!!::liveuser
|
||||
rfkill:!!::liveuser
|
||||
video:!!::liveuser
|
||||
storage:!!::liveuser
|
||||
audio:!!::liveuser
|
||||
users:!!::liveuser
|
||||
nopasswdlogin:!::liveuser
|
||||
autologin:!::liveuser
|
||||
liveuser:!::
|
1
iso/airootfs/etc/hostname
Normal file
1
iso/airootfs/etc/hostname
Normal file
@ -0,0 +1 @@
|
||||
archiso
|
1
iso/airootfs/etc/locale.conf
Normal file
1
iso/airootfs/etc/locale.conf
Normal file
@ -0,0 +1 @@
|
||||
LANG=C.UTF-8
|
1
iso/airootfs/etc/localtime
Symbolic link
1
iso/airootfs/etc/localtime
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/share/zoneinfo/UTC
|
67
iso/airootfs/etc/mkinitcpio.conf
Normal file
67
iso/airootfs/etc/mkinitcpio.conf
Normal file
@ -0,0 +1,67 @@
|
||||
# vim:set ft=sh
|
||||
# MODULES
|
||||
# The following modules are loaded before any boot hooks are
|
||||
# run. Advanced users may wish to specify all system modules
|
||||
# in this array. For instance:
|
||||
# MODULES=(piix ide_disk reiserfs)
|
||||
MODULES=()
|
||||
|
||||
# BINARIES
|
||||
# This setting includes any additional binaries a given user may
|
||||
# wish into the CPIO image. This is run last, so it may be used to
|
||||
# override the actual binaries included by a given hook
|
||||
# BINARIES are dependency parsed, so you may safely ignore libraries
|
||||
BINARIES=()
|
||||
|
||||
# FILES
|
||||
# This setting is similar to BINARIES above, however, files are added
|
||||
# as-is and are not parsed in any way. This is useful for config files.
|
||||
FILES=()
|
||||
|
||||
# HOOKS
|
||||
# This is the most important setting in this file. The HOOKS control the
|
||||
# modules and scripts added to the image, and what happens at boot time.
|
||||
# Order is important, and it is recommended that you do not change the
|
||||
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
|
||||
# help on a given hook.
|
||||
# 'base' is _required_ unless you know precisely what you are doing.
|
||||
# 'udev' is _required_ in order to automatically load modules
|
||||
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
|
||||
# Examples:
|
||||
## This setup specifies all modules in the MODULES setting above.
|
||||
## No raid, lvm2, or encrypted root is needed.
|
||||
# HOOKS=(base)
|
||||
#
|
||||
## This setup will autodetect all modules for your system and should
|
||||
## work as a sane default
|
||||
# HOOKS=(base udev autodetect block filesystems)
|
||||
#
|
||||
## This setup will generate a 'full' image which supports most systems.
|
||||
## No autodetection is done.
|
||||
# HOOKS=(base udev block filesystems)
|
||||
#
|
||||
## This setup assembles a pata mdadm array with an encrypted root FS.
|
||||
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
|
||||
# HOOKS=(base udev block mdadm encrypt filesystems)
|
||||
#
|
||||
## This setup loads an lvm2 volume group on a usb device.
|
||||
# HOOKS=(base udev block lvm2 filesystems)
|
||||
#
|
||||
## NOTE: If you have /usr on a separate partition, you MUST include the
|
||||
# usr, fsck and shutdown hooks.
|
||||
HOOKS=(base udev modconf kms archiso archiso_loop_mnt block filesystems keyboard)
|
||||
|
||||
# COMPRESSION
|
||||
# Use this to compress the initramfs image. By default, gzip compression
|
||||
# is used. Use 'cat' to create an uncompressed image.
|
||||
#COMPRESSION="gzip"
|
||||
#COMPRESSION="bzip2"
|
||||
#COMPRESSION="lzma"
|
||||
COMPRESSION="xz"
|
||||
#COMPRESSION="lzop"
|
||||
#COMPRESSION="lz4"
|
||||
#COMPRESSION="zstd"
|
||||
|
||||
# COMPRESSION_OPTIONS
|
||||
# Additional options for the compressor
|
||||
#COMPRESSION_OPTIONS=()
|
8
iso/airootfs/etc/mkinitcpio.d/linux.preset
Normal file
8
iso/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'
|
||||
ALL_config='/etc/mkinitcpio.conf'
|
||||
|
||||
archiso_image="/boot/initramfs-linux.img"
|
7
iso/airootfs/etc/modprobe.d/broadcom-wl.conf
Normal file
7
iso/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
iso/airootfs/etc/motd
Normal file
11
iso/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
|
13
iso/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook
Normal file
13
iso/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
iso/airootfs/etc/passwd
Normal file
2
iso/airootfs/etc/passwd
Normal file
@ -0,0 +1,2 @@
|
||||
root:x:0:0:root:/root:/usr/bin/zsh
|
||||
liveuser:x:1000:1000::/home/liveuser:/usr/bin/zsh
|
1
iso/airootfs/etc/resolv.conf
Symbolic link
1
iso/airootfs/etc/resolv.conf
Symbolic link
@ -0,0 +1 @@
|
||||
/run/systemd/resolve/stub-resolv.conf
|
2
iso/airootfs/etc/shadow
Normal file
2
iso/airootfs/etc/shadow
Normal file
@ -0,0 +1,2 @@
|
||||
root::14871::::::
|
||||
liveuser:$6$f9ezDgQ0TRc20Drh$V/xFYNZyiKRKJ2wKm17HJ0TZOEesT0Xa/GZ8oyJaXOlhMzEHp.MTC2nBIxSfKPZcyXLm6tnIhUoqr0kXSWUJV/:14871::::::
|
116
iso/airootfs/etc/ssh/sshd_config
Normal file
116
iso/airootfs/etc/ssh/sshd_config
Normal file
@ -0,0 +1,116 @@
|
||||
# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
|
||||
|
||||
# This is the sshd server system-wide configuration file. See
|
||||
# sshd_config(5) for more information.
|
||||
|
||||
# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
|
||||
|
||||
# The strategy used for options in the default sshd_config shipped with
|
||||
# OpenSSH is to specify options with their default value where
|
||||
# possible, but leave them commented. Uncommented options override the
|
||||
# default value.
|
||||
|
||||
#Port 22
|
||||
#AddressFamily any
|
||||
#ListenAddress 0.0.0.0
|
||||
#ListenAddress ::
|
||||
|
||||
#HostKey /etc/ssh/ssh_host_rsa_key
|
||||
#HostKey /etc/ssh/ssh_host_ecdsa_key
|
||||
#HostKey /etc/ssh/ssh_host_ed25519_key
|
||||
|
||||
# Ciphers and keying
|
||||
#RekeyLimit default none
|
||||
|
||||
# Logging
|
||||
#SyslogFacility AUTH
|
||||
#LogLevel INFO
|
||||
|
||||
# Authentication:
|
||||
|
||||
#LoginGraceTime 2m
|
||||
PermitRootLogin yes
|
||||
#StrictModes yes
|
||||
#MaxAuthTries 6
|
||||
#MaxSessions 10
|
||||
|
||||
#PubkeyAuthentication yes
|
||||
|
||||
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
|
||||
# but this is overridden so installations will only check .ssh/authorized_keys
|
||||
AuthorizedKeysFile .ssh/authorized_keys
|
||||
|
||||
#AuthorizedPrincipalsFile none
|
||||
|
||||
#AuthorizedKeysCommand none
|
||||
#AuthorizedKeysCommandUser nobody
|
||||
|
||||
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
|
||||
#HostbasedAuthentication no
|
||||
# Change to yes if you don't trust ~/.ssh/known_hosts for
|
||||
# HostbasedAuthentication
|
||||
#IgnoreUserKnownHosts no
|
||||
# Don't read the user's ~/.rhosts and ~/.shosts files
|
||||
#IgnoreRhosts yes
|
||||
|
||||
# To disable tunneled clear text passwords, change to no here!
|
||||
#PasswordAuthentication yes
|
||||
#PermitEmptyPasswords no
|
||||
|
||||
# Change to no to disable s/key passwords
|
||||
KbdInteractiveAuthentication no
|
||||
|
||||
# Kerberos options
|
||||
#KerberosAuthentication no
|
||||
#KerberosOrLocalPasswd yes
|
||||
#KerberosTicketCleanup yes
|
||||
#KerberosGetAFSToken no
|
||||
|
||||
# GSSAPI options
|
||||
#GSSAPIAuthentication no
|
||||
#GSSAPICleanupCredentials yes
|
||||
|
||||
# Set this to 'yes' to enable PAM authentication, account processing,
|
||||
# and session processing. If this is enabled, PAM authentication will
|
||||
# be allowed through the KbdInteractiveAuthentication and
|
||||
# PasswordAuthentication. Depending on your PAM configuration,
|
||||
# PAM authentication via KbdInteractiveAuthentication may bypass
|
||||
# the setting of "PermitRootLogin prohibit-password".
|
||||
# If you just want the PAM account and session checks to run without
|
||||
# PAM authentication, then enable this but set PasswordAuthentication
|
||||
# and KbdInteractiveAuthentication to 'no'.
|
||||
UsePAM yes
|
||||
|
||||
#AllowAgentForwarding yes
|
||||
#AllowTcpForwarding yes
|
||||
#GatewayPorts no
|
||||
#X11Forwarding no
|
||||
#X11DisplayOffset 10
|
||||
#X11UseLocalhost yes
|
||||
#PermitTTY yes
|
||||
PrintMotd no
|
||||
#PrintLastLog yes
|
||||
#TCPKeepAlive yes
|
||||
#PermitUserEnvironment no
|
||||
#Compression delayed
|
||||
#ClientAliveInterval 0
|
||||
#ClientAliveCountMax 3
|
||||
#UseDNS no
|
||||
#PidFile /run/sshd.pid
|
||||
#MaxStartups 10:30:100
|
||||
#PermitTunnel no
|
||||
#ChrootDirectory none
|
||||
#VersionAddendum none
|
||||
|
||||
# no default banner path
|
||||
#Banner none
|
||||
|
||||
# override default of no subsystems
|
||||
Subsystem sftp /usr/lib/ssh/sftp-server
|
||||
|
||||
# Example of overriding settings on a per-user basis
|
||||
#Match User anoncvs
|
||||
# X11Forwarding no
|
||||
# AllowTcpForwarding no
|
||||
# PermitTTY no
|
||||
# ForceCommand cvs server
|
1
iso/airootfs/etc/sudoers.d/02_g_wheel
Normal file
1
iso/airootfs/etc/sudoers.d/02_g_wheel
Normal file
@ -0,0 +1 @@
|
||||
%wheel ALL=(ALL) NOPASSWD: ALL
|
@ -0,0 +1,2 @@
|
||||
[Journal]
|
||||
Storage=volatile
|
4
iso/airootfs/etc/systemd/logind.conf.d/suspend.conf
Normal file
4
iso/airootfs/etc/systemd/logind.conf.d/suspend.conf
Normal file
@ -0,0 +1,4 @@
|
||||
[Login]
|
||||
HandleSuspendKey=suspend
|
||||
HandleHibernateKey=hibernate
|
||||
HandleLidSwitch=suspend
|
21
iso/airootfs/etc/systemd/network/20-ethernet.network
Normal file
21
iso/airootfs/etc/systemd/network/20-ethernet.network
Normal file
@ -0,0 +1,21 @@
|
||||
[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*
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
IPv6PrivacyExtensions=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
|
17
iso/airootfs/etc/systemd/network/20-wlan.network
Normal file
17
iso/airootfs/etc/systemd/network/20-wlan.network
Normal file
@ -0,0 +1,17 @@
|
||||
[Match]
|
||||
Name=wl*
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
IPv6PrivacyExtensions=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
|
17
iso/airootfs/etc/systemd/network/20-wwan.network
Normal file
17
iso/airootfs/etc/systemd/network/20-wwan.network
Normal file
@ -0,0 +1,17 @@
|
||||
[Match]
|
||||
Name=ww*
|
||||
|
||||
[Network]
|
||||
DHCP=yes
|
||||
IPv6PrivacyExtensions=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
|
@ -0,0 +1 @@
|
||||
/dev/null
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/bluetooth.service
|
10
iso/airootfs/etc/systemd/system/choose-mirror.service
Normal file
10
iso/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
|
1
iso/airootfs/etc/systemd/system/dbus-org.bluez.service
Symbolic link
1
iso/airootfs/etc/systemd/system/dbus-org.bluez.service
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/bluetooth.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
|
1
iso/airootfs/etc/systemd/system/default.target
Symbolic link
1
iso/airootfs/etc/systemd/system/default.target
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/graphical.target
|
1
iso/airootfs/etc/systemd/system/display-manager.service
Symbolic link
1
iso/airootfs/etc/systemd/system/display-manager.service
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/sddm.service
|
8
iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
Normal file
8
iso/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=ramfs
|
||||
Where=/etc/pacman.d/gnupg
|
||||
Type=ramfs
|
||||
Options=mode=0755
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/ModemManager.service
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/NetworkManager.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
|
@ -0,0 +1 @@
|
||||
../pacman-init.service
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/reflector.service
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/sshd.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/wpa_supplicant.service
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/NetworkManager-wait-online.service
|
15
iso/airootfs/etc/systemd/system/pacman-init.service
Normal file
15
iso/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
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/systemd-time-wait-sync.service
|
@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/systemd-timesyncd.service
|
8
iso/airootfs/etc/xdg/reflector/reflector.conf
Normal file
8
iso/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
|
34
iso/airootfs/root/.automated_script.sh
Executable file
34
iso/airootfs/root/.automated_script.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#!/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)://) ]]; then
|
||||
curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null
|
||||
rt=$?
|
||||
else
|
||||
cp "${script}" /tmp/startup_script
|
||||
rt=$?
|
||||
fi
|
||||
if [[ ${rt} -eq 0 ]]; then
|
||||
chmod +x /tmp/startup_script
|
||||
/tmp/startup_script
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ $(tty) == "/dev/tty1" ]]; then
|
||||
automated_script
|
||||
fi
|
6
iso/airootfs/root/.zlogin
Normal file
6
iso/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
iso/airootfs/usr/local/bin/Installation_guide
Executable file
5
iso/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'
|
28
iso/airootfs/usr/local/bin/choose-mirror
Executable file
28
iso/airootfs/usr/local/bin/choose-mirror
Executable file
@ -0,0 +1,28 @@
|
||||
#!/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)
|
||||
[[ $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
|
248
iso/airootfs/usr/local/bin/livecd-sound
Executable file
248
iso/airootfs/usr/local/bin/livecd-sound
Executable file
@ -0,0 +1,248 @@
|
||||
#!/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(){
|
||||
{ [ "$3" ] &&[ "$2" ] && [ "$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()
|
||||
{
|
||||
{ [ "$1" ] && [ "$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()
|
||||
{
|
||||
{ [ "$3" ] && [ "$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" -eq 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 [[ $# -eq 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
iso/airootfs/usr/local/share/livecd-sound/asound.conf.in
Normal file
3
iso/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%;
|
Reference in New Issue
Block a user