summaryrefslogtreecommitdiff
path: root/configs/talkingparabola/airootfs
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2018-05-16 21:08:49 -0400
committerDavid P <megver83@parabola.nu>2018-05-16 21:27:46 -0400
commit765756ae126d57735c22d59a7c1242f01443921e (patch)
treec5d5f3e7979f5a0098e7294d1e8dbae3aa71c562 /configs/talkingparabola/airootfs
parentff5f93347993bfdb6c58746baee006dbad7a3dd8 (diff)
modify entire source according to archiso32
and remove unused configs/talkingparabola-X11 Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'configs/talkingparabola/airootfs')
-rw-r--r--configs/talkingparabola/airootfs/etc/fstab0
-rw-r--r--configs/talkingparabola/airootfs/etc/hostname1
-rw-r--r--configs/talkingparabola/airootfs/etc/locale.conf1
-rw-r--r--configs/talkingparabola/airootfs/etc/motd14
-rw-r--r--configs/talkingparabola/airootfs/etc/pam.d/su6
-rw-r--r--configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel1
-rwxr-xr-xconfigs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror26
-rw-r--r--configs/talkingparabola/airootfs/etc/systemd/system/choose-mirror.service10
-rw-r--r--configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount8
-rw-r--r--configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf3
-rw-r--r--configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service15
-rw-r--r--configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service16
-rw-r--r--configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules1
-rwxr-xr-xconfigs/talkingparabola/airootfs/root/customize_airootfs.sh29
-rw-r--r--configs/talkingparabola/airootfs/root/install.txt2
-rwxr-xr-xconfigs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter8
-rwxr-xr-xconfigs/talkingparabola/airootfs/usr/bin/pick-a-card54
-rwxr-xr-xconfigs/talkingparabola/airootfs/usr/bin/talk-to-me10
-rw-r--r--configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in12
-rw-r--r--configs/talkingparabola/airootfs/usr/share/livecd-sound/functions199
20 files changed, 416 insertions, 0 deletions
diff --git a/configs/talkingparabola/airootfs/etc/fstab b/configs/talkingparabola/airootfs/etc/fstab
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/fstab
diff --git a/configs/talkingparabola/airootfs/etc/hostname b/configs/talkingparabola/airootfs/etc/hostname
new file mode 100644
index 0000000..8aaf41b
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/hostname
@@ -0,0 +1 @@
+parabolaiso
diff --git a/configs/talkingparabola/airootfs/etc/locale.conf b/configs/talkingparabola/airootfs/etc/locale.conf
new file mode 100644
index 0000000..01ec548
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/locale.conf
@@ -0,0 +1 @@
+LANG=en_US.UTF-8
diff --git a/configs/talkingparabola/airootfs/etc/motd b/configs/talkingparabola/airootfs/etc/motd
new file mode 100644
index 0000000..e4c893c
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/motd
@@ -0,0 +1,14 @@
+
+===============================================================================
+
+ Parabola GNU/Linux-libre live media _DATE_
+
+ To install Parabola, the system must be connected to the internet.
+ For instructions, enter this command:
+ less install.txt
+
+ Press the function keys while holding Alt to switch virtual terminals.
+ This allows entering commands without closing less.
+
+===============================================================================
+
diff --git a/configs/talkingparabola/airootfs/etc/pam.d/su b/configs/talkingparabola/airootfs/etc/pam.d/su
new file mode 100644
index 0000000..a291042
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/pam.d/su
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth sufficient pam_wheel.so trust use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel b/configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel
new file mode 100644
index 0000000..8c45359
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/sudoers.d/g_wheel
@@ -0,0 +1 @@
+%wheel ALL=(ALL) NOPASSWD: ALL
diff --git a/configs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror b/configs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror
new file mode 100755
index 0000000..13c9f69
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/systemd/scripts/choose-mirror
@@ -0,0 +1,26 @@
+#!/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 parabolaiso_http_srv)
+[[ $mirror ]] || exit 0
+
+mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
+cat >/etc/pacman.d/mirrorlist << EOF
+#
+# Parabola GNU/Linux-libre repository mirrorlist
+# Generated by parabolaiso
+#
+
+Server = ${mirror%%/}/\$repo/os/\$arch
+EOF
diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/choose-mirror.service b/configs/talkingparabola/airootfs/etc/systemd/system/choose-mirror.service
new file mode 100644
index 0000000..1e4d771
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/systemd/system/choose-mirror.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Choose mirror from the kernel command line
+ConditionKernelCommandLine=mirror
+
+[Service]
+Type=oneshot
+ExecStart=/etc/systemd/scripts/choose-mirror
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
new file mode 100644
index 0000000..4eab551
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
@@ -0,0 +1,8 @@
+[Unit]
+Description=Temporary /etc/pacman.d/gnupg directory
+
+[Mount]
+What=tmpfs
+Where=/etc/pacman.d/gnupg
+Type=tmpfs
+Options=mode=0755
diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
new file mode 100644
index 0000000..d1d8474
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service b/configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service
new file mode 100644
index 0000000..e3b9073
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/systemd/system/livecd-alsa-unmuter.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Unmute All Sound Card Controls For Use With The Live TalkingParabola Environment
+# This needs to run after the audio device becomes available.
+Wants=systemd-udev-settle.service
+After=systemd-udev-settle.service sound.target
+DefaultDependencies=no
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/livecd-alsa-unmuter
+StandardOutput=syslog
+
+[Install]
+WantedBy=sound.target
diff --git a/configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service b/configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service
new file mode 100644
index 0000000..3414ebc
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/systemd/system/pacman-init.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Initializes Pacman keyring
+Wants=haveged.service
+After=haveged.service
+Requires=etc-pacman.d-gnupg.mount
+After=etc-pacman.d-gnupg.mount
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/pacman-key --init
+ExecStart=/usr/bin/pacman-key --populate archlinux
+ExecStart=/usr/bin/pacman-key --populate parabola
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules b/configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules
new file mode 100644
index 0000000..970da69
--- /dev/null
+++ b/configs/talkingparabola/airootfs/etc/udev/rules.d/81-dhcpcd.rules
@@ -0,0 +1 @@
+ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service"
diff --git a/configs/talkingparabola/airootfs/root/customize_airootfs.sh b/configs/talkingparabola/airootfs/root/customize_airootfs.sh
new file mode 100755
index 0000000..8767d11
--- /dev/null
+++ b/configs/talkingparabola/airootfs/root/customize_airootfs.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+set -e -u
+
+sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
+locale-gen
+
+ln -sf /usr/share/zoneinfo/UTC /etc/localtime
+
+usermod -s /usr/bin/zsh root
+cp -aT /etc/skel/ /root/
+
+useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola
+
+chmod 750 /etc/sudoers.d
+chmod 440 /etc/sudoers.d/g_wheel
+
+sed -i 's/#\(PermitRootLogin \).\+/\1yes/' /etc/ssh/sshd_config
+sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
+sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf
+
+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
+
+systemctl enable multi-user.target pacman-init.service choose-mirror.service livecd-alsa-unmuter.service brltty.service
+systemctl set-default multi-user.target
+
+sed -i "s/_DATE_/$(date +%Y.%m.%d)/" /etc/motd
diff --git a/configs/talkingparabola/airootfs/root/install.txt b/configs/talkingparabola/airootfs/root/install.txt
new file mode 100644
index 0000000..a594b97
--- /dev/null
+++ b/configs/talkingparabola/airootfs/root/install.txt
@@ -0,0 +1,2 @@
+View this installation guide online at
+https://wiki.parabola.nu/Installation_Guide
diff --git a/configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter b/configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter
new file mode 100755
index 0000000..6de05a0
--- /dev/null
+++ b/configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# Properly initialize the sound card so that we have audio at boot.
+# This script is released under the GNU General Public License.
+source /usr/share/livecd-sound/functions
+
+preinit_levels all
+sanify_levels all
diff --git a/configs/talkingparabola/airootfs/usr/bin/pick-a-card b/configs/talkingparabola/airootfs/usr/bin/pick-a-card
new file mode 100755
index 0000000..7f469e8
--- /dev/null
+++ b/configs/talkingparabola/airootfs/usr/bin/pick-a-card
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# If there are multiple usable sound cards, prompt the user to choose one,
+# using auditory feedback.
+# This script is released under the GNU General Public License.
+
+source /usr/share/livecd-sound/functions
+
+nwords() {
+ echo $#
+}
+
+is_numeric() {
+ local str=$1
+ expr match "$str" '[[:digit:]]\+$' > /dev/null 2>&1
+}
+
+set_default_card() {
+ local card=$1
+ sed -e "s/%card%/$card/g" < /usr/share/livecd-sound/asound.conf.in \
+ > /etc/asound.conf
+}
+
+play_on_card() {
+ local card=$1 file=$2
+ aplay "-Dplughw:$card,0" "$file"
+}
+
+set -f
+usable_cards="$(list_non_pcsp_cards)"
+num_usable_cards=$(nwords $usable_cards)
+
+if [ "$num_usable_cards" -eq 1 ]; then
+ exit 0
+fi
+
+for card in $usable_cards; do
+ if ! is_numeric "$card"; then
+ continue
+ fi
+ play_on_card "$card" /usr/share/livecd-sound/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-sound/sounds/beep.wav
+ if read -t 10; then
+ set_default_card "$card"
+ break
+ fi
+done
diff --git a/configs/talkingparabola/airootfs/usr/bin/talk-to-me b/configs/talkingparabola/airootfs/usr/bin/talk-to-me
new file mode 100755
index 0000000..73998d8
--- /dev/null
+++ b/configs/talkingparabola/airootfs/usr/bin/talk-to-me
@@ -0,0 +1,10 @@
+#!/bin/sh
+started_flag=/run/speech-is-running
+if [ -f $started_flag ]; then
+ exit 0
+fi
+systemctl stop espeakup
+sleep 5
+pick-a-card
+systemctl start espeakup
+touch $started_flag
diff --git a/configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in b/configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in
new file mode 100644
index 0000000..851f829
--- /dev/null
+++ b/configs/talkingparabola/airootfs/usr/share/livecd-sound/asound.conf.in
@@ -0,0 +1,12 @@
+pcm.!default {
+ type plug
+ slave.pcm {
+ type hw
+ card %card%
+ }
+}
+
+ctl.!default {
+ type hw
+ card %card%
+}
diff --git a/configs/talkingparabola/airootfs/usr/share/livecd-sound/functions b/configs/talkingparabola/airootfs/usr/share/livecd-sound/functions
new file mode 100644
index 0000000..e517795
--- /dev/null
+++ b/configs/talkingparabola/airootfs/usr/share/livecd-sound/functions
@@ -0,0 +1,199 @@
+# Functions for setting up sound on the live CD.
+# This library is released under the GNU General Public License,
+# and it incorporates code from the /etc/init.d/alsa-utils included with
+# Ubuntu 8.04. Proper credit also goes to Debian.
+
+# Start code copied from Debian / Ubuntu:
+
+bugout () {
+ printf "/etc/rc.d/livecdsound: programming error"
+ stat_fail
+}
+
+echo_card_indices()
+{
+ if [ -f /proc/asound/cards ] ; then
+ sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
+ fi
+}
+
+filter_amixer_output()
+{
+ sed \
+ -e '/Unable to find simple control/d' \
+ -e '/Unknown playback setup/d' \
+ -e '/^$/d'
+}
+
+# The following functions try to set many controls.
+# No card has all the controls and so some of the attempts are bound to fail.
+# Because of this, the functions can't return useful status values.
+
+# $1 <control>
+# $2 <level>
+# $CARDOPT
+unmute_and_set_level()
+{
+ { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
+ amixer $CARDOPT -q set "$1" "$2" unmute 2>&1 | filter_amixer_output || :
+ return 0
+}
+
+# $1 <control>
+# $CARDOPT
+mute_and_zero_level()
+{
+ { [ "$1" ] && [ "$CARDOPT" ] ; } || bugout
+ amixer $CARDOPT -q set "$1" "0%" mute 2>&1 | filter_amixer_output || :
+ return 0
+}
+
+# $1 <control>
+# $2 "on" | "off"
+# $CARDOPT
+switch_control()
+{
+ { [ "$2" ] && [ "$CARDOPT" ] ; } || bugout
+ amixer $CARDOPT -q set "$1" "$2" 2>&1 | filter_amixer_output || :
+ return 0
+}
+
+# $1 <card ID>
+sanify_levels_on_card()
+{
+ CARDOPT="-c $1"
+
+ unmute_and_set_level "Front" "80%"
+ unmute_and_set_level "Master" "80%"
+ unmute_and_set_level "Master Mono" "80%"
+ unmute_and_set_level "Master Digital" "80%" # E.g., cs4237B
+ unmute_and_set_level "Playback" "80%"
+ unmute_and_set_level "Headphone" "100%"
+ unmute_and_set_level "PCM" "80%"
+ unmute_and_set_level "PCM,1" "80%" # E.g., ess1969
+ unmute_and_set_level "DAC" "80%" # E.g., envy24, cs46xx
+ unmute_and_set_level "DAC,0" "80%" # E.g., envy24
+ unmute_and_set_level "DAC,1" "80%" # E.g., envy24
+ unmute_and_set_level "Synth" "80%"
+ unmute_and_set_level "CD" "80%"
+ unmute_and_set_level "PC Speaker" "100%"
+
+ mute_and_zero_level "Mic"
+ mute_and_zero_level "IEC958" # Ubuntu #19648
+
+ # Intel P4P800-MX
+ switch_control "Master Playback Switch" on
+ switch_control "Master Surround" on
+
+ # Trident/YMFPCI/emu10k1:
+ unmute_and_set_level "Wave" "80%"
+ unmute_and_set_level "Music" "80%"
+ unmute_and_set_level "AC97" "80%"
+
+ # DRC:
+ unmute_and_set_level "Dynamic Range Compression" "80%"
+
+ # Required for HDA Intel (hda-intel):
+ unmute_and_set_level "Front" "80%"
+
+ # Required for SB Live 7.1/24-bit (ca0106):
+ unmute_and_set_level "Analog Front" "80%"
+
+ # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard
+ switch_control "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 "IEC958 Playback AC97-SPSA" "0"
+
+ # Required for newer Via hardware
+ unmute_and_set_level "VIA DXS,0" "80%"
+ unmute_and_set_level "VIA DXS,1" "80%"
+ unmute_and_set_level "VIA DXS,2" "80%"
+ unmute_and_set_level "VIA DXS,3" "80%"
+
+ # Required on some notebooks with ICH4:
+ switch_control "Headphone Jack Sense" off
+ switch_control "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 "External Amplifier" on
+ switch_control "Audigy Analog/Digital Output Jack" on
+ switch_control "SB Live Analog/Digital Output Jack" on
+
+ # D1984 -- Thinkpad T61/X61
+ switch_control "Speaker" on
+ switch_control "Headphone" on
+
+ # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
+ unmute_and_set_level "Digital" "80%"
+
+ return 0
+}
+
+# $1 <card ID> | "all"
+sanify_levels()
+{
+ TTSDML_RETURNSTATUS=0
+ 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
+}
+
+# $1 <card ID>
+preinit_levels_on_card()
+{
+ CARDOPT="-c $1"
+
+ # Silly dance to activate internal speakers by default on PowerMac
+ # Snapper and Tumbler
+ id=`cat /proc/asound/card$1/id 2>/dev/null`
+ if [ "$id" = "Snapper" -o "$id" = "Tumbler" ]; then
+ switch_control "Auto Mute" off
+ switch_control "PC Speaker" off
+ switch_control "Auto Mute" on
+ fi
+}
+
+# $1 <card ID> | "all"
+preinit_levels()
+{
+ TTSDML_RETURNSTATUS=0
+ case "$1" in
+ all)
+ for CARD in $(echo_card_indices) ; do
+ preinit_levels_on_card "$CARD" || TTSDML_RETURNSTATUS=1
+ done
+ ;;
+ *)
+ preinit_levels_on_card "$1" || TTSDML_RETURNSTATUS=1
+ ;;
+ esac
+ return $TTSDML_RETURNSTATUS
+}
+
+# End copied code.
+
+# 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" -a -f "$cardfile" ] && \
+ [ "$(cat "$cardfile")" != pcsp ]; then
+ echo "$card"
+ fi
+ done
+}