diff --git a/build-gru-kevin-coreboot.md b/build-gru-kevin-coreboot.md new file mode 100644 index 0000000..f68b9d9 --- /dev/null +++ b/build-gru-kevin-coreboot.md @@ -0,0 +1,4 @@ +git clone --recurse-submodules https://review.coreboot.org/coreboot.git +cd coreboot +apt install zlib1g-dev gnat +make crossgcc-aarch64 diff --git a/filesystem/resources/InstallResources/Gnome/greeter.dconf-defaults b/filesystem/resources/InstallResources/Gnome/greeter.dconf-defaults new file mode 100644 index 0000000..35d8851 --- /dev/null +++ b/filesystem/resources/InstallResources/Gnome/greeter.dconf-defaults @@ -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' diff --git a/filesystem/resources/InstallResources/Gnome/prawnos-setting-schema/50_prawnos-gnome-desktop.gschema.override b/filesystem/resources/InstallResources/Gnome/prawnos-setting-schema/50_prawnos-gnome-desktop.gschema.override new file mode 100644 index 0000000..11a6032 --- /dev/null +++ b/filesystem/resources/InstallResources/Gnome/prawnos-setting-schema/50_prawnos-gnome-desktop.gschema.override @@ -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' + diff --git a/kernel/resources/arm64/config b/kernel/resources/arm64/config index 6a63c86..b71eca0 100644 --- a/kernel/resources/arm64/config +++ b/kernel/resources/arm64/config @@ -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 diff --git a/makefile b/makefile index d186597..0b95c57 100644 --- a/makefile +++ b/makefile @@ -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) diff --git a/scripts/BuildScripts/BuildCommon.mk b/scripts/BuildScripts/BuildCommon.mk index 8cd8cf6..e3a2765 100644 --- a/scripts/BuildScripts/BuildCommon.mk +++ b/scripts/BuildScripts/BuildCommon.mk @@ -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 diff --git a/scripts/BuildScripts/FilesystemScripts/buildFilesystem.sh b/scripts/BuildScripts/FilesystemScripts/buildFilesystem.sh index 86a8744..e4471d7 100755 --- a/scripts/BuildScripts/FilesystemScripts/buildFilesystem.sh +++ b/scripts/BuildScripts/FilesystemScripts/buildFilesystem.sh @@ -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[@]} diff --git a/scripts/BuildScripts/ImageScripts/writeImage.sh b/scripts/BuildScripts/ImageScripts/writeImage.sh new file mode 100755 index 0000000..364f235 --- /dev/null +++ b/scripts/BuildScripts/ImageScripts/writeImage.sh @@ -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 + +# 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 . + +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! diff --git a/scripts/BuildScripts/KernelScripts/patchKernel.sh b/scripts/BuildScripts/KernelScripts/patchKernel.sh index 3a940e5..7e01ffb 100755 --- a/scripts/BuildScripts/KernelScripts/patchKernel.sh +++ b/scripts/BuildScripts/KernelScripts/patchKernel.sh @@ -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 diff --git a/scripts/InstallScripts/InstallPackages.sh b/scripts/InstallScripts/InstallPackages.sh index e47a4fb..75d4516 100755 --- a/scripts/InstallScripts/InstallPackages.sh +++ b/scripts/InstallScripts/InstallPackages.sh @@ -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 diff --git a/scripts/Shared/package_lists.sh b/scripts/Shared/package_lists.sh index 9f99789..2090484 100755 --- a/scripts/Shared/package_lists.sh +++ b/scripts/Shared/package_lists.sh @@ -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