Saturday, 2 March 2013

GK802 - Ubuntu Update 1 (GPU/VPU Acceleration)

Since my last post, we have made rapid progress in getting a functional kernel working on the GK802. This couldn't have been done without the invaluable contributions from rz2k (aka Dmitriy ) and abrasive (aka James Laird)  on the irc channel imx-dongle. Coupled with countless hours from myself the progress so far:

1. Wifi working.
2. External SD working
3. Matched IOMUX configuration to align with the Android image. Managed to work out how compile        C programs to run under the Android image.
4. Stripped out unnecessary device initialisation from the original HDMI dongle source.
5. Enabled EGL and GLES HW Acceleration in Ubuntu (big thanks r2zk).
6. Unity desktop I think is partially HW accelerated.

I plan to push kernel patches in the coming days. There is still a fair amount of work to do due to  thermal/CPU freq driver patches in the kernel and lack of PMIC on the GK802

Update: Changes are now merged into the main repo https://github.com/imx6-dongle/linux-imx. If you want to build the kernel then use imx6_gk802_defconfig.

Here's a video to demonstrate what's been achieved and how capable the IMX6Q is. In the video Firefox seems sluggish, however this is easily compensated by the fact I run glmark-es2 whilst simultaneously playing a 720p video. 



Compared to the Chinese SOC manufactures it is miles ahead in the availability of reference documentation and Linux support. The video playback is pretty impressive and I hope that we will see XBMC development commence at some point.



24 comments:

  1. Great work! Do you know if OpenCL drivers are available as well?

    ReplyDelete
    Replies
    1. I can confirm that OpenCL is working:

      Found 1 platform(s).
      platform[0x2ac0f8a0]: profile: EMBEDDED_PROFILE
      platform[0x2ac0f8a0]: version: OpenCL 1.1
      platform[0x2ac0f8a0]: name: Vivante OpenCL Platform
      platform[0x2ac0f8a0]: vendor: Vivante Corporation
      platform[0x2ac0f8a0]: extensions:
      platform[0x2ac0f8a0]: Found 1 device(s).
      device[0x2ac0f720]: NAME: Vivante OpenCL Device
      device[0x2ac0f720]: VENDOR: Vivante Corporation
      device[0x2ac0f720]: PROFILE: EMBEDDED_PROFILE
      device[0x2ac0f720]: VERSION: OpenCL 1.1
      device[0x2ac0f720]: EXTENSIONS: cl_khr_byte_addressable_store
      device[0x2ac0f720]: DRIVER_VERSION: OpenCL 1.1

      Delete
    2. Could you try cgminer? https://github.com/ckolivas/cgminer

      Delete
  2. Very cool! Congratulations on getting wifi and accelerated graphics to work. Looking forward to run a fullly functional Ubuntu on the GK802.

    @rahul OpenCL drivers are available for i.mx6. If he got the Vivante blobs to work, I suppose OpenCL should work too.

    ReplyDelete
    Replies
    1. When running clinfo, i got segmentation fault. do you know the reason?

      Delete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Glad you have success, looking forward to see your patches in repo!

    ReplyDelete
  5. Nice progress. Did you in any way modified your GK802 heatsink for it to be more stable under the load?

    ReplyDelete
    Replies
    1. There were some freescale patches for thermal management that helped improve the heat situation, but under load some kind of heatsink is still required. My GK802 is uncased and I just place the external metal casing on top of the CPU as an intermediate solution.

      Delete
  6. This comment has been removed by the author.

    ReplyDelete
  7. This is great work so far! I'm really looking forward to seeing your release.
    If you need any help in testing let me know.

    ReplyDelete
  8. How did you enable EGL and GLES HW? :)
    I just got my Wandboard with a i.mx 6DL, and I only get software acceleration when running glxgears :((
    Take care,

    ReplyDelete
    Replies
    1. Hi, I will provide instructions so that you can try on Wandboard.

      Delete
    2. Hi, That would be awesome! thanks :)

      Delete
  9. Hi Jasbir

    I have a few question about this ubuntu (gk802) if u have some time I am wondering,

    Can i run apache+mysql after install ubuntu on this device?
    if it ok , what do u think about apache speed on this?

    Can i Configure desktop Permissions (example just run firefox )like ubuntu desktop?,

    and is there any heat problem when using ubuntu ?

    what do u think ubuntu and android 4.0.4 on this device ?
    could you share your experience (pros an cons)?

    Thanks

    ReplyDelete
  10. Anyone seeing this on their serial root console?
    COULD NOT SET GP VOLTAGE!!!!
    [ 59.717703] COULD NOT SET SOC VOLTAGE BACK!!!!
    [ 59.817696] COULD NOT SET GP VOLTAGE!!!!
    [ 59.827680] COULD NOT SET GP VOLTAGE!!!!
    [ 59.917703] COULD NOT SET GP VOLTAGE!!!!
    [ 64.447668] COULD NOT SET GP VOLTAGE!!!!
    [ 64.527830] COULD NOT SET GP VOLTAGE!!!!
    [ 64.587714] COULD NOT SET GP VOLTAGE!!!!
    [ 64.737685] COULD NOT SET SOC VOLTAGE BACK!!!!

    ReplyDelete
    Replies
    1. Fix for this in the repo https://github.com/imx6-dongle/linux-imx.

      Delete
    2. Do you know exactly what file or diff ?

      I have another board (wandboard) with the same problem.

      Thank you.

      Delete
    3. Hi, it was cause by double initialisation of the cpu regulator. See https://github.com/imx6-dongle/linux-imx/commit/c6f66631dd2dedcc597d016de124e67a017c4131

      Delete
  11. Fantastic work! I have just purchased this device only because of your success! Thank you, Im keen waiting for the delivery...

    ReplyDelete
  12. I am seeing the

    [ 64.737685] COULD NOT SET SOC VOLTAGE BACK!!!!

    and

    [ 64.737685] COULD NOT SET PU VOLTAGE!!!!

    messages on Ubuntu 12, kernel 3.0.35+ when coming out of suspend or into it.

    The kernel runs fine, and can do networking till these messages occur.

    I'll look around elsewhere for the messages in the sequence I'm seeing, but this was my first place seeing the SOC voltage message

    ReplyDelete
    Replies
    1. Could see if this works - https://community.freescale.com/thread/306679

      Delete