-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Startup error after modifying configuration. #37
Comments
I cannot think of a reason why this happens. Because even without setting these values in your Dockerfile, they are still set to the defaults (4G and 2 cores) so if anything was wrong with the order I set them for example, it would also happen with the defaults. I will see if I can reproduce this and fix it, but currently I have no ARM hardware available anymore (used my Pi5 for something else now), so it might take some time before I can fix this. |
I suspect the issue might be due to the qemu version you are using being too old, leading to abnormal parameter passing. The error message is: |
I've got the same issue on OrangePi 5 Plus, I've used the default docker-compose without any changes or custom env vars
|
For anyone experiencing this issue, can you add: environment:
DEBUG: "Y" to your compose file. And then copy and paste the QEMU commandline arguments here. And also a copy of the arguments when it does not give that error. So we can compare both and see what the difference is between them? |
@kroese Happening to me as well:
`docker-compose.yml`version: "3"
services:
windows:
container_name: windows
image: dockurr/windows-arm
environment:
VERSION: "win11"
RAM_SIZE: "4G"
CPU_CORES: "4"
DEBUG: "Y"
volumes:
- /home/tjs/Media/Windows:/storage
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
restart: on-failure |
I also removed all environment variables except for VERSION and DEBUG and it's still happening. |
I'm also running the Orange Pi 5B using Armbian Screenfetch
|
I can find very little information about this error. I suspect this is some incompatibility between the OrangePI kernel and KVM, because all of you are running into this problem on a OrangePI device. From this post: https://forum.armbian.com/topic/29785-orange-pi-5-plus-fails-to-start-ovmf-efi-firmware-under-kvm/ it seems like it can be solved by upgrading the OrangePI to the newer Debian Trixie distribution (which has a newer kernel I guess). |
I have the same on a Rockchip Device Turing RK1 This has the same chip as the OrangePi RK3588, will test the upgrade. |
The update runs into errors: |
Rockchip RK3588 have 4 core Cortex-A76 and 4 core Cortex-A55.
The problem seems to be due to different kernels |
I have come across the same problem. I'm also using an OrangePi5 However, I have tried to disable the cpus before booting and I cannot avoid this error:
even though the cpu seems high. it's as if despite not being able to connect the windows runs. |
@rogerdk That thread is about The problem is that the OrangePi has a mix of different cores (big and little) and that KVM fails to handle it. Maybe if you set it like this: environment:
CPU_CORES: "1" it will work, because its limited to a single core so there will be no mixing of types, but I am not sure. The real solution will probably be to do some CPU pinning via QEMU environment:
ARGUMENTS: "-numa node,cpus=0-2" But I am not sure exactly which command will be needed, its explained on https://www.qemu.org/docs/master/system/qemu-manpage.html but its is very complicated. So the solution by @morsDeiGH looks much easier, to disable the little cores outside of QEMU/the container, so that you dont need to do any CPU pinning anymore. |
I think the easiest solution is to override - { qemu-system-aarch64 ${ARGS:+ $ARGS} >"$QEMU_OUT" 2>"$QEMU_LOG"; rc=$?; } || :
+ { taskset -c $CPU_TASK_SET qemu-system-aarch64 ${ARGS:+ $ARGS} >"$QEMU_OUT" 2>"$QEMU_LOG"; rc=$?; } || : Then add this env to the environment section of compose file: environment:
- CPU_TASK_SET: "4,5,6,7" |
@sund3RRR I will create a new release, with this feature added, thanks! |
Off-topic. Great work, man, thank you for windows-arm! I don't quite understand qemu-kvm related stuff, but is it real to passthrough mali-g610 gpu? Or at least accelerate 3d with virgl adapter? I want to speed up rdp session because cpu performance is not enough :( |
@sund3RRR I want to detect the Orange Pi, so the flag will be automaticly applied. Do you know an easy way? For example, I can check if the kernel name ends with |
Hmmm. I don't know. I think this check is not enough. And technically orangepi can run mainline linux since 6.8 kernel version with edk2-rk3588 uefi |
Can you show me how it detects the CPU in the Docker log (the first line where it says CPU/RAM/etc) |
Sure ❯ Starting Windows for Docker v2.09...
❯ For support visit https://github.com/dockur/windows-arm
❯ CPU: Cortex A55 | RAM: 6/8 GB | DISK: 362 GB (ext4) | HOST: 6.1.0-1014-rockchip... |
Thanks! I created a new release now (v2.10), which should have the issue fixed automaticly when it detects the RK3588 chipset. Can you please run it and see if it works now (without adding that environment variable). |
It works! Well done :) |
P.S. It doesn't work with base ❯ Booting image using QEMU v8.2.4...
taskset: failed to execute exec: No such file or directory Need to patch - taskset -c "$CPU_PIN" exec qemu-system-aarch64 ${ARGS:+ $ARGS}
+ taskset -c "$CPU_PIN" qemu-system-aarch64 ${ARGS:+ $ARGS} |
Can we support 8 cores in this way?
|
After my attempt, it is feasible.
|
What image and kernel are you using on host? |
@nongze That doesnt work. You set Also you set So if you want to do a real test, rename |
I have given up, four cores are enough. |
You can use qemux/qemu-arm |
@nongze This Windows container is a spin-off of https://github.com/qemus/qemu-arm , so to run Linux-like VM's you can use that one. |
I have another question, how do you optimize Windows 11? I run it on a regular QEMU-KVM and it always restarts. Is there a download link for the system image? |
I want to use it in a PVE virtual environment. |
When I added configuration to Docker Compose.yml to modify RAM and CPU, there was a startup error, whether it was the first creation or modification after creation.
If the default configuration is used, there will be no errors.
The text was updated successfully, but these errors were encountered: