Monday, 24 March 2014

I.MX6 Debian Jessie (GPU/VPU) 3.10.17_beta

Following on from the previous jessie rootfs, this is an updated version with the 3.10.17_beta BSP libraries deployed. It should work on most i.mx6 devices providing you have a valid uboot and kernel. Furthermore you can also use it as a test bed for Wayland/Weston development as per my last post.

One of the primary changes in the beta BSP is the inclusion of xrandr support within the X driver. Unfortunately the driver is partially functioning, for example I couldn't get it change resolution without restarting the X server. Another change is the Vivante driver are updated to 4.6.9p13 (see).

As with the previous rootfs:

1. Download and extract the tar file (md5 e1024db60c74df661e884a28eff104f6) onto your boot media
2. Deploy a compatible uboot on your boot media
3. Deploy 3.10.17 beta kernel (or a kernel with the 4.6.9p13 patches merged) on your boot media
4. If required enable serial console support in /etc/inittab (see)
5. Setup networking as required.

By default the system boots to console mode, refer to the previous post on how to verify the rootfs is functioning correctly.

I've included some scripts to allow switching between the fb, x11 and wayland vivante libraries, these are located in /root and self explanatory.

/root/switch_to_wl.sh
/root/switch_to_fb.sh
/root/switch_to_x11.sh


If you choose to use x11 by default XFCE (lightdm) is disabled. To launch it:

service lightdm start

If you have no screen output (assuming HDMI) then (because of the xrandr feature) you will to have to manually configure the screen resolution in xorg.conf. To do this un-comment the screen SubSection and change to the correct resolution.

    SubSection     "Display"
        Modes      "U:1280x720p-60"
    EndSubSection 


If can't find the correct resolution then check the last output from /var/log/xorg.0.log. The current the resolution chosen by the X driver will be shown by the following statements:

[    38.607] (II) VIVANTE(0): Using user preference for initial modes
[    38.608] (II) VIVANTE(0): Output DISP3 BG using initial mode U:1280x720p-60
[    38.768] (II) VIVANTE(0): imxDisplayPreInit: virtual set 1280 x 720, display



The log file may also list all the possible modes available, it does this by reading EDID (assuming HDMI) which seems to be a hit or miss affair depending on your TV/monitor. For example you may see something similar to this: 

[    35.223] (II) VIVANTE(0): Modeline "U:720x576p-50"x0.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync -csync (31.2 kHz
e)
[    35.224] (II) VIVANTE(0): Modeline "U:1920x1080p-60"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync -csync
(67.5 kHz e)


Replace the Modes value with correct one from xorg.0.log and restart lightdm. For example:

Modes      "U:1920x1080p-60"

10 comments:

  1. Hi, do you have any handy info for building 3.10 kernel for GK802?

    ReplyDelete
    Replies
    1. You can start with this DTS patch http://lists.infradead.org/pipermail/linux-arm-kernel/2014-January/226587.html and try to build a kernel image from that.

      Delete
  2. Has someone tested this build with Wandboard Quad and got the vpu acceleration working with gstreamer?

    # gplay
    GStreamer encountered a general stream error.
    # gst-launch videotestsrc ! mfw_v4lsink
    works displaying test screen but..
    # gst-launch filesrc location=test.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_v4lsink
    same error as gplay :(

    ReplyDelete
    Replies
    1. Hi,

      can you check the md5 sum of the download, it should be e1024db60c74df661e884a28eff104f6.

      Delete
    2. the md5sum was correct.. but I can tell you that I'm having the same errors with latest Yocto build (master, 1.5+snapshot-20140407)..maybe this is Wandboard Quad specific to kernel/driver/lib-version 3.10.17?
      for GPU on this jessie build: all demos went well, except glmark2

      Delete
  3. This comment has been removed by a blog administrator.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Just wondering about step 3:

    3. Deploy 3.10.17 beta kernel (or a kernel with the 4.6.9p13 patches merged) on your boot media

    Fair enough, but where can I find this kernel? I've had a good look around
    stende.no-ip.info/jas and stende.no-ip.info/files, which is where I found the 4.1.0 kernel when I last installed jessie on my GK802. Can't see it there, and can't find a link anywhere on your page either.

    ReplyDelete
    Replies
    1. Hi,

      Unfortunately I no longer have a GK802 and haven't followed if there has been any development on a later kernel. If want to try and create your own kernel then this dts file would be a starting point http://git.linaro.org/people/shawn.guo/linux-2.6.git/blob/refs/heads/for-next:/arch/arm/boot/dts/imx6q-gk802.dts.

      Delete
    2. I have got the gk802 to boot with 3.10.17_1.0.0. Using https://github.com/ajayramaswamy/u-boot-gk802 or Esmils prebuilt one http://esmil.dk/u-boot.imx and using Esmils kernel git clone -b imx_3.10.17_1.0.0_ga https://github.com/imx6-dongle/linux-imx.git and using uEnv.txt with:bootz $loadaddr - $fdt_addr
      linux=boot/zImage
      devicetree=boot/imx6q-gk802.dtb
      options=console=ttymxc3,115200n8 root=/dev/mmcblk0p1 ro rootwait

      I have replaced the gpulibs with the 1.0.0 in this rootfs http://stende.no-ip.info/imx6/rootfs/3.10.17_1.0.0/jessie_3.10.17_1.0.0.tar.xz

      Delete