-
-
Notifications
You must be signed in to change notification settings - Fork 13
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
Qualcomm Snapdragon X Dev Kit for Windows #51
Comments
A few notes as I'm unboxing:
|
upgrading to a higher Windows SKU should work via entering a product key in settings app. |
Some hardware details:
|
Blog post with many photos and more detailed notes after zooming way way in: Qualcomm Snapdragon Dev Kit for Windows Teardown (2024). |
I wonder if you solder the appropriate HDMI port to the PCB if it would function. Maybe they didn't want to pay for HDMI licensing? |
The ECB is an embedded controller board. ITE is one of the more popular EC chips out there. |
Arrow has just canceled my order for this one - I ordered on the same day 🤨. Thought they would ship none, then, but... whatever. The hardware seems nice enough, though. Do you want to run Linux on the thing? That was my intent. You also can run the Windows Dev Kit 2023 with Linux. |
doesn't the DP to HDMI converter get around that? as in the licensing cost is already part of the converter chip? But yeah I wondered the same thing, maybe even make a different daughterboard that just exposes DP directly. Same with the unpopulated PCIE slot, wonder how far populating that gets, on windows it might be locked out of the ACPI tables, but on Linux you might be able to just add it to the devicetree blob |
Richard Campbell with hardware design experience speculated HDMI FCC approval was the issue, more info: |
Getting the Windows ARM ISO is doable but requires a bit more effort right now: https://www.makeuseof.com/download-install-windows-11-arm-iso/ Of course make sure you have a backup or source for all the system specific drivers before wiping the existing installation. |
I believe the actual model is NCM865A. NCM865 is used in some WiFi 7 products and AFAIK the only difference between them is the Bluetooth connection interface (USB vs UART). |
tbh, why even hdmi at all, DP is right there, on the board, why put extra chips on a board to make the display interface worse (arguably). |
I'm very excited about the Linux benchmarks!!! I'm waiting for Tuxedo Computers with their Snapdragon X Model to be released maybe at the end of 2024 and Wondering what performance I can expect in comparison to my Late 2013 MacBook Pro. Now with kernel 6.11 out, the Snapdragon X chips should at work, but looking at the release notes looks like it's still not fully baked. Probably by 6.12. |
what is the power consumption in common use cases (idle in headless mode, idle with desktop, load, ...) Thank you! |
There's not many disk imaging/cloning apps that work on Windows ARM right now, this procedure seemed to have worked for others (read the comments for gotchyas): https://old.reddit.com/r/Surface/comments/1dniufo/ssd_clonemigrate_on_arm/ |
Can't seem to find an Windows ARM native build of iperf3, but x86/x64 version should work fully without issue in emulation. In general the following is a great resource for finding native Windows ARM apps (well maintained/updated): |
WinPE on ARM64 supports x64 emulation, and some disk partitioning/imaging software works fine under emulation. I tried DiskGenius and it works fine. dd for Windows might work as well. |
MiniTool ShadowMaker works on arm for an image. restore... better an x86 box, but works reliably. |
Regarding the HDMI port, Richard Campbell speculates that port could be at least a significant reason for the shipping delay, if they weren't able to get it cleared for compliance (maybe also the reason the FCC clearance didn't happen). |
Regarding Windows 11 image creation—I have created aarch64 images using UUPdump.net in the past, and that works fine, it's just... not official in any way, shape, or form. What I would really like to see is Microsoft providing an arm64 ISO like they do for x86 on their Windows 11 Download page. |
Little off topic, but a bigger reason some smaller open source projects don't have WIndows ARM64 builds even more than the availability of the Dev Kit is because GitHub (which is owned by Microsoft) Windows ARM64 runners are currently only available for enterprise customers. GitHub has said it should open it up to everyone soon but if Microsoft wants faster adoption they really should light a fire on that. |
Notes from my first boot:
|
Do you have a link to the geekbench test results? Would love to see results of the independent tests |
I'm updating all the final results in the OP at the top of the issue, and just added a link to the Geekbench result there. |
Heaven has no native ARM64 tests, so that may not give the best results. Solar Bay, Wild Life: and Wild Life: Extreme in 3DMark have Windows ARM64 native versions. |
@talynone - I understand that — just wanting to get a picture of how well x86 stuff is emulated and runs on this platform ;) |
Recommend making sure you have the OpenCL compatibility pack from the Microsoft Store installed . https://apps.microsoft.com/detail/9nqpsl29bfff?hl=en-US&gl=US You can also now download/install latest ARM64 Vulkan runtimes and SDKs from: |
Was able to install the Windows Subsystem for Linux with Ubuntu 24.04.
To quit, type |
Try looking at the branch I pointed to, there is stuff for enabling DP in aux-dp. But from what I've read you need more to get it stable. |
On 11/7/24 09:09, Cytochrome P450 2D6 wrote:
Thanks for the image you provided. I have successfully booted Linux
and loaded the firmware. But when I execute some commands, it freezes,
even
|iperf3 -c x.x.x.x|
or
|cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq|
will cause the machine to shut down.
Does your machine have such random halt?
Not observed, but read about these on #arch64-laptops. Should be
resolved with newer 6.12rc5 or 6.12rc6 kernel. I have seen odd things
with inxi when GPU firmware was not loaded.
…
Message ID: ***@***.***
|
Thanks, I will try to compile a new kernel to see if this solves the problem. |
My DevKit is actually stable when it boots :) But I've installed Linux on PCIe SSD (swapped stock SSD for a brand new one and copied most of the partitions there, then removed all windows related stuff and moved grub's efi file to the place where UEFI expects to find Windows bootloader) and I've immediately imported firmwares into the initrd, so I don't know if your instability caused by their absence or not. |
I observed again that the machine did not shut down, but reported an error |
You could try the 6.12-rc5-x1e package I built. Just don't use the dtb that is in there for the dev kit, this at least doesn't work here yet - use the current one. Also, what about the SSD you're using. Some stability issues may come from sub-par USB sticks. |
|
Thank you for building the image, I will try it. In addition, when using the old kernel, running the command |
Not too likely. I recall seeing some talk about cpufreq and reboots when trying that command. Would assume it is fixed in newer rcs. |
I won't be able to try it until this evening at least or even until tomorrow, but overall I would not be counting on stable cpufreq/powersaving yet and one of first things I did was to disable sleep and other powersaving features. can you check if devkit is stable under load in windows? If it is, then it is for sure Linux issue, question is what exactly causes problems |
So it seems to be a problem under old linux kernel. At least I did not encounter any problem when running Cinebench and CPUz under Windows. |
the crashing when accessing cpufreq is talked about here, I believe it is some patch that causes it, it was later talked about in the aarch64-laptops irc that reverting a certain patch stopped the crashing From what I remember it is a firmware issue |
There were some news with more patches around cpufreq on sdx: https://www.phoronix.com/news/Snapdragon-X1-Elite-CPUFreq-V7 Or direct link to patch series: https://lore.kernel.org/lkml/[email protected]/ But I haven't tried it myself. I want to get video out working first :) P.S. I also will try to replace onboard NIC with Intel 225 because I had enough problems with realtek under linux in my life :) |
https://git.codelinaro.org/abel.vesa/linux/-/commits/x1e-next-20241101 - they have a devicetree there for the devkit. I've tried to compile it and boot, however with no luck (with defconfig I don't get network and I don't get display output, so I don't know whats wrong with it). I'll try to have a better look at it tomorrow. |
defconfig for devkit there is probably missing something like NIC support, if I use config from the kernel - kernel boots, but still no display output. |
Microsoft just released the Windows ARM ISO for download https://www.microsoft.com/en-us/software-download/windows11arm64 |
@talynone - Indeed! Now who wants to be the daring person to nuke their Dev Kit and see if they can get the ISO installed? :D |
For me that ISO haven't worked out on devkit - no image after WinPE boots even after I enable "Video output in WinPE" option. And with Qcom recovery image I haven't had any problems with reinstalling windows. I'm using a fresh ssd, where I've copied all the partitions until boot partition from stock ssd. EDIT: second time the charm - re-enabled "External display in WinPE" in the menu and it displayed the picture. But it doesn't detect NVMe drives without extra drivers :) |
Oh so you're a bit f'ed... means we would need to scavenge the existing Windows installation for the drivers first. At least there is a way out 🤷♂️ |
Well, exporting drivers from Windows and putting them on another flash drive didn't work unfortunately. And from the list of cab files on github I haven't able to figure out which one is required (for most of them it complains that can't install them from WinPE)... P.S. And I'm sort of fine - I have 3 SSDs which I'm just swapping - Linux, Windows and clean. |
We messed up with our W11 and the dev kit would not boot anymore. Tried using the Microsoft Official w11 arm64 ISO and it wouln't install. What worked to get windows reinstalled:
Downloaded windows 11 fro here https://thundercomm.s3.ap-northeast-1.amazonaws.com/uploads/web/Running/WinPE/WU0_Thumbdrive_Content_User/WU0_Thumbdrive_Content_User.zip You have to download by the link, unzip, copy to the root usb. Boot from usb, before enable UEFI some parameters described in the manual. It boots from usb, copies files, reboots and after this, windows 11 starts installation. |
I realize most of the discussion is around getting linux to run, but I did have a question regarding the stock Windows install. I upgraded the Snapdragon X Dev Kit to Windows Pro by adding a license key in order to get Hyper-V running. I am able to create Windows arm64 VMs that run great (by simply using a Windows .arm64 .iso), but Linux VMs on Hyper-V are awful. Here are my questions:
|
No idea why Hyper-V has an issue with non-WSL linux. I've heard this from several people, it's the same issue on the laptops. |
If you mean graphical performance, then I would assume you will get sw rendering by default. Speaking of which, running a Linux VM on Windows will presumably use the windows drivers in any case, and I'd be very surprised if the windows drivers had better performance than freedreno/turnip from what I've heard. |
@Mis012 No, I should have clarified that its not graphical related. I'm just installing server version of Ubuntu. The CPU performance of just the 1 vCPU is slow/awful. Other odd things as well like compiling code, network performance, pings -- they all work poorly too. If you run Geekbench 6, they are orders of magnitude worse than both the host Windows OS or even a guest Windows OS instance in Hyper-V. None of this happens on WSL -- which runs as well as the host Windows OS for all those things mentioned above. |
I haven't tried this yet, but this project claims to have generated a nixOS derivation from inside WSL2 which is then used to generate a flawless bootable ISO installer of nixOS for Hyper-V. The README makes some interesting claims:
|
@ankushnarula I just tried the NixOS iso that was a release on that repo and it worked! Installed it with 4 vcpus, installer came up quickly. So far it feels snappy. Seems like other distros could be built using the same technique, by simply using the WSL2 kernel. |
[@ankushnarula]() I installed stock Ubuntu 24.04 arm iso (using 1 vcpu), compiled the WSL kernel, and voila Ubuntu is running really well in early tests. I was able to also use up all the vCPUs and assign all 12 of them and ubuntu booted and seems to be running well. Perhaps folks on this thread that are closer to building kernels can figure out if its simply the config & drivers that are the difference or if the WSL kernel changes something else important. Either way, seems like a custom distro would be an elegant solution to getting linux VMs to run well on these qualcomm socs. |
Rumored Qualcomm mini pc coming from Geekom: |
Basic information
Linux/system information
Benchmark results
CPU
Power
stress-ng --matrix 0
): TODO Wtop500
HPL benchmark: TODO WDisk
MANUFACTURER_AND_MODEL_OF_DISK_HERE
Run benchmark on any attached storage device (e.g. eMMC, microSD, NVMe, SATA) and add results under an additional heading.
Also consider running PiBenchmarks.com script.
Network
iperf3
results:iperf3 -c $SERVER_IP
: TODO Mbpsiperf3 -c $SERVER_IP --reverse
: TODO Mbpsiperf3 -c $SERVER_IP --bidir
: TODO Mbps up, TODO Mbps down(Be sure to test all interfaces, noting any that are non-functional.)
GPU
glmark2-es2
/glmark2-es2-wayland
results:Note: This benchmark requires an active display on the device. Not all devices may be able to run
glmark2-es2
, so in that case, make a note and move on!TODO: See this issue for discussion about a full suite of standardized GPU benchmarks.
Memory
tinymembench
results:Click to expand memory benchmark result
sbc-bench
resultsRun sbc-bench and paste a link to the results here:
Phoronix Test Suite
Results from pi-general-benchmark.sh:
Provisional Tests under Windows
The text was updated successfully, but these errors were encountered: