Add gnome configurations, and load them in a sane way

bump arm64 to 5.9.7
clean up package installation
bump image size to 3GB for now
add "make write_image PDEV=/dev/sdX TARGET=armXX" to easily build and write an image to the specified device all in one
This commit is contained in:
SolidHal 2020-11-10 22:15:03 -08:00
parent 1e02ed3a68
commit 3e2155a987
11 changed files with 184 additions and 38 deletions

View File

@ -0,0 +1,4 @@
git clone --recurse-submodules https://review.coreboot.org/coreboot.git
cd coreboot
apt install zlib1g-dev gnat
make crossgcc-aarch64

View File

@ -0,0 +1,47 @@
# These are the options for the greeter session that can be set
# through GSettings. Any GSettings setting that is used by the
# greeter session can be set here.
# Note that you must configure the path used by dconf to store the
# configuration, not the GSettings path.
# Theming options
# ===============
# - Change the GTK+ theme
[org/gnome/desktop/interface]
# gtk-theme='Adwaita'
# - Use another background
[org/gnome/desktop/background]
# picture-uri='file:///usr/share/themes/Adwaita/backgrounds/stripes.jpg'
# picture-options='zoom'
# - Or no background at all
[org/gnome/desktop/background]
# picture-options='none'
# primary-color='#000000'
# Login manager options
# =====================
[org/gnome/login-screen]
#logo='/usr/share/images/vendor-logos/logo-text-version-128.png'
# - Disable user list
# disable-user-list=true
# - Disable restart buttons
# disable-restart-buttons=true
# - Show a login welcome message
# banner-message-enable=true
# banner-message-text='Welcome'
# Automatic suspend
# =================
[org/gnome/settings-daemon/plugins/power]
# - Time inactive in seconds before suspending with AC power
# 1200=20 minutes, 0=never
# sleep-inactive-ac-timeout=1200
# - What to do after sleep-inactive-ac-timeout
# 'blank', 'suspend', 'shutdown', 'hibernate', 'interactive' or 'nothing'
# sleep-inactive-ac-type='suspend'
# - As above but when on battery
# sleep-inactive-battery-timeout=1200
# sleep-inactive-battery-type='suspend'

View File

@ -0,0 +1,23 @@
#we can use "dconf dump /" to see the user specific modifications made and then move them here
# swapping the / for .
[org.gnome.desktop.interface]
gtk-im-module='ibus'
gtk-theme='Materia-compact'
monospace-font-name='Source Code Pro Medium 11'
show-battery-percentage=true
[org.gnome.desktop.peripherals.touchpad]
natural-scroll=false
tap-to-click=true
two-finger-scrolling-enabled=true
[org.gnome.desktop.wm.preferences]
button-layout='close,minimize,maximize:appmenu'
[org.gnome.desktop.background]
picture-uri='file:///usr/share/images/desktop-base/default'
[org.gnome.desktop.screensaver]
picture-uri='file:///usr/share/images/desktop-base/default'

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 5.9.1-gnu Kernel Configuration
# Linux/arm64 5.9.6-gnu Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc (Debian 8.3.0-2) 8.3.0"
CONFIG_CC_IS_GCC=y
@ -6338,7 +6338,7 @@ CONFIG_ROCKCHIP_SARADC=y
CONFIG_IIO_CROS_EC_SENSORS_CORE=y
CONFIG_IIO_CROS_EC_SENSORS=y
# CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE is not set
CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=y
#
# Hid Sensor IIO Common

View File

@ -103,6 +103,11 @@ image:
cp $(PRAWNOS_IMAGE_BASE) $(PRAWNOS_IMAGE)
$(MAKE) kernel_install
# $PDEV should be passed like PDEV=/dev/sdb
.PHONY: write_image
write_image: $(PRAWNOS_IMAGE)
$(PRAWNOS_IMAGE_SCRIPTS_WRITE_IMAGE) $(PRAWNOS_IMAGE) $(PDEV)
.PHONE: release
release: $(PRAWNOS_IMAGE_GIT_GZ)

View File

@ -47,7 +47,7 @@ PRAWNOS_KERNEL_HEADERS_DEBVER := 1
## ARM64 KERNEL VERSIONS
else ifeq ($(TARGET),$(PRAWNOS_ARM64))
KVER := 5.9.4
KVER := 5.9.7
PRAWNOS_KERNEL_VER := 1
PRAWNOS_KERNEL_IMAGE_DEBVER := 1
PRAWNOS_KERNEL_HEADERS_DEBVER := 1
@ -124,6 +124,7 @@ PRAWNOS_KERNEL_SCRIPTS_UPDATE_DEB_FILES := $(PRAWNOS_KERNEL_SCRIPTS)/updateKerne
PRAWNOS_IMAGE_SCRIPTS := $(PRAWNOS_BUILD_SCRIPTS)/ImageScripts
PRAWNOS_IMAGE_SCRIPTS_INSTALL_KERNEL := $(PRAWNOS_IMAGE_SCRIPTS)/installKernelToFs.sh
PRAWNOS_IMAGE_SCRIPTS_WRITE_IMAGE := $(PRAWNOS_IMAGE_SCRIPTS)/writeImage.sh
PRAWNOS_INITRAMFS_SCRIPTS := $(PRAWNOS_BUILD_SCRIPTS)/InitramfsScripts
PRAWNOS_INITRAMFS_SCRIPTS_BUILD := $(PRAWNOS_INITRAMFS_SCRIPTS)/buildInitramFs.sh

