-
-
Notifications
You must be signed in to change notification settings - Fork 146
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
Add Intel Arc A750 #510
Comments
There's a good deal of coil whine on my card—when testing on the PC and it needs to render anything. At idle there isn't much, but when the fans stop spinning and the card is not displaying anything, or alternatively when the GPU is under heavy load, there's a lot of coil whine, enough to be pretty distracting. |
On Twitter someone mentioned this commit: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/gpu/drm/i915/Kconfig?h=next-20230210 — it looks like the i915 has some hardcoded x86 dependencies:
|
lspci output:
And dmesg:
|
To test out Intel's open source kernel driver, I cloned the 6.2.y branch of Raspberry Pi's linux fork:
|
...except I can't select the Intel Graphics support using menuconfig, because of the dependencies:
I asked about arm/arm64/aarch64 support on Intel Arc/Xe on Twitter and got a few responses, mostly suggesting X86 drivers are the current focus, but they may rewrite the driver and work on getting rid of the X86-specific dependencies... I also asked about it on Discord, but I noticed most of the active discussion (on Intel's official Arc/Xe community Discord) seems to center around where people can buy Nvidia graphics cards 🤣 The only other mention on Twitter is from @ric96, and he also seems to notice there's no support for arm64... |
Just FYI, the most likely reason x86 is listed as a dependency is that historically Intel only had iGPUs, and those can't exactly be plugged into an aarch64 system for obvious reasons. That being said, it seems quite likely that if those dependencies were removed (since they are for all we know completely bogus), chances are the driver would actually compile just fine. It seems quite unlikely that it uses assembly for anything, which is just about the only valid reason for it to not compile for aarch64 |
It looks like you could try again with Xe drivers in kernel 6.8: |
If you do decide to test this with 6.8, note that Ubuntu's Mesa doesn't have the Intel drivers enabled, and even if you check out the experimental branch of the mesa packaging from debian's "salsa" repo, it doesn't enable the Intel drivers for armhf or arm64/aarch64. You'll want to edit
On my LX2160A, the kernel driver for my A770 loads once I add xe.force_probe=56a0. It complains about lack of resizable BAR, though. With a manually rebuilt Mesa, Weston works, but gdm3 and sddm both glitch out and freeze, and autologin doesn't give a working desktop either.
If you can get the driver to work without glitching out, you'll also run into these chirping crickets: (I actually bought the A770 to use with arm64, but now it's just sitting unused.) |
Only slightly related but if anybody working for Intel is reading this, please note the new arm64 laptops all support USB4 / Thunderbolt and if Intel can release GPU drivers for these for arm64 Windows 11 and arm64 Linux then we would love that for eGPUs! Running a fast and efficient Snapdragon Elite X and then using eGPU for gaming or rendering would be amazing! |
@karatekid430 - Sadly, arm64 driver support on Windows for anything besides USB devices is pretty much nonexistent so far. I'm not sure if any graphics card (let alone NICs and other simpler devices) will support PCIe (especially through Thunderbolt/external enclosures) any time soon. Would love to be proven wrong on that! |
Some progress here with my Arc a750
xe drivers built, updated firmware. note: |
@martinx72 Excited to re-open this issue ;) |
Fedora 41 for aarch64 has xe kernel support out of the box. |
@pimzand Does this release support Pi 5? And some more progress here, at least no crash in the driver
Page Size set as 4K, then it went to some error much easier for me to narrow down the crash issue, but, i think i probably have to stop here. As intel keep modifying their repo every single day here: https://gitlab.freedesktop.org/drm/xe/kernel IMO, never can chase their steps by myself. :( |
Not fully, apparently: https://discussion.fedoraproject.org/t/aarch64-support-for-raspberry-pi-5/134857 I tried an Arc 310 Eco in an Ampere Altra system while still Fedora 40. |
Just check the link in the post, https://rpmfusion.org/Howto/RaspberryPi Then it is 6.6,y, and it never can boot with xe drive at all. |
Intel doesn't have any ARM64 Windows drivers for any of their NICs I've checked. NVIDIA/Mellanox, on the other hand, does have in-the-box ARM64 Windows drivers for ConnectX-4 and newer. I've used a Mellanox ConnectX-4 Lx 10-/25-gigabit ethernet NIC with my Snapdragon X machine on Windows ARM64, via USB4 / Thunderbolt. It works, but oddly, one direction seems to give only 5 gigabits of throughput for some reason. As far as I can tell, there are no discrete GPU drivers for Windows ARM64. On ARM64 machines with UEFI, such as LX2160A, the closest you can get is loading AMD's GOP driver in UEFI to run the framebuffer with Microsoft Basic Graphics Adapter. |
@DanaGoyette From what I've heard, Nvidia may have working drivers for Windows arm64, as they've worked on support for enterprise use in Azure... at least that's what I infer from tweets like this. |
I see some fairly similar but different issues to what @martinx72 was seeing in their issue tracker, maybe worth reporting? |
@martinx72 Can you add some steps, what you've done so far? Like what RaspiOS are you using, and are you trying X11 or Wayland? So far I understand you compiled the 6.11.y branch, selected Intel XE via menuconfig and added some firmware binaries to it. Did you, by any chance, create some small script to do all of that? I have a spare 8GB Raspi5 with a spare Intel Arc 770 here for some experiments, maybe I can help, even tho I am very new to the kernel hacking game. |
Check the way to build kernel for Pi5 aarch64: https://www.raspberrypi.com/documentation/computers/linux_kernel.html And use make menuconfig to enable the intel Xe driver, and pagesize as 4K. that's all. And you can also try 6.12.y, i tried both, all crashed there. and u can also try the intel xe driver source stream here: https://gitlab.freedesktop.org/drm/xe/kernel |
There are a few more menuconfig entries in the AMD article that could be worth trying |
So far using a very naive approach does not bring me very far. I am using the current 6.12.y branch of the raspberry kernel and starting with a fresh installation of Raspberry Pi OS (64bit, desktop). Some commands I am using as root user: # making sure to have up2date system
apt-get update
apt upgrade
# installing some build dependencies (might contain unneeded stuff, copy-pasted a lot from several of my own projects)
apt-get install -y bc bison flex libssl-dev make git
apt-get install -y libncurses5-dev
apt-get install -y xz-utils kmod
apt-get install -y libelf-dev libssl-dev
# clone the raspberry kernel, at time of writing at commit 05678eba0b1fc51355b03b0d3f05f059068baf3e
cd /opt
git clone --depth=1 --branch rpi-6.12.y https://github.com/raspberrypi/linux
cd linux
# adjusting kernel compile configuration
make bcm2712_defconfig
make menuconfig Then I select the following options (the ones from the AMD article are not there, because the kernel-fork introduces them):
The ID Then the boring compile stuff. make -j$(nproc) Image.gz modules dtbs
make modules_install
# installing the generated files
cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware/
cp arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/
cp arch/arm64/boot/Image.gz /boot/firmware/kernel8-xe.img
# selecting the new compiled kernel
echo "kernel=kernel8-xe.img" | tee -a /boot/firmware/config.txt Out of the box I get hit by outdated firmware files:
This I can resolve thanks to the already mentioned linux-firmware snapshot file #510 (comment) . wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-20241110.tar.gz
tar -xvf linux-firmware-20241110.tar.gz
cp /opt/linux-firmware-20241110/i915/* /lib/firmware/i915/
cp -a /opt/linux-firmware-20241110/xe /lib/firmware/ After downloading and extracting the files (as shown above) and a reboot, I get a different error:
As I am too new to the kernel hacking game, I've read about the need of running
Not sure if this helps someone, just wanted to post this here so others can find this issue. My goal was running my A770 on a Pi5 for video transcoding feature of my home Jellyfin server |
|
An issue was just opened to track progress here: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/3594 |
Could... Intel actually beat Nvidia to supporting the Pi?! :D |
Back at Embedded World 24 Intel wouldn't want to acknowledge Arc x Arm to me but that didn't hold me back for trying the A310 with RK3588. Didn't get it to be recognized at all in linux but in uefi I was able to list it with the other PCIe devices. We never got graphics output though :/ |
@ifdu Thanks for opening the issue on that other project. Sadly even with your patch it is not yet working for me, neither with 6.11.y nor 6.12.y ... when playing with 4K page size I am always greeted with When trying to use your patch without touching pagesize nor VA size on the
When leaving page size at 16k (unchanged default value) but changing VA to 48bit, I also get Is it "just" a math problem when calculating the sizes maybe? I even made sure to check two GUC binary versions, # 70.36.0 currently
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/dg2_guc_70.bin
mv ./dg2_guc_70.bin /lib/firmware/i915/dg2_guc_70.bin
# older 70.29.2
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/dg2_guc_70.bin?id=9889ca654ef0a251e633c43ce51e86ad911479b9
mv ./dg2_guc_70.bin\?id\=9889ca654ef0a251e633c43ce51e86ad911479b9 /lib/firmware/i915/dg2_guc_70.bin One time I was greeted with For me it feels "not yet ready", when I have more time, I will check against a different ARC card (A380), maybe it's some weird combination. |
I am testing an Intel Arc A750 8GB graphics card:
It requires external PCIe power, so needs to be used with a suitable power supply. Intel seems to only officially support Ubuntu 22.04, and by default only AMD64/x86_64... Here's the full Ubuntu installation guide for Arc drivers.
Not sure if I can get it to work at all on Debian, and I also haven't confirmed if aarch64/ARM64 support is at all existing, planned, or not planned. Would like to find out, because I'll soon have another ARM64 system to test this in with a bit more firepower.
See also: Intel Arc Graphics A750/A770 Performance Ahead Of Linux 6.2 + Mesa 23.0 — it may be possible if the Pi OS kernel is up to 6.2 (it was 6.1 last time I checked) to compile the driver and see what happens.
The text was updated successfully, but these errors were encountered: