Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit dadfbf6
Author: Uri Herrera <[email protected]>
Date:   Mon Nov 4 19:54:55 2024 -0600

    Update changelog

commit c3822cc
Author: Uri Herrera <[email protected]>
Date:   Mon Nov 4 19:09:48 2024 -0600

    add chks since it's likely these

    files for xone already exist and they don't need to be updated for the driver to build

commit c77e87f
Author: Uri Herrera <[email protected]>
Date:   Mon Nov 4 18:56:22 2024 -0600

    *sigh*  fkn sigh

commit 32c081a
Author: Uri Herrera <[email protected]>
Date:   Mon Nov 4 18:42:23 2024 -0600

    change appimage url

commit f71617a
Author: Uri Herrera <[email protected]>
Date:   Mon Nov 4 18:17:04 2024 -0600

    chk if it's needed to rebuild dkms drivers

commit 5fd7a38
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 17:03:29 2024 -0600

    rm xone dir and dl it again

commit 648bb93
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 16:29:33 2024 -0600

    ...

commit d1a69f7
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 16:27:37 2024 -0600

    ensure the xone driver file  is

    put in the correct directory

    Also, silence dkms output unless there's errors

commit f04bf9f
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 16:06:11 2024 -0600

    change  msgs

commit 418abdc
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 16:04:44 2024 -0600

    improve the logic to check for dkms modules to buildm again

commit 511a397
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 15:35:29 2024 -0600

    improve the logic to check for dkms modules to build

commit 47ef1bc
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 15:07:37 2024 -0600

    fix func to find latest kernel t build dkms

    modules

commit 81bdb64
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 14:44:34 2024 -0600

    sigh...

commit f37774d
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 06:03:12 2024 -0600

    force a rebuild of all DKMS modules for each kernel

commit 674b499
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 05:49:35 2024 -0600

    mv this here

commit f0c1e52
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 05:47:41 2024 -0600

    dl xone fixed file

commit 78f8f04
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 05:39:15 2024 -0600

    it's always the simplest solution

    the fkn sorting order in /etc/grub.d/10_linux is *WRONG*

commit ff5cb0e
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 05:03:43 2024 -0600

    don't rm old kernels

    ¯\_(ツ)_/¯

commit 26f78d5
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 04:50:22 2024 -0600

    looks like a fix

    use find instead of rm to delete the files

commit 8b605af
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 04:36:06 2024 -0600

    chk file contents

commit 8c3ff63
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 04:34:59 2024 -0600

    fix grub.cfg path

commit 216740a
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 04:23:32 2024 -0600

    chk if deleting grub.cfg has any effect

commit 7a63903
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 03:54:00 2024 -0600

    test rebuilding dkms modules

    for the kernel available in /boo which should be only one, the newest we're adding

commit e577123
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 03:43:55 2024 -0600

    Revert "don't run uninstall script for xone"

    This reverts commit d3660ca.

commit d3660ca
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 03:31:57 2024 -0600

    don't run uninstall script for xone

commit dc0adaa
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 02:40:04 2024 -0600

    change file to check when restoring

    add service to runlevel when updating

commit 41d4cd5
Author: Uri Herrera <[email protected]>
Date:   Sun Nov 3 00:52:08 2024 -0600

    change the order of installation

    of the xone and xpadneo dkms drivers

commit 0688583
Author: Uri Herrera <[email protected]>
Date:   Sat Nov 2 16:52:27 2024 -0600

    rm duplicate kernel params

    sort params alphabetically, replaces cmd substitution for array assignments with mapfile to handle multi-line outputs safely.

commit 1ee4c91
Author: Uri Herrera <[email protected]>
Date:   Sat Nov 2 14:08:46 2024 -0600

    show update-grub output

commit 1df57e8
Author: Uri Herrera <[email protected]>
Date:   Sat Nov 2 06:17:15 2024 -0600

    enchance  nuts-ccu

    to handle case-sensitive cases, partial matching for sub-params, add logic to remove duplicates

commit d88b2ce
Author: Uri Herrera <[email protected]>
Date:   Sat Nov 2 06:08:17 2024 -0600

    add new kernel params to existing grub config

commit 54f0eb8
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 20:25:00 2024 -0600

    ...

