Previously, I have discussed my interest in using Wyse Cx0 thin client as an OpenChrome DRM test platform by attaching SanDisk Extreme 64 GB USB 3.0 flash memory storage to it. Back in January, there were several outstanding issues that prevented booting of Xubuntu 16.04 + OpenChrome DRM, so this was not successful. Anyway, since then I have fixed several bugs, along with added a few missing features, in order to properly support VX855 / VX875 chipset.
With the updated code, I booted Xubuntu 16.04 + OpenChrome DRM (Version 3.0.78). Unfortunately with this version of OpenChrome DRM, there was no hardware cursor displayed on the screen. Since the hardware cursor works on VX900 chipset, I was wondering what went wrong again. It turns out, commit a640d8e did not fix the hardware cursor bug for VX855 / VX875 chipset.
If I think about why commit a640d8e did not fix the bug, that’s because whoever assigned PCI Device ID labels for many of VIA Technologies devices picked misleading names. For example, for VX855 / VX875 chipset’s integrated graphics, the correct label for it turns out to be PCI_DEVICE_ID_VIA_VX875 instead of PCI_DEVICE_ID_VIA_VX855.
Anyway, the fix will be committed in the next day or two.
I updated the OpenChrome DRM code inside drm-next-4.17 branch so that it will now compile against Linux 4.16 rc7+ kernel. I am not sure it will work since I have not tested it yet.
One of the thing I do not really like about updating the drm-openchrome repository (the official repository for OpenChrome DRM) is that every time I pull in new code from DRM maintainer’s drm-next branch, I need to go make small changes related to GEM, TTM, or FBCON. I wish developers refrain from updating these components literally every Linux kernel development cycle. If they need to make changes, every 3 to 5 Linux kernel minor version will be nice (i.e., Linux 4.9 to Linux 4.14). Since the days of Linux 4.13, I had to make these type of changes every time I updated the Linux kernel.
Anyway, I had to spend several days on this issue and I do now have a patch that will allow OpenChrome DRM to compile against Linux 4.16. I have not tested the code yet (I am compiling the kernel right now as I write this blog post.), so it might take a day or two before the code is updated. Remember, I use VIA Technologies C7-M 1.2 GHz processor to compile the Linux kernel.
drm-next-4.17 branch will soon be EOL and I will move the development to drm-next-4.18 branch.
For the last couple of days, I have been writing some test code for detecting VIA Technologies VT1632(A) DVI transmitter via I2C bus. The reason for the test code is to gain experience with I2C bus before writing the rest of the code (i.e., device initialization, mode setting, etc.). Jumping directly into writing the entire code is highly risky, so I first wanted to make sure the code I write can detect the device I am dealing with.
For this experiment, I used Wyse X90L mobile thin client with SanDisk Extreme 64 GB USB 3.0 flash storage device. I covered Wyse X90L in this blog post and SanDisk Extreme in this blog post.
The good new is that, I was able to write code that reads off the VT1632(A) vendor and device IDs successfully. I am writing the code from scratch, so I expect this to take about 2 to 3 weeks. What this also means is that there is nothing wrong with my Wyse X90L’s DVI, and the DVI issue I encountered appears to be a Lubuntu 12.04’s X Server (Version 1.11) issue with I2C bus.