Upgrading the AC100 LCD panel

While it is possible to do that, you will run into some issues actually making use of your better panel. For average users: this includes re-compiling your kernel - so if you don't want to do that, better not touch your panel. Apart from that, it's fairly easy and waiting for the new panel to be shipped takes up most of the time needed. This guide assumes that your new panel will feature the resolution of 1280×720 pixels. It is based primarily on this article, which will guide you through installing the hardware step by step.

Hardware

Acquisition

What you are looking for is either the “AU Optronics B101EW01”, which is known to work, or in fact any similar LCD panel fulfilling the following requirements:

  • 1mm thick
  • connector at the right place
  • roughly the same dimensions as original

In fact, it would even be possible to fit a touchscreen - but nobody has tried that out as of yet. To find out where to buy such an LCD panel you could either search the internet or directly use one of the following links:

Installation

For a thorough explanation, just refer to the article mentioned above. If you feel competent enough, here is a short wrap-up:

  • unscrew panel cover and pull away
  • unscrew panel and unplug connector
  • plug in and insert new panel
  • if necessary, make it fit
  • reattach panel cover and screw it down

Software

As the display resolution is coded into the kernel source, just bolting in the new panel and hoping for the best will not render a satisfying result. Consequently, the kernel has to be recompiled to the new hardware setup. The following guide assumes you installed Ubuntu according to their wiki article. If you use a custom kernel or any other solution, refer to the kernel development page to get an idea about compiling for the AC100. In general, you just need to follow the instructions on how to compile a custom Ubuntu kernel - with just a little deviation. The following guide is just a recommendation and certainly not the only way to do it.

Requirements

The easiest and thus recommended way is to compile natively on your AC100 and use apt-source to get the source. To do so, you need the following:

  • your AC100, running Ubuntu and connected to the internet
  • external storage, USB or SD, 2GB ext2 or higher (if you don't know how to format your storage, use the Disk Utility provided by your Ubuntu distribution)
  • the package “build-essential”, install it via software center, synaptics or in a console type
    sudo apt-get install build-essential
  • enough power in the battery or power connection as compiling will take up to 60 minutes

Getting the Source

Now you need to get the source code of the kernel you are currently using, preferably onto the external storage you prepared earlier.

  1. insert and mount external storage
  2. open a terminal and change your path to the storage
    cd /media/[name-of-your-storage]/

    (Since most likely only one item is mounted, pressing [tab] after entering “/media/” should work fine.)

  3. get the source by typing
    sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
    apt-get source linux-image-$(uname -r)
  4. there should be a new folder with the source code inside, change into that folder

Changing the Source

Now you need to change the file /[image-name]/arch/arm/mach-tegra/board-paz00-panel.c by either applying this patch or by manually editing it like this:

  1. open the file in an editor
    gedit arch/arm/mach-tegra/board-paz00-panel.c
  2. search for this bit:
    {
     		.name	= "fbmem",
     		.start	= 0x1fd95000,
    		.end	= 0x1fd95000 + 0x26B000 - 1,   // 2.4 MB @ 509 MB
     		.flags	= IORESOURCE_MEM,
     	},

    and replace the fourth line with:

    		.end	= 0x1fd95000 + 0x386000 - 1,   // 3.6 MB @ 509 MB
  3. then in this:
    static struct tegra_dc_mode paz00_panel_modes[] = {
     	{
    		.pclk = 42430000,
     		.h_ref_to_sync = 4,
     		.v_ref_to_sync = 2,
     		.h_sync_width = 136,
     		.v_sync_width = 4,
     		.h_back_porch = 138,
     		.v_back_porch = 21,
    		.h_active = 1024,
    		.v_active = 600,
     		.h_front_porch = 34,
     		.v_front_porch = 4,
     	},

    replace the first line with:

    		.pclk = 71735520,

    and lines 8 and 9 with:

    		.h_active = 1280,
    		.v_active = 720,
  4. finally, look for
    static struct tegra_fb_data paz00_fb_data = {
     	.win		= 0,
    	.xres		= 1024,
    	.yres		= 600,
     	.bits_per_pixel	= 16,
     };

    replace lines 2 and 3 with:

    	.xres		= 1280,
    	.yres		= 720,

    and insert after line 4:

    	.flags		= TEGRA_FB_FLIP_ON_PROBE,
  5. save your changes and quit the editor

Compiling & Installing

Now that the source code is changed according to your hardware, you can compile your custom kernel by entering

sudo make paz00_defconfig zImage modules modules_install

As this might take up to 60 minutes, you may lean back and watch the show or do something else in the meantime. After (hopefully) successfully compiling, by now the required modules should be installed and you only need to flash the kernel onto your AC100 by typing:

abootimg -u /dev/mmcblk0p2 -k arch/arm/boot/zImage

After rebooting, you should be able to fully enjoy your new LCD panel.

Log In