View File

@ -179,7 +179,7 @@ create_image() {
# create a 2.5GB image with the Chrome OS partition layout
# Bumped to keep both Gnome and Xfce
#TODO: change back to 40 (2GB)
create_image $BASE $outdev 50M 50 $outmnt
create_image $BASE $outdev 50M 60 $outmnt
# use default debootstrap mirror if none is specified
if [ "$PRAWNOS_DEBOOTSTRAP_MIRROR" = "" ]
@ -273,7 +273,7 @@ chroot $outmnt apt-get clean
#Download the shared packages to be installed by Install.sh:
apt_install $PRAWNOS_BUILD $outmnt false ${base_debs_download[@]}
## DEs
#DEs
#Download the xfce packages to be installed by Install.sh:
apt_install $PRAWNOS_BUILD $outmnt false ${xfce_debs_download[@]}

View File

@ -0,0 +1,47 @@
#!/bin/bash
set -x
set -e
# ensure the target device is present, write the image, and force sync
# This file is part of PrawnOS (https://www.prawnos.com)
# Copyright (c) 2020 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS 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 PrawnOS. If not, see <https://www.gnu.org/licenses/>.
if [ -z "$1" ]
then
echo "No PrawnOS image supplied"
exit 1
fi
if [ -z "$2" ]
then
echo "No device supplied, supply like this: PDEV=/dev/sdX "
exit 1
fi
IMAGE=$1
DEVICE=$2
if [ ! -b $DEVICE ]
then
echo $DEVICE is not available, is it plugged in?
exit 1
fi
dd if=$IMAGE of=$DEVICE bs=50M
sync
echo $IMAGE was written to $DEVICE successfully!

View File

@ -41,7 +41,8 @@ if [ "$TARGET" == "$ARCH_ARMHF" ]; then
for i in "$PATCHES"/DTS/*.patch; do echo $i; patch -p1 < $i; done
for i in "$PATCHES"/kernel/*.patch; do echo $i; patch -p1 < $i; done
elif [ "$TARGET" == "$ARCH_ARM64" ]; then
for i in "$PATCHES"/kernel/*.patch; do echo $i; patch -p1 < $i; done
echo skip for now
#for i in "$PATCHES"/kernel/*.patch; do echo $i; patch -p1 < $i; done
# for i in "$PATCHES"/drm/*.patch; do echo $i; patch -p1 < $i; done
# for i in "$PATCHES"/cros-drm/*.patch; do echo $i; patch -p1 < $i; done
# for i in "$PATCHES"/alarm/*.patch; do echo $i; patch -p1 < $i; done

View File

@ -80,47 +80,62 @@ dpkg-reconfigure tzdata
DEBIAN_FRONTEND=noninteractive apt install -y ${base_debs_download[@]}
DEBIAN_FRONTEND=noninteractive apt install -y ${mesa_debs_download[@]}
DEBIAN_FRONTEND=noninteractive apt install -y ${prawnos_base_debs_prebuilt_download[@]}
[ "$DE" = "gnome" ] && apt install -y ${gnome_debs_download[@]}
[ "$DE" = "xfce" ] && apt install -y ${xfce_debs_download[@]} ${prawnos_base_debs_prebuilt_install[@]}
#install the keymap by patching xkb, then bindings work for any desktop environment
cp $DIR/xkb/compat/* /usr/share/X11/xkb/compat/
cp $DIR/xkb/keycodes/* /usr/share/X11/xkb/keycodes/
cp $DIR/xkb/symbols/* /usr/share/X11/xkb/symbols/
patch /usr/share/X11/xkb/rules/base < $DIR/xkb/rules/base.patch
patch /usr/share/X11/xkb/rules/base.lst < $DIR/xkb/rules/base.lst.patch
patch /usr/share/X11/xkb/rules/base.xml < $DIR/xkb/rules/base.xml.patch
patch /usr/share/X11/xkb/rules/evdev < $DIR/xkb/rules/evdev.patch
patch /usr/share/X11/xkb/rules/evdev.lst < $DIR/xkb/rules/evdev.lst.patch
patch /usr/share/X11/xkb/rules/evdev.xml < $DIR/xkb/rules/evdev.xml.patch
patch /usr/share/X11/xkb/symbols/gb < $DIR/xkb/symbols/gb.patch
patch /usr/share/X11/xkb/symbols/us < $DIR/xkb/symbols/us.patch
DEBIAN_FRONTEND=noninteractive apt install -y ${prawnos_base_debs_prebuilt_install[@]}
cp $DIR/xkb/keyboard /etc/default/keyboard
#disable ertm for csr8510 bluetooth, issue #117
echo "module/bluetooth/parameters/disable_ertm = 1" > /etc/sysfs.conf
if [ "$DE" = "gnome" ]
then
apt install -y ${gnome_debs_download[@]}
#install firefox-esr default settings
cp $DIR/firefox-esr/prawn-settings.js /usr/lib/firefox-esr/defaults/pref/
cp $DIR/firefox-esr/prawn.cfg /usr/lib/firefox-esr/
#TODO: a config file way to do the following would be nice, so that we can install the configs now instead
# of having to run the following commands after login
#Natural scrolling is un-natural
# gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll false
#Tap to click is natural
# gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
#apply gsettings and tweaks changes
cp $DIR/Gnome/prawnos-setting-schema/* /usr/share/glib-2.0/schemas/
glib-compile-schemas /usr/share/glib-2.0/schemas/
#copy in wallpapers
rm /usr/share/images/desktop-base/default && cp $DIR/wallpapers/* /usr/share/images/desktop-base/
#remove the logo on gdm
cp $DIR/Gnome/greeter.dconf-defaults /etc/gdm3/greeter.dconf-defaults
dpkg-reconfigure gdm3
#TODO: debug why rotation is flipped
# work around issue #234
apt remove -y iio-sensor-proxy
fi
if [ "$DE" = "xfce" ]
then
apt install -y ${xfce_debs_download[@]}
#install the keymap by patching xkb, then bindings work for any desktop environment
cp $DIR/xkb/compat/* /usr/share/X11/xkb/compat/
cp $DIR/xkb/keycodes/* /usr/share/X11/xkb/keycodes/
cp $DIR/xkb/symbols/* /usr/share/X11/xkb/symbols/
patch /usr/share/X11/xkb/rules/base < $DIR/xkb/rules/base.patch
patch /usr/share/X11/xkb/rules/base.lst < $DIR/xkb/rules/base.lst.patch
patch /usr/share/X11/xkb/rules/base.xml < $DIR/xkb/rules/base.xml.patch
patch /usr/share/X11/xkb/rules/evdev < $DIR/xkb/rules/evdev.patch
patch /usr/share/X11/xkb/rules/evdev.lst < $DIR/xkb/rules/evdev.lst.patch
patch /usr/share/X11/xkb/rules/evdev.xml < $DIR/xkb/rules/evdev.xml.patch
patch /usr/share/X11/xkb/symbols/gb < $DIR/xkb/symbols/gb.patch
patch /usr/share/X11/xkb/symbols/us < $DIR/xkb/symbols/us.patch
cp $DIR/xkb/keyboard /etc/default/keyboard
# remove light-locker, as it is broken on this machine. See issue https://github.com/SolidHal/PrawnOS/issues/56#issuecomment-504681175
apt remove -y light-locker
apt purge -y light-locker
@ -171,6 +186,11 @@ then
#Install brightness control scripts
cp $DIR/xfce-config/brightness/backlight_* /usr/sbin/
#same bash trackpad config works well enough for both devices, but only useful on xfce
mkdir -p /etc/X11/xorg.conf.d/
cp -rf $DIR/30-touchpad.conf /etc/X11/xorg.conf.d/
fi
@ -188,12 +208,10 @@ then
cp -rf $DIR/30-touchpad.conf /etc/X11/xorg.conf.d/
fi
if [[ $device_model == $device_gru_kevin ]] || [[ $device_model == $device_gru_bob ]]
then
#same bash trackpad config works well enough
mkdir -p /etc/X11/xorg.conf.d/
cp -rf $DIR/30-touchpad.conf /etc/X11/xorg.conf.d/
fi
#if [[ $device_model == $device_gru_kevin ]] || [[ $device_model == $device_gru_bob ]]
#then
#nothing for now
#fi
apt clean -y && apt autoremove --purge -y

View File

@ -167,7 +167,6 @@ gnome_debs_download=(
# packages built by prawnos, to be installed when running InstallPrawnOS
# and choosing xfce
prawnos_xfce_debs_prebuilt_download=(
font-source-code-pro
xsecurelock
)
@ -177,6 +176,7 @@ prawnos_base_debs_prebuilt_download=(
# packages built by prawnos, to be installed at build time
prawnos_base_debs_prebuilt_install=(
font-source-code-pro
flashmap
mosys
libgbm1=20.2.1-100