summaryrefslogtreecommitdiff
path: root/configs/talkingparabola/root-image
diff options
context:
space:
mode:
authorJorge Lopez <jorginho@riseup.net>2014-12-04 21:46:10 +0100
committerJorge Lopez <jorginho@riseup.net>2014-12-04 21:46:10 +0100
commit1128eaad3ff68be9e156488fe6cc9c4eadcc4c01 (patch)
tree53024aec8c7e473201c40e01ba16519c8dd16a0e /configs/talkingparabola/root-image
parentcdb7aa1413132df18c92b96d0d93dd4e12daa761 (diff)
Add TalkingParabola and edit in live X11 the design
Diffstat (limited to 'configs/talkingparabola/root-image')
-rw-r--r--configs/talkingparabola/root-image/etc/fstab0
-rw-r--r--configs/talkingparabola/root-image/etc/hostname1
-rw-r--r--configs/talkingparabola/root-image/etc/locale.conf1
-rw-r--r--configs/talkingparabola/root-image/etc/motd14
-rw-r--r--configs/talkingparabola/root-image/etc/pam.d/su6
-rw-r--r--configs/talkingparabola/root-image/etc/sudoers.d/g_wheel1
-rwxr-xr-xconfigs/talkingparabola/root-image/etc/systemd/scripts/choose-mirror26
-rw-r--r--configs/talkingparabola/root-image/etc/systemd/system/choose-mirror.service10
-rw-r--r--configs/talkingparabola/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount8
-rw-r--r--configs/talkingparabola/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf3
-rw-r--r--configs/talkingparabola/root-image/etc/systemd/system/livecd-alsa-unmuter.service15
-rw-r--r--configs/talkingparabola/root-image/etc/systemd/system/pacman-init.service16
-rw-r--r--configs/talkingparabola/root-image/etc/udev/rules.d/81-dhcpcd.rules1
-rwxr-xr-xconfigs/talkingparabola/root-image/root/.automated_script.sh34
-rw-r--r--configs/talkingparabola/root-image/root/.zlogin3
-rwxr-xr-xconfigs/talkingparabola/root-image/root/customize_root_image.sh22
-rw-r--r--configs/talkingparabola/root-image/root/network.html191
-rwxr-xr-xconfigs/talkingparabola/root-image/usr/bin/livecd-alsa-unmuter8
-rwxr-xr-xconfigs/talkingparabola/root-image/usr/bin/pick-a-card54
-rwxr-xr-xconfigs/talkingparabola/root-image/usr/bin/talk-to-me10
-rw-r--r--configs/talkingparabola/root-image/usr/share/livecd-sound/asound.conf.in12
-rw-r--r--configs/talkingparabola/root-image/usr/share/livecd-sound/functions199
22 files changed, 635 insertions, 0 deletions
diff --git a/configs/talkingparabola/root-image/etc/fstab b/configs/talkingparabola/root-image/etc/fstab
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/configs/talkingparabola/root-image/etc/fstab
diff --git a/configs/talkingparabola/root-image/etc/hostname b/configs/talkingparabola/root-image/etc/hostname
new file mode 100644
index 0000000..8aaf41b
--- /dev/null
+++ b/configs/talkingparabola/root-image/etc/hostname
@@ -0,0 +1 @@
+parabolaiso
diff --git a/configs/talkingparabola/root-image/etc/locale.conf b/configs/talkingparabola/root-image/etc/locale.conf
new file mode 100644
index 0000000..01ec548
--- /dev/null
+++ b/configs/talkingparabola/root-image/etc/locale.conf
@@ -0,0 +1 @@
+LANG=en_US.UTF-8
diff --git a/configs/talkingparabola/root-image/etc/motd b/configs/talkingparabola/root-image/etc/motd
new file mode 100644
index 0000000..05ab207
--- /dev/null
+++ b/configs/talkingparabola/root-image/etc/motd
@@ -0,0 +1,14 @@
+
+===============================================================================
+
+ Parabola live media _DATE_
+
+ To install Parabola, the system must be connected to the internet.
+ For instructions, enter this command:
+ lynx network.html
+
+ Press the number keys while holding Alt to switch virtual terminals.
+ This allows entering commands without closing lynx.
+
+===============================================================================
+
diff --git a/configs/talkingparabola/root-image/etc/pam.d/su b/configs/talkingparabola/root-image/etc/pam.d/su
new file mode 100644
index 0000000..a291042
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/etc/sudoers.d/g_wheel b/configs/talkingparabola/root-image/etc/sudoers.d/g_wheel
new file mode 100644
index 0000000..8c45359
--- /dev/null
+++ b/configs/talkingparabola/root-image/etc/sudoers.d/g_wheel
@@ -0,0 +1 @@
+%wheel ALL=(ALL) NOPASSWD: ALL
diff --git a/configs/talkingparabola/root-image/etc/systemd/scripts/choose-mirror b/configs/talkingparabola/root-image/etc/systemd/scripts/choose-mirror
new file mode 100755
index 0000000..13c9f69
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/etc/systemd/system/choose-mirror.service b/configs/talkingparabola/root-image/etc/systemd/system/choose-mirror.service
new file mode 100644
index 0000000..1e4d771
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/talkingparabola/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
new file mode 100644
index 0000000..4eab551
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/talkingparabola/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf
new file mode 100644
index 0000000..d1d8474
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/etc/systemd/system/livecd-alsa-unmuter.service b/configs/talkingparabola/root-image/etc/systemd/system/livecd-alsa-unmuter.service
new file mode 100644
index 0000000..73a4d2e
--- /dev/null
+++ b/configs/talkingparabola/root-image/etc/systemd/system/livecd-alsa-unmuter.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Unmute All Sound Card Controls For Use With The Live TalkingArch 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/root-image/etc/systemd/system/pacman-init.service b/configs/talkingparabola/root-image/etc/systemd/system/pacman-init.service
new file mode 100644
index 0000000..3414ebc
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/talkingparabola/root-image/etc/udev/rules.d/81-dhcpcd.rules
new file mode 100644
index 0000000..970da69
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/root/.automated_script.sh b/configs/talkingparabola/root-image/root/.automated_script.sh
new file mode 100755
index 0000000..fb106da
--- /dev/null
+++ b/configs/talkingparabola/root-image/root/.automated_script.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+script_cmdline ()
+{
+ local param
+ for param in $(< /proc/cmdline); do
+ case "${param}" in
+ script=*) echo "${param##*=}" ; return 0 ;;
+ esac
+ done
+}
+
+automated_script ()
+{
+ local script rt
+ script="$(script_cmdline)"
+ if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
+ if [[ "${script}" =~ ^http:// || "${script}" =~ ^ftp:// ]]; then
+ wget "${script}" --retry-connrefused -q -O /tmp/startup_script >/dev/null
+ rt=$?
+ else
+ cp "${script}" /tmp/startup_script
+ rt=$?
+ fi
+ if [[ ${rt} -eq 0 ]]; then
+ chmod +x /tmp/startup_script
+ /tmp/startup_script
+ fi
+ fi
+}
+
+if [[ $(tty) == "/dev/tty1" ]]; then
+ automated_script
+fi
diff --git a/configs/talkingparabola/root-image/root/.zlogin b/configs/talkingparabola/root-image/root/.zlogin
new file mode 100644
index 0000000..67cba7a
--- /dev/null
+++ b/configs/talkingparabola/root-image/root/.zlogin
@@ -0,0 +1,3 @@
+setopt singlelinezle
+~/.automated_script.sh
+ flock -n /run/talk-to-me.lck talk-to-me
diff --git a/configs/talkingparabola/root-image/root/customize_root_image.sh b/configs/talkingparabola/root-image/root/customize_root_image.sh
new file mode 100755
index 0000000..4ff8528
--- /dev/null
+++ b/configs/talkingparabola/root-image/root/customize_root_image.sh
@@ -0,0 +1,22 @@
+#!/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/#Server/Server/g" /etc/pacman.d/mirrorlist
+
+systemctl enable multi-user.target pacman-init.service choose-mirror.service livecd-alsa-unmuter.service brltty.service
+
+sed -i "s/_DATE_/${iso_version}/" /etc/motd
diff --git a/configs/talkingparabola/root-image/root/network.html b/configs/talkingparabola/root-image/root/network.html
new file mode 100644
index 0000000..057e680
--- /dev/null
+++ b/configs/talkingparabola/root-image/root/network.html
@@ -0,0 +1,191 @@
+Online version: <a href="https://wiki.parabolagnulinux.org/Start_installing">https://wiki.parabolagnulinux.org/Start_installing</a>
+<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#Start_installing"><span class="tocnumber">1</span> <span class="toctext">Start installing</span></a>
+<ul>
+<li class="toclevel-2 tocsection-2"><a href="#Change_the_language"><span class="tocnumber">1.1</span> <span class="toctext">Change the language</span></a></li>
+<li class="toclevel-2 tocsection-3"><a href="#Establish_an_internet_connection"><span class="tocnumber">1.2</span> <span class="toctext">Establish an internet connection</span></a>
+<ul>
+<li class="toclevel-3 tocsection-4"><a href="#Wired"><span class="tocnumber">1.2.1</span> <span class="toctext">Wired</span></a></li>
+<li class="toclevel-3 tocsection-5"><a href="#Wireless"><span class="tocnumber">1.2.2</span> <span class="toctext">Wireless</span></a></li>
+<li class="toclevel-3 tocsection-6"><a href="#Analog_modem.2C_ISDN_or_PPPoE_DSL"><span class="tocnumber">1.2.3</span> <span class="toctext">Analog modem, ISDN or PPPoE DSL</span></a></li>
+<li class="toclevel-3 tocsection-7"><a href="#Behind_a_proxy_server"><span class="tocnumber">1.2.4</span> <span class="toctext">Behind a proxy server</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</td></tr></table>
+<h2> <span class="mw-headline" id="Start_installing"> Start installing </span></h2>
+<p>You are now presented with a shell prompt, automatically logged in as root.
+</p>
+<h3> <span class="mw-headline" id="Change_the_language"> Change the language </span></h3>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #DDFFDD; border: thin solid #BBDDBB"><strong> Tip: </strong>These are optional for the majority of users. Useful only if you plan on writing in your own language in any of the configuration files, if you use diacritical marks in the Wi-Fi password, or if you would like to receive system messages (e.g. possible errors) in your own language.</div>
+<p>By default, the keyboard layout is set to <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">us</span>. If you have a non-<a href="http://en.wikipedia.org/wiki/File:KB_United_States-NoAltGr.svg" class="extiw" title="wikipedia:File:KB United States-NoAltGr.svg">US</a> keyboard layout, run:
+</p>
+<pre># loadkeys <i>layout</i>
+</pre>
+<p>...where <i>layout</i> can be <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">fr</span>, <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">uk</span>, <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">dvorak</span>, <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">be-latin1</span>, etc. See <a href="https://wiki.parabolagnulinux.org/KEYMAP#Keyboard_layouts" title="KEYMAP">here</a> for a comprehensive list.
+</p><p>The font should also be changed, because most languages use more glyphs than the 26 letter <a href="http://en.wikipedia.org/wiki/English_alphabet" class="extiw" title="wikipedia:English alphabet">English alphabet</a>. Otherwise some foreign characters may show up as white squares or as other symbols. Note that the name is case-sensitive, so please type it <i>exactly</i> as you see it:
+</p>
+<pre># setfont Lat2-Terminus16
+</pre>
+<p>By default, the language is set to English (US). If you would like to change the language for the install process <i>(German, in this example)</i>, remove the <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">#</span> in front of the <a rel="nofollow" class="external text" href="http://www.greendesktiny.com/support/knowledgebase_detail.php?ref=EUH-483">locale</a> you want from <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">/etc/locale.gen</span>, along with English (US). Please choose the <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">UTF-8</span> entry.
+</p><p>Use <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">Ctrl+X</span> to exit, and when prompted to save changes, press <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">Y</span> and <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">Enter</span> to use the same filename.
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em; overflow: auto;"># nano /etc/locale.gen</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em; overflow: auto;">
+en_US.UTF-8 UTF-8
+de_DE.UTF-8 UTF-8</pre>
+<pre># locale-gen
+# export LANG=de_DE.UTF-8
+</pre>
+<p>Remember, <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">LAlt+LShift</span> activates and deactivates the keymap.
+</p>
+<h3> <span class="mw-headline" id="Establish_an_internet_connection"> Establish an internet connection </span></h3>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #FFDDDD; border: thin solid #DDBBBB"><strong> Warning: </strong>As of v197, udev no longer assigns network interface names according to the wlanX and ethX naming scheme. If you are coming from a different distribution or are reinstalling Parabola and not aware of the new interface naming style, please do not assume that your wireless interface is named wlan0, or that your wired interface is named eth0. You can use the command <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">ip link</span> to discover the names of your interfaces.</div>
+<p>The <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">dhcpcd</span> network daemon starts automatically during boot and it will attempt to start a wired connection. Try to ping a server to see if a connection was established. For example, gnu.org:
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em; overflow: auto;"># ping -c 3 gnu.org</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em; overflow: auto;">PING gnu.org (208.118.235.148) 56(84) bytes of data.
+64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=1 ttl=47 time=183 ms
+64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=2 ttl=47 time=168 ms
+64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=3 ttl=47 time=183 ms
+
+--- gnu.org ping statistics ---
+3 packets transmitted, 3 received, 0% packet loss, time 2002ms
+rtt min/avg/max/mdev = 168.131/178.357/183.914/7.248 ms</pre>
+<p>If you get a <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">ping: unknown host</span> error, first check if there is an issue with your cable or wireless signal strength. If not, you will need to set up the network manually, as explained below. Once a connection is established move on to <a href="https://wiki.parabolagnulinux.org/Installation_Guide" title="Installation Guide">Installation Guide</a>.
+</p>
+<h4> <span class="mw-headline" id="Wired"> Wired </span></h4>
+<p>Follow this procedure if you need to set up a wired connection via a static IP address.
+</p><p>First, disable the dhcpcd service which was started automatically at boot:
+</p>
+<pre># systemctl stop dhcpcd.service
+</pre>
+<p>Identify the name of your Ethernet interface.
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em; overflow: auto;"># ip link</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em; overflow: auto;">
+1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
+ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+2: enp2s0f0: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
+ link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
+3: wlp3s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
+ link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff</pre>
+<p>In this example, the Ethernet interface is <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">enp2s0f0</span>. If you are unsure, your Ethernet interface is likely to start with the letter "e", and unlikely to be "lo" or start with the letter "w". You can also use <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">iwconfig</span> and see which interfaces are not wireless:
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em; overflow: auto;"># iwconfig</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em; overflow: auto;">enp2s0f0 no wireless extensions.
+wlp3s0 IEEE 802.11bgn ESSID:"NETGEAR97"
+ Mode:Managed Frequency:2.427 GHz Access Point: 2C:B0:5D:9C:72:BF
+ Bit Rate=65 Mb/s Tx-Power=16 dBm
+ Retry long limit:7 RTS thr:off Fragment thr:off
+ Power Management:on
+ Link Quality=61/70 Signal level=-49 dBm
+ Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
+ Tx excessive retries:0 Invalid misc:430 Missed beacon:0
+lo no wireless extensions.</pre>
+<p>In this example, neither <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">enp2s0f0</span> nor the loopback device have wireless extensions, meaning <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">enp2s0f0</span> is our Ethernet interface.
+</p><p>You also need to know these settings:
+</p>
+<ul><li> Static IP address.
+</li><li> Subnet mask.
+</li><li> Gateway's IP address.
+</li><li> Name servers' (DNS) IP addresses.
+</li><li> Domain name (unless you are on a local LAN, in which case you can make it up).
+</li></ul>
+<p>Activate the connected Ethernet interface (e.g. <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">enp2s0f0</span>):
+</p>
+<pre># ip link set enp2s0f0 up
+</pre>
+<p>Add the address:
+</p>
+<pre># ip addr add <i>ip_address</i>/<i>subnetmask</i> dev <i>interface_name</i>
+</pre>
+<p>For example:
+</p>
+<pre># ip addr add 192.168.1.2/24 dev enp2s0f0
+</pre>
+<p>For more options, run <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">man ip</span>.
+</p><p>Add your gateway like this, substituting your own gateway's IP address:
+</p>
+<pre># ip route add default via <i>ip_address</i>
+</pre>
+<p>For example:
+</p>
+<pre># ip route add default via 192.168.1.1
+</pre>
+<p>Edit <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">resolv.conf</span>, substituting your name servers' IP addresses and your local domain name:
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em; overflow: auto;"># nano /etc/resolv.conf</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em; overflow: auto;">
+nameserver 61.23.173.5
+nameserver 61.95.849.8
+search example.com</pre>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #DDDDFF; border: thin solid #BBBBDD"><strong> Note: </strong>Currently, you may include a maximum of three <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">nameserver</span> lines. In order to overcome this limitation, you can use a locally caching nameserver like <a href="https://wiki.parabolagnulinux.org/Dnsmasq" title="Dnsmasq" class="mw-redirect">Dnsmasq</a>. </div>
+<p>You should now have a working network connection. If you do not, check the detailed <a href="https://wiki.parabolagnulinux.org/Network_Configuration" title="Network Configuration" class="mw-redirect">Network Configuration</a> page.
+</p>
+<h4> <span class="mw-headline" id="Wireless"> Wireless </span></h4>
+<p>Follow this procedure if you need wireless connectivity (Wi-Fi) during the installation process.
+</p><p>First, identify the name of your wireless interface.
+</p>
+<pre style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em; overflow: auto;"># iw dev</pre>
+<pre style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em; overflow: auto;">phy#0
+ Interface wlp3s0
+ ifindex 3
+ wdev 0x1
+ addr 00:21:6a:5e:52:bc
+ type managed</pre>
+<p>In this example, <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">wlp3s0</span> is the available wireless interface. If you are unsure, your wireless interface is likely to start with the letter "w", and unlikely to be "lo" or start with the letter "e".
+</p>
+<div style="padding: 5px; margin: 0.50em 0; background-color: #DDDDFF; border: thin solid #BBBBDD"><strong> Note: </strong>If you do not see output similar to this, then your wireless driver has not been loaded. Please see <a href="https://wiki.parabolagnulinux.org/Wireless_Setup" title="Wireless Setup">Wireless Setup</a> for more detailed information.</div>
+<p>Bring the interface up with:
+</p>
+<pre># ip link set wlp3s0 up
+</pre>
+<p>If you get this error message: <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">SIOCSIFFLAGS: No such file or directory</span>, your wireless chipset could need a non-free firmware to function. This is not supported on Parabola. Please see <a href="https://wiki.parabolagnulinux.org/Wireless_Setup" title="Wireless Setup">Wireless Setup</a> if you are unsure if this is the true for your particular chipset.
+</p><p>Next, use <span style="font-family: monospace"><a rel="nofollow" class="external text" href="https://parabolagnulinux.org/packages/?name=netctl">netctl</a></span>'s <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">wifi-menu</span> to connect to a network:
+</p>
+<pre># wifi-menu wlp3s0
+</pre>
+<p>You should now have a working network connection. If you do not, check the detailed <a href="https://wiki.parabolagnulinux.org/Wireless_Setup" title="Wireless Setup">Wireless Setup</a> page.
+</p><p>Alternatively, use <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">iw dev wlp3s0 scan | grep SSID</span> to scan for available networks, then connect to a network with:
+</p>
+<pre># wpa_supplicant -B -i wlp3s0 -c &lt;(wpa_passphrase "<i>ssid</i>" "<i>psk</i>")
+</pre>
+<p>You need to replace <i>ssid</i> with the name of your network (e.g. "Linksys etc...") and <i>psk</i> with your wireless password, <b>leaving the quotes around the network name and password.</b>
+</p><p>Finally, you have to give your interface an IP address. This can be set manually or using the dhcp:
+</p>
+<pre># dhcpcd wlp3s0
+</pre>
+<p>If that does not work, issue the following commands:
+</p>
+<pre># echo 'ctrl_interface=DIR=/run/wpa_supplicant' &gt; /etc/wpa_supplicant.conf
+# wpa_passphrase &lt;ssid&gt; &lt;passphrase&gt; &gt;&gt; /etc/wpa_supplicant.conf
+# ip link set &lt;interface&gt; up # May not be needed as dhcpcd should bring it up but may be needed for wpa_supplicant.
+# wpa_supplicant -B -D nl80211 -c /foobar.conf -i &lt;interface name&gt;
+# dhcpcd -A &lt;interface name&gt;
+</pre>
+<h4> <span class="mw-headline" id="Analog_modem.2C_ISDN_or_PPPoE_DSL"> Analog modem, ISDN or PPPoE DSL </span></h4>
+<p>For xDSL, dial-up and ISDN connections, see <a href="https://wiki.parabolagnulinux.org/Direct_Modem_Connection" title="Direct Modem Connection" class="mw-redirect">Direct Modem Connection</a>.
+</p>
+<h4> <span class="mw-headline" id="Behind_a_proxy_server"> Behind a proxy server </span></h4>
+<p>If you are behind a proxy server, you will need to export the <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">http_proxy</span> and <span style="display:inline-block; background-color:#ebf1f5; padding: 0.1em 0.2em; font-family:monospace; color:#222;">ftp_proxy</span> environment variables. See <a href="https://wiki.parabolagnulinux.org/Proxy_settings" title="Proxy settings" class="mw-redirect">Proxy settings</a> for more information.
+</p>
+<br>
+<p>This page was retrieved from: <a href="https://wiki.parabolagnulinux.org/index.php?title=Start_installing&amp;oldid=5138">https://wiki.parabolagnulinux.org/index.php?title=Start_installing&amp;oldid=5138</a>
+</p>
+<p>Content is available under <a class="external" href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License 1.3 (or at your option, any later version)</a>.
+</p>
+<!--
+NewPP limit report
+Preprocessor visited node count: 462/1000000
+Preprocessor generated node count: 1260/1000000
+Post‐expand include size: 13122/2097152 bytes
+Template argument size: 5931/2097152 bytes
+Highest expansion depth: 7/40
+Expensive parser function count: 0/100
+-->
+
+<!-- Saved in parser cache with key wiki_parabolagnulinux_org:pcache:idhash:1857-1!*!0!!en!*!* and timestamp 20130806172112 -->
diff --git a/configs/talkingparabola/root-image/usr/bin/livecd-alsa-unmuter b/configs/talkingparabola/root-image/usr/bin/livecd-alsa-unmuter
new file mode 100755
index 0000000..6de05a0
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/usr/bin/pick-a-card b/configs/talkingparabola/root-image/usr/bin/pick-a-card
new file mode 100755
index 0000000..7f469e8
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/usr/bin/talk-to-me b/configs/talkingparabola/root-image/usr/bin/talk-to-me
new file mode 100755
index 0000000..73998d8
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/usr/share/livecd-sound/asound.conf.in b/configs/talkingparabola/root-image/usr/share/livecd-sound/asound.conf.in
new file mode 100644
index 0000000..851f829
--- /dev/null
+++ b/configs/talkingparabola/root-image/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/root-image/usr/share/livecd-sound/functions b/configs/talkingparabola/root-image/usr/share/livecd-sound/functions
new file mode 100644
index 0000000..e517795
--- /dev/null
+++ b/configs/talkingparabola/root-image/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
+}