commit 7f1a421
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 19:56:45 2024 -0600

    rm sudo

    godfkndmt

commit 0ab1d1e
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 19:29:38 2024 -0600

    run xone and xpadneon scripts

    to update the drivers

commit 5d2fe13
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 19:14:02 2024 -0600

    rm older kernel when updating

commit c1da2c5
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 18:52:52 2024 -0600

    mount /var/lib for update-grub

commit eacc51f
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 18:38:28 2024 -0600

    chk ota

    ffs

commit db963da
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 18:09:26 2024 -0600

    chk ota

commit 58e12a9
Author: Uri Herrera <[email protected]>
Date:   Thu Oct 31 17:48:50 2024 -0600

    chk ota

commit 451d41f
Author: Uri Herrera <[email protected]>
Date:   Mon Oct 21 16:11:41 2024 -0600

    ...

commit d9f91a0
Author: Uri Herrera <[email protected]>
Date:   Mon Oct 21 16:11:17 2024 -0600

    ensure xone and xpadneo are built

    when a new kernel is added
  • Loading branch information
UriHerrera committed Nov 5, 2024
1 parent 1c65542 commit 0987869
Show file tree
Hide file tree
Showing 5 changed files with 251 additions and 15 deletions.
10 changes: 10 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
nuts (2.1.8) nitrux; urgency=medium

* Ensure dkms builds xone for the newer kernel.
* Ensure new kernel parameters are added to the GRUB menu.
* Ensure the newest kernel is used for the defaul boot entry.
* Mount /var/lib in chroot for update-grub to work correctly.
* Fix problem when restoring due to checking for a non-existen file.

-- Uri Herrera <[email protected]> Mon, 04 Nov 2024 19:54:00 -0500

nuts (2.1.7) nitrux; urgency=medium

* Fix typo in branch flag.
Expand Down
227 changes: 219 additions & 8 deletions tmp/nuts-ccu
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ mkdir -p /etc/runlevels/async && rc-update add -s async default

$(which cp) /etc/init.d/{acpi-support,acpid,console-setup.sh,dbus,debugfs-mount-openrc,elogind,fprintd-openrc,mountbinds,network-manager,nohang-desktop-openrc,ntpsec-openrc,plymouth-openrc,powertop-openrc,rmnologin,sddm,sudo,tlp,uuidd} /etc/runlevels/default/ || true

$(which cp) /etc/init.d/{avahi-daemon-openrc,bluez-meshd-openrc,bluez-obexd-openrc,bluez-openrc,cron,cups,irqbalance,nmbd,preload,rsyslog-openrc,smbd,thp-settings,usbmuxd-openrc} /etc/runlevels/async/ || true
$(which cp) /etc/init.d/{avahi-daemon-openrc,bcm-drv,bluez-meshd-openrc,bluez-obexd-openrc,bluez-openrc,cron,cups,irqbalance,nmbd,preload,rsyslog-openrc,smbd,thp-settings,usbmuxd-openrc} /etc/runlevels/async/ || true

# $(which cp) /etc/init.d/rc.local /etc/runlevels/nonetwork/local || true

Expand Down Expand Up @@ -310,6 +310,13 @@ else
fi


# -- FIX upstream's BUG in 10_linux!.

sed -i "s/reverse_sorted_list=.*/reverse_sorted_list=\$(echo \"\$list\" | tr ' ' '\\n' | sort -Vr)/" /etc/grub.d/10_linux


puts_success "Success! misc. and configuration files have been updated, continuing..."

######################################################
# End of misc-fixes and edit-conf from iso-tool #
######################################################
Expand All @@ -319,7 +326,41 @@ fi
# These are changes introduced in the new release. #
#######################################################

puts_success "Success! misc. and configuration files have been updated, continuing..."
puts_info "Applying changes introduced in the new release, continuing..."

# -- Ensure that xone is built with DKMS with kernels newer than 6.11.
# -- The driver version from upstream builds up to kernel 6.10, so we need to remove that and download the fork.

VERSION="unknown"
SOURCE_DIR="/usr/src/xone-$VERSION"
LOG_FILE="/var/lib/dkms/xone/$VERSION/build/make.log"
REPO_URL="https://github.com/tskaar/xone.git"
BRANCH="fix-6.12"

