Hi Jamey,
On 05.09.2015 03:01, Jamey Sharp wrote:
Alright, I've found a Dell Latitude D620, which has a physical serial port and Intel 945 integrated graphics. The eglgears demo runs when built from Genode 14.05, and I can see from the console output that it's hardware accelerated. So that's great!
great that you got it working! I admire your perseverance. :-)
My guess is that the fastest way I can prototype separating the driver into its own address space is to modify the old linux_drivers code, rather than trying to port the modern Intel driver from a current Linux kernel release. But I'd prefer to work against Genode master, if that isn't too much work to throw at a prototype.
What would it take to forward-port the old linux_drivers code from 2010 into dde_linux on current Genode master? (Or should I just build a throwaway demo against 14.05 to prove the concept, and help with porting the modern Intel driver later?)
Forward-porting the old driver involves the following aspects:
* Replacing the code that relies on the no-longer-available DDE Kit (in lx_emul.cc) or reverting the commit that removed DDE-Kit.
* Adjusting the driver to use the new platform driver instead of the old PCI driver. E.g., now, after the transition to the new platform driver, we allocate memory for DMA buffers at the platform driver instead of talking to core's RAM service. To see how this works, I recommend looking into the drivers in the dde_linux repository.
* Change repos/libports/src/lib/egl/select_driver.cc to return the name of the driver library ("gallium-i915.lib.so"). The original probing code used to scan the PCI bus for the supported Intel GMA device IDs but we removed the code some months ago. For your work, I would drop the probing and just hard-wire the driver name.
Regarding your question on how to proceed, it depends on your priorities. If you want to work on the actual problem of splitting the driver from the application right away, I'd recommend to base your work on 14.05. In the meanwhile, someone at our team could look into the forward-porting of the old driver. So you wouldn't need to waste your time with following the recent history of our platform driver. On the other hand, if you are eager to learn more about Genode architecturally-wise, getting your hands dirty with the forward-porting work might provide you with insights about Genode.
As one experiment in that direction, I tried running eglgears built from Genode 14.11, which I guess was the last release that had dde_kit. Even with the patch to not free a static array, it opens a blank window. The console output stops after these messages:
At that time, we transitioned to our new dynamic linker. I remember that we had a few remaining dynamic-linking issues even after 14.11, which may have affected the eglgears scenario. With the current master branch and your fix (in issue 1670), the eglgears.run script works well using the softpipe driver. I won't bother with 14.11 at this point.
Cheers Norman