p0p

Members
  • Posts

    18
  • Joined

  • Last visited

Everything posted by p0p

  1. I disabled "Preserve user defined networks" and it runs now. But previously added Docker networks might be missing... Could this be a bug?
  2. I want to move away from the docker.img file to docker directory. I already deleted the /mnt/cache/system/docker/ folder over the tick on the UI to rebuild the docker directory. As I try to enable docker service, at the docker service tab the error message "Docker Service failed to start." appears. I also tried to use `/etc/rc.d/rc.docker start` but it outputs `no image mounted at /var/lib/docker` What else can I do? tower-diagnostics-20231031-1233.zip
  3. Hey @bonienl! Is it safe to close the browser tab or hibernate the PC that accesses the Unraid Webinterface while copying / moving a file?
  4. Currently if we move files, we just get a spinner with the status "Moving": For a better UX and UI, It would be great to see - what file is currently copied/moved - what files are scheduled (next) as a list - Show the progress in percent off the current file - Show the overall percentage off the copy/move progress For file operations, this UX/UI feature is pretty basic and it's a deal breaker for me. Plus: Add an info if we can safely close the window/tab while copying/moving please.
  5. If you've ever worked on a CMS like WordPress, you've got a nice feature called "Post Revisions". This feature adapted to Docker + VM Templates including a backup and restore feature would be awesome. Usecases: 1. If you deploy a docker or VM, made changes, left off to do something else and came back to see it stopped working buuut you can't remember the last settings that worked. D'oh! 2. Switch between docker.img and docker directory for custom / non-apps docker / docker-compose applications. 3. To have different settings to switch between for testing / development purpose. 4. Switch / easily duplicate between UnRaid machines How it could be done: 1. A service watches for filechanges over date and time in /boot/config/plugins/dockerMan/templates-user and /boot/config/plugins/dockerMan/templates - On file creation the original template file get's a "original" tag - example: my-homeassistant~original.xml - On file change the changed template get's a "date and time" tag - example: my-homeassistant~20230731_1125.xml (1115 = 11:25) 2. At the template setting page, - add a select list or dropdown to choose from the different template versions for this specific / fitting docker image - add a tick to "cross-import" a template for non-fitting docker image so all template files get showed inside the select list (especially usefull if you want to switch between different docker image sources)* - add a download button to download all or a selected template file - add a delete button to delete one or multiple templates / revisions* * Add a modal that this action might not be save to do Here's a quick ChatGPT generated hint how to implement the "watch for filechange" feature" Below is an example Linux Bash script that uses the `inotifywait` command to constantly watch for file changes in the specified directories and implements the features (NOT TESTED): ```bash #!/bin/bash # Define the log file path log_file="/path/to/log/file.log" # Define the directories to watch watch_directories=( "/boot/config/plugins/dockerMan/templates" "/boot/config/plugins/dockerMan/templates-user" ) # Function to handle file changes handle_file_change() { event=$1 file_path=$2 if [[ $event == "CREATE" ]]; then # If a file is created, create a copy with ~original in the filename filename=$(basename "$file_path") new_filename="${filename%.*}~original.${filename##*.}" cp "$file_path" "${file_path%/*}/$new_filename" elif [[ $event == "MODIFY" ]]; then # If a file is modified, create a copy with date and time in the filename filename=$(basename "$file_path") new_filename="${filename%.*}~$(date +'%Y%m%d_%H%M').${filename##*.}" cp "$file_path" "${file_path%/*}/$new_filename" fi } # Watch for file changes in the specified directories while true; do for dir in "${watch_directories[@]}"; do inotifywait -e create,moved_to,modify -q -r "$dir" 2>/dev/null | while read -r event_path _ event_file; do file_path="$event_path$event_file" handle_file_change "$event" "$file_path" done done done >> "$log_file" 2>&1 ``` Save the script in a file, e.g., `file_change_watcher.sh`, and make it executable by running: ```bash chmod +x docker_vm_file_change_watcher.sh ``` To run the script as a background process and redirect the output to the log file, execute the following command: ```bash nohup ./file_change_watcher.sh & ``` The script will keep running as a background process and continuously monitor the specified directories for file changes, creating copies of files as specified in the original requirements. The output of the script will be appended to the log file specified in the script (/path/to/log/file.log). You can check the log file to see the script's updates and any potential errors: ```bash tail -f /path/to/log/file.log ``` The script will keep running and monitoring the specified directories for any file changes. If a file is created, it will be copied with `~original` appended to the filename, and if a file is modified, it will be copied with the date and time appended to the filename. Please note that the script requires the `inotifywait` command, which is usually available in the `inotify-tools` package. If you don't have it installed, you can install it using your package manager. For example, on Debian/Ubuntu, you can run: ```bash sudo apt-get install inotify-tools ```
  6. Hey, as mentioned in the title, there's a script to automatically add free games to your steam account: https://github.com/Luois45/claim-free-steam-packages How do we get this baked into a docker container?
  7. Hi, someone created a Community App for Dolibarr - for easier config use this app. You can also take a look at my ERPNext Thread. It's a great start and much more flexible, extendable and cheaper (in terms of plugin costs) than Dolibarr. Regarding Adempiere... I don't know about it but seems to be self-explaining. Be aware, I'm also a Docker beginner and following my instructions may break things - Creating Backups are advised! Also.. you can find informations on the GitHub page https://github.com/adempiere/adempiere-docker Use Unraid Docker Compose Plugin to create a project and a folder paste in the env part to the Docker (attention! You need SSL activated to on your machine! Watch some tutorials to do so! You could also use a reverse proxy!) # Copyright (C) 2003-2017, e-Evolution Consultants S.A. , http://www.e-evolution.com # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>.ce # Email: [email protected], http://www.e-evolution.com , http://github.com/e-Evolution ADEMPIERE_WEB_PORT=8274 ADEMPIERE_SSL_PORT=4444 ADEMPIERE_VERSION=3.9.3 # ATENTION If is "Y" it will be replace de actual defined database with a empty ADempiere seed ADEMPIERE_DB_INIT=Y Have git installed on your unraid server cd to your project folder git Clone the repository to your project folder git clone https://github.com/adempiere/adempiere-docker.git Deploy ("install") the application to your project folder cd .. pwd # From the adempiere-docker directory execute ./application.sh adempiere up -d --build # Wait a few minutes while the ADempiere Server installation is done docker ps |grep postgres # The output should show something like e70086fe9f89 dd4fa36a9c2f "docker-entrypoint.s…" 11 months ago Up 4 minutes 0.0.0.0:55432->5432/tcp postgres122_db_1 docker ps |grep adempiere # The output should show something like fe8cc0a49e77 adempiere "/bin/sh -c '/root/s…" 11 months ago Up 8 minutes 0.0.0.0:4444->4444/tcp, 0.0.0.0:8274->8888/tcp adempiere docker logs adempiere HINT: You may need to map the ports in the env and deploy step and change the IP-Address to get things working. Play around until you get it right.
  8. Hi, I'm very new to Docker and this is my second time to add Containers with Docker Compose. If there are improvements, please let me know 🙂 Currently running on: UnRaid 6.11.5 Used Docker Container: https://github.com/frappe/frappe_docker Used and edited Compose file: https://github.com/frappe/frappe_docker/blob/main/pwd.yml Requirements: UnRaid Access to the Internet Community Apps Community App: - Docker Compose - Docker Folder Specs: - at least 4GB of RAM - 10 GB disk space Steps: Have the Community Apps Extension installed. Search inside the Community Apps for "Docker Compose" and "Docker Folder" and install the Apps. Switch to the Docker Tab, you'll see a new Section for Compose, At the Compose Section, on the most bottom left, click the Button "Add New Stack" - a Popup will appear. Give your Stack a name, in this Case "erpnext" Give your Stack a path, in this case /mnt/user/appdata/erpnext hit OK - Inside the Compose Section, you're going to see your new created stack. Left of the Name of the stack "erpnext" hit the gear (option) icon - a popup will appear right above the name. Hit "Edit Stack" - a popup will appear in the center of the screen. Hit "Compose File" - the popup will close itself and a text editor will appear (you might have to scroll down a bit). Delete the content inside the text editor. (e.g. "services:") Add these lines version: "3" services: backend: image: frappe/erpnext-worker:v14.9.0 container_name: backend deploy: restart_policy: condition: on-failure volumes: - sites:/home/frappe/frappe-bench/sites - assets:/home/frappe/frappe-bench/sites/assets configurator: image: frappe/erpnext-worker:v14.9.0 container_name: configurator command: - configure.py environment: DB_HOST: db DB_PORT: "3306" REDIS_CACHE: redis-cache:6379 REDIS_QUEUE: redis-queue:6379 REDIS_SOCKETIO: redis-socketio:6379 SOCKETIO_PORT: "9000" volumes: - sites:/home/frappe/frappe-bench/sites create-site: image: frappe/erpnext-worker:v14.9.0 container_name: create-site deploy: restart_policy: condition: on-failure volumes: - sites:/home/frappe/frappe-bench/sites - assets:/home/frappe/frappe-bench/sites/assets entrypoint: - bash - -c command: - > wait-for-it -t 120 db:3306; wait-for-it -t 120 redis-cache:6379; wait-for-it -t 120 redis-queue:6379; wait-for-it -t 120 redis-socketio:6379; export start=`date +%s`; until [[ -n `grep -hs ^ common_site_config.json | jq -r ".db_host // empty"` ]] && \ [[ -n `grep -hs ^ common_site_config.json | jq -r ".redis_cache // empty"` ]] && \ [[ -n `grep -hs ^ common_site_config.json | jq -r ".redis_queue // empty"` ]]; do echo "Waiting for common_site_config.json to be created"; sleep 5; if (( `date +%s`-start > 120 )); then echo "could not find common_site_config.json with required keys"; exit 1 fi done; echo "common_site_config.json found"; bench new-site frontend --admin-password=admin --db-root-password=admin --install-app payments --install-app erpnext --set-default; db: image: mariadb:10.6 container_name: db healthcheck: test: mysqladmin ping -h localhost --password=admin interval: 1s retries: 15 deploy: restart_policy: condition: on-failure command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --skip-character-set-client-handshake - --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6 environment: MYSQL_ROOT_PASSWORD: admin volumes: - db-data:/var/lib/mysql frontend: image: frappe/erpnext-nginx:v14.9.0 container_name: frontend deploy: restart_policy: condition: on-failure depends_on: backend: condition: service_started websocket: condition: service_started environment: BACKEND: backend:8000 FRAPPE_SITE_NAME_HEADER: frontend SOCKETIO: websocket:9000 UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1 UPSTREAM_REAL_IP_HEADER: X-Forwarded-For UPSTREAM_REAL_IP_RECURSIVE: "off" volumes: - sites:/usr/share/nginx/html/sites - assets:/usr/share/nginx/html/assets ports: - "6363:8080" queue-default: image: frappe/erpnext-worker:v14.9.0 container_name: queue-default deploy: restart_policy: condition: on-failure command: - bench - worker - --queue - default volumes: - sites:/home/frappe/frappe-bench/sites - assets:/home/frappe/frappe-bench/sites/assets queue-long: image: frappe/erpnext-worker:v14.9.0 container_name: queue-long deploy: restart_policy: condition: on-failure command: - bench - worker - --queue - long volumes: - sites:/home/frappe/frappe-bench/sites - assets:/home/frappe/frappe-bench/sites/assets queue-short: image: frappe/erpnext-worker:v14.9.0 container_name: queue-short deploy: restart_policy: condition: on-failure command: - bench - worker - --queue - short volumes: - sites:/home/frappe/frappe-bench/sites - assets:/home/frappe/frappe-bench/sites/assets redis-queue: image: redis:6.2-alpine container_name: redis-queue deploy: restart_policy: condition: on-failure volumes: - redis-queue-data:/data redis-cache: image: redis:6.2-alpine container_name: redis-cache deploy: restart_policy: condition: on-failure volumes: - redis-cache-data:/data redis-socketio: image: redis:6.2-alpine container_name: redis-socketio deploy: restart_policy: condition: on-failure volumes: - redis-socketio-data:/data scheduler: image: frappe/erpnext-worker:v14.9.0 container_name: scheduler deploy: restart_policy: condition: on-failure command: - bench - schedule volumes: - sites:/home/frappe/frappe-bench/sites - assets:/home/frappe/frappe-bench/sites/assets websocket: image: frappe/frappe-socketio:v14.17.1 container_name: websocket deploy: restart_policy: condition: on-failure volumes: - sites:/home/frappe/frappe-bench/sites - assets:/home/frappe/frappe-bench/sites/assets volumes: assets: db-data: redis-queue-data: redis-cache-data: redis-socketio-data: sites: and hit Save at the top center of the text editor - A popup for "Edit Stack UI Labels" will appear Enter the following for the services Service: frontend Icon - https://raw.githubusercontent.com/frappe/erpnext/develop/erpnext/public/images/erpnext-logo.png Web UI - http://[IP][PORT:6363]/ Shell - leave as it is Deploying the Application In the column "Commands" hit "Compose Up" to start the deployment - It will create the Docker Containers required to run the application. The Docker Containers are going to start themselves. Grab a Coffee, the initial process can take a while until ERPnext is up (depends on your machine). Wait around 4 minutes for background processes to be finished Navigate to http://YOURSERVERIP:6363 (replace YOURSERVERIP with the IP address of UnRaid server) // if this isn't working, try http://YOURSERVERIP:6363/app/setup-wizard/0 - The login mask should appear. Login to the ERPnext Dashboard, use the following login information: Fixing ERPNext PDF output / exports are not working (required step!) Open the Terminal to your UnRaid server over SSH or over the web interface (">_" button on the top right) enter this line to move to your erpnext folder cd /mnt/user/appdata/erpnext ((This step is mentioned here on GitHub)) to get vi (a texteditor) running and to edit "common_site_config.json" copy ALL the lines and paste it into the command line docker run --rm -it \ -v erpnext_sites:/sites \ alpine vi /sites/common_site_config.json Note: erpnext is the projectname (look at the line -v erpnext_sites:...) - replace it with your project name. If you've named it "superdupererp", enter that in here. The vi editor is now opened inside the command line. hit "i" (for insert) on your keyboart to enter the editing mode of vi after the curly bracket "{" write the following line to add the IP-Address (or web-address if you want to expose ERPNext to the internet) and the port "host_name":"YOURSERVERIP:PORTNUMBER", (example: "host_name": "192.168.178.55:6363", ) Hit ESC on your keyboard to safe and quit enter :wq or hit shift + ZZ that's it Default Login info: Login: http://YOURSERVERIP:6363 Default User: Administrator Default Password: admin Done - Setup ERPnext as you wish Docker Folders You can use the CA Plugin Docker Folders to group your containers for a better overview add actions like run/stop add bash scripts Notes: Portmapping notes Port 6363 is for the frontend and a port set by me - you can set it to whatever port number you want. Docker-Compose.yml notes The UnRaid Docker Compose creates docker container in the following patterns: {stack_name}{containername}{upcountingnumber} example: "erpnext-frontend-1" I've added some lines with "container_name: CONTAINER" to suppress this behavior. It seems like the lines are needed that the containers can actually communicate with each other. Troubleshooting I can't get the application running Check the logs (click on the docker container icon and on logs) Check the docker-compose.yml file. Have you added spaces or something else there? Check if you're using the same ports [inside the same docker network] for a docker container. Often the standard MySQL /MariaDB database port could be a culprit. Ask questions on the applications GitHub/support forum How to clear / bypass Docker Compose Cache in Unraid - for a project If somethings gone wrong while deploying or you broke something inside the application that isn't fixable, you need to fetch new Docker Container due to cached versions of the docker files: Open the Terminal to your UnRaid server over SSH or over the web interface (">_" button on the top right) WARNING: The following action deletes all the content of your application! enter line by line cd /mnt/user/appdata/erpnext docker-compose down --remove-orphans -v --rmi all docker-compose down && docker-compose build --no-cache && docker-compose up Your containers should get re-downloaded and rebuild now (again coffee time!) Known Issues and possible fixes - Help is appreciated! Connection aborts to the Database - The application is running fine, every action is stored. Seems to be a bug. Error Message "Support Email Address not specified" while setting up things in the ERPnext backend - haven't figured out where site_config.json file is to change the support mail to satisfy the little beasty message Possible fix: Same steps as mentioned above "Fixing ERPNext PDF output / exports are not working (required step!)", just add “error_report_email”: "[email protected]", You can add your own email adress here if you wish. (you need to setup an email service like over SMTP to receive error mails) is_your_company_address could appear while setting up your company address - haven't found a solution yet. It COULD be the following error source: Data leftovers from previous build Afterfirst and initial build, I played around and wanted and wanted to reset the application. I tried to docker compose down and compose up to revert back to inital state. But I haven't used the steps in the Troubleshooting section (found out about it later - scroll up a bit). It could be that leftovers from the previous build have set "is_your_company_address" to the company address form. Possible fix: Backup things. (For example over the "CA Backup" app Use the commands from the troubleshooting section. Changed company address while using the introduction guide I've entered the company address form WHILE using the introduction guide where you get guided through the application features. Possible fix: Don't change your company address while you're in the introduction guide. Happy ERPing!
  9. Hi, I'm very new to Docker and this is my first time to add Containers with Docker Compose. If there are improvements, please let me know 🙂 Currently running on: UnRaid 6.11.1 Used Docker Container: https://hub.docker.com/r/tuxgasy/dolibarr Requirements: UnRaid Access to the Internet Community Apps Community App: Docker Compose Steps: Have the Community Apps Extension installed. Search inside the Community Apps for "Docker Compose" and install the App. Switch to the Docker Tab, you'll see a new Section for Compose, At the Compose Section, on the most bottom left, click the Button "Add New Stack" - a Popup will appear. Give your Stack a name, in this Case "Dolibarr" and hit OK - Inside the Compose Section, you're going see your new created stack. Left of the Name of the stack "Dolibarr" hit the gear (option) icon - a popup will appear right above the name. Hit "Edit Stack" - a popup will appear in the center of the screen. Hit "Compose File" - the popup will close itself and a text editor will appear (you might have to scroll down a bit). Delete the content inside the text editor. Add these lines version: "3" services: mariadb: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: dolibarr ports: - "3306:3306" web: image: tuxgasy/dolibarr environment: DOLI_DB_HOST: mariadb DOLI_DB_USER: root DOLI_DB_PASSWORD: root DOLI_DB_NAME: dolibarr DOLI_URL_ROOT: 'http://0.0.0.0' PHP_INI_DATE_TIMEZONE: 'Europe/Paris' ports: - "3002:80" links: - mariadb and hit Save at the top center of the text editor - A popup for "Edit Stack UI Labels" will appear Enter the following for the services Service: mariadb Icon - https://mariadb.com/wp-content/uploads/2019/11/mariadb-logo-vert_blue-transparent.png Web UI - http://[IP][PORT:3306]/ Shell - leave as it is Service: web Icon - https://www.dolibarr.org/medias/image/www.dolibarr.org/images/stories/dolibarr.png Web UI - http://[IP][PORT:3002]/ Shell - leave as it is In the column "Commands" hit "Compose Up" to start the deployment - It will create a Dolibarr and a MariaDB Container. The Docker Containers are going to start themselves. Grab a Coffee, the initial process can take a while until Dolibarr is up (depends on your machine). Navigate to http://YOURSERVERIP:3002 (replace YOURSERVERIP with the IP address of UnRaid server) // if this isn't working, try http://YOURSERVERIP:3002/install - The login mask should appear. To login to the Dolibar Dashboard, use the following login information: Default User: admin Defaul Password: admin Done -Setup Dolibarr as you wish Notes: Port 3306 is the Dolibarr default port for the DB. Port 3002 is a port set by me - you can set it to whatever port number you want. Happy ERPing!
  10. Liebe UNRAID Community, kurze Anleitung gegen Kopfschmerzen. Also Brett vorm Kopf weglassen und nicht damit aufm Kopf drauf hauen. Disclaimer: Ihr wisst was ihr tut, NEXT (Alpha, beta, RC) releases können instabil laufen, ich bin nicht für eventuelle Schäden/Datenverluste/dritter Weltkrieg verantwortlich. ## Für erfahrene Benutzer: Der wichtigste Schritt ist rot markiert. ## 1. Vorbereitung: - VMs und Docker stoppen - WICHTIG: Autostart eurer VMs und Docker ausschalten! [BUG: Unraid startet sonst nach dem Update nicht sauber!] - Falls eingestellt: Array Autostart unterbinden unter "Settings" > "Disk Settings" > "Enable auto start" Die Einstellung im Dropdown Menü auf No setzten. - Alle Plugins und Docker updaten - Mit der CA (Community App) "Fix Common Problems" unter "Tools" > "Update Assistant" den Button Run Test (Next Branch) ausführen. Bei Fehlern diese bitte abarbeiten, ansonsten weiter machen mit dem wichtigsten Schritt: - Backup des UNRAID USB Sticks und das Archiv (verschlüsselt) an einem sicheren Ort bewahren (Cloud, Raid,...) - Empfehlung: Einmal UNRAID sauber Neustarten. Sicher ist sicher. 2. Durchführung - Unter "Tools" > "Update OS" am rechten Bildschirmrand den Branch im Dropdown Menü von Stable to Next setzten, den "Update" Button klicken. [Nichts mehr an UNRAID ändern oder "ich muss mal eben noch XYZ"] - Oben wird gelb hinterlegt als blauer Link eine Neustart Option angezeigt. Bitte einmal klicken - Einstellungen aus Vorbereitung wiederherstellen wiederherstellen - Freuen. 3. Nacharbeiten (Optional/ Bei Problemen) - Falls Vorhanden: In der CA "NerdPack" die Packete updaten. - In den VMs sind neue Maschinentypen Versionen verfügbar. Q35 wurde auf die Version 6.0 geupdated. [Bei mir war das so, dass meine WIN10 VM nur mit der neuen Version gestartet ist.] - Unter 6.10.0 RC1 steht für AMD GPU Benutzer das Plugin "AMD Vendor Reset" von @ich777 zur Verfügung. Damit wird das zurücksetzten oder bzw Fehler 43 eurer (Sekundären) Grafikkarte unterbunden. Viel Spaß! 🤙
  11. Genau das ist das verwirrende als Neuling bzw als erste Benutzererfahrung Das ist mir am Anfang mehr als einmal passiert, bis ich es gecheckt habe. Da habe ich eine Idee, damit lässt sich auch ein super minifiziertes / bloat freies Windows erstellen... - Ein Win VM Setup Script / CA haben- Windows Setup Einstellungen und Chocolatey Apps Konfigurieren Im Reiter Windows Setup Einstellungen können Windows Setup Befehle in eine AUTOUNATTEND.XML importieren werden. Die Grundeinstellungen können hier her genommen werden: https://www.windowsafg.com/win10x86_x64_uefi.html und ein paar Addons hier her: https://administrator.de/tutorial/custom-windows-10-iso-bauen-in-kontinuierlicher-verbesserung-ausgabe-2021-665068.html --> Weitere Settings lassen sich händisch oder über eine Benutzer gepflegtes Git repository hinzufügen. --> Um das ganze für neue Benutzer zu vereinfachen und die UX zu erhöhen, wird auf die XML Baumstruktur verzichtet (optional freischaltbar). Per Häckchen lassen sich Setup Befehle ein- und ausschalten. (es werden Abhängigkeiten zu anderen Setup Befehlen geprüft um Querschläger zu vermeiden) Wenn alles fertig ist, wird in einem vor konfigurierten Share Ordner eine AUTOUNATTEND.XML erstellt. [Um deine Frage zu beantworten: In der XML lässt sich auch ein Autologin einrichten, damit ist dein Problem gelöst] Im Reiter Win-APPs lassen sich Chocolatey Applicationen für die Installation hinzufügen. --> In der SetupComplete.cmd lassen sich Scripte nach dem ersten User Login ausführen. --> Es wird das Chocolatey Installationsskript integriert: Choclatey Setup siehe hier: https://docs.chocolatey.org/en-us/choco/setup --> Es werden die Chocolatey Setup Befehle integriert. Beispiele: choco install 7zip.install choco install firefox Wenn alles fertig ist, wird in einem vor konfigurierten Share Ordner eine SetupComplete.cmd erstellt. WIN10/11 ISO über bspw. UUP dump MIT oder OHNE Updates in einem vor konfigurierten Share Ordner herunterladen lassen (hier kann bspw. das CA Plugin "windows11_uupdump" von SpaceInvaderOne herhalten) Download der virtio-win-latest.iso WIN10/11 und virtio-win-latest ISOs entpacken WIM entpacken/bearbeiten: https://wimlib.net/ ISO Dateien entpacke/bearbeiten https://www.unixmen.com/edit-iso-files-using-mkisofs-in-linux/ Dateien entpackten in den Win ISO Ordner: --> AUTOUNATTEND.XML und SetupComplete.cmd in die entsprechenden Ordner kopieren --> virtio-win-latest Treiber in Treiber Ordner kopieren Neues ISO packen Virtuelle Maschine erstellen Optional: XML einer VM auf die neue VM anwenden Virtuelle Maschine starten - Scripte laufen nach dem ersten Login. Freuen. 🙂 Infos zu AUTOUNATTEND.XML: https://www.windowsafg.com/win10x86_x64_uefi.html https://github.com/KUTlime/Autounattend-file-for-Windows-10 https://www.packer.io/guides/automatic-operating-system-installs/autounattend_windows https://docs.microsoft.com/de-de/windows-hardware/manufacture/desktop/update-windows-settings-and-scripts-create-your-own-answer-file-sxs https://www.tenforums.com/installation-upgrade/163370-unattended-windows-10-questions-software-updates-computer-name.html Infos zum Treiberslipstream https://wimlib.net/ https://gareth.com/index.php/2020/07/17/slipstreaming-proxmox-virtio-drivers-into-windows-10/ (Anleitung für Windows - lässt sich sicher auch unter Linux umsetzen) https://github.com/sej7278/virt-installs/blob/master/win10.sh https://github.com/mattshortland/windows-virt-toolkit/blob/master/createautobuildcd.ps1
  12. Hi, danke für Eure Hilfe ❤️ Mache ich, danke für deinen Hinweis! Das werde ich. Vielleicht kennst du das aus deinem Arbeitsleben: Du bist neu in einem Unternehmen und siehst Dinge, die die "Alteingesessenen" nicht mehr sehen. Daher werden in guten Unternehmen die Frischlinge gerne einmal von dem Qualitätsmanagement interviewt. Erlaube es mir etwas (naiv) herum zu spinnen... Für Android gibt es den MagiskManager. Es ist im Wesentlichen eine Möglichkeit, das System zu verändern, ohne es tatsächlich zu verändern. Die Änderungen werden sicher in der Bootpartition gespeichert, anstatt die eigentlichen Systemdateien zu verändern. (Es geht hier nicht um: "Das ist Android, kein Debian OS", mir geht's nur um das Sinnbild dahinter 🙂 ) Oder die CA laufen als eine Art Container und haben "nur" eine Verlinkung ins System. Die Einstellungen werden außerhalb des Dockers gespeichert: ------- Allgemein, ich wollte einfach wissen, was und wofür das ist... Ich konnte mit der Kurzbeschreibung in den CA nichts anfangen, außer das es für die Statistiken gut ist... In deinem Support Thread stehen leider auch keine vertiefenden Infos... und die erste gedankliche Verknüpfung als UNRAID Neuling ist: "Hey, ich hab ne AMD GPU, das könnte ich brauchen - aber wofür?" Danke für deine Erklärung hier im Forum, das hilft mir sehr weiter 🙂 Gut, ich probiere dann doch mal das 6.10RC1 aus, falls etwas ist, kann ich ja noch zurück rudern🚣‍♂️
  13. @ich777 allgemeine Frage zu deinen CA: Was ist dein "Unraid Kernel Helper/Builder"? Hilft es mir aktuell weiter? Was ist Radeon Top und benötige ich es für meine RX550 bzw. welchen Nutzen bringt es mir?
  14. Allgemeine Sachen, die mir bei der Verwendung von UNRAID aufgefallen sind ...und ggf. als CA lösbar sind: UNRAID Allgemein - Aus der direkten Benutzererfahrung: Es fehlt ein kleines "Lexikon" mit Fachbegriffen, auch für die deutsche Community. (ihr lest es ja in meinen Posts). Das hilft neuen Benutzern beim Kickstart. Erfahrene Benutzer können unerfahrene Benutzer auf die Fachbegriffe hinweisen. Das erleichtert das Verständnis und die Kommunikation. - Wenn das Array nicht gestartet ist und in die Reiter Docker oder VM wechselt, erscheint eine Nachricht, dass das Array gestartet werden muss. Einfacher wäre es hier den Button für "Array starten" einzufügen. Das spart die Klickerei ins Menü und zurück bzw drei Tabs offen zu haben und diese dann neu zu laden. - Zu einer VM sollte es verschiedene Unter-Config Sets mit einer Eltern-Kind beziehung geben. Grundlegende Einstellungen werden von der Eltern-Config übernomen, andere Einstellungen können flexibel angepasst. Das sorgt für Ordnung und mehr Flexibilität - gerade beim testen. --> Beispiel Situation: Benötige vorübergehend mehr Rechenleistung für MacOS, keine Lust die Config vorübergehend zu editieren, lege eine Kind-Config mit mehr an Kernen an. - Unter der Menüleiste sollte es möglich sein, eigene Elemente/Links hinzuzufügen. Somit kann man schneller zu Apps wie den UserScripts wechseln. Auch Notifications + Zähler wie auf iOS und Androud wären möglich. - Es fehlt ein "Apply & Done" Button, da bei "Done" die Einstellungen oftmals nicht übernommen werden. Community Apps - Plugins sollten vorübergehend deaktivierbar sein, statt diese komplett zu deinstallieren (wie bei WordPress) - Es sollte eine "(Für später) Merken" oder "Favoriten" Liste geben [GEFUNDEN: Pinned Apps], ggf. mit einer Funktion um Apps mit fertigen Konfigurationen über eine Config File schnell zu installieren. Das ließe sich dann mit dem "My Servers" Plugin ergänzen. - Es fehlt eine "Select All" / "Revert Selection" Auswahl - Bei "Installed Plugins" ist ein Counter für offene Updates hilfreich, da die Liste an Plugins schnell wächst. VM Automation - In modernen Mutterboards sind die Treiber für WIN10 integriert - ggf. könnte man damit viel Einrichtungszeit sparen, indem die VirtIO Treiber direkt in das virtuelle Motherboard eingebunden und von Win10 erkannt werden. - Es sollte Einrichtungsscipts für UNRAID Windows VMs geben, um Einstellungen wie die Powerconfig zu automatisieren. Das hilft gerade neuen/unerfahrenen Usern. 🙂 - Windows VMs sollten automatisch Anwendungen installieren können. Das ließe sich mit der Paketverwaltung "Chocolatey" und der Erweiterung "Boxstarter" lösen
  15. Hallo an alle, danke für Eure fleißigen Kommentare 🙂 Ich halte mich auf Grund des Antwortumfangs knapper - bitte seht es mir nach Ja, das habe ich, dabei wurden alle Treiber installiert außer "VPORT0P1" Das ist dann nur rein als VM nicht quasi "durchgeschliffen" (bitte einmal den richtigen Terminus schreiben :D), richtig? Das wird hier gezeigt: Es geht wohl auch die NVMe über VFIO einzubinden. SpaceInvaderOne hat das mal gemacht - dafür wird jedoch ein custom bootloader benötigt. ----------------------------------------- Aha! Also ist das ein "scheinheiliges" pass-through. Es findet ein mount und eine art durchschleifen statt, jedoch mit Einschränkungen? ... und danke für die Info! Lockere Sache eine Antwort von einem der bekanntesten unraid Entwickler zu bekommen, wow! Ich habe noch ein paar Sachen über Nerd Tools am laufen. Daher würde ich noch abwarten, bis Nerd Tools das Update unterstützt 🙂 Wird auf Grund des "Bugs" deswegen meine 2. RX550 random mit dem Fehler 43 im Geräte Manager gemeldet? (vBIOS ist eingetragen) Funktioniert das AMD Vendor Reset Plugin auch mit der 6.9.x Version? Was ist denn der Unterschied wenn ich es "by-id" statt per /dev/ durchschleife/durchreiche (bitte auch hier den korrekten Terminus einmal nennen 🙂 ) Hier mein Output: root@Tower-Buero:~# ls -d /dev/disk/by-id/* /dev/disk/by-id/ata-OCZ-TRION150_16RB46NCK1BU@ /dev/disk/by-id/ata-OCZ-TRION150_16RB46NCK1BU-part1@ /dev/disk/by-id/ata-Samsung_SSD_840_EVO_120GB_S1D5NEBD818433F@ /dev/disk/by-id/ata-Samsung_SSD_840_EVO_120GB_S1D5NEBD818433F-part1@ /dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_210246474402@ /dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_210246474402-part1@ /dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_210246474402-part2@ /dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_210246474402-part3@ /dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_210246474402-part4@ /dev/disk/by-id/usb-Generic_MassStorageClass_000000001539-0:0@ /dev/disk/by-id/usb-Generic_MassStorageClass_000000001539-0:1@ /dev/disk/by-id/usb-Intenso_Speed_Line_000000000000000567-0:0@ /dev/disk/by-id/usb-Intenso_Speed_Line_000000000000000567-0:0-part1@ /dev/disk/by-id/wwn-0x500253885006b184@ /dev/disk/by-id/wwn-0x500253885006b184-part1@ /dev/disk/by-id/wwn-0x5e83a972003a8099@ /dev/disk/by-id/wwn-0x5e83a972003a8099-part1@ Also wäre meine Eingabe /dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_210246474402 Da ich auf diverse WIN Anwendungen angewiesen bin, erst einmal nicht Später, wenn ich mich mit Linux mehr auskenne werde ich mir das überlegen. Danke für deinen Hinweis! Bin am überlegen, ob ich so etwas wie Unraid+WIN10 und WOL + Parsec machen werde... WOL funktioniert bei mir nicht, obwohl im UEFI + Energieereignis bei PCI(e) eingeschaltet. ------- Beim Rest Eurer Kommunikation bin ich raus, das ist noch etwas zu tief für mich 😄 Über eine kurze Aufklärung freue ich mich dennoch, da es sehr informativ scheint Viele Dank! Achja, p0pcorn essen ist gesund
  16. Liebe UNRAID "nicht ausrauben" Gemeinde, mein Name ist p0p, ich bin Ende 30, Student sowie Web Entwickler und Online Marketer. 🙂 Eins meiner Steckenpferde ist die Ladezeitenoptimierung von WordPress Seiten. Meine Hobbies sind SUP-Board fahren, viel Reisen (wenn es die Infektionsschutzmaßnahmen zulassen), Wandern und Techkram. Zu UNRAID bin ich über YouTube durch den Kanal "TheGeekFreaks" gekommen. Mein System CPU: AMD Ryzen 5 5600x Mutterbrett: msi mpg x570 gaming pro carbon wifi GPUs: 2x AMD RX550 RAM: 2x 16GB G.SKILL Speicher: 1x 120 GB Samsung SSD 840, 1x 240 GB OCZ-TRION150, 1x 1TB WD Blue SN550 NVMe SSD (ist eigentlich von Samsung, selber Controller/Speicher) UNRAID OS: 6.9.2 Ziele die ich mit UNRAID verfolge: - MACINABOX für Web/APP Entwicklung, da kein Safari für Windows und iOS Entwicklung | + GPU Passthrough - WIN10 mit NVME passthrough für Arbeiten und bisschen Gaming - (Manjaro) Linux austesten und Skills erweitern, ggf. umsteigen - Ggf. Home und Dokumenten Automation - Ziel entfernt am Horizont: Die PCs an der Uni sind "naja", daher möchte ich mich per Fernwartung auf meinem Rechner aufschalten können um darüber zu arbeiten. Am besten mit Wake On Lan usw. Kaum in der UNRAID Szene angekommen, direkt über Problemchen gestolpert: Zu meinen Fragen: 1. WIN10: VM Einstellung / Q35 5.1 "vergisst" meine NVME --> Boot in EFI Shell Die NVME ist mit Unassigned Devices durchgeschliffen. Jedoch vergisst UNRAID ab und an meine NVME in der VM und die EFI Shell wird gestartet. Erstelle ich eine neue VM, kann ich das WIN10 weiter benutzen. Das ist natürlich ärgerlich. Was muss ich da tun, damit sich das Problem behebt? <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' id='8'> <name>03 Windows 10</name> <uuid>05e3529e-3925-9896-3d72-2b4ad34649f3</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>20971520</memory> <currentMemory unit='KiB'>20971520</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>7</vcpu> <cputune> <vcpupin vcpu='0' cpuset='6'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='7'/> <vcpupin vcpu='3' cpuset='2'/> <vcpupin vcpu='4' cpuset='8'/> <vcpupin vcpu='5' cpuset='4'/> <vcpupin vcpu='6' cpuset='10'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-5.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/05e3529e-3925-9896-3d72-2b4ad34649f3_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='2D76A8B352F1'/> </hyperv> <kvm> <hidden state='on'/> </kvm> <ioapic driver='kvm'/> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='7' threads='1'/> <cache mode='passthrough'/> <feature policy='require' name='topoext'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source dev='/dev/nvme0n1' index='2'/> <backingStore/> <target dev='hdc' bus='scsi'/> <boot order='1'/> <alias name='scsi0-0-0-2'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso' index='1'/> <backingStore/> <target dev='hdb' bus='sata'/> <readonly/> <alias name='sata0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <controller type='scsi' index='0' model='virtio-scsi'> <alias name='scsi0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x10'/> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x11'/> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0x12'/> <alias name='pci.3'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <alias name='pci.4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0x14'/> <alias name='pci.5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0x15'/> <alias name='pci.6'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/> </controller> <controller type='pci' index='7' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='7' port='0x16'/> <alias name='pci.7'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/> </controller> <controller type='pci' index='8' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='8' port='0x17'/> <alias name='pci.8'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/> </controller> <controller type='pci' index='9' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='9' port='0x18'/> <alias name='pci.9'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:11:77:9f'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio-net'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-8-03 Windows 10/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <alias name='input0'/> <address type='usb' bus='0' port='3'/> </input> <input type='mouse' bus='ps2'> <alias name='input1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <graphics type='vnc' port='5900' autoport='yes' websocket='5700' listen='0.0.0.0' keymap='de'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2d' slot='0x00' function='0x0'/> </source> <alias name='hostdev0'/> <rom file='/mnt/user/isos/vbios/2d-00-0.rom'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x24' slot='0x00' function='0x0'/> </source> <alias name='hostdev1'/> <rom file='/mnt/user/isos/vbios/24-00-0.rom'/> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2d' slot='0x00' function='0x1'/> </source> <alias name='hostdev2'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x24' slot='0x00' function='0x1'/> </source> <alias name='hostdev3'/> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2f' slot='0x00' function='0x4'/> </source> <alias name='hostdev4'/> <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x145f'/> <product id='0x024b'/> <address bus='5' device='3'/> </source> <alias name='hostdev5'/> <address type='usb' bus='0' port='1'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x1bcf'/> <product id='0x08a0'/> <address bus='3' device='5'/> </source> <alias name='hostdev6'/> <address type='usb' bus='0' port='2'/> </hostdev> <memballoon model='none'/> </devices> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+0:+100</label> <imagelabel>+0:+100</imagelabel> </seclabel> </domain> 2. WIN10: Nicht erkannter Treiber "vport0p1" Im Gerätemanager befindet sich ein nicht erkanntes Gerät: Welcher Treiber ist das von der virtio-win-0.1.196.iso ? 3. MACINABOX: GPU Passthrough Wenn ich eine meiner RX 550 der MACINABOX VM zuweise, bootet diese VM nicht mehr. Ich habe die entsprechende RX 550 aus der WIN10 VM entfernt und das HELPER SCRIPT neu gestartet. Worauf muss ich da achten und welche Schritte sind wichtig? 4. Geräte temporär ausblenden? Gibt es ein Plugin, mit dem man Geräte in dem VM Form View oder XML View kurzfristig ausblenden/auskommentieren kann? Mir geht das ein und ausgetrage schon arg auf den Senkel 😞 😄 5. Weitere Schritte...? Ich habe das WIN10 OS am laufen - bis auf die Dinger die ich oben geschildert habe. GraKas sind in WIN10 durchgeschliffen. Aktivierung von WIN10 steht noch aus. Was sollte ich an WIN10 durchschleifen? bsp. den SMBus? PCI Devices and IOMMU Groups IOMMU group 0: [1022:1482] 00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 1: [1022:1483] 00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge IOMMU group 2: [1022:1483] 00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge IOMMU group 3: [1022:1482] 00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 4: [1022:1482] 00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 5: [1022:1483] 00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge IOMMU group 6: [1022:1482] 00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 7: [1022:1482] 00:05.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 8: [1022:1482] 00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 9: [1022:1484] 00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] IOMMU group 10: [1022:1482] 00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge IOMMU group 11: [1022:1484] 00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] IOMMU group 12: [1022:790b] 00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61) [1022:790e] 00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51) IOMMU group 13: [1022:1440] 00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 0 [1022:1441] 00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 1 [1022:1442] 00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 2 [1022:1443] 00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 3 [1022:1444] 00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 4 [1022:1445] 00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 5 [1022:1446] 00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 6 [1022:1447] 00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 7 IOMMU group 14: [15b7:5009] 01:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN550 NVMe SSD (rev 01) [N:0:1:1] disk WDC WDS100T2B0C-00PXH0__1 /dev/nvme0n1 1.00TB IOMMU group 15: [1022:57ad] 20:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse Switch Upstream IOMMU group 16: [1022:57a3] 21:01.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge IOMMU group 17: [1022:57a3] 21:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge IOMMU group 18: [1022:57a3] 21:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge IOMMU group 19: [1022:57a3] 21:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge IOMMU group 20: [1022:57a4] 21:08.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:1485] 2a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:149c] 2a:00.1 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0029 Intel Corp. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 002: ID 0000:0000 Innostor Intenso Speed Line [1022:149c] 2a:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 003 Device 003: ID 1462:7b93 Micro Star International MYSTIC LIGHT Bus 003 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 003 Device 005: ID 1bcf:08a0 Sunplus Innovation Technology Inc. Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 004 Device 002: ID 05e3:0612 Genesys Logic, Inc. Hub Bus 004 Device 003: ID 05e3:0749 Genesys Logic, Inc. USB3.0 Card Reader IOMMU group 21: [1022:57a4] 21:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:7901] 2b:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) IOMMU group 22: [1022:57a4] 21:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:7901] 2c:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51) [9:0:0:0] disk ATA Samsung SSD 840 DB6Q /dev/sdd 120GB [10:0:0:0] disk ATA OCZ-TRION150 12.3 /dev/sde 240GB IOMMU group 23: [1b21:0612] 23:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02) IOMMU group 24: [1002:699f] 24:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] (rev c7) [1002:aae0] 24:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] IOMMU group 25: [8086:1539] 26:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) IOMMU group 26: [8086:2723] 28:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a) IOMMU group 27: [1002:699f] 2d:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] (rev c7) [1002:aae0] 2d:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] IOMMU group 28: [1022:148a] 2e:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function IOMMU group 29: [1022:1485] 2f:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP IOMMU group 30: [1022:149c] 2f:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 003: ID 145f:024b Trust Trust Wired Keyboard Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub IOMMU group 31: [1022:1487] 2f:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller Eigene Erfahrungen / Probleme die ich selbst behoben habe: - Bei einem Clean Install von Win10 muss für die NVME ein SCSI Treiber aus dem Virtio image installiert werden. Dieser liegt im x64 Ordner. - Der AMD Grafikkartentreiber konnte, auch mit "Werksreset", nur nach einer komplett Bereinigung mit Display Driver Uninstaller installiert werden. Dafür musste ich eine VNC Session laufen lassen, da die Monitore an den GraKas kein Bild ausgegeben haben. Die neusten Non-WHQL Treiber funktionieren nicht. (Upgrade steht noch aus) Die zweite GraKa hat trotz durchgeschliffenen Soundgerät einen Code 43 gehabt. Musste im Geräte Manager den Treiber manuell updaten - System hatte zwar einen Frostanfall und reagierte nicht mehr. Jedoch wurde nach einem Hardreset (Force Stop) der VM und Neustart der Treiber richtig erkannt. Ich freue mich sehr über Eure Hilfe und Anregungen 🙂 Hab nur gutes über die UNRAID Community gehört Viele Grüße p0p
  17. @dlandon I've got a strange issue with your fairly awesome plugin (thanks for your work ❤️ ) Maybe it's... my fault (in case of everything went wrong, it's always the user) a UX/UI Problem a Bug My goal was to passthrough my NVME (nvme0on1) for bare metal NVME Power to my WIN10 OS. The settings are somehow "reverted": If I unchoose (grey out) the toogles "PASSED THROUGH" and "SHOW PARTITIONS", the NVME is passed through and the partitions are shown. Config of my Win10 OS: <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' id='8'> <name>03 Windows 10</name> <uuid>05e3529e-3925-9896-3d72-2b4ad34649f3</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>20971520</memory> <currentMemory unit='KiB'>20971520</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>7</vcpu> <cputune> <vcpupin vcpu='0' cpuset='6'/> <vcpupin vcpu='1' cpuset='1'/> <vcpupin vcpu='2' cpuset='7'/> <vcpupin vcpu='3' cpuset='2'/> <vcpupin vcpu='4' cpuset='8'/> <vcpupin vcpu='5' cpuset='4'/> <vcpupin vcpu='6' cpuset='10'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-5.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/05e3529e-3925-9896-3d72-2b4ad34649f3_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='2D76A8B352F1'/> </hyperv> <kvm> <hidden state='on'/> </kvm> <ioapic driver='kvm'/> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='7' threads='1'/> <cache mode='passthrough'/> <feature policy='require' name='topoext'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source dev='/dev/nvme0n1' index='2'/> <backingStore/> <target dev='hdc' bus='scsi'/> <boot order='1'/> <alias name='scsi0-0-0-2'/> <address type='drive' controller='0' bus='0' target='0' unit='2'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso' index='1'/> <backingStore/> <target dev='hdb' bus='sata'/> <readonly/> <alias name='sata0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <controller type='scsi' index='0' model='virtio-scsi'> <alias name='scsi0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x10'/> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x11'/> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0x12'/> <alias name='pci.3'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <alias name='pci.4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0x14'/> <alias name='pci.5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0x15'/> <alias name='pci.6'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/> </controller> <controller type='pci' index='7' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='7' port='0x16'/> <alias name='pci.7'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/> </controller> <controller type='pci' index='8' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='8' port='0x17'/> <alias name='pci.8'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/> </controller> <controller type='pci' index='9' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='9' port='0x18'/> <alias name='pci.9'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:11:77:9f'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio-net'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-8-03 Windows 10/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <alias name='input0'/> <address type='usb' bus='0' port='3'/> </input> <input type='mouse' bus='ps2'> <alias name='input1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <graphics type='vnc' port='5900' autoport='yes' websocket='5700' listen='0.0.0.0' keymap='de'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2d' slot='0x00' function='0x0'/> </source> <alias name='hostdev0'/> <rom file='/mnt/user/isos/vbios/2d-00-0.rom'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x24' slot='0x00' function='0x0'/> </source> <alias name='hostdev1'/> <rom file='/mnt/user/isos/vbios/24-00-0.rom'/> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2d' slot='0x00' function='0x1'/> </source> <alias name='hostdev2'/> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x24' slot='0x00' function='0x1'/> </source> <alias name='hostdev3'/> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2f' slot='0x00' function='0x4'/> </source> <alias name='hostdev4'/> <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x145f'/> <product id='0x024b'/> <address bus='5' device='3'/> </source> <alias name='hostdev5'/> <address type='usb' bus='0' port='1'/> </hostdev> <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x1bcf'/> <product id='0x08a0'/> <address bus='3' device='5'/> </source> <alias name='hostdev6'/> <address type='usb' bus='0' port='2'/> </hostdev> <memballoon model='none'/> </devices> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+0:+100</label> <imagelabel>+0:+100</imagelabel> </seclabel> </domain> I had to figure this out the hard way. My OS was keep booting into EFI Shell because the NVME was not found in the Bootmenu. It cost me two days two figure this out ^^ All the best p0p