LATEST_KERNEL=$(find /boot -name 'vmlinuz-*' -exec basename {} \; | cut -d- -f2- | sort -V | tail -n 1)

rm -rf "$SOURCE_DIR"

git clone -b "$BRANCH" --single-branch "$REPO_URL" "$SOURCE_DIR" || {
echo "Failed to clone repository." >&2
exit 1
}

if dkms install -m xone -v "$VERSION" -k "$LATEST_KERNEL"; then
[ ! -f /etc/modprobe.d/xone-blacklist.conf ] && install -D -m 644 "$SOURCE_DIR/install/modprobe.conf" /etc/modprobe.d/xone-blacklist.conf
[ ! -f /usr/local/bin/xone-get-firmware.sh ] && install -D -m 755 "$SOURCE_DIR/install/firmware.sh" /usr/local/bin/xone-get-firmware.sh

for MODULE in xpad mt76x2u; do
if lsmod | grep -q "^$MODULE"; then
modprobe -r "$MODULE"
fi
done
else
[ -r "$LOG_FILE" ] && cat "$LOG_FILE" >&2
exit 1
fi

puts_success "Success! new changes applied to the system, continuing..."


######################################################
Expand Down Expand Up @@ -362,20 +403,190 @@ puts_success "System AppImages and static binaries have been updated, continuing
# End of update AppImages and static binaries #
####################################################

# -- Update the initramfs.

# -- Link kernel image to newer kernel.
update-initramfs -c -k all

#<!> -- Remove code since we're not including the kernel in the archive, and we expect users to use Kernel Boot to add other kenels. -- <!>

# -- Update GRUB.
# -- Whenever we add new parameters, ensure that these are added to existing installations.

GRUB_FILE="/etc/default/grub"
BACKUP_FILE="/etc/default/grub.bak"

REQUIRED_PARAMS=(
"amdgpu.cik_support=1"
"amdgpu.ppfeaturemask=0xffffffff"
"amdgpu.si_support=1"
"amdgpu.vm_update_mode=3"
"apparmor=1"
"cfi=kcfi"
"hardened_usercopy=1"
"hpet=disable"
"init_on_free=1"
"intel_pstate=enable"
"libahci.ignore_sss=1"
"modprobe.blacklist=iTCO_wdt"
"modprobe.blacklist=sp5100_tco"
"nosgx"
"nvidia_drm.modeset=1"
"nvme_core.multipath=Y"
"overlayroot=tmpfs:swap=1,recurse=0"
"page_alloc.shuffle=1"
"quiet"
"radeon.cik_support=0"
"radeon.si_support=0"
"randomize_kstack_offset=on"
"rcu_nocbs=all"
"rcupdate.rcu_expedited=1"
"rcutree.enable_rcu_lazy=1"
"security=apparmor"
"slab_nomerge"
"slub_debug=FZ"
"usbcore.autosuspend=-1"
"vdso32=0"
"vsyscall=none"
"zswap.compressor=zstd"
"zswap.enabled=1"
"zswap.max_pool_percent=20"
"zswap.zpool=zsmalloc"
"splash"
)

# -- Update the initramfs.
param_exists() {
local target_lower
target_lower=$(echo "$1" | tr '[:upper:]' '[:lower:]')
local existing_lower
for existing_param in "${unique_params[@]}"; do
existing_lower=$(echo "$existing_param" | tr '[:upper:]' '[:lower:]')
if [[ "$existing_lower" == "$target_lower" ]]; then
return 0
fi
done
return 1
}

update-initramfs -c -k all
handle_modprobe_blacklist() {
local required_param="$1"
local key="modprobe.blacklist="
if [[ "$required_param" == $key* ]]; then
local module
module=$(echo "$required_param" | cut -d'=' -f2)
local existing_entry=""
for i in "${!unique_params[@]}"; do
if [[ "${unique_params[i],,}" == modprobe.blacklist=* ]]; then
existing_entry="${unique_params[i]}"
break
fi
done
if [ -n "$existing_entry" ]; then
local modules
modules=$(echo "$existing_entry" | cut -d'=' -f2)
IFS=',' read -r -a existing_modules <<< "$modules"
local module_found=false
for em in "${existing_modules[@]}"; do
if [[ "${em,,}" == "${module,,}" ]]; then
module_found=true
break
fi
done
if [ "$module_found" = false ]; then
existing_modules+=("$module")
unique_params=("${unique_params[@]/$existing_entry/}")
unique_params+=("modprobe.blacklist=$(IFS=, ; echo "${existing_modules[*]}")")
fi
else
unique_params+=("$required_param")
fi
else
if ! param_exists "$required_param"; then
unique_params+=("$required_param")
fi
fi
}

