Pi3 support coming back.
This commit is contained in:
parent
25bbd9f3c6
commit
02913ad280
252
pi3/build/build-stormux.sh
Executable file
252
pi3/build/build-stormux.sh
Executable file
@ -0,0 +1,252 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
#
|
||||||
|
# Copyright 2020, Stormux, <storm_dragon@linux-a11y.org>
|
||||||
|
#
|
||||||
|
# This is free software; you can redistribute it and/or modify it under the
|
||||||
|
# terms of the GNU General Public License as published by the Free
|
||||||
|
# Software Foundation; either version 3, or (at your option) any later
|
||||||
|
# version.
|
||||||
|
#
|
||||||
|
# This software is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this package; see the file COPYING. If not, write to the Free
|
||||||
|
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
|
# 02110-1301, USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
# keep track of mounted status for exit function
|
||||||
|
mounted=1
|
||||||
|
|
||||||
|
set -e # Don't want to destroy stuff if this goes majorly wrong.
|
||||||
|
trap cleanup EXIT # make sure the script cleans up after itself before closing.
|
||||||
|
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
if [[ $mounted -eq 0 ]]; then
|
||||||
|
umount -R /mnt
|
||||||
|
partx -d "${loopdev}"
|
||||||
|
losetup --detach "${loopdev}"
|
||||||
|
fi
|
||||||
|
if [[ -n "${imageFileName}" ]]; then
|
||||||
|
rm "${imageFileName}"
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
help() {
|
||||||
|
echo -e "Usage:\n"
|
||||||
|
echo "With no arguments, build with default parameters."
|
||||||
|
for i in "${!command[@]}" ; do
|
||||||
|
echo "-${i/:/ <parameter>}: ${command[${i}]}"
|
||||||
|
done | sort
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Array of command line arguments
|
||||||
|
declare -A command=(
|
||||||
|
[h]="This help screen."
|
||||||
|
[l:]="Language default is en_US."
|
||||||
|
[n:]="Image name, default is stormux-pi3-<armv7h|aarch64>-<yyyy-mm-dd>.img"
|
||||||
|
[s:]="image size in GB, default is 4."
|
||||||
|
[v:]="Version of the Raspberry Pi for which you are building. (32|64) default is 64."
|
||||||
|
)
|
||||||
|
|
||||||
|
# Convert the keys of the associative array to a format usable by getopts
|
||||||
|
args="${!command[*]}"
|
||||||
|
args="${args//[[:space:]]/}"
|
||||||
|
while getopts "${args}" i ; do
|
||||||
|
case "$i" in
|
||||||
|
h) help ;;
|
||||||
|
l)
|
||||||
|
imageLanguage="${OPTARG}.UTF-8"
|
||||||
|
;;
|
||||||
|
n)
|
||||||
|
imageName="${OPTARG}"
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
if [[ "${OPTARG}" =~ ^[[:digit:]]+$ ]]; then
|
||||||
|
imageSize="${OPTARG}G"
|
||||||
|
else
|
||||||
|
echo "Image size must be numeric."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
if [[ "${OPTARG}" =~ ^32|64$ ]]; then
|
||||||
|
imageVersion="${OPTARG}"
|
||||||
|
else
|
||||||
|
echo "Image version must be 32 for 32 bit (armv7h), or 64 for 64 bit (aarch64 default)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# make sure variables are set, or use defaults.
|
||||||
|
export imageVersion="${imageVersion:-64}"
|
||||||
|
export imageSize="${imageSize:-4G}"
|
||||||
|
imageName="${imageName:-stormux-pi3-${imageVersion}-$(date '+%Y-%m-%d').img}"
|
||||||
|
imageName="${imageName/-64-/-aarch64-}"
|
||||||
|
imageName="${imageName/-32-/-armv7h-}"
|
||||||
|
export imageName
|
||||||
|
export imageLanguage="${imageLanguage:-en_US.UTF-8}"
|
||||||
|
|
||||||
|
# Make sure the image file doesn't exist.
|
||||||
|
if [[ -e "$imageName" ]]; then
|
||||||
|
echo "${imageName} exists, please remove or move it for this script to continue."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure this script is ran as root.
|
||||||
|
if [ "$(whoami)" != "root" ] ; then
|
||||||
|
echo "Error: This script must be run as root."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# make sure the needed tools are installed
|
||||||
|
if [[ "$(uname -m)" == "x86_64" ]]; then
|
||||||
|
if ! pacman -Q qemu-user-static &> /dev/null ; then
|
||||||
|
echo "Please install qemu-user-static and binfmt-qemu-static before continuing."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! pacman -Q binfmt-qemu-static &> /dev/null ; then
|
||||||
|
echo "Please install qemu-user-static and binfmt-qemu-static before continuing."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
for i in dosfstools parted wget ; do
|
||||||
|
if ! pacman -Q $i &> /dev/null ; then
|
||||||
|
echo "Please install $i before continuing."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Url for the image to be downloaded.
|
||||||
|
url[32]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-armv7-latest.tar.gz"
|
||||||
|
url[64]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz"
|
||||||
|
|
||||||
|
fallocate -l "$imageSize" "$imageName"
|
||||||
|
loopdev="$(losetup --find --show "${imageName}")"
|
||||||
|
parted --script "${loopdev}" mklabel msdos mkpart primary fat32 0% 200M mkpart primary ext4 200M 100%
|
||||||
|
mkfs.vfat -F32 "${loopdev}p1"
|
||||||
|
mkfs.ext4 -F "${loopdev}p2"
|
||||||
|
mount "${loopdev}p2" /mnt
|
||||||
|
mkdir /mnt/boot
|
||||||
|
mount "${loopdev}p1" /mnt/boot
|
||||||
|
# Things are mounted now, so set mounted to 0 (bash true)
|
||||||
|
mounted=0
|
||||||
|
imageFileName=$(mktemp)
|
||||||
|
wget "${url[$imageVersion]}" -O "${imageFileName}"
|
||||||
|
bsdtar -xpf "${imageFileName}" -C /mnt
|
||||||
|
arch-chroot /mnt << EOF
|
||||||
|
# set up pacman
|
||||||
|
pacman-key --init
|
||||||
|
pacman-key --populate archlinuxarm
|
||||||
|
pacman -Syy
|
||||||
|
# Change kernels for aarch64
|
||||||
|
if [[ "$imageVersion" == "64" ]]; then
|
||||||
|
pacman -R --noconfirm linux-aarch64 uboot-raspberrypi
|
||||||
|
pacman -S --noconfirm linux-rpi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install packages
|
||||||
|
pacman -Su --needed --noconfirm \
|
||||||
|
alsa-firmware \
|
||||||
|
alsa-utils \
|
||||||
|
base \
|
||||||
|
base-devel \
|
||||||
|
bash-completion \
|
||||||
|
bluez \
|
||||||
|
bluez-utils \
|
||||||
|
brltty \
|
||||||
|
cronie \
|
||||||
|
dbus-broker \
|
||||||
|
espeak-ng \
|
||||||
|
git \
|
||||||
|
magic-wormhole \
|
||||||
|
man \
|
||||||
|
man-pages \
|
||||||
|
networkmanager \
|
||||||
|
ntp \
|
||||||
|
pipewire \
|
||||||
|
pipewire-alsa \
|
||||||
|
pipewire-jack \
|
||||||
|
pipewire-pulse \
|
||||||
|
rhvoice-voice-bdl \
|
||||||
|
rng-tools \
|
||||||
|
rsync \
|
||||||
|
sox \
|
||||||
|
w3m \
|
||||||
|
wget \
|
||||||
|
wireless-regdb \
|
||||||
|
wireplumber \
|
||||||
|
xdg-user-dirs \
|
||||||
|
xdg-utils
|
||||||
|
|
||||||
|
# set the language
|
||||||
|
sed -i "s/#$imageLanguage/$imageLanguage/" /etc/locale.gen
|
||||||
|
echo "LANG=$imageLanguage" > /etc/locale.conf
|
||||||
|
locale-gen
|
||||||
|
# Configure and enable Hardware Random Number Generator
|
||||||
|
echo 'RNGD_OPTS="-o /dev/random -r /dev/hwrng"' > /etc/conf.d/rngd
|
||||||
|
systemctl enable rngd.service
|
||||||
|
# Set the distribution name.
|
||||||
|
echo 'Stormux \r (\l)' > /etc/issue
|
||||||
|
echo >> /etc/issue
|
||||||
|
# Change the alarm user to be stormux
|
||||||
|
usermod -a -g users -G wheel,audio,video,network,brlapi -m -d /home/stormux -l stormux alarm
|
||||||
|
# Grant sudo privileges to the stormux user for package installation.
|
||||||
|
echo 'stormux ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers.d/wheel
|
||||||
|
# Set the password for the root user
|
||||||
|
echo -e "root\nroot" | passwd "root"
|
||||||
|
# Set the password for the stormux user
|
||||||
|
echo -e "stormux\nstormux" | passwd "stormux"
|
||||||
|
# Change to the stormux user and install some packages
|
||||||
|
sudo -iu stormux
|
||||||
|
# Create desktop, downloads, music, and other directories.
|
||||||
|
xdg-user-dirs-update
|
||||||
|
# Install the yay package manager
|
||||||
|
git clone https://aur.archlinux.org/yay.git
|
||||||
|
cd yay
|
||||||
|
makepkg -si --noconfirm
|
||||||
|
cd ~
|
||||||
|
rm -rf yay
|
||||||
|
yay -S --removemake --noconfirm fenrir-git growpartfs log2ram
|
||||||
|
rm -rf .cache/yay
|
||||||
|
/usr/share/fenrirscreenreader/tools/configure_pipewire.sh
|
||||||
|
exit
|
||||||
|
# Enable linger so that hopefully sound will start at login.
|
||||||
|
mkdir -p /var/lib/systemd/linger
|
||||||
|
touch /var/lib/systemd/linger/stormux
|
||||||
|
systemctl --global enable dbus-broker.service pipewire.service pipewire-pulse.service wireplumber.service
|
||||||
|
/usr/share/fenrirscreenreader/tools/configure_pipewire.sh
|
||||||
|
# Configure sudo for group wheel, remove nopasswd for the stormux user
|
||||||
|
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel
|
||||||
|
# Set the hostname
|
||||||
|
echo stormux > /etc/hostname
|
||||||
|
# Configure services
|
||||||
|
systemctl enable brltty.path cronie.service dbus-broker.service fenrirscreenreader.service log2ram.service NetworkManager.service ntpd.service
|
||||||
|
systemctl disable dbus.service
|
||||||
|
# Cleanup packages
|
||||||
|
pacman -Sc --noconfirm
|
||||||
|
|
||||||
|
# Update fstab for Raspberry Pi 4. Not needed until linux-aarch64 works.
|
||||||
|
# [[ $imageVersion -eq 4 ]] && sed -i 's/mmcblk0/mmcblk1/g' /etc/fstab
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Copy override files into place.
|
||||||
|
cp -rv ../files/boot/* /mnt/boot
|
||||||
|
cp -rv ../files/etc/* /mnt/etc
|
||||||
|
cp -rv ../files/var/* /mnt/var
|
||||||
|
cp -rv ../files/usr/* /mnt/usr
|
||||||
|
|
||||||
|
# Exiting calls the cleanup function to unmount.
|
||||||
|
exit 0
|
10
pi4/files/boot/config.txt
Executable file
10
pi4/files/boot/config.txt
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
# See /boot/overlays/README for all available options
|
||||||
|
|
||||||
|
dtoverlay=vc4-kms-v3d
|
||||||
|
initramfs initramfs-linux.img followkernel
|
||||||
|
dtparam=audio=on,krnbt=on
|
||||||
|
hdmi_drive=2
|
||||||
|
|
||||||
|
[pi4]
|
||||||
|
# Run as fast as firmware / board allows
|
||||||
|
arm_boost=1
|
20
pi4/files/etc/X11/xorg.conf.d/10-headless.conf
Normal file
20
pi4/files/etc/X11/xorg.conf.d/10-headless.conf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Section "Monitor"
|
||||||
|
Identifier "dummy_monitor"
|
||||||
|
HorizSync 28.0-80.0
|
||||||
|
VertRefresh 48.0-75.0
|
||||||
|
Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Device"
|
||||||
|
Identifier "dummy_card"
|
||||||
|
VideoRam 256000
|
||||||
|
Driver "dummy"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Screen"
|
||||||
|
Identifier "dummy_screen"
|
||||||
|
Device "dummy_card"
|
||||||
|
Monitor "dummy_monitor"
|
||||||
|
SubSection "Display"
|
||||||
|
EndSubSection
|
||||||
|
EndSection
|
1
pi4/files/etc/hostname
Normal file
1
pi4/files/etc/hostname
Normal file
@ -0,0 +1 @@
|
|||||||
|
stormux
|
5
pi4/files/etc/hosts
Normal file
5
pi4/files/etc/hosts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Static table lookup for hostnames.
|
||||||
|
# See hosts(5) for details.
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost
|
||||||
|
127.0.1.1 stormux.localdomain stormux
|
37
pi4/files/etc/log2ram.conf
Normal file
37
pi4/files/etc/log2ram.conf
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Configuration file for Log2Ram (https://github.com/azlux/log2ram) under MIT license.
|
||||||
|
# This configuration file is read by the log2ram service
|
||||||
|
|
||||||
|
# Size for the ram folder, it defines the size the log folder will reserve into the RAM.
|
||||||
|
# If it's not enough, log2ram will not be able to use ram. Check you /var/log size folder.
|
||||||
|
# The default is 40M and is basically enough for a lot of applications.
|
||||||
|
# You will need to increase it if you have a server and a lot of log for example.
|
||||||
|
SIZE=128M
|
||||||
|
|
||||||
|
# This variable can be set to true if you prefer "rsync" rather than "cp".
|
||||||
|
# I use the command cp -u and rsync -X, so I don't copy the all folder every time for optimization.
|
||||||
|
# You can choose which one you want. Be sure rsync is installed if you use it.
|
||||||
|
USE_RSYNC=true
|
||||||
|
|
||||||
|
# If there are some errors with available RAM space, a system mail will be send
|
||||||
|
# Change it to false and you will have only a log if there is no place on RAM anymore.
|
||||||
|
MAIL=false
|
||||||
|
|
||||||
|
# Variable for folders to put in RAM. You need to specify the real folder `/path/folder` , the `/path/hdd.folder` will be automatically created. Multiple path can be separeted by `;`. Do not add the final `/` !
|
||||||
|
# example : PATH_DISK="/var/log;/home/test/FolderInRam"
|
||||||
|
PATH_DISK="/var/log"
|
||||||
|
|
||||||
|
# **************** Zram backing conf *************************************************
|
||||||
|
|
||||||
|
# ZL2R Zram Log 2 Ram enables a zram drive when ZL2R=true ZL2R=false is mem only tmpfs
|
||||||
|
ZL2R=false
|
||||||
|
# COMP_ALG this is any compression algorithm listed in /proc/crypto
|
||||||
|
# lz4 is fastest with lightest load but deflate (zlib) and Zstandard (zstd) give far better compression ratios
|
||||||
|
# lzo is very close to lz4 and may with some binaries have better optimisation
|
||||||
|
# COMP_ALG=lz4 for speed or Zstd for compression, lzo or zlib if optimisation or availabilty is a problem
|
||||||
|
COMP_ALG=lz4
|
||||||
|
# LOG_DISK_SIZE is the uncompressed disk size. Note zram uses about 0.1% of the size of the disk when not in use
|
||||||
|
# LOG_DISK_SIZE is expected compression ratio of alg chosen multiplied by log SIZE
|
||||||
|
# lzo/lz4=2.1:1 compression ratio zlib=2.7:1 zstandard=2.9:1
|
||||||
|
# Really a guestimate of a bit bigger than compression ratio whilst minimising 0.1% mem usage of disk size
|
||||||
|
LOG_DISK_SIZE=100M
|
||||||
|
|
8
pi4/files/etc/motd
Normal file
8
pi4/files/etc/motd
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Welcome to Stormux, powered by Arch Linux ARM
|
||||||
|
|
||||||
|
Stormux Website: https://stormux.org
|
||||||
|
Arch Linux ARM Forum: https://archlinuxarm.org/forum
|
||||||
|
|
||||||
|
Stormux IRC: #stormux on irc.libera.chat
|
||||||
|
Arch Linux ARM IRC: #archlinuxarm on irc.libera.chat
|
||||||
|
|
6
pi4/files/etc/pam.d/nodm
Normal file
6
pi4/files/etc/pam.d/nodm
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#%PAM-1.0
|
||||||
|
|
||||||
|
auth include system-local-login
|
||||||
|
account include system-local-login
|
||||||
|
password include system-local-login
|
||||||
|
session include system-local-login
|
1
pi4/files/etc/sysctl.d/20-quiet-printk.conf
Normal file
1
pi4/files/etc/sysctl.d/20-quiet-printk.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
kernel.printk = 3 3 3 3
|
47
pi4/files/etc/systemd/journald.conf
Normal file
47
pi4/files/etc/systemd/journald.conf
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# This file is part of systemd.
|
||||||
|
#
|
||||||
|
# systemd is free software; you can redistribute it and/or modify it under the
|
||||||
|
# terms of the GNU Lesser General Public License as published by the Free
|
||||||
|
# Software Foundation; either version 2.1 of the License, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# Entries in this file show the compile time defaults. Local configuration
|
||||||
|
# should be created by either modifying this file, or by creating "drop-ins" in
|
||||||
|
# the journald.conf.d/ subdirectory. The latter is generally recommended.
|
||||||
|
# Defaults can be restored by simply deleting this file and all drop-ins.
|
||||||
|
#
|
||||||
|
# Use 'systemd-analyze cat-config systemd/journald.conf' to display the full config.
|
||||||
|
#
|
||||||
|
# See journald.conf(5) for details.
|
||||||
|
|
||||||
|
[Journal]
|
||||||
|
#Storage=auto
|
||||||
|
#Compress=yes
|
||||||
|
#Seal=yes
|
||||||
|
#SplitMode=uid
|
||||||
|
#SyncIntervalSec=5m
|
||||||
|
#RateLimitIntervalSec=30s
|
||||||
|
#RateLimitBurst=10000
|
||||||
|
SystemMaxUse=20M
|
||||||
|
#SystemKeepFree=
|
||||||
|
#SystemMaxFileSize=
|
||||||
|
#SystemMaxFiles=100
|
||||||
|
#RuntimeMaxUse=
|
||||||
|
#RuntimeKeepFree=
|
||||||
|
#RuntimeMaxFileSize=
|
||||||
|
#RuntimeMaxFiles=100
|
||||||
|
#MaxRetentionSec=
|
||||||
|
#MaxFileSec=1month
|
||||||
|
#ForwardToSyslog=no
|
||||||
|
#ForwardToKMsg=no
|
||||||
|
#ForwardToConsole=no
|
||||||
|
#ForwardToWall=yes
|
||||||
|
#TTYPath=/dev/console
|
||||||
|
#MaxLevelStore=debug
|
||||||
|
#MaxLevelSyslog=debug
|
||||||
|
#MaxLevelKMsg=notice
|
||||||
|
#MaxLevelConsole=info
|
||||||
|
#MaxLevelWall=emerg
|
||||||
|
#LineMax=48K
|
||||||
|
#ReadKMsg=yes
|
||||||
|
#Audit=yes
|
2
pi4/files/etc/systemd/resolved.conf.d/dnssec.conf
Normal file
2
pi4/files/etc/systemd/resolved.conf.d/dnssec.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[Resolve]
|
||||||
|
DNSSEC=no
|
14
pi4/files/usr/lib/systemd/system/ntpd.service
Normal file
14
pi4/files/usr/lib/systemd/system/ntpd.service
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Network Time Service
|
||||||
|
After=network.target nss-lookup.target
|
||||||
|
Conflicts=systemd-timesyncd.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
PrivateTmp=true
|
||||||
|
ExecStartPre=/usr/bin/ntpd -Ggq
|
||||||
|
ExecStart=/usr/bin/ntpd -g -u ntp:ntp
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
32
pi4/files/usr/local/bin/configure-stormux
Executable file
32
pi4/files/usr/local/bin/configure-stormux
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
trap 'popd &> /dev/null' EXIT
|
||||||
|
if [[ ! -d /opt/configure-stormux ]]; then
|
||||||
|
# Offer to switch fenrir layout.
|
||||||
|
echo "Would you like to switch Fenrir to laptop layout? (y/n)"
|
||||||
|
read -r continue
|
||||||
|
continue="${continue::1}"
|
||||||
|
if [[ "${continue,}" == "y" ]];then
|
||||||
|
sudo sed -i 's/=desktop/=laptop/' /etc/fenrirscreenreader/settings/settings.conf
|
||||||
|
sudo systemctl restart fenrirscreenreader.service
|
||||||
|
fi
|
||||||
|
if ! ping -c1 stormux.org &> /dev/null ; then
|
||||||
|
echo "No internet connection detected. Press enter to open NetworkManager."
|
||||||
|
echo "Note, it is best to put Fenrir into highlight mode while using NetworkManager."
|
||||||
|
echo "In desktop layout this is done by pressing Fenrir+numpad asterisk."
|
||||||
|
echo "That is the key just above numpad 9."
|
||||||
|
echo "In laptop mode, press Fenrir+y."
|
||||||
|
echo "In desktop mode the Fenrir key is numpad insert."
|
||||||
|
echo "In laptop mode the Fenrir key is the Super key, sometimes called the Windows key."
|
||||||
|
echo "Press enter to continue."
|
||||||
|
read -r continue
|
||||||
|
nmtui-connect
|
||||||
|
fi
|
||||||
|
echo "Installing configure-stormux..."
|
||||||
|
sudo git -C /opt clone -q https://gitlab.com/stormux/configure-stormux.git || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd /opt/configure-stormux
|
||||||
|
./configure-stormux.sh
|
||||||
|
|
||||||
|
exit 0
|
79
pi4/files/var/lib/alsa/asound.state
Normal file
79
pi4/files/var/lib/alsa/asound.state
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
state.ALSA {
|
||||||
|
control.1 {
|
||||||
|
iface MIXER
|
||||||
|
name 'PCM Playback Volume'
|
||||||
|
value -197
|
||||||
|
comment {
|
||||||
|
access 'read write'
|
||||||
|
type INTEGER
|
||||||
|
count 1
|
||||||
|
range '-10239 - 400'
|
||||||
|
dbmin -9999999
|
||||||
|
dbmax 400
|
||||||
|
dbvalue.0 -197
|
||||||
|
}
|
||||||
|
}
|
||||||
|
control.2 {
|
||||||
|
iface MIXER
|
||||||
|
name 'PCM Playback Switch'
|
||||||
|
value true
|
||||||
|
comment {
|
||||||
|
access 'read write'
|
||||||
|
type BOOLEAN
|
||||||
|
count 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
control.3 {
|
||||||
|
iface MIXER
|
||||||
|
name 'PCM Playback Route'
|
||||||
|
value 1
|
||||||
|
comment {
|
||||||
|
access 'read write'
|
||||||
|
type INTEGER
|
||||||
|
count 1
|
||||||
|
range '0 - 2'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
control.4 {
|
||||||
|
iface PCM
|
||||||
|
name 'IEC958 Playback Default'
|
||||||
|
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||||
|
comment {
|
||||||
|
access 'read write'
|
||||||
|
type IEC958
|
||||||
|
count 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
control.5 {
|
||||||
|
iface PCM
|
||||||
|
name 'IEC958 Playback Con Mask'
|
||||||
|
value '0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||||
|
comment {
|
||||||
|
access read
|
||||||
|
type IEC958
|
||||||
|
count 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
control.6 {
|
||||||
|
iface PCM
|
||||||
|
name 'IEC958 Playback PCM Stream'
|
||||||
|
value '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||||
|
comment {
|
||||||
|
access 'read write inactive'
|
||||||
|
type IEC958
|
||||||
|
count 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
state.vc4hdmi {
|
||||||
|
control.1 {
|
||||||
|
iface PCM
|
||||||
|
name ELD
|
||||||
|
value '100008006a10000100000000000000000469fd22415355532056533232380917070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
||||||
|
comment {
|
||||||
|
access 'read volatile'
|
||||||
|
type BYTES
|
||||||
|
count 128
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user