News Intel Arc GPU hacked to work on a 64-core Arm Ampere system running Linux

"Hacked" in this sense, probably should not be used as the "mainstream" usage in PC verbiage has it mean something else.

I think the author means that they "hacked" together lots of code to get this to work were most would want to see custom/original code being used and/or modification of the hardware to circumvent or allow access to restricted resources on the board to be awarded the classification of "hacked".

But, eh.... what do I know?
 
No, the GPU was not "hacked",
Agreed. I also took exception to use of the word "hacked", in this context.

It was exactly hacked. The method used to make it work is a hack.
Well, the kernel's GPU driver framework is specifically designed to make graphics drivers portable across different platforms, including different ISAs. The fact that all he had to do was disable the VGA console stands as testament to this fact!

Where things might've gotten a bit hacky is in his workarounds of the various issues he encountered in Mesa. In this case, perhaps you could say his solutions to some of those problems were a bit rough or ad hoc, rather than undertaking all the work needed to port it in a clean and elegant way like you'd do if you actually intended to upstream your fixes. However, like the Kernel's driver framework, Mesa is also designed to be cross-platform. So, any issues he hit should've been places in the Xe code that were somewhat needlessly x86-specific.

The article said:
While most consumers and users will not appreciate Smirnov’s efforts, it shows how ingenuity and a little effort can result in great open-source projects that others can iterate on.
Not sure about the "ingenuity" part, but perhaps what he accomplished was to estimate the scope of work needed for a clean ARM port. As mentioned in the article, some AMD GPUs already work on ARM (and other ISAs).

Nvidia's proprietary driver also supports ARM, but that only tells us about the kernel framework, because their userspace is not Mesa-based.
 
Last edited:
  • Like
Reactions: 35below0
Sounds like a typical Linux experience. Seems like there is always something that just doesn't want to work and requires combining the information from 3-4 different forum posts to get it working.
Yes, it's typical on Linux systems...
Case : something doesn't work.
  • step 1 : make it work.
  • step 2 : test it.
  • step 3 : make it work right-ish.
  • step 4 : write patch.
  • step 5 : test patch.
  • step 6 : submit patch upstream
  • step 7 : get upstream release for software.
Result : something works.

While on Windows :
Case : something doesn't work.
  • step 1 : look for someone who has solved the problem.
  • step 2 : ask the vendor.
  • step 3 : wait.
  • step 4 : get no answer. Give up.
Result : something still doesn't work.
 
Well, the kernel's GPU driver framework is specifically designed to make graphics drivers portable across different platforms, including different ISAs. The fact that all he had to do was disable the VGA console stands as testament to this fact!

Where things might've gotten a bit hacky is in his workarounds of the various issues he encountered in Mesa. In this case, perhaps you could say his solutions to some of those problems were a bit hacky, rather than undertaking all the work needed to port it in a clean and elegant way. However, like the Kernel's driver framework, Mesa is also designed to be cross-platform. So, any issues he hit should've been places in the Xe code that were somewhat needlessly x86-specific.
Yeah, i was refering to the "hacks" made to get to a working solution.
I get why you'd say it's not, because of cross platform compatibility. It's not fair to call every workaround or wrap a "hack". I was responding to a different comment about the word hacking.

In it's state and how it got there, i'd say it's a hack. Though it could probably be more polished and tested. Ultimately, good solutions can arise from hacks.
I don't see "hack" as a pejorative. Not that what i call it is decisive.
Not sure about the "ingenuity" part, but perhaps what he accomplished was to estimate the scope of work needed for a clean ARM port. As mentioned in the article, some AMD GPUs already work on ARM (and other ISAs).
Somehow that ended up as my quote, but i never posted it. Glitch?
No way. This is trying to make a GPU driver work on a completely new platform with a CPU ISA that it never previously supported! It's absolutely unlike anything you'd experience in the normal day-to-day.
I will hate on Linux any day of the week and twice on sundays, but THAT is still a ridiculous complaint to make.
Agree that this has nothing to do with typical Linux experience.
 
  • Like
Reactions: bit_user
Yeah, i was refering to the "hacks" made to get to a working solution.
I get why you'd say it's not, because of cross platform compatibility. It's not fair to call every workaround or wrap a "hack". I was responding to a different comment about the word hacking.
The problem is that, for decades now, people have substituted "hacking" for "cracking"; etymologically, "hacking" in this article is proper - the author hacked on several pieces of code to make them work.
The way it's used in the article's title though, instead of him hacking on the GPU's driver, may lead one to think he "physically" cracked the GPU instead.

Which is wrong.
In it's state and how it got there, i'd say it's a hack. Though it could probably be more polished and tested. Ultimately, good solutions can arise from hacks.
I don't see "hack" as a pejorative. Not that what i call it is decisive.
It is a hack, as the same driver code now has reduced functionality ; a proper fix would be to try and detect the presence of the VGA component before trying to initialize it, a "better" hack would be to limit loading the VGA component if built for x86/x86-64 (as it's not exactly used on other current platforms, to my knowledge).
Somehow that ended up as my quote, but i never posted it. Glitch?
or a little problem when bit_user added quotes...
I will hate on Linux any day of the week and twice on sundays, but THAT is still a ridiculous complaint to make.
Agree that this has nothing to do with typical Linux experience.
Define "typical"
If by "typical" you mean "using the computer to browse the web, watch a movie etc." then yes, definitely.
On Linux, when a piece of software doesn't work, you can at least dig into it to try and fix it; I'm no C programmer, but I did once or twice fix bugs by building dependencies manually and/or commenting out a few problematic lines.
On Windows, fat chance.
 
Yeah, i was refering to the "hacks" made to get to a working solution.
I get why you'd say it's not, because of cross platform compatibility. It's not fair to call every workaround or wrap a "hack". I was responding to a different comment about the word hacking.

In it's state and how it got there, i'd say it's a hack. Though it could probably be more polished and tested. Ultimately, good solutions can arise from hacks.
I don't see "hack" as a pejorative. Not that what i call it is decisive.
If the bulk of his Mesa fixes were of the quick-n-dirty variety, rather than clean fixes conforming to the standards needed to upstream the changes, then I think it would be fair to say his solution is a hack.

Somehow that ended up as my quote, but i never posted it. Glitch?
Copy/paste mistake. I edit my posts in markup mode. I copied the [quote] tag from your post, rather than using a bare one. Fixed.
 
Define "typical"
If by "typical" you mean "using the computer to browse the web, watch a movie etc." then yes, definitely.
I think the relevant context is installing Linux on a new machine or trying to get a new piece of hardware working with it.

Once upon a time, you did have to download and try to build device drivers on your own. I've done this a few times, and thankfully the last of those was more than a decade ago.

That said, if you're on the bleeding edge, then: yes, you might indeed need to patch & build your own kernel, in order to make something work. Thankfully, this is a relatively straight-forward process.

For any who are allergic to the very idea of having to patch or build anything, then you should stick with the big distros and their official releases. Be aware that hardware support is sometimes lagging on day 1, so it's best if you can use hardware that's at least a few months old. Even better if it had launched by the previous release, so that any kinks will probably have had ample time to get worked out.
 
To put my previous blunt statement into some proper context, i will hate on Windows on days ending in "y". Not that much though. 11 is pretty easy to get along with compared to almost every other version except 7.

Linux and me are not a match. We tried, we hate each other, we've moved on.


Back on topic, "hacking" does have two meanings it's true. I think if the artice's subject was the GPU drivers, then there would have been no debate. But it's the GPU instead.
So yeah, a phone can be hacked, a bank account, a computer, etc. In this context a GPU which is just as much a physical thing, wasn't "hacked". It wasn't that sort of hacking.
The hacking was done on the drivers to make them do something they weren't designed to, and with them the GPU itself. We might debate how much difference it makes whether it was the GPU or the drivers, because any hacking of a GPU is going to involve firmware/software.
I guess it can go either way.


Back off topic, the film Sneakers (1992) is a rare example of Holywood doing a realistic portrayal of hacking (security), instead of the more usual "cool" version. Story and setting are good.
The acting that lets the film down. Some scenes are really, really bad. Like they didn't bother rehearsing or showed up for work totally checked out.
Unusual because the cast is a murderer's row of actors that should, on paper knock it out of the park. But they didn't.
/rant
 
It was exactly hacked. The method used to make it work is a hack.

If you're refering to hacking security, no it was not that. But programming wise, it was hacked.
You might have misunderstood me?

I am only complaining about the author using the word "hacking" on a GPU which is a piece of hardware -- hacking hardware is something entirely different. Hacking an NVIDIA GPU by modifying PID to enable professional features would be proper use of the word in that context.

What happened here is that someone "hacked" (in the hack and slash sense) a GPU driver, not a GPU.

One missing word makes all the difference here.
 
Yes, it's typical on Linux systems...
Case : something doesn't work.
  • step 1 : make it work.
  • step 2 : test it.
  • step 3 : make it work right-ish.
  • step 4 : write patch.
  • step 5 : test patch.
  • step 6 : submit patch upstream
  • step 7 : get upstream release for software.
Result : something works.
Is this before or after your grandmother who has this Linux problem takes a course in C programming and GNU toolchain?

On Windows you try different drivers if it's hardware device, rollback the latest update or verify the integrity of the system image. Usually one those things solves all Windows problems.
 
Is this before or after your grandmother who has this Linux problem takes a course in C programming and GNU toolchain?

On Windows you try different drivers if it's hardware device, rollback the latest update or verify the integrity of the system image. Usually one those things solves all Windows problems.
No, it's after my grandmother told me her printer didn't work anymore; on Linux, I get it working after downloading latest cups and a description file.
On Windows, I have to tell her "buy a new printer : yours is no longer supported and won't work anymore".
 
  • Like
Reactions: bit_user
You might have misunderstood me?

I am only complaining about the author using the word "hacking" on a GPU which is a piece of hardware -- hacking hardware is something entirely different. Hacking an NVIDIA GPU by modifying PID to enable professional features would be proper use of the word in that context.

What happened here is that someone "hacked" (in the hack and slash sense) a GPU driver, not a GPU.

One missing word makes all the difference here.
Yes, agreed.
 
On Windows, I have to tell her "buy a new printer : yours is no longer supported and won't work anymore".
Printer manufacturers not providing 64-bit USB printer drivers for older USB printer models as a way to drive planned obsolescence isn't really Windows' fault.

Also, if your hypothetical grandma bought a network laser printer instead of cheap inkjet USB toy it would "just work" in every OS.
 
Printer manufacturers not providing 64-bit USB printer drivers for older USB printer models as a way to drive planned obsolescence isn't really Windows' fault.

Also, if your hypothetical grandma bought a network laser printer instead of cheap inkjet USB toy it would "just work" in every OS.
It is, when Windows requires a full executable driver to run a printer. On Linux, the same printer only needs a text description file - the same "driver" runs on ARM, x86-32, x86-64, RISC-V etc.
Toy drivers for toy OS, I guess.
 
  • Like
Reactions: bit_user
It is, when Windows requires a full executable driver to run a printer.
Not really, many USB printers can work with generic usbprint.inf (USB Printing Support) driver in Windows if the manufacturer choses to support it. From Microsoft:
Starting with Windows 2000, the operating system provides a kernel-mode USB print driver, usbprint.sys that connects the printer subsystem to the USB stack. The native USB printer driver frees vendors from the need for developing their own kernel-mode USB printer drivers. This allows vendors to develop high-level user-mode printer drivers that work with both USB and parallel printers.
So, I'd say that your pointless whining doesn't apply for quite a while then.
On Linux, the same printer only needs a text description file
Ah, a famous Linux approach of "just edit this config file" and Bob's your uncle.
Toy drivers for toy OS, I guess.
Well the OS that doesn't come with built in remote desktop functionality and whose desktop environment is so fragmented that even distros can't make sure that they aren't releasing broken stuff like Debian recently did with KDE Plasma and missing pipewire dependency which broke pretty much all remoting and conferencing apps deserves to be called a toy OS I guess.
 
Not really, many USB printers can work with generic usbprint.inf (USB Printing Support) driver in Windows if the manufacturer choses to support it. From Microsoft:

So, I'd say that your pointless whining doesn't apply for quite a while then.

Ah, a famous Linux approach of "just edit this config file" and Bob's your uncle.

Well the OS that doesn't come with built in remote desktop functionality and whose desktop environment is so fragmented that even distros can't make sure that they aren't releasing broken stuff like Debian recently did with KDE Plasma and missing pipewire dependency which broke pretty much all remoting and conferencing apps deserves to be called a toy OS I guess.
USB only ? How about network ? Or LPT ? Really a toy OS.
Config file : you don't need to EDIT it - you're voluntarily obtuse here. The DRIVER is the TEXT FILE. You do raise the point that on Linux, if you ever want to write your own printer driver, you can do so with a text file. On Windows ? Fat chance. Actually, an easy way to turn an old LPT copy station (those often have technical doc available) into a networked one is to connect it to a raspberry pi.
Remote desktop : because Terminal Server is oh so stable... On Linux I can remote control a single app (it's built in X11 after all), the whole desktop (via VNC) or only the CLI (ssh) - and multi user at that. On Windows ? $150 a pop, desktop only, and QWERTY only if full screen (very practical in i18l setups when using barcode scanners).
I might be whining, but you are grasping at straws.
 
  • Like
Reactions: bit_user
Well the OS that doesn't come with built in remote desktop functionality
Huh? You can use RDP (Remote Desktop Protocol) on Linux. That stuff worked for more than a decade.

and whose desktop environment is so fragmented that even distros can't make sure that they aren't releasing broken stuff like Debian recently did with KDE Plasma and missing pipewire dependency which broke pretty much all remoting and conferencing apps deserves to be called a toy OS I guess.
Unlike Microsoft, who has absolutely no good excuse for such sins:

And speaking of printers:

I even had a rarely used Windows 7 partition with virtually nothing installed on it. This was a couple years before Windows 10 launched, but Win 7 was very mature and so imagine my surprise when I got into an Update loop where some update failed to install, then Windows would revert and try to install it again on the next go-around. Lots of other updates were blocked by not having that one, so the install gradually fell further and further out of date. Never fixed itself and I had too little invested in running Windows on that machine to try and sort it out, manually.
 
  • Like
Reactions: mitch074
Huh? You can use RDP (Remote Desktop Protocol) on Linux. That stuff worked for more than a decade.
I am not talking about RDP from Linux into Windows or Mac.

I am talking about Linux distributions / desktop environments not having a single, compatible, remote functionality installed out-of-the-box and possible to be enabled with a single UI switch to connect to Linux from elsewhere (including Mac and Windows) which is on par with either Apple Remote Desktop or Microsoft Remote Desktop.

And no, X over SSH doesn't count as remote desktop, nor does any flavor of broken to hell and back VNC in 2024.
 
I am not talking about RDP from Linux into Windows or Mac.

I am talking about Linux distributions / desktop environments not having a single, compatible, remote functionality installed out-of-the-box and possible to be enabled with a single UI switch to connect to Linux from elsewhere (including Mac and Windows) which is on par with either Apple Remote Desktop or Microsoft Remote Desktop.
You've never heard of VNC?

I very rarely use it, but it's been around for at least a couple decades.