if [ ! -f "$GRUB_FILE" ]; then
puts_error "$GRUB_FILE not found, quitting."
exit 1
fi

# -- Update GRUB.
cp "$GRUB_FILE" "$BACKUP_FILE"

current_line=$(grep '^GRUB_CMDLINE_LINUX_DEFAULT=' "$GRUB_FILE" || true)

if [ -n "$current_line" ]; then
current_params=$(echo "$current_line" | sed -E 's/GRUB_CMDLINE_LINUX_DEFAULT="(.*)"/\1/')
read -r -a param_array <<< "$current_params"

unique_params=()
for param in "${param_array[@]}"; do
param_lower=$(echo "$param" | tr '[:upper:]' '[:lower:]')
found=false
for up in "${unique_params[@]}"; do
up_lower=$(echo "$up" | tr '[:upper:]' '[:lower:]')
if [[ "$up_lower" == "$param_lower" ]]; then
found=true
break
fi
done
if [ "$found" = false ]; then
unique_params+=("$param")
fi
done

modprobe_blacklist_modules=()
for param in "${unique_params[@]}"; do
if [[ "${param,,}" == modprobe.blacklist=* ]]; then
IFS=',' read -r -a modules <<< "${param#*=}"
for m in "${modules[@]}"; do
modprobe_blacklist_modules+=("$m")
done
fi
done

mapfile -t unique_params < <(printf '%s\n' "${unique_params[@]//modprobe.blacklist=*/}" | grep -v '^$')

for req_param in "${REQUIRED_PARAMS[@]}"; do
if [[ "$req_param" == modprobe.blacklist=* ]]; then
module=$(echo "$req_param" | cut -d'=' -f2)
modprobe_blacklist_modules+=("$module")
fi
done

mapfile -t unique_modprobe_blacklist_modules < <(printf '%s\n' "${modprobe_blacklist_modules[@]}" | awk '!a[$0]++')
mapfile -t sorted_modprobe_blacklist_modules < <(printf '%s\n' "${unique_modprobe_blacklist_modules[@]}" | sort -f)

