-
Notifications
You must be signed in to change notification settings - Fork 6
Bringing up the SnapDragon Dev Kit for Windows with Linux ‐ *with* working display
It finally happened, we have good-enough DP Altmode support to bring up the Snapdragon Dev Kit with a working display. You can connect USB-C capable displays, use the shipped HDMI adapter, or any other one for that matter.
- An USB-A USB stick or SSD, or a micro-sdxc UHS-II (V60 or V90) card. We can boot from USB-A or the sd card slot behind that odd plastic lid. We need SDHC or USB-A to boot. USB-C won't work.
- The bootable image. Write it to the stick/card with the Disks tool or with Rufus.
- Back up your internal SSD. We need it for UEFI access, so removing it is not an option (yet).
- Decrypt the local Windows drive. We will disable Secure Boot, and this would trigger BitLocker.
- Boot to the UEFI menu. I found that most documented ways don't work, but entering
shutdown -s -t 0 /fw
in an elevated CMD does. - Disable Secure Boot in the UEFI menu.
- For USB-A, enable "Boot from USB first" in the UEFI menu. For sd-card, this is not required since the card slot is the first boot device.
- Insert the stick / sd-card and reboot / power on.
The box will boot to grub, and boot up without display. After a while (2 minutes?) it should reboot by itself and boot again to grub and then to console (some messages will be shown, not all of them errors - sound drivers missing) and then switch to GUI with the Ubiquity installer. From there on it is normal RPi-like setup.
This is unfortunately required to fetch the needed firmwares from the Windows installation. The script executed is /usr/local/bin/fetch_x1e001de-devkit_fw.sh
. It is started via /usr/lib/systemd/system/copy_firmware.service
and should only run once.
For DP Altmode to work, we need the ADSP firmware to be loaded and the ADSP remote processor booted up. Unfortunately, when this happens, there is an interruption in the VBUS line for the USB-C buses, (potentially) rendering the root device inoperable and the system stuck. All previously known measures to put the loading of ADSP before mounting rootfs are ineffective on the Dev Kit, the thing is just too fast. 😁 To avoid this issue it is boot from USB-A or sdxc card. Fortunately, the current device tree supports both now to do this.
The actual image of Ubuntu 24.10 was from the preinstalled desktop image for Raspberry Pi, modified to bootstrap with the Dev Kit. It is missing a bit of snap packages that we need for x1e-operation. Unfortunately I can't install them in a chrooted environment, so this needs to wait until after installation. Please do the following in bash:
sudo snap install mesa-2404 --channel beta/kisak
sudo snap refresh
Afterwards, the App Center in the Unity desktop should work, too. If it doesn't please do additionally:
sudo apt-get update
sudo apt-get install --reinstall ubuntu-x1e-settings
This should set the desired state.