Compare commits

..

No commits in common. "main" and "25.5.7" have entirely different histories.
main ... 25.5.7

38 changed files with 5342 additions and 9903 deletions

View File

@ -1 +1 @@
25.6.5 25.5.7

View File

@ -14,9 +14,9 @@
"tr_TR": "Güç düğmesi olaylarını ele alan ACPI Daemon, bazı ortamlarda güç düğmesinin kapanmamasını düzeltir.", "tr_TR": "Güç düğmesi olaylarını ele alan ACPI Daemon, bazı ortamlarda güç düğmesinin kapanmamasını düzeltir.",
"uk_UA": "Демон ACPI, який обробляє події кнопки живлення, виправляючи проблему, коли кнопка живлення не вимикає в деяких середовищах.", "uk_UA": "Демон ACPI, який обробляє події кнопки живлення, виправляючи проблему, коли кнопка живлення не вимикає в деяких середовищах.",
"vi_VN": "ACPI Daemon xử lý các sự kiện nút nguồn, sửa lỗi nút nguồn không tắt máy trong một số môi trường.", "vi_VN": "ACPI Daemon xử lý các sự kiện nút nguồn, sửa lỗi nút nguồn không tắt máy trong một số môi trường.",
"zh_CN": "处理电源按钮事件的 ACPI 守护程序, 解决部分环境下电源按钮无法正常关机的问题.", "zh_CN": "处理电源按钮事件的ACPI守护程序, 解决部分环境下电源按钮无法正常关机的问题.",
"zh_HK": "處理電源按鈕事件的 ACPI 守护程序, 解决部分環境下電源按鈕無法正常關機的問題.", "zh_HK": "處理電源按鈕事件的ACPI守护程序, 解决部分環境下電源按鈕無法正常關機的問題.",
"zh_TW": "處理電源按鈕事件的 ACPI 守护程序, 解决部分環境下電源按鈕無法正常關機的問題." "zh_TW": "處理電源按鈕事件的ACPI守护程序, 解决部分環境下電源按鈕無法正常關機的問題."
} }
}, },
"addincards": { "addincards": {
@ -42,41 +42,41 @@
"apppatch": { "apppatch": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Fix Synology Photos unable to delete photos under non-genuine SN, close local_display to prevent generating a large number of BrowserMetrics files.", "en_US": "Fixed bugs in Synology Photos, local_display, and other apps.",
"ar_SA": "إصلاح Synology Photos غير قادر على حذف الصور تحت رقم SN غير الأصلي، إغلاق local_display لمنع إنشاء عدد كبير من ملفات BrowserMetrics.", "ar_SA": "إصلاح الأخطاء في تطبيقات Synology Photos و local_display وغيرها.",
"de_DE": "Beheben Sie, dass Synology Photos unter einer nicht originalen SN keine Fotos löschen kann, schließen Sie local_display, um zu verhindern, dass eine große Anzahl von BrowserMetrics-Dateien generiert wird.", "de_DE": "Fehlerbehebungen in Synology Photos, local_display und anderen Apps.",
"es_ES": "Arreglar Synology Photos que no puede eliminar fotos bajo un SN no genuino, cerrar local_display para evitar generar una gran cantidad de archivos BrowserMetrics.", "es_ES": "Correcciones de errores en Synology Photos, local_display y otras aplicaciones.",
"fr_FR": "Corrigez Synology Photos qui ne peut pas supprimer de photos sous un SN non authentique, fermez local_display pour éviter de générer un grand nombre de fichiers BrowserMetrics.", "fr_FR": "Corrections de bugs dans Synology Photos, local_display et d'autres applications.",
"ja_JP": "Synology Photos が非正規 SN の下で写真を削除できない問題を修正し、local_display を閉じて大量の BrowserMetrics ファイルが生成されるのを防ぎます。", "ja_JP": "Synology Photos、local_display などのアプリケーションにおけるバグの修正。",
"ko_KR": "비정품 SN에서 사진을 삭제할 수 없는 Synology Photos를 수정하고 local_display를 닫아 많은 BrowserMetrics 파일이 생성되는 것을 방지합니다.", "ko_KR": "Synology Photos, local_display 등의 애플리케이션에서 버그를 수정합니다.",
"ru_RU": "Исправление Synology Photos, который не может удалить фотографии под ненастоящим SN, закройте local_display, чтобы предотвратить создание большого количества файлов BrowserMetrics.", "ru_RU": "Исправления ошибок в Synology Photos, local_display и других приложениях.",
"th_TH": "แก้ไข Synology Photos ไม่สามารถลบภาพถ่ายได้เมื่อใช้ SN ไม่จริง และปิด local_display เพื่อป้องกันการสร้างไฟล์ BrowserMetrics เกินจำนวนมาก", "th_TH": "แก้ไขปัญหาใน Synology Photos, local_display และอื่นๆ",
"tr_TR": "Synology Photos'ın non-orijinal SN altında fotoğrafı silme yeteneğini düzeltin, local_display'i kapatın ve çok fazla BrowserMetrics dosyası oluşturmaması için.", "tr_TR": "Synology Photos, local_display ve diğer uygulamalarda hata düzeltmeleri.",
"uk_UA": "Виправлення Synology Photos, який не може видаляти фотографії під неоригінальним SN, закрийте local_display, щоб уникнути створення великої кількості файлів BrowserMetrics.", "uk_UA": "Виправлення помилок в Synology Photos, local_display та інших додатках.",
"vi_VN": "Sửa lỗi Synology Photos không thể xóa hình ảnh dưới SN không chính xác, đóng local_display để ngăn chặn việc tạo nhiều tệp BrowserMetrics.", "vi_VN": "Sửa lỗi trong Synology Photos, local_display và các ứng dụng khác.",
"zh_CN": "修复 Synology Photos 在非正版SN下无法删除照片的问题、关闭 local_display 防止生成大量 BrowserMetrics文件。", "zh_CN": "修复 Synology Photos、local_display 等应用程序中的错误。",
"zh_HK": "修復 Synology Photos 在非正版SN下無法刪除照片的問題、關閉 local_display 防止生成大量 BrowserMetrics文件。", "zh_HK": "修復 Synology Photos、local_display 等應用程式中的錯誤。",
"zh_TW": "修復 Synology Photos 在非正版SN下無法刪除照片的問題、關閉 local_display 防止生成大量 BrowserMetrics文件。" "zh_TW": "修復 Synology Photos、local_display 等應用程式中的錯誤。"
} }
}, },
"beep": { "beep": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Beep at startup and shutdown (requires motherboard with buzzer) Parameters: -m: Mario at startup and AxelF at shutdown", "en_US": "Beep at startup and shutdown (requires motherboard with buzzer) Parameters: -m : Mario at startup and AxelF at shutdown",
"ar_SA": "صد الصوت عند بدء التشغيل والإغلاق (يتطلب لوحة أم تحتوي على جرس) المعلمات: -m: ماريو عند بدء التشغيل و AxelF عند الإغلاق", "ar_SA": "صد الصوت عند بدء التشغيل والإغلاق (يتطلب لوحة أم تحتوي على جرس) المعلمات: -m : ماريو عند بدء التشغيل و AxelF عند الإغلاق",
"de_DE": "Beim Starten und Herunterfahren piepen (erfordert Mainboard mit Summer) Parameter: -m: Mario beim Starten und AxelF beim Herunterfahren", "de_DE": "Beim Starten und Herunterfahren piepen (erfordert Mainboard mit Summer) Parameter: -m : Mario beim Starten und AxelF beim Herunterfahren",
"es_ES": "Pitido al inicio y apagado (requiere placa base con zumbador) Parámetros: -m: Mario al inicio y AxelF al apagado", "es_ES": "Pitido al inicio y apagado (requiere placa base con zumbador) Parámetros: -m : Mario al inicio y AxelF al apagado",
"fr_FR": "Bip au démarrage et à l'arrêt (nécessite une carte mère avec buzzer) Paramètres: -m: Mario au démarrage et AxelF à l'arrêt", "fr_FR": "Bip au démarrage et à l'arrêt (nécessite une carte mère avec buzzer) Paramètres: -m : Mario au démarrage et AxelF à l'arrêt",
"ja_JP": "起動時にブザーを鳴らす(ブザーを備えたマザーボードが必要) パラメータ: -m: 起動時にマリオ、シャットダウン時にAxelF", "ja_JP": "起動時にブザーを鳴らす(ブザーを備えたマザーボードが必要) パラメータ: -m : 起動時にマリオ、シャットダウン時にAxelF",
"ko_KR": "시작 및 종료시 소리 울리기(부저가 있는 메인보드 필요) 매개변수: -m: 시작시 Mario 및 종료시 AxelF", "ko_KR": "시작 및 종료시 소리 울리기(부저가 있는 메인보드 필요) 매개변수: -m : 시작시 Mario 및 종료시 AxelF",
"ru_RU": "при запуске и выключении пищать (требуется материнская плата с зуммером) Параметры: -m: Mario при запуске и AxelF при выключении", "ru_RU": "при запуске и выключении пищать (требуется материнская плата с зуммером) Параметры: -m : Mario при запуске и AxelF при выключении",
"th_TH": "เสียงเบี๊ยวเมื่อเริ่มต้นและปิดเครื่อง (ต้องใช้เมนบอร์ดที่มีเสียงเบี๊ยว) พารามิเตอร์: -m: Mario เมื่อเริ่มต้นและ AxelF เมื่อปิดเครื่อง", "th_TH": "เสียงเบี๊ยวเมื่อเริ่มต้นและปิดเครื่อง (ต้องใช้เมนบอร์ดที่มีเสียงเบี๊ยว) พารามิเตอร์: -m : Mario เมื่อเริ่มต้นและ AxelF เมื่อปิดเครื่อง",
"tr_TR": "Başlangıç ve kapanışta bip sesi çal (ana kartta hoparlör gerektirir) Parametreler: -m: Başlangıçta Mario ve kapanışta AxelF", "tr_TR": "Başlangıç ve kapanışta bip sesi çal (ana kartta hoparlör gerektirir) Parametreler: -m : Başlangıçta Mario ve kapanışta AxelF",
"uk_UA": "при запуску та вимкненні пищати (потрібна материнська плата з динаміком) Параметри: -m: Mario при запуску та AxelF при вимкненні", "uk_UA": "при запуску та вимкненні пищати (потрібна материнська плата з динаміком) Параметри: -m : Mario при запуску та AxelF при вимкненні",
"vi_VN": "Phát ra tiếng bíp khi khởi động và tắt máy (yêu cầu bo mạch chủ có loa) Tham số: -m: Mario khi khởi động và AxelF khi tắt máy", "vi_VN": "Phát ra tiếng bíp khi khởi động và tắt máy (yêu cầu bo mạch chủ có loa) Tham số: -m : Mario khi khởi động và AxelF khi tắt máy",
"zh_CN": "在启动和关机时发出哔声(需要主板有蜂鸣器) 参数: -m: 开机 Mario 和 关机 AxelF", "zh_CN": "在启动和关机时发出哔声(需要主板有蜂鸣器) 参数: -m : 开机 Mario 和 关机 AxelF",
"zh_HK": "在啟動和關機時發出哔聲(需要主機有蜂鳴器) 參數: -m: 開機 Mario 和 關機 AxelF", "zh_HK": "在啟動和關機時發出哔聲(需要主機有蜂鳴器) 參數: -m : 開機 Mario 和 關機 AxelF",
"zh_TW": "在啟動和關機時發出哔聲(需要主機有蜂鳴器) 參數: -m: 開機 Mario 和 關機 AxelF" "zh_TW": "在啟動和關機時發出哔聲(需要主機有蜂鳴器) 參數: -m : 開機 Mario 和 關機 AxelF"
} }
}, },
"blockupdate": { "blockupdate": {
@ -322,21 +322,21 @@
"maiyunda": { "maiyunda": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Control Maiyunda M1S machine RESET button event, press and hold for 3s (release after hearing beeping) reset admin password to maiyunda.com and reset network, press and hold for 9s (release after hearing 3 beeps) reset system (all data will be erased).", "en_US": "RESET button functionality adapted, hold 3s (release after hearing beep) to reset admin password to maiyunda.com and reset network, hold 9s (release after hearing 3 beeps) to reset system (All data will be cleared). (Maiyunda machine)",
"ar_SA": "التحكم في حدث زر إعادة تعيين آلة Maiyunda M1S، اضغط مع الاستمرار لمدة 3 ثوانٍ (افرج بعد سماع صفير) إعادة تعيين كلمة مرور المسؤول إلى maiyunda.com وإعادة تعيين الشبكة، اضغط مع الاستمرار لمدة 9 ثوانٍ (افرج بعد سماع 3 صفير) إعادة تعيين النظام (سيتم مسح جميع البيانات).", "ar_SA": "تم تعديل وظيفة زر إعادة الضبط، اضغط باستمرار لمدة 3 ثوانٍ (حرر الزر بعد سماع صوت صفير) لإعادة تعيين كلمة مرور المسؤول لموقع maiyunda.com وإعادة تعيين الشبكة، اضغط باستمرار لمدة 9 ثوانٍ (حرر الزر بعد سماع 3 أصوات صفير) لإعادة تعيين النظام (سيتم مسح جميع البيانات).(جهاز Maiyunda)",
"de_DE": "Steuerung des RESET-Tastenereignisses der Maiyunda M1S-Maschine. Bitte ändern Sie den Inhalt der Aufgaben Net-Button-3s, Net-Button-9s, Copy-Button-3s und Copy-Button-9s im Zeitplan.", "de_DE": "RESET-Taste Funktion angepasst, 3s lang drücken (nach dem Hören eines Pieps loslassen), um das Admin-Passwort auf maiyunda.com und das Netzwerk zurückzusetzen, 9s lang drücken (nach dem Hören von 3 Piepen loslassen), umdas System zurückzusetzen (Alle Daten werden gelö scht). (Maiyunda-Maschine)",
"es_ES": "Control del evento del botón RESET de la máquina Maiyunda M1S, mantenga presionado durante 3 segundos (suéltelo después de escuchar el pitido) restablezca la contraseña de administrador a maiyunda.com y restablezca la red, mantenga presionado durante 9 segundos (suéltelo después de escuchar 3 pitidos) restablezca el sistema (se borrarán todos los datos).", "es_ES": "Mantener 3 segundos (suelta después de escuchar el bip) para restablecer la contraseña de administrador a maiyunda.com y restablecer la red, mantener 9 segundos (suelta después de escuchar 3 bips) para restablecer el sistema (se borrarán todos losdatos). (Máquina Maiyunda)",
"fr_FR": "Contrôle de l'événement du bouton RESET de la machine Maiyunda M1S, maintenez enfoncé pendant 3 secondes (relâchez après avoir entendu le bip) réinitialisez le mot de passe administrateur à maiyunda.com et réinitialisez le réseau, maintenez enfoncé pendant 9 secondes (relâchez après avoir entendu 3 bips) réinitialisez le système (toutes les données seront effacées).", "fr_FR": "RESET le bouton fonctionnalité ajustée, appuyer 3 secondes (relâcher après avoir entendu un bip), pour réinitialiser le mot de passe d'administrateur à maiyunda.com et réinitialiser le réseau, appuyer 9 secondes (relâcher après avoir entendu 3 bips), pour réinitialiser le système (tous les données seront effacées). (Machine Maiyunda)",
"ja_JP": "Maiyunda M1S マシンの RESET ボタン イベントを制御します。3 秒間押し続けて (ビープ音を聞いた後に放す) 管理者パスワードを maiyunda.com にリセットし、ネットワークをリセットします。9 秒間押し続けて (3 回のビープ音を聞いた後に放す) システムをリセットします (すべてのデータが消去されます)。", "ja_JP": "リセットボタンの機能を調整しました. 3秒押し続ける (音を聞いた後離す) で、adminパスワードをmaiyunda.comにリセットし、9秒押し続ける (3音を聞いた後離す) でシステムをリセットします (すべてのデータが消えます). (Maiyunda 機種)",
"ko_KR": "Maiyunda M1S 기계의 RESET 버튼 이벤트를 제어합니다. 3초 동안 누르고 (삐 소리를 들은 후 놓음) 관리자의 비밀번호를 maiyunda.com으로 재설정하고 네트워크를 재설정합니다. 9초 동안 누르고 (3번의 삐 소리를 들은 후 놓음) 시스템을 재설정합니다 (모든 데이터가 지워짐).", "ko_KR": "리셋 버튼 기능을 적용했습니다. 3초 누르고 (소리를 들으면 버튼을 놓습니다), admin 비밀번호를 maiyunda.com으로 초기화하고, 9초 누르고 (소리를 3번 들으면 버튼을 놓습니다),시스템을 초기화합니다 (모든 데이터가 삭제됩니다). (Maiyunda 기계)",
"ru_RU": "Управление событием кнопки RESET машины Maiyunda M1S, удерживайте 3 секунды (отпустите после звукового сигнала) сбросьте пароль администратора на maiyunda.com и сбросьте сеть, удерживайте 9 секунд (отпустите после 3 звуковых сигналов) сбросьте систему (все данные будут стерты).", "ru_RU": "Функция сброса кнопки изменена, удерживать 3 секунды (после услышания пищалки отпустить) для сброса пароля администратора на maiyunda.com и сброса сети, удерживать 9 секунд (после услышания 3 пищалки отпустить), для сброса системы (все данные будут удалены). (Машина Maiyunda)",
"th_TH": "ควบคุมเหตุการณ์ปุ่ม RESET ของเครื่อง Maiyunda M1S กดค้างไว้ 3 วินาที (ปล่อยหลังจากได้ยินเสียงบี๊บ) รีเซ็ตพาสเวิร์ดผู้ดูแลระบบเป็น maiyunda.com และรีเซ็ตเครือข่าย กดค้างไว้ 9 วินาที (ปล่อยหลังจากได้ยินเสียงบี๊บ 3 ครั้ง) รีเซ็ตระบบ (ข้อมูลทั้งหมดจะถูกลบออก).", "th_TH": "ฟังก์ชันการทำงานของปุ่ม RESET ปรับปรุงแล้ว กดค้างไว้ 3 วินาที (ปล่อยหลังจากได้ยินเสียงบี๊บ) เพื่อรีเซ็ตรหัสผ่านผู้ดูแลระบบไปยัง maiyunda.com และรีเซ็ตเครือข่าย กดค้างไว้ 9 วินาที (ปล่อยหลังจากได้ยินเสียงบี๊บ 3 ครั้ง) เพื่อรีเซ็ตระบบ (ข้อมูลทั้งหมดจะถูกล้าง) (เครื่อง Maiyunda)",
"tr_TR": "Maiyunda M1S makinesinin RESET düğmesi olayını kontrol edin, 3 saniye basılı tutun (bip sesi duyduktan sonra bırakın) admin şifresini maiyunda.com olarak sıfırlayın ve ağı sıfırlayın, 9 saniye basılı tutun (3 bip sesi duyduktan sonra bırakın) sistemi sıfırlayın (tüm veriler silinecektir).", "tr_TR": "RESET düğmesi işlevselliği uyarlandı, 3 saniye basılı tutun (ses duyduktan sonra serbest bırakın), admin şifresini maiyunda.com'a sıfırlamak ve ağu sıfırlamak için 9 saniyebasılı taste, to reset the system (all data will be deleted). (Maiyunda machine)",
"uk_UA": "Контроль події кнопки RESET машини Maiyunda M1S, натискайте та утримуйте 3 секунди (відпустіть після звуку) скинути пароль адміністратора на maiyunda.com і скинути мережу, натискайте та утримуйте 9 секунд (відпустіть після 3 звуків) скинути систему (всі дані будуть стерті).", "uk_UA": "Функція зміни кнопки RESET змінена,три секунди утримувати (посля почуття прискорення слід відпустити) для скидання пароля адміністратора наmaiyunda.com та скидання мережі,три секунди утримувати(посля почуття прискорення слід відпустити) для скидання системи (всі дані будуть видалені). (Машина Maiyunda)",
"vi_VN": "Điều khiển sự kiện nút RESET của máy Maiyunda M1S, nhấn và giữ trong 3 giây (thả ra sau khi nghe tiếng bíp) đặt lại mật khẩu quản trị viên thành maiyunda.com và đặt lại mạng, nhấn và giữ trong 9 giây (thả ra sau khi nghe 3 tiếng bíp) đặt lại hệ thống (tất cả dữ liệu sẽ bị xóa).", "vi_VN": "Nút RESET chức năng được sửa đổi, ấn giữ 3 giây (sau khi nghe được tiếng bip) để reset mật khẩu quản trịerao maiyunda.com và reset mạng, ấn giữ 9 giây (sau khi nghe được 3 tiếng bip) để reset hệ thống (tất cả dữ liệu sẽ bị xóa). (Máy Maiyunda)",
"zh_CN": "用于控制 迈云达M1S 机器的 RESET 按钮事件, 按住 3s (听到哔哔哔后松手) 重置 admin 密码为 maiyunda.com 并重置网络, 按住 9s (听到 3次 哔哔哔后松手) 重置系统 (会清空全部数据).", "zh_CN": "RESET 按钮功能适配, 按住 3s (听到哔哔哔后松手) 重置 admin 密码为 maiyunda.com 并重置网络, 按住 9s (听到 3次 哔哔哔后松手) 重置系统 (会清空全部数据). (迈云达机器)",
"zh_HK": "用於控制 迈云达M1S 机器的 RESET 按钮事件, 按住 3s (听到哔哔哔后松手) 重置 admin 密码为 maiyunda.com 并重置网络, 按住 9s (听到 3次 哔哔哔后松手) 重置系统 (会清空全部数据).", "zh_HK": "RESET 按鈕功能適配, 按住 3s (聽到哔哔哔後鬆手) 重置 admin 密碼為 maiyunda.com 并重置網路, 按住 9s (聽到 3次 哔哔哔後鬆手) 重置系統 (會清空全部數據). (迈雲達機器)",
"zh_TW": "用於控制 迈云达M1S 机器的 RESET 按钮事件, 按住 3s (听到哔哔哔后松手) 重置 admin 密码为 maiyunda.com 并重置网络, 按住 9s (听到 3次 哔哔哔后松手) 重置系统 (会清空全部数据)." "zh_TW": "RESET 按鈕功能適配, 按住 3s (聽到哔哔哔後鬆手) 重置 admin 密碼為 maiyunda.com 并重置網路, 按住 9s (聽到 3次 哔哔哔後鬆手) 重置系統 (會清空全部數據). (迈雲達機器)"
} }
}, },
"misc": { "misc": {
@ -362,21 +362,21 @@
"mountloader": { "mountloader": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Mount boot disk and upgrade boot script under DSM system, for rr-manager application.", "en_US": "Add a script to mount/unmount loader disk in the DSM scheduled task, For use by the rr-manager applications.",
"ar_SA": "تثبيت قرص التمهيد وترقية البرنامج النصي للتمهيد تحت نظام DSM، لتطبيق rr-manager.", "ar_SA": "أضف سكريبت لتثبيت/إلغاء تثبيت قرص الشحن في المهمة المجدولة DSM، للاستخدام من قبل تطبيقات rr-manager.",
"de_DE": "Mounten Sie das Startlaufwerk und aktualisieren Sie das Startskript unter dem DSM-System für die rr-manager-Anwendung.", "de_DE": "Fügen Sie ein Skript hinzu, um die Loader-Disk in der DSM-geplanten Aufgabe zu mounten/zu entladen, für die Verwendung durch die rr-manager-Anwendungen.",
"es_ES": "Montar el disco de arranque y actualizar el script de arranque en el sistema DSM, para la aplicación rr-manager.", "es_ES": "Agregue un script para montar/desmontar el disco de carga en la tarea programada DSM, para uso por las aplicaciones rr-manager.",
"fr_FR": "Monter le disque de démarrage et mettre à jour le script de démarrage sous le système DSM, pour l'application rr-manager.", "fr_FR": "Ajoutez un script pour monter/démonter le disque de chargement dans la tâche planifiée DSM, pour une utilisation par les applications rr-manager.",
"ja_JP": "DSM システムでブート ディスクをマウントし、rr-manager アプリケーション用のブート スクリプトをアップグレードします。", "ja_JP": "DSM のスケジュールされたタスクでローダーディスクをマウント/アンマウントするスクリプトを追加します. rr-manager アプリケーションで使用します.",
"ko_KR": "DSM 시스템에서 부팅 디스크를 마운트하고 rr-manager 응용 프로그램을 위한 부팅 스크립트를 업그레이드합니다.", "ko_KR": "DSM 예약 작업에서 로더 디스크를 마운트/언마운트하는 스크립트를 추가하십시오. rr-manager 응용 프로그램에서 사용합니다.",
"ru_RU": "Подключите загрузочный диск и обновите загрузочный скрипт в системе DSM для приложения rr-manager.", "ru_RU": "Добавьте скрипт для монтирования/размонтирования диска загрузчика в запланированной задаче DSM, для использования приложениями rr-manager.",
"th_TH": "ในระบบ DSM เมานต์ดิสก์บูตและอัปเกรดสคริปต์บูตสำหรับแอปพลิเคชัน rr-manager", "th_TH": "เพิ่มสคริปต์เพื่อติดตั้ง/ถอดติดตั้งดิสก์โหลดในงานที่ตั้งเวลา DSM สำหรับใช้โดยแอปพลิเคชัน rr-manager",
"tr_TR": "DSM sisteminde başlangıç diskini bağlayın ve rr-manager uygulamasında başlangıç betiğini güncelleyin.", "tr_TR": "DSM zamanlanmış görevinde yükleyici diski bağlamak/çıkarmak için bir betik ekleyin, rr-manager uygulamaları tarafından kullanılmak üzere.",
"uk_UA": "З'єднати стартовий диск та оновити стартовий скрипт в системі DSM для додатку rr-manager.", "uk_UA": "Додайте сценарій для монтування/розмонтовування диска завантажувача в запланованому завданні DSM, для використання програмами rr-manager.",
"vi_VN": "Đồng bộ hóa đĩa khởi động và cập nhật script khởi động trong hệ thống DSM, cho ứng dụng rr-manager.", "vi_VN": "Thêm một tập lệnh để gắn / tháo gắn đĩa loader trong nhiệm vụ được lên lịch DSM, để sử dụng bởi các ứng dụng rr-manager.",
"zh_CN": "在 DSM 系统下挂载引导磁盘和升级引导的脚本, 供 rr-manager 应用程序使用.", "zh_CN": "在 DSM 计划任务中添加一个脚本来挂载/卸载加载器磁盘, 供 rr-manager 应用程序使用.",
"zh_HK": "在 DSM 系統下掛載引導磁碟和升級引導的腳本, 供 rr-manager 應用程序使用.", "zh_HK": "在 DSM 計劃任務中添加一個腳本來掛載/卸載加載器磁碟, 供 rr-manager 應用程序使用.",
"zh_TW": "在 DSM 系統下掛載引導磁碟和升級引導的腳本, 供 rr-manager 應用程序使用." "zh_TW": "在 DSM 計劃任務中添加一個腳本來掛載/卸載加載器磁碟, 供 rr-manager 應用程序使用."
} }
}, },
"notify": { "notify": {
@ -402,61 +402,61 @@
"nvmecache": { "nvmecache": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Author: PeterSuh-Q3. Enable NVME disk support for DS918+, DS1019+, DS1621xs+, RS1619xs+.", "en_US": "Author: PeterSuh-Q3. Enable m.2 disk support for DS918+, DS1019+, DS1621xs+, RS1619xs+.",
"ar_SA": "المؤلف: PeterSuh-Q3. تمكين دعم القرص NVME لـ DS918+، DS1019+، DS1621xs+، RS1619xs+.", "ar_SA": "المؤلف: PeterSuh-Q3. تمكين دعم القرص m.2 لـ DS918+، DS1019+، DS1621xs+، RS1619xs+.",
"de_DE": "Autor: PeterSuh-Q3. Aktivieren Sie die Unterstützung für NVME-Laufwerke für DS918+, DS1019+, DS1621xs+, RS1619xs+.", "de_DE": "Autor: PeterSuh-Q3. Aktivieren Sie die Unterstützung für m.2-Laufwerke für DS918+, DS1019+, DS1621xs+, RS1619xs+.",
"es_ES": "Autor: PeterSuh-Q3. Habilita el soporte de discos NVME para DS918+, DS1019+, DS1621xs+, RS1619xs+.", "es_ES": "Autor: PeterSuh-Q3. Habilita el soporte de discos m.2 para DS918+, DS1019+, DS1621xs+, RS1619xs+.",
"fr_FR": "Auteur: PeterSuh-Q3. Activer la prise en charge des disques NVME pour DS918+, DS1019+, DS1621xs+, RS1619xs+.", "fr_FR": "Auteur: PeterSuh-Q3. Activer la prise en charge des disques m.2 pour DS918+, DS1019+, DS1621xs+, RS1619xs+.",
"ja_JP": "作者: PeterSuh-Q3. DS918+、DS1019+、DS1621xs+、RS1619xs+ で NVME ディスクのサポートを有効にします.", "ja_JP": "作者: PeterSuh-Q3. DS918+、DS1019+、DS1621xs+、RS1619xs+ で m.2 ディスクのサポートを有効にします.",
"ko_KR": "작성자: PeterSuh-Q3. DS918+, DS1019+, DS1621xs+, RS1619xs+에서 NVME 디스크 지원 활성화.", "ko_KR": "작성자: PeterSuh-Q3. DS918+, DS1019+, DS1621xs+, RS1619xs+에서 m.2 디스크 지원 활성화.",
"ru_RU": "Автор: PeterSuh-Q3. Включите поддержку дисков NVME для DS918+, DS1019+, DS1621xs+, RS1619xs+.", "ru_RU": "Автор: PeterSuh-Q3. Включите поддержку дисков m.2 для DS918+, DS1019+, DS1621xs+, RS1619xs+.",
"th_TH": "ผู้เขียน: PeterSuh-Q3. เปิดใช้งานการสนับสนุนดิสก์ NVME สำหรับ DS918+, DS1019+, DS1621xs+, RS1619xs+", "th_TH": "ผู้เขียน: PeterSuh-Q3. เปิดใช้งานการสนับสนุนดิสก์ m.2 สำหรับ DS918+, DS1019+, DS1621xs+, RS1619xs+",
"tr_TR": "Yazar: PeterSuh-Q3. DS918+, DS1019+, DS1621xs+, RS1619xs+ için NVME disk desteğini etkinleştirin.", "tr_TR": "Yazar: PeterSuh-Q3. DS918+, DS1019+, DS1621xs+, RS1619xs+ için m.2 disk desteğini etkinleştirin.",
"uk_UA": "Автор: PeterSuh-Q3. Увімкніть підтримку дисків NVME для DS918+, DS1019+, DS1621xs+, RS1619xs+.", "uk_UA": "Автор: PeterSuh-Q3. Увімкніть підтримку дисків m.2 для DS918+, DS1019+, DS1621xs+, RS1619xs+.",
"vi_VN": "Tác giả: PeterSuh-Q3. Bật hỗ trợ đĩa NVME cho DS918+, DS1019+, DS1621xs+, RS1619xs+.", "vi_VN": "Tác giả: PeterSuh-Q3. Bật hỗ trợ đĩa m.2 cho DS918+, DS1019+, DS1621xs+, RS1619xs+.",
"zh_CN": "作者: PeterSuh-Q3. 启用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 NVME 硬盘支持.", "zh_CN": "作者: PeterSuh-Q3. 启用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 m.2 硬盘支持.",
"zh_HK": "作者: PeterSuh-Q3. 啟用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 NVME 硬碟支援.", "zh_HK": "作者: PeterSuh-Q3. 啟用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 m.2 硬碟支援.",
"zh_TW": "作者: PeterSuh-Q3. 啟用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 NVME 硬碟支援." "zh_TW": "作者: PeterSuh-Q3. 啟用 DS918+、DS1019+、DS1621xs+、RS1619xs+ 的 m.2 硬碟支援."
} }
}, },
"nvmesystem": { "nvmesystem": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Author: jim3ma. Install system on NVME disk (can't contain any SATA disk during installation, only supports DT mdoels).", "en_US": "Author: jim3ma. Install system on m.2 disk (can't contain any SATA disk during installation, only supports DT mdoels).",
"ar_SA": "المؤلف: jim3ma. تثبيت نظام على القرص NVME (لا يمكن أن يحتوي على أي قرص SATA أثناء التثبيت ، يدعم فقط DT).", "ar_SA": "المؤلف: jim3ma. تثبيت نظام على القرص m.2 (لا يمكن أن يحتوي على أي قرص SATA أثناء التثبيت ، يدعم فقط DT).",
"de_DE": "Autor: jim3ma. Installieren Sie das System auf einem NVME-Disk (kann keine SATA-Disk während der Installation enthalten, unterstützt nur DT-Modell).", "de_DE": "Autor: jim3ma. Installieren Sie das System auf einem m.2-Disk (kann keine SATA-Disk während der Installation enthalten, unterstützt nur DT-Modell).",
"es_ES": "Autor: jim3ma. Instalar el sistema en un disco NVME (no puede contener ninguna unidad SATA durante la instalación, solo admite modelos DT).", "es_ES": "Autor: jim3ma. Instalar el sistema en un disco m.2 (no puede contener ninguna unidad SATA durante la instalación, solo admite modelos DT).",
"fr_FR": "Auteur: jim3ma. Installez le système sur un disque NVME (ne peut contenir aucune unité SATA pendant l'installation, ne prend que les modèles DT).", "fr_FR": "Auteur: jim3ma. Installez le système sur un disque m.2 (ne peut contenir aucune unité SATA pendant l'installation, ne prend que les modèles DT).",
"ja_JP": "著者: jim3ma. NVME ディスクにシステムをインストール (インストール中に SATA ディスクを含めることはできません、DT モデルのみをサポートします).", "ja_JP": "著者: jim3ma. m.2 ディスクにシステムをインストール (インストール中に SATA ディスクを含めることはできません、DT モデルのみをサポートします).",
"ko_KR": "저자: jim3ma. NVME 디스크에 시스템을 설치 (설치 중에 SATA 디스크를 포함할 수 없으며, DT 모델만 지원합니다).", "ko_KR": "저자: jim3ma. m.2 디스크에 시스템을 설치 (설치 중에 SATA 디스크를 포함할 수 없으며, DT 모델만 지원합니다).",
"ru_RU": "Автор: jim3ma. Установить систему на диск NVME (не может содержать SATA-диск во время установки, поддерживает только модели DT).", "ru_RU": "Автор: jim3ma. Установить систему на диск m.2 (не может содержать SATA-диск во время установки, поддерживает только модели DT).",
"th_TH": "ผู้เขียน: jim3ma. ติดตั้งระบบบนแผง NVME (ไม่สามารถมีหน่วย SATA ในระหว่างการติดตั้งได้ และเฉพาะโมเดล DT เท่านั้น).", "th_TH": "ผู้เขียน: jim3ma. ติดตั้งระบบบนแผง m.2 (ไม่สามารถมีหน่วย SATA ในระหว่างการติดตั้งได้ และเฉพาะโมเดล DT เท่านั้น).",
"tr_TR": "Yazar: jim3ma. NVME disk üzerine sistem yükleyin (kurulum sırasında herhangi bir SATA disk içeremez, yalnızca DT modellerini destekler).", "tr_TR": "Yazar: jim3ma. m.2 disk üzerine sistem yükleyin (kurulum sırasında herhangi bir SATA disk içeremez, yalnızca DT modellerini destekler).",
"uk_UA": "Автор: jim3ma. Установить систему на диск NVME (не может содержать SATA-диск во время установки, поддерживает только модели DT).", "uk_UA": "Автор: jim3ma. Установить систему на диск m.2 (не может содержать SATA-диск во время установки, поддерживает только модели DT).",
"vi_VN": "Người tạo: jim3ma. Cài đặt hệ thống trên NVME (không thể chứa đĩa SATA trong quá trình cài đặt, chỉ hỗ trợ mô hình DT).", "vi_VN": "Người tạo: jim3ma. Cài đặt hệ thống trên m.2 (không thể chứa đĩa SATA trong quá trình cài đặt, chỉ hỗ trợ mô hình DT).",
"zh_CN": "作者: jim3ma. 在 NVME 盘上安装系统 (在安装过程中不能包含 SATA 盘,仅支持 DT 型号).", "zh_CN": "作者: jim3ma. 在 m.2 盘上安装系统 (在安装过程中不能包含 SATA 盘,仅支持 DT 型号).",
"zh_HK": "作者: jim3ma. 在 NVME 盤上安裝系統 (在安裝過程中不能包含 SATA 盤,僅支持 DT 模型).", "zh_HK": "作者: jim3ma. 在 m.2 盤上安裝系統 (在安裝過程中不能包含 SATA 盤,僅支持 DT 模型).",
"zh_TW": "作者: jim3ma. 在 NVME 盤上安裝系統 (在安裝過程中不能包含 SATA 盤,僅支持 DT 模型)." "zh_TW": "作者: jim3ma. 在 m.2 盤上安裝系統 (在安裝過程中不能包含 SATA 盤,僅支持 DT 模型)."
} }
}, },
"nvmevolume": { "nvmevolume": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Author: 007revad & PeterSuh-Q3. Allow creation of storage pools and volumes from Storage Manager through NVME disks.", "en_US": "Author: 007revad & PeterSuh-Q3. Allow creation of storage pools and volumes from Storage Manager through m.2 disks.",
"ar_SA": "المؤلف: (007revad) وPeterSuh-Q3. تمكين إنشاء مجموعات تخزين ومساحات تخزين من مネージャ التخزين من خلال قرص NVME.", "ar_SA": "المؤلف: (007revad) وPeterSuh-Q3. تمكين إنشاء مجموعات تخزين ومساحات تخزين من مネージャ التخزين من خلال قرص m.2.",
"de_DE": "Autor: 007revad & PeterSuh-Q3. Erlaubt die Erstellung von Speicherpools und Volumen über den Speicher-Manager über NVME-Disks.", "de_DE": "Autor: 007revad & PeterSuh-Q3. Erlaubt die Erstellung von Speicherpools und Volumen über den Speicher-Manager über m.2-Disks.",
"es_ES": "Autor: 007revad & PeterSuh-Q3. Permite la creación de grupos de almacenamiento y volúmenes a través del Administrador de almacenamiento a través de discos NVME.", "es_ES": "Autor: 007revad & PeterSuh-Q3. Permite la creación de grupos de almacenamiento y volúmenes a través del Administrador de almacenamiento a través de discos m.2.",
"fr_FR": "Auteur: 007revad & PeterSuh-Q3. Permet la création de pools de stockage et de volumes à partir du gestionnaire de stockage à travers les disques NVME.", "fr_FR": "Auteur: 007revad & PeterSuh-Q3. Permet la création de pools de stockage et de volumes à partir du gestionnaire de stockage à travers les disques m.2.",
"ja_JP": "作者: 007revad & PeterSuh-Q3. Storage Manager から NVME ディスクからストレージ プールとボリュームを作成できるようにします.", "ja_JP": "作者: 007revad & PeterSuh-Q3. Storage Manager から m.2 ディスクからストレージ プールとボリュームを作成できるようにします.",
"ko_KR": "작성자: 007revad & PeterSuh-Q3. Storage Manager의 NVME 디스크에서 스토리지 풀 및 볼륨을 생성할 수 있습니다.", "ko_KR": "작성자: 007revad & PeterSuh-Q3. Storage Manager의 m.2 디스크에서 스토리지 풀 및 볼륨을 생성할 수 있습니다.",
"ru_RU": "Автор: 007revad & PeterSuh-Q3. Позволяет создавать пулы носителей и тома из дисков NVME из Storage Manager.", "ru_RU": "Автор: 007revad & PeterSuh-Q3. Позволяет создавать пулы носителей и тома из дисков m.2 из Storage Manager.",
"th_TH": "ผู้เขียน: 007revad & PeterSuh-Q3 สร้างกลุ่มจัดเก็บและพื้นที่จัดเก็บจาก Storage Manager ผ่านดิสก์ NVME", "th_TH": "ผู้เขียน: 007revad & PeterSuh-Q3 สร้างกลุ่มจัดเก็บและพื้นที่จัดเก็บจาก Storage Manager ผ่านดิสก์ m.2",
"tr_TR": "Yazar: 007revad ve PeterSuh-Q3. Storage Manager'dan NVME disklerden depolama havuzları ve birimleri oluşturulmasına olanak tanır.", "tr_TR": "Yazar: 007revad ve PeterSuh-Q3. Storage Manager'dan m.2 disklerden depolama havuzları ve birimleri oluşturulmasına olanak tanır.",
"uk_UA": "Автор: 007revad & PeterSuh-Q3. Дозволяє створювати пули зберігання та томи з дисків NVME за допомогою Storage Manager.", "uk_UA": "Автор: 007revad & PeterSuh-Q3. Дозволяє створювати пули зберігання та томи з дисків m.2 за допомогою Storage Manager.",
"vi_VN": "tác giả: 007revad & PeterSuh-Q3. Cho phép tạo khối lưu trữ và khối từ Quản lý lưu trữ thông qua đĩa NVME.", "vi_VN": "tác giả: 007revad & PeterSuh-Q3. Cho phép tạo khối lưu trữ và khối từ Quản lý lưu trữ thông qua đĩa m.2.",
"zh_CN": "作者: 007revad & PeterSuh-Q3. 允许从存储管理器中通过 NVME 磁盘创建存储池和卷.", "zh_CN": "作者: 007revad & PeterSuh-Q3. 允许从存储管理器中通过 m.2 磁盘创建存储池和卷.",
"zh_HK": "作者: 007revad & PeterSuh-Q3. 允許從儲存管理器中透過 NVME 磁碟建立儲存池和磁碟區.", "zh_HK": "作者: 007revad & PeterSuh-Q3. 允許從儲存管理器中透過 m.2 磁碟建立儲存池和磁碟區.",
"zh_TW": "作者: 007revad & PeterSuh-Q3. 允許從儲存管理器中透過 NVME 磁碟建立儲存池和磁碟區." "zh_TW": "作者: 007revad & PeterSuh-Q3. 允許從儲存管理器中透過 m.2 磁碟建立儲存池和磁碟區."
} }
}, },
"powersched": { "powersched": {
@ -522,7 +522,7 @@
"remotefs": { "remotefs": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Author: jinlife. This patch will allow remote NFS/CIFS shared folder be used in VideoStation, AudioStation and Photos etc.", "en_US": "Author: jinlife. This patch will allow remote NFS/CIFS shared folder be used in VideoStation, AudioStation and Photos etc..",
"ar_SA": "المؤلف: jinlife. سيسمح هذا التصحيح باستخدام مجلد مشترك بروتوكول NFS/CIFS عن بُعد في VideoStation و AudioStation و Photos وما إلى ذلك.", "ar_SA": "المؤلف: jinlife. سيسمح هذا التصحيح باستخدام مجلد مشترك بروتوكول NFS/CIFS عن بُعد في VideoStation و AudioStation و Photos وما إلى ذلك.",
"de_DE": "Autor: jinlife. Dieser Patch ermöglicht es, dass ein entfernter NFS/CIFS-Freigabeordner in VideoStation, AudioStation und Photos usw. verwendet wird.", "de_DE": "Autor: jinlife. Dieser Patch ermöglicht es, dass ein entfernter NFS/CIFS-Freigabeordner in VideoStation, AudioStation und Photos usw. verwendet wird.",
"es_ES": "Autor: jinlife. Este parche permitirá que la carpeta compartida remota NFS/CIFS se utilice en VideoStation, AudioStation y Photos, etc.", "es_ES": "Autor: jinlife. Este parche permitirá que la carpeta compartida remota NFS/CIFS se utilice en VideoStation, AudioStation y Photos, etc.",
@ -534,9 +534,9 @@
"tr_TR": "Yazar: jinlife. Bu yama, VideoStation, AudioStation ve Fotoğraflar vb. gibi yerlerde uzak NFS/CIFS paylaşılan klasörün kullanılmasına izin verecektir.", "tr_TR": "Yazar: jinlife. Bu yama, VideoStation, AudioStation ve Fotoğraflar vb. gibi yerlerde uzak NFS/CIFS paylaşılan klasörün kullanılmasına izin verecektir.",
"uk_UA": "Автор: jinlife. Цей патч дозволить використовувати віддалену спільну папку NFS/CIFS в VideoStation, AudioStation та Photos тощо.", "uk_UA": "Автор: jinlife. Цей патч дозволить використовувати віддалену спільну папку NFS/CIFS в VideoStation, AudioStation та Photos тощо.",
"vi_VN": "Tác giả: jinlife. Bản vá này sẽ cho phép thư mục chia sẻ NFS/CIFS từ xa được sử dụng trong VideoStation, AudioStation và Photos v.v..", "vi_VN": "Tác giả: jinlife. Bản vá này sẽ cho phép thư mục chia sẻ NFS/CIFS từ xa được sử dụng trong VideoStation, AudioStation và Photos v.v..",
"zh_CN": "作者: jinlife. 此补丁将允许在 VideoStation、AudioStation 和 Photos 等应用中使用远程 NFS/CIFS 共享文件夹.", "zh_CN": "作者: jinlife. 此补丁将允许在 VideoStation、AudioStation 和 Photos 等中使用远程 NFS/CIFS 共享文件夹.",
"zh_HK": "作者: jinlife. 此補丁將允許在 VideoStation、AudioStation 和 Photos 等應用中使用遠程 NFS/CIFS 共享文件夾.", "zh_HK": "作者: jinlife. 此補丁將允許在 VideoStation、AudioStation 和 Photos 等中使用遠程 NFS/CIFS 共享文件夾.",
"zh_TW": "作者: jinlife. 此補丁將允許在 VideoStation、AudioStation 和 Photos 等應用中使用遠程 NFS/CIFS 共享文件夾." "zh_TW": "作者: jinlife. 此補丁將允許在 VideoStation、AudioStation 和 Photos 等中使用遠程 NFS/CIFS 共享文件夾."
} }
}, },
"revert": { "revert": {
@ -562,41 +562,41 @@
"sensors": { "sensors": {
"system": false, "system": false,
"description": { "description": {
"en_US": "This script installs the sensors and fancontrol tools for CPU monitoring and fan control, which can be adjusted through the Fancontrol in the scheduled task.", "en_US": "This script installs the sensors package, which is used to monitor the temperature of the CPU and other components.",
"ar_SA": "هذا البرنامج النصي يقوم بتثبيت أدوات sensors و fancontrol لمراقبة وحدة المعالجة المركزية والتحكم في المروحة، والتي يمكن ضبطها من خلال Fancontrol في المهمة المجدولة.", "ar_SA": "يقوم هذا البرنامج النصي بتثبيت حزمة sensors التي تُستخدم لمراقبة درجة حرارة وحدة المعالجة المركزية وغيرها من المكونات.",
"de_DE": "Dieses Skript installiert die Werkzeuge sensors und fancontrol zur CPU-Überwachung und Lüftersteuerung, die über Fancontrol in der geplanten Aufgabe angepasst werden können.", "de_DE": "Dieser Skript installiert das sensors Paket, das verwendet wird, um die Temperatur des CPUs und anderer Komponenten zu überwachen.",
"es_ES": "Este script instala las herramientas sensors y fancontrol para la monitorización de la CPU y el control del ventilador, que se pueden ajustar mediante Fancontrol en la tarea programada.", "es_ES": "Este script instala el paquete sensors, que se utiliza para monitorear la temperatura de la CPU y otros componentes.",
"fr_FR": "Ce script installe les outils sensors et fancontrol pour la surveillance du processeur et le contrôle du ventilateur, qui peuvent être ajustés via Fancontrol dans la tâche planifiée.", "fr_FR": "Ce script installe le package sensors, qui est utilisé pour surveiller la température du CPU et d'autres composants.",
"ja_JP": "このスクリプトは、CPU監視とファン制御のためのsensorsおよびfancontrolツールをインストールします。これは、スケジュールされたタスクのFancontrolを介して調整できます。", "ja_JP": "このスクリプトは、CPUおよび他のコンポーネントの温度を監視するために使用されるsensorsパッケージをインストールします.",
"ko_KR": "이 스크립트는 CPU 모니터링 및 팬 제어를 위한 sensors 및 fancontrol 도구를 설치합니다. 이는 예약된 작업의 Fancontrol을 통해 조정할 수 있습니다.", "ko_KR": "이 스크립트는 CPU 및 다른 구성 요소의 온도를 모니터링하는 데 사용되는 sensors 패키지를 설치합니다.",
"ru_RU": "Этот скрипт устанавливает инструменты sensors и fancontrol для мониторинга ЦП и управления вентилятором, которые можно настроить через Fancontrol в запланированной задаче.", "ru_RU": "Этот скрипт устанавливает пакет sensors, который используется для мониторинга температуры процессора и других компонентов.",
"th_TH": "สคริปต์นี้ติดตั้งเครื่องมือ sensors และ fancontrol สำหรับการตรวจสอบ CPU และการควบคุมพัดลมซึ่งสามารถปรับได้ผ่าน Fancontrol ในงานที่กำหนดเวลา", "th_TH": "สคริปต์นี้จะติดตั้งแพ็กเกจ sensors ซึ่งใช้สำหรับตรวจสอบอุณหภูมิของ CPU และองค์ประกอบอื่น ๆ",
"tr_TR": "Bu betik, CPU izleme ve fan kontrolü için sensors ve fancontrol araçlarını yük합니다. Bu, planlı görevdeki Fancontrol을 통해 조정할 수 있습니다.", "tr_TR": "Bu komut dosyası, CPU ve diğer bileşenlerin sıcaklığını izlemek için kullanılan sensors paketini yükler.",
"uk_UA": "Цей скрипт встановлює інструменти sensors і fancontrol для моніторингу ЦП і керування вентилятором, які можна налаштувати через Fancontrol у запланованій задачі.", "uk_UA": "Цей скрипт встановлює пакет sensors, який використовується для моніторингу температури процесора та інших компонентів.",
"vi_VN": "Đoạn mã này cài đặt các công cụ sensors và fancontrol để giám sát CPU và điều khiển quạt, có thể điều chỉnh thông qua Fancontrol trong tác vụ đã lên lịch.", "vi_VN": "Tập lệnh này cài đặt gói sensors, được sử dụng để giám sát nhiệt độ của CPU và các thành phần khác.",
"zh_CN": "此脚本安装 sensors 和 fancontrol 工具, 用于监视 CPU 和风扇控制, 可通过计划任务中 Fancontrol 调整风扇具体参数.", "zh_CN": "此脚本安装 sensors 工具, 用于监视 CPU 和其他组件的温度.",
"zh_HK": "此腳本安裝 sensors 和 fancontrol 套件, 用於監視 CPU 和风扇控制, 可通過計劃任務中 Fancontrol 調整風扇具體參數.", "zh_HK": "此腳本安裝 sensors 套件, 用於監視 CPU 和其他組件的溫度.",
"zh_TW": "此腳本安裝 sensors 和 fancontrol 套件, 用於監視 CPU 和风扇控制, 可通過計劃任務中 Fancontrol 調整風扇具體參數." "zh_TW": "此腳本安裝 sensors 套件, 用於監視 CPU 和其他組件的溫度."
} }
}, },
"setrootpw": { "setrootpw": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Set root password and enable ssh/sftp. Please modify PW='' to the desired password in DSM Task Scheduler and run the task.", "en_US": "Set root password and enable ssh/sftp. Please modify PW=\"\" to the desired password in DSM Task Scheduler and run the task.",
"ar_SA": "قم بتعيين كلمة مرور root وتمكين ssh/sftp. يرجى تعديل PW='' إلى كلمة المرور المطلوبة في جدول المهام DSM وتشغيل المهمة.", "ar_SA": "قم بتعيين كلمة مرور root وتمكين ssh/sftp. يرجى تعديل PW=\"\" إلى كلمة المرور المطلوبة في جدول المهام DSM وتشغيل المهمة.",
"de_DE": "Legen Sie das Root-Passwort fest und aktivieren Sie ssh/sftp. Bitte ändern Sie PW='' in der DSM-Aufgabenplanung in das gewünschte Passwort und führen Sie die Aufgabe aus.", "de_DE": "Legen Sie das Root-Passwort fest und aktivieren Sie ssh/sftp. Bitte ändern Sie PW=\"\" in der DSM-Aufgabenplanung in das gewünschte Passwort und führen Sie die Aufgabe aus.",
"es_ES": "Establece la contraseña de root y habilita ssh/sftp. Por favor, modifique PW='' a la contraseña deseada en el Programador de Tareas de DSM y ejecute la tarea.", "es_ES": "Establece la contraseña de root y habilita ssh/sftp. Por favor, modifique PW=\"\" a la contraseña deseada en el Programador de Tareas de DSM y ejecute la tarea.",
"fr_FR": "Définissez le mot de passe root et activez ssh/sftp. Veuillez modifier PW='' en le mot de passe souhaité dans le planificateur de tâches DSM et exécutez la tâche.", "fr_FR": "Définissez le mot de passe root et activez ssh/sftp. Veuillez modifier PW=\"\" en le mot de passe souhaité dans le planificateur de tâches DSM et exécutez la tâche.",
"ja_JP": "ルートパスワードを設定し、ssh/sftpを有効にします. DSM タスクスケジューラで PW='' を希望のパスワードに変更してタスクを実行してください.", "ja_JP": "ルートパスワードを設定し、ssh/sftpを有効にします. DSM タスクスケジューラで PW=\"\" を希望のパスワードに変更してタスクを実行してください.",
"ko_KR": "루트 암호를 설정하고 ssh/sftp를 활성화합니다. DSM 작업 스케줄러에서 PW=''를 원하는 암호로 수정하고 작업을 실행하십시오.", "ko_KR": "루트 암호를 설정하고 ssh/sftp를 활성화합니다. DSM 작업 스케줄러에서 PW=\"\"를 원하는 암호로 수정하고 작업을 실행하십시오.",
"ru_RU": "Установите пароль root и включите ssh/sftp. Пожалуйста, измените PW='' на желаемый пароль в планировщике задач DSM и запустите задачу.", "ru_RU": "Установите пароль root и включите ssh/sftp. Пожалуйста, измените PW=\"\" на желаемый пароль в планировщике задач DSM и запустите задачу.",
"th_TH": "ตั้งรหัสผ่าน root และเปิดใช้งาน ssh/sftp โปรดแก้ไข PW='' เป็นรหัสผ่านที่ต้องการในตัวจัดการงาน DSM และเริ่มการทำงาน", "th_TH": "ตั้งรหัสผ่าน root และเปิดใช้งาน ssh/sftp โปรดแก้ไข PW=\"\" เป็นรหัสผ่านที่ต้องการในตัวจัดการงาน DSM และเริ่มการทำงาน",
"tr_TR": "Kök parolasını ayarlayın ve ssh/sftp'yi etkinleştirin. Lütfen DSM Görev Zamanlayıcısında PW='''yi istenen parola olarak değiştirin ve görevi çalıştırın.", "tr_TR": "Kök parolasını ayarlayın ve ssh/sftp'yi etkinleştirin. Lütfen DSM Görev Zamanlayıcısında PW=\"\"'yi istenen parola olarak değiştirin ve görevi çalıştırın.",
"uk_UA": "Встановіть пароль root та увімкніть ssh/sftp. Будь ласка, змініть PW='' на бажаний пароль в планувальнику завдань DSM та запустіть завдання.", "uk_UA": "Встановіть пароль root та увімкніть ssh/sftp. Будь ласка, змініть PW=\"\" на бажаний пароль в планувальнику завдань DSM та запустіть завдання.",
"vi_VN": "Đặt mật khẩu root và kích hoạt ssh/sftp. Vui lòng sửa đổi PW='' thành mật khẩu mong muốn trong Lịch trình nhiệm vụ DSM và chạy nhiệm vụ.", "vi_VN": "Đặt mật khẩu root và kích hoạt ssh/sftp. Vui lòng sửa đổi PW=\"\" thành mật khẩu mong muốn trong Lịch trình nhiệm vụ DSM và chạy nhiệm vụ.",
"zh_CN": "设置 root 密码并启用 ssh/sftp. 请在 DSM 计划任务中将 PW='' 修改为所需的密码并运行该任务.", "zh_CN": "设置 root 密码并启用 ssh/sftp. 请在 DSM 计划任务中将 PW=\"\" 修改为所需的密码并运行该任务.",
"zh_HK": "設置 root 密碼並啟用 ssh/sftp. 請在 DSM 計劃任務中將 PW='' 修改為所需的密碼並運行該任務.", "zh_HK": "設置 root 密碼並啟用 ssh/sftp. 請在 DSM 計劃任務中將 PW=\"\" 修改為所需的密碼並運行該任務.",
"zh_TW": "設置 root 密碼並啟用 ssh/sftp. 請在 DSM 計劃任務中將 PW='' 修改為所需的密碼並執行該任務." "zh_TW": "設置 root 密碼並啟用 ssh/sftp. 請在 DSM 計劃任務中將 PW=\"\" 修改為所需的密碼並執行該任務."
} }
}, },
"smartctl": { "smartctl": {
@ -662,41 +662,41 @@
"synoconfbkp": { "synoconfbkp": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Automatically backup system config settings to the bootloader disk(<loader disk>/p1/scbk/) at bootup and shutdown. Parameters: $1 - number of saves, default 7; $2 - file name prefix, default 'bkp'.", "en_US": "Automatically backup system config settings to the bootloader disk(<loader disk>/p1/scbk/) at bootup and shutdown. Parameters: $1 - number of saves, default 7; $2 - file name prefix, default \"bkp\".",
"ar_SA": "قم بنسخ احتياطي تلقائيًا لإعدادات تكوين النظام إلى قرص البدء (<قرص البدء>/p1/scbk/) عند التشغيل والإيقاف. المعلمات: $1 - عدد الحفظ، الافتراضي 7؛ $2 - بادئة اسم الملف، الافتراضي 'bkp'.", "ar_SA": "قم بنسخ احتياطي تلقائيًا لإعدادات تكوين النظام إلى قرص البدء (<قرص البدء>/p1/scbk/) عند التشغيل والإيقاف. المعلمات: $1 - عدد الحفظ، الافتراضي 7؛ $2 - بادئة اسم الملف، الافتراضي \"bkp\".",
"de_DE": "Sichert automatisch die Systemkonfigurationseinstellungen auf der Bootloader-Festplatte (<Bootloader-Festplatte>/p1/scbk/) beim Booten und Herunterfahren. Parameter: $1 - Anzahl der Sicherungen, Standard 7; $2 - Dateiname-Präfix, Standard 'bkp'.", "de_DE": "Sichert automatisch die Systemkonfigurationseinstellungen auf der Bootloader-Festplatte (<Bootloader-Festplatte>/p1/scbk/) beim Booten und Herunterfahren. Parameter: $1 - Anzahl der Sicherungen, Standard 7; $2 - Dateiname-Präfix, Standard \"bkp\".",
"es_ES": "Realiza automáticamente una copia de seguridad de la configuración del sistema en el disco de arranque (<disco de arranque>/p1/scbk/) al arrancar y apagar. Parámetros: $1 - número de copias, por defecto 7; $2 - prefijo del nombre del archivo, por defecto 'bkp'.", "es_ES": "Realiza automáticamente una copia de seguridad de la configuración del sistema en el disco de arranque (<disco de arranque>/p1/scbk/) al arrancar y apagar. Parámetros: $1 - número de copias, por defecto 7; $2 - prefijo del nombre del archivo, por defecto \"bkp\".",
"fr_FR": "Sauvegarde automatiquement les paramètres de configuration du système sur le disque de démarrage (<disque de démarrage>/p1/scbk/) au démarrage et à l'arrêt. Paramètres : $1 - nombre de sauvegardes, par défaut 7 ; $2 - préfixe du nom de fichier, par défaut 'bkp'.", "fr_FR": "Sauvegarde automatiquement les paramètres de configuration du système sur le disque de démarrage (<disque de démarrage>/p1/scbk/) au démarrage et à l'arrêt. Paramètres : $1 - nombre de sauvegardes, par défaut 7 ; $2 - préfixe du nom de fichier, par défaut \"bkp\".",
"ja_JP": "システム構成設定をブートローダーディスク (<ブートローダーディスク>/p1/scbk/) に自動的にバックアップします. 起動時とシャットダウン時に実行されます. パラメータ: $1 - 保存回数、デフォルト 7; $2 - ファイル名のプレフィックス、デフォルト 'bkp'.", "ja_JP": "システム構成設定をブートローダーディスク (<ブートローダーディスク>/p1/scbk/) に自動的にバックアップします. 起動時とシャットダウン時に実行されます. パラメータ: $1 - 保存回数、デフォルト 7; $2 - ファイル名のプレフィックス、デフォルト \"bkp\".",
"ko_KR": "시스템 구성 설정을 부트로더 디스크(<부트로더 디스크>/p1/scbk/)에 부팅 및 종료시 자동으로 백업합니다. 매개변수: $1 - 저장 횟수, 기본값 7; $2 - 파일 이름 접두사, 기본값 'bkp'.", "ko_KR": "시스템 구성 설정을 부트로더 디스크(<부트로더 디스크>/p1/scbk/)에 부팅 및 종료시 자동으로 백업합니다. 매개변수: $1 - 저장 횟수, 기본값 7; $2 - 파일 이름 접두사, 기본값 \"bkp\".",
"ru_RU": "Автоматическое резервное копирование настроек конфигурации системы на диске загрузчика (<диск загрузчика>/p1/scbk/) при загрузке и выключении. Параметры: $1 - количество сохранений, по умолчанию 7; $2 - префикс имени файла, по умолчанию 'bkp'.", "ru_RU": "Автоматическое резервное копирование настроек конфигурации системы на диске загрузчика (<диск загрузчика>/p1/scbk/) при загрузке и выключении. Параметры: $1 - количество сохранений, по умолчанию 7; $2 - префикс имени файла, по умолчанию \"bkp\".",
"th_TH": "สำรองข้อมูลการตั้งค่าระบบโดยอัตโนมัติไปยังดิสก์โหลด (<ดิสก์โหลด>/p1/scbk/) ขณะเปิดเครื่องและปิดเครื่อง พารามิเตอร์: $1 - จำนวนการบันทึก, ค่าเริ่มต้น 7; $2 - คำนำหน้าชื่อไฟล์, ค่าเริ่มต้น 'bkp'.", "th_TH": "สำรองข้อมูลการตั้งค่าระบบโดยอัตโนมัติไปยังดิสก์โหลด (<ดิสก์โหลด>/p1/scbk/) ขณะเปิดเครื่องและปิดเครื่อง พารามิเตอร์: $1 - จำนวนการบันทึก, ค่าเริ่มต้น 7; $2 - คำนำหน้าชื่อไฟล์, ค่าเริ่มต้น \"bkp\".",
"tr_TR": "Sistem yapılandırma ayarlarını başlatma ve kapatma sırasında önyükleme diski (<önyükleme diski>/p1/scbk/) üzerine otomatik olarak yedekleyin. Parametreler: $1 - kayıt sayısı, varsayılan 7; $2 - dosya adı öneki, varsayılan 'bkp'.", "tr_TR": "Sistem yapılandırma ayarlarını başlatma ve kapatma sırasında önyükleme diski (<önyükleme diski>/p1/scbk/) üzerine otomatik olarak yedekleyin. Parametreler: $1 - kayıt sayısı, varsayılan 7; $2 - dosya adı öneki, varsayılan \"bkp\".",
"uk_UA": "Автоматичне резервне копіювання налаштувань конфігурації системи на диску завантажувача (<диск завантажувача>/p1/scbk/) під час завантаження та вимкнення. Параметри: $1 - кількість збережень, за замовчуванням 7; $2 - префікс імені файлу, за замовчуванням 'bkp'.", "uk_UA": "Автоматичне резервне копіювання налаштувань конфігурації системи на диску завантажувача (<диск завантажувача>/p1/scbk/) під час завантаження та вимкнення. Параметри: $1 - кількість збережень, за замовчуванням 7; $2 - префікс імені файлу, за замовчуванням \"bkp\".",
"vi_VN": "Sao lưu tự động cài đặt cấu hình hệ thống vào ổ đĩa bootloader (<ổ đĩa bootloader>/p1/scbk/) khi khởi động và tắt máy. Tham số: $1 - số lần lưu, mặc định 7; $2 - tiền tố tên tệp, mặc định 'bkp'.", "vi_VN": "Sao lưu tự động cài đặt cấu hình hệ thống vào ổ đĩa bootloader (<ổ đĩa bootloader>/p1/scbk/) khi khởi động và tắt máy. Tham số: $1 - số lần lưu, mặc định 7; $2 - tiền tố tên tệp, mặc định \"bkp\".",
"zh_CN": "在启动和关机时自动备份系统配置设置到引导加载器磁盘 (<引导加载器磁盘>/p1/scbk/). 参数: $1 - 保存次数, 默认 7; $2 - 文件名前缀, 默认 'bkp'.", "zh_CN": "在启动和关机时自动备份系统配置设置到引导加载器磁盘 (<引导加载器磁盘>/p1/scbk/). 参数: $1 - 保存次数, 默认 7; $2 - 文件名前缀, 默认 \"bkp\".",
"zh_HK": "在啟動和關機時自動備份系統設定到引導載入器磁碟 (<引導載入器磁碟>/p1/scbk/). 參數: $1 - 保存次數, 預設 7; $2 - 檔案名稱前綴, 預設 'bkp'.", "zh_HK": "在啟動和關機時自動備份系統設定到引導載入器磁碟 (<引導載入器磁碟>/p1/scbk/). 參數: $1 - 保存次數, 預設 7; $2 - 檔案名稱前綴, 預設 \"bkp\".",
"zh_TW": "在開機和關機時自動備份系統設定到引導載入器磁碟 (<引導載入器磁碟>/p1/scbk/). 參數: $1 - 保存次數, 預設 7; $2 - 檔案名稱前綴, 預設 'bkp'." "zh_TW": "在開機和關機時自動備份系統設定到引導載入器磁碟 (<引導載入器磁碟>/p1/scbk/). 參數: $1 - 保存次數, 預設 7; $2 - 檔案名稱前綴, 預設 \"bkp\"."
} }
}, },
"tad6s4n10g": { "tad6s4n10g": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Control TANK TAD6S4N10G machine DTS generation and button events, please modify the content of the Net-Button-3s Net-Button-9s Copy-Button-3s Copy-Button-9s tasks in the scheduled tasks.", "en_US": "Control TANK TAD6S4N10G button events, please modify the content of the \"Net-Button\" and \"Copy-Button\" tasks in the scheduled tasks.",
"ar_SA": "التحكم في توليد DTS لجهاز TANK TAD6S4N10G وأحداث الأزرار، يرجى تعديل محتوى المهام المجدولة Net-Button-3s Net-Button-9s Copy-Button-3s Copy-Button-9s.", "ar_SA": "للتحكم في أحداث زر TANK TAD6S4N10G، يرجى تعديل محتوى مهام \"Net-Button\" و \"Copy-Button\" في المهام المجدولة.",
"de_DE": "Steuerung der DTS-Generierung und der Tastenereignisse der TANK TAD6S4N10G-Maschine. Bitte ändern Sie den Inhalt der Aufgaben Net-Button-3s, Net-Button-9s, Copy-Button-3s und Copy-Button-9s im Zeitplan.", "de_DE": "Steuert die TANK TAD6S4N10G-Buttonereignisse, bitte ändern Sie den Inhalt der \"Net-Button\" und \"Copy-Button\"-Aufgaben im geplanten Aufgabenbereich.",
"es_ES": "Control de la generación de DTS de la máquina TANK TAD6S4N10G y eventos de botones, por favor modifique el contenido de las tareas programadas Net-Button-3s, Net-Button-9s, Copy-Button-3s y Copy-Button-9s.", "es_ES": "Controla los eventos de los botones TANK TAD6S4N10G, por favor modifica el contenido de las tareas \"Net-Button\" y \"Copy-Button\" en las tareas programadas.",
"fr_FR": "Contrôle de la génération DTS de la machine TANK TAD6S4N10G et des événements de boutons, veuillez modifier le contenu des tâches planifiées Net-Button-3s, Net-Button-9s, Copy-Button-3s et Copy-Button-9s.", "fr_FR": "Contrôle les événements des boutons TANK TAD6S4N10G, veuillez modifier le contenu des tâches \"Net-Button\" et \"Copy-Button\" dans les tâches planifiées.",
"ja_JP": "Tank TAD6S4N10G マシンの DTS 生成とボタン イベントを制御します。スケジュールされたタスクの Net-Button-3s、Net-Button-9s、Copy-Button-3s、および Copy-Button-9s の内容を変更してください。", "ja_JP": "Tank TAD6S4N10G ボタンイベントを制御します。スケジュールされたタスクの \"Net-Button\" と \"Copy-Button\" の内容を変更してください。",
"ko_KR": "TANK TAD6S4N10G 기계의 DTS 생성 및 버튼 이벤트를 제어합니다. 예약된 작업의 Net-Button-3s, Net-Button-9s, Copy-Button-3s 및 Copy-Button-9s의 내용을 수정하십시오.", "ko_KR": "TANK TAD6S4N10G 버튼 이벤트를 제어합니다. 예약된 작업의 \"Net-Button\" 및 \"Copy-Button\" 작업 내용을 수정하십시오.",
"ru_RU": "Управление генерацией DTS и событиями кнопок машины TANK TAD6S4N10G, пожалуйста, измените содержимое задач Net-Button-3s, Net-Button-9s, Copy-Button-3s и Copy-Button-9s в планировщике.", "ru_RU": "Управляет событиями кнопок TANK TAD6S4N10G, пожалуйста, измените содержимое задач \"Net-Button\" и \"Copy-Button\" в планированных задачах.",
"th_TH": "ควบคุมการสร้าง DTS ของเครื่อง TANK TAD6S4N10G และเหตุการณ์ปุ่มโปรดแก้ไขเนื้อหาของงานที่กำหนดเวลา Net-Button-3s, Net-Button-9s, Copy-Button-3s และ Copy-Button-9s", "th_TH": "ควบคุมเหตุการณ์ของปุ่ม TANK TAD6S4N10G โปรดแก้ไขเนื้อหาของงาน \"Net-Button\" และ \"Copy-Button\" ในงานที่กำหนด",
"tr_TR": "TANK TAD6S4N10G makinesinin DTS üretimini ve düğme olaylarını kontrol edin, lütfen planlı görevlerdeki Net-Button-3s, Net-Button-9s, Copy-Button-3s ve Copy-Button-9s görevlerinin içeriğini değiştirin.", "tr_TR": "TANK TAD6S4N10G düğmesi olaylarını kontrol eder, lütfen planlanmış görevlerde \"Net-Button\" ve \"Copy-Button\" görevlerinin içeriğini değiştirin.",
"uk_UA": "Контроль генерації DTS машини TANK TAD6S4N10G та подій кнопок, будь ласка, змініть вміст запланованих завдань Net-Button-3s, Net-Button-9s, Copy-Button-3s та Copy-Button-9s.", "uk_UA": "Управляє події кнопок TANK TAD6S4N10G, будь ласка, змінюйте вміст завдань \"Net-Button\" та \"Copy-Button\" у розкладаних завданнях.",
"vi_VN": "Điều khiển việc tạo DTS của máy TANK TAD6S4N10G và sự kiện nút, vui lòng sửa đổi nội dung của các tác vụ đã lên lịch Net-Button-3s, Net-Button-9s, Copy-Button-3s và Copy-Button-9s.", "vi_VN": "Quản lý sự kiện của nút TANK TAD6S4N10G, vui lòng thay đổi nội dung của các tác vụ \"Net-Button\" và \"Copy-Button\" trong các tác vụ được lập lịch.",
"zh_CN": "用于控制TANK TAD6S4N10G 机器的 DTS 生成 和 按钮事件, 事件内容请自行修改 计划任务中 Net-Button-3s Net-Button-9s Copy-Button-3s Copy-Button-9s 几个任务的内容.", "zh_CN": "用于控制TANK TAD6S4N10G 按钮事件, 事件内容请自行修改 计划任务中 \"Net-Button\" 和 \"Copy-Button\" 两个任务的内容.",
"zh_HK": "用於控制TANK TAD6S4N10G 機器的 DTS 生成 和 按鈕事件, 事件內容請自行修改 計劃任務中 Net-Button-3s Net-Button-9s Copy-Button-3s Copy-Button-9s 幾個任務的內容.", "zh_HK": "用於控制TANK TAD6S4N10G 按鈕事件, 事件內容請自行修改 計劃任務中 \"Net-Button\" 和 \"Copy-Button\" 兩個任務的內容.",
"zh_TW": "用於控制TANK TAD6S4N10G 機器的 DTS 生成 和 按鈕事件, 事件內容請自行修改 計劃任務中 Net-Button-3s Net-Button-9s Copy-Button-3s Copy-Button-9s 幾個任務的內容." "zh_TW": "用於控制TANK TAD6S4N10G 按鈕事件, 事件內容請自行修改 計劃任務中 \"Net-Button\" 和 \"Copy-Button\" 兩個任務的內容."
} }
}, },
"trivial": { "trivial": {
@ -762,21 +762,21 @@
"vmtools": { "vmtools": {
"system": false, "system": false,
"description": { "description": {
"en_US": "Automatically install qemu-ga or open-vm-tools according to the environment. (Physical machines are not enabled by default, no need to cancel)", "en_US": "qemu-ga & open-vm-tools.",
"ar_SA": "تثبيت qemu-ga أو open-vm-tools تلقائيًا وفقًا للبيئة. (لا يتم تمكين الأجهزة المادية بشكل افتراضي، ولا حاجة للإلغاء)", "ar_SA": "qemu-ga & open-vm-tools.",
"de_DE": "Installieren Sie qemu-ga oder open-vm-tools automatisch entsprechend der Umgebung. (Physische Maschinen sind standardmäßig nicht aktiviert, keine Notwendigkeit zum Abbrechen)", "de_DE": "qemu-ga & open-vm-tools.",
"es_ES": "Instalar qemu-ga o open-vm-tools automáticamente según la entorno. (Las máquinas físicas no están activadas de forma predeterminada, no es necesario cancelar)", "es_ES": "qemu-ga & open-vm-tools.",
"fr_FR": "Installer automatiquement qemu-ga ou open-vm-tools en fonction de l'environnement. (Les machines physiques ne sont pas activées par défaut, pas besoin d'annuler)", "fr_FR": "qemu-ga & open-vm-tools.",
"ja_JP": "環境に応じて qemu-ga または open-vm-tools を自動的にインストールします。 (物理マシンはデフォルトで有効になっていないため、キャンセルする必要はありません)", "ja_JP": "qemu-ga & open-vm-tools.",
"ko_KR": "환경에 따라 qemu-ga 또는 open-vm-tools를 자동으로 설치합니다. (물리적 머신은 기본적으로 활성화되지 않으므로 취소할 필요가 없습니다)", "ko_KR": "qemu-ga & open-vm-tools.",
"ru_RU": "Автоматическая установка qemu-ga или open-vm-tools в зависимости от окружения. (Физические машины по умолчанию не включены, отменять не нужно)", "ru_RU": "qemu-ga & open-vm-tools.",
"th_TH": "ติดตั้ง qemu-ga หรือ open-vm-tools โดยอัตโนมัติตามสภาพแวดล้อม (เครื่องจริงจะไม่เปิดใช้งานตามค่าเริ่มต้น ไม่จำเป็นต้องยกเลิก)", "th_TH": "qemu-ga & open-vm-tools.",
"tr_TR": "Ortamına göre qemu-ga veya open-vm-tools'u otomatik olarak yükleyin. (Fiziksel makineler varsayılan olarak etkinleştirilmez, iptal etmeye gerek yok)", "tr_TR": "qemu-ga & open-vm-tools.",
"uk_UA": "Автоматична установка qemu-ga або open-vm-tools відповідно до середовища. (Фізичні машини за замовчуванням не активовані, скасовувати не потрібно)", "uk_UA": "qemu-ga & open-vm-tools.",
"vi_VN": " Tự động cài đặt qemu-ga hoặc open-vm-tools theo môi trường. (Máy vật lý không được kích hoạt theo mặc định, không cần hủy bỏ)", "vi_VN": "qemu-ga & open-vm-tools.",
"zh_CN": "根据环境自动安装 qemu-ga 或者 open-vm-tools. (物理机默认不会启用, 不需要取消)", "zh_CN": "qemu-ga & open-vm-tools.",
"zh_HK": "根据环境自动安装 qemu-ga 或者 open-vm-tools. (物理机默认不会启用, 不需要取消)", "zh_HK": "qemu-ga & open-vm-tools.",
"zh_TW": "根據環境自動安裝 qemu-ga 或者 open-vm-tools. (物理機默認不會啟用, 不需要取消)" "zh_TW": "qemu-ga & open-vm-tools."
} }
}, },
"wireless": { "wireless": {
@ -814,9 +814,9 @@
"tr_TR": "Ağ cihazları için Wake-on-lan'ı zorla etkinleştirin.", "tr_TR": "Ağ cihazları için Wake-on-lan'ı zorla etkinleştirin.",
"uk_UA": "Примусове включення Wake-on-lan для мережевих пристроїв.", "uk_UA": "Примусове включення Wake-on-lan для мережевих пристроїв.",
"vi_VN": "Có;puxáy awake-on-lan cho thiết bị mạng.", "vi_VN": "Có;puxáy awake-on-lan cho thiết bị mạng.",
"zh_CN": "强制启用网络设备的 Wake-on-lan.", "zh_CN": "强制启用网络设备的 Wake-on-lan (网络唤醒).",
"zh_HK": "強制啟用網絡設備的 Wake-on-lan.", "zh_HK": "強制啟用網絡設備的 Wake-on-lan (網絡喚醒).",
"zh_TW": "強制啟用網路設備的 Wake-on-lan." "zh_TW": "強制啟用網路設備的 Wake-on-lan (網路喚醒)."
} }
} }
} }

