├── images ├── packages ├── .gitignore ├── gpdpocket-gnome-config │ ├── files │ │ ├── gnome │ │ │ ├── profile │ │ │ ├── 02subpixel │ │ │ ├── 01scale │ │ │ └── 00touchscreen │ │ ├── DEBIAN │ │ │ ├── control │ │ │ └── postinst │ │ └── monitors.xml │ └── make.py ├── gpdpocket-power │ ├── files │ │ ├── DEBIAN │ │ │ ├── prerm │ │ │ ├── postinst │ │ │ ├── control │ │ │ ├── preinst │ │ │ └── postrm │ │ ├── gpd-fan.sh │ │ ├── gpd-fan.conf │ │ ├── gpd-fan.service │ │ ├── gpd-fan.py │ │ └── tlp │ └── make.py ├── gpdpocket-audio │ ├── files │ │ ├── chtrt5645.conf │ │ ├── DEBIAN │ │ │ ├── prerm │ │ │ ├── control │ │ │ ├── preinst │ │ │ ├── postrm │ │ │ └── postinst │ │ ├── daemon.conf │ │ ├── default.pa │ │ └── HiFi.conf │ └── make.py ├── gpdpocket-xorg │ ├── files │ │ ├── config │ │ │ ├── 40-monitor.conf │ │ │ ├── 99-touchscreen.conf │ │ │ └── 20-intel.conf │ │ └── DEBIAN │ │ │ └── control │ └── make.py ├── gpdpocket-touchegg-config │ ├── files │ │ ├── DEBIAN │ │ │ ├── control │ │ │ ├── postrm │ │ │ └── preinst │ │ ├── 01_touchegg │ │ └── touchegg.conf │ └── make.py ├── linux-firmware │ ├── files │ │ ├── DEBIAN │ │ │ ├── postinst │ │ │ └── control │ │ └── brcmfmac4356-pcie.txt │ └── make.py ├── gpdpocket-xfce4-config │ ├── files │ │ ├── DEBIAN │ │ │ └── control │ │ └── xfce4 │ │ │ ├── xfconf │ │ │ └── xfce-perchannel-xml │ │ │ │ ├── xfce4-appfinder.xml │ │ │ │ ├── xfce4-settings-editor.xml │ │ │ │ ├── displays.xml │ │ │ │ ├── xsettings.xml │ │ │ │ ├── xfce4-panel.xml │ │ │ │ └── xfwm4.xml │ │ │ └── panel │ │ │ └── whiskermenu-1.rc │ └── make.py ├── linux-headers-generic │ ├── files │ │ └── DEBIAN │ │ │ └── control │ └── make.py ├── gpdpocket │ ├── files │ │ └── DEBIAN │ │ │ └── control │ └── make.py └── linux-image-generic │ ├── files │ └── DEBIAN │ │ └── control │ └── make.py ├── .gitignore ├── .gitmodules ├── README.md ├── respin ├── files │ └── iso.hashes.sha256sum ├── Makefile └── respin.py ├── Makefile ├── common ├── keyFile └── kernel-patches │ └── 0002-debian-changelog.patch └── LICENSE /images: -------------------------------------------------------------------------------- 1 | respin/output -------------------------------------------------------------------------------- /packages/.gitignore: -------------------------------------------------------------------------------- 1 | */build/ 2 | */output/ 3 | */tmp/ 4 | 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /respin/output/ 2 | /respin/images/ 3 | /respin/tmp/ 4 | /repo 5 | 6 | -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/files/gnome/profile: -------------------------------------------------------------------------------- 1 | user-db:user 2 | system-db:local -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/files/gnome/02subpixel: -------------------------------------------------------------------------------- 1 | [org/gnome/settings-daemon/plugins/xsettings] 2 | rgba-order='vrbg' -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/files/gnome/01scale: -------------------------------------------------------------------------------- 1 | [org/gnome/desktop/interface] 2 | scaling-factor=uint32 0 3 | text-scaling-factor=uint32 1 4 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/DEBIAN/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | TLP_CONFIG=/etc/default/tlp 7 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/chtrt5645.conf: -------------------------------------------------------------------------------- 1 | Comment "Intel SoC Audio Device" 2 | SectionUseCase."HiFi" { 3 | File "HiFi.conf" 4 | Comment "Default" 5 | } -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | TLP_CONFIG=/etc/default/tlp 7 | -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/files/gnome/00touchscreen: -------------------------------------------------------------------------------- 1 | [org/gnome/desktop/peripherals/touchscreens/0416:038f] 2 | display=['unknown', 'unknown', 'unknown'] 3 | -------------------------------------------------------------------------------- /packages/gpdpocket-xorg/files/config/40-monitor.conf: -------------------------------------------------------------------------------- 1 | Section "Monitor" 2 | Identifier "DSI1" 3 | Option "Rotate" "right" 4 | EndSection 5 | 6 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/DEBIAN/prerm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | DEFAULT_PA="/etc/pulse/default.pa" 7 | DAEMON_CONF="/etc/pulse/daemon.conf" 8 | -------------------------------------------------------------------------------- /packages/gpdpocket-xorg/files/config/99-touchscreen.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "calibration" 3 | MatchProduct "Goodix Capacitive TouchScreen" 4 | Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1" 5 | EndSection 6 | 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "external/kernel"] 2 | path = external/kernel 3 | url = https://github.com/nexus511/linux-sunxi.git 4 | [submodule "external/linux-firmware"] 5 | path = external/linux-firmware 6 | url = https://github.com/nexus511/linux-firmware.git 7 | -------------------------------------------------------------------------------- /packages/gpdpocket-xorg/files/config/20-intel.conf: -------------------------------------------------------------------------------- 1 | Section "Device" 2 | Identifier "Intel Graphics" 3 | Driver "intel" 4 | Option "AccelMethod" "sna" 5 | Option "TearFree" "true" 6 | Option "DRI" "3" 7 | EndSection -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Source: {name} 3 | Version: {version} 4 | Architecture: {architecture} 5 | Maintainer: {maintainer} 6 | Section: gnome 7 | Priority: optional 8 | Description: gnome Configuration for GPD Pocket. 9 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/gpd-fan.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | case $1 in 4 | pre) 5 | # stop fan control script 6 | systemctl stop gpd-fan.service 7 | ;; 8 | post) 9 | # start fan control script 10 | systemctl start gpd-fan.service 11 | ;; 12 | esac 13 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Source: {name} 3 | Version: {version} 4 | Architecture: {architecture} 5 | Maintainer: {maintainer} 6 | Depends: lm-sensors, thermald, tlp 7 | Section: admin 8 | Priority: optional 9 | Description: Power daemon for GPD Pocket. 10 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/DEBIAN/preinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | TLP_CONFIG=/etc/default/tlp 7 | 8 | if test "$1" = install; then 9 | echo "adding diversion for ${TLP_CONFIG}" 10 | dpkg-divert --add --rename "${TLP_CONFIG}" 11 | fi 12 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Source: {name} 3 | Version: {version} 4 | Architecture: {architecture} 5 | Maintainer: {maintainer} 6 | Depends: gstreamer1.0-vaapi, pulseaudio 7 | Section: admin 8 | Priority: optional 9 | Description: Audio configuration for GPD Pocket. 10 | -------------------------------------------------------------------------------- /packages/gpdpocket-touchegg-config/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Source: {name} 3 | Version: {version} 4 | Architecture: {architecture} 5 | Maintainer: {maintainer} 6 | Depends: touchegg 7 | Section: xfce 8 | Priority: optional 9 | Description: Package containing configuration defaults for touchegg. 10 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/DEBIAN/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | TLP_CONFIG=/etc/default/tlp 7 | 8 | case "$1" in 9 | remove|abort-install|disappear) 10 | echo "remove diversion for ${TLP_CONFIG}" 11 | dpkg-divert --remove --rename "${TLP_CONFIG}" 12 | ;; 13 | esac 14 | -------------------------------------------------------------------------------- /packages/gpdpocket-xorg/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Source: {name} 3 | Version: {version} 4 | Architecture: {architecture} 5 | Maintainer: {maintainer} 6 | Depends: i965-va-driver, mesa-utils, va-driver-all, vainfo, x11-xserver-utils, xinput 7 | Section: x11 8 | Priority: optional 9 | Description: X configuration package for GPD Pocket. 10 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/gpd-fan.conf: -------------------------------------------------------------------------------- 1 | # Time between temperature checks (in seconds) 2 | TIME=10 3 | 4 | # Maximum temperature before turbo boost is disabled 5 | TURBO=60 6 | 7 | # Temperature to set fans to minimum speed 8 | MIN=40 9 | 10 | # Temperature to set fans to medium speed 11 | MED=50 12 | 13 | # Temperature to set fans to maximum speed 14 | MAX=60 -------------------------------------------------------------------------------- /packages/linux-firmware/files/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | for line in btusb loop overlay pwm-lpss pwm-lpss-platform squashfs; do 6 | grep -q "^$line\$" /etc/initramfs-tools/modules || echo $line >>/etc/initramfs-tools/modules 7 | done 8 | 9 | if [ -x /usr/sbin/update-initramfs ]; then 10 | /usr/sbin/update-initramfs -u -k all 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /packages/gpdpocket-touchegg-config/files/DEBIAN/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # if apt has removed the touchegg configuration, fix it 4 | if [ -f /usr/share/touchegg/touchegg.conf.distrib.gpd-pocket -a ! -e /usr/share/touchegg/touchegg.conf ]; then 5 | echo "reset original touchegg configuration" 6 | mv -v /usr/share/touchegg/touchegg.conf.distrib.gpd-pocket /usr/share/touchegg/touchegg.conf 7 | fi 8 | 9 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/gpd-fan.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=GPD Fan Daemon 3 | DefaultDependencies=no 4 | After=sysinit.target local-fs.target 5 | Before=basic.target 6 | 7 | [Service] 8 | Type=simple 9 | EnvironmentFile=/etc/gpd/fan.conf 10 | ExecStart=/usr/local/sbin/gpd-fan --time=${TIME} --turbo=${TURBO} --min=${MIN} --med=${MED} --max=${MAX} 11 | 12 | [Install] 13 | WantedBy=basic.target -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Source: {name} 3 | Version: {version} 4 | Architecture: {architecture} 5 | Maintainer: {maintainer} 6 | Section: xfce 7 | Priority: optional 8 | Description: XFCE4 Configuration for GPD Pocket. 9 | This package actually places some defaults into the user skeleton directory. 10 | It does not change any settings for existing users. 11 | -------------------------------------------------------------------------------- /packages/linux-headers-generic/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Version: {version} 3 | Architecture: {architecture} 4 | Priority: optional 5 | Section: devel 6 | Source: linux-meta 7 | Origin: Ubuntu 8 | Maintainer: {maintainer} 9 | Installed-Size: 13,3 kB 10 | Depends: {linux-headers-package} 11 | Description: Generic Linux kernel headers 12 | This package will always depend on the latest generic kernel headers 13 | available. 14 | -------------------------------------------------------------------------------- /packages/gpdpocket-touchegg-config/files/DEBIAN/preinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # backup original configuration, if installed for the first time 4 | if [ ! -f /usr/share/touchegg/touchegg.conf.gpd-pocket ]; then 5 | echo "preparing initial configuration" 6 | mv -v /usr/share/touchegg/touchegg.conf /usr/share/touchegg/touchegg.conf.distrib.gpd-pocket || true 7 | ln -sf /usr/share/touchegg/touchegg.conf.gpd-pocket /usr/share/touchegg/touchegg.conf 8 | fi 9 | -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-editor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /packages/linux-firmware/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Version: {version} 3 | Architecture: {architecture} 4 | Priority: optional 5 | Section: misc 6 | Origin: Ubuntu 7 | Maintainer: {maintainer} 8 | Installed-Size: 202 MB 9 | Provides: atmel-firmware 10 | Conflicts: atmel-firmware 11 | Replaces: atmel-firmware, linux-restricted-common 12 | Description: Firmware for Linux kernel drivers 13 | This package provides firmware used by Linux kernel drivers. 14 | -------------------------------------------------------------------------------- /packages/gpdpocket-touchegg-config/files/01_touchegg: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # starts touchegg application 4 | PREFIX="$HOME/.config/touchegg/.run" 5 | mkdir -p "$PREFIX" 6 | PIDFILE="$PREFIX/touchegg.$USER$DISPLAY.pid" 7 | LOCK="$PREFIX/touchegg.$USER$DISPLAY.lock" 8 | 9 | start_touchegg() { 10 | ( 11 | flock -n 9 || exit 1 12 | touchegg 2>/dev/null >/dev/null & 13 | PID=$! 14 | echo "$!" >"$PIDFILE" 15 | wait $PID 16 | ) 9>"$LOCK" 17 | } 18 | 19 | start_touchegg & 20 | -------------------------------------------------------------------------------- /packages/gpdpocket/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Source: {name} 3 | Version: {version} 4 | Architecture: {architecture} 5 | Maintainer: {maintainer} 6 | Depends: gpdpocket-xorg, linux-image-generic (>= 4.13.0 ), gpdpocket-power, gpdpocket-audio, linux-firmware (>= 1.999.0-gpdpocket ), gpdpocket-touchegg-config 7 | Recommends: linux-headers-generic (>= 4.13.0 ) 8 | Section: admin 9 | Priority: optional 10 | Description: Meta package that pulls most of the other gpdpocket packages. 11 | -------------------------------------------------------------------------------- /packages/linux-image-generic/files/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: {name} 2 | Version: {version} 3 | Architecture: {architecture} 4 | Priority: optional 5 | Section: kernel 6 | Source: linux-meta 7 | Origin: Ubuntu 8 | Maintainer: {maintainer} 9 | Installed-Size: 13,3 kB 10 | Depends: {linux-image-package}, {linux-extra-package}, linux-firmware (>= 1.999.0-gpdpocket), thermald 11 | Description: Generic Linux kernel image 12 | This package will always depend on the latest generic kernel image 13 | available. 14 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/DEBIAN/preinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | DEFAULT_PA="/etc/pulse/default.pa" 7 | DAEMON_CONF="/etc/pulse/daemon.conf" 8 | CHTRT5645_CONF="/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf" 9 | HIFI_CONF="usr/share/alsa/ucm/chtrt5645/HiFi.conf" 10 | 11 | if test "$1" = install; then 12 | echo "adding diversion for ${DEFAULT_PA}" 13 | dpkg-divert --add --rename "${DEFAULT_PA}" 14 | echo "adding diversion for ${DAEMON_CONF}" 15 | dpkg-divert --add --rename "${DAEMON_CONF}" 16 | fi 17 | -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/files/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "update dconf database" 4 | dconf update 5 | 6 | echo "provide monitors.xml to users that do not have one" 7 | for dn in /home/*; do 8 | echo "checking $dn..." 9 | user_directory=$dn 10 | user_name=$(sed -ne "s|\(^[^:]*\):.*:$dn:.*$|\1|gp;" /etc/passwd) 11 | destination="$dn/.config/monitors.xml" 12 | if [ "x$user_name" = "x" ]; then 13 | continue 14 | fi 15 | 16 | if [ -e "$destination" ]; then 17 | continue 18 | fi 19 | 20 | echo "try to set monitors.xml on $user_name" 21 | cp -v /etc/skel/.config/monitors.xml "$destination" || true 22 | chown $user_name "$destination" 23 | done 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # gpd-ubuntu-packages 2 | This repository shall provide the base for building ubuntu packages from most of the patches currently used to get linux on the gpd-pocket. 3 | 4 | This is still work in progress. For more information visit https://apt.nexus511.net/ . 5 | 6 | # Note 7 | This is work in process and will be basically be build on https://github.com/cawilliamson/ansible-gpdpocket . 8 | 9 | # Required packages 10 | 11 | To properly build the packages you need 12 | 13 | - dpkg-sig 14 | - dpkg-dev 15 | - syslinux-utils 16 | - isolinux 17 | - xorriso 18 | - libudev-dev 19 | - pciutils-dev 20 | - libelf-dev 21 | - build-essential 22 | - libssl-dev 23 | 24 | to be installed. 25 | 26 | 27 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/DEBIAN/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | DEFAULT_PA="/etc/pulse/default.pa" 7 | DAEMON_CONF="/etc/pulse/daemon.conf" 8 | CHTRT5645_CONF="/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf" 9 | 10 | case "$1" in 11 | remove|abort-install|disappear) 12 | echo "remove diversion for ${DEFAULT_PA}" 13 | dpkg-divert --remove --rename "${DEFAULT_PA}" 14 | echo "remove diversion for ${DAEMON_CONF}" 15 | dpkg-divert --remove --rename "${DAEMON_CONF}" 16 | 17 | if dpkg-divert --list | grep -F "${CHTRT5645_CONF}.distrib"; then 18 | echo "remove diversion for ${CHTRT5645_CONF}" 19 | dpkg-divert --remove --rename "${CHTRT5645_CONF}" 20 | fi 21 | ;; 22 | esac 23 | 24 | -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/displays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for gpdpocket-power 3 | 4 | set -e 5 | 6 | # this is a dirty hack but as ubuntu is overwriting some of the files 7 | # in se future and we want our stuff in place for gpdpocket, this is 8 | # for now my best idea. diversions would get quite complex if we do not 9 | # want to break original packages updated later. 10 | mkdir -p /usr/share/alsa/ucm/chtrt5645 11 | 12 | CHTRT5645_CONF=/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf 13 | HIFI_CONF=/usr/share/alsa/ucm/chtrt5645/HiFi.conf 14 | 15 | if [ ! -f ${CHTRT5645_CONF}.gpdpocket-audio ]; then 16 | mv ${CHTRT5645_CONF} ${CHTRT5645_CONF}.gpdpocket-audio || true 17 | fi 18 | 19 | if [ ! -f ${HIFI_CONF}.gpdpocket-audio ]; then 20 | mv ${HIFI_CONF} ${HIFI_CONF}.gpdpocket-audio || true 21 | fi 22 | 23 | mv /tmp/gpdpocket-audio/chtrt5645.conf ${CHTRT5645_CONF} 24 | mv /tmp/gpdpocket-audio/HiFi.conf ${HIFI_CONF} 25 | rm -rf /tmp/gpdpocket-audio 26 | 27 | -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/files/monitors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | 5 | ??? 6 | 0x0000 7 | 0x00000000 8 | 1200 9 | 1920 10 | 60 11 | 0 12 | 0 13 | right 14 | no 15 | no 16 | yes 17 | 18 | 19 | 20 | no 21 | 22 | unknown 23 | unknown 24 | unknown 25 | 1920 26 | 1200 27 | 60 28 | 0 29 | 0 30 | right 31 | no 32 | no 33 | yes 34 | no 35 | no 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /respin/files/iso.hashes.sha256sum: -------------------------------------------------------------------------------- 1 | 1384ac8f2c2a6479ba2a9cbe90a585618834560c477a699a4a7ebe7b5345ddc1 images/ubuntu-16.04.3-desktop-amd64.iso 2 | b718c7fb1066589af52f4ba191775b0fb514c5fb6fa7d91367043e1db06d8a0b images/ubuntu-17.04-desktop-amd64.iso 3 | 204c08075e8537000b4d38009fe3cad1210816269e314879918368312c74bce8 images/xubuntu-16.04.1-desktop-amd64.iso 4 | fcbc94735164755d6affe2ef037935bc6e229380fcbe599b54ea3542fc659b21 images/xubuntu-17.04-desktop-amd64.iso 5 | d50e69a3e6d6b9d4b9cbe56cd3736cef665b708a4a2e5d9024f8eef439a91bba images/linuxmint-18.2-cinnamon-64bit.iso 6 | 9173901fbead7d2ece2454f8f51dbb375e1dfdfc74cfaef450342a3144955fe1 images/linuxmint-18.2-kde-64bit.iso 7 | 1e5110d58794634ba935678825ce0d5279daa03d41c81226a871e8497e3cc35a images/linuxmint-18.2-mate-64bit.iso 8 | 2dcf4ccd76657d42c7e4f14e9e237da9ab0a07028b5ba63a95262a7052f96e9b images/linuxmint-18.2-xfce-64bit.iso 9 | ab1a9c2353180050daa2a481fb1941592bcd43f4b2c70e1fb68b442812497672 images/lubuntu-17.04-desktop-amd64.iso 10 | 47f1659a63f3add15ca7b55bd597ab11ab7d1cb8072c947967ab3f0e9f0a7e6c images/lubuntu-16.04.3-desktop-amd64.iso 11 | 4ab7a943089a800ab4d01adb1fc41c07dc81ccd8ba79ff57a243b73e72976862 images/xubuntu-16.04.3-desktop-amd64.iso 12 | 5224e9f5db84e8f0f09c8abbb3917d6ab0ee528ca34aecf742b67d608a17422e images/ubuntu-gnome-17.04-desktop-amd64.iso 13 | 5849c82e323a28f7774ac8fa21ad76d22cdcd8eb39dfae7b4245d9f9a39c04ff images/ubuntu-gnome-16.04.3-desktop-amd64.iso 14 | -------------------------------------------------------------------------------- /packages/gpdpocket/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | files = os.path.abspath("files") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | version = "0.1.4" 13 | variables = { 14 | "architecture": "all", 15 | "maintainer": "Falk Garbsch ", 16 | "name": "gpdpocket", 17 | } 18 | 19 | print "first we cleanup our stuff" 20 | config = Config() 21 | for rdir in [config.build, config.temp, config.output]: 22 | try: 23 | print ">> remove %s" % (rdir) 24 | shutil.rmtree(rdir) 25 | except: 26 | pass 27 | 28 | print "create directories" 29 | os.makedirs(config.temp) 30 | os.makedirs(config.output) 31 | os.makedirs(config.build) 32 | os.makedirs(config.manifest) 33 | 34 | print "write control" 35 | variables = config.variables 36 | variables["version"] = config.version 37 | control = open(config.files + "/DEBIAN/control", "rb").read() 38 | fp = open(config.manifest + "/control", "wb") 39 | fp.write(control.format(**variables)) 40 | fp.flush() 41 | fp.close() 42 | 43 | print "building binary package" 44 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 45 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 46 | subprocess.call(command) 47 | 48 | print "done" 49 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | KEY_ID:=F00FA013 2 | MAKE_TARGETS:=$(addsuffix _build,$(shell ls */*/make.py)) 3 | REPO_BASE:=repo 4 | REPO_DIR:=$(REPO_BASE)/dists/stable/main/binary 5 | KEYFILE:=common/keyFile 6 | 7 | all: 8 | 9 | packages: $(MAKE_TARGETS) 10 | make update_repo 11 | 12 | 13 | %/make.py_build: 14 | (cd "`dirname "$@"`"; python2 make.py) 15 | 16 | external/kernel/.kernel_patched: external/kernel 17 | (cd external/kernel && bash ./patch_kernel ) 18 | 19 | build_kernel: external/kernel/.kernel_patched 20 | rm -rf external/*.deb packages/prebuilt 21 | (cd external/kernel && bash ./build_kernel ) 22 | mkdir -p packages/prebuilt/output 23 | mv external/*.deb packages/prebuilt/output 24 | 25 | update_repo: repo 26 | cp -v packages/*/output/*.deb $(REPO_DIR) 27 | (cd $(REPO_DIR); dpkg-sig -k $(KEY_ID) *.deb) 28 | cp $(KEYFILE) $(REPO_BASE) 29 | (cd $(REPO_DIR); dpkg-scanpackages -m . >Packages) 30 | cat $(REPO_DIR)/Packages | gzip --fast >$(REPO_DIR)/Packages.gz 31 | cat $(REPO_DIR)/Packages | xz -z >$(REPO_DIR)/Packages.xz 32 | cat $(REPO_DIR)/Packages | lzma -z >$(REPO_DIR)/Packages.lz 33 | rm -f $(REPO_DIR)/InRelease $(REPO_DIR)/Release.gpg 34 | (cd $(REPO_DIR) ; apt-ftparchive release . > Release ; \ 35 | gpg --clearsign --digest-algo SHA256 --default-key $(KEY_ID) -o InRelease Release; \ 36 | gpg --digest-algo SHA256 --default-key $(KEY_ID) -abs -o Release.gpg Release ) 37 | 38 | sync_repo: update_repo 39 | rsync -va --delete repo/. ssh-rsa nexus511.repo:htdocs/repo_testing 40 | 41 | images: update_repo 42 | (cd respin && make) 43 | 44 | repo: 45 | mkdir -p $(REPO_DIR) 46 | 47 | -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | files = os.path.abspath("files") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | templates = os.path.abspath("files/DEBIAN") 13 | version = "0.1.0" 14 | variables = { 15 | "architecture": "all", 16 | "maintainer": "Falk Garbsch ", 17 | "name": "gpdpocket-xfce-config", 18 | } 19 | 20 | print "first we cleanup our stuff" 21 | config = Config() 22 | for rdir in [config.build, config.temp, config.output]: 23 | try: 24 | print ">> remove %s" % (rdir) 25 | shutil.rmtree(rdir) 26 | except: 27 | pass 28 | 29 | print "create directories" 30 | os.makedirs(config.temp) 31 | os.makedirs(config.output) 32 | os.makedirs(config.build) 33 | os.makedirs(config.manifest) 34 | 35 | print "copy files" 36 | os.makedirs(config.build + "/etc/skel/.config") 37 | shutil.copytree(config.files + "/xfce4", config.build + "/etc/skel/.config/xfce4") 38 | 39 | print "write control" 40 | variables = config.variables 41 | variables["version"] = config.version 42 | control = open(config.files + "/DEBIAN/control", "rb").read() 43 | fp = open(config.manifest + "/control", "wb") 44 | fp.write(control.format(**variables)) 45 | fp.flush() 46 | fp.close() 47 | 48 | print "building binary package" 49 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 50 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 51 | subprocess.call(command) 52 | 53 | print "done" 54 | -------------------------------------------------------------------------------- /common/keyFile: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | Version: GnuPG v1 3 | 4 | mQINBFmcKu8BEADR2SlO6qqSv09TmNi/lFyOEMlzRELSC27jFa51y5v5fI9WCiyF 5 | 6EHPmfx9gZWOSlKiGv9HvX4ZVjhBIoR6ChrSwRJR9/E2QHnoBd+gyPOS74kXkTzU 6 | Wqa2Ydk4VYEAD8FIQc+GHHE2Xc31DZXn5Q9Sug68gCqBdrYJjVoASME6vA3vlvEK 7 | SnPtbKUxPpH0ib4BeDIHpotljxJvnSnr7CJ5Gmlm2nFE1MOqw9Zam2Xwb9QEmm/Z 8 | ffhbInxytT8F6+U3aOddzWAEeqVTyIoH/iYazqXGfuq9iP8BCHGB/sFE+jU3zPSm 9 | ercij2FvLWaVKrKvtz/y5j3uhzUxmRiVIWKi+O4DwCpRortCuVay/gCy3sJKS5/I 10 | 4q2bGPHdjGGh1DJ0ZdVkx59P8wF1xUwNeO5xfjELq+RE3MuMukYJcMweHB14eLqV 11 | LL6eMTf4/cEeatwrGVd4PowSFDHiJnSMX8QPEqAmy6TK0ZNKk7ekTaMTaOXXwHT9 12 | TY+H8Fic88YL5tiyeO0hj4z/TegWAhru/HDpVtoYcvGc7jemCOI4L4UYfeJC8OBt 13 | Eo6xWRnXYEkh4Kmz50hnZsrpTmU6g2mnz2dxfqlLCmtodW8dvjzwSyfitRUbvALf 14 | XUUv8l0lOqCxorXrktBTabVpDDTvNYfLr99OJLtB12DUCxgF1xXYt3LZCQARAQAB 15 | tDhGYWxrIEdhcmJzY2ggKC5kZWIgc2lnbmluZykgPGdpdGh1Yi5jb21AY3liZXJz 16 | dGFsa2VyLmV1PokCOAQTAQIAIgUCWZwq7wIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC 17 | HgECF4AACgkQR/9T3fAPoBOw7g//Ypa0OgHqkoQpFsWcHDUYzI94KLeeBpJEkb+z 18 | Uax75pf/XsRSBO+doiiMpLh6mKRGhlqWpBdTeY+IRkQA3k7qEwdNBCZL0OgKjonO 19 | yQr40MZTuCX+UQPp+6dCm3u7GGTsucePWAvPUUjYK1ERSTcMlnb16NXWQP3xeGqL 20 | DRM9NE+JjUs3VRRnoB/GRslQUlrsQi3t9e7wS8wdyBbexMn6hTrBAGvrSUW/cb7d 21 | IMHAFHQwecZSEh4VWXuj2GTIgJYppzrgSxjCj1YwWlVVE8vAo7Z8D2pgmGYE9VVN 22 | XMkmP1QUnYuFwGIgU9BQnlZ6WFRYsumGsEpSNmAAr5qykUmdz4e9AwcfbNZ7LHLO 23 | JQjjAtpFtAR1AmxVeG0nk0MsIYcJo9zuhObr1zNrtdWtFiU5dpvmuxQuLf23ZGD/ 24 | Xoc+udY0Sj1vDOgPoFc30FsVxEBrslMu91dgHClrqGmaolRMEjNCJQmesp7CIfuU 25 | LZA0eQUba+GxWH/kY6qGVij1AOZNZpd9YGMX9HykDyrG/TPwEUGDqHGDbQWcs7u0 26 | 9Vcy3+vHdrsrTc1q8dLkvlcP8Q+4tWW3URX9Knw3Xw67GjdDN15tFiIj3OVYfo1R 27 | 3DTyvQMsE7td8TDt/+y8XA8AvpdBOsETnYRQ+/+cmU/2qUfavEPW+9JoeOwZ2Cb4 28 | WxzNHz0= 29 | =LVnN 30 | -----END PGP PUBLIC KEY BLOCK----- 31 | -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/xfce4/panel/whiskermenu-1.rc: -------------------------------------------------------------------------------- 1 | favorites=exo-web-browser.desktop,exo-mail-reader.desktop,exo-file-manager.desktop,libreoffice-writer.desktop,libreoffice-calc.desktop,pidgin.desktop,org.gnome.Software.desktop,exo-terminal-emulator.desktop,xfhelp4.desktop 2 | recent= 3 | button-title=Applications Menu 4 | button-icon=xubuntu-logo-menu 5 | button-single-row=false 6 | show-button-title=false 7 | show-button-icon=true 8 | launcher-show-name=true 9 | launcher-show-description=false 10 | item-icon-size=1 11 | hover-switch-category=false 12 | category-icon-size=0 13 | load-hierarchy=true 14 | recent-items-max=10 15 | favorites-in-recent=true 16 | display-recent-default=false 17 | position-search-alternate=true 18 | position-commands-alternate=false 19 | position-categories-alternate=false 20 | menu-width=604 21 | menu-height=675 22 | menu-opacity=100 23 | command-settings=xfce4-settings-manager 24 | show-command-settings=true 25 | command-lockscreen=xflock4 26 | show-command-lockscreen=true 27 | command-switchuser=dm-tool switch-to-greeter 28 | show-command-switchuser=false 29 | command-logout=xfce4-session-logout 30 | show-command-logout=true 31 | command-menueditor=menulibre 32 | show-command-menueditor=true 33 | command-profile=mugshot 34 | show-command-profile=true 35 | search-actions=4 36 | 37 | [action0] 38 | name=Man Pages 39 | pattern=# 40 | command=exo-open --launch TerminalEmulator man %s 41 | regex=false 42 | 43 | [action1] 44 | name=Wikipedia 45 | pattern=!w 46 | command=exo-open --launch WebBrowser https://en.wikipedia.org/wiki/%u 47 | regex=false 48 | 49 | [action2] 50 | name=Run in Terminal 51 | pattern=! 52 | command=exo-open --launch TerminalEmulator %s 53 | regex=false 54 | 55 | [action3] 56 | name=Open URI 57 | pattern=^(file|http|https):\\/\\/(.*)$ 58 | command=exo-open \\0 59 | regex=true 60 | 61 | -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /packages/gpdpocket-xorg/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | files = os.path.abspath("files") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | version = "0.1.0" 13 | variables = { 14 | "architecture": "all", 15 | "maintainer": "Falk Garbsch ", 16 | "name": "gpdpocket-xorg", 17 | } 18 | 19 | print "first we cleanup our stuff" 20 | config = Config() 21 | for rdir in [config.build, config.temp, config.output]: 22 | try: 23 | print ">> remove %s" % (rdir) 24 | shutil.rmtree(rdir) 25 | except: 26 | pass 27 | 28 | print "create directories" 29 | os.makedirs(config.temp) 30 | os.makedirs(config.output) 31 | os.makedirs(config.build) 32 | os.makedirs(config.manifest) 33 | 34 | print "setup xorg configuration" 35 | copylist = [ 36 | ( 'files/config/20-intel.conf', '/etc/X11/xorg.conf.d/20-intel.conf', 0644 ), 37 | ( 'files/config/40-monitor.conf', '/etc/X11/xorg.conf.d/40-monitor.conf', 0644 ), 38 | ( 'files/config/99-touchscreen.conf', '/etc/X11/xorg.conf.d/99-touchscreen.conf', 0644 ), 39 | ] 40 | for src, dst, mode in copylist: 41 | print ">> copy (0%o) %s" % (mode, dst) 42 | src = os.path.abspath(src) 43 | dst = config.build + dst 44 | dn = os.path.dirname(dst) 45 | if not os.path.isdir(dn): 46 | os.makedirs(dn) 47 | shutil.copy(src, dst) 48 | os.chmod(dst, mode) 49 | 50 | print "write control" 51 | variables = config.variables 52 | variables["version"] = config.version 53 | control = open(config.files + "/DEBIAN/control", "rb").read() 54 | fp = open(config.manifest + "/control", "wb") 55 | fp.write(control.format(**variables)) 56 | fp.flush() 57 | fp.close() 58 | 59 | print "building binary package" 60 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 61 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 62 | subprocess.call(command) 63 | 64 | print "done" 65 | -------------------------------------------------------------------------------- /packages/linux-headers-generic/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | import sys 6 | 7 | class Config(object): 8 | build = os.path.abspath("build") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | templates = os.path.abspath("files/DEBIAN") 13 | prebuilt = os.path.abspath("../prebuilt/output/") 14 | variables = { 15 | "architecture": "amd64", 16 | "maintainer": "Falk Garbsch ", 17 | "name": "linux-headers-generic", 18 | } 19 | 20 | print "first we cleanup our stuff" 21 | config = Config() 22 | for rdir in [config.build, config.temp, config.output]: 23 | try: 24 | print ">> remove %s" % (rdir) 25 | shutil.rmtree(rdir) 26 | except: 27 | pass 28 | 29 | print "create directories" 30 | os.makedirs(config.temp) 31 | os.makedirs(config.output) 32 | os.makedirs(config.build) 33 | os.makedirs(config.manifest) 34 | 35 | print "aquire packaghes from prebuilt" 36 | headers = filter(lambda x: x.startswith("linux-headers") and x.find("-generic") > 0, os.listdir(config.prebuilt)) 37 | if len(headers) != 1: 38 | print "ERROR: need exactly one headers version. please cleanup and rebuild packages/prebuilt" 39 | sys.exit(1) 40 | headers = headers[0] 41 | 42 | print "found headers package %s:" % (headers) 43 | linux_headers_package, version, ext = headers.split("_") 44 | 45 | print " version: %s" % (version) 46 | print " package: %s" % (linux_headers_package) 47 | 48 | 49 | print "constructing control file" 50 | variables = config.variables 51 | variables["linux-headers-package"] = linux_headers_package 52 | variables["version"] = version 53 | control = open(config.templates + "/control", "rb").read() 54 | 55 | fp = open(config.manifest + "/control", "wb") 56 | fp.write(control.format(**variables)) 57 | fp.flush() 58 | fp.close() 59 | 60 | print "building binary package" 61 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 62 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 63 | subprocess.call(command) 64 | 65 | print "done" 66 | -------------------------------------------------------------------------------- /packages/gpdpocket-touchegg-config/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | files = os.path.abspath("files") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | templates = os.path.abspath("files/DEBIAN") 13 | version = "0.1.0" 14 | variables = { 15 | "architecture": "all", 16 | "maintainer": "Falk Garbsch ", 17 | "name": "gpdpocket-touchegg-config", 18 | } 19 | 20 | print "first we cleanup our stuff" 21 | config = Config() 22 | for rdir in [config.build, config.temp, config.output]: 23 | try: 24 | print ">> remove %s" % (rdir) 25 | shutil.rmtree(rdir) 26 | except: 27 | pass 28 | 29 | print "create directories" 30 | os.makedirs(config.temp) 31 | os.makedirs(config.output) 32 | os.makedirs(config.build) 33 | os.makedirs(config.manifest) 34 | 35 | print "copy files" 36 | copylist = [ 37 | ( 'files/touchegg.conf', '/usr/share/touchegg/touchegg.conf.gpd-pocket', 0644 ), 38 | ( 'files/01_touchegg', '/etc/X11/Xsession.d/01_touchegg', 0755 ), 39 | ( 'files/01_touchegg', '/etc/X11/xinit/xinitrc.d/01_touchegg', 0755 ), 40 | ] 41 | for src, dst, mode in copylist: 42 | print ">> copy (0%o) %s" % (mode, dst) 43 | src = os.path.abspath(src) 44 | dst = config.build + dst 45 | dn = os.path.dirname(dst) 46 | if not os.path.isdir(dn): 47 | os.makedirs(dn) 48 | shutil.copy(src, dst) 49 | os.chmod(dst, mode) 50 | 51 | print "write control" 52 | variables = config.variables 53 | variables["version"] = config.version 54 | control = open(config.files + "/DEBIAN/control", "rb").read() 55 | fp = open(config.manifest + "/control", "wb") 56 | fp.write(control.format(**variables)) 57 | fp.flush() 58 | fp.close() 59 | 60 | print "constructing script files" 61 | for script in [ "/preinst", "/postrm" ]: 62 | print ">> write DEBIAN%s" % (script) 63 | filepath = config.manifest + script 64 | content = open(config.templates + script, "rb").read() 65 | fp = open(filepath, "wb") 66 | fp.write(content.replace("__VERSION_CODE__", variables["version"])) 67 | fp.flush() 68 | fp.close() 69 | os.chmod(filepath, 0555) 70 | 71 | print "building binary package" 72 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 73 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 74 | subprocess.call(command) 75 | 76 | print "done" 77 | -------------------------------------------------------------------------------- /packages/linux-image-generic/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | import sys 6 | 7 | class Config(object): 8 | build = os.path.abspath("build") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | templates = os.path.abspath("files/DEBIAN") 13 | prebuilt = os.path.abspath("../prebuilt/output/") 14 | variables = { 15 | "architecture": "amd64", 16 | "maintainer": "Falk Garbsch ", 17 | "name": "linux-image-generic", 18 | } 19 | 20 | print "first we cleanup our stuff" 21 | config = Config() 22 | for rdir in [config.build, config.temp, config.output]: 23 | try: 24 | print ">> remove %s" % (rdir) 25 | shutil.rmtree(rdir) 26 | except: 27 | pass 28 | 29 | print "create directories" 30 | os.makedirs(config.temp) 31 | os.makedirs(config.output) 32 | os.makedirs(config.build) 33 | os.makedirs(config.manifest) 34 | 35 | print "aquire packaghes from prebuilt" 36 | image = filter(lambda x: x.startswith("linux-image") and x.find("-extra-") < 0, os.listdir(config.prebuilt)) 37 | if len(image) != 1: 38 | print "ERROR: need exactly one kernel version. please cleanup and rebuild packages/prebuilt" 39 | sys.exit(1) 40 | image = image[0] 41 | 42 | extra = filter(lambda x: x.startswith("linux-image") and x.find("-extra-") > 0, os.listdir(config.prebuilt)) 43 | if len(extra) != 1: 44 | print "ERROR: need exactly one kernel extra version. please cleanup and rebuild packages/prebuilt" 45 | sys.exit(1) 46 | extra = extra[0] 47 | 48 | print "found kernel package %s:" % (image) 49 | linux_image_package, version, ext = image.split("_") 50 | linux_extra_package, _, _ = extra.split("_") 51 | 52 | print " version: %s" % (version) 53 | print " package: %s" % (linux_image_package) 54 | print " extra: %s" % (linux_extra_package) 55 | 56 | 57 | print "constructing control file" 58 | variables = config.variables 59 | variables["linux-image-package"] = linux_image_package 60 | variables["linux-extra-package"] = linux_extra_package 61 | variables["version"] = version 62 | control = open(config.templates + "/control", "rb").read() 63 | 64 | fp = open(config.manifest + "/control", "wb") 65 | fp.write(control.format(**variables)) 66 | fp.flush() 67 | fp.close() 68 | 69 | print "building binary package" 70 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 71 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 72 | subprocess.call(command) 73 | 74 | print "done" 75 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/daemon.conf: -------------------------------------------------------------------------------- 1 | # This file is part of PulseAudio. 2 | # 3 | # PulseAudio is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU Lesser General Public License as published by 5 | # the Free Software Foundation; either version 2 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # PulseAudio is distributed in the hope that it will be useful, but 9 | # WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | # General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU Lesser General Public License 14 | # along with PulseAudio; if not, see . 15 | 16 | ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for 17 | ## more information. Default values are commented out. Use either ; or # for 18 | ## commenting. 19 | 20 | ; daemonize = no 21 | ; fail = yes 22 | ; allow-module-loading = yes 23 | ; allow-exit = yes 24 | ; use-pid-file = yes 25 | ; system-instance = no 26 | ; local-server-type = user 27 | ; enable-shm = yes 28 | ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB 29 | ; lock-memory = no 30 | ; cpu-limit = no 31 | 32 | ; high-priority = yes 33 | ; nice-level = -11 34 | 35 | realtime-scheduling = no 36 | ; realtime-priority = 5 37 | 38 | ; exit-idle-time = 20 39 | ; scache-idle-time = 20 40 | 41 | ; dl-search-path = (depends on architecture) 42 | 43 | ; load-default-script-file = yes 44 | ; default-script-file = /etc/pulse/default.pa 45 | 46 | ; log-target = auto 47 | ; log-level = notice 48 | ; log-meta = no 49 | ; log-time = no 50 | ; log-backtrace = 0 51 | 52 | ; resample-method = speex-float-1 53 | ; enable-remixing = yes 54 | ; enable-lfe-remixing = yes 55 | ; lfe-crossover-freq = 120 56 | 57 | flat-volumes = no 58 | 59 | ; rlimit-fsize = -1 60 | ; rlimit-data = -1 61 | ; rlimit-stack = -1 62 | ; rlimit-core = -1 63 | ; rlimit-as = -1 64 | ; rlimit-rss = -1 65 | ; rlimit-nproc = -1 66 | ; rlimit-nofile = 256 67 | ; rlimit-memlock = -1 68 | ; rlimit-locks = -1 69 | ; rlimit-sigpending = -1 70 | ; rlimit-msgqueue = -1 71 | ; rlimit-nice = 31 72 | ; rlimit-rtprio = 9 73 | ; rlimit-rttime = 200000 74 | 75 | ; default-sample-format = s16le 76 | ; default-sample-rate = 44100 77 | ; alternate-sample-rate = 48000 78 | ; default-sample-channels = 2 79 | ; default-channel-map = front-left,front-right 80 | 81 | ; default-fragments = 4 82 | ; default-fragment-size-msec = 25 83 | 84 | ; enable-deferred-volume = yes 85 | deferred-volume-safety-margin-usec = 1 86 | ; deferred-volume-extra-delay-usec = 0 87 | -------------------------------------------------------------------------------- /packages/linux-firmware/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | fwdir = os.path.abspath("%s/lib/firmware" % (build)) 9 | files = os.path.abspath("files") 10 | output = os.path.abspath("output") 11 | manifest = os.path.abspath("build/DEBIAN") 12 | datasrc = os.path.abspath("../../external/linux-firmware") 13 | temp = os.path.abspath("tmp") 14 | templates = os.path.abspath("files/DEBIAN") 15 | version = "1.999.2-gpdpocket" 16 | variables = { 17 | "architecture": "all", 18 | "maintainer": "Falk Garbsch ", 19 | "name": "linux-firmware", 20 | } 21 | 22 | print "first we cleanup our stuff" 23 | config = Config() 24 | for rdir in [config.build, config.temp, config.output]: 25 | try: 26 | print ">> remove %s" % (rdir) 27 | shutil.rmtree(rdir) 28 | except: 29 | pass 30 | 31 | print "create directories" 32 | os.makedirs(config.temp) 33 | os.makedirs(config.output) 34 | os.makedirs(config.build) 35 | os.makedirs(config.manifest) 36 | os.makedirs(config.fwdir) 37 | 38 | print "copying firmware files" 39 | subprocess.call("(cd %s && git archive --format=tar HEAD) | tar -xvC %s" % (config.datasrc, config.fwdir), shell=True) 40 | 41 | print "copy brcmfmac4356 firmware" 42 | copylist = [ 43 | ( 'files/brcmfmac4356-pcie.txt', '/lib/firmware/brcm/brcmfmac4356-pcie.txt', 0644 ), 44 | ] 45 | 46 | for src, dst, mode in copylist: 47 | print ">> copy (0%o) %s" % (mode, dst) 48 | src = os.path.abspath(src) 49 | dst = config.build + dst 50 | dn = os.path.dirname(dst) 51 | if not os.path.isdir(dn): 52 | os.makedirs(dn) 53 | shutil.copy(src, dst) 54 | os.chmod(dst, mode) 55 | 56 | print "constructing control file" 57 | variables = config.variables 58 | variables["version"] = config.version 59 | control = open(config.files + "/DEBIAN/control", "rb").read() 60 | fp = open(config.manifest + "/control", "wb") 61 | fp.write(control.format(**variables)) 62 | fp.flush() 63 | fp.close() 64 | 65 | print "constructing script files" 66 | for script in ["/postinst"]: 67 | print ">> write DEBIAN%s" % (script) 68 | filepath = config.manifest + script 69 | content = open(config.templates + script, "rb").read() 70 | fp = open(filepath, "wb") 71 | fp.write(content.replace("__VERSION_CODE__", variables["version"])) 72 | fp.flush() 73 | fp.close() 74 | os.chmod(filepath, 0555) 75 | 76 | print "building binary package" 77 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 78 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 79 | subprocess.call(command) 80 | 81 | print "done" 82 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | files = os.path.abspath("files") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | templates = os.path.abspath("files/DEBIAN") 13 | version = "0.1.0" 14 | variables = { 15 | "architecture": "all", 16 | "maintainer": "Falk Garbsch ", 17 | "name": "gpdpocket-audio", 18 | } 19 | 20 | print "first we cleanup our stuff" 21 | config = Config() 22 | for rdir in [config.build, config.temp, config.output]: 23 | try: 24 | print ">> remove %s" % (rdir) 25 | shutil.rmtree(rdir) 26 | except: 27 | pass 28 | 29 | print "create directories" 30 | os.makedirs(config.temp) 31 | os.makedirs(config.output) 32 | os.makedirs(config.build) 33 | os.makedirs(config.manifest) 34 | 35 | print "copy files to target" 36 | copylist = [ 37 | # ( 'files/chtrt5645.conf', '/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf', 0644 ), 38 | # ( 'files/HiFi.conf', '/usr/share/alsa/ucm/chtrt5645/HiFi.conf', 0644 ), 39 | ( 'files/chtrt5645.conf', '/tmp/gpdpocket-audio/chtrt5645.conf', 0644 ), 40 | ( 'files/HiFi.conf', '/tmp/gpdpocket-audio/HiFi.conf', 0644 ), 41 | ( 'files/daemon.conf', '/etc/pulse/daemon.conf', 0644 ), 42 | ( 'files/default.pa', '/etc/pulse/default.pa', 0644 ) 43 | ] 44 | for src, dst, mode in copylist: 45 | print ">> copy (0%o) %s" % (mode, dst) 46 | src = os.path.abspath(src) 47 | dst = config.build + dst 48 | dn = os.path.dirname(dst) 49 | if not os.path.isdir(dn): 50 | os.makedirs(dn) 51 | shutil.copy(src, dst) 52 | os.chmod(dst, mode) 53 | 54 | print "write control" 55 | variables = config.variables 56 | variables["version"] = config.version 57 | control = open(config.files + "/DEBIAN/control", "rb").read() 58 | fp = open(config.manifest + "/control", "wb") 59 | fp.write(control.format(**variables)) 60 | fp.flush() 61 | fp.close() 62 | 63 | print "constructing script files" 64 | for script in ["/postinst", "/postrm", "/preinst", "/prerm"]: 65 | print ">> write DEBIAN%s" % (script) 66 | filepath = config.manifest + script 67 | content = open(config.templates + script, "rb").read() 68 | fp = open(filepath, "wb") 69 | fp.write(content.replace("__VERSION_CODE__", variables["version"])) 70 | fp.flush() 71 | fp.close() 72 | os.chmod(filepath, 0555) 73 | 74 | print "building binary package" 75 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 76 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 77 | subprocess.call(command) 78 | 79 | print "done" 80 | -------------------------------------------------------------------------------- /packages/gpdpocket-gnome-config/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | files = os.path.abspath("files") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | templates = os.path.abspath("files/DEBIAN") 13 | version = "0.1.2" 14 | variables = { 15 | "architecture": "all", 16 | "maintainer": "Falk Garbsch ", 17 | "name": "gpdpocket-gnome-config", 18 | } 19 | 20 | print "first we cleanup our stuff" 21 | config = Config() 22 | for rdir in [config.build, config.temp, config.output]: 23 | try: 24 | print ">> remove %s" % (rdir) 25 | shutil.rmtree(rdir) 26 | except: 27 | pass 28 | 29 | print "create directories" 30 | os.makedirs(config.temp) 31 | os.makedirs(config.output) 32 | os.makedirs(config.build) 33 | os.makedirs(config.manifest) 34 | 35 | print "copy files" 36 | copylist = [ 37 | ('files/gnome/00touchscreen', '/etc/dconf/db/local.d/00touchscreen', 0644), 38 | ('files/gnome/01scale', '/etc/dconf/db/local.d/01scale', 0644 ), 39 | ('files/gnome/02subpixel', '/etc/dconf/db/local.d/02subpixel', 0644 ), 40 | ('files/gnome/profile', '/etc/dconf/profile/gdm', 0644 ), 41 | ('files/gnome/profile', '/etc/dconf/profile/user', 0644 ), 42 | ('files/monitors.xml', '/etc/skel/.config/monitors.xml', 0644), 43 | ('files/monitors.xml', '/var/lib/lightdm/.config/monitors.xml', 0644), 44 | ('files/monitors.xml', '/var/lib/gdm3/.config/monitors.xml', 0644), 45 | ] 46 | for src, dst, mode in copylist: 47 | print ">> copy (0%o) %s" % (mode, dst) 48 | src = os.path.abspath(src) 49 | dst = config.build + dst 50 | dn = os.path.dirname(dst) 51 | if not os.path.isdir(dn): 52 | os.makedirs(dn) 53 | shutil.copy(src, dst) 54 | os.chmod(dst, mode) 55 | 56 | print "write control" 57 | variables = config.variables 58 | variables["version"] = config.version 59 | control = open(config.files + "/DEBIAN/control", "rb").read() 60 | fp = open(config.manifest + "/control", "wb") 61 | fp.write(control.format(**variables)) 62 | fp.flush() 63 | fp.close() 64 | 65 | print "constructing script files" 66 | for script in ["/postinst"]: 67 | print ">> write DEBIAN%s" % (script) 68 | filepath = config.manifest + script 69 | content = open(config.templates + script, "rb").read() 70 | fp = open(filepath, "wb") 71 | fp.write(content.replace("__VERSION_CODE__", variables["version"])) 72 | fp.flush() 73 | fp.close() 74 | os.chmod(filepath, 0555) 75 | 76 | print "building binary package" 77 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 78 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 79 | subprocess.call(command) 80 | 81 | print "done" 82 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/gpd-fan.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2.7 2 | # -*- coding: utf-8 -*- 3 | 4 | # Full credit goes to efluffy at https://github.com/efluffy/gpdfand 5 | # This script is simply re-written in python to avoid perl dependencies 6 | 7 | from glob import glob 8 | from time import sleep 9 | import argparse 10 | import io 11 | import os.path 12 | import signal 13 | import sys 14 | 15 | # Parse command line arguments 16 | parser = argparse.ArgumentParser() 17 | parser.add_argument('--time', type=int, help='Time between temperature checks', default=10) 18 | parser.add_argument('--turbo', type=int, help='Maximum temperature before turbo boost is disabled', default=60) 19 | parser.add_argument('--min', type=int, help='Temperature required for minimum fan speed', default=45) 20 | parser.add_argument('--med', type=int, help='Temperature required for medium fan speed', default=55) 21 | parser.add_argument('--max', type=int, help='Temperature required for maximum fan speed', default=65) 22 | args = parser.parse_args() 23 | 24 | # Exit function 25 | def exit(*args): 26 | set_fans(0,0) 27 | set_no_turbo(0) 28 | sys.exit(0) 29 | 30 | # Get temperature function 31 | def get_temp(): 32 | temps = [] 33 | for hwmon in glob('/sys/devices/platform/coretemp.0/hwmon/hwmon*'): 34 | for temp_input_dev in glob(hwmon + '/temp*_input'): 35 | with io.open(temp_input_dev, 'r') as core_temp: 36 | temp = int(core_temp.read()) / 1000 37 | temps.append(temp) 38 | if(len(temps) > 0): 39 | return max(temps) 40 | else: 41 | return 0 42 | 43 | # Set fans function 44 | def set_fans(a,b): 45 | with io.open('/sys/class/gpio/gpio397/value', 'w') as gpio: 46 | gpio.write(unicode(a)) 47 | with io.open('/sys/class/gpio/gpio398/value', 'w') as gpio: 48 | gpio.write(unicode(b)) 49 | 50 | # Set no turbo boost function 51 | def set_no_turbo(state): 52 | with io.open('/sys/devices/system/cpu/intel_pstate/no_turbo', 'w') as no_turbo: 53 | no_turbo.write(unicode(state)) 54 | 55 | # Initialization function 56 | def init(): 57 | for id in [397,398]: 58 | if not os.path.isfile('/sys/class/gpio/gpio' + str(id) + '/value'): 59 | with io.open('/sys/class/gpio/export', 'w') as gpio_export: 60 | gpio_export.write(unicode(id)) 61 | 62 | # Perform initialization 63 | init() 64 | 65 | # Setup exit handler 66 | signal.signal(signal.SIGTERM, exit) 67 | 68 | # Rinse, repeat. 69 | while True: 70 | temp = get_temp() 71 | 72 | # Set fan speed 73 | if temp >= args.max or temp == 0: 74 | set_fans(1,1) 75 | elif temp >= args.med: 76 | set_fans(0,1) 77 | elif temp >= args.min: 78 | set_fans(1,0) 79 | else: 80 | set_fans(0,0) 81 | 82 | # Set turbo boost state 83 | if temp >= args.turbo or temp == 0: 84 | set_no_turbo(1) 85 | else: 86 | set_no_turbo(0) 87 | 88 | sleep(args.time) 89 | -------------------------------------------------------------------------------- /respin/Makefile: -------------------------------------------------------------------------------- 1 | UBUNTU_16_04_3:=http://releases.ubuntu.com/16.04/ubuntu-16.04.3-desktop-amd64.iso|gpdpocket-gnome-config 2 | UBUNTU_17_04:=http://releases.ubuntu.com/17.04/ubuntu-17.04-desktop-amd64.iso|gpdpocket-gnome-config 3 | XUBUNTU_16_04_3:=http://cdimage.ubuntu.com/xubuntu/releases/16.04/release/xubuntu-16.04.3-desktop-amd64.iso|gpdpocket-xfce-config 4 | XUBUNTU_17_04:=http://cdimage.ubuntu.com/xubuntu/releases/17.04/release/xubuntu-17.04-desktop-amd64.iso|gpdpocket-xfce-config 5 | MINT_18_2_XFCE:=http://mirror.netcologne.de/linuxmint/iso/stable/18.2/linuxmint-18.2-xfce-64bit.iso| 6 | MINT_18_2_CINNAMON:=http://mirror.netcologne.de/linuxmint/iso/stable/18.2/linuxmint-18.2-cinnamon-64bit.iso| 7 | LUBUNTU_17_04:=http://cdimage.ubuntu.com/lubuntu/releases/17.04/release/lubuntu-17.04-desktop-amd64.iso| 8 | LUBUNTU_16_04_3:=http://cdimage.ubuntu.com/lubuntu/releases/16.04.3/release/lubuntu-16.04.3-desktop-amd64.iso| 9 | UBUNTU_GNOME_16.04.3:=http://cdimage.ubuntu.com/ubuntu-gnome/releases/16.04/release/ubuntu-gnome-16.04.3-desktop-amd64.iso|gpdpocket-gnome-config 10 | UBUNTU_GNOME_17.04:=http://cdimage.ubuntu.com/ubuntu-gnome/releases/17.04/release/ubuntu-gnome-17.04-desktop-amd64.iso|gpdpocket-gnome-config 11 | 12 | remove_target_part = $(patsubst %.sync,%,$(patsubst %.target,%,$1)) 13 | get_target_dist = $(word 1,$(subst -, ,$1)) 14 | 15 | output_file_name = output/$(call remove_target_part,$1)_gpdpocket_$(TIMESTAMP).iso 16 | target_url = $(filter %/$(call remove_target_part,$1).iso,$(IMAGES)) 17 | sync_directory = htdocs/iso/$(call get_target_dist,$1)/$(TIMESTAMP)/ 18 | target_name = $(patsubst %.iso,%.target,$(notdir $1)) 19 | get_image_part = $(word 1,$(subst |, ,$1)) 20 | get_additions = $(subst ;, ,$(word 2,$(subst |, ,$(filter $(call remove_target_part,$1).iso|%,$(ADDITIONS))))) 21 | 22 | define lock_call 23 | touch $(1) ; flock $(1) -c "$(2)" 24 | endef 25 | 26 | ELEMENTS:=$(UBUNTU_16_04_3) $(UBUNTU_17_04) \ 27 | $(XUBUNTU_16_04_3) $(XUBUNTU_17_04) \ 28 | $(MINT_18_2_XFCE) $(MINT_18_2_CINNAMON) \ 29 | $(LUBUNTU_17_04) $(LUBUNTU_16_04_3) \ 30 | $(UBUNTU_GNOME_16.04.3) $(UBUNTU_GNOME_17.04) 31 | 32 | IMAGES:=$(foreach element,$(ELEMENTS),$(call get_image_part,$(element))) 33 | ADDITIONS:=$(foreach element,$(ELEMENTS),$(notdir $(element))) 34 | TARGETS:=$(foreach image,$(IMAGES),$(call target_name,$(image))) 35 | SYNC_TARGETS:=$(patsubst %.target,%.sync,$(TARGETS)) 36 | TIMESTAMP:=$(shell TZ=UTC date --iso) 37 | 38 | list_targets: 39 | $(info supported targets:) 40 | $(foreach target,$(TARGETS),$(info : $(target))) 41 | $(info suported syncs:) 42 | $(foreach target,$(SYNC_TARGETS),$(info : $(target))) 43 | 44 | all: make_images 45 | 46 | sync_images: $(SYNC_TARGETS) 47 | 48 | make_images: $(TARGETS) 49 | 50 | %.target: 51 | $(call lock_call,build.lock,python2 respin.py $(call target_url,$@) $(call output_file_name,$@) $(call get_additions,$@)) 52 | 53 | output/%_gpdpocket_$(TIMESTAMP).iso: 54 | make -j1 TIMESTAMP=$(TIMESTAMP) "$*.target" 55 | 56 | %.sync: $(call output_file_name,%) 57 | ssh nexus511.repo "mkdir -p $(call sync_directory,$@)" 58 | $(call lock_call,upload.lock,scp $(call output_file_name,$@) nexus511.repo:$(call sync_directory,$@)) 59 | rm $(call output_file_name,$@) 60 | -------------------------------------------------------------------------------- /packages/gpdpocket-touchegg-config/files/touchegg.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 6 | 7 | 8 | 9 | 10 | 11 | BUTTON=3 12 | 13 | 14 | 15 | BUTTON=2 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | SPEED=7:INVERTED=true 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | Super+W 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Alt+F1 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | Control+KP_Add 68 | 69 | 70 | 71 | Control+KP_Subtract 72 | 73 | 74 | 75 | Control+L 76 | 77 | 78 | 79 | Control+R 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | Alt+Left 89 | 90 | 91 | 92 | Alt+Right 93 | 94 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/make.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import subprocess 3 | import os 4 | import tarfile 5 | 6 | class Config(object): 7 | build = os.path.abspath("build") 8 | files = os.path.abspath("files") 9 | output = os.path.abspath("output") 10 | manifest = os.path.abspath("build/DEBIAN") 11 | temp = os.path.abspath("tmp") 12 | templates = os.path.abspath("files/DEBIAN") 13 | version = "0.1.0" 14 | variables = { 15 | "architecture": "all", 16 | "maintainer": "Falk Garbsch ", 17 | "name": "gpdpocket-power", 18 | } 19 | 20 | print "first we cleanup our stuff" 21 | config = Config() 22 | for rdir in [config.build, config.temp, config.output]: 23 | try: 24 | print ">> remove %s" % (rdir) 25 | shutil.rmtree(rdir) 26 | except: 27 | pass 28 | 29 | print "create directories" 30 | os.makedirs(config.temp) 31 | os.makedirs(config.output) 32 | os.makedirs(config.build) 33 | os.makedirs(config.manifest) 34 | 35 | print "copy files" 36 | copylist = [ 37 | ( 'files/gpd-fan.conf', '/etc/gpd/fan.conf', 0644 ), 38 | ( 'files/gpd-fan.py', '/usr/local/sbin/gpd-fan', 0755 ), 39 | ( 'files/gpd-fan.service', '/etc/systemd/system/gpd-fan.service', 0644 ), 40 | ( 'files/gpd-fan.sh', '/lib/systemd/system-sleep/gpd-fan', 0755 ), 41 | ( 'files/tlp', '/etc/default/tlp', 0644 ) 42 | ] 43 | for src, dst, mode in copylist: 44 | print ">> copy (0%o) %s" % (mode, dst) 45 | src = os.path.abspath(src) 46 | dst = config.build + dst 47 | dn = os.path.dirname(dst) 48 | if not os.path.isdir(dn): 49 | os.makedirs(dn) 50 | shutil.copy(src, dst) 51 | os.chmod(dst, mode) 52 | 53 | print "enable systemd service" 54 | src = "/etc/systemd/system/gpd-fan.service" 55 | dst = config.build + "/etc/systemd/system/basic.target.wants/gpd-fan.service" 56 | dn = os.path.dirname(dst) 57 | if not os.path.exists(dst): 58 | os.makedirs(dn) 59 | os.symlink(src, dst) 60 | 61 | print "create blacklist item" 62 | blacklist = config.build + "/etc/pm/config.d/brcmfmac" 63 | dn = os.path.dirname(blacklist) 64 | if not os.path.isdir(dn): 65 | os.makedirs(dn) 66 | fp = open(blacklist, "wb") 67 | fp.write("SUSPEND_MODULES=\"brcmfmac\"\n") 68 | fp.flush() 69 | fp.close() 70 | 71 | print "write control" 72 | variables = config.variables 73 | variables["version"] = config.version 74 | control = open(config.files + "/DEBIAN/control", "rb").read() 75 | fp = open(config.manifest + "/control", "wb") 76 | fp.write(control.format(**variables)) 77 | fp.flush() 78 | fp.close() 79 | 80 | print "constructing script files" 81 | for script in ["/postinst", "/postrm", "/preinst", "/prerm"]: 82 | print ">> write DEBIAN%s" % (script) 83 | filepath = config.manifest + script 84 | content = open(config.templates + script, "rb").read() 85 | fp = open(filepath, "wb") 86 | fp.write(content.replace("__VERSION_CODE__", variables["version"])) 87 | fp.flush() 88 | fp.close() 89 | os.chmod(filepath, 0555) 90 | 91 | print "building binary package" 92 | command = ["fakeroot", "dpkg-deb", "-b", config.build] 93 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"])) 94 | subprocess.call(command) 95 | 96 | print "done" 97 | -------------------------------------------------------------------------------- /packages/linux-firmware/files/brcmfmac4356-pcie.txt: -------------------------------------------------------------------------------- 1 | # Sample variables file for BCM94356Z NGFF 22x30mm iPA, iLNA board with PCIe for production package 2 | NVRAMRev=$Rev: 373428 $ 3 | #4356 chip = 4354 A2 chip 4 | sromrev=11 5 | boardrev=0x1101 6 | boardtype=0x073e 7 | boardflags=0x02400201 8 | #0x2000 enable 2G spur WAR 9 | boardflags2=0x00802000 10 | boardflags3=0x0000000a 11 | #boardflags3 0x00000100 /* to read swctrlmap from nvram*/ 12 | #define BFL3_5G_SPUR_WAR 0x00080000 /* enable spur WAR in 5G band */ 13 | #define BFL3_AvVim 0x40000000 /* load AvVim from nvram */ 14 | macaddr=00:90:4c:1a:10:01 15 | ccode=US 16 | regrev=1 17 | antswitch=0 18 | pdgain5g=4 19 | pdgain2g=4 20 | tworangetssi2g=0 21 | tworangetssi5g=0 22 | paprdis=0 23 | femctrl=10 24 | vendid=0x14e4 25 | devid=0x43a3 26 | manfid=0x2d0 27 | #prodid=0x052e 28 | nocrc=1 29 | otpimagesize=502 30 | xtalfreq=37400 31 | rxgains2gelnagaina0=0 32 | rxgains2gtrisoa0=7 33 | rxgains2gtrelnabypa0=0 34 | rxgains5gelnagaina0=0 35 | rxgains5gtrisoa0=11 36 | rxgains5gtrelnabypa0=0 37 | rxgains5gmelnagaina0=0 38 | rxgains5gmtrisoa0=13 39 | rxgains5gmtrelnabypa0=0 40 | rxgains5ghelnagaina0=0 41 | rxgains5ghtrisoa0=12 42 | rxgains5ghtrelnabypa0=0 43 | rxgains2gelnagaina1=0 44 | rxgains2gtrisoa1=7 45 | rxgains2gtrelnabypa1=0 46 | rxgains5gelnagaina1=0 47 | rxgains5gtrisoa1=10 48 | rxgains5gtrelnabypa1=0 49 | rxgains5gmelnagaina1=0 50 | rxgains5gmtrisoa1=11 51 | rxgains5gmtrelnabypa1=0 52 | rxgains5ghelnagaina1=0 53 | rxgains5ghtrisoa1=11 54 | rxgains5ghtrelnabypa1=0 55 | rxchain=3 56 | txchain=3 57 | aa2g=3 58 | aa5g=3 59 | agbg0=2 60 | agbg1=2 61 | aga0=2 62 | aga1=2 63 | tssipos2g=1 64 | extpagain2g=2 65 | tssipos5g=1 66 | extpagain5g=2 67 | tempthresh=255 68 | tempoffset=255 69 | rawtempsense=0x1ff 70 | pa2ga0=-147,6192,-705 71 | pa2ga1=-161,6041,-701 72 | pa5ga0=-194,6069,-739,-188,6137,-743,-185,5931,-725,-171,5898,-715 73 | pa5ga1=-190,6248,-757,-190,6275,-759,-190,6225,-757,-184,6131,-746 74 | subband5gver=0x4 75 | pdoffsetcckma0=0x4 76 | pdoffsetcckma1=0x4 77 | pdoffset40ma0=0x0000 78 | pdoffset80ma0=0x0000 79 | pdoffset40ma1=0x0000 80 | pdoffset80ma1=0x0000 81 | maxp2ga0=80 82 | maxp5ga0=78,78,78,78 83 | maxp2ga1=80 84 | maxp5ga1=78,78,78,78 85 | cckbw202gpo=0x0000 86 | cckbw20ul2gpo=0x0000 87 | mcsbw202gpo=0x99644422 88 | mcsbw402gpo=0x99644422 89 | dot11agofdmhrbw202gpo=0x6666 90 | ofdmlrbw202gpo=0x0022 91 | mcsbw205glpo=0x88766663 92 | mcsbw405glpo=0x88666663 93 | mcsbw805glpo=0xbb666665 94 | mcsbw205gmpo=0xd8666663 95 | mcsbw405gmpo=0x88666663 96 | mcsbw805gmpo=0xcc666665 97 | mcsbw205ghpo=0xdc666663 98 | mcsbw405ghpo=0xaa666663 99 | mcsbw805ghpo=0xdd666665 100 | mcslr5glpo=0x0000 101 | mcslr5gmpo=0x0000 102 | mcslr5ghpo=0x0000 103 | sb20in40hrpo=0x0 104 | sb20in80and160hr5glpo=0x0 105 | sb40and80hr5glpo=0x0 106 | sb20in80and160hr5gmpo=0x0 107 | sb40and80hr5gmpo=0x0 108 | sb20in80and160hr5ghpo=0x0 109 | sb40and80hr5ghpo=0x0 110 | sb20in40lrpo=0x0 111 | sb20in80and160lr5glpo=0x0 112 | sb40and80lr5glpo=0x0 113 | sb20in80and160lr5gmpo=0x0 114 | sb40and80lr5gmpo=0x0 115 | sb20in80and160lr5ghpo=0x0 116 | sb40and80lr5ghpo=0x0 117 | dot11agduphrpo=0x0 118 | dot11agduplrpo=0x0 119 | phycal_tempdelta=255 120 | temps_period=15 121 | temps_hysteresis=15 122 | rssicorrnorm_c0=4,4 123 | rssicorrnorm_c1=4,4 124 | rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8 125 | rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8 -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/default.pa: -------------------------------------------------------------------------------- 1 | #!/usr/bin/pulseaudio -nF 2 | # 3 | # This file is part of PulseAudio. 4 | # 5 | # PulseAudio is free software; you can redistribute it and/or modify it 6 | # under the terms of the GNU Lesser General Public License as published by 7 | # the Free Software Foundation; either version 2 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # PulseAudio is distributed in the hope that it will be useful, but 11 | # WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public License 16 | # along with PulseAudio; if not, see . 17 | 18 | # This startup script is used only if PulseAudio is started per-user 19 | # (i.e. not in system mode) 20 | 21 | .nofail 22 | 23 | ### Load something into the sample cache 24 | #load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/bell.oga 25 | #load-sample-lazy pulse-hotplug /usr/share/sounds/freedesktop/stereo/device-added.oga 26 | #load-sample-lazy pulse-coldplug /usr/share/sounds/freedesktop/stereo/device-added.oga 27 | #load-sample-lazy pulse-access /usr/share/sounds/freedesktop/stereo/message.oga 28 | 29 | .fail 30 | 31 | ### Automatically restore the volume of streams and devices 32 | load-module module-device-restore 33 | load-module module-stream-restore 34 | load-module module-card-restore 35 | 36 | ### Automatically augment property information from .desktop files 37 | ### stored in /usr/share/application 38 | load-module module-augment-properties 39 | 40 | ### Should be after module-*-restore but before module-*-detect 41 | load-module module-switch-on-port-available 42 | 43 | ### Load audio drivers statically 44 | ### (it's probably better to not load these drivers manually, but instead 45 | ### use module-udev-detect -- see below -- for doing this automatically) 46 | #load-module module-alsa-sink 47 | #load-module module-alsa-source device=hw:1,0 48 | #load-module module-oss device="/dev/dsp" sink_name=output source_name=input 49 | #load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input 50 | #load-module module-null-sink 51 | #load-module module-pipe-sink 52 | 53 | ### Automatically load driver modules depending on the hardware available 54 | .ifexists module-udev-detect.so 55 | load-module module-udev-detect 56 | .else 57 | ### Use the static hardware detection module (for systems that lack udev support) 58 | load-module module-detect 59 | .endif 60 | 61 | ### Automatically connect sink and source if JACK server is present 62 | .ifexists module-jackdbus-detect.so 63 | .nofail 64 | load-module module-jackdbus-detect channels=2 65 | .fail 66 | .endif 67 | 68 | ### Automatically load driver modules for Bluetooth hardware 69 | .ifexists module-bluetooth-policy.so 70 | load-module module-bluetooth-policy 71 | .endif 72 | 73 | .ifexists module-bluetooth-discover.so 74 | load-module module-bluetooth-discover 75 | .endif 76 | 77 | ### Load several protocols 78 | .ifexists module-esound-protocol-unix.so 79 | load-module module-esound-protocol-unix 80 | .endif 81 | load-module module-native-protocol-unix 82 | 83 | ### Network access (may be configured with paprefs, so leave this commented 84 | ### here if you plan to use paprefs) 85 | #load-module module-esound-protocol-tcp 86 | #load-module module-native-protocol-tcp 87 | #load-module module-zeroconf-publish 88 | 89 | ### Load the RTP receiver module (also configured via paprefs, see above) 90 | #load-module module-rtp-recv 91 | 92 | ### Load the RTP sender module (also configured via paprefs, see above) 93 | #load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'" 94 | #load-module module-rtp-send source=rtp.monitor 95 | 96 | ### Load additional modules from GConf settings. This can be configured with the paprefs tool. 97 | ### Please keep in mind that the modules configured by paprefs might conflict with manually 98 | ### loaded modules. 99 | .ifexists module-gconf.so 100 | .nofail 101 | load-module module-gconf 102 | .fail 103 | .endif 104 | 105 | ### Automatically restore the default sink/source when changed by the user 106 | ### during runtime 107 | ### NOTE: This should be loaded as early as possible so that subsequent modules 108 | ### that look up the default sink/source get the right value 109 | load-module module-default-device-restore 110 | 111 | ### Automatically move streams to the default sink if the sink they are 112 | ### connected to dies, similar for sources 113 | load-module module-rescue-streams 114 | 115 | ### Make sure we always have a sink around, even if it is a null sink. 116 | load-module module-always-sink 117 | 118 | ### Honour intended role device property 119 | load-module module-intended-roles 120 | 121 | ### Automatically suspend sinks/sources that become idle for too long 122 | load-module module-suspend-on-idle 123 | 124 | ### If autoexit on idle is enabled we want to make sure we only quit 125 | ### when no local session needs us anymore. 126 | .ifexists module-console-kit.so 127 | load-module module-console-kit 128 | .endif 129 | .ifexists module-systemd-login.so 130 | load-module module-systemd-login 131 | .endif 132 | 133 | ### Enable positioned event sounds 134 | load-module module-position-event-sounds 135 | 136 | ### Cork music/video streams when a phone stream is active 137 | #load-module module-role-cork 138 | 139 | ### Modules to allow autoloading of filters (such as echo cancellation) 140 | ### on demand. module-filter-heuristics tries to determine what filters 141 | ### make sense, and module-filter-apply does the heavy-lifting of 142 | ### loading modules and rerouting streams. 143 | load-module module-filter-heuristics 144 | load-module module-filter-apply 145 | 146 | # X11 modules should not be started from default.pa so that one daemon 147 | # can be shared by multiple sessions. 148 | 149 | ### Load X11 bell module 150 | #load-module module-x11-bell sample=x11-bell 151 | 152 | ### Register ourselves in the X11 session manager 153 | #load-module module-x11-xsmp 154 | 155 | ### Publish connection data in the X11 root window 156 | #.ifexists module-x11-publish.so 157 | #.nofail 158 | #load-module module-x11-publish 159 | #.fail 160 | #.endif 161 | 162 | ### Make some devices default 163 | set-default-sink alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink 164 | set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink [Out] Speaker 165 | set-card-profile alsa_card.platform-cht-bsw-rt5645 HiFi 166 | -------------------------------------------------------------------------------- /respin/respin.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import shutil 4 | import subprocess 5 | import traceback 6 | from cStringIO import StringIO 7 | 8 | class Config(object): 9 | def __init__(self, args): 10 | if len(args) < 3: 11 | print "ERROR: needs at least input and output name" 12 | sys.exit(1) 13 | self.url = args[1] 14 | self.output = os.path.abspath(args[2]) 15 | self.additional = [] 16 | if len(args) > 3: 17 | self.additional += args[3:] 18 | 19 | self.image_dir = os.path.abspath("./images") 20 | self.tmp_dir = os.path.abspath("./tmp") 21 | self.output_dir = os.path.dirname(self.output) 22 | self.name = os.path.basename(self.url) 23 | 24 | self.image = self.image_dir + "/" + self.name 25 | self.tmp = self.tmp_dir + "/" + self.name 26 | self.mount_iso = self.tmp + "/mnt/iso" 27 | self.clone_iso = self.tmp + "/data/iso" 28 | self.mount_squashfs = self.tmp + "/mnt/squashfs" 29 | self.clone_squashfs = self.tmp + "/data/squashfs" 30 | self.squashfs_path = self.clone_iso + "/casper/filesystem.squashfs" 31 | self.squashfs_sig = self.squashfs_path + ".gpg" 32 | self.squashfs_manifest = self.squashfs_path + ".manifest" 33 | 34 | self.pseudo_fs = ["/dev", "/dev/pts", "/proc", "/sys"] 35 | self.repo_base = os.path.abspath("../repo") 36 | self.repo = self.repo_base + "/dists/stable/main/binary" 37 | self.keyfile = self.repo_base + "/keyFile" 38 | self.root = self.clone_squashfs 39 | 40 | self.packages = ["gpdpocket"] 41 | self.packages += self.additional 42 | self.hybridboot = "/usr/lib/ISOLINUX/isohdpfx.bin" 43 | self.volname = "gpdpocket" 44 | self.initramfs_modules = [ "btusb", "loop", "overlay", "pwm-lpss", "pwm-lpss-platform", "squashfs" ] 45 | self.respin_repos = [ "deb file:///tmp/repo /" ] 46 | self.system_repos = [ "deb https://apt.nexus511.net/repo/dists/stable/main/binary /"] 47 | 48 | self.vmlinuz = self.clone_iso + "/casper/vmlinuz" 49 | self.initrd = self.clone_iso + "/casper/initrd.lz" 50 | 51 | def cleanup(): 52 | print "cleanup %s" % (config.tmp) 53 | try: 54 | shutil.rmtree(config.tmp) 55 | except: 56 | pass 57 | 58 | def clone_image(src, mnt, dst): 59 | print ">> mount %s -> %s" % (src, mnt) 60 | command = ["mount", "-o", "loop", src, mnt] 61 | assert(subprocess.call(command) == 0) 62 | 63 | print ">> rsync %s -> %s" % (mnt, dst) 64 | command = ["rsync", "-a", mnt + "/.", dst] 65 | assert(subprocess.call(command) == 0) 66 | 67 | print ">> umount %s" % (mnt) 68 | command = ["umount", mnt] 69 | assert(subprocess.call(command) == 0) 70 | 71 | os.environ["DEBIAN_FRONTEND"] = "noninteractive" 72 | config = Config(sys.argv) 73 | 74 | cleanup() 75 | 76 | if os.path.exists(config.output): 77 | print "remove %s" % (config.output) 78 | os.remove(config.output) 79 | 80 | print "make directories" 81 | for dn in [config.mount_iso, config.mount_squashfs, config.clone_iso, config.clone_squashfs, config.image_dir, config.output_dir]: 82 | print ">> mkdir %s" % (dn) 83 | if not os.path.isdir(dn): 84 | os.makedirs(dn) 85 | 86 | if not os.path.exists(config.image): 87 | print "download image from %s" % (config.url) 88 | command = [ "wget", "-O", config.image, config.url ] 89 | assert(subprocess.call(command) == 0) 90 | 91 | print "perform sha256 check on %s" % (config.image) 92 | command = "grep -F \"images/%s\" files/iso.hashes.sha256sum | sha256sum -c" % (config.name) 93 | assert(subprocess.call(command, shell = True) == 0) 94 | 95 | print "extract files from iso" 96 | clone_image(config.image, config.mount_iso, config.clone_iso) 97 | 98 | print "check for vmlinuz image" 99 | if not os.path.exists(config.vmlinuz): 100 | config.vmlinuz += ".efi" 101 | if not os.path.exists(config.vmlinuz): 102 | print "ERROR: no kernel image found" 103 | sys.exit(1) 104 | 105 | print "extract files from squashfs" 106 | clone_image(config.squashfs_path, config.mount_squashfs, config.clone_squashfs) 107 | 108 | print "remove original squashfs file and metadata" 109 | for fn in [config.squashfs_path, config.squashfs_manifest, config.squashfs_sig]: 110 | print ">> rm %s" % (fn) 111 | if os.path.exists(fn): 112 | os.remove(fn) 113 | 114 | print "mount pseudo filesystems" 115 | for fs in config.pseudo_fs: 116 | print ">> mount %s" % (fs) 117 | command = ["mount", "--bind", fs, config.root + fs] 118 | assert(subprocess.call(command) == 0) 119 | 120 | try: 121 | print "backup some files" 122 | shutil.move(config.root + "/etc/resolv.conf", config.root + "/etc/resolv.conf.distrib") 123 | 124 | print "find target release codename" 125 | command = [ "chroot", config.root, "lsb_release", "-sc" ] 126 | data = subprocess.check_output(command) 127 | codename = data.split("\n")[0] 128 | if not config.name.startswith("linuxmint"): 129 | config.respin_repos.append("deb http://de.archive.ubuntu.com/ubuntu/ %s universe\n" % codename) 130 | print ">> codename is %s" % (codename) 131 | 132 | print "update grub configuration" 133 | fp = open(config.root + "/etc/default/grub", "rb") 134 | out = StringIO() 135 | for line in fp.readlines(): 136 | if not line.startswith("GRUB_CMDLINE_LINUX_DEFAULT"): 137 | out.write(line) 138 | continue 139 | out.write("GRUB_CMDLINE_LINUX_DEFAULT=\"i915.fastboot=1 fbcon=rotate:1\"\n") 140 | fp = open(config.root + "/etc/default/grub", "wb") 141 | fp.write(out.getvalue()) 142 | fp.flush() 143 | fp.close() 144 | 145 | print "update target configuration" 146 | shutil.copy("/etc/resolv.conf", config.root + "/etc/resolv.conf") 147 | fp = open(config.root + "/etc/initramfs-tools/modules", "a") 148 | fp.write("\n".join(config.initramfs_modules) + "\n") 149 | fp.flush() 150 | fp.close() 151 | 152 | print "clone repository to target and activate it" 153 | command = ["rsync", "-va", config.repo + "/.", config.root + "/tmp/repo"] 154 | assert(subprocess.call(command) == 0) 155 | shutil.copy(config.keyfile, config.root + "/tmp/repo/keyFile") 156 | 157 | print "activate repository on target" 158 | command = ["chroot", config.root, "apt-key", "add", "/tmp/repo/keyFile"] 159 | assert(subprocess.call(command) == 0) 160 | fp = open(config.root + "/etc/apt/sources.list.d/gpdpocket.list", "wb") 161 | fp.write("%s\n" % ("\n".join(config.respin_repos))) 162 | fp.flush() 163 | fp.close() 164 | command = ["chroot", config.root, "apt", "update"] 165 | assert(subprocess.call(command) == 0) 166 | 167 | print "install the gpdpocket packages" 168 | command = ["chroot", config.root, "apt", "install", "-y", "--no-install-recommends"] 169 | command += config.packages 170 | assert(subprocess.call(command) == 0) 171 | 172 | print "ensure that gpdpocket repo is left behind" 173 | fp = open(config.root + "/etc/apt/sources.list.d/gpdpocket.list", "wb") 174 | fp.write("# gpdpocket packages\n") 175 | fp.write("%s\n" % ("\n".join(config.system_repos))) 176 | fp.flush() 177 | fp.close() 178 | command = [ "chroot", config.root, "apt", "update" ] 179 | assert(subprocess.call(command) == 0) 180 | 181 | print "restore target configuration" 182 | shutil.move(config.root + "/etc/resolv.conf.distrib", config.root + "/etc/resolv.conf") 183 | 184 | print "unmount pseudo filesystems" 185 | for fs in reversed(config.pseudo_fs): 186 | print ">> umount %s" % (fs) 187 | command = ["umount", config.root + fs] 188 | subprocess.call(command) 189 | 190 | print "write metadata to %s" % (config.squashfs_manifest) 191 | command = [ "chroot", config.root, "dpkg-query", "-W", "--showformat='${Package} ${Version}\n'" ] 192 | data = subprocess.check_output(command) 193 | fp = open(config.squashfs_manifest, "wb") 194 | fp.write(data) 195 | fp.flush() 196 | fp.close() 197 | 198 | except: 199 | traceback.print_exc() 200 | print "unmount pseudo filesystems" 201 | for fs in reversed(config.pseudo_fs): 202 | print ">> umount %s" % (fs) 203 | command = ["umount", config.root + fs] 204 | subprocess.call(command) 205 | sys.exit(1) 206 | 207 | print "clone updated kernel to iso" 208 | shutil.copy(config.root + "/vmlinuz", config.vmlinuz) 209 | shutil.copy(config.root + "/initrd.img", config.initrd) 210 | 211 | print "collect filesystem size" 212 | command = "du -sx --block-size=1 %s | cut -f1" % (config.root) 213 | data = subprocess.check_output(command, shell = True) 214 | fp = open(config.clone_iso + "/casper/filesystem.size", "wb") 215 | fp.write("%s\n" % data) 216 | fp.flush() 217 | fp.close() 218 | 219 | print "repack squashfs to %s" % (config.squashfs_path) 220 | command = [ "mksquashfs", config.root, config.squashfs_path, "-comp", "xz" ] 221 | assert(subprocess.call(command) == 0) 222 | 223 | print "collect md5 hashes" 224 | command = "cd %s ; find . -type f -print0 | xargs -0 md5sum" % (config.clone_iso) 225 | data = subprocess.check_output(command, shell = True) 226 | fp = open(config.root + "/md5sum.txt", "wb") 227 | fp.write(data) 228 | fp.flush() 229 | fp.close() 230 | 231 | print "create new iso image based on updated squashfs" 232 | pwd = os.path.abspath(".") 233 | os.chdir(config.clone_iso) 234 | command = [ 235 | "xorriso", 236 | "-as", "mkisofs", 237 | "-iso-level", "3", 238 | "-full-iso9660-filenames", 239 | "-volid", config.volname, 240 | "-isohybrid-mbr", config.hybridboot, 241 | "-eltorito-boot", "isolinux/isolinux.bin", 242 | "-no-emul-boot", 243 | "-eltorito-catalog", "isolinux/boot.cat", 244 | "-no-emul-boot", 245 | "-boot-load-size", "4" 246 | "-boot-info-table", 247 | "-eltorito-alt-boot", 248 | "-e", "boot/grub/efi.img", 249 | "-no-emul-boot", 250 | "-isohybrid-gpt-basdat", 251 | "-o", config.output, 252 | "." 253 | ] 254 | assert(subprocess.call(command) == 0) 255 | os.chdir(pwd) 256 | 257 | cleanup() 258 | -------------------------------------------------------------------------------- /packages/gpdpocket-power/files/tlp: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------------ 2 | # tlp - Parameters for power save 3 | # See full explanation: http://linrunner.de/en/tlp/docs/tlp-configuration.html 4 | 5 | # Hint: some features are disabled by default, remove the leading # to enable 6 | # them. 7 | 8 | # Set to 0 to disable, 1 to enable TLP. 9 | TLP_ENABLE=1 10 | 11 | # Operation mode when no power supply can be detected: AC, BAT 12 | # Concerns some desktop and embedded hardware only. 13 | TLP_DEFAULT_MODE=AC 14 | 15 | # Seconds laptop mode has to wait after the disk goes idle before doing a sync. 16 | # Non-zero value enables, zero disables laptop mode. 17 | DISK_IDLE_SECS_ON_AC=0 18 | DISK_IDLE_SECS_ON_BAT=2 19 | 20 | # Dirty page values (timeouts in secs). 21 | MAX_LOST_WORK_SECS_ON_AC=15 22 | MAX_LOST_WORK_SECS_ON_BAT=60 23 | 24 | # Hint: CPU parameters below are disabled by default, remove the leading # 25 | # to enable them, otherwise kernel default values are used. 26 | 27 | # Select a CPU frequency scaling governor: 28 | # ondemand, powersave, performance, conservative 29 | # Intel Core i processor with intel_pstate driver: 30 | # powersave, performance 31 | # Important: 32 | # You *must* disable your distribution's governor settings or conflicts will 33 | # occur. ondemand is sufficient for *almost all* workloads, you should know 34 | # what you're doing! 35 | #CPU_SCALING_GOVERNOR_ON_AC=ondemand 36 | #CPU_SCALING_GOVERNOR_ON_BAT=ondemand 37 | 38 | # Set the min/max frequency available for the scaling governor. 39 | # Possible values strongly depend on your CPU. For available frequencies see 40 | # tlp-stat output, Section "+++ Processor". 41 | #CPU_SCALING_MIN_FREQ_ON_AC=0 42 | #CPU_SCALING_MAX_FREQ_ON_AC=0 43 | #CPU_SCALING_MIN_FREQ_ON_BAT=0 44 | #CPU_SCALING_MAX_FREQ_ON_BAT=0 45 | 46 | # Set Intel P-state performance: 0..100 (%) 47 | # Limit the max/min P-state to control the power dissipation of the CPU. 48 | # Values are stated as a percentage of the available performance. 49 | # Requires an Intel Core i processor with intel_pstate driver. 50 | #CPU_MIN_PERF_ON_AC=0 51 | #CPU_MAX_PERF_ON_AC=100 52 | #CPU_MIN_PERF_ON_BAT=0 53 | #CPU_MAX_PERF_ON_BAT=30 54 | 55 | # Set the CPU "turbo boost" feature: 0=disable, 1=allow 56 | # Requires an Intel Core i processor. 57 | # Important: 58 | # - This may conflict with your distribution's governor settings 59 | # - A value of 1 does *not* activate boosting, it just allows it 60 | #CPU_BOOST_ON_AC=1 61 | #CPU_BOOST_ON_BAT=0 62 | 63 | # Minimize number of used CPU cores/hyper-threads under light load conditions 64 | SCHED_POWERSAVE_ON_AC=0 65 | SCHED_POWERSAVE_ON_BAT=1 66 | 67 | # Kernel NMI Watchdog: 68 | # 0=disable (default, saves power), 1=enable (for kernel debugging only) 69 | NMI_WATCHDOG=0 70 | 71 | # Change CPU voltages aka "undervolting" - Kernel with PHC patch required 72 | # Frequency voltage pairs are written to: 73 | # /sys/devices/system/cpu/cpu0/cpufreq/phc_controls 74 | # CAUTION: only use this, if you thoroughly understand what you are doing! 75 | #PHC_CONTROLS="F:V F:V F:V F:V" 76 | 77 | # Set CPU performance versus energy savings policy: 78 | # performance, normal, powersave 79 | # Requires kernel module msr and x86_energy_perf_policy from linux-tools 80 | ENERGY_PERF_POLICY_ON_AC=performance 81 | ENERGY_PERF_POLICY_ON_BAT=powersave 82 | 83 | # Hard disk devices; separate multiple devices with spaces (default: sda). 84 | # Devices can be specified by disk ID also (lookup with: tlp diskid). 85 | DISK_DEVICES="mmcblk0" 86 | 87 | # Hard disk advanced power management level: 1..254, 255 (max saving, min, off) 88 | # Levels 1..127 may spin down the disk; 255 allowable on most drives. 89 | # Separate values for multiple devices with spaces. 90 | DISK_APM_LEVEL_ON_AC="254 254" 91 | DISK_APM_LEVEL_ON_BAT="128 128" 92 | 93 | # Hard disk spin down timeout: 94 | # 0: spin down disabled 95 | # 1..240: timeouts from 5s to 20min (in units of 5s) 96 | # 241..251: timeouts from 30min to 5.5 hours (in units of 30min) 97 | # See 'man hdparm' for details. 98 | #DISK_SPINDOWN_TIMEOUT_ON_AC="0 0" 99 | #DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0" 100 | 101 | # Select IO scheduler for the disk devices: noop, deadline, cfq (Default: cfq); 102 | # Separate values for multiple devices with spaces. 103 | DISK_IOSCHED="deadline" 104 | 105 | # SATA aggressive link power management (ALPM): 106 | # min_power, medium_power, max_performance 107 | SATA_LINKPWR_ON_AC=max_performance 108 | SATA_LINKPWR_ON_BAT=min_power 109 | 110 | # PCI Express Active State Power Management (PCIe ASPM): 111 | # default, performance, powersave 112 | PCIE_ASPM_ON_AC=performance 113 | PCIE_ASPM_ON_BAT=powersave 114 | 115 | # Radeon graphics clock speed (profile method): low, mid, high, auto, default; 116 | # auto = mid on BAT, high on AC; default = use hardware defaults. 117 | # (Kernel >= 2.6.35 only, open-source radeon driver explicitly) 118 | RADEON_POWER_PROFILE_ON_AC=high 119 | RADEON_POWER_PROFILE_ON_BAT=low 120 | 121 | # Radeon dynamic power management method (DPM): battery, performance 122 | # (Kernel >= 3.11 only, requires boot option radeon.dpm=1) 123 | RADEON_DPM_STATE_ON_AC=performance 124 | RADEON_DPM_STATE_ON_BAT=battery 125 | 126 | # Radeon DPM performance level: auto, low, high; auto is recommended. 127 | RADEON_DPM_PERF_LEVEL_ON_AC=auto 128 | RADEON_DPM_PERF_LEVEL_ON_BAT=auto 129 | 130 | # WiFi power saving mode: 1=disable, 5=enable; not supported by all adapters. 131 | WIFI_PWR_ON_AC=1 132 | WIFI_PWR_ON_BAT=5 133 | 134 | # Disable wake on LAN: Y/N 135 | WOL_DISABLE=Y 136 | 137 | # Enable audio power saving for Intel HDA, AC97 devices (timeout in secs). 138 | # A value of 0 disables, >=1 enables power save. 139 | SOUND_POWER_SAVE_ON_AC=0 140 | SOUND_POWER_SAVE_ON_BAT=1 141 | 142 | # Disable controller too (HDA only): Y/N 143 | SOUND_POWER_SAVE_CONTROLLER=Y 144 | 145 | # Set to 1 to power off optical drive in UltraBay/MediaBay when running on 146 | # battery. A value of 0 disables this feature (Default). 147 | # Drive can be powered on again by releasing (and reinserting) the eject lever 148 | # or by pressing the disc eject button on newer models. 149 | # Note: an UltraBay/MediaBay hard disk is never powered off. 150 | BAY_POWEROFF_ON_BAT=0 151 | # Optical drive device to power off (default sr0). 152 | BAY_DEVICE="sr0" 153 | 154 | # Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable 155 | RUNTIME_PM_ON_AC=on 156 | RUNTIME_PM_ON_BAT=auto 157 | 158 | # Runtime PM for *all* PCI(e) bus devices, except blacklisted ones: 159 | # 0=disable, 1=enable 160 | RUNTIME_PM_ALL=1 161 | 162 | # Exclude PCI(e) device adresses the following list from Runtime PM 163 | # (separate with spaces). Use lspci to get the adresses (1st column). 164 | #RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6" 165 | 166 | # Exclude PCI(e) devices assigned to the listed drivers from Runtime PM 167 | # (should prevent accidential power on of hybrid graphics' discrete part). 168 | # Default is "radeon nouveau"; use "" to disable the feature completely. 169 | # Separate multiple drivers with spaces. 170 | RUNTIME_PM_DRIVER_BLACKLIST="radeon nouveau" 171 | 172 | # Set to 0 to disable, 1 to enable USB autosuspend feature. 173 | USB_AUTOSUSPEND=1 174 | 175 | # Exclude listed devices from USB autosuspend (separate with spaces). 176 | # Use lsusb to get the ids. 177 | # Note: input devices (usbhid) are excluded automatically (see below) 178 | #USB_BLACKLIST="1111:2222 3333:4444" 179 | 180 | # WWAN devices are excluded from USB autosuspend: 181 | # 0=do not exclude / 1=exclude 182 | USB_BLACKLIST_WWAN=1 183 | 184 | # Include listed devices into USB autosuspend even if already excluded 185 | # by the driver or WWAN blacklists above (separate with spaces). 186 | # Use lsusb to get the ids. 187 | #USB_WHITELIST="1111:2222 3333:4444" 188 | 189 | # Set to 1 to disable autosuspend before shutdown, 0 to do nothing 190 | # (workaround for USB devices that cause shutdown problems). 191 | #USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1 192 | 193 | # Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown 194 | # on system startup: 0=disable, 1=enable. 195 | # Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below 196 | # are ignored when this is enabled! 197 | RESTORE_DEVICE_STATE_ON_STARTUP=0 198 | 199 | # Radio devices to disable on startup: bluetooth, wifi, wwan. 200 | # Separate multiple devices with spaces. 201 | #DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan" 202 | 203 | # Radio devices to enable on startup: bluetooth, wifi, wwan. 204 | # Separate multiple devices with spaces. 205 | #DEVICES_TO_ENABLE_ON_STARTUP="wifi" 206 | 207 | # Radio devices to disable on shutdown: bluetooth, wifi, wwan 208 | # (workaround for devices that are blocking shutdown). 209 | #DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan" 210 | 211 | # Radio devices to enable on shutdown: bluetooth, wifi, wwan 212 | # (to prevent other operating systems from missing radios). 213 | #DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan" 214 | 215 | # Radio devices to enable on AC: bluetooth, wifi, wwan 216 | #DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan" 217 | 218 | # Radio devices to disable on battery: bluetooth, wifi, wwan 219 | #DEVICES_TO_DISABLE_ON_BAT="bluetooth wifi wwan" 220 | 221 | # Radio devices to disable on battery when not in use (not connected): 222 | # bluetooth, wifi, wwan 223 | #DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan" 224 | 225 | # Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module 226 | # required). Charging starts when the remaining capacity falls below the 227 | # START_CHARGE_TRESH value and stops when exceeding the STOP_CHARGE_TRESH value. 228 | # Main / Internal battery (values in %) 229 | #START_CHARGE_THRESH_BAT0=75 230 | #STOP_CHARGE_THRESH_BAT0=80 231 | # Ultrabay / Slice / Replaceable battery (values in %) 232 | #START_CHARGE_THRESH_BAT1=75 233 | #STOP_CHARGE_THRESH_BAT1=80 234 | 235 | # ------------------------------------------------------------------------------ 236 | # tlp-rdw - Parameters for the radio device wizard 237 | # Possible devices: bluetooth, wifi, wwan 238 | 239 | # Hints: 240 | # - Parameters are disabled by default, remove the leading # to enable them. 241 | # - Separate multiple radio devices with spaces. 242 | 243 | # Radio devices to disable on connect. 244 | #DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan" 245 | #DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan" 246 | #DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi" 247 | 248 | # Radio devices to enable on disconnect. 249 | #DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan" 250 | #DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT="" 251 | #DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT="" 252 | 253 | # Radio devices to enable/disable when docked. 254 | #DEVICES_TO_ENABLE_ON_DOCK="" 255 | #DEVICES_TO_DISABLE_ON_DOCK="" 256 | 257 | # Radio devices to enable/disable when undocked. 258 | #DEVICES_TO_ENABLE_ON_UNDOCK="wifi" 259 | #DEVICES_TO_DISABLE_ON_UNDOCK="" 260 | -------------------------------------------------------------------------------- /packages/gpdpocket-audio/files/HiFi.conf: -------------------------------------------------------------------------------- 1 | SectionVerb { 2 | # ALSA PCM 3 | Value { 4 | TQ "HiFi" 5 | 6 | # ALSA PCM device for HiFi 7 | PlaybackPCM "hw:chtrt5645" 8 | CapturePCM "hw:chtrt5645" 9 | } 10 | 11 | EnableSequence [ 12 | cdev "hw:chtrt5645" 13 | 14 | # media mixer settings 15 | # compress 16 | cset "name='media0_in Gain 0 Switch' on" 17 | cset "name='media0_in Gain 0 Volume' 0" 18 | 19 | # normal 20 | cset "name='media1_in Gain 0 Switch' on" 21 | cset "name='media1_in Gain 0 Volume' 0" 22 | # swm loopback 23 | cset "name='media2_in Gain 0 Switch' off" 24 | cset "name='media2_in Gain 0 Volume' 0%" 25 | # deep buffer 26 | cset "name='media3_in Gain 0 Switch' on" 27 | cset "name='media3_in Gain 0 Volume' 0" 28 | 29 | cset "name='media0_out mix 0 media0_in Switch' on" 30 | cset "name='media0_out mix 0 media1_in Switch' on" 31 | cset "name='media0_out mix 0 media2_in Switch' off" 32 | cset "name='media0_out mix 0 media3_in Switch' on" 33 | 34 | cset "name='media1_out mix 0 media0_in Switch' off" 35 | cset "name='media1_out mix 0 media1_in Switch' off" 36 | cset "name='media1_out mix 0 media2_in Switch' off" 37 | cset "name='media1_out mix 0 media3_in Switch' off" 38 | 39 | cset "name='pcm0_in Gain 0 Switch' on" 40 | cset "name='pcm0_in Gain 0 Volume' 0" 41 | 42 | cset "name='pcm1_in Gain 0 Switch' off" 43 | cset "name='pcm1_in Gain 0 Volume' 0%" 44 | 45 | # codec0_out settings (used if ssp2 is connected to aif1) 46 | cset "name='codec_out0 mix 0 codec_in0 Switch' off" 47 | cset "name='codec_out0 mix 0 codec_in1 Switch' off" 48 | cset "name='codec_out0 mix 0 media_loop1_in Switch' off" 49 | cset "name='codec_out0 mix 0 media_loop2_in Switch' off" 50 | cset "name='codec_out0 mix 0 pcm0_in Switch' on" 51 | cset "name='codec_out0 mix 0 pcm1_in Switch' off" 52 | cset "name='codec_out0 mix 0 sprot_loop_in Switch' off" 53 | cset "name='codec_out0 Gain 0 Switch' on" 54 | cset "name='codec_out0 Gain 0 Volume' 0" 55 | 56 | # modem_out settings (used if ssp0 is connected to aif2) 57 | cset "name='modem_out mix 0 codec_in0 Switch' off" 58 | cset "name='modem_out mix 0 codec_in1 Switch' off" 59 | cset "name='modem_out mix 0 media_loop1_in Switch' off" 60 | cset "name='modem_out mix 0 media_loop2_in Switch' off" 61 | cset "name='modem_out mix 0 pcm0_in Switch' on" 62 | cset "name='modem_out mix 0 pcm1_in Switch' off" 63 | cset "name='modem_out mix 0 sprot_loop_in Switch' off" 64 | cset "name='modem_out Gain 0 Switch' on" 65 | cset "name='modem_out Gain 0 Volume' 0" 66 | 67 | # input settings 68 | # pcm1_out settings 69 | 70 | # input used when SSP2 is connected 71 | cset "name='codec_in0 Gain 0 Switch' on" 72 | cset "name='codec_in0 Gain 0 Volume' 0" 73 | 74 | # input used when SSP0 is connected 75 | cset "name='modem_in Gain 0 Switch' on" 76 | cset "name='modem_in Gain 0 Volume' 0" 77 | 78 | cset "name='pcm1_out mix 0 codec_in0 Switch' on" 79 | cset "name='pcm1_out mix 0 modem_in Switch' on" 80 | cset "name='pcm1_out mix 0 codec_in1 Switch' off" 81 | cset "name='pcm1_out mix 0 media_loop1_in Switch' off" 82 | cset "name='pcm1_out mix 0 media_loop2_in Switch' off" 83 | cset "name='pcm1_out mix 0 pcm0_in Switch' off" 84 | cset "name='pcm1_out mix 0 pcm1_in Switch' off" 85 | cset "name='pcm1_out mix 0 sprot_loop_in Switch' off" 86 | 87 | cset "name='pcm1_out Gain 0 Switch' on" 88 | cset "name='pcm1_out Gain 0 Volume' 0" 89 | 90 | # disable codec_out1 91 | cset "name='codec_out1 mix 0 codec_in0 Switch' off" 92 | cset "name='codec_out1 mix 0 codec_in1 Switch' off" 93 | cset "name='codec_out1 mix 0 media_loop1_in Switch' off" 94 | cset "name='codec_out1 mix 0 media_loop2_in Switch' off" 95 | cset "name='codec_out1 mix 0 pcm0_in Switch' off" 96 | cset "name='codec_out1 mix 0 pcm1_in Switch' off" 97 | cset "name='codec_out1 mix 0 sprot_loop_in Switch' off" 98 | cset "name='codec_out1 Gain 0 Switch' off" 99 | cset "name='codec_out1 Gain 0 Volume' 0%" 100 | 101 | # disable codec_in1 102 | cset "name='codec_in1 Gain 0 Switch' off" 103 | cset "name='codec_in1 Gain 0 Volume' 0%" 104 | 105 | # disable all loops 106 | cset "name='media_loop1_out mix 0 codec_in0 Switch' off" 107 | cset "name='media_loop1_out mix 0 codec_in1 Switch' off" 108 | cset "name='media_loop1_out mix 0 media_loop1_in Switch' off" 109 | cset "name='media_loop1_out mix 0 media_loop2_in Switch' off" 110 | cset "name='media_loop1_out mix 0 pcm0_in Switch' off" 111 | cset "name='media_loop1_out mix 0 pcm1_in Switch' off" 112 | cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off" 113 | 114 | cset "name='media_loop2_out mix 0 codec_in0 Switch' off" 115 | cset "name='media_loop2_out mix 0 codec_in1 Switch' off" 116 | cset "name='media_loop2_out mix 0 media_loop1_in Switch' off" 117 | cset "name='media_loop2_out mix 0 media_loop2_in Switch' off" 118 | cset "name='media_loop2_out mix 0 pcm0_in Switch' off" 119 | cset "name='media_loop2_out mix 0 pcm1_in Switch' off" 120 | cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off" 121 | 122 | cset "name='sprot_loop_out mix 0 codec_in0 Switch' off" 123 | cset "name='sprot_loop_out mix 0 codec_in1 Switch' off" 124 | cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off" 125 | cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off" 126 | cset "name='sprot_loop_out mix 0 pcm0_in Switch' off" 127 | cset "name='sprot_loop_out mix 0 pcm1_in Switch' off" 128 | cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off" 129 | 130 | # Output Configuration 131 | cset "name='DAC1 L Mux' IF1 DAC" 132 | cset "name='DAC1 R Mux' IF1 DAC" 133 | cset "name='DAC1 MIXL DAC1 Switch' 1" 134 | cset "name='DAC1 MIXR DAC1 Switch' 1" 135 | cset "name='Stereo DAC MIXL DAC L1 Switch' 1" 136 | cset "name='Stereo DAC MIXR DAC R1 Switch' 1" 137 | 138 | cset "name='DAC L2 Mux' IF2 DAC" 139 | cset "name='DAC R2 Mux' IF2 DAC" 140 | cset "name='Mono DAC MIXL DAC L2 Switch' on" 141 | cset "name='Mono DAC MIXR DAC R2 Switch' on" 142 | cset "name='DAC2 Playback Switch' on" 143 | 144 | cset "name='HPOVOL MIXL DAC1 Switch' on" 145 | cset "name='HPOVOL MIXR DAC1 Switch' on" 146 | cset "name='HPOVOL MIXL DAC2 Switch' on" 147 | cset "name='HPOVOL MIXR DAC2 Switch' on" 148 | cset "name='HPO MIX HPVOL Switch' on" 149 | cset "name='HPOVOL L Switch' on" 150 | cset "name='HPOVOL R Switch' on" 151 | 152 | cset "name='SPK MIXL DAC L1 Switch' on" 153 | cset "name='SPK MIXR DAC R1 Switch' on" 154 | cset "name='SPK MIXL DAC L2 Switch' on" 155 | cset "name='SPK MIXR DAC R2 Switch' on" 156 | cset "name='SPOL MIX SPKVOL L Switch' on" 157 | cset "name='SPOR MIX SPKVOL R Switch' on" 158 | cset "name='SPKVOL L Switch' on" 159 | cset "name='SPKVOL R Switch' on" 160 | 161 | # Input Configuration 162 | cset "name='Stereo1 DMIC Mux' 0" 163 | cset "name='Stereo1 ADC2 Mux' 1" 164 | cset "name='ADC Capture Switch' on" 165 | cset "name='ADC Capture Volume' 31" 166 | cset "name='ADC Boost Capture Volume' 3" 167 | cset "name='Mono ADC Capture Volume' 63" 168 | cset "name='Mono ADC Boost Capture Volume' 2" 169 | cset "name='IN Capture Volume' 63" 170 | cset "name='I2S2 Func Switch' on" 171 | 172 | ] 173 | 174 | DisableSequence [ 175 | cdev "hw:chtrt5645" 176 | 177 | # Disable audio output path 178 | cset "name='codec_out1 mix 0 pcm0_in Switch' off" 179 | cset "name='media0_out mix 0 media1_in Switch' off" 180 | 181 | cset "name='media1_in Gain 0 Switch' off" 182 | cset "name='pcm0_in Gain 0 Switch' off" 183 | cset "name='codec_out1 Gain 0 Switch' off" 184 | 185 | # Disable audio input path 186 | cset "name='pcm1_out mix 0 media_loop2_in Switch' off" 187 | cset "name='media_loop2_out mix 0 codec_in0 Switch' off" 188 | 189 | cset "name='media_loop2_out Gain 0 Switch' off" 190 | cset "name='pcm1_out Gain 0 Switch' off" 191 | cset "name='codec_in0 Gain 0 Switch' off" 192 | ] 193 | } 194 | 195 | SectionDevice."Speaker" { 196 | Comment "Speaker" 197 | 198 | Value { 199 | PlaybackChannels "2" 200 | } 201 | 202 | ConflictingDevice [ 203 | "Headphones" 204 | ] 205 | 206 | EnableSequence [ 207 | cdev "hw:chtrt5645" 208 | 209 | cset "name='Headphone Switch' off" 210 | cset "name='Headphone Channel Switch' off" 211 | 212 | cset "name='Ext Spk Switch' on" 213 | cset "name='Speaker Channel Switch' on" 214 | cset "name='Speaker Playback Volume' 31" 215 | ] 216 | 217 | DisableSequence [ 218 | cdev "hw:chtrt5645" 219 | 220 | cset "name='Ext Spk Switch' off" 221 | cset "name='Speaker Channel Switch' off" 222 | ] 223 | } 224 | 225 | SectionDevice."Headphones" { 226 | Comment "Headphones" 227 | 228 | Value { 229 | PlaybackChannels "2" 230 | JackControl "Headphone Jack" 231 | JackHWMute "Speaker" 232 | } 233 | 234 | ConflictingDevice [ 235 | "Speaker" 236 | ] 237 | 238 | EnableSequence [ 239 | cdev "hw:chtrt5645" 240 | 241 | cset "name='Ext Spk Switch' off" 242 | cset "name='Speaker Channel Switch' off" 243 | 244 | cset "name='Headphone Switch' on" 245 | cset "name='Headphone Channel Switch' on" 246 | cset "name='Headphone Playback Volume' 31" 247 | ] 248 | 249 | DisableSequence [ 250 | cdev "hw:chtrt5645" 251 | 252 | cset "name='Headphone Switch' off" 253 | cset "name='Headphone Channel Switch' off" 254 | ] 255 | } 256 | 257 | SectionDevice."Mic".0 { 258 | Comment "Internal Analog Microphones" 259 | 260 | Value { 261 | CaptureChannels "2" 262 | CapturePriority "150" 263 | } 264 | 265 | EnableSequence [ 266 | cdev "hw:chtrt5645" 267 | 268 | cset "name='Int Mic Switch' on" 269 | 270 | cset "name='Sto1 ADC MIXL ADC1 Switch' on" 271 | cset "name='Sto1 ADC MIXR ADC1 Switch' on" 272 | cset "name='Sto1 ADC MIXL ADC2 Switch' off" 273 | cset "name='Sto1 ADC MIXR ADC2 Switch' off" 274 | 275 | cset "name='Mono ADC MIXL ADC1 Switch' on" 276 | cset "name='Mono ADC MIXR ADC1 Switch' on" 277 | cset "name='Mono ADC MIXL ADC2 Switch' off" 278 | cset "name='Mono ADC MIXR ADC2 Switch' off" 279 | 280 | cset "name='RECMIXL BST1 Switch' on" 281 | cset "name='RECMIXR BST1 Switch' on" 282 | 283 | ] 284 | 285 | DisableSequence [ 286 | cdev "hw:chtrt5645" 287 | 288 | cset "name='Sto1 ADC MIXL ADC1 Switch' off" 289 | cset "name='Sto1 ADC MIXR ADC1 Switch' off" 290 | cset "name='Mono ADC MIXL ADC1 Switch' off" 291 | cset "name='Mono ADC MIXR ADC1 Switch' off" 292 | 293 | cset "name='RECMIXL BST1 Switch' off" 294 | cset "name='RECMIXR BST1 Switch' off" 295 | 296 | cset "name='Int Mic Switch' off" 297 | ] 298 | } 299 | 300 | 301 | SectionDevice."DMic".0 { 302 | Comment "Internal Digital Microphones" 303 | 304 | Value { 305 | CaptureChannels "2" 306 | 307 | } 308 | 309 | EnableSequence [ 310 | cdev "hw:chtrt5645" 311 | 312 | cset "name='Int Mic Switch' on" 313 | 314 | cset "name='Stereo1 DMIC Mux' DMIC1" 315 | cset "name='Stereo1 ADC2 Mux' DMIC" 316 | cset "name='Mono ADC L2 Mux' DMIC" 317 | cset "name='Mono ADC R2 Mux' DMIC" 318 | 319 | cset "name='Sto1 ADC MIXL ADC1 Switch' off" 320 | cset "name='Sto1 ADC MIXR ADC1 Switch' off" 321 | cset "name='Sto1 ADC MIXL ADC2 Switch' on" 322 | cset "name='Sto1 ADC MIXR ADC2 Switch' on" 323 | cset "name='Mono ADC MIXL ADC1 Switch' off" 324 | cset "name='Mono ADC MIXR ADC1 Switch' off" 325 | cset "name='Mono ADC MIXL ADC2 Switch' on" 326 | cset "name='Mono ADC MIXR ADC2 Switch' on" 327 | 328 | ] 329 | 330 | DisableSequence [ 331 | cdev "hw:chtrt5645" 332 | 333 | cset "name='Sto1 ADC MIXL ADC2 Switch' off" 334 | cset "name='Sto1 ADC MIXR ADC2 Switch' off" 335 | cset "name='Mono ADC MIXL ADC2 Switch' off" 336 | cset "name='Mono ADC MIXR ADC2 Switch' off" 337 | cset "name='Int Mic Switch' off" 338 | ] 339 | } 340 | 341 | SectionDevice."HSMic".0 { 342 | Comment "Headset Microphone" 343 | 344 | Value { 345 | CaptureChannels "2" 346 | JackControl "Headset Mic Jack" 347 | JackHWMute "Mic" 348 | } 349 | 350 | EnableSequence [ 351 | cdev "hw:chtrt5645" 352 | 353 | cset "name='Headset Mic Switch' on" 354 | 355 | cset "name='Sto1 ADC MIXL ADC1 Switch' on" 356 | cset "name='Sto1 ADC MIXR ADC1 Switch' on" 357 | cset "name='Sto1 ADC MIXL ADC2 Switch' off" 358 | cset "name='Sto1 ADC MIXR ADC2 Switch' off" 359 | 360 | cset "name='Mono ADC MIXL ADC1 Switch' on" 361 | cset "name='Mono ADC MIXR ADC1 Switch' on" 362 | cset "name='Mono ADC MIXL ADC2 Switch' off" 363 | cset "name='Mono ADC MIXR ADC2 Switch' off" 364 | 365 | cset "name='RECMIXL BST1 Switch' on" 366 | cset "name='RECMIXR BST1 Switch' on" 367 | 368 | ] 369 | 370 | DisableSequence [ 371 | cdev "hw:chtrt5645" 372 | 373 | cset "name='Headset Mic Switch' off" 374 | 375 | cset "name='RECMIXL BST1 Switch' off" 376 | cset "name='RECMIXR BST1 Switch' off" 377 | cset "name='Sto1 ADC MIXL ADC1 Switch' off" 378 | cset "name='Sto1 ADC MIXR ADC1 Switch' off" 379 | cset "name='Mono ADC MIXL ADC1 Switch' on" 380 | cset "name='Mono ADC MIXR ADC1 Switch' on" 381 | 382 | ] 383 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | {one line to give the program's name and a brief idea of what it does.} 635 | Copyright (C) {year} {name of author} 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | {project} Copyright (C) {year} {fullname} 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /common/kernel-patches/0002-debian-changelog.patch: -------------------------------------------------------------------------------- 1 | From f408a55a5f010fede98f4cd94ec6ebb48ff12c2c Mon Sep 17 00:00:00 2001 2 | From: Kernel Mainline Builds 3 | Date: Sat, 16 Sep 2017 20:31:27 -0400 4 | Subject: [PATCH 2/3] debian changelog 5 | 6 | --- 7 | debian.master/changelog | 1010 +---------------------------------------------- 8 | 1 file changed, 3 insertions(+), 1007 deletions(-) 9 | 10 | diff --git a/debian.master/changelog b/debian.master/changelog 11 | index 666559e..3f5cc11 100644 12 | --- a/debian.master/changelog 13 | +++ b/debian.master/changelog 14 | @@ -1,1010 +1,6 @@ 15 | -linux (4.13.0-10.11) artful; urgency=low 16 | +linux (4.14.0-041400rc1.201709162031) unstable; urgency=low 17 | 18 | - * linux: 4.13.0-10.11 -proposed tracker (LP: #1716287) 19 | + Mainline build at commit: v4.14-rc1 20 | 21 | - * please add aufs-dkms to the Provides: for the kernel packages (LP: #1716093) 22 | - - [Packaging] Add aufs-dkms to the Provides: for kernel packages 23 | + -- Mainline Build Sat, 16 Sep 2017 20:31:27 -0400 24 | 25 | - * Artful update to v4.13.1 stable release (LP: #1716284) 26 | - - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard 27 | - - USB: serial: option: add support for D-Link DWM-157 C1 28 | - - usb: Add device quirk for Logitech HD Pro Webcam C920-C 29 | - - usb:xhci:Fix regression when ATI chipsets detected 30 | - - USB: musb: fix external abort on suspend 31 | - - ANDROID: binder: add padding to binder_fd_array_object. 32 | - - ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES. 33 | - - USB: core: Avoid race of async_completed() w/ usbdev_release() 34 | - - staging/rts5208: fix incorrect shift to extract upper nybble 35 | - - staging: ccree: save ciphertext for CTS IV 36 | - - staging: fsl-dpaa2/eth: fix off-by-one FD ctrl bitmaks 37 | - - iio: adc: ti-ads1015: fix incorrect data rate setting update 38 | - - iio: adc: ti-ads1015: fix scale information for ADS1115 39 | - - iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set 40 | - - iio: adc: ti-ads1015: avoid getting stale result after runtime resume 41 | - - iio: adc: ti-ads1015: don't return invalid value from buffer setup callbacks 42 | - - iio: adc: ti-ads1015: add adequate wait time to get correct conversion 43 | - - driver core: bus: Fix a potential double free 44 | - - HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage 45 | - - binder: free memory on error 46 | - - crypto: caam/qi - fix compilation with CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y 47 | - - crypto: caam/qi - fix compilation with DEBUG enabled 48 | - - thunderbolt: Fix reset response_type 49 | - - fpga: altera-hps2fpga: fix multiple init of l3_remap_lock 50 | - - intel_th: pci: Add Cannon Lake PCH-H support 51 | - - intel_th: pci: Add Cannon Lake PCH-LP support 52 | - - ath10k: fix memory leak in rx ring buffer allocation 53 | - - drm/vgem: Pin our pages for dmabuf exports 54 | - - drm/ttm: Fix accounting error when fail to get pages for pool 55 | - - drm/dp/mst: Handle errors from drm_atomic_get_private_obj_state() correctly 56 | - - rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter 57 | - - Bluetooth: Add support of 13d3:3494 RTL8723BE device 58 | - - iwlwifi: pci: add new PCI ID for 7265D 59 | - - dlm: avoid double-free on error path in dlm_device_{register,unregister} 60 | - - mwifiex: correct channel stat buffer overflows 61 | - - MCB: add support for SC31 to mcb-lpc 62 | - - s390/mm: avoid empty zero pages for KVM guests to avoid postcopy hangs 63 | - - drm/nouveau/pci/msi: disable MSI on big-endian platforms by default 64 | - - drm/nouveau: Fix error handling in nv50_disp_atomic_commit 65 | - - workqueue: Fix flag collision 66 | - - ahci: don't use MSI for devices with the silly Intel NVMe remapping scheme 67 | - - cs5536: add support for IDE controller variant 68 | - - scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE 69 | - - scsi: sg: recheck MMAP_IO request length with lock held 70 | - - of/device: Prevent buffer overflow in of_device_modalias() 71 | - - rtlwifi: Fix memory leak when firmware request fails 72 | - - rtlwifi: Fix fallback firmware loading 73 | - - Linux 4.13.1 74 | - 75 | - * Kernel has trouble recognizing Corsair Strafe RGB keyboard (LP: #1678477) 76 | - - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard 77 | - 78 | - * SRIOV: warning if unload VFs (LP: #1715073) 79 | - - PCI: Disable VF decoding before pcibios_sriov_disable() updates resources 80 | - 81 | - * [Patch] network-i40e:NVM bug fixes (cherrypick from 4.14) (LP: #1715578) 82 | - - i40e: avoid NVM acquire deadlock during NVM update 83 | - - i40e: point wb_desc at the nvm_wb_desc during i40e_read_nvm_aq 84 | - 85 | - * [P9,POwer NV] Perf PMU event : pm_br_2path and pm_ld_miss_l1 is counted 86 | - twice when perf stat is done (perf:) (LP: #1714571) 87 | - - perf vendor events powerpc: Remove duplicate events 88 | - 89 | - * Unable to install Ubuntu on the NVMe disk under VMD PCI domain 90 | - (LP: #1703339) 91 | - - [Config] Include vmd in storage-core-modules udeb 92 | - 93 | - * 17.10 fails to boot on POWER9 DD2.0 with Deep stop states (LP: #1715064) 94 | - - powerpc/powernv: Save/Restore additional SPRs for stop4 cpuidle 95 | - - powerpc/powernv: Clear PECE1 in LPCR via stop-api only on Hotplug 96 | - - SAUCE: powerpc/powernv: Clear LPCR[PECE1] via stop-api only for deep state 97 | - offline 98 | - 99 | - * Miscellaneous Ubuntu changes 100 | - - SAUCE: selftests/seccomp: Support glibc 2.26 siginfo_t.h 101 | - - Revert "UBUNTU: SAUCE: Import aufs driver" 102 | - - SAUCE: Import aufs driver 103 | - 104 | - -- Seth Forshee Sun, 10 Sep 2017 17:48:59 -0500 105 | - 106 | -linux (4.13.0-9.10) artful; urgency=low 107 | - 108 | - * linux: 4.13.0-9.10 -proposed tracker (LP: #1715145) 109 | - 110 | - * EDAC sbridge: Failed to register device with error -22. (LP: #1714112) 111 | - - [Config] CONFIG_EDAC_GHES=n 112 | - 113 | - * Miscellaneous Ubuntu changes 114 | - - ubuntu: vbox -- update to 5.1.26-dfsg-2 115 | - 116 | - [ Upstream Kernel Changes ] 117 | - 118 | - * Rebase to v4.13 119 | - 120 | - -- Seth Forshee Tue, 05 Sep 2017 07:51:19 -0500 121 | - 122 | -linux (4.13.0-8.9) artful; urgency=low 123 | - 124 | - * snapd 2.27.3+17.10 ADT test failure with linux 4.13.0-6.7 (LP: #1713103) 125 | - - SAUCE: apparmor: fix apparmorfs DAC access, permissions 126 | - 127 | - * enable ARCH_SUNXI (and friends) in arm64 kernel .config (LP: #1701137) 128 | - - [Config] Enable CONFIG_ARCH_SUNXI and related options for arm64 129 | - 130 | - * [Bug] Harrisonville: pnd2_edac always fail to load on B1 stepping 131 | - Harrisonville SDP (LP: #1709257) 132 | - - EDAC, pnd2: Build in a minimal sideband driver for Apollo Lake 133 | - - EDAC, pnd2: Mask off the lower four bits of a BAR 134 | - - EDAC, pnd2: Conditionally unhide/hide the P2SB PCI device to read BAR 135 | - - EDAC, pnd2: Properly toggle hidden state for P2SB PCI device 136 | - - SAUCE: i2c: i801: Restore the presence state of P2SB PCI device after 137 | - reading BAR 138 | - 139 | - * Miscellaneous Ubuntu changes 140 | - - Revert "UBUNTU: SAUCE: Import aufs driver" 141 | - - SAUCE: Import aufs driver 142 | - - SAUCE: selftests/powerpc: Disable some ptrace selftests 143 | - - [Config] CONFIG_CRYPTO_DEV_NITROX_CNN55XX=n for s390x 144 | - - [Config] CONFIG_I2C_SLAVE=n for amd64, i386, ppc64el 145 | - - [Config] Disable CONFIG_MDIO_* options for s390x 146 | - - [Config] CONFIG_SCSI_MQ_DEFAULT=n for s390x 147 | - - [Config] Update annotations for 4.13 148 | - 149 | - -- Seth Forshee Thu, 31 Aug 2017 14:27:09 -0500 150 | - 151 | -linux (4.13.0-7.8) artful; urgency=low 152 | - 153 | - * linux 4.12.0-11.12 ADT test failure with linux 4.12.0-11.12 (LP: #1710904) 154 | - - SAUCE: selftests/powerpc: Use snprintf to construct DSCR sysfs interface 155 | - paths 156 | - 157 | - * Miscellaneous Ubuntu changes 158 | - - Revert "UBUNTU: SAUCE: seccomp: log actions even when audit is disabled" 159 | - 160 | - * Miscellaneous upstream changes 161 | - - seccomp: Provide matching filter for introspection 162 | - - seccomp: Sysctl to display available actions 163 | - - seccomp: Operation for checking if an action is available 164 | - - seccomp: Sysctl to configure actions that are allowed to be logged 165 | - - seccomp: Selftest for detection of filter flag support 166 | - - seccomp: Filter flag to log all actions except SECCOMP_RET_ALLOW 167 | - - seccomp: Action to log before allowing 168 | - 169 | - [ Upstream Kernel Changes ] 170 | - 171 | - * Rebase to v4.13-rc7 172 | - 173 | - -- Seth Forshee Mon, 28 Aug 2017 08:12:24 -0500 174 | - 175 | -linux (4.13.0-6.7) artful; urgency=low 176 | - 177 | - * HID: multitouch: Support ALPS PTP Stick and Touchpad devices (LP: #1712481) 178 | - - SAUCE: HID: multitouch: Support ALPS PTP stick with pid 0x120A 179 | - 180 | - * sort ABI files with C.UTF-8 locale (LP: #1712345) 181 | - - [Packaging] sort ABI files with C.UTF-8 locale 182 | - 183 | - * igb: Support using Broadcom 54616 as PHY (LP: #1712024) 184 | - - SAUCE: igb: add support for using Broadcom 54616 as PHY 185 | - 186 | - * RPT related fixes missing in Ubuntu 16.04.3 (LP: #1709220) 187 | - - powerpc/mm/radix: Improve _tlbiel_pid to be usable for PWC flushes 188 | - - powerpc/mm/radix: Improve TLB/PWC flushes 189 | - - powerpc/mm/radix: Avoid flushing the PWC on every flush_tlb_range 190 | - 191 | - * Linux 4.12 refuses to load self-signed modules under Secure Boot with 192 | - properly enrolled keys (LP: #1712168) 193 | - - SAUCE: (efi-lockdown) MODSIGN: Fix module signature verification 194 | - 195 | - * [17.10 FEAT] Enable NVMe driver - kernel (LP: #1708432) 196 | - - [Config] CONFIG_BLK_DEV_NVME=m for s390 197 | - 198 | - * Artful: 4.12.0-11.12: Boot panic in vlv2_plat_configure_clock+0x3b/0xa0 199 | - (LP: #1711298) 200 | - - [Config] CONFIG_INTEL_ATOMISP=n 201 | - 202 | - * Miscellaneous Ubuntu changes 203 | - - SAUCE: apparmor: af_unix mediation 204 | - 205 | - * Miscellaneous upstream changes 206 | - - apparmor: Fix shadowed local variable in unpack_trans_table() 207 | - - apparmor: Fix logical error in verify_header() 208 | - - apparmor: Fix an error code in aafs_create() 209 | - - apparmor: Redundant condition: prev_ns. in [label.c:1498] 210 | - - apparmor: add the ability to mediate signals 211 | - - apparmor: add mount mediation 212 | - - apparmor: cleanup conditional check for label in label_print 213 | - - apparmor: add support for absolute root view based labels 214 | - - apparmor: make policy_unpack able to audit different info messages 215 | - - apparmor: add more debug asserts to apparmorfs 216 | - - apparmor: add base infastructure for socket mediation 217 | - - apparmor: move new_null_profile to after profile lookup fns() 218 | - - apparmor: fix race condition in null profile creation 219 | - - apparmor: ensure unconfined profiles have dfas initialized 220 | - - apparmor: fix incorrect type assignment when freeing proxies 221 | - 222 | - [ Upstream Kernel Changes ] 223 | - 224 | - * Rebase to v4.13-rc6 225 | - 226 | - -- Seth Forshee Wed, 23 Aug 2017 08:10:38 -0500 227 | - 228 | -linux (4.13.0-5.6) artful; urgency=low 229 | - 230 | - * Ubuntu17.10 - perf: Update Power9 PMU event JSON files (LP: #1708630) 231 | - - perf pmu-events: Support additional POWER8+ PVR in mapfile 232 | - - perf vendor events: Add POWER9 PMU events 233 | - - perf vendor events: Add POWER9 PVRs to mapfile 234 | - - SAUCE: perf vendor events powerpc: remove suffix in mapfile 235 | - - SAUCE: perf vendor events powerpc: Update POWER9 events 236 | - 237 | - * Disable CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE (LP: #1709171) 238 | - - [Config] CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=n for ppc64el 239 | - 240 | - * Please only recommend or suggest initramfs-tools | linux-initramfs-tool for 241 | - kernels able to boot without initramfs (LP: #1700972) 242 | - - [Debian] Don't depend on initramfs-tools 243 | - 244 | - * Miscellaneous Ubuntu changes 245 | - - SAUCE: Import aufs driver 246 | - - SAUCE: aufs -- Add missing argument to loop_switch() call 247 | - - [Config] Enable aufs 248 | - - SAUCE: (noup) Update spl to 0.6.5.11-ubuntu1, zfs to 0.6.5.11-1ubuntu3 249 | - - Enable zfs build 250 | - - SAUCE: powerpc: Always initialize input array when calling epapr_hypercall() 251 | - - [Packaging] switch up to debhelper 9 252 | - 253 | - [ Upstream Kernel Changes ] 254 | - 255 | - * Rebase to v4.13-rc5 256 | - 257 | - -- Seth Forshee Tue, 15 Aug 2017 09:24:16 -0500 258 | - 259 | -linux (4.13.0-4.5) artful; urgency=low 260 | - 261 | - * Lenovo Yoga 910 Sensors (LP: #1708120) 262 | - - SAUCE: (no-up) HID: Add quirk for Lenovo Yoga 910 with ITE Chips 263 | - 264 | - * Unable to install Ubuntu on the NVMe disk under VMD PCI domain 265 | - (LP: #1703339) 266 | - - [Config] Add vmd driver to generic inclusion list 267 | - 268 | - * Set CONFIG_SATA_HIGHBANK=y on armhf (LP: #1703430) 269 | - - [Config] CONFIG_SATA_HIGHBANK=y 270 | - 271 | - * Miscellaneous Ubuntu changes 272 | - - ubuntu: vbox -- update to 5.1.26-dfsg-1 273 | - - SAUCE: hio: Build fixes for 4.13 274 | - - Enable hio build 275 | - - SAUCE: (noup) Update spl to 0.6.5.11-1, zfs to 0.6.5.11-1ubuntu1 276 | - - [debian] use all rather than amd64 dkms debs for sync 277 | - 278 | - [ Upstream Kernel Changes ] 279 | - 280 | - * Rebase to v4.13-rc4 281 | - 282 | - -- Seth Forshee Tue, 08 Aug 2017 11:31:48 -0500 283 | - 284 | -linux (4.13.0-3.4) artful; urgency=low 285 | - 286 | - * Adt tests of src:linux time out often on armhf lxc containers (LP: #1705495) 287 | - - [Packaging] tests -- reduce rebuild test to one flavour 288 | - - [Packaging] tests -- reduce rebuild test to one flavour -- use filter 289 | - 290 | - * snapd 2.26.8+17.10 ADT test failure with linux 4.12.0-6.7 (LP: #1704158) 291 | - - SAUCE: virtio_net: Revert mergeable buffer handling rework 292 | - 293 | - [ Upstream Kernel Changes ] 294 | - 295 | - * Rebase to v4.13-rc3 296 | - 297 | - -- Seth Forshee Mon, 31 Jul 2017 10:08:16 -0500 298 | - 299 | -linux (4.13.0-2.3) artful; urgency=low 300 | - 301 | - * Change CONFIG_IBMVETH to module (LP: #1704479) 302 | - - [Config] CONFIG_IBMVETH=m 303 | - 304 | - [ Upstream Kernel Changes ] 305 | - 306 | - * Rebase to v4.13-rc2 307 | - 308 | - -- Seth Forshee Mon, 24 Jul 2017 13:58:08 -0500 309 | - 310 | -linux (4.13.0-1.2) artful; urgency=low 311 | - 312 | - * Miscellaneous Ubuntu changes 313 | - - [Debian] Support sphinx-based kernel documentation 314 | - 315 | - -- Seth Forshee Thu, 20 Jul 2017 09:18:33 -0500 316 | - 317 | -linux (4.13.0-0.1) artful; urgency=low 318 | - 319 | - * Miscellaneous Ubuntu changes 320 | - - Disable hio 321 | - - Disable zfs build 322 | - - ubuntu: vbox -- update to 5.1.24-dfsg-1 323 | - 324 | - [ Upstream Kernel Changes ] 325 | - 326 | - * Rebase to v4.13-rc1 327 | - 328 | - -- Seth Forshee Wed, 19 Jul 2017 15:09:31 -0500 329 | - 330 | -linux (4.12.0-7.8) artful; urgency=low 331 | - 332 | - * ThunderX: soft lockup on 4.8+ kernels when running qemu-efi with vhost=on 333 | - (LP: #1673564) 334 | - - arm64: Add a facility to turn an ESR syndrome into a sysreg encoding 335 | - - KVM: arm/arm64: vgic-v3: Add accessors for the ICH_APxRn_EL2 registers 336 | - - KVM: arm64: Make kvm_condition_valid32() accessible from EL2 337 | - - KVM: arm64: vgic-v3: Add hook to handle guest GICv3 sysreg accesses at EL2 338 | - - KVM: arm64: vgic-v3: Add ICV_BPR1_EL1 handler 339 | - - KVM: arm64: vgic-v3: Add ICV_IGRPEN1_EL1 handler 340 | - - KVM: arm64: vgic-v3: Add ICV_IAR1_EL1 handler 341 | - - KVM: arm64: vgic-v3: Add ICV_EOIR1_EL1 handler 342 | - - KVM: arm64: vgic-v3: Add ICV_AP1Rn_EL1 handler 343 | - - KVM: arm64: vgic-v3: Add ICV_HPPIR1_EL1 handler 344 | - - KVM: arm64: vgic-v3: Enable trapping of Group-1 system registers 345 | - - KVM: arm64: Enable GICv3 Group-1 sysreg trapping via command-line 346 | - - KVM: arm64: vgic-v3: Add ICV_BPR0_EL1 handler 347 | - - KVM: arm64: vgic-v3: Add ICV_IGNREN0_EL1 handler 348 | - - KVM: arm64: vgic-v3: Add misc Group-0 handlers 349 | - - KVM: arm64: vgic-v3: Enable trapping of Group-0 system registers 350 | - - KVM: arm64: Enable GICv3 Group-0 sysreg trapping via command-line 351 | - - arm64: Add MIDR values for Cavium cn83XX SoCs 352 | - - arm64: Add workaround for Cavium Thunder erratum 30115 353 | - - KVM: arm64: vgic-v3: Add ICV_DIR_EL1 handler 354 | - - KVM: arm64: vgic-v3: Add ICV_RPR_EL1 handler 355 | - - KVM: arm64: vgic-v3: Add ICV_CTLR_EL1 handler 356 | - - KVM: arm64: vgic-v3: Add ICV_PMR_EL1 handler 357 | - - KVM: arm64: Enable GICv3 common sysreg trapping via command-line 358 | - - KVM: arm64: vgic-v3: Log which GICv3 system registers are trapped 359 | - - KVM: arm64: Log an error if trapping a read-from-write-only GICv3 access 360 | - - KVM: arm64: Log an error if trapping a write-to-read-only GICv3 access 361 | - 362 | - * hns: under heavy load, NIC may fail and require reboot (LP: #1704146) 363 | - - net: hns: Bugfix for Tx timeout handling in hns driver 364 | - 365 | - * New ACPI identifiers for ThunderX SMMU (LP: #1703437) 366 | - - iommu/arm-smmu: Plumb in new ACPI identifiers 367 | - 368 | - * Transparent hugepages should default to enabled=madvise (LP: #1703742) 369 | - - SAUCE: use CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y as default 370 | - 371 | - * Artful update to v4.12.1 stable release (LP: #1703858) 372 | - - driver core: platform: fix race condition with driver_override 373 | - - RDMA/uverbs: Check port number supplied by user verbs cmds 374 | - - usb: dwc3: replace %p with %pK 375 | - - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick 376 | - - usb: usbip: set buffer pointers to NULL after free 377 | - - Add USB quirk for HVR-950q to avoid intermittent device resets 378 | - - usb: Fix typo in the definition of Endpoint[out]Request 379 | - - USB: core: fix device node leak 380 | - - USB: serial: option: add two Longcheer device ids 381 | - - USB: serial: qcserial: new Sierra Wireless EM7305 device ID 382 | - - xhci: Limit USB2 port wake support for AMD Promontory hosts 383 | - - gfs2: Fix glock rhashtable rcu bug 384 | - - Add "shutdown" to "struct class". 385 | - - tpm: Issue a TPM2_Shutdown for TPM2 devices. 386 | - - tpm: fix a kernel memory leak in tpm-sysfs.c 387 | - - powerpc/powernv: Fix CPU_HOTPLUG=n idle.c compile error 388 | - - x86/uaccess: Optimize copy_user_enhanced_fast_string() for short strings 389 | - - sched/fair, cpumask: Export for_each_cpu_wrap() 390 | - - sched/core: Implement new approach to scale select_idle_cpu() 391 | - - sched/numa: Use down_read_trylock() for the mmap_sem 392 | - - sched/numa: Override part of migrate_degrades_locality() when idle balancing 393 | - - sched/fair: Simplify wake_affine() for the single socket case 394 | - - sched/numa: Implement NUMA node level wake_affine() 395 | - - sched/fair: Remove effective_load() 396 | - - sched/numa: Hide numa_wake_affine() from UP build 397 | - - xen: avoid deadlock in xenbus driver 398 | - - crypto: drbg - Fixes panic in wait_for_completion call 399 | - - Linux 4.12.1 400 | - 401 | - * cxlflash update request in the Xenial SRU stream (LP: #1702521) 402 | - - scsi: cxlflash: Combine the send queue locks 403 | - - scsi: cxlflash: Update cxlflash_afu_sync() to return errno 404 | - - scsi: cxlflash: Reset hardware queue context via specified register 405 | - - scsi: cxlflash: Schedule asynchronous reset of the host 406 | - - scsi: cxlflash: Handle AFU sync failures 407 | - - scsi: cxlflash: Track pending scsi commands in each hardware queue 408 | - - scsi: cxlflash: Flush pending commands in cleanup path 409 | - - scsi: cxlflash: Add scsi command abort handler 410 | - - scsi: cxlflash: Create character device to provide host management interface 411 | - - scsi: cxlflash: Separate AFU internal command handling from AFU sync 412 | - specifics 413 | - - scsi: cxlflash: Introduce host ioctl support 414 | - - scsi: cxlflash: Refactor AFU capability checking 415 | - - scsi: cxlflash: Support LUN provisioning 416 | - - scsi: cxlflash: Support AFU debug 417 | - - scsi: cxlflash: Support WS16 unmap 418 | - - scsi: cxlflash: Remove zeroing of private command data 419 | - - scsi: cxlflash: Update TMF command processing 420 | - - scsi: cxlflash: Avoid double free of character device 421 | - - scsi: cxlflash: Update send_tmf() parameters 422 | - - scsi: cxlflash: Update debug prints in reset handlers 423 | - 424 | - * make snap-pkg support (LP: #1700747) 425 | - - make snap-pkg support 426 | - 427 | - * Quirk for non-compliant PCI bridge on HiSilicon D05 board (LP: #1698706) 428 | - - SAUCE: PCI: Support hibmc VGA cards behind a misbehaving HiSilicon bridge 429 | - 430 | - * arm64: fix crash reading /proc/kcore (LP: #1702749) 431 | - - fs/proc: kcore: use kcore_list type to check for vmalloc/module address 432 | - - arm64: mm: select CONFIG_ARCH_PROC_KCORE_TEXT 433 | - 434 | - * Opal and POWER9 DD2 (LP: #1702159) 435 | - - SAUCE: powerpc/powernv: Tell OPAL about our MMU mode on POWER9 436 | - 437 | - * Data corruption with hio driver (LP: #1701316) 438 | - - SAUCE: hio: Fix incorrect use of enum req_opf values 439 | - 440 | - * Miscellaneous Ubuntu changes 441 | - - SAUCE: (noup) Update spl to 0.6.5.10-1, zfs to 0.6.5.10-1ubuntu2 442 | - - snapcraft.yaml: Sync with xenial 443 | - - [Config] CONFIG_CAVIUM_ERRATUM_30115=y 444 | - 445 | - * Miscellaneous upstream changes 446 | - - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and 447 | - MokSBState" 448 | - 449 | - -- Seth Forshee Fri, 14 Jul 2017 15:25:41 -0500 450 | - 451 | -linux (4.12.0-6.7) artful; urgency=low 452 | - 453 | - * update ENA driver to 1.2.0k from net-next (LP: #1701575) 454 | - - net: ena: change return value for unsupported features unsupported return 455 | - value 456 | - - net: ena: add hardware hints capability to the driver 457 | - - net: ena: change sizeof() argument to be the type pointer 458 | - - net: ena: add reset reason for each device FLR 459 | - - net: ena: add support for out of order rx buffers refill 460 | - - net: ena: allow the driver to work with small number of msix vectors 461 | - - net: ena: use napi_schedule_irqoff when possible 462 | - - net: ena: separate skb allocation to dedicated function 463 | - - net: ena: use lower_32_bits()/upper_32_bits() to split dma address 464 | - - net: ena: update driver's rx drop statistics 465 | - - net: ena: update ena driver to version 1.2.0 466 | - 467 | - * APST gets enabled against explicit kernel option (LP: #1699004) 468 | - - nvme: explicitly disable APST on quirked devices 469 | - 470 | - * Miscellaneous Ubuntu changes 471 | - - SAUCE: hio: Update to Huawei ES3000_V2 (2.1.0.40) 472 | - - SAUCE: hio updates for 4.12 473 | - - SAUCE: Enable hio build 474 | - 475 | - -- Seth Forshee Wed, 05 Jul 2017 14:23:20 -0500 476 | - 477 | -linux (4.12.0-5.6) artful; urgency=low 478 | - 479 | - * ERAT invalidate on context switch removal (LP: #1700819) 480 | - - powerpc: Only do ERAT invalidate on radix context switch on P9 DD1 481 | - 482 | - * powerpc: Invalidate ERAT on powersave wakeup for POWER9 (LP: #1700521) 483 | - - SAUCE: powerpc: Invalidate ERAT on powersave wakeup for POWER9 484 | - 485 | - * Miscellaneous Ubuntu changes 486 | - - d-i: Move qcom-emac from arm64 to shared nic-modules 487 | - 488 | - [ Upstream Kernel Changes ] 489 | - 490 | - * Rebase to v4.12 491 | - 492 | - -- Seth Forshee Mon, 03 Jul 2017 07:52:02 -0500 493 | - 494 | -linux (4.12.0-4.5) artful; urgency=low 495 | - 496 | - * aacraid driver may return uninitialized stack data to userspace 497 | - (LP: #1700077) 498 | - - SAUCE: scsi: aacraid: Don't copy uninitialized stack memory to userspace 499 | - 500 | - * KILLER1435-S[0489:e0a2] BT cannot search BT 4.0 device (LP: #1699651) 501 | - - Bluetooth: btusb: Add support for 0489:e0a2 QCA_ROME device 502 | - 503 | - * AACRAID for power9 platform (LP: #1689980) 504 | - - scsi: aacraid: Remove __GFP_DMA for raw srb memory 505 | - - scsi: aacraid: Fix DMAR issues with iommu=pt 506 | - - scsi: aacraid: Added 32 and 64 queue depth for arc natives 507 | - - scsi: aacraid: Set correct Queue Depth for HBA1000 RAW disks 508 | - - scsi: aacraid: Remove reset support from check_health 509 | - - scsi: aacraid: Change wait time for fib completion 510 | - - scsi: aacraid: Log count info of scsi cmds before reset 511 | - - scsi: aacraid: Print ctrl status before eh reset 512 | - - scsi: aacraid: Using single reset mask for IOP reset 513 | - - scsi: aacraid: Rework IOP reset 514 | - - scsi: aacraid: Add periodic checks to see IOP reset status 515 | - - scsi: aacraid: Rework SOFT reset code 516 | - - scsi: aacraid: Rework aac_src_restart 517 | - - scsi: aacraid: Use correct function to get ctrl health 518 | - - scsi: aacraid: Make sure ioctl returns on controller reset 519 | - - scsi: aacraid: Enable ctrl reset for both hba and arc 520 | - - scsi: aacraid: Add reset debugging statements 521 | - - scsi: aacraid: Remove reference to Series-9 522 | - - scsi: aacraid: Update driver version to 50834 523 | - 524 | - * hibmc driver does not include "pci:" prefix in bus ID (LP: #1698700) 525 | - - SAUCE: drm: hibmc: Use set_busid function from drm core 526 | - 527 | - * HiSilicon D05: installer doesn't appear on VGA (LP: #1698954) 528 | - - d-i: Add hibmc-drm to kernel-image udeb 529 | - 530 | - * Fix /proc/cpuinfo revision for POWER9 DD2 (LP: #1698844) 531 | - - SAUCE: powerpc: Fix /proc/cpuinfo revision for POWER9 DD2 532 | - 533 | - * Miscellaneous Ubuntu changes 534 | - - [Config] CONFIG_SATA_MV=n and CONFIG_GENERIC_PHY=n for s390x 535 | - - [Config] CONFIG_ATA=n for s390x 536 | - - [Config] Update annotations for 4.12 537 | - 538 | - [ Upstream Kernel Changes ] 539 | - 540 | - * Rebase to v4.12-rc7 541 | - 542 | - -- Seth Forshee Mon, 26 Jun 2017 11:27:29 -0500 543 | - 544 | -linux (4.12.0-3.4) artful; urgency=low 545 | - 546 | - * Miscellaneous upstream changes 547 | - - ufs: fix the logics for tail relocation 548 | - 549 | - [ Upstream Kernel Changes ] 550 | - 551 | - * Rebase to v4.12-rc6 552 | - 553 | - -- Seth Forshee Mon, 19 Jun 2017 14:50:39 -0500 554 | - 555 | -linux (4.12.0-2.3) artful; urgency=low 556 | - 557 | - * CVE-2014-9900 558 | - - SAUCE: (no-up) net: Zeroing the structure ethtool_wolinfo in 559 | - ethtool_get_wol() 560 | - 561 | - * System doesn't boot properly on Gigabyte AM4 motherboards (AMD Ryzen) 562 | - (LP: #1671360) 563 | - - pinctrl/amd: Use regular interrupt instead of chained 564 | - 565 | - * extend-diff-ignore should use exact matches (LP: #1693504) 566 | - - [Packaging] exact extend-diff-ignore matches 567 | - 568 | - * Miscellaneous Ubuntu changes 569 | - - SAUCE: efi: Don't print secure boot state from the efi stub 570 | - - ubuntu: vbox -- Update to 5.1.22-dfsg-1 571 | - - SAUCE: vbox fixes for 4.12 572 | - - Re-enable virtualbox build 573 | - - [Config] CONFIG_ORANGEFS_FS=m 574 | - - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu2, zfs to 0.6.5.9-5ubuntu7 575 | - - Enable zfs build 576 | - 577 | - [ Upstream Kernel Changes ] 578 | - 579 | - * Rebase to v4.12-rc4 580 | - * Rebase to v4.12-rc5 581 | - 582 | - -- Seth Forshee Sun, 11 Jun 2017 22:25:13 -0500 583 | - 584 | -linux (4.12.0-1.2) artful; urgency=low 585 | - 586 | - * Enable Matrox driver for Ubuntu 16.04.3 (LP: #1693337) 587 | - - [Config] Enable CONFIG_DRM_MGAG200 as module 588 | - 589 | - * Support low-pin-count devices on Hisilicon SoCs (LP: #1677319) 590 | - - [Config] CONFIG_LIBIO=y on arm64 only 591 | - - SAUCE: LIBIO: Introduce a generic PIO mapping method 592 | - - SAUCE: OF: Add missing I/O range exception for indirect-IO devices 593 | - - [Config] CONFIG_HISILICON_LPC=y 594 | - - SAUCE: LPC: Support the device-tree LPC host on Hip06/Hip07 595 | - - SAUCE: LIBIO: Support the dynamically logical PIO registration of ACPI host 596 | - I/O 597 | - - SAUCE: LPC: Add the ACPI LPC support 598 | - - SAUCE: PCI: Apply the new generic I/O management on PCI IO hosts 599 | - - SAUCE: PCI: Restore codepath for !CONFIG_LIBIO 600 | - 601 | - * POWER9: Additional patches for TTY and CPU_IDLE (LP: #1674325) 602 | - - SAUCE: tty: Fix ldisc crash on reopened tty 603 | - 604 | - * Miscellaneous Ubuntu changes 605 | - - [Debian] Add build-dep on libnuma-dev to enable 'perf bench numa' 606 | - - Rebase to v4.12-rc3 607 | - 608 | - [ Upstream Kernel Changes ] 609 | - 610 | - * Rebase to v4.12-rc3 611 | - 612 | - -- Seth Forshee Mon, 29 May 2017 20:56:29 -0500 613 | - 614 | -linux (4.12.0-0.1) artful; urgency=low 615 | - 616 | - * please enable CONFIG_ARM64_LSE_ATOMICS (LP: #1691614) 617 | - - [Config] CONFIG_ARM64_LSE_ATOMICS=y 618 | - 619 | - * [Regression] NUMA_BALANCING disabled on arm64 (LP: #1690914) 620 | - - [Config] CONFIG_NUMA_BALANCING{,_DEFAULT_ENABLED}=y on arm64 621 | - 622 | - * exec'ing a setuid binary from a threaded program sometimes fails to setuid 623 | - (LP: #1672819) 624 | - - SAUCE: exec: ensure file system accounting in check_unsafe_exec is correct 625 | - 626 | - * Miscellaneous Ubuntu changes 627 | - - Update find-missing-sauce.sh to compare to artful 628 | - - Update dropped.txt 629 | - - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit 630 | - - SAUCE: (efi-lockdown) Add the ability to lock down access to the running 631 | - kernel image 632 | - - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot 633 | - mode 634 | - - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down 635 | - - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is 636 | - locked down 637 | - - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode 638 | - - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down 639 | - - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec 640 | - reboot 641 | - - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been 642 | - set 643 | - - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down 644 | - - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down 645 | - - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked 646 | - down 647 | - - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is 648 | - locked down 649 | - - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked 650 | - down 651 | - - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel 652 | - is locked down 653 | - - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is 654 | - locked down 655 | - - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel 656 | - has been locked down 657 | - - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is 658 | - locked down 659 | - - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is 660 | - locked down 661 | - - SAUCE: (efi-lockdown) Enable cold boot attack mitigation 662 | - - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the 663 | - kernel is locked down 664 | - - SAUCE: (efi-lockdown) scsi: Lock down the eata driver 665 | - - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked 666 | - down 667 | - - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL 668 | - - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to 669 | - secondary keyring 670 | - - SAUCE: (efi-lockdown) efi: Add EFI signature data types 671 | - - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser 672 | - - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot 673 | - - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed 674 | - - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub 675 | - - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for 676 | - MokSBState 677 | - - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState 678 | - - [Config] Set values for UEFI secure boot lockdown options 679 | - - Disable virtualbox build 680 | - - Disable hio build 681 | - - SAUCE: securityfs: Replace CURRENT_TIME with current_time() 682 | - - Disable zfs build 683 | - - [Debian] Work out upstream tag for use with gen-auto-reconstruct 684 | - - SAUCE: Import aufs driver 685 | - - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h 686 | - - [Config] Enable aufs 687 | - - SAUCE: perf callchain: Include errno.h on x86 unconditinally 688 | - 689 | - [ Upstream Kernel Changes ] 690 | - 691 | - * Rebase to v4.12-rc2 692 | - 693 | - -- Seth Forshee Sun, 21 May 2017 23:44:44 -0500 694 | - 695 | -linux (4.11.0-3.8) artful; urgency=low 696 | - 697 | - [ Seth Forshee ] 698 | - 699 | - * Release Tracking Bug 700 | - - LP: #1690999 701 | - 702 | - * apparmor_parser hangs indefinitely when called by multiple threads 703 | - (LP: #1645037) 704 | - - SAUCE: apparmor: fix lock ordering for mkdir 705 | - 706 | - * apparmor leaking securityfs pin count (LP: #1660846) 707 | - - SAUCE: apparmor: fix leak on securityfs pin count 708 | - 709 | - * apparmor reference count leak when securityfs_setup_d_inode\ () fails 710 | - (LP: #1660845) 711 | - - SAUCE: apparmor: fix reference count leak when securityfs_setup_d_inode() 712 | - fails 713 | - 714 | - * apparmor not checking error if security_pin_fs() fails (LP: #1660842) 715 | - - SAUCE: apparmor: fix not handling error case when securityfs_pin_fs() fails 716 | - 717 | - * libvirt profile is blocking global setrlimit despite having no rlimit rule 718 | - (LP: #1679704) 719 | - - SAUCE: apparmor: fix complain mode failure for rlimit mediation 720 | - - apparmor: update auditing of rlimit check to provide capability information 721 | - 722 | - * apparmor: does not provide a way to detect policy updataes (LP: #1678032) 723 | - - SAUCE: apparmor: add policy revision file interface 724 | - 725 | - * apparmor does not make support of query data visible (LP: #1678023) 726 | - - SAUCE: apparmor: add label data availability to the feature set 727 | - 728 | - * apparmor query interface does not make supported query info available 729 | - (LP: #1678030) 730 | - - SAUCE: apparmor: add information about the query inteface to the feature set 731 | - 732 | - * change_profile incorrect when using namespaces with a compound stack 733 | - (LP: #1677959) 734 | - - SAUCE: apparmor: fix label parse for stacked labels 735 | - 736 | - * Regression in 4.4.0-65-generic causes very frequent system crashes 737 | - (LP: #1669611) 738 | - - apparmor: sync of apparmor 3.6+ (17.04) 739 | - 740 | - * Artful update to 4.11.1 stable release (LP: #1690814) 741 | - - dm ioctl: prevent stack leak in dm ioctl call 742 | - - drm/sti: fix GDP size to support up to UHD resolution 743 | - - power: supply: lp8788: prevent out of bounds array access 744 | - - brcmfmac: Ensure pointer correctly set if skb data location changes 745 | - - brcmfmac: Make skb header writable before use 746 | - - sparc64: fix fault handling in NGbzero.S and GENbzero.S 747 | - - refcount: change EXPORT_SYMBOL markings 748 | - - net: macb: fix phy interrupt parsing 749 | - - tcp: fix access to sk->sk_state in tcp_poll() 750 | - - geneve: fix incorrect setting of UDP checksum flag 751 | - - bpf: enhance verifier to understand stack pointer arithmetic 752 | - - bpf, arm64: fix jit branch offset related to ldimm64 753 | - - tcp: fix wraparound issue in tcp_lp 754 | - - net: ipv6: Do not duplicate DAD on link up 755 | - - net: usb: qmi_wwan: add Telit ME910 support 756 | - - tcp: do not inherit fastopen_req from parent 757 | - - ipv4, ipv6: ensure raw socket message is big enough to hold an IP header 758 | - - rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string 759 | - - ipv6: initialize route null entry in addrconf_init() 760 | - - ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf 761 | - - tcp: randomize timestamps on syncookies 762 | - - bnxt_en: allocate enough space for ->ntp_fltr_bmap 763 | - - bpf: don't let ldimm64 leak map addresses on unprivileged 764 | - - net: mdio-mux: bcm-iproc: call mdiobus_free() in error path 765 | - - f2fs: sanity check segment count 766 | - - xen/arm,arm64: fix xen_dma_ops after 815dd18 "Consolidate get_dma_ops..." 767 | - - xen: Revert commits da72ff5bfcb0 and 72a9b186292d 768 | - - block: get rid of blk_integrity_revalidate() 769 | - - Linux 4.11.1 770 | - 771 | - * Module signing exclusion for staging drivers does not work properly 772 | - (LP: #1690908) 773 | - - SAUCE: Fix module signing exclusion in package builds 774 | - 775 | - * perf: qcom: Add L3 cache PMU driver (LP: #1689856) 776 | - - [Config] CONFIG_QCOM_L3_PMU=y 777 | - - perf: qcom: Add L3 cache PMU driver 778 | - 779 | - * No PMU support for ACPI-based arm64 systems (LP: #1689661) 780 | - - drivers/perf: arm_pmu: rework per-cpu allocation 781 | - - drivers/perf: arm_pmu: manage interrupts per-cpu 782 | - - drivers/perf: arm_pmu: split irq request from enable 783 | - - drivers/perf: arm_pmu: remove pointless PMU disabling 784 | - - drivers/perf: arm_pmu: define armpmu_init_fn 785 | - - drivers/perf: arm_pmu: fold init into alloc 786 | - - drivers/perf: arm_pmu: factor out pmu registration 787 | - - drivers/perf: arm_pmu: simplify cpu_pmu_request_irqs() 788 | - - drivers/perf: arm_pmu: handle no platform_device 789 | - - drivers/perf: arm_pmu: rename irq request/free functions 790 | - - drivers/perf: arm_pmu: split cpu-local irq request/free 791 | - - drivers/perf: arm_pmu: move irq request/free into probe 792 | - - drivers/perf: arm_pmu: split out platform device probe logic 793 | - - arm64: add function to get a cpu's MADT GICC table 794 | - - [Config] CONFIG_ARM_PMU_ACPI=y 795 | - - drivers/perf: arm_pmu: add ACPI framework 796 | - - arm64: pmuv3: handle !PMUv3 when probing 797 | - - arm64: pmuv3: use arm_pmu ACPI framework 798 | - 799 | - * Fix NVLINK2 TCE route (LP: #1690155) 800 | - - powerpc/powernv: Fix TCE kill on NVLink2 801 | - 802 | - * CVE-2017-0605 803 | - - tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline() 804 | - 805 | - * Miscellaneous Ubuntu changes 806 | - - [Config] Restore powerpc arch to annotations file 807 | - - [Config] Disable runtime testing modules 808 | - - [Config] Disable drivers not needed on s390x 809 | - - [Config] Update annotations for 4.11 810 | - - [Config] updateconfigs after apparmor updates 811 | - 812 | - * Miscellaneous upstream changes 813 | - - apparmor: use SHASH_DESC_ON_STACK 814 | - - apparmor: fix invalid reference to index variable of iterator line 836 815 | - - apparmor: fix parameters so that the permission test is bypassed at boot 816 | - - apparmor: Make path_max parameter readonly 817 | - - apparmorfs: Combine two function calls into one in aa_fs_seq_raw_abi_show() 818 | - - apparmorfs: Use seq_putc() in two functions 819 | - - apparmor: provide information about path buffer size at boot 820 | - - apparmor: add/use fns to print hash string hex value 821 | - 822 | - -- Seth Forshee Tue, 16 May 2017 00:39:13 -0500 823 | - 824 | -linux (4.11.0-2.7) artful; urgency=low 825 | - 826 | - * kernel-wedge fails in artful due to leftover squashfs-modules d-i files 827 | - (LP: #1688259) 828 | - - Remove squashfs-modules files from d-i 829 | - - [Config] as squashfs-modules is builtin kernel-image must Provides: it 830 | - 831 | - * [Zesty] d-i: replace msm_emac with qcom_emac (LP: #1677297) 832 | - - Revert "UBUNTU: d-i: initrd needs msm_emac on amberwing platform." 833 | - - d-i: initrd needs qcom_emac on amberwing platform. 834 | - 835 | - * update for V3 kernel bits and improved multiple fan slice support 836 | - (LP: #1470091) 837 | - - SAUCE: fan: tunnel multiple mapping mode (v3) 838 | - 839 | - * Miscellaneous Ubuntu changes 840 | - - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu1, zfs to 0.6.5.9-5ubuntu5 841 | - - Enable zfs 842 | - - SAUCE: fan: add VXLAN implementation 843 | - - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit 844 | - - SAUCE: (efi-lockdown) Add the ability to lock down access to the running 845 | - kernel image 846 | - - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot 847 | - mode 848 | - - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down 849 | - - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is 850 | - locked down 851 | - - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode 852 | - - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down 853 | - - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec 854 | - reboot 855 | - - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been 856 | - set 857 | - - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down 858 | - - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down 859 | - - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked 860 | - down 861 | - - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is 862 | - locked down 863 | - - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked 864 | - down 865 | - - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel 866 | - is locked down 867 | - - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is 868 | - locked down 869 | - - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel 870 | - has been locked down 871 | - - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is 872 | - locked down 873 | - - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is 874 | - locked down 875 | - - SAUCE: (efi-lockdown) Enable cold boot attack mitigation 876 | - - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the 877 | - kernel is locked down 878 | - - SAUCE: (efi-lockdown) scsi: Lock down the eata driver 879 | - - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked 880 | - down 881 | - - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL 882 | - - SAUCE: (efi-lockdown) Add EFI signature data types 883 | - - SAUCE: (efi-lockdown) Add an EFI signature blob parser and key loader. 884 | - - SAUCE: (efi-lockdown) KEYS: Add a system blacklist keyring 885 | - - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot 886 | - - SAUCE: (efi-lockdown) MODSIGN: Support not importing certs from db 887 | - - SAUCE: (efi-lockdown) MODSIGN: Don't try secure boot if EFI runtime is 888 | - disabled 889 | - - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub 890 | - - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for 891 | - MokSBState 892 | - - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState 893 | - - [Config] Set values for UEFI secure boot lockdown options 894 | - - Update dropped.txt 895 | - 896 | - [ Upstream Kernel Changes ] 897 | - 898 | - * rebase to v4.11 899 | - 900 | - -- Seth Forshee Fri, 05 May 2017 07:43:14 -0500 901 | - 902 | -linux (4.11.0-1.6) artful; urgency=low 903 | - 904 | - * Miscellaneous Ubuntu changes 905 | - - [Debian] Use default compression for all packages 906 | - - SAUCE: (namespace) block_dev: Support checking inode permissions in 907 | - lookup_bdev() 908 | - - SAUCE: (namespace) block_dev: Check permissions towards block device inode 909 | - when mounting 910 | - - SAUCE: (namespace) mtd: Check permissions towards mtd block device inode 911 | - when mounting 912 | - - SAUCE: (namespace) fs: Allow superblock owner to change ownership of inodes 913 | - - SAUCE: (namespace) fs: Don't remove suid for CAP_FSETID for userns root 914 | - - SAUCE: (namespace) fs: Allow superblock owner to access do_remount_sb() 915 | - - SAUCE: (namespace) capabilities: Allow privileged user in s_user_ns to set 916 | - security.* xattrs 917 | - - SAUCE: (namespace) fs: Allow CAP_SYS_ADMIN in s_user_ns to freeze and thaw 918 | - filesystems 919 | - - SAUCE: (namespace) fuse: Add support for pid namespaces 920 | - - SAUCE: (namespace) fuse: Support fuse filesystems outside of init_user_ns 921 | - - SAUCE: (namespace) fuse: Restrict allow_other to the superblock's namespace 922 | - or a descendant 923 | - - SAUCE: (namespace) fuse: Allow user namespace mounts 924 | - - SAUCE: (namespace) ext4: Add support for unprivileged mounts from user 925 | - namespaces 926 | - - SAUCE: (namespace) evm: Don't update hmacs in user ns mounts 927 | - - SAUCE: (namespace) ext4: Add module parameter to enable user namespace 928 | - mounts 929 | - - SAUCE: (namespace) block_dev: Forbid unprivileged mounting when device is 930 | - opened for writing 931 | - 932 | - -- Seth Forshee Wed, 26 Apr 2017 10:08:29 -0500 933 | - 934 | -linux (4.11.0-0.5) artful; urgency=low 935 | - 936 | - * [Hyper-V][SAUCE] pci-hyperv: Use only 16 bit integer for PCI domain 937 | - (LP: #1684971) 938 | - - SAUCE: pci-hyperv: Use only 16 bit integer for PCI domain 939 | - 940 | - * [Hyper-V] Ubuntu 14.04.2 LTS Generation 2 SCSI Errors on VSS Based Backups 941 | - (LP: #1470250) 942 | - - SAUCE: Tools: hv: vss: Thaw the filesystem and continue after freeze fails 943 | - 944 | - * Enable virtual scsi server driver for Power (LP: #1615665) 945 | - - SAUCE: Return TCMU-generated sense data to fabric module 946 | - 947 | - * include/linux/security.h header syntax error with !CONFIG_SECURITYFS 948 | - (LP: #1630990) 949 | - - SAUCE: (no-up) include/linux/security.h -- fix syntax error with 950 | - CONFIG_SECURITYFS=n 951 | - 952 | - * Miscellaneous Ubuntu changes 953 | - - SAUCE: Import aufs driver 954 | - - [Config] Enable aufs 955 | - - [Debian] Add script to update virtualbox 956 | - - ubuntu: vbox -- Update to 5.1.20-dfsg-2 957 | - - Enable vbox 958 | - - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h 959 | - 960 | - [ Upstream Kernel Changes ] 961 | - 962 | - * rebase to v4.11-rc8 963 | - 964 | - -- Seth Forshee Tue, 25 Apr 2017 13:42:54 -0500 965 | - 966 | -linux (4.11.0-0.4) zesty; urgency=low 967 | - 968 | - * POWER9: Improve performance on memory management (LP: #1681429) 969 | - - SAUCE: powerpc/mm/radix: Don't do page walk cache flush when doing full mm 970 | - flush 971 | - - SAUCE: powerpc/mm/radix: Remove unnecessary ptesync 972 | - 973 | - * Miscellaneous Ubuntu changes 974 | - - find-missing-sauce.sh 975 | - 976 | - [ Upstream Kernel Changes ] 977 | - 978 | - * rebase to v4.11-rc7 979 | - 980 | - -- Seth Forshee Tue, 18 Apr 2017 08:19:43 -0500 981 | - 982 | -linux (4.11.0-0.3) zesty; urgency=low 983 | - 984 | - * Disable CONFIG_HVC_UDBG on ppc64el (LP: #1680888) 985 | - - [Config] Disable CONFIG_HVC_UDBG on ppc64el 986 | - 987 | - * smartpqi driver needed in initram disk and installer (LP: #1680156) 988 | - - [Config] Add smartpqi to d-i 989 | - 990 | - * Disable CONFIG_SECURITY_SELINUX_DISABLE (LP: #1680315) 991 | - - [Config] CONFIG_SECURITY_SELINUX_DISABLE=n 992 | - 993 | - * Miscellaneous Ubuntu changes 994 | - - [Config] flash-kernel should be a Breaks 995 | - - [Config] drop the info directory 996 | - - [Config] drop NOTES as obsolete 997 | - - [Config] drop changelog.historical as obsolete 998 | - - rebase to v4.11-rc6 999 | - 1000 | - [ Upstream Kernel Changes ] 1001 | - 1002 | - * rebase to v4.11-rc6 1003 | - 1004 | - -- Tim Gardner Tue, 11 Apr 2017 07:16:52 -0600 1005 | - 1006 | -linux (4.11.0-0.2) zesty; urgency=low 1007 | - 1008 | - [ Upstream Kernel Changes ] 1009 | - 1010 | - * rebase to v4.11-rc5 1011 | - 1012 | - -- Tim Gardner Mon, 03 Apr 2017 08:26:07 +0100 1013 | - 1014 | -linux (4.11.0-0.1) zesty; urgency=low 1015 | - 1016 | - [ Upstream Kernel Changes ] 1017 | - 1018 | - * rebase to v4.11-rc4 1019 | - - LP: #1591053 1020 | - 1021 | - -- Tim Gardner Mon, 20 Mar 2017 05:15:32 -0600 1022 | - 1023 | -linux (4.11.0-0.0) zesty; urgency=low 1024 | - 1025 | - * dummy entry 1026 | - 1027 | - -- Tim Gardner Mon, 20 Mar 2017 05:15:32 -0600 1028 | -- 1029 | 2.7.4 1030 | 1031 | --------------------------------------------------------------------------------