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