Windows Dev Kit 2023 Bootup #1
Replies: 46 comments 104 replies
-
To get an idea how far away the current source code is from upstream, this is the comparision:
IMO this is not very far. |
Beta Was this translation helpful? Give feedback.
-
update: the latest 6.4-rc6 commit can handle pcie3a_gdsc as disabled. One kernel warning down, one to go. I would assume that the EDP warning is of a similar nature (somebody has hardwire-disabled the display port for LCD?). We'll see. Regarding the USB bootup issue, well, no cigar yet. Anyway, the wdk sometimes boots up pretty fast, and sometimes nvme is not detected either at root mount time. Adding rootwait as kernel parameter is a good idea as it seems. Also, need to do some detail work on all the missing vdda and vdd-pll regulators. All in all, looks a lot like device tree amendments to make the box behave better. |
Beta Was this translation helpful? Give feedback.
-
update: Switched to 6.4.3 as development base. The EDP crash is now resolved, seems to work even on hotplugging and powerless screens. Those regulators are a bit of a mystery to me, I would welcome a schematic (block) diagram to make some sense of it. If you enable all regulators in the DTS, the box hangs with activating ldo3. More "unused hardware" effects? Also, the regulator configuration is from the Thinkpad x13s, which deviates from the sc8280xp-CRD a lot. Maybe it's not the optimal assumption, I'm try-and-error-ing my way forward. To compare and research™️ I have acquired a Thinkpad x13s, too. My gut feeling is that getting the power supply config right would also solve the USB bootup mystery. |
Beta Was this translation helpful? Give feedback.
-
update: Got the X13s up and running with @armbian. Wheee! This thing boots from USB, and I think I found what was odd/missing on my WDK2023 setup. I think I will have it booting from USB in the next few days. rootfs detection by UUID works now. :) |
Beta Was this translation helpful? Give feedback.
-
Now it's booting from USB :) I had it up with the @armbian USB stick with the 6.4.3 kernel added and an updated grub.cfg. The armbian stick won't boot as it is out of the box. The main difference was that the armbian kernel loaded mhi and mhi_pci_generic which didn't come up with the wdk:
Previously this was only qrtr_mhi. Since mhi is another important bus on the chip, this seems like quite a reason why things behave oddly without it. It was compiled into the kernel, but apparrently it needs to be built as a module to work. Well, now it does. This changes the order of device initialization, and USB connected drives are available, also udev as it seems. |
Beta Was this translation helpful? Give feedback.
-
And there it is: Now the code runs on 6.5-rc5 :-) Apparently most of the required stuff for the WDK is already in the upstream kernel, its just some dt stuff and the pcie3 disabling that is not:
So we're down to 5 commits as diff to mainline. Neat. I think it's ready for upstreaming :-) I guess I'm doing some testing first, though. |
Beta Was this translation helpful? Give feedback.
-
I have a WDK and I am willing to help test and can get some others to help test too. Let me know how I can help. I'd be glad to write up a tutorial to on getting Linux booting on WDK. |
Beta Was this translation helpful? Give feedback.
-
*** USB Bootable Image available *** Now. I play it a little safer than I wanted, but this at least works without shredding the rootfs for whatever reason. You can find a bootable image here. The image is compressed 4,8GB, uncompressed almost 16GB. You can burn it onto a USB3 stick or (faster) an SSD attached via USB. Rufus should do, I used the disks utility from Ubuntu. What's on it:
What's not on it:
To make this workable I have compromised the security of the image: the root password is: FsecuritY! For the adventurous: The systemd unit to fetch the firmware is /etc/systemd/system/copy_firmware.service. The script has a switch do_reboot, with set to 1 you can destroy file systems at your leisure (or find the bug). Happy testing! PS: I know that the raspi image is not the best choice. I am not familiar enough with all this linux stuff to make sense of debootstrap, though. Known quirks:
|
Beta Was this translation helpful? Give feedback.
-
What do you think why I spent a Sunday with ChatGPT hacking up the fetch script?
|
Beta Was this translation helpful? Give feedback.
-
And another update: now the firmware fetcher also works with systemd, without shredding the file system. It takes ~2 mins from first boot from grub to the setup screen of Ubiquity, including the reboot after fetching the firmware files. That is nice. Doing user-level reboot commands is a big no-no in systemd-run scripts. You need to do it this way:
Yay, learned something. I will post an updated image for installation via USB stick. Same path on google drive as before. |
Beta Was this translation helpful? Give feedback.
-
The image works exceptionally well! Good work 🎉 Bluetooth didn't work though and WiFi doesn't connect but at least I have Ethernet working just fine. :D I will try to increase rootfs size using gparted on an another Linux laptop lol Update: Gparted fails ¯\_(ツ)_/¯ |
Beta Was this translation helpful? Give feedback.
-
I think that you should try armbian. They also have repo for firmware blobs :) |
Beta Was this translation helpful? Give feedback.
-
Updated image Ubuntu_Desktop_23.04_wdk2023_6.4.3_6.5rc5_fwfetcher.img.xz is uploading to https://drive.google.com/drive/folders/1sc_CpqOMTJNljfvRyLG-xdwB0yduje_O?usp=sharing |
Beta Was this translation helpful? Give feedback.
-
When I connect usb dongle (with image) to usb-c. |
Beta Was this translation helpful? Give feedback.
-
Tried a little and no working stick yet. will add ZSTD support to the kernel (have it running on the x13s). A bit scared of the automatic changes from |
Beta Was this translation helpful? Give feedback.
-
Hi! Is there a list of firmware that needs to be fetched from Windows? I may have one or two ways to do it automagically (assuming internet is working without the missing firmware).
|
Beta Was this translation helpful? Give feedback.
-
Thanks!
The aspect of fw_fetch I'm struggling with is what the way of installing a different distro would be if you've already overwritten your Windows install with an earlier install of Linux. It would be nicer, apart from having the mbn's upstreamed obviously, to have a simple place to get the blobs from and using them on the device.
Entirely fair, I'm just here to get the user experience up a bit. I'm considering trying to get postmarketOS booting on the device, they tend to get the blobs either through TheMuppets (like someone mentioned here before) or by fetching them from a factory image. Instead of going for their approach by doing it in the package definition for Alpine/pmOS, I thought a more central/generic solution like you are doing may be better so others can use it too (if it works). |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
hihi firefox support only V4L2 H264 decoder :) |
Beta Was this translation helpful? Give feedback.
-
Mantic (23.10) Image with 6.6.0-rc6 is available now. Looks different. I have abstained from enabling ZSTD firmware compression in the kernel, don't understand it yet. I went @xlazom00's way and made a decompress firmware tree script with ChatGPT, appears to do the job. Also Bluetooth is a little odd, the systemd unit appears to be not working as expected. When you run |
Beta Was this translation helpful? Give feedback.
-
Are you able to get proper cpu temperature ? |
Beta Was this translation helpful? Give feedback.
-
Can anyone running the device currently give me the output for |
Beta Was this translation helpful? Give feedback.
-
Here you go:
Made on Mantic, has better device db |
Beta Was this translation helpful? Give feedback.
-
And it creates a new dtb file. |
Beta Was this translation helpful? Give feedback.
-
News as of now:
|
Beta Was this translation helpful? Give feedback.
-
23.10 image with kernel 6.6.0 and all hacks is now available. Tried the image with a completely restored wdk, all security as it comes after the restore. You won't get it to boot the image. You need to:
Afterwards, it will work (or should work), and will also fetch the WDK-specific firmware files from the decrypted Windows drive. |
Beta Was this translation helpful? Give feedback.
-
Hmm actually I *did* a complete restore and boot with 23.10 (6.6.0) today. The restore didn‘t want to at first, I had to write the USB stick twice.
1. format the USB stick with FAT32 (GPT partition table)
2. unzip the recovery files directly into the root of the USB stick (I used 7zip)
3. boot with this stick and do the recovery , needs to go through. You get a clean, fully locked down Windows 11 on WDK
4. decrypt the internal drive (disable Bitlocker)
5. disable secure boot in the bios, enable boot from USB as the first boot order. Disable Windows boot manager in the boot order, too.
6. boot from Ubuntu Image. Worked after secure boot was off first time.
Am 10.11.2023 um 23:05 schrieb Mick Cox ***@***.***>:
Attached is 6.6.0-rc6; same issue. I'm not sure what else to try. I've tried to play around with settings in UEFI. Windows did recover properly from my USB stick though, and I did execute a clean install. I have used the 'Create a recovery drive' so I'm not sure if that formats the thumb drive as FAT, but given that Windows completely recovered I'm not sure if that has anything to do with this. I did update to the latest patch level with Windows Update after restoring though.
|
Beta Was this translation helpful? Give feedback.
-
😎 no, if the windows partition is not encrypted it will find and copy the firmware files, then reboot. No manual steps required. It is fastest from an SSD, from a stick it takes considerably longer, but works regardless. I tested both variants today.
Am 10.11.2023 um 23:52 schrieb Mick Cox ***@***.***>:
Turns out it is my monitor (Dell Ultrasharp 27 U2720Q) which was connected over HDMI over mini display (active) converter. Normally I use it through its USB-C port but in this case I had to use the converter. Using the same converter on our television works just fine. I'll try the 6.6.0 which you just released. Are there any other manual steps which one has to take in order to load all the firmware or is that done automatically? I couldn't find the fw updater but perhaps I didn't look in the correct place.
|
Beta Was this translation helpful? Give feedback.
-
This discussion is getting a bit hard to follow. Closing this one, the wdk2023 is officially booted up now :) Please open issues or discussions as appropriate. Will try and set up a wiki with the condensed knowledge to get things up and running. |
Beta Was this translation helpful? Give feedback.
-
This discussion is opened as a result of Windows Dev Kit 2023 Boot Work.
👋 Welcome!
We’re using Discussions as a place to connect with other members of our community. We hope that you:
build together 💪.
To get started, comment below with an introduction of yourself and tell us about what you do with this community.
Beta Was this translation helpful? Give feedback.
All reactions