if [ ${#sorted_modprobe_blacklist_modules[@]} -gt 0 ]; then
unique_params+=("modprobe.blacklist=$(IFS=, ; echo "${sorted_modprobe_blacklist_modules[*]}")")
fi

for req_param in "${REQUIRED_PARAMS[@]}"; do
if [[ "$req_param" != modprobe.blacklist=* ]]; then
handle_modprobe_blacklist "$req_param"
fi
done

mapfile -t sorted_params < <(printf '%s\n' "${unique_params[@]}" | sort -f)

updated_params="${sorted_params[*]}"
else
updated_params="${REQUIRED_PARAMS[*]}"
fi

new_line="GRUB_CMDLINE_LINUX_DEFAULT=\"${updated_params}\""

if grep -q '^GRUB_CMDLINE_LINUX_DEFAULT=' "$GRUB_FILE"; then
sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=.*|$new_line|" "$GRUB_FILE"
puts_success "Updated GRUB_CMDLINE_LINUX_DEFAULT in $GRUB_FILE."
else
echo "$new_line" >> "$GRUB_FILE"
puts_success "Added GRUB_CMDLINE_LINUX_DEFAULT to $GRUB_FILE."
fi

puts_success "Kernel parameters have been successfully added to $GRUB_FILE, continuing..."

if update-grub > /dev/null 2>&1; then
if command -v update-grub >/dev/null 2>&1; then
update-grub
puts_success "Success! GRUB menu was updated, continuing..."
else
puts_error "Failed to update GRUB menu, quitting."
Expand Down
4 changes: 2 additions & 2 deletions tmp/nuts-crr
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,8 @@ mount "$(echo "$NUTS_DIR_BAK"/nuts-backup-*.squashfs | tr ' ' '\n' | tail -n 1)"
# -- If the checksum matches, exit because the root had been restored in a previous run. There's no point in restoring the *same* root.
# -- If the checksum doesn't match, continue because the root differs from the backup's contents and is potentially newer.

LOCAL_SUM=$(md5sum /installed_pkgs_end.txt | cut -c -32)
BACKUP_LIST_SUM=$(md5sum "$NUTS_DIR_SQS"/installed_pkgs_end.txt | cut -c -32)
LOCAL_SUM=$(md5sum /usr/lib/os-release | cut -c -32)
BACKUP_LIST_SUM=$(md5sum "$NUTS_DIR_SQS"/usr/lib/os-release | cut -c -32)

if [[ "$LOCAL_SUM" == "$BACKUP_LIST_SUM" ]]; then
puts_info "The current installation of ${TARGET_DIST^} is the same as the backup, quitting."
Expand Down
17 changes: 16 additions & 1 deletion tmp/nuts-cru
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,20 @@ puts_info "Mounting $HOME_PARTITION to /home..."
mount -t auto "$HOME_PARTITION" /home


# -- Mount NX_VAR_LIB partition.
# -- We need to mount this partition so that when nuts-ccu runs update-grub, the GRUB menu is correctly updated.

VAR_LIB_PARTITION=$(findfs LABEL=NX_VAR_LIB)

if mountpoint -q /var/lib; then
puts_info "/var/lib is already mounted. Unmounting..."
umount /var/lib
fi

puts_info "Mounting $VAR_LIB_PARTITION to /var/lib..."
mount -t auto "$VAR_LIB_PARTITION" /var/lib


# -- Create the directories for nuts.
# -- Create working directories in /home since this partition will likely have more space than the root partition.

Expand Down Expand Up @@ -329,7 +343,7 @@ mount "$NUTS_DIR_DLS"/nuts-ota.squashfs "$NUTS_DIR_SQS"

puts_info "Updating ${CURRENT_DIST^}, continuing..."

APPIMAGE_URL="https://raw.githubusercontent.com/UriHerrera/storage/master/AppImages/dpkg-1.19.7-x86_64.AppImage"
APPIMAGE_URL="https://raw.githubusercontent.com/Nitrux/storage/master/Other/AppImages/dpkg-1.19.7-x86_64.AppImage"
AIFILE_DL_PATH="/tmp/dpkg-1.19.7-x86_64.AppImage"
AIPKG_MANAGER="/tmp/pkgman"

Expand Down Expand Up @@ -406,6 +420,7 @@ rm -f /tmp/nuts-ccu

unmount_directory "$NUTS_DIR_SQS"
unmount_directory "/home"
unmount_directory "/var/lib"
# unmount_directory "/dev"


Expand Down
8 changes: 4 additions & 4 deletions tmp/nuts-query.info
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
# Define the minimum target for the update.
#
[RELEASE]
MINTARGET=3.6.1
MINTARGET=3.7.0

# Define the name of the file and its checksum.
#
[OTA]
OTAFILE=ota-2024.10.09-08.22-amd64.squashfs
OTASUM=9bca6d7ac98b9ac3fc810335473f6348
OTAFILE=ota-2024.10.31-17.42-amd64.squashfs
OTASUM=75a5dd93e4d78639c4d90f8ead777bc2

# Define the list of mirrors to download the file.
# If multiple mirrors are available, separate them using commas, i.e., url1,url2,url3
#
[URL]
MIRRORLIST=https://master.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://netactuate.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://netix.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://freefr.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://phoenixnap.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://ufpr.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://liquidtelecom.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://yer.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://newcontinuum.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs,https://versaweb.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.09-08.22-amd64.squashfs
MIRRORLIST=https://master.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://netactuate.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://netix.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://freefr.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://phoenixnap.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://ufpr.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://liquidtelecom.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://yer.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://newcontinuum.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs,https://versaweb.dl.sourceforge.net/project/nitruxos/Updates/ota-2024.10.31-17.42-amd64.squashfs

0 comments on commit 0987869

Please sign in to comment.