Binary file not shown.

View File

@ -159,6 +159,16 @@
"RS822RP+" "RS822RP+"
] ]
}, },
"v1000nk": {
"productvers": {
"7.1": "7.1-5.10.55",
"7.2": "7.2-5.10.55"
},
"models": [
"DS1525+",
"DS925+"
]
},
"epyc7002": { "epyc7002": {
"productvers": { "productvers": {
"7.1": "7.1-5.10.55", "7.1": "7.1-5.10.55",
@ -167,35 +177,5 @@
"models": [ "models": [
"SA6400" "SA6400"
] ]
},
"geminilakenk": {
"productvers": {
"7.1": "7.1-5.10.55",
"7.2": "7.2-5.10.55"
},
"models": [
"DS425+"
]
},
"r1000nk": {
"productvers": {
"7.1": "7.1-5.10.55",
"7.2": "7.2-5.10.55"
},
"models": [
"DS725+"
]
},
"v1000nk": {
"productvers": {
"7.1": "7.1-5.10.55",
"7.2": "7.2-5.10.55"
},
"models": [
"DS1525+",
"DS1825+",
"DS925+",
"RS2825RP+"
]
} }
} }

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -215,12 +215,6 @@
"sum": "00000000000000000000000000000000" "sum": "00000000000000000000000000000000"
} }
}, },
"DS1825+": {
"7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS1825%2B_72806.pat",
"sum": "00000000000000000000000000000000"
}
},
"DS220+": { "DS220+": {
"7.2.2-72806-0": { "7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS220%2B_72806.pat", "url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS220%2B_72806.pat",
@ -405,12 +399,6 @@
"sum": "00000000000000000000000000000000" "sum": "00000000000000000000000000000000"
} }
}, },
"DS425+": {
"7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS425%2B_72806.pat",
"sum": "00000000000000000000000000000000"
}
},
"DS620slim": { "DS620slim": {
"7.2.2-72806-0": { "7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS620slim_72806.pat", "url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS620slim_72806.pat",
@ -481,12 +469,6 @@
"sum": "00000000000000000000000000000000" "sum": "00000000000000000000000000000000"
} }
}, },
"DS725+": {
"7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS725%2B_72806.pat",
"sum": "00000000000000000000000000000000"
}
},
"DS920+": { "DS920+": {
"7.2.2-72806-0": { "7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS920%2B_72806.pat", "url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_DS920%2B_72806.pat",
@ -921,12 +903,6 @@
"sum": "00000000000000000000000000000000" "sum": "00000000000000000000000000000000"
} }
}, },
"RS2825RP+": {
"7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS2825RP%2B_72806.pat",
"sum": "00000000000000000000000000000000"
}
},
"RS3618xs": { "RS3618xs": {
"7.2.2-72806-0": { "7.2.2-72806-0": {
"url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS3618xs_72806.pat", "url": "https://global.synologydownload.com/download/DSM/release/7.2.2/72806/DSM_RS3618xs_72806.pat",

Binary file not shown.

View File

@ -28,7 +28,7 @@ BUS=$(getBus "${LOADER_DISK}")
clear clear
COLUMNS=$(ttysize 2>/dev/null | awk '{print $1}') COLUMNS=$(ttysize 2>/dev/null | awk '{print $1}')
COLUMNS=${COLUMNS:-80} COLUMNS=${COLUMNS:-80}
WTITLE="$(printf "$(TEXT "Welcome to %s")" "${RR_TITLE}${RR_RELEASE:+(${RR_RELEASE})}")" WTITLE="$(printf "$(TEXT "Welcome to %s")" "$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")")"
DATE="$(date)" DATE="$(date)"
printf "\033[1;44m%*s\n" "${COLUMNS}" "" printf "\033[1;44m%*s\n" "${COLUMNS}" ""
printf "\033[1;44m%*s\033[A\n" "${COLUMNS}" "" printf "\033[1;44m%*s\033[A\n" "${COLUMNS}" ""
@ -246,12 +246,12 @@ if [ "${USBASINTERNAL}" = "true" ]; then
CMDLINE['usbasinternal']="" CMDLINE['usbasinternal']=""
fi fi
if echo "apollolake geminilake purley geminilakenk" | grep -wq "${PLATFORM}"; then if echo "apollolake geminilake purley" | grep -wq "${PLATFORM}"; then
CMDLINE["nox2apic"]="" CMDLINE["nox2apic"]=""
fi fi
# # Save command line to grubenv RR_CMDLINE= ... nox2apic # # Save command line to grubenv RR_CMDLINE= ... nox2apic
# if echo "apollolake geminilake purley geminilakenk" | grep -wq "${PLATFORM}"; then # if echo "apollolake geminilake purley" | grep -wq "${PLATFORM}"; then
# if grep -Eq "^flags.*x2apic.*" /proc/cpuinfo; then # if grep -Eq "^flags.*x2apic.*" /proc/cpuinfo; then
# checkCmdline "rr_cmdline" "nox2apic" || addCmdline "rr_cmdline" "nox2apic" # checkCmdline "rr_cmdline" "nox2apic" || addCmdline "rr_cmdline" "nox2apic"
# fi # fi
@ -265,7 +265,7 @@ fi
# CMDLINE['modprobe.blacklist']+="sdhci,sdhci_pci,sdhci_acpi" # CMDLINE['modprobe.blacklist']+="sdhci,sdhci_pci,sdhci_acpi"
# fi # fi
# fi # fi
if [ "${DT}" = "true" ] && ! echo "purley broadwellnkv2 epyc7002 geminilakenk r1000nk v1000nk" | grep -wq "${PLATFORM}"; then if [ "${DT}" = "true" ] && ! echo "v1000nk epyc7002 purley broadwellnkv2" | grep -wq "${PLATFORM}"; then
if ! echo "${CMDLINE['modprobe.blacklist']}" | grep -q "mpt3sas"; then if ! echo "${CMDLINE['modprobe.blacklist']}" | grep -q "mpt3sas"; then
[ ! "${CMDLINE['modprobe.blacklist']}" = "" ] && CMDLINE['modprobe.blacklist']+="," [ ! "${CMDLINE['modprobe.blacklist']}" = "" ] && CMDLINE['modprobe.blacklist']+=","
CMDLINE['modprobe.blacklist']+="mpt3sas" CMDLINE['modprobe.blacklist']+="mpt3sas"
@ -277,7 +277,7 @@ fi
# CMDLINE['kvm.ignore_msrs']="1" # CMDLINE['kvm.ignore_msrs']="1"
# CMDLINE['kvm.report_ignored_msrs']="0" # CMDLINE['kvm.report_ignored_msrs']="0"
if echo "apollolake geminilake geminilakenk" | grep -wq "${PLATFORM}"; then if echo "apollolake geminilake" | grep -wq "${PLATFORM}"; then
CMDLINE["intel_iommu"]="igfx_off" CMDLINE["intel_iommu"]="igfx_off"
fi fi

View File

@ -29,7 +29,7 @@ function availableAddons() {
[ -z "${DESC}" ] && DESC="$(readConfigKey "description.en_US" "${D}/manifest.yml")" [ -z "${DESC}" ] && DESC="$(readConfigKey "description.en_US" "${D}/manifest.yml")"
[ -z "${DESC}" ] && DESC="$(readConfigKey "description" "${D}/manifest.yml")" [ -z "${DESC}" ] && DESC="$(readConfigKey "description" "${D}/manifest.yml")"
DESC="$(echo "${DESC}" | tr -d '\n\r\t\\' | sed "s/\"/'/g")" DESC="$(echo "${DESC}" | sed -E 's/["\n]/ /g' | xargs)"
echo "${ADDON} \"${DESC:-"unknown"}\"" echo "${ADDON} \"${DESC:-"unknown"}\""
done <<<"$(find "${ADDONS_PATH}" -maxdepth 1 -type d 2>/dev/null | sort)" done <<<"$(find "${ADDONS_PATH}" -maxdepth 1 -type d 2>/dev/null | sort)"
} }

View File

@ -8,7 +8,7 @@
# shellcheck disable=SC2034 # shellcheck disable=SC2034
RR_VERSION="25.6.5" RR_VERSION="25.5.7"
RR_RELEASE="" RR_RELEASE=""
RR_TITLE="RR v${RR_VERSION}" RR_TITLE="RR v${RR_VERSION}"

View File

@ -38,6 +38,7 @@ function loaderIsConfigured() {
[ ! -f "${MOD_RDGZ_FILE}" ] && return 1 [ ! -f "${MOD_RDGZ_FILE}" ] && return 1
[ -z "$(readConfigKey "zimage-hash" "${USER_CONFIG_FILE}")" ] && return 1 [ -z "$(readConfigKey "zimage-hash" "${USER_CONFIG_FILE}")" ] && return 1
[ -z "$(readConfigKey "ramdisk-hash" "${USER_CONFIG_FILE}")" ] && return 1 [ -z "$(readConfigKey "ramdisk-hash" "${USER_CONFIG_FILE}")" ] && return 1
return 0 # OK return 0 # OK
} }
@ -445,7 +446,7 @@ function connectwlanif() {
# Find and mount the DSM root filesystem # Find and mount the DSM root filesystem
function findDSMRoot() { function findDSMRoot() {
local DSMROOTS="" local DSMROOTS=""
[ -z "${DSMROOTS}" ] && DSMROOTS="$(mdadm --detail --scan 2>/dev/null | grep -v "INACTIVE-ARRAY" | grep -E "name=SynologyNAS:0|name=DiskStation:0|name=SynologyNVR:0|name=BeeStation:0" | awk '{print $2}' | uniq)" [ -z "${DSMROOTS}" ] && DSMROOTS="$(mdadm --detail --scan 2>/dev/null | grep -E "name=SynologyNAS:0|name=DiskStation:0|name=SynologyNVR:0|name=BeeStation:0" | awk '{print $2}' | uniq)"
[ -z "${DSMROOTS}" ] && DSMROOTS="$(lsblk -pno KNAME,PARTN,FSTYPE,FSVER,LABEL | grep -E "sd[a-z]{1,2}1" | grep -w "linux_raid_member" | grep "0.9" | awk '{print $1}')" [ -z "${DSMROOTS}" ] && DSMROOTS="$(lsblk -pno KNAME,PARTN,FSTYPE,FSVER,LABEL | grep -E "sd[a-z]{1,2}1" | grep -w "linux_raid_member" | grep "0.9" | awk '{print $1}')"
echo "${DSMROOTS}" echo "${DSMROOTS}"
return 0 return 0
@ -458,13 +459,8 @@ function fixDSMRootPart() {
if mdadm --detail "${1}" 2>/dev/null | grep -i "State" | grep -iEq "active|FAILED|Not Started"; then if mdadm --detail "${1}" 2>/dev/null | grep -i "State" | grep -iEq "active|FAILED|Not Started"; then
mdadm --stop "${1}" >/dev/null 2>&1 mdadm --stop "${1}" >/dev/null 2>&1
mdadm --assemble --scan >/dev/null 2>&1 mdadm --assemble --scan >/dev/null 2>&1
T="$(blkid -o value -s TYPE "${1}" 2>/dev/null | sed 's/linux_raid_member/ext4/')"
if [ "${T}" = "btrfs" ]; then
btrfs check --readonly "${1}" >/dev/null 2>&1
else
fsck "${1}" >/dev/null 2>&1 fsck "${1}" >/dev/null 2>&1
fi fi
fi
} }
############################################################################### ###############################################################################
@ -489,18 +485,3 @@ function copyDSMFiles() {
return 1 return 1
fi fi
} }
###############################################################################
# Send a webhook notification
# 1 - webhook url
# 2 - message (optional)
function sendWebhook() {
local URL="${1}"
local MSGT="Notification from ${RR_TITLE}${RR_RELEASE:+(${RR_RELEASE})}"
local MSGC="${2:-"test at $(date +'%Y-%m-%d %H:%M:%S')"}"
[ -z "${URL}" ] && return 1
curl -skL -X POST -H "Content-Type: application/json" -d "{\"title\":\"${MSGT}\", \"text\":\"${MSGC}\"}" "${URL}" >/dev/null 2>&1
return $?
}

View File

@ -61,7 +61,7 @@ function getAllModules() {
local N DESC local N DESC
N="$(basename "${F}" .ko)" N="$(basename "${F}" .ko)"
DESC="$(modinfo -F description "${F}" 2>/dev/null)" DESC="$(modinfo -F description "${F}" 2>/dev/null)"
DESC="$(echo "${DESC}" | tr -d '\n\r\t\\' | sed "s/\"/'/g")" DESC="$(echo "${DESC}" | sed -E 's/["\n]/ /g' | xargs)"
echo "${N} \"${DESC:-${N}}\"" echo "${N} \"${DESC:-${N}}\""
done done

View File

@ -28,7 +28,7 @@ checkBootLoader || die "$(TEXT "The loader is corrupted, please rewrite it!")"
clear clear
COLUMNS=$(ttysize 2>/dev/null | awk '{print $1}') COLUMNS=$(ttysize 2>/dev/null | awk '{print $1}')
COLUMNS=${COLUMNS:-80} COLUMNS=${COLUMNS:-80}
TITLE="$(printf "$(TEXT "Welcome to %s")" "${RR_TITLE}${RR_RELEASE:+(${RR_RELEASE})}")" TITLE="$(printf "$(TEXT "Welcome to %s")" "$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")")"
DATE="$(date)" DATE="$(date)"
printf "\033[1;44m%*s\n" "${COLUMNS}" "" printf "\033[1;44m%*s\n" "${COLUMNS}" ""
printf "\033[1;44m%*s\033[A\n" "${COLUMNS}" "" printf "\033[1;44m%*s\033[A\n" "${COLUMNS}" ""
@ -262,15 +262,6 @@ if [ "${DSMLOGO}" = "true" ] && [ -c "/dev/fb0" ] && [ ! "LOCALBUILD" = "${LOADE
python3 "${WORK_PATH}/include/functions.py" makeqr -f "${WORK_PATH}/include/qhxg.png" -l "7" -o "${TMP_PATH}/qrcode_qhxg.png" python3 "${WORK_PATH}/include/functions.py" makeqr -f "${WORK_PATH}/include/qhxg.png" -l "7" -o "${TMP_PATH}/qrcode_qhxg.png"
[ -f "${TMP_PATH}/qrcode_qhxg.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_qhxg.png" >/dev/null 2>&1 || true [ -f "${TMP_PATH}/qrcode_qhxg.png" ] && echo | fbv -acufi "${TMP_PATH}/qrcode_qhxg.png" >/dev/null 2>&1 || true
fi fi
WEBHOOKURL="$(readConfigKey "webhookurl" "${USER_CONFIG_FILE}")"
if [ -n "${WEBHOOKURL}" ] && [ ! -f "${TMP_PATH}/WebhookSent" ]; then
DMI="$(dmesg 2>/dev/null | grep -i "DMI:" | head -1 | sed 's/\[.*\] DMI: //i')"
IP="$(getIP)"
echo "${IP}" | grep -q "^169\.254\." && IP=""
[ -n "${IP}" ] && URL="http://${IP}:${TTYD:-7681}" || URL="http://rr:${TTYD:-7681}"
sendWebhook "${WEBHOOKURL}" "{\"RR\":\"${RR_TITLE}${RR_RELEASE:+(${RR_RELEASE})}\", \"DATE\":\"$(date +'%Y-%m-%d %H:%M:%S')\", \"DMI\":\"${DMI}\", \"URL\":\"${URL}\"}"
touch "${TMP_PATH}/WebhookSent"
fi
# Check memory # Check memory
RAM="$(awk '/MemTotal:/ {printf "%.0f", $2 / 1024}' /proc/meminfo 2>/dev/null)" RAM="$(awk '/MemTotal:/ {printf "%.0f", $2 / 1024}' /proc/meminfo 2>/dev/null)"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -87,7 +87,7 @@ function backtitle() {
if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then
BACKTITLE="LOCAL " BACKTITLE="LOCAL "
fi fi
BACKTITLE+="${RR_TITLE}${RR_RELEASE:+(${RR_RELEASE})}" BACKTITLE+="$([ -z "${RR_RELEASE}" ] && echo "${RR_TITLE}" || echo "${RR_TITLE}(${RR_RELEASE})")"
if [ -n "${MODEL}" ]; then if [ -n "${MODEL}" ]; then
BACKTITLE+=" ${MODEL}(${PLATFORM})" BACKTITLE+=" ${MODEL}(${PLATFORM})"
else else
@ -150,9 +150,9 @@ function modelMenu() {
while true; do while true; do
rm -f "${TMP_PATH}/menu" rm -f "${TMP_PATH}/menu"
FLGNEX=0 FLGNEX=0
IGPU1L=(apollolake geminilake epyc7002 geminilakenk r1000nk v1000nk) IGPU1L=(apollolake geminilake v1000nk epyc7002)
IGPU2L=(epyc7002 geminilakenk r1000nk v1000nk) IGPU2L=(v1000nk epyc7002)
KVER5L=(epyc7002 geminilakenk r1000nk v1000nk) KVER5L=(v1000nk epyc7002)
IGPUID="$(lspci -nd ::300 2>/dev/null | grep "8086" | cut -d' ' -f3 | sed 's/://g')" IGPUID="$(lspci -nd ::300 2>/dev/null | grep "8086" | cut -d' ' -f3 | sed 's/://g')"
NVMEMS=(DS918+ RS1619xs+ DS419+ DS1019+ DS719+ DS1621xs+) NVMEMS=(DS918+ RS1619xs+ DS419+ DS1019+ DS719+ DS1621xs+)
NVMEMD=$(find /sys/devices -type d -name nvme | awk -F'/' '{print NF}' | sort -n | tail -n1) NVMEMD=$(find /sys/devices -type d -name nvme | awk -F'/' '{print NF}' | sort -n | tail -n1)
@ -645,7 +645,7 @@ function addonMenu() {
continue continue
fi fi
DIALOG --title "$(TEXT "Addons")" \ DIALOG --title "$(TEXT "Addons")" \
--menu "$(TEXT "Select an addon")" 0 0 25 --file "${TMP_PATH}/menu" \ --menu "$(TEXT "Select an addon")" 0 0 20 --file "${TMP_PATH}/menu" \
2>"${TMP_PATH}/resp" 2>"${TMP_PATH}/resp"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
resp="$(cat "${TMP_PATH}/resp" 2>/dev/null)" resp="$(cat "${TMP_PATH}/resp" 2>/dev/null)"
@ -978,7 +978,6 @@ function cmdlineMenu() {
MSG+="$(TEXT " * \Z4i915.max_vfs=7\Zn\n Set the maximum number of virtual functions (VFs) that can be created for Intel graphics hardware.\n")" MSG+="$(TEXT " * \Z4i915.max_vfs=7\Zn\n Set the maximum number of virtual functions (VFs) that can be created for Intel graphics hardware.\n")"
MSG+="$(TEXT " * \Z4i915.modeset=0\Zn\n Disable the kernel mode setting (KMS) feature of the i915 driver.\n")" MSG+="$(TEXT " * \Z4i915.modeset=0\Zn\n Disable the kernel mode setting (KMS) feature of the i915 driver.\n")"
MSG+="$(TEXT " * \Z4apparmor.mode=complain\Zn\n Set the AppArmor security module to complain mode.\n")" MSG+="$(TEXT " * \Z4apparmor.mode=complain\Zn\n Set the AppArmor security module to complain mode.\n")"
MSG+="$(TEXT " * \Z4acpi_enforce_resources=lax\Zn\n Resolve the issue of some devices (such as fan controllers) not recognizing or using properly.\n")"
MSG+="$(TEXT " * \Z4pci=nommconf\Zn\n Disable the use of Memory-Mapped Configuration for PCI devices(use this parameter cautiously).\n")" MSG+="$(TEXT " * \Z4pci=nommconf\Zn\n Disable the use of Memory-Mapped Configuration for PCI devices(use this parameter cautiously).\n")"
MSG+="$(TEXT " * \Z4consoleblank=300\Zn\n Set the console to auto turnoff display 300 seconds after no activity (measured in seconds).\n")" MSG+="$(TEXT " * \Z4consoleblank=300\Zn\n Set the console to auto turnoff display 300 seconds after no activity (measured in seconds).\n")"
MSG+="$(TEXT "Please enter the parameter key and value you need to add.\n")" MSG+="$(TEXT "Please enter the parameter key and value you need to add.\n")"
@ -1244,7 +1243,7 @@ function getSynoExtractor() {
RET=$? RET=$?
if [ ${RET} -ne 0 ] || [ ${STATUS:-0} -ne 200 ]; then if [ ${RET} -ne 0 ] || [ ${STATUS:-0} -ne 200 ]; then
rm -f "${OLDPAT_PATH}" rm -f "${OLDPAT_PATH}"
printf "%s\n%s: %d:%d\n%s\n" "$(TEXT "Check internet.")" "$(TEXT "Error")" "${RET}" "${STATUS}" "$(TEXT "(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" >"${LOG_FILE}" printf "%s\n%s: %d:%d\n%s\n" "$(TEXT "Check internet or cache disk space.")" "$(TEXT "Error")" "${RET}" "${STATUS}" "$(TEXT "(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" >"${LOG_FILE}"
return 1 return 1
fi fi
@ -1393,7 +1392,7 @@ function extractDsmFiles() {
rm -f "${PAT_PATH}.downloading" rm -f "${PAT_PATH}.downloading"
if [ ${RET} -ne 0 ] || [ ${STATUS:-0} -ne 200 ]; then if [ ${RET} -ne 0 ] || [ ${STATUS:-0} -ne 200 ]; then
rm -f "${PAT_PATH}" rm -f "${PAT_PATH}"
printf "%s\n%s: %d:%d\n%s\n" "$(TEXT "Check internet.")" "$(TEXT "Error")" "${RET}" "${STATUS}" "$(TEXT "(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" >"${LOG_FILE}" printf "%s\n%s: %d:%d\n%s\n" "$(TEXT "Check internet or cache disk space.")" "$(TEXT "Error")" "${RET}" "${STATUS}" "$(TEXT "(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" >"${LOG_FILE}"
return 1 return 1
fi fi
else else
@ -1796,8 +1795,7 @@ function downloadBackupFiles() {
tar -czf "${TMP_PATH}/scbk.tar.gz" -C "${PART1_PATH}" scbk tar -czf "${TMP_PATH}/scbk.tar.gz" -C "${PART1_PATH}" scbk
if [ -z "${SSH_TTY}" ]; then # web if [ -z "${SSH_TTY}" ]; then # web
mv -f "${TMP_PATH}/scbk.tar.gz" "/var/www/data/scbk.tar.gz" mv -f "${TMP_PATH}/scbk.tar.gz" "/var/www/data/scbk.tar.gz"
HTTP=$(grep -i '^HTTP_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2) URL="http://$(getIP)/scbk.tar.gz"
URL="http://$(getIP):${HTTP:-7080}/scbk.tar.gz"
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(printf "$(TEXT "Please via %s to download the scbk,\nAnd unzip it and back it up in order by file name.")" "${URL}")" 0 0 --msgbox "$(printf "$(TEXT "Please via %s to download the scbk,\nAnd unzip it and back it up in order by file name.")" "${URL}")" 0 0
else else
@ -1839,7 +1837,7 @@ function allowDSMDowngrade() {
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
rm -f "${TMP_PATH}/mdX/etc/VERSION" "${TMP_PATH}/mdX/etc.defaults/VERSION" rm -f "${TMP_PATH}/mdX/etc/VERSION" "${TMP_PATH}/mdX/etc.defaults/VERSION"
@ -1871,7 +1869,7 @@ function resetDSMPassword() {
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
if [ -f "${TMP_PATH}/mdX/etc/shadow" ]; then if [ -f "${TMP_PATH}/mdX/etc/shadow" ]; then
@ -1923,13 +1921,12 @@ function resetDSMPassword() {
NEWPASSWD="$(openssl passwd -6 -salt "$(openssl rand -hex 8)" "${STRPASSWD}")" NEWPASSWD="$(openssl passwd -6 -salt "$(openssl rand -hex 8)" "${STRPASSWD}")"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
sed -i "s|^${USER}:[^:]*|${USER}:${NEWPASSWD}|" "${TMP_PATH}/mdX/etc/shadow" sed -i "s|^${USER}:[^:]*|${USER}:${NEWPASSWD}|" "${TMP_PATH}/mdX/etc/shadow"
sed -i "/^${USER}:/ s/^\(${USER}:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\)[^:]*:/\1:/" "${TMP_PATH}/mdX/etc/shadow" sed -i "/^${USER}:/ s/^\(${USER}:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\)[^:]*:/\1:/" "${TMP_PATH}/mdX/etc/shadow"
sed -i "s|status=on|status=off|g" "${TMP_PATH}/mdX/usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null sed -i "s|status=on|status=off|g" "${TMP_PATH}/mdX/usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null
sed -i "s|list=*$|list=|; s|type=*$|type=none|" "${TMP_PATH}/mdX/usr/syno/etc/packages/SecureSignIn/secure_signin.conf" 2>/dev/null
sync sync
echo "true" >"${TMP_PATH}/isOk" echo "true" >"${TMP_PATH}/isOk"
umount "${TMP_PATH}/mdX" umount "${TMP_PATH}/mdX"
@ -1963,20 +1960,25 @@ function addNewDSMUser() {
password="$(sed -n '2p' "${TMP_PATH}/resp" 2>/dev/null)" password="$(sed -n '2p' "${TMP_PATH}/resp" 2>/dev/null)"
rm -f "${TMP_PATH}/isOk" rm -f "${TMP_PATH}/isOk"
( (
ONBOOTUP=""
ONBOOTUP="${ONBOOTUP}if synouser --enum local | grep -q ^${username}\$; then synouser --setpw ${username} ${password}; else synouser --add ${username} ${password} rr 0 user@rr.com 1; fi\n"
ONBOOTUP="${ONBOOTUP}synogroup --memberadd administrators ${username}\n"
ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_ADDUSER'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n"
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
mkdir -p "${TMP_PATH}/mdX/usr/rr/once.d" if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
{ sqlite3 "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" <<EOF
echo "#!/usr/bin/env bash" DELETE FROM task WHERE task_name LIKE 'RRONBOOTUPRR_ADDUSER';
echo "if synouser --enum local | grep -q ^${username}\$; then synouser --setpw ${username} ${password}; else synouser --add ${username} ${password} rr 0 user@rr.com 1; fi" INSERT INTO task VALUES('RRONBOOTUPRR_ADDUSER', '', 'bootup', '', 1, 0, 0, 0, '', 0, '$(echo -e "${ONBOOTUP}")', 'script', '{}', '', '', '{}', '{}');
echo "synogroup --memberadd administrators ${username}" EOF
} >"${TMP_PATH}/mdX/usr/rr/once.d/addNewDSMUser.sh"
sync sync
echo "true" >"${TMP_PATH}/isOk" echo "true" >"${TMP_PATH}/isOk"
fi
umount "${TMP_PATH}/mdX" umount "${TMP_PATH}/mdX"
done done
rm -rf "${TMP_PATH}/mdX" rm -rf "${TMP_PATH}/mdX"
@ -2001,20 +2003,24 @@ function forceEnableDSMTelnetSSH() {
fi fi
rm -f "${TMP_PATH}/isOk" rm -f "${TMP_PATH}/isOk"
( (
ONBOOTUP=""
ONBOOTUP="${ONBOOTUP}systemctl restart inetd\n"
ONBOOTUP="${ONBOOTUP}synowebapi --exec api=SYNO.Core.Terminal method=set version=3 enable_telnet=true enable_ssh=true ssh_port=22 forbid_console=false\n"
ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_SSH'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n"
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
mkdir -p "${TMP_PATH}/mdX/usr/rr/once.d" if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
{ sqlite3 "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" <<EOF
echo "#!/usr/bin/env bash" DELETE FROM task WHERE task_name LIKE 'RRONBOOTUPRR_SSH';
echo "systemctl restart inetd" INSERT INTO task VALUES('RRONBOOTUPRR_SSH', '', 'bootup', '', 1, 0, 0, 0, '', 0, '$(echo -e "${ONBOOTUP}")', 'script', '{}', '', '', '{}', '{}');
echo "synowebapi -s --exec api=SYNO.Core.Terminal method=set version=3 enable_telnet=true enable_ssh=true ssh_port=22 forbid_console=false" EOF
} >"${TMP_PATH}/mdX/usr/rr/once.d/enableTelnetSSH.sh"
sync sync
echo "true" >"${TMP_PATH}/isOk" echo "true" >"${TMP_PATH}/isOk"
fi
umount "${TMP_PATH}/mdX" umount "${TMP_PATH}/mdX"
done done
rm -rf "${TMP_PATH}/mdX" rm -rf "${TMP_PATH}/mdX"
@ -2048,7 +2054,7 @@ function removeBlockIPDB {
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
rm -f "${TMP_PATH}/mdX/etc/synoautoblock.db" rm -f "${TMP_PATH}/mdX/etc/synoautoblock.db"
@ -2081,7 +2087,7 @@ function disablescheduledTasks {
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
@ -2122,7 +2128,7 @@ function initDSMNetwork {
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
for F in ${TMP_PATH}/mdX/etc/sysconfig/network-scripts/ifcfg-* ${TMP_PATH}/mdX/etc.defaults/sysconfig/network-scripts/ifcfg-*; do for F in ${TMP_PATH}/mdX/etc/sysconfig/network-scripts/ifcfg-* ${TMP_PATH}/mdX/etc.defaults/sysconfig/network-scripts/ifcfg-*; do
@ -2206,48 +2212,6 @@ function keymapMenu() {
loadkeys "/usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz" loadkeys "/usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz"
} }
###############################################################################
# Bootloader notifications (Webhook)
function notificationsMenu() {
MSG=""
MSG+="$(TEXT "Please enter the webhook url and content text.\n")"
MSG+="$(TEXT "The webhook url must be a valid URL (Reference https://webhook-test.com/).\n")"
MSG+="$(TEXT "The notify text is not currently supported, please ignore.\n")"
WEBHOOKURL="$(readConfigKey "webhookurl" "${USER_CONFIG_FILE}")"
# NOTIFYTEXT="$(readConfigKey "notifytext" "${USER_CONFIG_FILE}")"
while true; do
DIALOG --title "$(TEXT "Settings")" \
--extra-button --extra-label "$(TEXT "Test")" \
--form "${MSG}" 10 110 2 "webhookurl" 1 1 "${WEBHOOKURL}" 1 12 93 0 "notifytext" 2 1 "${NOTIFYTEXT}" 2 12 93 0 \
2>"${TMP_PATH}/resp"
RET=$?
case ${RET} in
0)
# ok-button
WEBHOOKURL="$(sed -n '1p' "${TMP_PATH}/resp" 2>/dev/null)"
# NOTIFYTEXT="$(sed -n '2p' "${TMP_PATH}/resp" 2>/dev/null)"
writeConfigKey "webhookurl" "${WEBHOOKURL}" "${USER_CONFIG_FILE}"
# writeConfigKey "notifytext" "${NOTIFYTEXT}" "${USER_CONFIG_FILE}"
break
;;
3)
# extra-button
WEBHOOKURL="$(sed -n '1p' "${TMP_PATH}/resp" 2>/dev/null)"
# NOTIFYTEXT="$(sed -n '2p' "${TMP_PATH}/resp" 2>/dev/null)"
sendWebhook "${WEBHOOKURL}"
;;
1)
# cancel-button
break
;;
255)
# ESC
break
;;
esac
done
}
############################################################################### ###############################################################################
# Permits user edit the user config # Permits user edit the user config
function editUserConfig() { function editUserConfig() {
@ -2306,7 +2270,7 @@ function tryRecoveryDSM() {
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
fixDSMRootPart "${DSMROOTPART}" fixDSMRootPart "${DSMROOTPART}"
T="$(blkid -o value -s TYPE "${DSMROOTPART}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${DSMROOTPART}" 2>/dev/null)"
mount -t "${T:-ext4}" "${DSMROOTPART}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${DSMROOTPART}" "${TMP_PATH}/mdX"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
DIALOG --title "$(TEXT "Settings")" \ DIALOG --title "$(TEXT "Settings")" \
@ -2519,8 +2483,7 @@ function systemReport() {
inxi -c 0 -F >"${TMP_PATH}/system.txt" 2>/dev/null inxi -c 0 -F >"${TMP_PATH}/system.txt" 2>/dev/null
if [ -z "${SSH_TTY}" ]; then # web if [ -z "${SSH_TTY}" ]; then # web
mv -f "${TMP_PATH}/system.txt" "/var/www/data/system.txt" mv -f "${TMP_PATH}/system.txt" "/var/www/data/system.txt"
HTTP=$(grep -i '^HTTP_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2) URL="http://$(getIP)/system.txt"
URL="http://$(getIP):${HTTP:-7080}/system.txt"
MSG="$(printf "$(TEXT "Please via %s to download the system.txt.")" "${URL}")" MSG="$(printf "$(TEXT "Please via %s to download the system.txt.")" "${URL}")"
DIALOG --title "$(TEXT "Settings")" \ DIALOG --title "$(TEXT "Settings")" \
--msgbox "${MSG}" 0 0 --msgbox "${MSG}" 0 0
@ -2541,7 +2504,7 @@ function reportBugs() {
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
for I in ${DSMROOTS}; do for I in ${DSMROOTS}; do
fixDSMRootPart "${I}" fixDSMRootPart "${I}"
T="$(blkid -o value -s TYPE "${I}" 2>/dev/null | sed 's/linux_raid_member/ext4/')" T="$(blkid -o value -s TYPE "${I}" 2>/dev/null)"
mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX" mount -t "${T:-ext4}" "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue [ $? -ne 0 ] && continue
mkdir -p "${TMP_PATH}/logs/md0/log" mkdir -p "${TMP_PATH}/logs/md0/log"
@ -2588,8 +2551,7 @@ function reportBugs() {
tar -czf "${TMP_PATH}/logs.tar.gz" -C "${TMP_PATH}" logs tar -czf "${TMP_PATH}/logs.tar.gz" -C "${TMP_PATH}" logs
if [ -z "${SSH_TTY}" ]; then # web if [ -z "${SSH_TTY}" ]; then # web
mv -f "${TMP_PATH}/logs.tar.gz" "/var/www/data/logs.tar.gz" mv -f "${TMP_PATH}/logs.tar.gz" "/var/www/data/logs.tar.gz"
HTTP=$(grep -i '^HTTP_PORT=' /etc/rrorg.conf 2>/dev/null | cut -d'=' -f2) URL="http://$(getIP)/logs.tar.gz"
URL="http://$(getIP):${HTTP:-7080}/logs.tar.gz"
MSG+="$(printf "$(TEXT "Please via %s to download the logs,\nAnd go to github to create an issue and upload the logs.\n")" "${URL}")" MSG+="$(printf "$(TEXT "Please via %s to download the logs,\nAnd go to github to create an issue and upload the logs.\n")" "${URL}")"
else else
sz -be -B 536870912 "${TMP_PATH}/logs.tar.gz" sz -be -B 536870912 "${TMP_PATH}/logs.tar.gz"
@ -3321,7 +3283,6 @@ function settingsMenu() {
echo "t \"$(TEXT "Choose a timezone")\"" echo "t \"$(TEXT "Choose a timezone")\""
echo "k \"$(TEXT "Choose a keymap")\"" echo "k \"$(TEXT "Choose a keymap")\""
echo "o \"$(TEXT "Show QR logo:") \Z4${DSMLOGO}\Zn\"" echo "o \"$(TEXT "Show QR logo:") \Z4${DSMLOGO}\Zn\""
echo "n \"$(TEXT "Bootloader notifications (Webhook)")\""
echo "p \"$(TEXT "Custom patch script # Developer")\"" echo "p \"$(TEXT "Custom patch script # Developer")\""
echo "u \"$(TEXT "Edit user config file manually")\"" echo "u \"$(TEXT "Edit user config file manually")\""
echo "g \"$(TEXT "Edit grub.cfg file manually")\"" echo "g \"$(TEXT "Edit grub.cfg file manually")\""
@ -3367,10 +3328,6 @@ function settingsMenu() {
writeConfigKey "dsmlogo" "${DSMLOGO}" "${USER_CONFIG_FILE}" writeConfigKey "dsmlogo" "${DSMLOGO}" "${USER_CONFIG_FILE}"
NEXT="o" NEXT="o"
;; ;;
n)
notificationsMenu
NEXT="e"
;;
p) p)
MSG="" MSG=""
MSG+="$(TEXT "This option provides information about custom patch scripts for the ramdisk.\n")" MSG+="$(TEXT "This option provides information about custom patch scripts for the ramdisk.\n")"

View File

@ -34,8 +34,6 @@ N nct6775.ko
F mii.ko F mii.ko
F cdc_ether.ko F cdc_ether.ko
F rndis_host.ko F rndis_host.ko
F thunderbolt.ko
F thunderbolt-net.ko
F r8152.ko F r8152.ko
F aqc111.ko F aqc111.ko
F ax88179_178a.ko F ax88179_178a.ko

View File

@ -111,27 +111,6 @@ platforms:
dt: true dt: true
synoinfo: *synoinfo synoinfo: *synoinfo
productvers: *productvers4 productvers: *productvers4
epyc7002:
dt: true
synoinfo:
<<: *synoinfo
netif_seq_by_dts: "no"
productvers: *productvers5
geminilakenk:
dt: true
noflags: ["x2apic"]
synoinfo:
<<: *synoinfo
netif_seq_by_dts: "no"
show_autoupdatetype_notify: "yes"
productvers: *productvers5
r1000nk:
dt: true
synoinfo:
<<: *synoinfo
netif_seq_by_dts: "no"
show_autoupdatetype_notify: "yes"
productvers: *productvers5
v1000nk: v1000nk:
dt: true dt: true
synoinfo: synoinfo:
@ -139,3 +118,9 @@ platforms:
netif_seq_by_dts: "no" netif_seq_by_dts: "no"
show_autoupdatetype_notify: "yes" show_autoupdatetype_notify: "yes"
productvers: *productvers5 productvers: *productvers5
epyc7002:
dt: true
synoinfo:
<<: *synoinfo
netif_seq_by_dts: "no"
productvers: *productvers5

View File

@ -202,12 +202,6 @@ else
fi fi
# backup current loader configs # backup current loader configs
mkdir -p "${RAMDISK_PATH}/usr/rr"
{
echo "LOADERLABEL=\"RR\""
echo "LOADERRELEASE=\"${RR_RELEASE}\""
echo "LOADERVERSION=\"${RR_VERSION}\""
} >"${RAMDISK_PATH}/usr/rr/VERSION"
BACKUP_PATH="${RAMDISK_PATH}/usr/rr/backup" BACKUP_PATH="${RAMDISK_PATH}/usr/rr/backup"
rm -rf "${BACKUP_PATH}" rm -rf "${BACKUP_PATH}"
for F in "${USER_GRUB_CONFIG}" "${USER_CONFIG_FILE}" "${USER_LOCALE_FILE}" "${USER_UP_PATH}" "${SCRIPTS_PATH}"; do for F in "${USER_GRUB_CONFIG}" "${USER_CONFIG_FILE}" "${USER_LOCALE_FILE}" "${USER_UP_PATH}" "${SCRIPTS_PATH}"; do

View File

@ -102,13 +102,6 @@
middle: middle:
- "V5R" - "V5R"
suffix: "alpha" suffix: "alpha"
"DS1825+":
prefix:
- "2540"
middle:
- "WDR"
suffix: "alpha"
macpre: 9009d0
"DS2419+": "DS2419+":
prefix: prefix:
- "1880" - "1880"

View File

@ -1 +1 @@
25.6.5 25.5.7

View File

@ -49,8 +49,6 @@ else
font=${prefix}/fonts/unicode.pf2 font=${prefix}/fonts/unicode.pf2
fi fi
terminal_output console
if loadfont ${font}; then if loadfont ${font}; then
set gfxmode=auto set gfxmode=auto
load_video load_video
@ -58,9 +56,10 @@ if loadfont ${font}; then
set locale_dir=$prefix/locale set locale_dir=$prefix/locale
set lang=en_US set lang=en_US
insmod gettext insmod gettext
terminal_output --append gfxterm
fi fi
terminal_output gfxterm
if serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1; then if serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1; then
terminal_input --append serial terminal_input --append serial
terminal_output --append serial terminal_output --append serial
@ -73,6 +72,10 @@ set menu_color_highlight=black/cyan
insmod png insmod png
background_image ${prefix}/logo.png background_image ${prefix}/logo.png
function gfxmode {
set gfxpayload="${linux_gfx_mode}"
}
set RR_CMDLINE="earlyprintk earlycon=uart8250,io,0x3f8,115200n8 console=ttyS0,115200n8 root=/dev/ram rootwait intremap=off amd_iommu_intr=legacy net.ifnames=0 panic=5 split_lock_detect=off pcie_aspm=off intel_pstate=disable amd_pstate=disable nox2apic nomodeset nowatchdog" set RR_CMDLINE="earlyprintk earlycon=uart8250,io,0x3f8,115200n8 console=ttyS0,115200n8 root=/dev/ram rootwait intremap=off amd_iommu_intr=legacy net.ifnames=0 panic=5 split_lock_detect=off pcie_aspm=off intel_pstate=disable amd_pstate=disable nox2apic nomodeset nowatchdog"
search --set=root --label "RR3" search --set=root --label "RR3"
@ -86,7 +89,7 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
load_env --skip-sig --file=${prefix}/rsysenv load_env --skip-sig --file=${prefix}/rsysenv
fi fi
menuentry 'Boot DSM kernel directly' ${menuentry_id_option} direct { menuentry 'Boot DSM kernel directly' ${menuentry_id_option} direct {
set gfxpayload="${linux_gfx_mode}" gfxmode
echo "RRVersion: ${rr_version}" echo "RRVersion: ${rr_version}"
echo "${rr_booting}" echo "${rr_booting}"
echo -n "Boot Time: "; date echo -n "Boot Time: "; date
@ -111,7 +114,7 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
} }
fi fi
menuentry 'Boot DSM' ${menuentry_id_option} boot { menuentry 'Boot DSM' ${menuentry_id_option} boot {
set gfxpayload="${linux_gfx_mode}" gfxmode
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline} linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline}
echo "Loading initramfs..." echo "Loading initramfs..."
@ -119,7 +122,7 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
echo "Booting..." echo "Booting..."
} }
menuentry 'Boot Recovery' ${menuentry_id_option} recovery { menuentry 'Boot Recovery' ${menuentry_id_option} recovery {
set gfxpayload="${linux_gfx_mode}" gfxmode
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline} recovery linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline} recovery
echo "Loading initramfs..." echo "Loading initramfs..."
@ -127,7 +130,7 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
echo "Booting..." echo "Booting..."
} }
menuentry 'Force re-install DSM' ${menuentry_id_option} junior { menuentry 'Force re-install DSM' ${menuentry_id_option} junior {
set gfxpayload="${linux_gfx_mode}" gfxmode
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline} force_junior linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline} force_junior
echo "Loading initramfs..." echo "Loading initramfs..."
@ -137,7 +140,7 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then
fi fi
menuentry 'Configure loader' ${menuentry_id_option} config { menuentry 'Configure loader' ${menuentry_id_option} config {
set gfxpayload="${linux_gfx_mode}" gfxmode
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-rr earlycon=uart8250,io,0x3f8,115200n8 console=ttyS0,115200n8 ${RR_CMDLINE} ${rr_cmdline} IWANTTOCHANGETHECONFIG linux /bzImage-rr earlycon=uart8250,io,0x3f8,115200n8 console=ttyS0,115200n8 ${RR_CMDLINE} ${rr_cmdline} IWANTTOCHANGETHECONFIG
echo "Loading initramfs..." echo "Loading initramfs..."
@ -146,7 +149,7 @@ menuentry 'Configure loader' ${menuentry_id_option} config {
} }
menuentry 'Configure loader (verbose)' ${menuentry_id_option} verbose { menuentry 'Configure loader (verbose)' ${menuentry_id_option} verbose {
set gfxpayload="${linux_gfx_mode}" gfxmode
echo "Loading kernel..." echo "Loading kernel..."
linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline} earlycon=tty2 console=tty2 IWANTTOCHANGETHECONFIG linux /bzImage-rr ${RR_CMDLINE} ${rr_cmdline} earlycon=tty2 console=tty2 IWANTTOCHANGETHECONFIG
echo "Loading initramfs..." echo "Loading initramfs..."