diff --git a/netinstall-iso/airootfs/etc/hostname b/netinstall-iso/airootfs/etc/hostname index f041820fa..08b96f450 100644 --- a/netinstall-iso/airootfs/etc/hostname +++ b/netinstall-iso/airootfs/etc/hostname @@ -1 +1 @@ -blackarch +blackarchiso diff --git a/netinstall-iso/airootfs/etc/issue b/netinstall-iso/airootfs/etc/issue deleted file mode 100644 index 4a0d65248..000000000 --- a/netinstall-iso/airootfs/etc/issue +++ /dev/null @@ -1,2 +0,0 @@ ---==[ BlackArch Linux \r on \l ]==-- - diff --git a/netinstall-iso/airootfs/etc/locale.conf b/netinstall-iso/airootfs/etc/locale.conf index 01ec548f8..f9c983cc4 100644 --- a/netinstall-iso/airootfs/etc/locale.conf +++ b/netinstall-iso/airootfs/etc/locale.conf @@ -1 +1 @@ -LANG=en_US.UTF-8 +LANG=C.UTF-8 diff --git a/netinstall-iso/airootfs/etc/mkinitcpio.conf b/netinstall-iso/airootfs/etc/mkinitcpio.conf deleted file mode 100644 index fcc0e7469..000000000 --- a/netinstall-iso/airootfs/etc/mkinitcpio.conf +++ /dev/null @@ -1,70 +0,0 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - -# 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 ' 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 memdisk shutdown archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs kms 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=() diff --git a/netinstall-iso/airootfs/etc/mkinitcpio.conf.d/archiso.conf b/netinstall-iso/airootfs/etc/mkinitcpio.conf.d/archiso.conf new file mode 100644 index 000000000..5c008e51f --- /dev/null +++ b/netinstall-iso/airootfs/etc/mkinitcpio.conf.d/archiso.conf @@ -0,0 +1,3 @@ +HOOKS=(base udev microcode modconf kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs block filesystems keyboard) +COMPRESSION="xz" +COMPRESSION_OPTIONS=(-9e) diff --git a/netinstall-iso/airootfs/etc/mkinitcpio.d/linux.preset b/netinstall-iso/airootfs/etc/mkinitcpio.d/linux.preset index d35f13779..8e852051c 100644 --- a/netinstall-iso/airootfs/etc/mkinitcpio.d/linux.preset +++ b/netinstall-iso/airootfs/etc/mkinitcpio.d/linux.preset @@ -1,11 +1,8 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - # mkinitcpio preset file for the 'linux' package on archiso PRESETS=('archiso') ALL_kver='/boot/vmlinuz-linux' -ALL_config='/etc/mkinitcpio.conf' +archiso_config='/etc/mkinitcpio.conf.d/archiso.conf' archiso_image="/boot/initramfs-linux.img" diff --git a/netinstall-iso/airootfs/etc/modprobe.d/broadcom-wl.conf b/netinstall-iso/airootfs/etc/modprobe.d/broadcom-wl.conf new file mode 100644 index 000000000..0eae70c93 --- /dev/null +++ b/netinstall-iso/airootfs/etc/modprobe.d/broadcom-wl.conf @@ -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. diff --git a/netinstall-iso/airootfs/etc/motd b/netinstall-iso/airootfs/etc/motd new file mode 100644 index 000000000..4d9eda1ed --- /dev/null +++ b/netinstall-iso/airootfs/etc/motd @@ -0,0 +1,11 @@ +To install Arch Linux follow the installation guide: +https://wiki.archlinux.org/title/Installation_guide + +For Wi-Fi, authenticate to the wireless network using the iwctl utility. +For mobile broadband (WWAN) modems, connect with the mmcli 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 Installation_guide. + +                                           diff --git a/netinstall-iso/airootfs/etc/os-release b/netinstall-iso/airootfs/etc/os-release index 45e173974..8954c625b 100644 --- a/netinstall-iso/airootfs/etc/os-release +++ b/netinstall-iso/airootfs/etc/os-release @@ -1,8 +1,9 @@ -NAME="BlackArch Linux" +NAME="BlackArch" ID=blackarch +ID_LIKE=arch PRETTY_NAME="BlackArch Linux" -ANSI_COLOR="0;34" -HOME_URL="https://www.blackarch.org/" -SUPPORT_URL="https://www.blackarch.org/" -BUG_REPORT_URL="https://www.blackarch.org/" - +ANSI_COLOR="38;2;23;147;209" +HOME_URL="https://blackarch.org/" +SUPPORT_URL="https://blackarch.org/community.html" +BUG_REPORT_URL="https://github.com/BlackArch/blackarch/issues" +LOGO=blackarch diff --git a/netinstall-iso/airootfs/etc/pacman.conf b/netinstall-iso/airootfs/etc/pacman.conf index f79cc456c..46a5c9032 100644 --- a/netinstall-iso/airootfs/etc/pacman.conf +++ b/netinstall-iso/airootfs/etc/pacman.conf @@ -32,9 +32,11 @@ Architecture = auto #UseSyslog Color #NoProgressBar -#CheckSpace +CheckSpace #VerbosePkgLists ParallelDownloads = 5 +DownloadUser = alpm +#DisableSandbox # 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. @@ -69,19 +71,16 @@ LocalFileSigLevel = Optional # repo name header and Include lines. You can add preferred servers immediately # after the header, and they will be used before the default mirrors. -#[testing] +#[core-testing] #Include = /etc/pacman.d/mirrorlist [core] Include = /etc/pacman.d/mirrorlist -[extra] -Include = /etc/pacman.d/mirrorlist - -#[community-testing] +#[extra-testing] #Include = /etc/pacman.d/mirrorlist -[community] +[extra] Include = /etc/pacman.d/mirrorlist # If you want to run 32 bit applications on your x86_64 system, @@ -99,3 +98,5 @@ Include = /etc/pacman.d/mirrorlist #SigLevel = Optional TrustAll #Server = file:///home/custompkgs +[blackarch] +Include = /etc/pacman.d/blackarch-mirrorlist diff --git a/netinstall-iso/airootfs/etc/pacman.d/blackarch-mirrorlist b/netinstall-iso/airootfs/etc/pacman.d/blackarch-mirrorlist index 0e0a5503f..ceb24f3eb 100644 --- a/netinstall-iso/airootfs/etc/pacman.d/blackarch-mirrorlist +++ b/netinstall-iso/airootfs/etc/pacman.d/blackarch-mirrorlist @@ -1,18 +1,25 @@ -# Worldwide -#Server = https://mirrors.fosshost.org/blackarch/$repo/os/$arch -#Server = https://mirrors.fossho.st/blackarch/$repo/os/$arch - # Australia +#Server = http://au.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://au.mirrors.cicku.me/blackarch/$repo/os/$arch #Server = http://blackarch.mirror.digitalpacific.com.au/$repo/os/$arch # Austria #Server = http://mirror.easyname.at/blackarch/$repo/os/$arch #Server = ftp://mirror.easyname.at/blackarch/$repo/os/$arch +# Canada +#Server = http://ca.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://ca.mirrors.cicku.me/blackarch/$repo/os/$arch + # China +#Server = https://mirrors.hust.edu.cn/blackarch/$repo/os/$arch #Server = https://mirror.sjtu.edu.cn/blackarch/$repo/os/$arch +#Server = https://mirrors.nju.edu.cn/blackarch/$repo/os/$arch +#Server = http://mirrors.nju.edu.cn/blackarch/$repo/os/$arch #Server = https://mirrors.tuna.tsinghua.edu.cn/blackarch/$repo/os/$arch #Server = https://mirrors.ustc.edu.cn/blackarch/$repo/os/$arch +#Server = http://mirrors.aliyun.com/blackarch/$repo/os/$arch +#Server = https://mirrors.aliyun.com/blackarch/$repo/os/$arch # Denmark #Server = https://mirrors.dotsrc.org/blackarch/$repo/os/$arch @@ -20,31 +27,24 @@ #Server = ftp://mirrors.dotsrc.org/blackarch/$repo/os/$arch # Ecuador -#Server = http://mirror.uta.edu.ec/blackarch/$repo/os/$arch -#Server = https://mirror.uta.edu.ec/blackarch/$repo/os/$arch -#Server = ftp://mirror.uta.edu.ec/blackarch/$repo/os/$arch #Server = http://mirror.cedia.org.ec/blackarch/$repo/os/$arch #Server = https://mirror.cedia.org.ec/blackarch/$repo/os/$arch # France -#Server = https://www.blackarch.org/blackarch/$repo/os/$arch -#Server = http://www.blackarch.org/blackarch/$repo/os/$arch -#Server = http://blackarch.tamcore.eu/blackarch/$repo/os/$arch -#Server = https://blackarch.tamcore.eu/blackarch/$repo/os/$arch #Server = http://blackarch.leneveu.fr/blackarch/$repo/os/$arch -#Server = http://blackarch.pi3rrot.net/blackarch/$repo/os/$arch #Server = http://mirror.cyberbits.eu/blackarch/$repo/os/$arch #Server = https://mirror.cyberbits.eu/blackarch/$repo/os/$arch # Germany -#Server = https://mirrors.dr460nf1r3.me/repos/blackarch/$repo/os/$arch +Server = https://www.blackarch.org/blackarch/$repo/os/$arch +#Server = http://www.blackarch.org/blackarch/$repo/os/$arch +#Server = http://de.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://de.mirrors.cicku.me/blackarch/$repo/os/$arch #Server = http://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch -Server = https://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch +#Server = https://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch #Server = ftp://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch #Server = http://blackarch.unixpeople.org/$repo/os/$arch #Server = https://blackarch.unixpeople.org/$repo/os/$arch -#Server = http://mirror.undisclose.de/blackarch/$repo/os/$arch -#Server = https://mirror.undisclose.de/blackarch/$repo/os/$arch # Greece #Server = http://ftp.cc.uoc.gr/mirrors/linux/blackarch/$repo/os/$arch @@ -53,6 +53,13 @@ Server = https://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch # Great Britain #Server = http://www.mirrorservice.org/sites/blackarch.org/blackarch/$repo/os/$arch #Server = https://www.mirrorservice.org/sites/blackarch.org/blackarch/$repo/os/$arch +#Server = http://mirrors.gethosted.online/blackarch/blackarch/$repo/os/$arch +#Server = https://mirrors.gethosted.online/blackarch/blackarch/$repo/os/$arch + +# India +#Server = http://in.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://in.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://mirror.maa.albony.in/blackarch/$repo/os/$arch # Iran #Server = http://mirror.blackrepo.com/$repo/os/$arch @@ -61,20 +68,21 @@ Server = https://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch #Server = http://blackarch.mirror.garr.it/mirrors/blackarch/$repo/os/$arch # Japan +#Server = http://jp.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://jp.mirrors.cicku.me/blackarch/$repo/os/$arch #Server = http://www.ftp.ne.jp/Linux/packages/blackarch/$repo/os/$arch #Server = https://www.ftp.ne.jp/Linux/packages/blackarch/$repo/os/$arch #Server = http://ftp.kddilabs.jp/Linux/packages/blackarch/$repo/os/$arch #Server = https://ftp.kddilabs.jp/Linux/packages/blackarch/$repo/os/$arch +# Korea +#Server = https://deny.krfoss.org/blackarch/$repo/os/$arch +#Server = http://kr.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://kr.mirrors.cicku.me/blackarch/$repo/os/$arch + # Netherlands #Server = http://mirror.serverion.com/blackarch/$repo/os/$arch #Server = https://mirror.serverion.com/blackarch/$repo/os/$arch -#Server = http://mirror.neostrada.nl/blackarch/$repo/os/$arch -#Server = https://mirror.neostrada.nl/blackarch/$repo/os/$arch -#Server = ftp://mirror.neostrada.nl/blackarch/$repo/os/$arch - -# New Zealand -#Server = http://nz-mirror.intergrid.com.au/blackarch/$repo/os/$arch # Poland #Server = http://ftp.icm.edu.pl/pub/Linux/dist/blackarch/$repo/os/$arch @@ -82,15 +90,23 @@ Server = https://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch #Server = ftp://ftp.icm.edu.pl/pub/Linux/dist/blackarch/$repo/os/$arch #Server = gopher://ftp.icm.edu.pl/1/pub/Linux/dist/blackarch/$repo/os/$arch +# Portugal +#Server = http://eu.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://eu.mirrors.cicku.me/blackarch/$repo/os/$arch + +# Romania +#Server = http://mirrors.hostico.ro/blackarch/$repo/os/$arch +#Server = https://mirrors.hostico.ro/blackarch/$repo/os/$arch + # Russia -#Server = http://mirror.surf/blackarch/$repo/os/$arch -#Server = https://mirror.surf/blackarch/$repo/os/$arch -#Server = http://mirror.truenetwork.ru/blackarch/$repo/os/$arch -#Server = ftp://mirror.truenetwork.ru/blackarch/$repo/os/$arch +#Server = http://repository.su/blackarch/$repo/os/$arch +#Server = https://repository.su/blackarch/$repo/os/$arch #Server = http://mirror.yandex.ru/mirrors/blackarch/$repo/os/$arch #Server = ftp://mirror.yandex.ru/mirrors/blackarch/$repo/os/$arch # Singapore +#Server = http://sg.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://sg.mirrors.cicku.me/blackarch/$repo/os/$arch #Server = http://download.nus.edu.sg/mirror/blackarch/$repo/os/$arch #Server = https://download.nus.edu.sg/mirror/blackarch/$repo/os/$arch @@ -112,15 +128,27 @@ Server = https://ftp.halifax.rwth-aachen.de/blackarch/$repo/os/$arch #Server = ftp://ftp.linux.org.tr/blackarch/$repo/os/$arch # Taiwan -#Server = http://blackarch.cs.nctu.edu.tw/$repo/os/$arch - -# USA -#Server = http://blackarch.pr0s3c.nl/blackarch/$repo/os/$arch -#Server = https://blackarch.pr0s3c.nl/blackarch/$repo/os/$arch +#Server = http://blackarch.cs.nycu.edu.tw/$repo/os/$arch +#Server = https://blackarch.cs.nycu.edu.tw/$repo/os/$arch +#Server = http://mirror.archlinux.tw/BlackArch/$repo/os/$arch +#Server = https://mirror.archlinux.tw/BlackArch/$repo/os/$arch + +# UK +#Server = http://mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = http://mirrors.gethosted.online/blackarch/blackarch/$repo/os/$arch +#Server = https://mirrors.gethosted.online/blackarch/blackarch/$repo/os/$arch + +# US +#Server = http://us.mirrors.cicku.me/blackarch/$repo/os/$arch +#Server = https://us.mirrors.cicku.me/blackarch/$repo/os/$arch #Server = http://mirror.math.princeton.edu/pub/blackarch/$repo/os/$arch #Server = http://distro.ibiblio.org/blackarch/$repo/os/$arch #Server = ftp://distro.ibiblio.org/blackarch/$repo/os/$arch -#Server = https://deadbeef.ninja/blackarch/$repo/os/$arch -#Server = http://mirror.team-cymru.com/blackarch/$repo/os/$arch +#Server = https://mirror.team-cymru.com/blackarch/$repo/os/$arch #Server = ftp://mirror.team-cymru.com/blackarch/$repo/os/$arch +#Server = https://mirrors.ocf.berkeley.edu/blackarch/$repo/os/$arch +#Server = http://mirrors.ocf.berkeley.edu/blackarch/$repo/os/$arch +#Server = https://ftp2.osuosl.org/pub/blackarch/$repo/os/$arch +#Server = http://ftp2.osuosl.org/pub/blackarch/$repo/os/$arch diff --git a/netinstall-iso/airootfs/etc/pacman.d/gnupg/gpg.conf b/netinstall-iso/airootfs/etc/pacman.d/gnupg/gpg.conf deleted file mode 100644 index 29a6c1a79..000000000 --- a/netinstall-iso/airootfs/etc/pacman.d/gnupg/gpg.conf +++ /dev/null @@ -1,5 +0,0 @@ -no-greeting -no-permission-warning -lock-never -keyserver hkp://pool.sks-keyservers.net -keyserver-options timeout=10 diff --git a/netinstall-iso/airootfs/etc/pacman.d/gnupg/pubring.gpg b/netinstall-iso/airootfs/etc/pacman.d/gnupg/pubring.gpg deleted file mode 100644 index c04959dfa..000000000 Binary files a/netinstall-iso/airootfs/etc/pacman.d/gnupg/pubring.gpg and /dev/null differ diff --git a/netinstall-iso/airootfs/etc/pacman.d/gnupg/pubring.gpg~ b/netinstall-iso/airootfs/etc/pacman.d/gnupg/pubring.gpg~ deleted file mode 100644 index c04959dfa..000000000 Binary files a/netinstall-iso/airootfs/etc/pacman.d/gnupg/pubring.gpg~ and /dev/null differ diff --git a/netinstall-iso/airootfs/etc/pacman.d/gnupg/random_seed b/netinstall-iso/airootfs/etc/pacman.d/gnupg/random_seed deleted file mode 100644 index 4af0548a7..000000000 Binary files a/netinstall-iso/airootfs/etc/pacman.d/gnupg/random_seed and /dev/null differ diff --git a/netinstall-iso/airootfs/etc/pacman.d/gnupg/secring.gpg b/netinstall-iso/airootfs/etc/pacman.d/gnupg/secring.gpg deleted file mode 100644 index 5005ea5a1..000000000 Binary files a/netinstall-iso/airootfs/etc/pacman.d/gnupg/secring.gpg and /dev/null differ diff --git a/netinstall-iso/airootfs/etc/pacman.d/gnupg/trustdb.gpg b/netinstall-iso/airootfs/etc/pacman.d/gnupg/trustdb.gpg deleted file mode 100644 index 8bb8f13eb..000000000 Binary files a/netinstall-iso/airootfs/etc/pacman.d/gnupg/trustdb.gpg and /dev/null differ diff --git a/netinstall-iso/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook b/netinstall-iso/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook new file mode 100644 index 000000000..342aa95b4 --- /dev/null +++ b/netinstall-iso/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook @@ -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 diff --git a/netinstall-iso/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/netinstall-iso/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook new file mode 100644 index 000000000..8dfb94354 --- /dev/null +++ b/netinstall-iso/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook @@ -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/)" diff --git a/netinstall-iso/airootfs/etc/pacman.d/mirrorlist b/netinstall-iso/airootfs/etc/pacman.d/mirrorlist deleted file mode 100644 index 4c3f66cb2..000000000 --- a/netinstall-iso/airootfs/etc/pacman.d/mirrorlist +++ /dev/null @@ -1,758 +0,0 @@ -## -## Arch Linux repository mirrorlist -## Generated on 2021-08-08 -## - -## Worldwide -#Server = http://mirrors.evowise.com/archlinux/$repo/os/$arch -Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch - -## Australia -#Server = https://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch -#Server = https://archlinux.mirror.digitalpacific.com.au/$repo/os/$arch -#Server = http://ftp.iinet.net.au/pub/archlinux/$repo/os/$arch -#Server = http://mirror.internode.on.net/pub/archlinux/$repo/os/$arch -#Server = http://mirror.launtel.net.au/repo/arch/$repo/os/$arch -#Server = https://mirror.launtel.net.au/repo/arch/$repo/os/$arch -#Server = http://arch.lucassymons.net/$repo/os/$arch -#Server = https://arch.lucassymons.net/$repo/os/$arch -#Server = http://syd.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://syd.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = http://ftp.swin.edu.au/archlinux/$repo/os/$arch - -## Austria -#Server = http://mirror.digitalnova.at/archlinux/$repo/os/$arch -#Server = http://mirror.easyname.at/archlinux/$repo/os/$arch -#Server = http://mirror.reisenbauer.ee/archlinux/$repo/os/$arch -#Server = https://mirror.reisenbauer.ee/archlinux/$repo/os/$arch - -## Bangladesh -#Server = http://mirror.xeonbd.com/archlinux/$repo/os/$arch - -## Belarus -#Server = http://ftp.byfly.by/pub/archlinux/$repo/os/$arch -#Server = http://mirror.datacenter.by/pub/archlinux/$repo/os/$arch - -## Belgium -#Server = http://archlinux.cu.be/$repo/os/$arch -#Server = http://archlinux.mirror.kangaroot.net/$repo/os/$arch -#Server = http://mirror.tiguinet.net/arch/$repo/os/$arch - -## Bosnia and Herzegovina -#Server = http://archlinux.mirror.ba/$repo/os/$arch - -## Brazil -#Server = http://br.mirror.archlinux-br.org/$repo/os/$arch -#Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch -#Server = http://www.caco.ic.unicamp.br/archlinux/$repo/os/$arch -#Server = https://www.caco.ic.unicamp.br/archlinux/$repo/os/$arch -#Server = http://linorg.usp.br/archlinux/$repo/os/$arch -#Server = http://archlinux.pop-es.rnp.br/$repo/os/$arch -#Server = http://mirror.ufam.edu.br/archlinux/$repo/os/$arch -#Server = http://mirror.ufscar.br/archlinux/$repo/os/$arch - -## Bulgaria -#Server = https://mirror.darklinux.uk/archlinux/$repo/os/$arch -#Server = http://mirror.host.ag/archlinux/$repo/os/$arch -#Server = http://mirrors.netix.net/archlinux/$repo/os/$arch -#Server = http://mirror.telepoint.bg/archlinux/$repo/os/$arch -#Server = https://mirror.telepoint.bg/archlinux/$repo/os/$arch -#Server = http://mirrors.uni-plovdiv.net/archlinux/$repo/os/$arch -#Server = https://mirrors.uni-plovdiv.net/archlinux/$repo/os/$arch - -## Canada -#Server = https://mirror.0xem.ma/arch/$repo/os/$arch -#Server = http://mirror.cedille.club/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.colo-serv.net/$repo/os/$arch -#Server = http://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch -#Server = https://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch -#Server = http://mirror2.evolution-host.com/archlinux/$repo/os/$arch -#Server = https://mirror2.evolution-host.com/archlinux/$repo/os/$arch -#Server = http://mirror.its.dal.ca/archlinux/$repo/os/$arch -#Server = http://muug.ca/mirror/archlinux/$repo/os/$arch -#Server = https://muug.ca/mirror/archlinux/$repo/os/$arch -#Server = http://arch.powerfly.ca/$repo/os/$arch -#Server = https://arch.powerfly.ca/$repo/os/$arch -#Server = http://archlinux.mirror.rafal.ca/$repo/os/$arch -#Server = http://mirror.scd31.com/arch/$repo/os/$arch -#Server = https://mirror.scd31.com/arch/$repo/os/$arch -#Server = http://mirror.sergal.org/archlinux/$repo/os/$arch -#Server = https://mirror.sergal.org/archlinux/$repo/os/$arch - -## Chile -#Server = http://mirror.anquan.cl/archlinux/$repo/os/$arch -#Server = http://mirror.archlinux.cl/$repo/os/$arch -#Server = http://mirror1.cl.netactuate.com/archlinux/$repo/os/$arch -#Server = https://mirror1.cl.netactuate.com/archlinux/$repo/os/$arch -#Server = http://mirror.ufro.cl/archlinux/$repo/os/$arch -#Server = https://mirror.ufro.cl/archlinux/$repo/os/$arch - -## China -#Server = http://mirrors.163.com/archlinux/$repo/os/$arch -#Server = http://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.dgut.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.dgut.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.hit.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.nju.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirror.redrock.team/archlinux/$repo/os/$arch -#Server = https://mirror.redrock.team/archlinux/$repo/os/$arch -#Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch -#Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch -#Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch - -## Colombia -#Server = http://mirrors.udenar.edu.co/archlinux/$repo/os/$arch - -## Croatia -#Server = http://archlinux.iskon.hr/$repo/os/$arch - -## Czechia -#Server = http://mirror.dkm.cz/archlinux/$repo/os/$arch -#Server = https://mirror.dkm.cz/archlinux/$repo/os/$arch -#Server = https://europe.mirror.pkgbuild.com/$repo/os/$arch -#Server = http://ftp.fi.muni.cz/pub/linux/arch/$repo/os/$arch -#Server = http://ftp.linux.cz/pub/linux/arch/$repo/os/$arch -#Server = http://gluttony.sin.cvut.cz/arch/$repo/os/$arch -#Server = https://gluttony.sin.cvut.cz/arch/$repo/os/$arch -#Server = http://mirrors.nic.cz/archlinux/$repo/os/$arch -#Server = http://ftp.sh.cvut.cz/arch/$repo/os/$arch -#Server = https://ftp.sh.cvut.cz/arch/$repo/os/$arch -#Server = http://mirror.vpsfree.cz/archlinux/$repo/os/$arch - -## Denmark -#Server = http://mirrors.dotsrc.org/archlinux/$repo/os/$arch -#Server = https://mirrors.dotsrc.org/archlinux/$repo/os/$arch -#Server = http://mirror.one.com/archlinux/$repo/os/$arch -#Server = https://mirror.one.com/archlinux/$repo/os/$arch - -## Ecuador -#Server = http://mirror.cedia.org.ec/archlinux/$repo/os/$arch -#Server = http://mirror.espoch.edu.ec/archlinux/$repo/os/$arch -#Server = http://mirror.uta.edu.ec/archlinux/$repo/os/$arch - -## Estonia -#Server = http://mirror.cspacehostings.com/archlinux/$repo/os/$arch -#Server = https://mirror.cspacehostings.com/archlinux/$repo/os/$arch -#Server = http://mirrors.xtom.ee/archlinux/$repo/os/$arch -#Server = https://mirrors.xtom.ee/archlinux/$repo/os/$arch - -## Finland -#Server = https://arch.mcstrugs.org/$repo/os/$arch -#Server = http://mirror.arctic.lol/ArchMirror/$repo/os/$arch -#Server = http://arch.mirror.far.fi/$repo/os/$arch -#Server = http://mirror.hosthink.net/archlinux/$repo/os/$arch -#Server = https://mirror.srv.fail/archlinux/$repo/os/$arch -#Server = http://mirror.wuki.li/archlinux/$repo/os/$arch -#Server = https://mirror.wuki.li/archlinux/$repo/os/$arch -#Server = http://arch.yhtez.xyz/$repo/os/$arch -#Server = https://arch.yhtez.xyz/$repo/os/$arch - -## France -#Server = http://archlinux.de-labrusse.fr/$repo/os/$arch -#Server = http://mirror.archlinux.ikoula.com/archlinux/$repo/os/$arch -#Server = https://archlinux.vi-di.fr/$repo/os/$arch -#Server = http://archlinux.mirrors.benatherton.com/$repo/os/$arch -#Server = http://mirror.cyberbits.eu/archlinux/$repo/os/$arch -#Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch -#Server = http://archlinux.datagr.am/$repo/os/$arch -#Server = https://mirrors.eric.ovh/arch/$repo/os/$arch -#Server = http://mirror.ibcp.fr/pub/archlinux/$repo/os/$arch -#Server = http://mirror.lastmikoi.net/archlinux/$repo/os/$arch -#Server = https://arch-mirror.cloud.louifox.house/$repo/os/$arch -#Server = http://archlinux.mailtunnel.eu/$repo/os/$arch -#Server = https://archlinux.mailtunnel.eu/$repo/os/$arch -#Server = http://mir.archlinux.fr/$repo/os/$arch -#Server = http://mirrors.celianvdb.fr/archlinux/$repo/os/$arch -#Server = https://mirrors.celianvdb.fr/archlinux/$repo/os/$arch -#Server = http://arch.nimukaito.net/$repo/os/$arch -#Server = https://arch.nimukaito.net/$repo/os/$arch -#Server = http://mirror.oldsql.cc/archlinux/$repo/os/$arch -#Server = https://mirror.oldsql.cc/archlinux/$repo/os/$arch -#Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch -#Server = http://archlinux.polymorf.fr/$repo/os/$arch -#Server = http://archlinux.rezopole.net/$repo/os/$arch -#Server = https://mirrors.slaanesh.org/archlinux/$repo/os/$arch -#Server = http://mirrors.standaloneinstaller.com/archlinux/$repo/os/$arch -#Server = https://mirror.sysa.tech/archlinux/$repo/os/$arch -#Server = https://mirror.thekinrar.fr/archlinux/$repo/os/$arch -#Server = http://ftp.u-strasbg.fr/linux/distributions/archlinux/$repo/os/$arch -#Server = https://mirror.wormhole.eu/archlinux/$repo/os/$arch -#Server = http://mirroir.wptheme.fr/archlinux/$repo/os/$arch -#Server = https://mirroir.wptheme.fr/archlinux/$repo/os/$arch -#Server = http://arch.yourlabs.org/$repo/os/$arch -#Server = https://arch.yourlabs.org/$repo/os/$arch - -## Georgia -#Server = http://archlinux.grena.ge/$repo/os/$arch -#Server = https://archlinux.grena.ge/$repo/os/$arch - -## Germany -#Server = http://mirror.23m.com/archlinux/$repo/os/$arch -#Server = https://mirror.23m.com/archlinux/$repo/os/$arch -#Server = http://ftp.agdsn.de/pub/mirrors/archlinux/$repo/os/$arch -#Server = https://ftp.agdsn.de/pub/mirrors/archlinux/$repo/os/$arch -#Server = https://appuals.com/archlinux/$repo/os/$arch -#Server = http://artfiles.org/archlinux.org/$repo/os/$arch -#Server = https://mirror.bethselamin.de/$repo/os/$arch -#Server = http://mirror.chaoticum.net/arch/$repo/os/$arch -#Server = https://mirror.chaoticum.net/arch/$repo/os/$arch -#Server = http://mirror.checkdomain.de/archlinux/$repo/os/$arch -#Server = https://mirror.checkdomain.de/archlinux/$repo/os/$arch -#Server = http://mirror.clientvps.com/archlinux/$repo/os/$arch -#Server = https://mirror.clientvps.com/archlinux/$repo/os/$arch -#Server = https://mirror.dogado.de/archlinux/$repo/os/$arch -#Server = http://mirror.f4st.host/archlinux/$repo/os/$arch -#Server = https://mirror.f4st.host/archlinux/$repo/os/$arch -#Server = http://ftp.fau.de/archlinux/$repo/os/$arch -#Server = https://ftp.fau.de/archlinux/$repo/os/$arch -#Server = https://pkg.fef.moe/archlinux/$repo/os/$arch -#Server = https://dist-mirror.fem.tu-ilmenau.de/archlinux/$repo/os/$arch -#Server = http://mirror.fsrv.services/archlinux/$repo/os/$arch -#Server = https://mirror.fsrv.services/archlinux/$repo/os/$arch -#Server = https://mirror.gnomus.de/$repo/os/$arch -#Server = http://www.gutscheindrache.com/mirror/archlinux/$repo/os/$arch -#Server = http://ftp.gwdg.de/pub/linux/archlinux/$repo/os/$arch -#Server = http://archlinux.honkgong.info/$repo/os/$arch -#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch -#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.iphh.net/$repo/os/$arch -#Server = http://arch.jensgutermuth.de/$repo/os/$arch -#Server = https://arch.jensgutermuth.de/$repo/os/$arch -#Server = http://mirror.kumi.systems/archlinux/$repo/os/$arch -#Server = https://mirror.kumi.systems/archlinux/$repo/os/$arch -#Server = http://mirror.fra10.de.leaseweb.net/archlinux/$repo/os/$arch -#Server = https://mirror.fra10.de.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://mirror.metalgamer.eu/archlinux/$repo/os/$arch -#Server = https://mirror.metalgamer.eu/archlinux/$repo/os/$arch -#Server = http://mirror.mikrogravitation.org/archlinux/$repo/os/$arch -#Server = https://mirror.mikrogravitation.org/archlinux/$repo/os/$arch -#Server = https://mirror.pkgbuild.com/$repo/os/$arch -#Server = http://mirror.moson.org/arch/$repo/os/$arch -#Server = https://mirror.moson.org/arch/$repo/os/$arch -#Server = http://mirrors.n-ix.net/archlinux/$repo/os/$arch -#Server = https://mirrors.n-ix.net/archlinux/$repo/os/$arch -#Server = http://mirror.netcologne.de/archlinux/$repo/os/$arch -#Server = https://mirror.netcologne.de/archlinux/$repo/os/$arch -#Server = http://mirrors.niyawe.de/archlinux/$repo/os/$arch -#Server = https://mirrors.niyawe.de/archlinux/$repo/os/$arch -#Server = http://mirror.orbit-os.com/archlinux/$repo/os/$arch -#Server = https://mirror.orbit-os.com/archlinux/$repo/os/$arch -#Server = http://packages.oth-regensburg.de/archlinux/$repo/os/$arch -#Server = https://packages.oth-regensburg.de/archlinux/$repo/os/$arch -#Server = http://phinau.de/arch/$repo/os/$arch -#Server = https://phinau.de/arch/$repo/os/$arch -#Server = https://mirror.pseudoform.org/$repo/os/$arch -#Server = https://www.ratenzahlung.de/mirror/archlinux/$repo/os/$arch -#Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch -#Server = https://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch -#Server = http://linux.rz.rub.de/archlinux/$repo/os/$arch -#Server = http://mirror.satis-faction.de/archlinux/$repo/os/$arch -#Server = https://mirror.satis-faction.de/archlinux/$repo/os/$arch -#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch -#Server = https://mirror.selfnet.de/archlinux/$repo/os/$arch -#Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch -#Server = https://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch -#Server = http://archlinux.thaller.ws/$repo/os/$arch -#Server = https://archlinux.thaller.ws/$repo/os/$arch -#Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch -#Server = http://mirror.ubrco.de/archlinux/$repo/os/$arch -#Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch -#Server = http://mirror.undisclose.de/archlinux/$repo/os/$arch -#Server = https://mirror.undisclose.de/archlinux/$repo/os/$arch -#Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch -#Server = http://ftp.uni-hannover.de/archlinux/$repo/os/$arch -#Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch -#Server = http://mirror.united-gameserver.de/archlinux/$repo/os/$arch -#Server = https://arch.unixpeople.org/$repo/os/$arch -#Server = http://ftp.wrz.de/pub/archlinux/$repo/os/$arch -#Server = https://ftp.wrz.de/pub/archlinux/$repo/os/$arch -#Server = http://mirror.wtnet.de/arch/$repo/os/$arch -#Server = https://mirror.wtnet.de/arch/$repo/os/$arch -#Server = http://mirrors.xtom.de/archlinux/$repo/os/$arch -#Server = https://mirrors.xtom.de/archlinux/$repo/os/$arch -#Server = http://arch.mirror.zachlge.org/$repo/os/$arch -#Server = https://arch.mirror.zachlge.org/$repo/os/$arch - -## Greece -#Server = http://ftp.cc.uoc.gr/mirrors/linux/archlinux/$repo/os/$arch -#Server = https://repo.greeklug.gr/data/pub/linux/archlinux/$repo/os/$arch -#Server = http://mirrors.myaegean.gr/linux/archlinux/$repo/os/$arch -#Server = http://ftp.ntua.gr/pub/linux/archlinux/$repo/os/$arch -#Server = http://ftp.otenet.gr/linux/archlinux/$repo/os/$arch - -## Hong Kong -#Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch -#Server = http://mirror-hk.koddos.net/archlinux/$repo/os/$arch -#Server = https://mirror-hk.koddos.net/archlinux/$repo/os/$arch -#Server = http://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://arch-mirror.wtako.net/$repo/os/$arch -#Server = http://mirror.xtom.com.hk/archlinux/$repo/os/$arch -#Server = https://mirror.xtom.com.hk/archlinux/$repo/os/$arch - -## Hungary -#Server = http://ftp.ek-cer.hu/pub/mirrors/ftp.archlinux.org/$repo/os/$arch -#Server = http://archmirror.hbit.sztaki.hu/archlinux/$repo/os/$arch -#Server = http://nova.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch -#Server = http://quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch -#Server = http://super.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch -#Server = https://nova.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch -#Server = https://quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch -#Server = https://super.quantum-mirror.hu/mirrors/pub/archlinux/$repo/os/$arch - -## Iceland -#Server = http://mirror.system.is/arch/$repo/os/$arch -#Server = https://mirror.system.is/arch/$repo/os/$arch - -## India -#Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch -#Server = http://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch -#Server = https://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch - -## Indonesia -#Server = http://mirror.cloudweeb.com/archlinux/$repo/os/$arch -#Server = http://mirror.faizuladib.com/archlinux/$repo/os/$arch -#Server = http://mirror.gi.co.id/archlinux/$repo/os/$arch -#Server = https://mirror.gi.co.id/archlinux/$repo/os/$arch -#Server = http://vpsmurah.jagoanhosting.com/archlinux/$repo/os/$arch -#Server = https://vpsmurah.jagoanhosting.com/archlinux/$repo/os/$arch -#Server = http://mirror.labkom.id/archlinux/$repo/os/$arch -#Server = http://mirror.papua.go.id/archlinux/$repo/os/$arch -#Server = https://mirror.papua.go.id/archlinux/$repo/os/$arch -#Server = http://mirror.poliwangi.ac.id/archlinux/$repo/os/$arch -#Server = http://suro.ubaya.ac.id/archlinux/$repo/os/$arch -#Server = http://mirror.telkomuniversity.ac.id/archlinux/$repo/os/$arch -#Server = https://mirror.telkomuniversity.ac.id/archlinux/$repo/os/$arch - -## Iran -#Server = http://mirror.hostiran.ir/archlinux/$repo/os/$arch -#Server = https://mirror.hostiran.ir/archlinux/$repo/os/$arch -#Server = http://repo.iut.ac.ir/repo/archlinux/$repo/os/$arch -#Server = http://mirror.nak-mci.ir/arch/$repo/os/$arch -#Server = http://mirror.rasanegar.com/archlinux/$repo/os/$arch -#Server = https://mirror.rasanegar.com/archlinux/$repo/os/$arch - -## Ireland -#Server = http://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch -#Server = https://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/$arch - -## Israel -#Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch -#Server = https://mirror.isoc.org.il/pub/archlinux/$repo/os/$arch -#Server = https://archlinux.mivzakim.net/$repo/os/$arch - -## Italy -#Server = https://archmirror.it/repos/$repo/os/$arch -#Server = http://archlinux.mirror.garr.it/archlinux/$repo/os/$arch -#Server = http://mirrors.prometeus.net/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.server24.net/$repo/os/$arch -#Server = https://archlinux.mirror.server24.net/$repo/os/$arch - -## Japan -#Server = http://mirrors.cat.net/archlinux/$repo/os/$arch -#Server = https://mirrors.cat.net/archlinux/$repo/os/$arch -#Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch -#Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch -#Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch - -## Kazakhstan -#Server = http://mirror.hoster.kz/archlinux/$repo/os/$arch -#Server = https://mirror.hoster.kz/archlinux/$repo/os/$arch -#Server = http://mirror.ps.kz/archlinux/$repo/os/$arch -#Server = https://mirror.ps.kz/archlinux/$repo/os/$arch - -## Kenya -#Server = http://archlinux.mirror.liquidtelecom.com/$repo/os/$arch -#Server = https://archlinux.mirror.liquidtelecom.com/$repo/os/$arch - -## Latvia -#Server = http://archlinux.koyanet.lv/archlinux/$repo/os/$arch -#Server = https://archlinux.koyanet.lv/archlinux/$repo/os/$arch - -## Lithuania -#Server = http://mirrors.atviras.lt/archlinux/$repo/os/$arch -#Server = https://mirrors.atviras.lt/archlinux/$repo/os/$arch -#Server = http://mirrors.ims.nksc.lt/archlinux/$repo/os/$arch -#Server = https://mirrors.ims.nksc.lt/archlinux/$repo/os/$arch - -## Luxembourg -#Server = http://archlinux.mirror.root.lu/$repo/os/$arch - -## Mexico -#Server = https://arch.mirror.jsc.mx/$repo/os/$arch - -## Moldova -#Server = http://mirror.ihost.md/archlinux/$repo/os/$arch -#Server = https://mirror.ihost.md/archlinux/$repo/os/$arch - -## Monaco -#Server = http://archlinux.qontinuum.space/$repo/os/$arch -#Server = https://archlinux.qontinuum.space:4443/$repo/os/$arch - -## Netherlands -#Server = https://archlinux.beccacervello.it/archlinux/$repo/os/$arch -#Server = http://mirror.cj2.nl/archlinux/$repo/os/$arch -#Server = https://mirror.cj2.nl/archlinux/$repo/os/$arch -#Server = https://mirrors.daan.vodka/archlinux/$repo/os/$arch -#Server = http://mirror.erickochen.nl/archlinux/$repo/os/$arch -#Server = https://mirror.erickochen.nl/archlinux/$repo/os/$arch -#Server = http://mirror.i3d.net/pub/archlinux/$repo/os/$arch -#Server = https://mirror.i3d.net/pub/archlinux/$repo/os/$arch -#Server = https://arch.jeweet.net/$repo/os/$arch -#Server = http://mirror.koddos.net/archlinux/$repo/os/$arch -#Server = https://mirror.koddos.net/archlinux/$repo/os/$arch -#Server = http://arch.mirrors.lavatech.top/$repo/os/$arch -#Server = https://arch.mirrors.lavatech.top/$repo/os/$arch -#Server = http://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch -#Server = https://mirror.ams1.nl.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.liteserver.nl/$repo/os/$arch -#Server = https://archlinux.mirror.liteserver.nl/$repo/os/$arch -#Server = http://mirror.lyrahosting.com/archlinux/$repo/os/$arch -#Server = https://mirror.lyrahosting.com/archlinux/$repo/os/$arch -#Server = http://mirror.mijn.host/archlinux/$repo/os/$arch -#Server = https://mirror.mijn.host/archlinux/$repo/os/$arch -#Server = http://mirror.neostrada.nl/archlinux/$repo/os/$arch -#Server = https://mirror.neostrada.nl/archlinux/$repo/os/$arch -#Server = http://ftp.nluug.nl/os/Linux/distr/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.pcextreme.nl/$repo/os/$arch -#Server = https://archlinux.mirror.pcextreme.nl/$repo/os/$arch -#Server = http://mirror.serverion.com/archlinux/$repo/os/$arch -#Server = https://mirror.serverion.com/archlinux/$repo/os/$arch -#Server = http://ftp.snt.utwente.nl/pub/os/linux/archlinux/$repo/os/$arch -#Server = http://mirror.tarellia.net/distr/archlinux/$repo/os/$arch -#Server = https://mirror.tarellia.net/distr/archlinux/$repo/os/$arch -#Server = http://archlinux.mirror.wearetriple.com/$repo/os/$arch -#Server = https://archlinux.mirror.wearetriple.com/$repo/os/$arch -#Server = http://mirror-archlinux.webruimtehosting.nl/$repo/os/$arch -#Server = https://mirror-archlinux.webruimtehosting.nl/$repo/os/$arch -#Server = http://mirrors.xtom.nl/archlinux/$repo/os/$arch -#Server = https://mirrors.xtom.nl/archlinux/$repo/os/$arch - -## New Caledonia -#Server = http://mirror.lagoon.nc/pub/archlinux/$repo/os/$arch -#Server = http://archlinux.nautile.nc/archlinux/$repo/os/$arch -#Server = https://archlinux.nautile.nc/archlinux/$repo/os/$arch - -## New Zealand -#Server = http://mirror.2degrees.nz/archlinux/$repo/os/$arch -#Server = https://mirror.2degrees.nz/archlinux/$repo/os/$arch -#Server = http://mirror.fsmg.org.nz/archlinux/$repo/os/$arch -#Server = https://mirror.fsmg.org.nz/archlinux/$repo/os/$arch -#Server = http://mirror.smith.geek.nz/archlinux/$repo/os/$arch -#Server = https://mirror.smith.geek.nz/archlinux/$repo/os/$arch - -## North Macedonia -#Server = http://arch.softver.org.mk/archlinux/$repo/os/$arch -#Server = http://mirror.onevip.mk/archlinux/$repo/os/$arch -#Server = http://mirror.t-home.mk/archlinux/$repo/os/$arch -#Server = https://mirror.t-home.mk/archlinux/$repo/os/$arch - -## Norway -#Server = http://mirror.archlinux.no/$repo/os/$arch -#Server = https://mirror.archlinux.no/$repo/os/$arch -#Server = http://archlinux.uib.no/$repo/os/$arch -#Server = http://mirror.neuf.no/archlinux/$repo/os/$arch -#Server = https://mirror.neuf.no/archlinux/$repo/os/$arch -#Server = http://mirror.terrahost.no/linux/archlinux/$repo/os/$arch - -## Pakistan -#Server = http://repo.inara.pk/archlinux/$repo/os/$arch -#Server = https://repo.inara.pk/archlinux/$repo/os/$arch - -## Paraguay -#Server = http://archlinux.mirror.py/archlinux/$repo/os/$arch - -## Poland -#Server = http://ftp.icm.edu.pl/pub/Linux/dist/archlinux/$repo/os/$arch -#Server = https://ftp.icm.edu.pl/pub/Linux/dist/archlinux/$repo/os/$arch -#Server = http://mirror.juniorjpdj.pl/archlinux/$repo/os/$arch -#Server = https://mirror.juniorjpdj.pl/archlinux/$repo/os/$arch -#Server = http://arch.midov.pl/arch/$repo/os/$arch -#Server = https://arch.midov.pl/arch/$repo/os/$arch -#Server = http://arch.nixlab.pl/$repo/os/$arch -#Server = https://arch.nixlab.pl/$repo/os/$arch -#Server = http://mirror.onet.pl/pub/mirrors/archlinux/$repo/os/$arch -#Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/$arch -#Server = http://mirror.sfinae.tech/pub/mirrors/archlinux/$repo/os/$arch -#Server = https://mirror.sfinae.tech/pub/mirrors/archlinux/$repo/os/$arch -#Server = http://repo.skni.umcs.pl/archlinux/$repo/os/$arch -#Server = https://repo.skni.umcs.pl/archlinux/$repo/os/$arch -#Server = http://ftp.vectranet.pl/archlinux/$repo/os/$arch - -## Portugal -#Server = http://glua.ua.pt/pub/archlinux/$repo/os/$arch -#Server = https://glua.ua.pt/pub/archlinux/$repo/os/$arch -#Server = http://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch -#Server = https://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch - -## Romania -#Server = http://mirrors.chroot.ro/archlinux/$repo/os/$arch -#Server = https://mirrors.chroot.ro/archlinux/$repo/os/$arch -#Server = http://mirror.efect.ro/archlinux/$repo/os/$arch -#Server = https://mirror.efect.ro/archlinux/$repo/os/$arch -#Server = http://mirrors.go.ro/archlinux/$repo/os/$arch -#Server = https://mirrors.go.ro/archlinux/$repo/os/$arch -#Server = http://mirrors.hostico.ro/archlinux/$repo/os/$arch -#Server = https://mirrors.hostico.ro/archlinux/$repo/os/$arch -#Server = http://archlinux.mirrors.linux.ro/$repo/os/$arch -#Server = http://mirrors.m247.ro/archlinux/$repo/os/$arch -#Server = http://mirrors.nav.ro/archlinux/$repo/os/$arch -#Server = http://mirrors.nxthost.com/archlinux/$repo/os/$arch -#Server = https://mirrors.nxthost.com/archlinux/$repo/os/$arch -#Server = http://mirrors.pidginhost.com/arch/$repo/os/$arch -#Server = https://mirrors.pidginhost.com/arch/$repo/os/$arch - -## Russia -#Server = http://mirror.surf/archlinux/$repo/os/$arch -#Server = https://mirror.surf/archlinux/$repo/os/$arch -#Server = http://mirror.nw-sys.ru/archlinux/$repo/os/$arch -#Server = https://mirror.nw-sys.ru/archlinux/$repo/os/$arch -#Server = http://mirrors.powernet.com.ru/archlinux/$repo/os/$arch -#Server = http://mirror.rol.ru/archlinux/$repo/os/$arch -#Server = https://mirror.rol.ru/archlinux/$repo/os/$arch -#Server = http://mirror.truenetwork.ru/archlinux/$repo/os/$arch -#Server = https://mirror.truenetwork.ru/archlinux/$repo/os/$arch -#Server = http://mirror.yandex.ru/archlinux/$repo/os/$arch -#Server = https://mirror.yandex.ru/archlinux/$repo/os/$arch -#Server = http://archlinux.zepto.cloud/$repo/os/$arch - -## Réunion -#Server = http://arch.mithril.re/$repo/os/$arch - -## Serbia -#Server = http://arch.petarmaric.com/$repo/os/$arch -#Server = http://mirror.pmf.kg.ac.rs/archlinux/$repo/os/$arch - -## Singapore -#Server = http://mirror.0x.sg/archlinux/$repo/os/$arch -#Server = https://mirror.0x.sg/archlinux/$repo/os/$arch -#Server = http://mirror.aktkn.sg/archlinux/$repo/os/$arch -#Server = https://mirror.aktkn.sg/archlinux/$repo/os/$arch -#Server = https://download.nus.edu.sg/mirror/archlinux/$repo/os/$arch -#Server = http://mirror.guillaumea.fr/archlinux/$repo/os/$arch -#Server = https://mirror.guillaumea.fr/archlinux/$repo/os/$arch -#Server = http://mirror.nus.edu.sg/archlinux/$repo/os/$arch - -## Slovakia -#Server = http://mirror.lnx.sk/pub/linux/archlinux/$repo/os/$arch -#Server = https://mirror.lnx.sk/pub/linux/archlinux/$repo/os/$arch -#Server = http://tux.rainside.sk/archlinux/$repo/os/$arch - -## Slovenia -#Server = http://archimonde.ts.si/archlinux/$repo/os/$arch -#Server = https://archimonde.ts.si/archlinux/$repo/os/$arch - -## South Africa -#Server = http://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch -#Server = https://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch -#Server = http://za.mirror.archlinux-br.org/$repo/os/$arch -#Server = http://mirror.is.co.za/mirror/archlinux.org/$repo/os/$arch -#Server = http://arch.opnmirror.co.za/$repo/os/$arch -#Server = https://arch.opnmirror.co.za/$repo/os/$arch -#Server = http://mirrors.urbanwave.co.za/archlinux/$repo/os/$arch -#Server = https://mirrors.urbanwave.co.za/archlinux/$repo/os/$arch - -## South Korea -#Server = http://mirror.anigil.com/archlinux/$repo/os/$arch -#Server = https://mirror.anigil.com/archlinux/$repo/os/$arch -#Server = http://ftp.harukasan.org/archlinux/$repo/os/$arch -#Server = https://ftp.harukasan.org/archlinux/$repo/os/$arch -#Server = http://ftp.lanet.kr/pub/archlinux/$repo/os/$arch -#Server = https://ftp.lanet.kr/pub/archlinux/$repo/os/$arch -#Server = http://mirror.premi.st/archlinux/$repo/os/$arch -#Server = https://mirror.premi.st/archlinux/$repo/os/$arch - -## Spain -#Server = https://mirror.cloroformo.org/archlinux/$repo/os/$arch -#Server = http://mirror.librelabucm.org/archlinux/$repo/os/$arch -#Server = https://mirror.librelabucm.org/archlinux/$repo/os/$arch -#Server = http://ftp.rediris.es/mirror/archlinux/$repo/os/$arch -#Server = http://sharing.thelinuxsect.com/archlinux/$repo/os/$arch - -## Sweden -#Server = http://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch -#Server = https://ftp.acc.umu.se/mirror/archlinux/$repo/os/$arch -#Server = http://ftpmirror.infania.net/mirror/archlinux/$repo/os/$arch -#Server = https://ftp.ludd.ltu.se/mirrors/archlinux/$repo/os/$arch -#Server = http://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch -#Server = https://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch -#Server = http://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch -#Server = https://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch -#Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch -#Server = http://tedwall.se/archlinux/$repo/os/$arch -#Server = https://tedwall.se/archlinux/$repo/os/$arch - -## Switzerland -#Server = http://pkg.adfinis.com/archlinux/$repo/os/$arch -#Server = https://pkg.adfinis.com/archlinux/$repo/os/$arch -#Server = http://mirror.init7.net/archlinux/$repo/os/$arch -#Server = https://mirror.init7.net/archlinux/$repo/os/$arch -#Server = http://mirror.puzzle.ch/archlinux/$repo/os/$arch -#Server = https://mirror.puzzle.ch/archlinux/$repo/os/$arch -#Server = https://theswissbay.ch/archlinux/$repo/os/$arch -#Server = https://mirror.ungleich.ch/mirror/packages/archlinux/$repo/os/$arch - -## Taiwan -#Server = http://archlinux.ccns.ncku.edu.tw/archlinux/$repo/os/$arch -#Server = http://free.nchc.org.tw/arch/$repo/os/$arch -#Server = https://free.nchc.org.tw/arch/$repo/os/$arch -#Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch -#Server = http://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch -#Server = https://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch -#Server = http://ftp.tku.edu.tw/Linux/ArchLinux/$repo/os/$arch -#Server = http://ftp.yzu.edu.tw/Linux/archlinux/$repo/os/$arch -#Server = https://ftp.yzu.edu.tw/Linux/archlinux/$repo/os/$arch - -## Thailand -#Server = https://mirror.cyberbits.asia/archlinux/$repo/os/$arch -#Server = http://mirror.kku.ac.th/archlinux/$repo/os/$arch -#Server = https://mirror.kku.ac.th/archlinux/$repo/os/$arch -#Server = http://mirror2.totbb.net/archlinux/$repo/os/$arch - -## Turkey -#Server = http://ftp.linux.org.tr/archlinux/$repo/os/$arch -#Server = http://mirror.veriteknik.net.tr/archlinux/$repo/os/$arch - -## Ukraine -#Server = http://archlinux.ip-connect.vn.ua/$repo/os/$arch -#Server = https://archlinux.ip-connect.vn.ua/$repo/os/$arch -#Server = http://mirror.mirohost.net/archlinux/$repo/os/$arch -#Server = https://mirror.mirohost.net/archlinux/$repo/os/$arch -#Server = http://mirrors.nix.org.ua/linux/archlinux/$repo/os/$arch -#Server = https://mirrors.nix.org.ua/linux/archlinux/$repo/os/$arch - -## United Kingdom -#Server = http://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch -#Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch -#Server = http://mirror.bytemark.co.uk/archlinux/$repo/os/$arch -#Server = https://mirror.bytemark.co.uk/archlinux/$repo/os/$arch -#Server = http://mirrors.gethosted.online/archlinux/$repo/os/$arch -#Server = https://mirrors.gethosted.online/archlinux/$repo/os/$arch -#Server = http://mirrors.manchester.m247.com/arch-linux/$repo/os/$arch -#Server = http://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch -#Server = https://mirrors.melbourne.co.uk/archlinux/$repo/os/$arch -#Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch -#Server = https://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/$arch -#Server = http://mirror.netweaver.uk/archlinux/$repo/os/$arch -#Server = https://mirror.netweaver.uk/archlinux/$repo/os/$arch -#Server = http://lon.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://lon.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = http://arch.serverspace.co.uk/arch/$repo/os/$arch -#Server = http://mirrors.ukfast.co.uk/sites/archlinux.org/$repo/os/$arch -#Server = https://mirrors.ukfast.co.uk/sites/archlinux.org/$repo/os/$arch - -## United States -#Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch -#Server = http://mirrors.aggregate.org/archlinux/$repo/os/$arch -#Server = https://america.mirror.pkgbuild.com/$repo/os/$arch -#Server = http://ca.us.mirror.archlinux-br.org/$repo/os/$arch -#Server = http://il.us.mirror.archlinux-br.org/$repo/os/$arch -#Server = http://mirror.arizona.edu/archlinux/$repo/os/$arch -#Server = https://mirror.arizona.edu/archlinux/$repo/os/$arch -#Server = http://arlm.tyzoid.com/$repo/os/$arch -#Server = https://arlm.tyzoid.com/$repo/os/$arch -#Server = https://mirror.ava.dev/archlinux/$repo/os/$arch -#Server = http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch -#Server = http://mirror.cc.columbia.edu/pub/linux/archlinux/$repo/os/$arch -#Server = http://arch.mirror.constant.com/$repo/os/$arch -#Server = https://arch.mirror.constant.com/$repo/os/$arch -#Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch -#Server = http://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/$arch -#Server = http://mirror.cybersecurity.nmt.edu/archlinux/$repo/os/$arch -#Server = https://mirror.cybersecurity.nmt.edu/archlinux/$repo/os/$arch -#Server = http://distro.ibiblio.org/archlinux/$repo/os/$arch -#Server = http://mirror.es.its.nyu.edu/archlinux/$repo/os/$arch -#Server = http://mirror.ette.biz/archlinux/$repo/os/$arch -#Server = https://mirror.ette.biz/archlinux/$repo/os/$arch -#Server = http://mirrors.gigenet.com/archlinux/$repo/os/$arch -#Server = http://www.gtlib.gatech.edu/pub/archlinux/$repo/os/$arch -#Server = http://mirror.hackingand.coffee/arch/$repo/os/$arch -#Server = https://mirror.hackingand.coffee/arch/$repo/os/$arch -#Server = https://mirror.hodgepodge.dev/archlinux/$repo/os/$arch -#Server = http://mirror.hostup.org/archlinux/$repo/os/$arch -#Server = https://mirror.hostup.org/archlinux/$repo/os/$arch -#Server = http://arch.hu.fo/archlinux/$repo/os/$arch -#Server = https://arch.hu.fo/archlinux/$repo/os/$arch -#Server = http://repo.ialab.dsu.edu/archlinux/$repo/os/$arch -#Server = https://repo.ialab.dsu.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch -#Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch -#Server = http://mirror.dal10.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://mirror.mia11.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = https://mirror.dal10.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = https://mirror.mia11.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = https://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = https://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch -#Server = http://mirrors.liquidweb.com/archlinux/$repo/os/$arch -#Server = http://mirror.lty.me/archlinux/$repo/os/$arch -#Server = https://mirror.lty.me/archlinux/$repo/os/$arch -#Server = http://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch -#Server = https://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch -#Server = http://mirror.math.princeton.edu/pub/archlinux/$repo/os/$arch -#Server = http://mirror.metrocast.net/archlinux/$repo/os/$arch -#Server = http://mirror.kaminski.io/archlinux/$repo/os/$arch -#Server = https://mirror.kaminski.io/archlinux/$repo/os/$arch -#Server = http://iad.mirrors.misaka.one/archlinux/$repo/os/$arch -#Server = https://iad.mirrors.misaka.one/archlinux/$repo/os/$arch -#Server = http://repo.miserver.it.umich.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.mit.edu/archlinux/$repo/os/$arch -#Server = https://mirrors.mit.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch -#Server = https://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch -#Server = http://archmirror1.octyl.net/$repo/os/$arch -#Server = https://archmirror1.octyl.net/$repo/os/$arch -#Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch -#Server = http://arch.mirrors.pair.com/$repo/os/$arch -#Server = http://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = http://iad.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = http://ord.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://iad.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = https://ord.mirror.rackspace.com/archlinux/$repo/os/$arch -#Server = http://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch -#Server = https://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.rit.edu/archlinux/$repo/os/$arch -#Server = https://mirrors.rit.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.rutgers.edu/archlinux/$repo/os/$arch -#Server = https://mirrors.rutgers.edu/archlinux/$repo/os/$arch -#Server = http://mirror.siena.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.sonic.net/archlinux/$repo/os/$arch -#Server = https://mirrors.sonic.net/archlinux/$repo/os/$arch -#Server = http://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch -#Server = https://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch -#Server = http://arch.mirror.square-r00t.net/$repo/os/$arch -#Server = https://arch.mirror.square-r00t.net/$repo/os/$arch -#Server = http://mirror.stephen304.com/archlinux/$repo/os/$arch -#Server = https://mirror.stephen304.com/archlinux/$repo/os/$arch -#Server = http://ftp.sudhip.com/archlinux/$repo/os/$arch -#Server = https://ftp.sudhip.com/archlinux/$repo/os/$arch -#Server = http://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch -#Server = https://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch -#Server = http://mirror.umd.edu/archlinux/$repo/os/$arch -#Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch -#Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch -#Server = http://mirrors.xtom.com/archlinux/$repo/os/$arch -#Server = https://mirrors.xtom.com/archlinux/$repo/os/$arch -#Server = https://zxcvfdsa.com/arch/$repo/os/$arch - -## Vietnam -#Server = http://f.archlinuxvn.org/archlinux/$repo/os/$arch -#Server = http://mirror.bizflycloud.vn/archlinux/$repo/os/$arch - diff --git a/netinstall-iso/airootfs/etc/passwd b/netinstall-iso/airootfs/etc/passwd new file mode 100644 index 000000000..2807d5d6f --- /dev/null +++ b/netinstall-iso/airootfs/etc/passwd @@ -0,0 +1 @@ +root:x:0:0:root:/root:/usr/bin/zsh diff --git a/netinstall-iso/airootfs/etc/resolv.conf b/netinstall-iso/airootfs/etc/resolv.conf deleted file mode 100644 index bb271869c..000000000 --- a/netinstall-iso/airootfs/etc/resolv.conf +++ /dev/null @@ -1,2 +0,0 @@ -nameserver 1.1.1.1 -nameserver 8.8.8.8 diff --git a/netinstall-iso/airootfs/etc/resolv.conf b/netinstall-iso/airootfs/etc/resolv.conf new file mode 120000 index 000000000..36396629d --- /dev/null +++ b/netinstall-iso/airootfs/etc/resolv.conf @@ -0,0 +1 @@ +/run/systemd/resolve/stub-resolv.conf \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/shadow b/netinstall-iso/airootfs/etc/shadow new file mode 100644 index 000000000..7edfd69be --- /dev/null +++ b/netinstall-iso/airootfs/etc/shadow @@ -0,0 +1 @@ +root::14871:::::: diff --git a/netinstall-iso/airootfs/etc/skel/.bash_profile b/netinstall-iso/airootfs/etc/skel/.bash_profile deleted file mode 100644 index def1f7210..000000000 --- a/netinstall-iso/airootfs/etc/skel/.bash_profile +++ /dev/null @@ -1,29 +0,0 @@ -# colors -darkgrey="$(tput bold ; tput setaf 0)" -white="$(tput bold ; tput setaf 7)" -blue="$(tput bold; tput setaf 4)" -cyan="$(tput bold; tput setaf 6)" -nc="$(tput sgr0)" - -# exports -export PATH="${HOME}/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:" -export PATH="${PATH}/usr/local/sbin:/opt/bin:/usr/bin/core_perl:/usr/games/bin:" -export PS1="\[$blue\][ \[$cyan\]\H \[$darkgrey\]\w\[$darkgrey\] \[$blue\]]\\[$darkgrey# \[$nc\]" -export LD_PRELOAD="" -export EDITOR="vim" - -# alias -alias ls="ls --color" -alias vi="vim" -alias shred="shred -zf" -#alias python="python2" -alias wget="wget -U 'noleak'" -alias curl="curl --user-agent 'noleak'" - -# source files -[ -r /usr/share/bash-completion/completions ] && - . /usr/share/bash-completion/completions/* - -# tuning -tuning.sh > /dev/null 2>&1 - diff --git a/netinstall-iso/airootfs/etc/skel/.bashrc b/netinstall-iso/airootfs/etc/skel/.bashrc deleted file mode 100644 index f68a4999a..000000000 --- a/netinstall-iso/airootfs/etc/skel/.bashrc +++ /dev/null @@ -1,25 +0,0 @@ -# colors -darkgrey="$(tput bold ; tput setaf 0)" -white="$(tput bold ; tput setaf 7)" -blue="$(tput bold; tput setaf 4)" -cyan="$(tput bold; tput setaf 6)" -nc="$(tput sgr0)" - -# exports -export PATH="${HOME}/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:" -export PATH="${PATH}/usr/local/sbin:/opt/bin:/usr/bin/core_perl:/usr/games/bin:" -export PS1="\[$blue\][ \[$cyan\]\H \[$darkgrey\]\w\[$darkgrey\] \[$blue\]]\\[$darkgrey\]# \[$nc\]" -export LD_PRELOAD="" -export EDITOR="vim" - -# alias -alias ls="ls --color" -alias vi="vim" -alias shred="shred -zf" -#alias python="python2" -alias wget="wget -U 'noleak'" -alias curl="curl --user-agent 'noleak'" - -# source files -[ -r /usr/share/bash-completion/completions ] && - . /usr/share/bash-completion/completions/* diff --git a/netinstall-iso/airootfs/etc/skel/bin/sysclean.sh b/netinstall-iso/airootfs/etc/skel/bin/sysclean.sh deleted file mode 120000 index 8ae2d2f74..000000000 --- a/netinstall-iso/airootfs/etc/skel/bin/sysclean.sh +++ /dev/null @@ -1 +0,0 @@ -../scripts/sysclean.sh \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/skel/bin/tuning.sh b/netinstall-iso/airootfs/etc/skel/bin/tuning.sh deleted file mode 120000 index 87533addc..000000000 --- a/netinstall-iso/airootfs/etc/skel/bin/tuning.sh +++ /dev/null @@ -1 +0,0 @@ -../scripts/tuning.sh \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/skel/scripts/sysclean.sh b/netinstall-iso/airootfs/etc/skel/scripts/sysclean.sh deleted file mode 100755 index 1a23e7ff8..000000000 --- a/netinstall-iso/airootfs/etc/skel/scripts/sysclean.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -pacman -Rscn $(yay -Qtdq) -updatedb -pkgfile -u -pacman -Fyy -pacman-db-upgrade -yes | pacman -Scc -sync diff --git a/netinstall-iso/airootfs/etc/skel/scripts/tuning.sh b/netinstall-iso/airootfs/etc/skel/scripts/tuning.sh deleted file mode 100755 index dda66de28..000000000 --- a/netinstall-iso/airootfs/etc/skel/scripts/tuning.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/sh - -### SYSTEM ### - -# TBD - - -### NETWORK ### - - -# Disable Explicit Congestion Notification in TCP -sysctl -w net.ipv4.tcp_ecn=0 - -# window scaling -sysctl -w net.ipv4.tcp_window_scaling=1 - -# increase linux autotuning tcp buffer limits -sysctl -w net.ipv4.tcp_rmem='8192 87380 16777216' -sysctl -w net.ipv4.tcp_wmem='8192 65536 16777216' - -# increase TCP max buffer size -sysctl -w net.core.rmem_max=16777216 -sysctl -w net.core.wmem_max=16777216 - -# Increase number of incoming connections backlog -sysctl -w net.core.netdev_max_backlog=16384 -sysctl -w net.core.dev_weight=64 - -# Increase number of incoming connections -sysctl -w net.core.somaxconn=32768 - -# Increase the maximum amount of option memory buffers -sysctl -w net.core.optmem_max=65535 - -# Increase the tcp-time-wait buckets pool size to prevent simple DOS attacks -sysctl -w net.ipv4.tcp_max_tw_buckets=1440000 - -# try to reuse time-wait connections, but don't recycle them (recycle can break clients behind NAT) -sysctl -w net.ipv4.tcp_tw_reuse=1 - -# Limit number of orphans, each orphan can eat up to 16M (max wmem) of unswappable memory -sysctl -w net.ipv4.tcp_max_orphans=16384 -sysctl -w net.ipv4.tcp_orphan_retries=0 - -# don't cache ssthresh from previous connection -sysctl -w net.ipv4.tcp_no_metrics_save=1 -sysctl -w net.ipv4.tcp_moderate_rcvbuf=1 - -# Increase size of RPC datagram queue length -sysctl -w net.unix.max_dgram_qlen=50 - -# Don't allow the arp table to become bigger than this -sysctl -w net.ipv4.neigh.default.gc_thresh3=2048 - -# Tell the gc when to become aggressive with arp table cleaning. -# Adjust this based on size of the LAN. 1024 is suitable for most /24 networks -sysctl -w net.ipv4.neigh.default.gc_thresh2=1024 - -# Adjust where the gc will leave arp table alone - set to 32. -sysctl -w net.ipv4.neigh.default.gc_thresh1=32 - -# Adjust to arp table gc to clean-up more often -sysctl -w net.ipv4.neigh.default.gc_interval=30 - -# Increase TCP queue length -sysctl -w net.ipv4.neigh.default.proxy_qlen=96 -sysctl -w net.ipv4.neigh.default.unres_qlen=6 - -# Enable Explicit Congestion Notification (RFC 3168), disable it if it doesn't work for you -sysctl -w net.ipv4.tcp_ecn=1 -sysctl -w net.ipv4.tcp_reordering=3 - -# How many times to retry killing an alive TCP connection -sysctl -w net.ipv4.tcp_retries2=15 -sysctl -w net.ipv4.tcp_retries1=3 - -# Avoid falling back to slow start after a connection goes idle -# keeps our cwnd large with the keep alive connections (kernel > 3.6) -sysctl -w net.ipv4.tcp_slow_start_after_idle=0 - -# Allow the TCP fastopen flag to be used, beware some firewalls do not like TFO! (kernel > 3.7) -sysctl -w net.ipv4.tcp_fastopen=3 - -# This will enusre that immediatly subsequent connections use the new values -sysctl -w net.ipv4.route.flush=1 -sysctl -w net.ipv6.route.flush=1 diff --git a/netinstall-iso/airootfs/etc/ssh/sshd_config.d/10-archiso.conf b/netinstall-iso/airootfs/etc/ssh/sshd_config.d/10-archiso.conf new file mode 100644 index 000000000..6ea7b41a4 --- /dev/null +++ b/netinstall-iso/airootfs/etc/ssh/sshd_config.d/10-archiso.conf @@ -0,0 +1,3 @@ +# Allow root login using password authentication +PasswordAuthentication yes +PermitRootLogin yes diff --git a/netinstall-iso/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/netinstall-iso/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf new file mode 100644 index 000000000..b69850df1 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf @@ -0,0 +1,2 @@ +[Journal] +Storage=volatile diff --git a/netinstall-iso/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/netinstall-iso/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf new file mode 100644 index 000000000..f3ecb393f --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf @@ -0,0 +1,4 @@ +[Login] +HandleSuspendKey=ignore +HandleHibernateKey=ignore +HandleLidSwitch=ignore diff --git a/netinstall-iso/airootfs/etc/systemd/network/20-ethernet.network b/netinstall-iso/airootfs/etc/systemd/network/20-ethernet.network new file mode 100644 index 000000000..d3a327198 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/network/20-ethernet.network @@ -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 diff --git a/netinstall-iso/airootfs/etc/systemd/network/20-wlan.network b/netinstall-iso/airootfs/etc/systemd/network/20-wlan.network new file mode 100644 index 000000000..8b70a95f8 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/network/20-wlan.network @@ -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 diff --git a/netinstall-iso/airootfs/etc/systemd/network/20-wwan.network b/netinstall-iso/airootfs/etc/systemd/network/20-wwan.network new file mode 100644 index 000000000..6e1c8dda4 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/network/20-wwan.network @@ -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 diff --git a/netinstall-iso/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf b/netinstall-iso/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf new file mode 100644 index 000000000..0e9ceb4e8 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/networkd.conf.d/ipv6-privacy-extensions.conf @@ -0,0 +1,2 @@ +[Network] +IPv6PrivacyExtensions=yes diff --git a/netinstall-iso/airootfs/etc/systemd/resolved.conf.d/archiso.conf b/netinstall-iso/airootfs/etc/systemd/resolved.conf.d/archiso.conf new file mode 100644 index 000000000..636f3bd64 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/resolved.conf.d/archiso.conf @@ -0,0 +1,4 @@ +# Default systemd-resolved configuration for archiso + +[Resolve] +MulticastDNS=yes diff --git a/netinstall-iso/airootfs/etc/systemd/scripts/choose-mirror b/netinstall-iso/airootfs/etc/systemd/scripts/choose-mirror deleted file mode 100755 index 0ae08067c..000000000 --- a/netinstall-iso/airootfs/etc/systemd/scripts/choose-mirror +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -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 diff --git a/netinstall-iso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/netinstall-iso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator new file mode 120000 index 000000000..dc1dc0cde --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/choose-mirror.service b/netinstall-iso/airootfs/etc/systemd/system/choose-mirror.service index 1e4d771de..b6a3562a6 100644 --- a/netinstall-iso/airootfs/etc/systemd/system/choose-mirror.service +++ b/netinstall-iso/airootfs/etc/systemd/system/choose-mirror.service @@ -4,7 +4,7 @@ ConditionKernelCommandLine=mirror [Service] Type=oneshot -ExecStart=/etc/systemd/scripts/choose-mirror +ExecStart=/usr/local/bin/choose-mirror [Install] WantedBy=multi-user.target diff --git a/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service new file mode 120000 index 000000000..ebc50f0c1 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-config.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service new file mode 120000 index 000000000..80fa3c82e --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-final.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service new file mode 120000 index 000000000..dd8e9f1c9 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-local.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service new file mode 120000 index 000000000..875ff7314 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-main.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service new file mode 120000 index 000000000..ae7773461 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-network.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service new file mode 120000 index 000000000..dcf7c8edc --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service new file mode 120000 index 000000000..4c158e62e --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service new file mode 120000 index 000000000..4f6ae342a --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service new file mode 120000 index 000000000..cd004113f --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/netinstall-iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount index 4eab55137..038961e41 100644 --- a/netinstall-iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount +++ b/netinstall-iso/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -5,4 +5,4 @@ Description=Temporary /etc/pacman.d/gnupg directory What=tmpfs Where=/etc/pacman.d/gnupg Type=tmpfs -Options=mode=0755 +Options=mode=0755,noswap diff --git a/netinstall-iso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/netinstall-iso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf index eef526585..b9d22eb85 100644 --- a/netinstall-iso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf +++ b/netinstall-iso/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -1,4 +1,3 @@ [Service] ExecStart= -ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux -Type=Simple +ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM diff --git a/netinstall-iso/airootfs/etc/systemd/system/livecd-alsa-unmuter.service b/netinstall-iso/airootfs/etc/systemd/system/livecd-alsa-unmuter.service new file mode 100644 index 000000000..03db4b952 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/livecd-alsa-unmuter.service @@ -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 diff --git a/netinstall-iso/airootfs/etc/systemd/system/livecd-talk.service b/netinstall-iso/airootfs/etc/systemd/system/livecd-talk.service new file mode 100644 index 000000000..b38df22c3 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/livecd-talk.service @@ -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 diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service new file mode 120000 index 000000000..dcf7c8edc --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service new file mode 120000 index 000000000..2d8d256ad --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service @@ -0,0 +1 @@ +../choose-mirror.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service new file mode 120000 index 000000000..20ac7b284 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_fcopy_daemon.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service new file mode 120000 index 000000000..a7eac4a8c --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_kvp_daemon.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service new file mode 120000 index 000000000..eae19ef95 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_vss_daemon.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service new file mode 120000 index 000000000..3625abda1 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/iwd.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service new file mode 120000 index 000000000..b9174818a --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service @@ -0,0 +1 @@ +/etc/systemd/system/livecd-talk.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service new file mode 120000 index 000000000..d09eec68b --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service @@ -0,0 +1 @@ +../pacman-init.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service new file mode 120000 index 000000000..d37272972 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/reflector.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service new file mode 120000 index 000000000..d21ebd9d6 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/sshd.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service new file mode 120000 index 000000000..4c158e62e --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service new file mode 120000 index 000000000..4f6ae342a --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service new file mode 120000 index 000000000..cb2d56043 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vboxservice.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service new file mode 120000 index 000000000..e0a11a770 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmtoolsd.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service new file mode 120000 index 000000000..173f306ca --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmware-vmblock-fuse.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service b/netinstall-iso/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service new file mode 120000 index 000000000..7d6ad92c9 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd-wait-online.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/pacman-init.service b/netinstall-iso/airootfs/etc/systemd/system/pacman-init.service index 441540555..b82488434 100644 --- a/netinstall-iso/airootfs/etc/systemd/system/pacman-init.service +++ b/netinstall-iso/airootfs/etc/systemd/system/pacman-init.service @@ -1,16 +1,15 @@ [Unit] Description=Initializes Pacman keyring -Wants=haveged.service -After=haveged.service Requires=etc-pacman.d-gnupg.mount -After=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 archlinux -ExecStart=/usr/bin/pacman-key --populate blackarch +ExecStart=/usr/bin/pacman-key --populate [Install] WantedBy=multi-user.target diff --git a/netinstall-iso/airootfs/etc/systemd/system/reflector.service.d/archiso.conf b/netinstall-iso/airootfs/etc/systemd/system/reflector.service.d/archiso.conf new file mode 100644 index 000000000..de6664df0 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/reflector.service.d/archiso.conf @@ -0,0 +1,6 @@ +[Unit] +ConditionKernelCommandLine=!mirror + +[Service] +Restart=on-failure +RestartSec=10 diff --git a/netinstall-iso/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket b/netinstall-iso/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket new file mode 120000 index 000000000..3897c638d --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/pcscd.socket \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket b/netinstall-iso/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket new file mode 120000 index 000000000..51942c8e1 --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.socket \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service b/netinstall-iso/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service new file mode 120000 index 000000000..98c0fc87e --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service @@ -0,0 +1 @@ +../livecd-alsa-unmuter.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service b/netinstall-iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service new file mode 120000 index 000000000..cabf28bef --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-time-wait-sync.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/netinstall-iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service new file mode 120000 index 000000000..cd004113f --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file diff --git a/netinstall-iso/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/netinstall-iso/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf new file mode 100644 index 000000000..c9f9bceae --- /dev/null +++ b/netinstall-iso/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf @@ -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 diff --git a/netinstall-iso/airootfs/etc/udev/rules.d/81-dhcpcd.rules b/netinstall-iso/airootfs/etc/udev/rules.d/81-dhcpcd.rules deleted file mode 100644 index 1c4053c0d..000000000 --- a/netinstall-iso/airootfs/etc/udev/rules.d/81-dhcpcd.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="en*|eth*", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service" diff --git a/netinstall-iso/airootfs/etc/vconsole.conf b/netinstall-iso/airootfs/etc/vconsole.conf deleted file mode 100644 index c34371027..000000000 --- a/netinstall-iso/airootfs/etc/vconsole.conf +++ /dev/null @@ -1,2 +0,0 @@ -LANG=en_US.UTF-8 -FONT=ter-114n diff --git a/netinstall-iso/airootfs/etc/xdg/reflector/reflector.conf b/netinstall-iso/airootfs/etc/xdg/reflector/reflector.conf new file mode 100644 index 000000000..7c830d2df --- /dev/null +++ b/netinstall-iso/airootfs/etc/xdg/reflector/reflector.conf @@ -0,0 +1,8 @@ +# Reflector configuration file for the systemd service. + +--save /etc/pacman.d/mirrorlist +--ipv4 +--ipv6 +--protocol https +--latest 20 +--sort rate diff --git a/netinstall-iso/airootfs/root/.automated_script.sh b/netinstall-iso/airootfs/root/.automated_script.sh index fb106dae8..f7f3ced2b 100755 --- a/netinstall-iso/airootfs/root/.automated_script.sh +++ b/netinstall-iso/airootfs/root/.automated_script.sh @@ -1,22 +1,29 @@ -#!/bin/bash +#!/usr/bin/env bash -script_cmdline () -{ +script_cmdline() { local param - for param in $(< /proc/cmdline); do + for param in $(/dev/null + 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 --fail -s -o /tmp/startup_script rt=$? else cp "${script}" /tmp/startup_script @@ -24,6 +31,9 @@ automated_script () 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 diff --git a/netinstall-iso/airootfs/root/.gnupg/scdaemon.conf b/netinstall-iso/airootfs/root/.gnupg/scdaemon.conf new file mode 100644 index 000000000..e1f3d1fde --- /dev/null +++ b/netinstall-iso/airootfs/root/.gnupg/scdaemon.conf @@ -0,0 +1,4 @@ +disable-ccid +disable-pinpad +pcsc-driver /usr/lib/libpcsclite.so +pcsc-shared diff --git a/netinstall-iso/airootfs/root/.zlogin b/netinstall-iso/airootfs/root/.zlogin index f598e43ef..bf6bc8f6c 100644 --- a/netinstall-iso/airootfs/root/.zlogin +++ b/netinstall-iso/airootfs/root/.zlogin @@ -1 +1,6 @@ +# fix for screen readers +if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then + setopt SINGLE_LINE_ZLE +fi + ~/.automated_script.sh diff --git a/netinstall-iso/airootfs/root/customize_airootfs.sh b/netinstall-iso/airootfs/root/customize_airootfs.sh deleted file mode 100755 index cc08220a7..000000000 --- a/netinstall-iso/airootfs/root/customize_airootfs.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -# exit on error and undefined variables -set -eu - -# set locale -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -locale-gen - -# set timezone -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -# enabling all mirrors -#sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist -sed -i 's|#Server https://ftp.halifax|Server https://ftp.halifax|g' \ - /etc/pacman.d/mirrorlist - -# storing the system journal in RAM -sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf - -# default releng configuration -sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf -sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf -sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf - -# enable useful services and display manager -systemctl enable pacman-init.service choose-mirror.service - -# create the user directory for live session -if [ ! -d /root ]; then - mkdir /root - chmod 700 root && chown -R root:root /root -fi - -# setting root password -echo "root:blackarch" | chpasswd - -# copy files over to home -cp -r /etc/skel/. /root/. - -# setup repository, add pacman.conf entry and sync databse -curl -s https://blackarch.org/strap.sh | sh -#curl -s https://blackarch.org/strap.sh | sed "s|get_mirror$|#get_mirror|1" | sh - -# sys updates, cleanups, etc. -pacman -Syyu --noconfirm -pacman-key --init -pacman-key --populate blackarch archlinux -pacman -Fyy -pacman-db-upgrade -updatedb -#pkgfile -u -sync - -# default shell -chsh -s /bin/bash - -# disable pc speaker beep -echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf - -# remove special (not needed) scripts -rm -f /etc/systemd/system/getty@tty1.service.d/autologin.conf -rm -f /root/{.automated_script.sh,.zlogin} -#rm /etc/mkinitcpio-archiso.conf -rm -rf /etc/initcpio - -# add install.txt file -echo "Type blackarch-install and follow the instructions." > /root/INSTALL -rm -rf /root/install.txt - -# /etc -echo 'BlackArch Linux' > /etc/arch-release - diff --git a/netinstall-iso/airootfs/usr/local/bin/Installation_guide b/netinstall-iso/airootfs/usr/local/bin/Installation_guide new file mode 100755 index 000000000..58b97b016 --- /dev/null +++ b/netinstall-iso/airootfs/usr/local/bin/Installation_guide @@ -0,0 +1,5 @@ +#!/bin/sh +# +# SPDX-License-Identifier: GPL-3.0-or-later + +exec xdg-open 'https://wiki.archlinux.org/title/Installation_guide' diff --git a/netinstall-iso/airootfs/usr/local/bin/choose-mirror b/netinstall-iso/airootfs/usr/local/bin/choose-mirror new file mode 100755 index 000000000..d2349de47 --- /dev/null +++ b/netinstall-iso/airootfs/usr/local/bin/choose-mirror @@ -0,0 +1,29 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +get_cmdline() { + local param + for param in $(/etc/pacman.d/mirrorlist < +# $2 +# $3 +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 +# $2 +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 +# $2 +# $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 +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 | "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" /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 diff --git a/netinstall-iso/airootfs/usr/local/share/livecd-sound/asound.conf.in b/netinstall-iso/airootfs/usr/local/share/livecd-sound/asound.conf.in new file mode 100644 index 000000000..3f9c7aa0a --- /dev/null +++ b/netinstall-iso/airootfs/usr/local/share/livecd-sound/asound.conf.in @@ -0,0 +1,3 @@ +Defaults node +defaults.ctl.card %card%; +defaults.pcm.card %card%; diff --git a/netinstall-iso/airootfs/usr/share/pacman/keyrings/blackarch-trusted b/netinstall-iso/airootfs/usr/share/pacman/keyrings/blackarch-trusted new file mode 100644 index 000000000..2cbaaa934 --- /dev/null +++ b/netinstall-iso/airootfs/usr/share/pacman/keyrings/blackarch-trusted @@ -0,0 +1,5 @@ +8F9A9793CB8591147C2EC70566E0CDBD1E01F333:4: +A0917C4147A37007CB54C1CFD295AA940EFDDF62:4: +CBA3C7D4798912702DCF568E67D8BDF42AD93F4E:4: +4345771566D76038C7FEB43863EC0ADBEA87E4E3:4: +F9A6E68A711354D84A9B91637533BAFE69A25079:4: diff --git a/netinstall-iso/airootfs/usr/share/pacman/keyrings/blackarch.gpg b/netinstall-iso/airootfs/usr/share/pacman/keyrings/blackarch.gpg new file mode 100644 index 000000000..c9eede6ec --- /dev/null +++ b/netinstall-iso/airootfs/usr/share/pacman/keyrings/blackarch.gpg @@ -0,0 +1,349 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFLHckUBEADQiPAir4lW/WFJQanozGaQHAniVzrjQUDDeLeINeGlqeKiPVFH +mqlPYmyYR2tXSzzAOGOb7b0lVx7oQv1XAlvj9k6/hxVvtxdIcJzoouyYNqL5kNXO +z9wG82PmBLq8f3aKqHaPsdfAdZtYUCRCL7oSfGz5/SN1GdPuOGAW+gFEQWMOuwqM +9VxZUQwDhafDfXGM5u6neGdwxZ2GkhRf/3KoIGcm2Xth1E58USRJQ7ydV90CCw4X +xU5mHbZAfmGhCyZCtoURohKC8KxLsQSgeZduTdgtRVTgYaH+Q2CVdkIi7i8L4DGz +J6uxZkoefqevmGIdFeHsRRDgwoLIvrk7K+f4iA0afb1ZOXEkRmGwK1xKbEwCoL6Y +hzW4HwBXUv1cViYPDsVTHsKrYxdmj6RKZ/6W+6isu61sOVDOw+qn4HlK88E4uKXJ +uRtvB6cDxQLAUvwqls/XdoRJ0FGbDrJpO+qCaEn1Qk3tk6+X+BY2RnDUoUKFj6mK +zuxJbVxTWTUlI4oR7A6i1q9h1fY3mmT/SNwsIm44j4Bo3zpCmEIkA1pZeK5D2jbG +ysPRIaW9JeNwCLrmdOtUYSmsk+avy2Jyl2S4Be/n21CA9zH8kONGAQlgjg754Vqr +gyHKd3s7j2w1mzlxBdmbrtdorVDNNL+vqPS6yEhJbJq29b87ZM2xpQWr3QARAQAB +tENMZXZvbiAnbm9wdHJpeCcgS2F5YW4gKEJsYWNrQXJjaCBNYXN0ZXIpIDxub3B0 +cml4QG51bGxzZWN1cml0eS5uZXQ+iQI5BBMBAgAjBQJSx3JFAhsDBwsJCAcDAgEG +FQgCCQoLBBYCAwECHgECF4AACgkQZ9i99CrZP05g9A//VOHrb6MgTO/mPrvpMppB +FKxuypPrkulCEdU71ylnEQ4TgksSTG43nPdPE/7oycYE8TFxhMK8EQLdmWsxmTaG +NtZvU0DFyh/ZJz2zfZlqTnTqtKYu8KX8ILz26lI/eGKZTg6CYKVKynW1dpS33KMS +dezuB9hidzBomilNo5vh8P+y0XP4eTmVYFMgipElzUNuPJKPLogzoxaHKBUSBsiJ +vYyLoquubOSKle8yFad2vyW9xgJOVMde2sKPcDXSje5bdtSkEbAt4uR+eGh3gbDH +tvOO3gLgpLKgRX973M/DxPCilOJOh1jWZIcHT3D4vdv5XRfybXuUi4pSWDrhDxe/ +rjZzLML9aUldvgpVJt5oFGtBxTulo7ZXRZ6ACUmU6KIOBop2Ovtqkb7dqOOKFuBv +5KzpSPctePXJAiqbj5/Sic1PbKt559uEGtfxG1Rv8s2r9b+/bRsdkKvCq/W0Fcbs +6qrcYXnZ7IjHOWPe7iaOscqVxwGCSsv6Mt6QIJKuOMI4Mq210xY88J1c+FeVsoKN +coS6bKelWSFkgCoOd1gw1RoPc2v6gthx4/a6+exro1Sv5Mefg3/bQIQa/CDcw2MM +gB7f+Jl94vPbXcs1ygjjbCLD9NjyrknbR2CyLvmXEosNN5UYGIghREjHxwMEN9r6 +KOyTSUKb69xI7emOYJ09KQC5Ag0EUsdyRQEQAPkE8PYHhm81N4dJsdsSoWBbzoHL +heDODHCnKUR9JlD1FQ9SHxUOdC6+9G3J2Y91RV2iqaJFx3D0s9JtB2IksFM9zllF +C2/a4wJ3KMqF/yJ7rSE1VwVTqL5sofu7XnmUKJu7m+SrhqMvVmtmXIonsJO70uEO +XydHEycplnOJVNWxFwQz+8KRfixfzFFdfU7H1PYhtWpqWZpfffB2s4gv7kreZ4cw +cwgDQ1McSxNrt/xwgGn7YGi/WP5ue4CO7bDCCdby1IkFkhzBB+4fzx0ytxzoDKfT +SavUl3gMxuNqWq/nz/zfwo3tH2KnCiwPLFLPAgEzGw+H3CS+X5Al7aKmyvBVFhMQ +IU+9kBWsFQOU+sc/bXg7mhcliTB7DY1zjj95rJU5A+lqmtlyfCUBCT9iI11zDZh4 +xQOHIJTC+UfOe4hOo/GAM9KBVaoi+N4A+FoFtcZC5raKj7wa8X/N4WjfDTrJ7TTV +NZoXJmBtBA/rFUdJAUZicutI7BJt15dLmL0WsD3XhM/cTVcef9Jf2qdX2gELdYUA +f233S/2lTF8uWDxZwuShsUEfublYT99sLXUTxgCNE8bJ3MhxEDf4dxgbfeDxinsv +bt4t1NpLYBM2JFVKbc3TSXtkuc+62sylCQi7U3+wUAKTldgY1XNQ1j8c9rasZzWp +tvC2oLrcigQn/NGdABEBAAGJAh8EGAECAAkFAlLHckUCGwwACgkQZ9i99CrZP05E +ZBAAkaBftbSDj4vOl4JSFCWsosmce3CgyvvFvlCfVA39cUXgwM/Mla2WMAcYhfnl +7dHjxUeryFXu0A9PabLJQGEKiDxhcww0EF9CkOeHV9CHHK7PSB9qKzF8MEzg7Mpt +F3qK95hTcCRlQY7V/QpOORYfWucYWNM8LKjTIrkOa8/QnqILmFDP42/h31gZjsig +cf9BcVmDRKCw/AcalYAXh/aW4TSIqWGWKTVx+aJzAV8ZdFeoL9Hwnn03/C/mCeEn +kwK1Py7kiVculYjuREhi3BHf+r+6WLCYRYMwTRaLPePDFGAadlxPVe7o+IJnFVH8 +73CpAYeWb4UAlZ3GfFYekCxhhVZ9hl5QeenbMHxcJ5lOwNB7ScVzn6+1NhAXuMV9 +Q6fEonBAWF+iwu/8r7IE4wqaXDlAjrrmlQphThDUyfItLImLUDCmRCVnbELiieOU +MaHuf33EWHYaegSeQd1Y6M7/8iG6OYj+iMBxDQHQDh2rHFPXhM74yohrOl4VII1U +ZrcuvSEt8bS+RsLJ5lz7YeKuZc8TzNaCts1Et8Wu+pCm0i5QNnVjuNTLH8QxTemN +3pbufROH6nGVxCh/hP+zfKs14vIz7f5u/f2ThGyxp9+VOs+GshRujZEU+o55pUJe +dXJQAVPEs2iDp/CXTsvyQJkjYjPhVkZnCJIeSHzA/o5RxqY= +=YISH +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFLHTUoBEADWdeqlhcWiA7FSdFaaR6sntrWXPqIUkjSTofQZRHleiQMZk82v +ohpaCUnPsH77A5kT8nR2SklkB/Y1kxloHeF1uxU5qn8xfgxMQEukW4lo0nC+AMqg +1rJu4RprYQ917Vgx475gtqV6YK9DG2fFnKt1EDqFTFkg5IPTzqQDcwaS4Dneo4Np +zTtCDVj9FAOZYqTiTTz44oi2/NIZQAFZDVcu290OuQfrcc7CpTeTGUp9oTevED/w +AHYJwr9oVhOD5Z3pTt+lONcgmOgobOsnKGw8wwqtyVhBnQwST2H91aAfvXBDCaL+ +lTAKDaApScMvWUZgn7uQHQcEafwI3I/eYSKLtb3kGd7wMQLEKgAZirKZhJi5YW7s +oOVyNgYFOzvNbdVxrTfGoCyiduLJWjILiZxlpN23pQM4JjcXDtHFBU3xcNTawsgv +MnBvr8Eyb1n0BJirQWH5HrXBCFlu32qetYNz/9DUXzd4GYztelXC/67w4ER/7O8z +Sy6YNqIwxy3Da9a6glKkPh9sr5OqJPkPCFUIVxGZpM1ZI3RNeTY0KomAuA2ZyPYW +aA1poSF+58klPO3eHYUSiWxBa/rZ7OOBlr6MXPgE0yIToOTI6Dve2XEtUTq6lDPu +ejoTgIFgWDMfxIU8nDfQ2jczmjcdMR1erAk/U6gspDQIXo8U9miYEVABxQARAQAB +tDZKYXZpZXIgJ25yeicgKEJsYWNrQXJjaCBNYXN0ZXIpIDxucnpAbnVsbHNlY3Vy +aXR5Lm5ldD6JAjkEEwECACMFAlLHTUoCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIe +AQIXgAAKCRDSlaqUDv3fYiM2D/9GKphA+jJPdRYOdvu+66UG8uzN9fGIBdHtyrVp +pWOLyWDryPS8Ktq8kMved1MB/FOaxUEcY9um3+/nYMxWbrEt+Ret59D2P1+ScBCR +PxL5NnScWtn5H64M/BGm9u1u5VDPXgxThsqVIupstoE/WKQmxIvBq/yXJ+svchO9 +6HmY3W5y6Zpkqe3ed2BQQj/G5XM0kPxA0Al4lo4XXbRjjEp1sk+mWAOHYVfwtyM1 +73WPhjKYsfapW6fPGdaPqmvg98oiu32v2pbZ467UVeCNl70RDyyM9bM5oq5Q1L70 +7KUIEAs/hNpC4H1GdCQLRZE6v6Eu4MyU4zrVjhDrI59+DFKgHZtTXMuAWocvbJq9 +lIxqsrWufu3j/tlj/UiDclKDh89Fi4rwYUzmmWwkSt7RDIW9p4bSbIEycmtiImLZ +sWfZ2yZPdG/FWlS/dXwfaM5J47inBiToLahdXyXWC95C4yH3ekr7PtVYQ59qSTGN +nGJuXUXDrbTz1AjmaOceF03Ob6wKD95O+jdztTUyzLffs+tPbVp2pq2jHb1/zcL3 +2ZmbtfJ2L2UJB0J6G2SrLBgzNNOyH+xdc9V+q6EqXUFhbg6aLRfbOE2dFkQuElb4 +B+GmfSNIlSoBpJXyDAZD3w0M1QcrG9qpKug+SixZoDfV2FNKfs7/X1muEabjZ+Dp +4v2nSg== +=vp5M +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFDlso0BCAClmV1rZtILN23/WeUfumi4wSxF5PmDY73UFCtw/xUvD6ETnc1C +xJ+DTr/VTD1JhCmKD/CxpVtC7f8872WIn5VubabzYrg/ACHUQ24b3irXa+ELcFYB +emq/kI4BEeOQzEx8AJBH1jeldY+WXHFsiX/CBufHXdUfkWeRGNNc7IAJYUr9uhU7 ++1Ug5vuXyH03OcxHZgbPbC2pA7tk/JucEYwV7v60JDYZ2oEHQzYliIn1CL5Fb8Qd +pXO058FNYilfpr0mFSpVJnkJtnbrotdswp2rick2uEOtJIMJmj6rGQnX/MHJ10Ba +cVqRt5cQomkPhXDhAc+WwCUQ0cK929zVBT93ABEBAAG0KEV2YW4gVGVpdGVsbWFu +IDx0ZWl0ZWxtYW5ldmFuQGdtYWlsLmNvbT6JATgEEwECACIFAlDlso0CGwMGCwkI +BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGPsCtvqh+Tj+nUIAKTTrYlwW+VC8yXf +MLt0UCgRKIgKVT7OSaxuxGz5ZC9ja77K9pQlKYnyE5IIJag80HpgzEasn98eTke9 +wNC1k/MtAHYFspHHLeJYMP7cvREESb5y0ta8dmKJ1RpyGb3Gne8upF146LJhtEiQ +AtVlpJ4LHaX3yBnfQAlxMM9h5n+fGT1zIx5tF76y5hTCrBNzfQhuCinqGHo3QiMZ +m0IcyM0RarBCuF5piogTYUxezr+Pik9ibXZCuy2tcdb5WDUv8gg0m5ORGvVXs4cD +FBR6oiK7QI02mZrTQwFOPphEuZ8CZXqUaE4djbbUUUdjMG0rOxUHoKm/FeCnQvsp +tnA/8DW5AQ0EUOWyjQEIAMWrJu7bvekYoCF88JokQ4Npv9j9cpJ//nahFa6mbuER +WKL7M+5vLWahl5/h9r75Qu7eAJyA+plCvlvphehkEyCH1A2u4J6N96668qXr9RK5 +CtU/LHzpR47Px7rZRgz0CiMBijvBSXFc+SmZI2nHGYn94SvuwGnSFc89oMHTtUG6 +uQ8xYzuUF0MR22jYAz3v1Ux+4TpOhBl8DI4ZS8u1qtwOYZ/qShLF6q1VHjDgf9wp +RjnDdsi5uPkinjx2KgP7bD8/drti5aR/E6ceGsWxdZIOFaW0JbtXi93yCM52cv5c +fpHtjg/+Wq2457g8qhZSbKcpwiV+wKfd3HFAaRvPZckAEQEAAYkBHwQYAQIACQUC +UOWyjQIbDAAKCRBj7Arb6ofk43hKB/424sP+GhB0jaV1TeU5P2XEbpeOZ7YTGN8S +YCetOv+/B/q33+Qq49+xJrIFUN29eX29D1oeRYNJKnZKbkLX/ZFLPi/py/sHbFNL +RSEZkdPqf5y0Lz3WwSzT77qlH08BA0Iv26PfmtavV/5fKmgyrS6W44Wo+iBY9SOI +B7pRrm23sIak6AmeWLBue49psMd0dfBBSVdFIcgeT0R2BJesoF60yP546roAYOYX +1b9hH1lLk+UhmtC8Av0kIp4lTUM9oUmuk87GeqqEHhvFrNVcwvqMCeNNxFps80JC +pAQAxnoxntrpteTtrc1UJxWVGtuXhP6IbXtBXnURVsc+9J0PRCw/ +=snk6 +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFLHSDUBEADixQxBB64budb9yH1qVLmJqvcppDl1XUDz20T4Xk+Kx/DwpWQe +Tp6zNij8hUdLWn6TsF0X0hvtstCiWRFODoSvChu4P6OUrgbmwzDd6+/EZVtdhMFy +A1R8PIRpEGPEcPkw6S3/LUJWUoC2gDk71vz9Wpj/qIGxx9a3KTntwYHb9md7EBos +jlvFWDMJ6hOrFtdMbPdtOeijDxSL0Tzo5QZId1KpXtx7T8JXZwqXE2/Jqyt9YOLU +iFGk4whON0Lh0ND/6p94tn6Afrdp53RZ+Q/9k5cK/VUqXi2c0ebSIjd0RpTLDfAv +IM57czf3Qy7TO64hNe96m8wiUvBePZkNbH1zMCnD4HOud0eG3C41bbGlpWQ59NvD +UmfrlpCavWZNRSAxElhI+saUNfnisM36H8gp5y1PB1HJP7iAji6DRoS+cbJuegBN +u8lLl9inU0wnu5diP+J+dI8So8eYCcwg+Cm6UbXdhqrP2LfPDPZfkX15tM8eBBvg +DDAIigDNmbQ9z0kpwyTSw7moJ/wxsZLJdkZoTrD2UR+RO4mQWgQFyw0a89AuhFSt +w6UD4m3Bq4JJkSYSjXcNapcBlEpX0yiU4yQmMuMYc2uoDbzDYqdtqTzae0xWKlGn +0eUVN4xJPtUHtYnX2hOmKRDEvLLspoYw7Wnj8DzSQ/l5Z233yYJCAVYgwwARAQAB +tDtFdmFuIFRlaXRlbG1hbiAoQmxhY2tBcmNoIE1hc3RlcikgPHRlaXRlbG1hbmV2 +YW5AZ21haWwuY29tPokCOQQTAQIAIwUCUsdINQIbAwcLCQgHAwIBBhUIAgkKCwQW +AgMBAh4BAheAAAoJEGbgzb0eAfMzWkIP/RyAZYzsbMbvpXkrqUQeM8xH9cLWlPPE +F5FUjyVvxotZGxBukzfHZnjZV5vCZAsDX9/CV7wANJh5Ps0+BJtOcqY/Ryp6QeIQ +hnTn8BJwAy5oUa3BUMgTWslzuZwrSdNTGv/OJen+AojaCPHDm47bZOtIjPutE+xK +DCq65Oh5DTkRw3JQYekqMXZlfLubpG4MME0ygXXQXCCuk8TPc92nEmtyfJQ3IcQB +yVvOM1R5wp3yK2wScVb5LtAacCKZjXUSV5hsJLbnS53HfjMCXzZacYECnPL4fech +GlMYhoQx0m9JvLZ99NMbiAwh6ZagGIuSuasDndW/AskjCBFZKmmAhsPRDV+lH6Dd +WtzW/1vy5qRmGsiX7rGHbUD5O0e2g8KATp/CqYLSiuQ45D9JTTOIy+fTEo3QbVp3 +LJYPkRWyUwoOhRzT8EWsoV9HnAe2fS2xLmucmIdoCQcqqkx14PkgeCby+D+tZ+L6 +xNcqEZB82jJaiyZ4573mQb4rsM3TNPJBanzmP/tBCBWO/eKuksf7p4gj/RgZfIT6 +cct+pLLojuIuftwOu/WSBiyfWJfGtJHI02uW09JQnPARPjxLb+3svD36uyMocdsM +i4iZBHNJKxa1azARFkHDLfSrzLy5JJHjyM6Vr17k6m/+Mf6bn1OBi2iw9Assc9Bo +bcDmTzUNDBXd +=fgFM +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=oVoe +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +fVlm5SucpII/ +=exOF +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +cMariA== +=ZoDC +-----END PGP PUBLIC KEY BLOCK----- diff --git a/netinstall-iso/bootstrap_packages.x86_64 b/netinstall-iso/bootstrap_packages.x86_64 new file mode 100644 index 000000000..64966d076 --- /dev/null +++ b/netinstall-iso/bootstrap_packages.x86_64 @@ -0,0 +1,2 @@ +arch-install-scripts +base diff --git a/netinstall-iso/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/netinstall-iso/efiboot/loader/entries/01-archiso-x86_64-linux.conf new file mode 100644 index 000000000..adcf2fbd7 --- /dev/null +++ b/netinstall-iso/efiboot/loader/entries/01-archiso-x86_64-linux.conf @@ -0,0 +1,5 @@ +title BlackArch Linux NetInstall medium (x86_64, UEFI) +sort-key 01 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% diff --git a/netinstall-iso/efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf b/netinstall-iso/efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf new file mode 100644 index 000000000..65f8d4c18 --- /dev/null +++ b/netinstall-iso/efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf @@ -0,0 +1,5 @@ +title BlackArch Linux NetInstall medium (x86_64, UEFI) with speech +sort-key 02 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on diff --git a/netinstall-iso/efiboot/loader/entries/03-archiso-x86_64-memtest86+.conf b/netinstall-iso/efiboot/loader/entries/03-archiso-x86_64-memtest86+.conf new file mode 100644 index 000000000..d0b305c9d --- /dev/null +++ b/netinstall-iso/efiboot/loader/entries/03-archiso-x86_64-memtest86+.conf @@ -0,0 +1,3 @@ +title Memtest86+ +sort-key 03 +efi /boot/memtest86+/memtest.efi diff --git a/netinstall-iso/efiboot/loader/entries/archiso-x86_64-linux.conf b/netinstall-iso/efiboot/loader/entries/archiso-x86_64-linux.conf deleted file mode 100644 index 986e47f8a..000000000 --- a/netinstall-iso/efiboot/loader/entries/archiso-x86_64-linux.conf +++ /dev/null @@ -1,9 +0,0 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - -title BlackArch Linux netinstall (x86_64, UEFI) -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% archisolabel=%ARCHISO_LABEL% diff --git a/netinstall-iso/efiboot/loader/entries/archiso-x86_64-speech-linux.conf b/netinstall-iso/efiboot/loader/entries/archiso-x86_64-speech-linux.conf deleted file mode 100644 index af9f9ec1d..000000000 --- a/netinstall-iso/efiboot/loader/entries/archiso-x86_64-speech-linux.conf +++ /dev/null @@ -1,9 +0,0 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - -title BlackArch Linux netinstall (x86_64, UEFI) with speech -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% archisolabel=%ARCHISO_LABEL% accessibility=on diff --git a/netinstall-iso/efiboot/loader/loader.conf b/netinstall-iso/efiboot/loader/loader.conf index 767d2252c..2d137aa92 100644 --- a/netinstall-iso/efiboot/loader/loader.conf +++ b/netinstall-iso/efiboot/loader/loader.conf @@ -1,5 +1,3 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - timeout 15 -default archiso-x86_64-linux.conf +default 01-archiso-x86_64-linux.conf +beep on diff --git a/netinstall-iso/grub/grub.cfg b/netinstall-iso/grub/grub.cfg new file mode 100644 index 000000000..c03fcd470 --- /dev/null +++ b/netinstall-iso/grub/grub.cfg @@ -0,0 +1,107 @@ +# 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 + +# 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=blackarchlinux +timeout=15 +timeout_style=menu + + +# Menu entries + +menuentry "BlackArch Linux NetInstall medium (%ARCH%, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'blackarchlinux' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% + initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img +} + +menuentry "BlackArch Linux NetInstall medium with speakup screen reader (%ARCH%, ${archiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'blackarchlinux-accessibility' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on + initrd /%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 diff --git a/netinstall-iso/grub/loopback.cfg b/netinstall-iso/grub/loopback.cfg new file mode 100644 index 000000000..d7d5ecedf --- /dev/null +++ b/netinstall-iso/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=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/%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/%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 +} diff --git a/netinstall-iso/isolinux/isolinux.cfg b/netinstall-iso/isolinux/isolinux.cfg deleted file mode 100644 index 10fd28520..000000000 --- a/netinstall-iso/isolinux/isolinux.cfg +++ /dev/null @@ -1,6 +0,0 @@ -PATH /%INSTALL_DIR%/boot/syslinux/ -DEFAULT loadconfig - -LABEL loadconfig - CONFIG /%INSTALL_DIR%/boot/syslinux/archiso.cfg - APPEND /%INSTALL_DIR%/ diff --git a/netinstall-iso/packages.x86_64 b/netinstall-iso/packages.x86_64 index b5eb2b539..b519f735f 100644 --- a/netinstall-iso/packages.x86_64 +++ b/netinstall-iso/packages.x86_64 @@ -1,62 +1,128 @@ +alsa-utils amd-ucode arch-install-scripts -archlinux-keyring +archinstall b43-fwcutter base -bind-tools -blackarch-installer -blackarch-keyring -bridge-utils +bcachefs-tools +bind +bolt brltty broadcom-wl btrfs-progs -crda -ctags -dhclient +clonezilla +cloud-init +cryptsetup +darkhttpd +ddrescue dhcpcd -dialog +diffutils +dmidecode +dmraid +dnsmasq dosfstools +e2fsprogs edk2-shell -efitools +efibootmgr +espeakup ethtool -expac -git +exfatprogs +f2fs-tools +fatresize +foot-terminfo +fsarchiver +gpart +gpm +gptfdisk +grml-zsh-config grub -haveged +hdparm +hyperv intel-ucode +irssi iw iwd +jfsutils +kitty-terminfo +ldns +less +lftp +libfido2 +libusb-compat linux linux-atm linux-firmware -lsof +linux-firmware-marvell +livecd-sounds +lsscsi lvm2 +lynx +man-db +man-pages +mc +mdadm memtest86+ +memtest86+-efi mkinitcpio mkinitcpio-archiso mkinitcpio-nfs-utils -mlocate +mmc-utils +modemmanager +mtools +nano nbd -netctl -ntp +ndisc6 +nfs-utils +nilfs-utils +nmap +ntfs-3g +nvme-cli +open-iscsi +open-vm-tools +openconnect +openpgp-card-tools openssh +openvpn +partclone parted -pkgfile +partimage +pcsclite ppp pptpclient +pv +qemu-guest-agent refind -rfkill -rp-pppoe -sed +reflector +rsync +rxvt-unicode-terminfo +screen +sdparm +sequoia-sq +sg3_utils +smartmontools +sof-firmware squashfs-tools +sudo syslinux systemd-resolvconf +tcpdump terminus-font -tzdata +testdisk +tmux +tpm2-tools +tpm2-tss +udftools usb_modeswitch +usbmuxd +usbutils vim -wget +virtualbox-guest-utils-nox +vpnc wireless-regdb wireless_tools wpa_supplicant wvdial +xdg-utils +xfsprogs +xl2tpd +zsh diff --git a/netinstall-iso/pacman.conf b/netinstall-iso/pacman.conf index 7e3ed083c..46a5c9032 100644 --- a/netinstall-iso/pacman.conf +++ b/netinstall-iso/pacman.conf @@ -99,4 +99,4 @@ Include = /etc/pacman.d/mirrorlist #Server = file:///home/custompkgs [blackarch] -Server = https://www.blackarch.org/blackarch/$repo/os/$arch +Include = /etc/pacman.d/blackarch-mirrorlist diff --git a/netinstall-iso/profiledef.sh b/netinstall-iso/profiledef.sh index 702f7ce6d..781bb3b98 100644 --- a/netinstall-iso/profiledef.sh +++ b/netinstall-iso/profiledef.sh @@ -1,12 +1,27 @@ #!/usr/bin/env bash # shellcheck disable=SC2034 -iso_name="blackarch-linux-netinst" -iso_label="BLACKARCH_$(date +%Y%m)" -iso_publisher="BlackArch Linux " -iso_application="BlackArch Linux NetInstall ISO" -iso_version="$(date +%Y.%m.%d)" -install_dir="blackarch" -bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' 'uefi-x64.systemd-boot.esp' 'uefi-x64.systemd-boot.eltorito') +iso_name="blackarchlinux" +iso_label="BLACKARCH_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" +iso_publisher="BlackArch Linux " +iso_application="BlackArch 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.systemd-boot.esp' 'uefi-x64.systemd-boot.esp' + 'uefi-ia32.systemd-boot.eltorito' 'uefi-x64.systemd-boot.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=('zstd' '-c' '-T0' '--auto-threads=logical' '--long' '-19') +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" +) diff --git a/netinstall-iso/syslinux/archiso.cfg b/netinstall-iso/syslinux/archiso.cfg deleted file mode 100644 index a6ba8b087..000000000 --- a/netinstall-iso/syslinux/archiso.cfg +++ /dev/null @@ -1,14 +0,0 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - -DEFAULT select - -LABEL select -COM32 boot/syslinux/whichsys.c32 -APPEND -pxe- pxe -sys- sys -iso- sys - -LABEL pxe -CONFIG boot/syslinux/archiso_pxe.cfg - -LABEL sys -CONFIG boot/syslinux/archiso_sys.cfg diff --git a/netinstall-iso/syslinux/archiso_head.cfg b/netinstall-iso/syslinux/archiso_head.cfg index b22961954..4d571d49f 100644 --- a/netinstall-iso/syslinux/archiso_head.cfg +++ b/netinstall-iso/syslinux/archiso_head.cfg @@ -1,9 +1,6 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - -SERIAL 0 38400 +SERIAL 0 115200 UI vesamenu.c32 -MENU TITLE BlackArch Linux (netinstall) +MENU TITLE BlackArch Linux MENU BACKGROUND splash.png MENU WIDTH 78 @@ -15,7 +12,7 @@ MENU CMDLINEROW 14 MENU HELPMSGROW 16 MENU HELPMSGENDROW 29 -# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu +# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32 MENU COLOR border 30;44 #50fafbff #a0000000 std MENU COLOR title 1;31;44 #ff6298e0 #a0000000 std diff --git a/netinstall-iso/syslinux/archiso_pxe-linux.cfg b/netinstall-iso/syslinux/archiso_pxe-linux.cfg index 61c8f5d9b..8df11795a 100644 --- a/netinstall-iso/syslinux/archiso_pxe-linux.cfg +++ b/netinstall-iso/syslinux/archiso_pxe-linux.cfg @@ -1,35 +1,32 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - LABEL arch64_nbd TEXT HELP -Boot the BlackArch Linux NetInstall ISO using NBD. +Boot the BlackArch Linux NetInstall medium using NBD. It allows you to install BlackArch Linux or perform system maintenance. ENDTEXT -MENU LABEL BlackArch Linux NetInstall ISO (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% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} checksum verify +MENU LABEL BlackArch Linux NetInstall medium (x86_64, NBD) +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y SYSAPPEND 3 LABEL arch64_nfs TEXT HELP -Boot the BlackArch Linux NetInstall ISO using NFS. +Boot the BlackArch Linux NetInstall medium using NFS. It allows you to install BlackArch Linux or perform system maintenance. ENDTEXT -MENU LABEL BlackArch Linux NetInstall ISO (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 checksum verify +MENU LABEL BlackArch Linux NetInstall medium (x86_64, NFS) +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD ::/%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 BlackArch Linux NetInstall ISO using HTTP. +Boot the BlackArch Linux NetInstall medium using HTTP. It allows you to install BlackArch Linux or perform system maintenance. ENDTEXT -MENU LABEL BlackArch Linux NetInstall ISO (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}/ checksum verify +MENU LABEL BlackArch Linux NetInstall medium (x86_64, HTTP) +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y SYSAPPEND 3 diff --git a/netinstall-iso/syslinux/archiso_pxe.cfg b/netinstall-iso/syslinux/archiso_pxe.cfg index b005cb199..b4c9a804e 100644 --- a/netinstall-iso/syslinux/archiso_pxe.cfg +++ b/netinstall-iso/syslinux/archiso_pxe.cfg @@ -1,6 +1,3 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - INCLUDE archiso_head.cfg INCLUDE archiso_pxe-linux.cfg diff --git a/netinstall-iso/syslinux/archiso_sys-linux.cfg b/netinstall-iso/syslinux/archiso_sys-linux.cfg index 24b22d251..e4f4c76f0 100644 --- a/netinstall-iso/syslinux/archiso_sys-linux.cfg +++ b/netinstall-iso/syslinux/archiso_sys-linux.cfg @@ -1,23 +1,20 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - LABEL arch64 TEXT HELP -Boot the BlackArch Linux NetInstall ISO on BIOS. +Boot the BlackArch Linux NetInstall medium on BIOS. It allows you to install BlackArch Linux or perform system maintenance. ENDTEXT -MENU LABEL BlackArch Linux NetInstall ISO (x86_64, BIOS) +MENU LABEL BlackArch Linux 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% archisolabel=%ARCHISO_LABEL% +INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% # Accessibility boot option LABEL arch64speech TEXT HELP -Boot the BlackArch Linux NetInstall ISO on BIOS with speakup screen reader. -It allows you to install Arch Linux or perform system maintenance with speech feedback. +Boot the BlackArch Linux NetInstall medium on BIOS with speakup screen reader. +It allows you to install BlackArch Linux or perform system maintenance with speech feedback. ENDTEXT -MENU LABEL BlackArch Linux NetInstall ISO (x86_64, BIOS) with ^speech +MENU LABEL BlackArch Linux 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% archisolabel=%ARCHISO_LABEL% accessibility=on +INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on diff --git a/netinstall-iso/syslinux/archiso_sys.cfg b/netinstall-iso/syslinux/archiso_sys.cfg index cab78f8cb..d93bcfe67 100644 --- a/netinstall-iso/syslinux/archiso_sys.cfg +++ b/netinstall-iso/syslinux/archiso_sys.cfg @@ -1,6 +1,3 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - INCLUDE archiso_head.cfg DEFAULT arch64 diff --git a/netinstall-iso/syslinux/archiso_tail.cfg b/netinstall-iso/syslinux/archiso_tail.cfg index af172c05f..e84897c5a 100644 --- a/netinstall-iso/syslinux/archiso_tail.cfg +++ b/netinstall-iso/syslinux/archiso_tail.cfg @@ -1,6 +1,3 @@ -# -# SPDX-License-Identifier: GPL-3.0-or-later - LABEL existing TEXT HELP Boot an existing operating system. @@ -10,12 +7,12 @@ MENU LABEL Boot existing OS COM32 chain.c32 APPEND hd0 0 -# http://www.memtest.org/ +# https://www.memtest.org/ LABEL memtest MENU LABEL Run Memtest86+ (RAM test) -LINUX /%INSTALL_DIR%/boot/memtest +LINUX /boot/memtest86+/memtest -# http://hdt-project.org/ +# https://wiki.syslinux.org/wiki/index.php/Hdt_(Hardware_Detection_Tool) LABEL hdt MENU LABEL Hardware Information (HDT) COM32 hdt.c32 diff --git a/netinstall-iso/syslinux/syslinux.cfg b/netinstall-iso/syslinux/syslinux.cfg index 57b886792..cbda72f2a 100644 --- a/netinstall-iso/syslinux/syslinux.cfg +++ b/netinstall-iso/syslinux/syslinux.cfg @@ -9,4 +9,3 @@ CONFIG archiso_pxe.cfg LABEL sys CONFIG archiso_sys.cfg - diff --git a/slim-iso/airootfs/etc/pacman.d/hooks/add-blackarch-de.hook b/slim-iso/airootfs/etc/pacman.d/hooks/add-blackarch-de.hook new file mode 100644 index 000000000..62f7265d9 --- /dev/null +++ b/slim-iso/airootfs/etc/pacman.d/hooks/add-blackarch-de.hook @@ -0,0 +1,37 @@ +# remove from airootfs! + +# setup user +useradd -m -g users -G wheel,power,audio,video,storage -s /bin/zsh liveuser +echo "liveuser:blackarch" | chpasswd +ln -sf /usr/share/icons/blackarch-icons/apps/scalable/distributor-logo-blackarch.svg /home/liveuser/.face +mkdir -p /home/liveuser/Desktop +chown -R liveuser:users /home/liveuser/Desktop +chmod -R 755 /home/liveuser/Desktop +ln -sf /usr/share/applications/calamares.desktop /home/liveuser/Desktop/calamares.desktop +sed -i -e "s|Install System|Install BlackArch|g" /usr/share/applications/calamares.desktop +ln -sf /usr/share/applications/xfce4-terminal-emulator.desktop /home/liveuser/Desktop/terminal.desktop +chmod +x /home/liveuser/Desktop/*.desktop + +# font configuration +ln -sf /etc/fonts/conf.avail/* /etc/fonts/conf.d +rm -f /etc/fonts/conf.d/05-reset-dirs-sample.conf +rm -f /etc/fonts/conf.d/09-autohint-if-no-hinting.conf + +# temporary fixes for ruby based tools +cd /usr/share/whatweb && rm -f Gemfile.lock && + bundle config build.nokogiri --use-system-libraries && + bundle install --path vendor/bundle && rm -f Gemfile.lock + +# change default jdk +archlinux-java set java-21-openjdk + +# Temporary fix for calamares +#pacman -U --noconfirm https://archive.archlinux.org/packages/d/dosfstools/dosfstools-4.1-3-x86_64.pkg.tar.xz + +# GDK Pixbuf +gdk-pixbuf-query-loaders --update-cache + +# vim +cp -r /usr/share/blackarch/config/vim/vim /home/liveuser/.vim +cp /usr/share/blackarch/config/vim/vimrc /home/liveuser/.vimrc + diff --git a/slim-iso/airootfs/etc/pacman.d/hooks/strap-blackarch.hook b/slim-iso/airootfs/etc/pacman.d/hooks/strap-blackarch.hook new file mode 100644 index 000000000..e53cc1a22 --- /dev/null +++ b/slim-iso/airootfs/etc/pacman.d/hooks/strap-blackarch.hook @@ -0,0 +1,16 @@ +# remove from airootfs! + +# setup repository, add pacman.conf entry and sync databse +curl -s https://blackarch.org/strap.sh | sh +#curl -s https://blackarch.org/strap.sh | sed "s|get_mirror$|#get_mirror|1" | sh + +# sys updates, cleanups, etc. +pacman -Syyu --noconfirm +pacman-key --init +pacman-key --populate blackarch archlinux +pacman -Fyy +pacman-db-upgrade +updatedb +#pkgfile -u +sync + diff --git a/slim-iso/airootfs/root/customize_airootfs.sh b/slim-iso/airootfs/root/customize_airootfs.sh deleted file mode 100755 index b22de8858..000000000 --- a/slim-iso/airootfs/root/customize_airootfs.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash - -# exit on error and undefined variables -set -eu - -# set locale -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -locale-gen - -# set timezone -ln -sf /usr/share/zoneinfo/UTC /etc/localtime - -# enabling all mirrors -#sed -i "s|#Server|Server|g" /etc/pacman.d/mirrorlist -sed -i 's|#Server https://ftp.halifax|Server https://ftp.halifax|g' \ - /etc/pacman.d/mirrorlist - -# storing the system journal in RAM -sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf - -# default releng configuration -sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf -sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf -sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf - -# enable useful services and display manager -enabled_services=('choose-mirror.service' 'lightdm.service' 'dbus' 'pacman-init' - 'NetworkManager' 'irqbalance' 'vboxservice') -systemctl enable ${enabled_services[@]} -systemctl set-default graphical.target - -# create the user directory for live session -if [ ! -d /root ]; then - mkdir /root - chmod 700 /root && chown -R root:root /root -fi - -# disable pc speaker beep -echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf - -# disable network stuff -rm -f /etc/udev/rules.d/81-dhcpcd.rules -systemctl disable dhcpcd sshd rpcbind.service - -# remove special (not needed) files -rm -f /etc/systemd/system/getty@tty1.service.d/autologin.conf -rm -f /root/{.automated_script.sh,.zlogin} - -# setting root password -echo "root:blackarch" | chpasswd - -# copy config files to skel -cp /usr/share/blackarch/config/bash/bashrc /etc/skel/.bashrc -cp /usr/share/blackarch/config/bash/bash_profile /etc/skel/.bash_profile -cp /usr/share/blackarch/config/zsh/zshrc /etc/skel/.zshrc - -# setup user -useradd -m -g users -G wheel,power,audio,video,storage -s /bin/zsh liveuser -echo "liveuser:blackarch" | chpasswd -ln -sf /usr/share/icons/blackarch-icons/apps/scalable/distributor-logo-blackarch.svg /home/liveuser/.face -mkdir -p /home/liveuser/Desktop -chown -R liveuser:users /home/liveuser/Desktop -chmod -R 755 /home/liveuser/Desktop -ln -sf /usr/share/applications/calamares.desktop /home/liveuser/Desktop/calamares.desktop -sed -i -e "s|Install System|Install BlackArch|g" /usr/share/applications/calamares.desktop -ln -sf /usr/share/applications/xfce4-terminal-emulator.desktop /home/liveuser/Desktop/terminal.desktop -chmod +x /home/liveuser/Desktop/*.desktop - -# copy files over to home -cp -r /etc/skel/. /root/. - -# repo + database -curl -s https://blackarch.org/strap.sh | sh -pacman -Syy --noconfirm -pacman-key --init -pacman-key --populate blackarch archlinux -pacman -Fyy -pacman-db-upgrade -updatedb -sync - -# font configuration -ln -sf /etc/fonts/conf.avail/* /etc/fonts/conf.d -rm -f /etc/fonts/conf.d/05-reset-dirs-sample.conf -rm -f /etc/fonts/conf.d/09-autohint-if-no-hinting.conf - -# temporary fixes for ruby based tools -cd /usr/share/whatweb && rm -f Gemfile.lock && - bundle config build.nokogiri --use-system-libraries && - bundle install --path vendor/bundle && rm -f Gemfile.lock - -# change default jdk -archlinux-java set java-20-openjdk - -# Temporary fix for calamares -#pacman -U --noconfirm https://archive.archlinux.org/packages/d/dosfstools/dosfstools-4.1-3-x86_64.pkg.tar.xz - -# GDK Pixbuf -gdk-pixbuf-query-loaders --update-cache - -# /etc -echo 'BlackArch Linux' > /etc/arch-release - -# vim -cp -r /usr/share/blackarch/config/vim/vim /home/liveuser/.vim -cp /usr/share/blackarch/config/vim/vimrc /home/liveuser/.vimrc -