diff --git a/.github/workflows/Create_driver_zips.yml b/.github/workflows/Create_driver_zips.yml
new file mode 100644
index 0000000..f3bd34e
--- /dev/null
+++ b/.github/workflows/Create_driver_zips.yml
@@ -0,0 +1,40 @@
+name: Create driver zips
+
+on:
+ release:
+ types: [published]
+ workflow_dispatch:
+
+jobs:
+ attach-drivers:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Get version
+ id: get_version
+ run: |
+ if [[ "${{ github.event_name }}" == "release" ]]; then
+ echo "version=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT
+ else
+ echo "version=$(gh release list --limit 1 --json tagName -q '.[0].tagName')" >> $GITHUB_OUTPUT
+ fi
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Create driver zips
+ run: |
+ VERSION=${{ steps.get_version.outputs.version }}
+ for dir in lib/*/; do
+ dsm_ver=$(basename "$dir")
+ if compgen -G "${dir}*.ko" > /dev/null; then
+ zip -j "${dsm_ver}_drivers_${VERSION}.zip" "${dir}"*.ko
+ fi
+ done
+
+ - name: Upload to release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ VERSION=${{ steps.get_version.outputs.version }}
+ gh release upload ${VERSION} *_drivers_${VERSION}.zip --clobber
diff --git a/CHANGES.txt b/CHANGES.txt
index 47e8535..57ae3f9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,9 @@
+v3.0.6
+- Uses the drivers from RROrg release 26.3.1.
+- Separate drivers available for DSM 7.2 and DSM 7.3.
+- Now only tries to remove modules if they are loaded.
+- Bug fixes for loading modules.
+
v2.2.5
- Bug fix for restoring default modules.
- Bug fix for if download x25_hw_transcode_module_v2.zip failed when v1 version had previously been downloaded and extracted.
diff --git a/lib/dsm72/dmabuf.ko b/lib/dsm72/dmabuf.ko
new file mode 100644
index 0000000..fd9d687
Binary files /dev/null and b/lib/dsm72/dmabuf.ko differ
diff --git a/lib/dsm72/drm.ko b/lib/dsm72/drm.ko
new file mode 100644
index 0000000..39b72a7
Binary files /dev/null and b/lib/dsm72/drm.ko differ
diff --git a/lib/dsm72/drm_buddy.ko b/lib/dsm72/drm_buddy.ko
new file mode 100644
index 0000000..99500c2
Binary files /dev/null and b/lib/dsm72/drm_buddy.ko differ
diff --git a/lib/dsm72/drm_display_helper.ko b/lib/dsm72/drm_display_helper.ko
new file mode 100644
index 0000000..948fb66
Binary files /dev/null and b/lib/dsm72/drm_display_helper.ko differ
diff --git a/lib/dsm72/drm_kms_helper.ko b/lib/dsm72/drm_kms_helper.ko
new file mode 100644
index 0000000..6cf2ad7
Binary files /dev/null and b/lib/dsm72/drm_kms_helper.ko differ
diff --git a/lib/dsm72/drm_panel_orientation_quirks.ko b/lib/dsm72/drm_panel_orientation_quirks.ko
new file mode 100644
index 0000000..2492b2b
Binary files /dev/null and b/lib/dsm72/drm_panel_orientation_quirks.ko differ
diff --git a/lib/dsm72/i2c-algo-bit.ko b/lib/dsm72/i2c-algo-bit.ko
new file mode 100644
index 0000000..91ea5b6
Binary files /dev/null and b/lib/dsm72/i2c-algo-bit.ko differ
diff --git a/lib/dsm72/i915-compat.ko b/lib/dsm72/i915-compat.ko
new file mode 100644
index 0000000..b245e76
Binary files /dev/null and b/lib/dsm72/i915-compat.ko differ
diff --git a/lib/dsm72/i915.ko b/lib/dsm72/i915.ko
new file mode 100644
index 0000000..920c294
Binary files /dev/null and b/lib/dsm72/i915.ko differ
diff --git a/lib/dsm72/intel-gtt.ko b/lib/dsm72/intel-gtt.ko
new file mode 100644
index 0000000..80d6af7
Binary files /dev/null and b/lib/dsm72/intel-gtt.ko differ
diff --git a/lib/dsm72/ttm.ko b/lib/dsm72/ttm.ko
new file mode 100644
index 0000000..8234f2e
Binary files /dev/null and b/lib/dsm72/ttm.ko differ
diff --git a/lib/dsm73/dmabuf.ko b/lib/dsm73/dmabuf.ko
new file mode 100644
index 0000000..300543e
Binary files /dev/null and b/lib/dsm73/dmabuf.ko differ
diff --git a/lib/dsm73/drm.ko b/lib/dsm73/drm.ko
new file mode 100644
index 0000000..5fbd129
Binary files /dev/null and b/lib/dsm73/drm.ko differ
diff --git a/lib/dsm73/drm_buddy.ko b/lib/dsm73/drm_buddy.ko
new file mode 100644
index 0000000..a28d56e
Binary files /dev/null and b/lib/dsm73/drm_buddy.ko differ
diff --git a/lib/dsm73/drm_display_helper.ko b/lib/dsm73/drm_display_helper.ko
new file mode 100644
index 0000000..95c672b
Binary files /dev/null and b/lib/dsm73/drm_display_helper.ko differ
diff --git a/lib/dsm73/drm_kms_helper.ko b/lib/dsm73/drm_kms_helper.ko
new file mode 100644
index 0000000..d200006
Binary files /dev/null and b/lib/dsm73/drm_kms_helper.ko differ
diff --git a/lib/dsm73/drm_panel_orientation_quirks.ko b/lib/dsm73/drm_panel_orientation_quirks.ko
new file mode 100644
index 0000000..cae61b8
Binary files /dev/null and b/lib/dsm73/drm_panel_orientation_quirks.ko differ
diff --git a/lib/dsm73/i2c-algo-bit.ko b/lib/dsm73/i2c-algo-bit.ko
new file mode 100644
index 0000000..3f85d51
Binary files /dev/null and b/lib/dsm73/i2c-algo-bit.ko differ
diff --git a/lib/dsm73/i915-compat.ko b/lib/dsm73/i915-compat.ko
new file mode 100644
index 0000000..b86003f
Binary files /dev/null and b/lib/dsm73/i915-compat.ko differ
diff --git a/lib/dsm73/i915.ko b/lib/dsm73/i915.ko
new file mode 100644
index 0000000..9467c2e
Binary files /dev/null and b/lib/dsm73/i915.ko differ
diff --git a/lib/dsm73/intel-gtt.ko b/lib/dsm73/intel-gtt.ko
new file mode 100644
index 0000000..7302a0d
Binary files /dev/null and b/lib/dsm73/intel-gtt.ko differ
diff --git a/lib/dsm73/ttm.ko b/lib/dsm73/ttm.ko
new file mode 100644
index 0000000..7cc4c8c
Binary files /dev/null and b/lib/dsm73/ttm.ko differ
diff --git a/my-other-scripts.md b/my-other-scripts.md
index 9466f6f..b0e028b 100644
--- a/my-other-scripts.md
+++ b/my-other-scripts.md
@@ -1,152 +1,201 @@
-## All my scripts, tools and guides
+## All my scripts, packages, tools and guides
#### Contents
+- [Speed testing](#speed-testing)
- [Plex](#plex)
+- [Asustor scripts and packages](#asustor)
- [Synology docker](#synology-docker)
- [Synology recovery](#synology-recovery)
-- [Other Synology scripts](#other-synology-scripts)
+- [Other Synology scripts and packages](#other-synology-scripts-and-packages)
- [Synology hardware restrictions](#synology-hardware-restrictions)
-- [2025 plus models](#2025-plus-models)
+- [Synology 2025 plus models](#synology-2025-plus-models)
- [How To Guides](#how-to-guides)
- [Synology dev](#synology-dev)
***
+### Speed Testing
+
+- **Synology Ookla Speedtest**
+ - Synology DSM 7 package to install Ookla Speedtest and run it in a GUI to test your internet speed.
+
+- **Synology Open Speedtest**
+ - Synology DSM 7 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
+
+- **Asustor Ookla Speedtest**
+ - Asustor ADM 5 package to install Ookla Speedtest and run it in a GUI to test your internet speed.
+
+- **Asustor LibreSpeed Speedtest**
+ - Asustor ADM 5 package to install LibreSpeed Speedtest and run it in a GUI to test your LAN speed.
+
+- **Asustor Open Speedtest**
+ - Asustor ADM 5 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
+
+ [Back to Contents](#contents)
+
### Plex
-- **Synology_Plex_Backup**
+- **Synology Plex Backup**
- A script to backup Plex to a tgz file foror DSM 7 and DSM 6.
- Works for Plex Synology package and Plex in docker.
-- **Asustor_Plex_Backup**
+- **Asustor Plex Backup**
- Backup your Asustor's Plex Media Server settings and database.
-- **Linux_Plex_Backup**
+- **Linux Plex Backup**
- Backup your Linux Plex Media Server's settings and database.
-- **Plex_Server_Sync**
+- **Plex Server Sync**
- Sync your main Plex server database & metadata to a backup Plex server.
- Works for Synology, Asustor, Linux and supports Plex package or Plex in docker.
+- **Transcode for x25**
+ - Installs the modules needed for Plex or Jellyfin hardware transcoding on Synology DS425+ and DS225+.
+
+ [Back to Contents](#contents)
+
+### Asustor
+
+- **Asustor Ookla Speedtest**
+ - Asustor ADM 5 package to install Ookla Speedtest and run it in a GUI to test your internet speed.
+
+- **Asustor Open Speedtest**
+ - Asustor ADM 5 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
+
+- **Asustor SMART info**
+ - Show Asustor smart health and attributes. Can also email you when important values change.
+
+- **Asustor Plex Backup**
+ - Backup your Asustor's Plex Media Server settings and database.
+
[Back to Contents](#contents)
### Synology docker
-- **Synology_Docker_export**
+- **Synology Docker export**
- Export all Synology Container Manager or Docker containers' settings as json files to your docker shared folder.
-- **Synology_ContainerManager_IPv6**
+- **Synology Container Manager IPv6**
- Enable IPv6 for Container Manager's bridge network.
-- **ContainerManager_for_all_armv8**
+- **Container Manager for all armv8**
- Script to install Container Manager on a RS819, DS119j, DS418, DS418j, DS218, DS218play or DS118.
-- **Docker_Autocompose**
+- **Docker Auto compose**
- Create .yml files from your docker existing containers.
-- **Synology_docker_cleanup**
+- **Synology docker cleanup**
- Remove orphan docker btrfs subvolumes and images in Synology DSM 7 and DSM 6.
[Back to Contents](#contents)
### Synology recovery
-- **Synology_DSM_reinstall**
+- **Synology DSM reinstall**
- Easily re-install the same DSM version without losing any data or settings.
-- **Synology_Recover_Data**
+- **Synology Recover Data**
- A script to make it easy to recover your data from your Synology's drives using a computer.
- **Synology clear drive error**
- Clear drive critical errors so DSM will let you use the drive.
-- **Synology_DSM_Telnet_Password**
+- **Synology DSM Telnet Password**
- Synology DSM Recovery Telnet Password of the Day generator.
-- **Syno_DSM_Extractor_GUI**
+- **Syno DSM Extractor GUI**
- Windows GUI for extracting Synology DSM 7 pat files and spk package files.
-- **Synoboot_backup**
+- **Synoboot backup**
- Back up synoboot after each DSM update so you can recover from a corrupt USBDOM.
[Back to Contents](#contents)
-### Other Synology scripts
+### Other Synology scripts and packages
+
+- **Synology Ookla Speedtest**
+ - Synology DSM 7 package to install Ookla Speedtest and run it in a GUI to test your internet speed.
+
+- **Synology Open Speedtest**
+ - Synology DSM 7 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
-- **Synology_app_mover**
+- **Synology app mover**
- Easily move Synology packages from one volume to another volume.
-- **Video_Station_for_DSM_722**
+- **Video Station for DSM 722**
- Script to install Video Station in DSM 7.2.2
-- **SS_Motion_Detection**
+- **SS Motion Detection**
- Installs previous Surveillance Station and Advanced Media Extensions versions so motion detection and HEVC are supported.
-- **Synology_Config_Backup**
+- **Synology Config Backup**
- Backup and export your Synology DSM configuration.
-- **Synology_CPU_temperature**
+- **Synology CPU temperature**
- Get and log Synology NAS CPU temperature via SSH.
-- **Synology_SMART_info**
- - Show Synology smart test progress or smart health and attributes.
+- **Synology SMART info**
+ - Show Synology smart test progress or smart health and attributes. Can also email you when important values change.
-- **Synology_Cleanup_Coredumps**
+- **Synology Cleanup Coredumps**
- Cleanup memory core dumps from crashed processes.
-- **Synology_toggle_reset_button**
+- **Synology toggle reset button**
- Script to disable or enable the reset button and show current setting.
-- **Synology_Download_Station_Chrome_Extension**
+- **Synology Download Station Chrome Extension**
- Download Station Chrome Extension.
-- **Seagate_lowCurrentSpinup**
+- **Seagate low Current Spinup**
- This script avoids the need to buy and install a higher wattage power supply when using multiple large Seagate SATA HDDs.
-- **Synology_created_date**
+- **Synology created date**
- Script to show you the created year and month of your Synology NAS or expansion unit.
+
+- **Restore RS3621 Fan Speed**
+ - Script to restore RS3621xs+ and RS3621RPxs Quiet mode and Cool mode fan speeds back to how it was before DSM 7.3.2.
[Back to Contents](#contents)
### Synology hardware restrictions
-- **Synology_HDD_db**
+- **Synology HDD db**
- Add your SATA or SAS HDDs and SSDs plus SATA and NVMe M.2 drives to your Synology's compatible drive databases, including your Synology M.2 PCIe card and Expansion Unit databases.
-- **Synology_enable_M2_volume**
+- **Synology enable M2 volume**
- Enable creating volumes with non-Synology M.2 drives.
- Enable Health Info for non-Synology NVMe drives (not in DSM 7.2.1 or later).
-- **Synology_M2_volume**
+- **Synology M2 volume**
- Easily create an M.2 volume on Synology NAS.
-- **Synology_enable_M2_card**
+- **Synology enable M2 card**
- Enable Synology M.2 PCIe cards in Synology NAS that don't officially support them.
-- **Synology_enable_eunit**
+- **Synology enable eunit**
- Enable an unsupported Synology eSATA Expansion Unit models.
-- **Synology_enable_Deduplication**
+- **Synology enable Deduplication**
- Enable deduplication with non-Synology SSDs and unsupported NAS models.
-- **Synology_SHR_switch**
+- **Synology SHR switch**
- Easily switch between SHR and RAID Groups, or enable RAID F1.
-- **Synology_enable_sequential_IO**
+- **Synology enable sequential IO**
- Enables sequential I/O for your SSD caches, like DSM 6 had.
-- **Synology_Information_Wiki**
+- **Synology Information Wiki**
- Information about Synology hardware.
[Back to Contents](#contents)
-### 2025 plus models
+### Synology 2025 plus models
-- **Transcode_for_x25**
- - Installs the modules needed for Plex or Jellyfin hardware transcoding in DS425+ and DS225+.
+- **Transcode for x25**
+ - Installs the modules needed for Plex or Jellyfin hardware transcoding on Synology DS425+ and DS225+.
- **2025 series or later Plus models**
- Unverified 3rd party drive limitations and unofficial solutions.
@@ -161,23 +210,23 @@
### How To Guides
-- **Synology_SSH_key_setup**
+- **Synology SSH key setup**
- How to setup SSH key authentication for your Synology.
[Back to Contents](#contents)
### Synology dev
-- **Download_Synology_Archive**
+- **Download Synology Archive**
- Download all or part of the Synology archive.
-- **Syno_DSM_Extractor_GUI**
+- **Syno DSM Extractor GUI**
- Windows GUI for extracting Synology DSM 7 pat files and spk package files.
- **ScriptNotify**
- DSM 7 package to allow your scripts to send DSM notifications.
-- **DTC_GUI_for_Windows**
+- **DTC GUI for Windows**
- GUI for DTC.exe for Windows.
[Back to Contents](#contents)
diff --git a/transcode_for_x25.sh b/transcode_for_x25.sh
index 718edd5..909916e 100644
--- a/transcode_for_x25.sh
+++ b/transcode_for_x25.sh
@@ -6,7 +6,7 @@
# https://www.blackvoid.club/content/files/2026/02/x25_hw_transcode_module_v2.zip
#----------------------------------------------------------------------------------
-scriptver="v2.2.5"
+scriptver="v3.0.6"
script=Transcode_for_x25
repo="007revad/Transcode_for_x25"
scriptname=transcode_for_x25
@@ -58,6 +58,10 @@ buildphase=$(/usr/syno/bin/synogetkeyvalue /etc.defaults/VERSION buildphase)
buildnumber=$(/usr/syno/bin/synogetkeyvalue /etc.defaults/VERSION buildnumber)
smallfixnumber=$(/usr/syno/bin/synogetkeyvalue /etc.defaults/VERSION smallfixnumber)
+dsm_major=$(/usr/syno/bin/synogetkeyvalue /etc.defaults/VERSION majorversion)
+dsm_minor=$(/usr/syno/bin/synogetkeyvalue /etc.defaults/VERSION minorversion)
+dsm_ver="dsm${dsm_major}${dsm_minor}" # e.g. "dsm73"
+
# Get CPU arch and platform_name
arch="$(uname -m)"
platform_name=$(/usr/syno/bin/synogetkeyvalue /etc.defaults/synoinfo.conf platform_name)
@@ -378,12 +382,17 @@ load_module(){
remove_module(){
if [[ $1 ]]; then
- if rmmod "$1"; then
- echo "Removed $1"
+ local modname="${1//-/_}"
+ if lsmod | grep -q "^${modname} "; then
+ if rmmod "$1"; then
+ echo "Removed $1"
+ else
+ ding
+ echo -e "${Error}ERROR${Off} Failed to remove $1"
+ errors=$(errors +1)
+ fi
else
- ding
- echo -e "${Error}ERROR${Off} Failed to remove $1"
- errors=$(errors +1)
+ echo "Module $1 is not loaded"
fi
fi
}
@@ -412,10 +421,18 @@ fi
# modinfo /path/to/your/module.ko
-url="https://www.blackvoid.club/content/files/2026/02/x25_hw_transcode_module_v2.zip"
-zipfile="$scriptpath/x25_drivers_v2/x25_hw_transcode_module_v2.zip"
-zip="x25_hw_transcode_module_v2.zip"
-x25_drivers_dir="$scriptpath/x25_drivers_v2"
+url="https://github.com/$repo/releases/download/$scriptver/${dsm_ver}_drivers_${scriptver}.zip"
+zipfile="$scriptpath/${dsm_ver}_drivers_${scriptver}/${dsm_ver}_drivers_${scriptver}.zip"
+zip="${dsm_ver}_drivers_${scriptver}.zip"
+x25_drivers_dir="$scriptpath/${dsm_ver}_drivers_${scriptver}"
+
+# Check drivers are available for user's DSM version
+if ! curl --silent --head --fail -m 10 --connect-timeout 5 "$url" >/dev/null; then
+ ding
+ echo -e "${Error}ERROR${Off} No drivers available for DSM $productversion"
+ echo " $url"
+ exit 1
+fi
if [[ ! -d "$x25_drivers_dir" ]]; then
mkdir "$x25_drivers_dir"
@@ -437,6 +454,8 @@ if cd "$x25_drivers_dir"; then
ding
echo -e "${Error}ERROR${Off} Failed to extract ${zip}!"
exit 1
+ else
+ chmod 644 "$x25_drivers_dir"/*.ko
fi
else
ding
@@ -466,29 +485,37 @@ if [[ $restore == "yes" ]]; then
remove_module drm_kms_helper
remove_module drm
remove_module dmabuf
+ remove_module drm_panel_orientation_quirks
+ remove_module i2c-algo-bit
# Load default modules
echo -e "\nLoading default modules:"
- load_module /usr/lib/modules/i915.ko
- load_module /usr/lib/modules/drm_kms_helper.ko
+ load_module /usr/lib/modules/i2c-algo-bit.ko
+ load_module /usr/lib/modules/drm_panel_orientation_quirks.ko
load_module /usr/lib/modules/drm.ko
+ load_module /usr/lib/modules/drm_kms_helper.ko
+ load_module /usr/lib/modules/i915.ko
else
# Remove default modules
echo -e "\nRemoving default modules:"
remove_module i915
- #remove_module drm_kms_helper
- #remove_module drm
+ remove_module drm_kms_helper
+ remove_module drm
+ remove_module drm_panel_orientation_quirks
+ remove_module i2c-algo-bit
# Load the good modules
echo -e "\nLoading good modules:"
- #load_module "$x25_drivers_dir"/dmabuf.ko
- #load_module "$x25_drivers_dir"/drm.ko
- #load_module "$x25_drivers_dir"/drm_kms_helper.ko
- #load_module "$x25_drivers_dir"/drm_display_helper.ko
- #load_module "$x25_drivers_dir"/drm_buddy.ko
- #load_module "$x25_drivers_dir"/ttm.ko
- #load_module "$x25_drivers_dir"/intel-gtt.ko
- #load_module "$x25_drivers_dir"/i915-compat.ko
+ load_module "$x25_drivers_dir"/i2c-algo-bit.ko
+ load_module "$x25_drivers_dir"/drm_panel_orientation_quirks.ko
+ load_module "$x25_drivers_dir"/dmabuf.ko
+ load_module "$x25_drivers_dir"/drm.ko
+ load_module "$x25_drivers_dir"/drm_kms_helper.ko
+ load_module "$x25_drivers_dir"/drm_display_helper.ko
+ load_module "$x25_drivers_dir"/drm_buddy.ko
+ load_module "$x25_drivers_dir"/ttm.ko
+ load_module "$x25_drivers_dir"/intel-gtt.ko
+ load_module "$x25_drivers_dir"/i915-compat.ko
load_module "$x25_drivers_dir"/i915.ko
fi