I finally finished compiling Linux 4.16 rc7 kernel with OpenChrome DRM on Averatec 3250 laptop. As discussed recently, this laptop has a severe ACPI BIOS bug that causes the computer to go back into POST (Power On Self Test) when the computer tries to perform a standby resume. By accident, I found one method of working around this bug, and that is to run Windows XP first, restart the computer without shutting it down, then boot Linux. See this post.
However, there is one problem with this computer. That is, it comes with only 512 MB of RAM. Honestly, you really cannot clone the OpenChrome DRM Git upstream repository without the use of a swap file with such small amount of RAM. This posting over at Digital Ocean blog has been very helpful in setting up a swap file without the use of a separate partition just for a swap file.
Setting up a separate partition just for a swap file is the “official” way Canonical handles the swap file creation, but since I originally used Microsoft Windows extensively, I never really liked this approach. I prefer each partition have its own swap file.
Anyway, there are actually a few additional tricks needed to get Linux kernel compiled from scratch to be able to boot from a computer with only 512 MB of RAM. I will discuss this in a different post.
Averatec 3250 laptop has a buggy BIOS that causes many issues with Linux, but once I get past that, I went into testing the OpenChrome DDX with OpenChrome DRM. The good news is that thanks to all the effort I have put into getting this really troubled, buggy OpenChrome DRM into shape for the past year and a half, I was able to get the computer to handle standby resume the very first time I tried! Sweet!!! I also tried dual head mode (flat panel and VGA) and it worked for the most part. The only time I observed a hard crash was when I tried to put two screens left and right, with the VGA having to accept a relatively low screen resolution of 800 x 600 (FP is 1024 x 768) due to a hardware limitation of 2044 dot across the horizontal direction in 32-bit color mode (two 1024 x 768 screens will exceed the 2044 dot limit). Obviously, I will need to fix this bug before the mainlining of OpenChrome DRM.
What I mentioned so far is the good news (except the hard crash just observed). Here comes the bad news. The rendering speed of the current unaccelerated OpenChrome DDX (I am told it is letting ShadowFB do the rendering.) is really bad . . . It is in the territory of “atrociously bad” level performance compared to the existing OpenChrome DDX accelerated 2D rendering. This is particularly noticeable when dragging (moving) a window.
There are weird device driver issues with VIA Rhine Ethernet, and what I observed was that booting Lubuntu 18.04 with the Ethernet cable attached causes a weird boot failure. Just boot the OS without it and attach the cable after the OS reaches the log in screen.
It took me several days of tries to get Averatec 3250 laptop to properly boot Lubuntu 18.04. If you are using this laptop, I hope these tips save you a lot of time.