-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
etc/default/pop-zram | ||
usr/bin/pop-zram-config |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
[Unit] | ||
Description=Auto-configure and enable zram on Pop | ||
|
||
[Service] | ||
Type=oneshot | ||
ExecStart=/usr/bin/pop-zram-config | ||
|
||
[Install] | ||
WantedBy=multi-user.target |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,47 @@ | ||
etc | ||
lib | ||
usr | ||
etc/apt/apt.conf.d/76pop-default-settings | ||
etc/apt/preferences.d/pop-default-settings | ||
etc/chrony/conf.d/10-system76-nts.conf | ||
etc/chrony/sources.d/system76-nts.sources | ||
etc/modules-load.d/pop-modules.conf | ||
etc/pop-os/flatpak/flathub.flatpakrepo | ||
etc/pop-os/gdm3/custom.conf | ||
etc/pop-os/issue | ||
etc/pop-os/issue.net | ||
etc/pop-os/legal | ||
etc/pop-os/lsb-release | ||
etc/pop-os/os-release | ||
etc/pop-os/update-motd.d/10-help-text | ||
etc/pop-os/update-motd.d/50-motd-news | ||
etc/profile.d/pop-im-ibus.sh | ||
etc/sysctl.d/10-pop-default-settings.conf | ||
etc/update-manager/release-upgrades.d/pop-default-settings.cfg | ||
etc/xdg/autostart/pop-app-folders.desktop | ||
etc/xdg/autostart/pop-flatpak-repos.desktop | ||
lib/systemd/system-sleep/pop-default-settings_bluetooth-suspend | ||
lib/udev/rules.d/60-block-pop.rules | ||
usr/bin/pop-app-folders | ||
usr/bin/pop-cosmic-favorites | ||
usr/bin/pop-flatpak-repos | ||
usr/lib/firefox/browser/defaults/preferences/pop-default-settings.js | ||
usr/lib/firefox/defaults/pref/pop-default-settings.js | ||
usr/lib/systemd/journald.conf.d/pop.conf | ||
usr/share/applications/pop-mimeapps.list | ||
usr/share/gtksourceview-3.0/styles/pop-dark.xml | ||
usr/share/gtksourceview-3.0/styles/pop-light.xml | ||
usr/share/gtksourceview-4/styles/pop-dark.xml | ||
usr/share/gtksourceview-4/styles/pop-light.xml | ||
usr/share/icons/pop-os-branding/256x256/apps/ubuntu-logo-icon.png | ||
usr/share/icons/pop-os-branding/index.theme | ||
usr/share/icons/pop-os-branding/pop_icon.svg | ||
usr/share/icons/pop-os-branding/round-logos/16/distributor-logo.svg | ||
usr/share/icons/pop-os-branding/round-logos/16/ubuntu-logo-icon.svg | ||
usr/share/icons/pop-os-branding/round-logos/22/distributor-logo.svg | ||
usr/share/icons/pop-os-branding/round-logos/24/distributor-logo.svg | ||
usr/share/icons/pop-os-branding/round-logos/32/distributor-logo.svg | ||
usr/share/icons/pop-os-branding/round-logos/48/distributor-logo.svg | ||
usr/share/icons/pop-os-branding/round-logos/64/distributor-logo.svg | ||
usr/share/pipewire/media-session.d/with-alsa | ||
usr/share/pipewire/media-session.d/with-jack | ||
usr/share/pipewire/media-session.d/with-pulseaudio | ||
usr/share/pixmaps/faces/pop-robot.png | ||
usr/share/X11/xorg.conf.d/10-pop-dpms.conf |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,4 @@ | ||
#!/usr/bin/make -f | ||
|
||
override_dh_installdeb: | ||
dh_installdeb | ||
cp debian/conffiles debian/pop-default-settings/DEBIAN/conffiles | ||
|
||
%: | ||
dh $@ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Default to 16384M as max zram block size. | ||
MAX_SIZE=16384 | ||
# Amount of memory to use for zram, from 1 to 200. | ||
PORTION=100 | ||
# Default to compress with zstd, which has an average compression ratio of 3.37. | ||
ALGO=zstd | ||
# Higher values encourage the kernel to be more eager to move pages to swap. | ||
SWAPPINESS=180 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
vm.swappiness = 10 | ||
vm.watermark_boost_factor=0 | ||
vm.watermark_scale_factor = 125 | ||
vm.dirty_bytes = 268435456 | ||
vm.dirty_background_bytes = 134217728 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#!/bin/bash | ||
# Copyright 2022 System76 <info@system76.com> | ||
# SPDX-License-Identifier: GPL-3.0-only | ||
|
||
# If a zram device already exists, ignore | ||
test -b /dev/zram0 && exit 0 | ||
|
||
ENV_CONF='/etc/pop-zram' | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
kwilczynski
|
||
|
||
# Load user-defined variabls if a config exists | ||
if test -f ${ENV_CONF}; then | ||
export $(grep -v '^#' ${ENV_CONF} | xargs) | ||
fi | ||
|
||
# Default to compress with zstd, which has an average compression ratio of 3.37. | ||
test -n "${ALGO}" || ALGO=zstd | ||
|
||
# Max amount of uncompressed RAM that should be compressed. | ||
test -n "${MAX_SIZE}" || MAX_SIZE=16384 | ||
|
||
# Higher values encourage the kernel to be more eager to move pages to swap. | ||
test -n "${SWAPPINESS}" || SWAPPINESS=180 | ||
|
||
# Amount of memory to use for zram, from 1 to 200 | ||
test -n "${PORTION}" || PORTION=100 | ||
|
||
if ((PORTION > 200)); then | ||
PORTION=200 | ||
elif ((PORTION < 1)); then | ||
PORTION=1 | ||
fi | ||
|
||
# Number of consecutive pages to read in advance. Higher values increase compression | ||
# for zram devices, but at the cost of significantly reduced IOPS and higher latency. | ||
# It is highly recommended to use 0 for zstd; and 1 for speedier algorithms. | ||
test -n "${PAGE_CLUSTERS}" || PAGE_CLUSTERS=$(test zstd = ${ALGO} && echo 0 || echo 1) | ||
|
||
# Total amount of memory accessible to the OS. | ||
TOTAL=$(awk -v p=${PORTION} '/MemTotal/ {printf "%.0f", p * $2 / 102400}' /proc/meminfo) | ||
|
||
# Ensure that the size is not greater than the max size. | ||
SIZE=$(((TOTAL > MAX_SIZE)) && echo ${MAX_SIZE} || echo ${TOTAL}) | ||
|
||
# Load the zram module. | ||
modprobe zram num_devices=1 | ||
udevadm settle -t 1 | ||
|
||
# Create it with our desired size and compression algorithm | ||
zramctl --size "${SIZE}M" --algorithm "${ALGO}" /dev/zram0 | ||
|
||
# Format it as a swap partition | ||
mkswap /dev/zram0 | ||
udevadm settle -t 1 | ||
|
||
# Activate the zram device with a priority of 1000. | ||
# This device should have a higher priority than disk-based swap. | ||
swapon -p 1000 /dev/zram0 | ||
|
||
# Apply optimal sysctl values for the zram environment. | ||
sysctl -w "vm.page-cluster=${PAGE_CLUSTERS}" "vm.swappiness=${SWAPPINESS}" | ||
|
||
# Ensure at least 1% of total memory is free to avoid system freeze. | ||
MINIMUM=$(awk '/MemTotal/ {printf "%.0f", $2 * 0.01}' /proc/meminfo) | ||
CURRENT=$(sysctl vm.min_free_kbytes | awk '{print $3}') | ||
if ((MINIMUM > CURRENT)); then | ||
sysctl -w "vm.min_free_kbytes=${MINIMUM}" | ||
fi |
@mmstick, just to double-check: did you meant to use
/etc/default/pop-zram
path here instead?