Skip to end of metadata
Go to start of metadata

This is the comments page for the Freescale based i.MX6 Wandboard.

For all new topics please use: TechXchange Community

  • No labels


  1. ToM

    Hi Robert,

    you do a relay excellent Job! It works like a charm ;-)

    Do you have any experience in real-time Kernel patching on embedded systems?

    Any hints to do it with your system?


    1. Hi Tom,

      Due to the current size of the v3.0.x based WandBoard fork, I haven't really looked into including the real time patchset yet. (I can always try and see if it applies...)

      Usually they do an every other release policy, and considering the amount of stuff we'd need to backport to v3.8.x for the WandBoard, v3.10.x would be way easier.. (v3.9.x will also need a few imx things backported that are slated for v3.10.x)


      1. ToM

        Hi Robert,

        I tried the patch with v3.0.35 from wandboard SDK. It do not work, but I have no experiences with patching....

        When do you expect a working v3.10.x on wandboard?

        Please can you try to patch your v3.0.x?


        1. Hi Tom,

          Yeah I just tried, and it's going to take a little work to integrate that patch in the v3.0.35 bsp. Just too many Android based real time changes already applied.

          On average, it's about 8 weeks between kernel releases, and right now we at v3.9-rc3, we are about 5 weeks away from the start of the v3.10-rc cycle.

          I think it would be quicker and easier to pull out the android changes that conflict with the real time patch from the v3.0.35 bsp. Now that we have the full git history of the v3.0.35 bsp, that is now possible. When I first wrote this wiki, only the tar.gz file was available.


  2. Hello,

    Thanks for sharing all of this.

    What if I want to a headless kernel? I would like to have access to the  full 1GB.

    What are the kernel settings?

    Thank you,

    1. Hi Olivier,

      Technically, it's already headless; just don't connect the monitor.

      But I know what your asking. I really have not dove to deep into the bsp board file, as I personally prefer mainline. But there is usually a boot time argument to disable the video memory/gpu then you'd be free to use it all.


  3. I signed up just so that I could complement you on a site that actually works all the way through without major hacking. It's what we expect - but seldom get.  BTW - I'm running without a monitor - no problem.


  4. Did the debian wheezy install.  Worked well but FEC ethernet is not coming up.  The ethernet is however working in u-boot (can ping) so it's not a hardware problem.  Any ideas?

    1. HI Olivier, what  does the output of:

      /sbin/ifconfig -a



      1. Hi Robert,


        Thank you for the quick reply:

        root@wandboard:# /sbin/ifconfig -a

        eth1      Link encap:Ethernet  HWaddr 00:1f:7b:b2:06:12 

                  BROADCAST MULTICAST  MTU:1500  Metric:1

                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0

                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

                  collisions:0 txqueuelen:1000

                  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


        lo        Link encap:Local Loopback 

                  inet addr:  Mask:

                  inet6 addr: ::1/128 Scope:Host

                  UP LOOPBACK RUNNING  MTU:16436  Metric:1

                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0

                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

                  collisions:0 txqueuelen:0

                  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

        root@wandboard:# more /etc/network/interfaces

        # Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or

        # /usr/share/doc/ifupdown/examples for more information.


        auto lo

        iface lo inet loopback


        auto eth0

        iface eth0 inet dhcp


        Just realized my problem as I’m replying, my interfaces file was configured for eth0, when I change it to eth1 it works!


        Thank you very much you put me on the right track.   Great job by the way…

        1. Hi,

          My screen is the same with you

          root@wandboard:~# ifconfig -a
          eth0   Link encap:Ethernet  HWaddr 00:1F:7B:B2:05:EA
                    BROADCAST MULTICAST  MTU:1500  Metric:1
                    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:1000
                    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

          lo        Link encap:Local Loopback
                    LOOPBACK  MTU:16436  Metric:1
                    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                    collisions:0 txqueuelen:0
                    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B

          But, with this display, I have no ip address. So, i can't access INTERNET. Where do this problem come from and how can i solve it? This is urgent with my project. Help me, please

  5. Hello,

    i struggled  just on to compile u-boot.


    joerg@ubuntuws:~/u-boot$ make ARCH=arm CROSS_COMPILE=${CC} distclean

    /bin/bash: /home/joerg/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-gcc: Datei oder Verzeichnis nicht gefunden


     I have checked the path is true. I have 12.04 Ubuntu.


    Please help.

    Thanks in advance.




    1. Hi Joerg,

      Since the path is true... Make sure you have the ia32-libs packaged installed.. The linaro arm cross toolchain is a 32bit binary..


      1. Thats was the Problem. But to install the libs not really solve it. So hours later I have installed new Ubuntu 32 bit and a lot of packages (wink)

        Now I could not build the kernel...


        joerg@ubuntuw:~/imx-devel$ ./
        + Detected build host [Ubuntu 13.04]
        fyi:  raring has these ARM gcc cross compilers available in their repo:
        sudo apt-get install gcc-arm-linux-gnueabi
        sudo apt-get install gcc-arm-linux-gnueabihf
        scripts/gcc: Using: arm-linux-gnueabihf-gcc (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3
        Copyright (C) 2012 Free Software Foundation, Inc.
        This is free software; see the source for copying conditions.  There is NO
        debug: CC=arm-linux-gnueabihf-
        This script relies heavily on git, and will fail if are not defined.
        git config --global ""
        git config --global "Billy Everyteen"


        gcc-arm-linux-gnueabi a.s.o.  I have installed.





        1. Hi Joerg,

          Sorry, I do not run Ubuntu Precise (12.04) on any hardware, so I wouldn't have been able to walk your thru Installing ia32-libs...  With Debian Wheezy 64bit it is simply:

          sudo dpkg --add-architecture i386
          sudo apt-get update
          sudo apt-get install ia32-libs

          Otherwise, reading your post, I'm not sure which of the two issues your wondering about.

          The first "fyi"; aka "for your information" the version of ubuntu you have installed has a arm gcc based cross compiler you can install and use if you wish...  The whole purpose of that statement was me trying to be helpful, but as it has completely missed the mark and just caused more confusion and email support. I've completely remove the option/message going forward.

          So now it is up to end users to figure out they can use a native package instead of the recommended linaro compiler I install by default..  On the flip side, I no longer run ubuntu, so what ever version they install in every 6 month release is not tested by me..

          The second error, "git config", I've also reworded..

          However, I'm not sure how to even explain it to 'everyone'.  So I'm just going to say: My script uses "git am" when applying patches to a git tree.  With the version of git in ubuntu raring, git now requires a proper "" to be defined in your system.  Please read the two web links:


          Till you setup a 'proper' git config "" in your system, my script will not run.


          1. Hi Robert,

            With the E-Mail, I read it but not registered in my brain. I apologize.

            On 64bit System I did not have set "sudo dpkg --add-architecture i386", that may be the fault from me.

            Now on 32 bit the script works.

            Thank you very much , regars


  6. Is there any way to make the Debian install work for the Wandboard Quad?

    1. Sure...  I have a U-Boot patch pending if you'd want to try it for me.  However I'm currently waiting for a package to arrive by mail...


      1. Sure, I can give it a shot :~)

        1. Give this patch a try.. (it replaces the one i used for the solo/dual u-boot..)

          Build with "wandboard_quad_config" the kernel 'should' support the quad...  But very untested.. (wink)

          1. Excellent. I'll try now.

            1. Awesome! Thanks so much for testing, I'm adding the *.diff to the default build and the details here.


  7. Hi, thanks for your guid and excuse me my bad english.

    Is it possible to keep the uboot and kernel files in the microsd card and put the rootfs into a partition of a  HD ?

    WIth your guide, the system will have full graphics acceleration ?


    1. Hi Leonardo,

      Sure, that's pretty easy.. Just uncomment the "#mmcroot=/dev/mmcblk0p2 ro" line in uEnv.txt and change it to "mmcroot=/dev/sda1 ro" or whatever partition layout you set for your usb-sata/sata harddrive.  Just make sure to also edit /etc/fstab on your root file system drive so it's pointing to the correct location.


  8. Thanks for the good guides you provide on community boards. I used your guide to get started with the beagleboard xm and now I am using the Wandboard Dual. I always refer to your guides, I find them clear concise and very informative.

    I am trying to get the network working on my Wandboard Dual running Ubuntu minimal with a kernel from your repository. I however cannot get non-root users to access the network. Root can see the network and I am able to download packages and ping websites without any problem. However, as a non-root user, when I try ping I get:

    ping: unknown host

    and when I use ifconfig I get:

    warning: no inet socket available: No such file or directory

    I have searched online and it seems to be a problem with Android derived kernels. However, the kernel I got from your repo does not seem to be Android-derived. What could the problem be. Does your kernel have a PARANOID_NETWORK setting, or is it just file permissions that are wrong in my installation.




    1. Hi Nick,

      Yeah, I've actually been playing with CONFIG settings all morning trying to get this to work.. Thanks for the clue, as I actually do have CONFIG_ANDROID_PARANOID_NETWORK set... Looks like i forgot to disable it when doing the initial wandboard config import.  Just rebuilding right now to smoke test the build..

      Thanks Nick! that fixed it.. Just pushed out a config change:


  9. You are welcome. I will try and post the solution using menuconfig changes in the Wandboard googlegroup:


    In make menuconfig, go to Networking support, Networking options and unselect the option:


    Only allow certain groups to create sockets


  10. Hi Robert,

    Thanks for the excellent guide. I have a few questions:

    1) Is the onboard WLAN supposed to work in this release? I couldn't get any BCM drivers to compile.

    2) Any hints from Freescale about a device tree kernel like TI's?

    3) Is the Freescale CAAM crypto engine in the SoC or just a tease? (It also doesn't compile)



    1. So the WiFi will take a little work...  Device tree's are in progress:

      The new quad should be easy to get, the solo needed a few more things pushed.

      Not sure, this tree is the full android bsp, so there's lots of extra stuff and you need to get the config just right.


      1. Hello Robert,

        I'm still not sure, using Wandboard tree WLan works or not?




        1. I haven't personally tested wifi... So does it work for you in the wandboard branch?


  11. Hi Guys - I have Debian running on my WB Quad thanks to the information provided here. My one issue is I can't get the wireless card to work. The OS doesn't even see the card.

    Please help with enabling the WiFi.

    1. I'm pretty sure we just need the firmware...  But it'll be just a few more hours till pick up my quad at ups.. (wink)

      Yuck... So it's more then just that..  The yocto guys backported the mainline bcm4329 driver...


        1. It's kind of a toss up... Jump to mainline where the WiFi should work, or back port it to the v3.0.x tree..

  12. Hi Robert,

    First off, thank you for doing this "Linux on ARM" site.  It is very, very helpful. 

    Getting a successful kernel build turned out to be a bit of work due to a self-induced error.  When the menuconfig popped up I decided to enable a bit more functionality which included the mxc_mipi_dsi component without giving it much thought (some new 3.5" displays are expected "any day now").  This resulted in silent build failures meaning it looked like the terminal contained nothing but successful compilations but there were no binaries in the deploy directory. It wasn't until I tried doing a standard make in the kernel directory that I saw the cause of the failure.  Went back through menuconfig, removed the mipi_dsi inclusion and things built fine.

    Now that I have a functioning system I would very much like to move to kernel builds being done directly on the target.  Honestly, this imx6q is at least as fast as my desktop.  Does much have to change with the scripting in order to support this move?

    One other thing I notice is I see cpufreq.c KERN_ERR output of "COULD NOT SET SOC VOLTAGE BACK!!!!" quite regularly along with the occasional "COULD NOT SET PU VOLTAGE!!!!"  I did not see this with the original wbquad Ubuntu image.  Any thoughts on this?

    Again, much thanks for this site.  You helped me immensely.

    All the best,   Joe


    1. Hi Joseph,

      A lot of the build errors end up being hidden as we try to build the kernel on all cores.  On success it should say "Script Complete"... if your run "./tools/" it'll restart the build (without recreating the tree) so it'll give you a hint of where the build error occurs..

      You can run the script directly on target, it'll detect that situation and use the native gcc over downloading and installing the linaro binary..

      Yeah, i saw that message last night on my quad board, obviously something isn't quite ready, but my board survived a late night burn in..


      1. Hi,

        I have the same problem with "COULD NOT SET SOC VOLTAGE BACK!!!!".

        My kern.log have 10000+ of that message.

        In this link , the blog author in comments, tell the issue have been fixed  here . But dont tell what file/diff needed.

        1. I'm aware of the commit, as it was posted on the wandboard google group this morning and will be looking at it shortly..


  13. Hi,

    I tried to build the kernel as it is written in the discription under "Wandboard". I use Debian 6 2.6.32-5 x64. Everything works fine up the the command: ./ . I only get the message: "+ Detected build host (Debian GNU/Linux 6.0.7 (squeeze)) Debian/Ubuntu/Mint; missing dependencies"

    Because I am a Linux beginner, I hope somebody can help me.

    1. The builds require a number of utilities which are not always included in a standard distro. If you look at the directions carefully you'll see an apt-get command with a long list of utilities that you need - you have to run it as root or do a sudo.



    Thank you John

    for your quick answer. There is written: please install: libncurses5-dev, but when I try to install it there comes a message that it was already installed. Do you have any ideas? Do somebody know a working Linux Distribution?

    1. Hi Rainer, alot of the older dist's do not get a lot of testing, so can you do me a favor and dump the out put of this command:

      dpkg -l | grep libncurses5-dev


  15. Hi Robert

    The result is: "ii   libbcurses5-dev    5.7+20100313-5    developer's libraries and docs for nurses"

    Do yu have any idea?

    1. Thanks Rainer, I just pushed a patch to the "v3.0.x-wand" branch to fix pkg detection on some of the older distros, so if you:

      git checkout master -f
      git branch -D tmp
      git pull
      git checkout origin/v3.0.x-wand -b tmp

      It'll now work for you.



    Hi Robert

    Thank you for your help. The message "libbcurses5-dev" didn't appear again. But now there is a new fault message "missing dependencies:  ia32-libs". But I don't use the 64-bit version. I use the 32-bit version of DEBIAN, so I can't install "ia32-libs".

    May be you have also a solution for this problem.



    1. I think your finding all my corner cases.. I'm guessing you have a 32bit install, but running a 64bit kernel? I was using uname m to detect 64bit.  So I just switched it to use dpkg directly, which is probally the way it should have been in the first place.


  17. Is there a special reason why a boot partition is 48MB?




    1. Do you have a reason for something different?

      48 is divisible by 2, 4, 8, 12; common flash allocation group sizes..

      Just trying to optimize the sd card layout, that's all..


  18. Actually,

    this procedure is a little confusing comparing to Wandboard official doc.


    There is stated :

    NOTE: When partitioning the SD card, reserve some space on the card for
    u-boot + kernel by leaving some "unused" space before the rst partition.
    That is, start your first partition a few megabytes into the card. A large
    kernel can be ~5 Mb in size, so leaving, say 8MB unpartitioned before the
    first partition should be safe.


    Also, you are proposing creating 2 partitions, and use zImage to boot while official Wandbord SDK propses 1 partition (which in my opinion is easier and more logical, to which one dumps uImage directly :

    The default u-boot expects a kernel one megabyte into the card. Hence, the
    kernel can be installed to SD by:
    # dd if=arch/arm/boot/uImage of=/dev/$dev bs=1M seek=1

    As it expects U-Boot and uImage to be dumped in this manner, Wandboard SDK comes with the U-Boot with that expects 1 partition by default on which we have only rootfs.


    Best regards,



    1. Hi Drasko,

      Really, dd'ing a kernel binary to some random memory location on an SD card is easier and more logical? Your kidding right?


  19. Hi - I'm a bit confused by the recent changes to the uEnv.txt file. I don't remember un-commenting anything in the past, but now it looks like everything is commented out. I am setting up a WB QUAD. Do I just un-comment the bottom line?


    #mmcroot=/dev/mmcblk0p2 ro
    #mmcrootfstype=ext4 rootwait fixrtc
    #v3.10+ device tree boot (dual/quad only):
    #mmcboot=run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdt_addr};


    1. This should be straight forward...

      Yes or No, did you build/install the kernel image for the brand new v3.10.x based kernel i just pushed out today or the older "v3.0.x" based kernel?

      1. I used the new Mainline v3.10.x

        1. So if you built the new v3.10.x kernel, you will need to uncomment that line.  It'll force u-boot to also load the wandboard dtb file.  I'm currently working on a v2013.07-rc2 bug, but afterwards I'm going to change the uEnv.txt to something similar to this:


          So you can easily select the old v3.0.x or v3.10.x kernel...


  20. Great, thanks. It works now.

  21. Any update on the QUAD wireless and Bluetooth working?


    1. Nope, no wireless/bluetooth yet.  Both the dual/quad are feature similar, both mmc cards, ethernet and usb work.  Although cpufreq works on the quad..


  22. I'm getting an error using the --no-edit option for git pull. is there another option I can use? I'm running Ubuntu 12.04.



    git pull --no-edit v2013.07-rc2_fix-bootz


    error: unknown option `no-edit' usage: git fetch

    [<options>] [<repository> [<refspec>...]] or: git fetch [<options>] <group> or: git fetch --multiple [<options>] [(<repository> | <group>)...] or: git fetch --all [<options>] -v, --verbose be more verbose

    -q, --quiet be more quiet

    --all fetch from all remotes

    -a, --append append to .git/FETCH_HEAD instead of overwriting --upload-pack <path> path to upload pack on remote end

    -f, --force force overwrite of local branch

    -m, --multiple fetch from multiple remotes

    -t, --tags fetch all tags and associated objects

    -n do not fetch all tags (--no-tags)

    -p, --prune prune remote-tracking branches no longer on remote

    --recurse-submodules[=<on-demand>] control recursive fetching of submodules

    --dry-run dry run

    -k, --keep keep downloaded pack

    -u, --update-head-ok allow updating of HEAD ref --progress force progress reporting

    --depth <depth> deepen history of shallow clone

    1. Sorry about that, with git v1.7.10.x the default 'git pull' options had changed, so the "--no-edit" option was needed to go back to the previous functionality.  Essentially, later versions of git force you to provide a merge message by default. For a wiki/script directions this 'message' isn't really needed and just gets in the way.  So for Debian Squeeze & Ubuntu Precise users, just remove that "--no-edit" options from the line.. I also just documented this too, so anyone trying it will see the note.  PS, i'm working with u-boot maintainers to fix the actual issue, so hopefully i can drop that git pull revert pretty quickly..


  23. When using mainline and following the instructions I come up with two parts where a workaround is required. 


    1. The "./imx-devel/deploy/" directory is not there when using mainline, so I switch to "./armv7-multiplatform/deploy/". Is this correct?

    Copy Kernel zImage: sudo cp -v ./imx-devel/deploy/${kernel_version}.zImage /media/boot/zImage

    changed to:

     Copy Kernel zImage: sudo cp -v ./armv7-multiplatform/deploy/${kernel_version}.zImage /media/boot/zImage



    2. The "./linux-dev/deploy/" directory is not there when using mainline, so I switched to "./armv7-multiplatform/deploy/". Is this correct?


    Copy Kernel dtbs (for Mainline v3.10+ tree): sudo mkdir -p /media/boot/dtbs/ sudo tar xofv ./linux-dev/deploy/${kernel_version}-dtbs.tar.gz -C /media/boot/dtbs/

    Changed to:

    Copy Kernel dtbs (for Mainline v3.10+ tree): sudo mkdir -p /media/boot/dtbs/ sudo tar xofv ./armv7-multiplatform/deploy/${kernel_version}-dtbs.tar.gz -C /media/boot/dtbs/





    1. That is correct... The only difference between the repo's is the repo name.. The scripts running in the background are exactly the same...

  24. Hi Robert,

    I am getting :

    Booting from mmc ...
    ** File not found /dtbs/imx6s-wandboard.dtb **

    I can not see that this file is not contained in 3.10.0-armv7-x2-dtbs.tar.gz that was produced.

    Is i.MX6 Solo supported?






    1. That's expected.  You've discovered why so far, on this wiki, that I've always documented "Dual/Quad only" around the v3.10.x mainline kernel repo section and the uEnv.txt.  A few things are still needed for the Solo that should hit v3.11-rc1. So I will revisit the Solo in a couple weeks.

  25. Hi Robert,

    I'm still puzzling my way through these cpufreq printks.  Will simply invoking tools/ recompile the local source (with my changes) w/out doing repository checks/updates and whatnot?

    Is there a cheatsheet on how to make best use of this environment?

    Thank you,   Joe

    1. Hi Joseph,

      That is correct..  ./tools/ just rebuilds the KERNEL directory, it doesn't pull in or patch anything..


  26. Yes, invoking tools/ works.  Looks like min/max voltage is getting inverted somewhere along the way.  The error,"-22" (EINVAL) is coming out of drivers/regulator/core.c::regulator_check_consumers().  Now to figure out why...

    Happy Tuesday!   Joe

  27. Hello, I am following your guide for the Wandboard and I have a problem in this section:

    "Setup microSD card", "Setup Boot/Rooot Partitions"


    I typed the following lines by pressing enter after each line.

    sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__   <ENTER>

    1,48,0x83,* <ENTER>

    ,,,- <ENTER>

    __EOF__ <ENTER>


    Then, I have the following error message:

    Checking that no-one is using this disk right now ...

    BLKRRPART: Invalid argument


    Warning: start=8192 - this looks like a partition rather than

    the entire disk. Using fdisk on it is probably meaningless.

    [Use the --force option if you really want this]


    I am using a USB adapter with a micro SD card. (/dev/sdb1).

    The micro SD card is not mounted. I have Ubuntu 12.04 (in a Virtual Machine).


    Do you have an idea what is wrong ? I am not sure how to use these instructions.


    Thanks for your time.



    1. Humm, not really enough to go on, can you please run the command again, but this time please share the full terminal log (starting with the echo)..:

      echo ${DISK}
      sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__


      1. Here is the full log:

        dev@dev-vm:~/wand$ sudo fdisk -l

        Disk /dev/sda: 108.4 GB, 108447924224 bytes
        255 heads, 63 sectors/track, 13184 cylinders, total 211812352 sectors
        Units = sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disk identifier: 0x00065abc

           Device Boot      Start         End      Blocks   Id  System
        /dev/sda1   *        2048   209707007   104852480   83  Linux
        /dev/sda2       209709054   211810303     1050625    5  Extended
        /dev/sda5       209709056   211810303     1050624   82  Linux swap / Solaris

        Disk /dev/sdb: 16.0 GB, 16012804096 bytes
        255 heads, 63 sectors/track, 1946 cylinders, total 31275008 sectors
        Units = sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disk identifier: 0x00000000

           Device Boot      Start         End      Blocks   Id  System
        /dev/sdb1            8192    31275007    15633408    c  W95 FAT32 (LBA)
        dev@dev-vm:~/wand$ echo ${DISK}
        dev@dev-vm:~/wand$ sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__
        > 1,48,0x83,*
        > ,,,-
        > __EOF__
        Checking that no-one is using this disk right now ...
        BLKRRPART: Invalid argument
        Warning: start=8192 - this looks like a partition rather than
        the entire disk. Using fdisk on it is probably meaningless.
        [Use the --force option if you really want this]

        1. OK, I think I got it.

          I changed "sdb1 by sdb" in the export.


          export DISK=/dev/sdb  instead of export DISK=/dev/sdb1

          Thanks for your wiki.

  28. Hi,


    Has anyone had any luck getting the wifi working with the Quad yet?  I see some mention of the Yocto people back porting it.  I just got my Quad and I've been using a kernel built with Robert's excellent instructions and my own hf debian distro.  I'd like to play with the wi-fi but not sure how to get started with this chipset.





  29. Hello, I have a question regarding the debian root fs. (debian-7.0.0-minimal-armhf-2013-05-05.tar.xz)


    Did you create this file yourself ? If so, can you give some details on how to create the tar.xz file.

    If not, where did you get the file ?



    1. The file was built by my omap-image-builder script: (

      It's just debian debootstrap scripted for my purposes.


      1. Hello, did you remove the script "". 

        I don't see it on the github repository.


        1. See the in the repo for the specific command use for a particular image.

  30. 2-B

    Thanks for the good and easy guide for all this arm based boards for using with debian gnu/linux.

    I bootet the Wandboard Quad with the mainline kernel (compiled 4. july) with debian. If I use only the microSD card for OS this is the mmcblk0, but if I insert a second microSD card and reboot, the OS card is mmcblk1 and the second card (I use it for data) is mmcblk0. No problems for me, change fstab and uEnv, I just want to say it, if it's a software bug.

    1. Nope, it's not a software bug... It's just the way the kernel works, first mmc detected is always mmcblk0... To work around this you'll need to setup an initrd file system and use uuid's vs /dev/mmcblk0.

  31. Hi Robert.  

    Another thanks for sharing this write-up: I'm out of my depth here, yet still managed to boot a functional ArchLinux card on my WBQuad! (smile)  

    After reading through the tutorial and comments, I'm looking for two points of clarification:

    • wireless works with your Mainline 3.10 kernel (armv7-multiplatform) but not with the Wandboard 3.0 kernel (imx-devel)?  
    • and similarly, video output works with the Wandboard kernel but not with the Mainline kernel?

    I'm able to compile the Wandboard kernel with the default .config (works great, just no wireless found), but so far the Mainline kernel fails silently as follows:

     CC [M] fs/xfs/xfs_stats.o
    CC [M] fs/xfs/xfs_sysctl.o
    LD [M] fs/xfs/xfs.o
    LD fs/built-in.o

    As I said, I'm out of my depth here, but I'll see if I can't sort this out and eventually give Mainline a whirl.



    1. The threads take time to wind down after an error. Pipe or redirect output to a file and grep for "error."

    2. Matt,

      No wireless yet, working on integrating a patch from one of our users.. You can see where it failed by just re-running with "./tools/" as it'll start where it stopped.  Did you change anything in the .config?  Might be a new missing dependicy on ubuntu..



      1. Hi guys, thanks for your help.  It turns out I needed to "apt-get install bc" to build mainline . . . 

        mwnovak@ubuntu:~/src/armv7-multiplatform$ ./tools/
         . . . . .
        BC kernel/timeconst.h
        /bin/sh: 1: bc: not found
        make[1]: *** [kernel/timeconst.h] Error 127
        make: *** [kernel] Error 2
        make: *** Waiting for unfinished jobs....


        With BC installed, it appears to be building just fine.  One more question: the main page indicates that mainline is "Dual/Quad only, no video output."  This suggests headless-only use, with initial access through serial.  Is that correct?

        Thanks again,


        1. Sorry about that, it looks like "dpkg -l | grep bc" returns too many results, going to have to find another way to detect that binary

          Correct, on mainline we do not have video support yet, so the only way in is serial or ssh..

          I'm thinking, this will be more exact, anyone with an ubuntu box running can you quickly test it?

          dpkg -l | awk '{print $2}' | grep ^bc



          1. I get the following . . . 

            mwnovak@ubuntu:~$ dpkg -l | awk '{print $2}' | grep ^bc


            Ubuntu version information . . .

            mwnovak@ubuntu:~$ lsb_release -a
            No LSB modules are available.
            Distributor ID: Ubuntu
            Description: Ubuntu 12.04.2 LTS
            Release: 12.04
            Codename: precise
            1. Thanks.. I just also tested on lucid/squeeze...  While testing, I also noticed it wasn't installing lzma on my system, so I cleaned them all up.



  32. With 3.10 and the Alfa AWUS036NHR the kernel crashes after first driver execution (i.e. following initialization).

    It works with the Beaglebone Black mainline kernel. I'm hoping that "Alignment trap" indicates a basic porting error.

    Any debugging tips would be appreciated.


    Jul  6 11:26:45 arm kernel: [   85.464699] rtl8192cu: MAC auto ON okay!

    Jul  6 11:26:45 arm kernel: [   85.507182] rtl8192cu: Tx queue select: 0x05

    [   85.877595] Alignment trap: not handling instruction e1931f9f at [<c0747a2c>]

    [   85.884747] Unhandled fault: alignment exception (0x001) at 0xedd934ea

    [   85.891282] Internal error: : 1 [#1] SMP ARM

    [   85.895558] Modules linked in: arc4 rtl8192cu rtlwifi rtl8192c_common mac80211 cfg80211 rfkill nfsd joydev

    [   85.905366] CPU: 0 PID: 2172 Comm: NetworkManager Not tainted 3.10.0-armv7-x2.1 #1

    [   85.912943] task: edfc0a80 ti: eddec000 task.ti: eddec000

    [   85.918360] PC is at _raw_spin_lock_irqsave+0x10/0x48

    [   85.923424] LR is at usb_anchor_urb+0x18/0x74

    [   85.927789] pc : [<c0747a30>]    lr : [<c04bffa0>]    psr: a0000093

    [   85.927789] sp : eddeda68  ip : edd90e40  fp : 00002506

    [   85.939271] r10: edd93340  r9 : 00000000  r8 : 00000000

    [   85.944500] r7 : edd903e0  r6 : edd934ea  r5 : edd934d6  r4 : edca3d00

    [   85.951030] r3 : edd934ea  r2 : bf1b4440  r1 : edd934d6  r0 : a0000013

    [   85.957563] Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user

    [   85.964789] Control: 10c5387d  Table: 3dd2804a  DAC: 00000015

    [   85.970539] Process NetworkManager (pid: 2172, stack limit = 0xeddec240)

    1. What is the lsusb of that device? I might have a similar realtek chipset, but will have to check my wifi shoebox collection...

      1. Bus 001 Device 007: ID 0bda:817f Realtek Semiconductor Corp. RTL8188RU 802.11n WLAN Adapter

        Thanks for taking a look. Let me know if I can help in any way.



  33. Hi Robert

    Thanks a lot for your work. Everything worked fine.

     I'd like to add a GUI to Ubuntu now. Is there an easy way to do this? If so, could you please add some hints? I searched the net but did not find a suitable guidance.



    1. Hi Peter,

      There's lots of window manager options. This seems to be about the minimalist..

      sudo apt-get update 
      sudo apt-get install lxde-core slim xserver-xorg x11-xserver-utils


      1. Hi Robert,

        Thanks  for this fast reply.

        Is installing the software and restarting the board all I have to do?



        1. Correct... As long as your hdmi output is currently working on the kernel you built, the slim login manager should be the next thing you see on the screen after you install/reboot...

          1. About window managers... Do you have any plans to make a guide to create a full system using yocto ?

            And about hdmi, do you have any idea of how to fix the bug with HDMI and HDMI-DVI cables ? ( thread WBQuad troubleshooting: no video/HDMI output in wandboard group )

            1. Hi Leonardo,

              I have zero plans for Yocto, personally I've always been on the debian side of all the debian vs yocto conversations. I'm sure other developers have wand support in their yocto tree's..

              Yeah, I'm subscribed to the thread, i need to revisit the hdmi on the quad, as it was working on the solo/dual. But no patches have shown up here:  so the git tree should be good, maybe we are just missing a config...

              1. I am very disappointed with the lack of support of about the hdmi problem. Honestly, I am asking to everyone if someone has any idea how to fix the problem. And the silence of about this problem is frustrating.  

                If you can help, or refer the matter to the people who can help solve it, I'll be very grateful.

                1. Hi Leonardo,

                  An alternate approach is to acquire a real HDMI monitor/tv.  I walked through the code and it appears the edid processing is looking for supported CEA modes.  I may have missed it but there didn't appear to be any DMT mode processing (which is all my Dell 1909 supports).  Another area to explore is the edid read functionality.  I noticed early on an output line stating my wbquad couldn't read the edid.

                  Ever onward,   Joe

                  1. Hi Joseph, are you able to use your monitor and the wandboard quad using HDMI-DVI cable ?

                    Some more information: maybe, just maybe, the problem is a bad edid info in monitor. If you have the same problem, try this:

                    xxd -r -p <a |  edid-decode

                    With my monitor, Samsung 2232BW,  I found I have an edid with bad checksum.


                    1. Hi Leonardo,

                      Yes, I am using a Dell 1909 with HDMI<->DVI cable.  Digging into this some more today makes it look like that CEA/DMT "issue" mentioned above is not relevant.  I still see the "No modes read from edid" message during boot.  I subsequently enabled DEBUG in mxc_hdmi.c and i2c-core.c along with sprinkling in a couple more printks.  I am seeing failures in mxc_edid_readblk() at the very first i2c_transfer() call.  Return value is -110 - which looks like -ETIMEDOUT according to errno.h.

                      At this point I'm not sure how this is all wired together...

                      1. Still about CEA/DMT. Raspberry/cubieboard have a little tool to try bypass such limitations: tvservice. There is no deb to install, so I manually copy the files but our system dont have a vchiq ( [E] Failed to initialize VCHI (ret=-1)  . More info:

                        And here:

                        By the way, if I understand correctly, the way of raspberry handles this issue is to give to user the options to bypass any limitation of your display.


                        1. fbset -xres 1680 -yres 1050  give a screen with that resolution. I dont have much time, but I able to test with Matt precise image (lxde) and I got the desktop. However, I think I got a resolution of 1680x1050 (monitor confirmed) but with virtual desktop of 1920x1080.

                          The image tested: precise image


                            1. It should make more monitors show the u-boot framebuffer. Right before the kernel loads and it goes blank.  But it might be a hint why the v3.0.x wand kernel isn't working...

          2. Thanks a lot, Robert, for this info.



  34. Leonardo - that's the great thing about open source - if you need it and no one else seems interested you can just write it yourself! So you're never stopped!


  35. Hey Robert,

    Scratching my head on SPI access.  Config builds in imx_spi, spidev as part of kernel monolith.  I see the spi devices down in /sys/devices/platform and /sys/class but they are absent from /dev.  What have I forgotten to do in order to gain access via /dev/spidevX.Y?

    Thank you,   Joe


      hello joe,

      have you solved your issue?
      i am having exactly the same problem - no spi device list in /dev.

      thanks robert

      1. I'm seeing the same issue.  I did a make menuconfig and verified that the spi-imx driver is being built, but I cannot found it anywhere.


        Has anyone solved this problem?



        1. /* ------------------------------------------------------------------------ */

          static struct spi_board_info imx6q_spi_device[] = {


              .modalias = "spidev",

              .max_speed_hz = 10*1000*1000, /* max spi clock (SCK) speed in HZ */

              .bus_num = 1,

              .chip_select = 0,

              .mode = SPI_MODE_0,



              .modalias = "spidev",

              .max_speed_hz = 10*1000*1000, /* max spi clock (SCK) speed in HZ */

              .bus_num = 2,

              .chip_select = 1,

              .mode = SPI_MODE_0,



          static void __init wand_init_spi(void) {


              spi_register_board_info(imx6q_spi_device, ARRAY_SIZE(imx6q_spi_device));

                  imx6q_add_ecspi(0, &wand_spi1_data);

                  imx6q_add_ecspi(1, &wand_spi2_data);

              spi_register_board_info(imx6q_spi_device, ARRAY_SIZE(imx6q_spi_device));



          this is what you need in the arch/arm/mach-mx6/board-wand.c

          compile it and you are done.
          be sure to call the init funtion ;-)

          1. Robert B, thank you for your response.

            I followed Robert Nelson's directions exactly (they worked great), and my kernel source doesn't have an arch/arm/mach-mx6 folder.

            I started out with the source and images available at, and that did have the mach-mx6 folder, but I've switched over to Nelson's approach, and it doesn't seem to have it.  Do you have any pointers to where my problem lies?


            Thanks again for your help.

            1. The mach-mx6 was merged into mach-imx a few release after the 3.0.x used by, the "board-wand.c" file was also removed and replaced by it's device tree representation.

              To do this with device tree's, you'll need to add a spidev node, just for example take a look at what i did for another arm target to achieve this:



            2. Hi,

              we did some testing to verify the performance of our app on this device.
              Therefore no need to move to a newer linux.
              3.0.x sucks and is illegal with regards to the licensing.
              Never seen so many patches for a system ...
              And for our part - the spi driver needs rework to perform better.

              Maybe we reinvestigate the imx6 using linux 3.12.
              as it seem that a plain vanilla 3.12 runs without patches on an imx6, omap3 and 4.

  36. Has the issue with only one of the Quad's CPU cores showing up in cat /proc/cpuinfo been resolved for the mainline build?

  37. Linux WBQUAD02 3.10.0-armv7-x2 #1 SMP Tue Jul 2 19:17:55 CDT 2013 armv

    The programs included with the Debian GNU/Linux system are free softwa
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Sat Jul 13 00:54:20 2013 from
    root@WBQUAD02:~# cat /proc/cpuinfo
    processor : 0
    model name : ARMv7 Processor rev 10 (v7l)
    BogoMIPS : 790.52
    Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant : 0x2
    CPU part : 0xc09
    CPU revision : 10

    Hardware : Freescale i.MX6 Quad/DualLite (Device Tree)
    Revision : 0000
    Serial : 0000000000000000

  38. Are there a issue with usb in mainline ? The wbquad freeze after the last line (2.545240)

    [    2.464621] imx_usb 2184200.usb: pinctrl get/select failed, err=-19

    [    2.471375] ci_hdrc ci_hdrc.0: doesn't support gadget

    [    2.476476] ci_hdrc ci_hdrc.0: EHCI Host Controller

    [    2.481611] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1

    [    2.505675] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00

    [    2.511178] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002

    [    2.518006] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

    [    2.525238] usb usb1: Product: EHCI Host Controller

    [    2.530146] usb usb1: Manufacturer: Linux 3.10.0-armv7-x2.6 ehci_hcd

    [    2.536527] usb usb1: SerialNumber: ci_hdrc.0

    [    2.541459] hub 1-0:1.0: USB hub found

    [    2.545240] hub 1-0:1.0: 1 port detected

  39. I'm running Ubuntu 13.04 64 bit and trying to run the build script ./ for the Mainline Tree. I keep getting th message about a failed dependency and to install libncurses5-dev. When I go to install Ubuntu says I'm already at the newest version. I have already installed ia32-libs and all those dependencies as well.


    Please help :~)



    chris@UbuntuVM:~/Scarlett/armv7-multiplatform$ sudo apt-get install libncurses5-dev

    Reading package lists... Done

    Building dependency tree Reading state information... Done

    libncurses5-dev is already the newest version.

    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

    chris@UbuntuVM:~/Scarlett/armv7-multiplatform$ ./

    + Detected build host [Ubuntu 13.04]

    + [debug: 3e5fbc58b0eef175af8fdc7abe7bde64dd3ebcf7]

    Debian/Ubuntu/Mint: missing dependicies, please install:


    sudo apt-get update

    sudo apt-get install libncurses5-dev


    * Failed dependency check







    1. Hi Chris,

      Yay, another libncurses5-dev detection problem, on your system, what is the output of:

      dpkg --list | awk '{print $2}' | grep "^libncurses5-dev"


      1. Here is the output.


        chris@UbuntuVM:~/Scarlett/armv7-multiplatform$ dpkg --list | awk '{print $2}' | grep "^libncurses5-dev"





        1. Thanks Chris,

          I just pushed another fix.. It's interesting that for once wheezy has a newer version of dpkg then 13.04.. I really need to find some time one of these days and just recheck ubuntu from: lucid -> 13.10


  40. Hi

    I'm trying to build an Arch Linux image, but can't boot from it. I use the image from Nitrogen6X as it's said in this thread:

    I've built the kernel with cgroups and autofs, added "init=/usr/lib/systemd/systemd" to kernel argument options and mounted root filesystem as rw (as its supposed to in Arch) but still fails to boot.

    With a serial cable I see that the kernel starts booting but it fails to load init. (Syncing failed).

    Can anyone help me?

    Thanks a lot


    1. Hi Liberto,

      I have no direct experience with Arch Linux, but it helps to post ( your boot log, which shows the actual error.. Otherwise no one can really help you as they are not over your shoulder looking at the error message...


      1. Hi, Robert

        It's a sensible advice. Here's my boot log

        Thanks a lot for your help and your patience.


        1. Thanks Liberto,

          I still have no experience with Arch/Systemd, so I really can not help you... But this looks like a bad failure:

          [    3.281429] Failed to execute /usr/lib/systemd/systemd.  Attempting defaults...



          6: Optionally, remove the init=/usr/lib/systemd/systemd parameter as it is no longer needed. systemd-sysvcompat provides the default init.


          1. Just tried removing the init parameter, but I get the same error. I will continue reading docs and I think I'm going to try to build it from scratch (

            Anyway, I first followed your instructions for the debian image and it works perfectly. 

            Thanks again,



            1. Hi Liberto.  Which kernel are you using, mainline or wandboard?  If you're working with Robert's wandboard kernel, have you tried building it without any tweaks to the .config and without any tweaks to the bootargs?  This isn't diagnostic feedback (my apologies), but I can verify that I successfully made a working ArchLinux card in this manner: I followed Robert's tutorial to the letter–no changes to .config or bootargs--but used the latest Nitrogen6X rootfs instead of Ubuntu or Debian.  Came together without a hitch on my WB Quad.  Maybe try it once through "clean" if you haven't already and see where that leaves you?  --Matt    

              1. Hi, Matt. I'm using Robert's wandboard kernel. At first i tried following his tutorial to the letter. Only when I didn't get a working card I started making changes and trying other options. 

                Nevertheless, I will go through the whole process again tomorrow just in case I forgot something the first time.

                Thank you for your help, Matt

                1. Liberto,

                  If you still find that a config is needed, let me know.  I've tried to keep this kernel configuration as universal as possible, such that it should boot on everything out of the box.


                  1. Hi, Robert

                    Followed again the whole procedure with no changes in config, but still won't boot the Archlinux rootfs. As Matt has managed to get it working, it must be something I'm doing wrong. I will try with other kernels and see.



    2. Hello Liberto .


      Do as same as Robert did, instead of extracting Debian or Ubuntu u should use archive from archlinuxarm .

      If u use can obtain from

      Very important .

      Remember to remove /boot/uImage from ArchLinux . If u keep it , somehow it will not boot .

  41. Hi, 

    I am having difficulty with finding the zImage, I don't think it is being created.  My imx-devel/deploy and my arm7-multiplatform/deploy directories are completely empty.  The only problems I see when I build the kernel is a small error saying that "Error: git not set:".  Is this the cause of my problem, or could it be something else?


    Josh Kurland

    1. Hi Josh,

      Please read the error message and there is two html links provided for a hint of what you need to do.  Essentially we are using a feature of git "git am" that with later versions does require the to actually be properly setup on your system.


  42. Wow, I had no idea those errors were actually important.  Thank you.  I followed the instructions and it looks like everything is in shape.

    1. It looks like I spoke to soon.  When I try to build the imx kernel, it hangs on remote:  Counting Objects.  It will hang at a different object count each time I try to run it.


      The exact output is


      scripts/gcc: Using: arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 4.7.3 20130328 (prerelease)
      Copyright (C) 2012 Free Software Foundation, Inc.
      This is free software; see the source for copying conditions. There is NO
      debug: CC=/home/josh-adtec/Downloads/u-boot/imx-devel/dl/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-
      scripts/git: LINUX_GIT not defined in
      cloning git:// into default location: /home/josh-adtec/Downloads/u-boot/imx-devel/ignore/linux-src
      Cloning into '/home/josh-adtec/Downloads/u-boot/imx-devel/ignore/linux-src'...
      remote: Counting objects: 1515189



      1. Hi Josh,

        It sounds like a network/pc problem, as the script is just running:

        git clone git:// ~/linux-src


  43. Hi Robert,

    I notice the ever increasing functionality in the more mainline kernels.  What needs to be done to check the "video" box for 3.10 & 3.11+?

    All the best,   Joe

      1. Thank you.  I'll take a look.

        I pulled your 3.11 fresh this morning, built and installed.  Kernel boots, SATA is active as my Ubuntu 12.04 rootfs is loaded. 

        Linux wandboard 3.11.0-rc1-armv7-x2.2 #1 SMP Thu Jul 18 11:00:58 PDT 2013 armv7l armv7l armv7l GNU/Linux

        What I do see is a continuous stream of

        Jul 18 11:24:14 wandboard kernel: [  221.175068] fsl-ssi-dai 2028000.ssi: ASoC: 2028000.ssi hw params failed: -22

        Jul 18 11:24:14 wandboard kernel: [  221.184088] fsl-ssi-dai 2028000.ssi: ASoC: 2028000.ssi hw params failed: -22

        What did I miss?  I do see output at 4.208107 imx-sdma 20ec000.sdma:firmware not found.  I did not see a step mentioning fw update.


        All the best,   Joe

        May have found my answer.  Does Uboot need to be rebuilt?  Looks like I'm still using 2013.07-rc1...

        build of 2013.07-rc3 failed with linking error

        /home/jheath/imx6/rcn/u-boot/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-ld.bfd: cannot find -lgcc

        some days it's easy, others are like today...



        1. Hi Joseph,

          I'm not sure of the fsl-ssi-dai but i'll take a look at it later tonight.

          imx-sdma: firmware: Last I read it was back to Freescale for legal review.

          So till that is fixed, I can't distribute them in my images.


          That is just not going to work, having the gcc binary in your u-boot directory...  I just pushed a patch to the wiki page that gives a much better visual cue's of where each item should be downloaded to in your system directory wise.  Otherwise you end up with weird things happening..


          1. Okay, thank you.  I'll go move things.  Is an updated uboot image needed for the 3.11+ kernel?

            I figured getting CC set properly would deal with pathing, especially since specific compiler versions are being used.  Also tried setting the LD_LIBRARY_PATH explicitly.  No joy.  Then, again, I couldn't find a libgcc.o anywhere in the hierarchy.

            Ever onward,   Joe

            Moved the compiler up to my imx6 top-level directory.  Reset CC, cleaned and built.  Thank you again. 

  44. Please, add a description of how to boot from a harddisk instead from SD card partitions.

    Adding the following line to uEnv.txt allows to replace the second partition by a hard drive.
    mmcroot=/dev/sda1 ro

    Yet I would prefer not to use any SD card partition at all. But this will require manipulating file include/configs/wandboard.h of the U-Boot source.

    Furthermore explaining how to set up a network console in uEnv.txt would be interesting.

    1. On the Wandboard, booting directly from a sata hard-drive requires board modifications.  I have no plans to show that hardware modification on this wiki.  Using a microSD card as the initial 'boot' drive is perfectly fine for most situations.

      Correct that's the change in the uEnv.txt file required for that situation. Hence why I show that important variable (commented out) in the example uEnv.txt.


  45. Hi,

    i deployed the mainline kernel but i am still having issues with HDMI: it doesn't work even forcing specific screen resolutions.
    I passed the uEnv.txt "video=" argument but it shows me only the boot logo and the comes the "No signal" text on my monitor.
    Any idea? 

    Here you find the dmesg output:


    [ 1061.543368] imx_hdmi_irq: 0x01
    [ 1061.543409] imx-hdmi 120000.hdmi: EVENT=plugin
    [ 1061.543425] imx_hdmi_poweron
    [ 1061.543448] imx-hdmi 120000.hdmi: imx_hdmi_setup
    [ 1061.543476] imx-hdmi 120000.hdmi: imx_hdmi_setup - video mode changed
    [ 1061.543496] imx-hdmi 120000.hdmi: Non-CEA mode used in HDMI
    [ 1061.543515] imx-hdmi 120000.hdmi: hdmi_av_composer
    [ 1061.543538] imx-hdmi 120000.hdmi: x=1360, y=768, refresh=60
    [ 1061.543558] imx-hdmi 120000.hdmi: final pixclk = 85478400
    [ 1061.543587] imx-hdmi 120000.hdmi: hdmi_av_composer exit
    [ 1061.543607] imx-hdmi 120000.hdmi: imx_hdmi_phy_init
    [ 1061.543631] imx-hdmi 120000.hdmi: hdmi_phy_configure
    [ 1061.557683] imx-hdmi 120000.hdmi: PHY PLL not locked
    [ 1061.562670] imx-hdmi 120000.hdmi: imx_hdmi_phy_init: hdmi_phy_configure returned -22
    [ 1061.562695] imx-hdmi 120000.hdmi: hdmi_phy_configure
    [ 1061.576738] imx-hdmi 120000.hdmi: PHY PLL not locked
    [ 1061.581721] imx-hdmi 120000.hdmi: imx_hdmi_phy_init: hdmi_phy_configure returned -22
    [ 1061.581740] imx-hdmi 120000.hdmi: imx_hdmi_enable_video_path


  46. Hello,

    I just compiled a kernel from the mainline tree and I noticed that it seems to lack support for Vivante DRI. Is there a way to obtain the kernel driver for the gfx module?


    1. I'd suggest you contact Freescale/Vivante directly as right now with the mainline kernel 'imx-drm' driver I do not believe "they" have provided compatible drivers yet.


  47. Hi all.  I'm hoping for some help with USB issues.  With a fresh build of the mainline 3.11 kernel, the wandboard's full-size USB port is recognized (but not the mini-USB port), and it works as expected with a USB key or vanilla USB keyboard.  The following is with a USB key attached:

    [root@alarm ~]# lsusb
    Bus 001 Device 008: ID 058f:6387 Alcor Micro Corp. Flash Drive
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Good stuff.  However, plugging in any number of other peripherals gets some version of the following:

    [root@alarm ~]# [ 1130.094878] usb 1-1: new full-speed USB device number 71 using ci_hdrc
    [ 1130.314872] usb 1-1: device descriptor read/64, error -71
    [ 1130.634873] usb 1-1: device descriptor read/64, error -71
    [ 1130.864869] usb 1-1: new full-speed USB device number 72 using ci_hdrc
    [ 1131.084877] usb 1-1: device descriptor read/64, error -71
    [ 1131.404873] usb 1-1: device descriptor read/64, error -71
    [ 1131.634867] usb 1-1: new full-speed USB device number 73 using ci_hdrc
    [ 1132.114868] usb 1-1: device not accepting address 73, error -71
    [ 1132.234867] usb 1-1: new full-speed USB device number 74 using ci_hdrc
    [ 1132.714867] usb 1-1: device not accepting address 74, error -71
    [ 1132.720806] hub 1-0:1.0: unable to enumerate USB device on port 1


    [root@alarm ~]# lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    This example was with a Belkin N Wireless USB Adapter (F5D8053v3), but I get nearly the same output from a Logitech Unifying Receiver and even from one particular USB wheel mouse (I have another mouse that doesn't throw errors but still isn't recognized by lsusb).  

    My question is whether this is a known issue without a solution, or something I might be able to chase down through the kernel .config?  And if it's something I might address through the .config, where is a likely place to start poking?

    Worth noting, I see identical behavior from the full-sized USB port under the wandboard 3.0.35 kernel, but under the 3.0 kernel both the full-sized USB and the mini-USB ports are recognized, and anything I plug into that mini-USB port (using a mini-USB to USB adapter) works like a charm.  For instance, with that Belkin wireless dongle:

    [root@alarm ~]# lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 002: ID 050d:815c Belkin Components F5D8053 N Wireless USB Adapter v3000 [Ralink RT2870]
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    I'd be grateful for any help, even if that help redirects me to another forum. (smile)


    1. Hi Matt,

      We've noticed some similar issues on other i.mx6q hardware in the lab here too, specially related to the OTG ports.  On the sabre-lite, the usb device has to be plugged in at bootup, as hotplug seems to be broken.  Looking at what's heading for v3.12-rc0, for the chipidea driver, there are a lot of OTG updates.  I just haven't gone thru the whole chipidea tree to cherry-pick them yet, although i just might cut a "v3.12.x" branch early in the rc cycle again like I did for v3.11.x branch, as much of my current patchset is in 'next' already.


    2. Matt,

      Quick update on this.  Fabio just pushed patches for this on arm-kernel.

      I've also just added them to my patchset.


      1. EDIT: Nevermind, found my answer in your response a few posts down regarding regression and the OTG patch.  --Matt


        Hi Robert.  I got a chance to come back to this, but I'm left with a novice question: is that patch pulled in automatically during the mainline clone, checkout, and build steps of the tutorial? or is it something I need to pull in manually? (and if so, how?)

        If it is brought in automatically, I'm still seeing the same behaviors described above (namely: only one USB port from lsusb):

        [root@alarm ~]# uname -a
        Linux alarm 3.11.0-rc7-armv7-x12.1 #1 SMP Tue Aug 27 01:24:05 EDT 2013 armv7l GNU/Linux
        [root@alarm ~]# lsusb
        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
        [root@alarm ~]#

        Thanks again for all your help, 


  48. Vic

    Great writeup. I am new to the kernel bringup & this helped me a lot get started. If someone can help with 2 more items it will be a great help I think to anyone starting new like me a) How to create SD-card image files? b) How to create Root File System?



      a) Let /dev/sdg be your bootable SD card

      dd if=/dev/sdg of=/tmp/image bs=512 count=<n>

      where <n> is the number of blocks of your SD card

      b) This depends on the distribution that you want to set up. Start with a running wandboard system and insert a second SD card.

      For Debian use debootstrap ( Adjust path to include /bin. Chroot into the system. Install packages needed. Adjust /etc/fstab and /etc/network/interfaces.

      On non-Debian systems you can install debootstrap with:

      mkdir work
      cd work
      ar -xf debootstrap_1.0.48+deb7u1_all.deb
      sudo tar -xzf data.tar.gz -C /
      rm *
      ar -xf debian-archive-keyring_2012.4_all.deb
      sudo tar -xzf data.tar.gz -C /
      cd ..
      rm -rf work

      To create the chroot you can use:

      sudo su
      /usr/sbin/debootstrap --variant=minbase --arch armhf wheezy debian-chroot

      For Gentoo download, and follow the instruction on



    I'm using the Kernel "3.11.0-rc5-armv7-x8.2" from the Wandboard/wiki-Website and Debian 7.1 (with Gnome) build with the discription from the on a Wandboard Quad. It works fine, but I have two problems:

    1. When the system goes into the "standby"-mode (blank screen), I can't wake up the board.
    2. When i'm working, at differents time there is no video signal for 2 or 3 seconds. This is very nerving.

    Do somebody have a solution?

    Thank's for your help. 

    1. From Gnome Screen Settings disable video standby (or max out the timeout value).

      As this driver (with v3.11.x) is still just the first pass at video out.  The driver as written isn't even accepted upstream for v3.12.x yet.


  50. The sdma firmware can be installed as follows:

    objcopy -I ihex -O binary sdma-imx6q-to1.bin.ihex sdma-imx6q.bin
    mkdir sudo /mnt/rootfs/lib/firmware/imx/sdma -p
    sudo cp sdma-imx6q.bin /mnt/rootfs/lib/firmware/imx/sdma


    The correct installation can be checked after reboot as follows:

    dmesg | grep sdma

    produces an output like

    [    1.523063] imx-sdma 20ec000.sdma: initialized
    [    4.167405] imx-sdma 20ec000.sdma: loaded firmware 1.1

  51. Hi,

    thank you for your great work. May be someone can help me with my actual problem. I have just built an sd-card with the kernel: 3.11.0-rc6-armv7-x10.4

    My problem: I can't finish the login because the USB-keyboard doesn't work. What's the problem? With the older kernel version the USB-keyboard and mouse work fine.

    Do anyone has a solution?

    1. Hi Rainer,

      Sorry about that, in the lab it looks to be a regression from when I added the usbotg dts enablement.


  52. Thank you Robert for the hard work and the very good set of instructions. I am able to run the latest mainline kernel + Ubuntu root file system on my Quad board. I have also installed lxde desktop. Performance is much faster than the official Ubuntu image.

    Nevertheless, I noticed that there is no audio (either through the hdmi or the lineout interfaces). Also, after successfully installing vlc and the accompanying recommended packages, it does not show the video on the screen (even though it does not complain during the file opening).

    Any ideas on audio/video support?


    1. For Audio, the 3 normal audio jacks should be working if you add the sdma firmware. (there are patches pending in the eventual v3.12-rcX tree that should enable audio without the firmware.)

      Digital/SPDIF: patch was back ported to v3.11.x, but doesn't work, so far in v3.12-rc0/next it's seems to be operating.

      HDMI/Audio: I haven't actually tested that at this point.

      Video playback blank, does it help if you add the modesetting driver?  I'm thinking we will need something like shown here:

      BeagleBone Black#HDMI

      As we do not have a xorg/ddx driver for the wandboard's imx-drm video stack yet.


      1. How does one add the sdma firmware?  Alsa shows the STG5000 but any attempt to play audio results in an error setting the hwparams.

        1. >> How does one add the sdma firmware?

          What information did you miss in my comment dated Aug 25th, 2013?

  53. Hi Robert,

    I have just built an sd-card with the kernel: 3.11.0-armv7-x13 and the DEBIAN 7.1 files on a HDD. I can't start this system, because the HDD only makes some "click"-noises. With the kernel: 3.11.0-rc7-armv7-x12.4 the same system starts fine. Do you make changes on the SATA-Port or do you know what the problem could be?

    1. Did the HD gets enough power? I know that clickm noises on USB drives when not enough power is provided by usb.


    Hello Joerg,

    I don't use an USB-HDD. The 2,5" HDD is connected to the SATA-Port and an external 5V power supply. The multimeter shows 4.95V.

    1. sure, You don´t. It was only an example for limited power.

      When the Voltage be stable while boot it should be ok


  55. Hi Robert,

    I back working to get these MIPI DSI AMOLEDs lit up.  On the 3.0.35 build I enabled the menuconfig MXC_MIPI_DSI attribute along with the three xxx_WVGA elements immediately below it.  I got numerous build errors.  First several warnings from within sched followed by hard errors looking for backlight-related functions.  You aware of any guidance on navigating the dependencies?

    I am now rebuilding the 3.11 branch and saw no reference to MIPI DSI anywhere in the menuconfig lists.  Will check the .config values when this build completes.

    My methodology, since I already set up the environment, is simply to export CC then  Is this the "recommended" way to pick up all recent changes?

    Thank you,   Joe

    1. Hi Joe,

      This config change builds fine, just had to move a few of the backlight controls to built-in..

      diff --git a/patches/defconfig b/patches/defconfig
      index 762e003..838212e 100644
      --- a/patches/defconfig
      +++ b/patches/defconfig
      @@ -2482,7 +2482,7 @@ CONFIG_FB_MODE_HELPERS=y
       # CONFIG_FB_MB862XX is not set
       # CONFIG_FB_BROADSHEET is not set
       # CONFIG_LCD_L4F00242T03 is not set
       # CONFIG_LCD_LMS283GF05 is not set
       # CONFIG_LCD_LTV350QV is not set
      @@ -2491,8 +2491,8 @@ CONFIG_LCD_CLASS_DEVICE=m
       # CONFIG_LCD_PLATFORM is not set
       # CONFIG_LCD_S6E63M0 is not set
       # CONFIG_LCD_LD9040 is not set
       # CONFIG_BACKLIGHT_PWM is not set
       # CONFIG_BACKLIGHT_ADP8860 is not set
       # CONFIG_BACKLIGHT_ADP8870 is not set
      @@ -2510,7 +2510,8 @@ CONFIG_FB_MXC_EDID=y
      -# CONFIG_FB_MXC_MIPI_DSI is not set
       # CONFIG_FB_MXC_SII902X is not set

      PS: the scripts take care of CC, "" populates the KERNEL directory based of where as "./tools/" re-builds the KERNEL directory as is (with any changes you made to it..)...


  56. Thank you, Robert.  I have the cross compilers installed above the imx-devel directory (not in dl) so I preset CC to point to the appropriate version.

    I blew everything away and started over.  Got a good default build, made the changes in the diff above and invoked  That completed successfully too.

    Much appreciated,   Joe

  57. Hi Robert,

    Thanks very much for creating this set of instructions to install my favorite OS on this excellent little board (a SOLO model in my case). About the only problem I've encountered involves the serial port (/dev/ttymxc0). In your configuration it's used as a display for debugging purposes. Consequently, your line "T0:23:respawn:/sbin/getty L ttymxc0 115200 vt102" in /etc/inittab is ineffective, since no input is accepted. What's more important to me, though, is that I can instead use it for communicating with other serial devices. So far I've disabled that line in /etc/inittab and modified the u-boot configuration by removing two bootargs statements, "console=${console},${baudrate}" from ./include/configs/wandboard.h, and then recompiling it and using dd to reinstall the new u-boot.imx image file. Now only some u-boot information is displayed via the serial port when the system boots up, but nothing more. However, I'm still not able to use /dev/ttymxc0 to communicate with other serial devices. What else do I need to do to get the serial port to work for me?

    On other thing, when using the serial port for debugging, one Linux kernel message it gives is "[    7.402292] imx-sdma 20ec000.sdma: firmware not found". Is there a way to fix this, or should it just be ignored?

    Thanks again for the great set of instructions!



  58. Hello Jaap,

    using a serial console for looking at kernel messages does not much sense on a system where I can attach a monitor and a keyboard. But probably it is hard to find a presetting for uboot that suits everybody.

    Instead of changing uboot you could have edited uEnv.txt

    Mine is:

    mmcroot=/dev/sda1 ro
    mmcargs=setenv bootargs ${optargs} video=${video} root=${mmcroot}
    uenvcmd=run loadzimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdt_addr};

    Best regards

    Heinrich Schuchardt

    1. Hi Heinrich,

      Thanks for your reply. Applying the relevant statement – optargs=console=tty0 – causes the u-boot and Linux kernel loading processes to be displayed, but nothing more. The result is probably the same as what I had, but with a lot less hassle, so this represents another step forwards for me. However, the serial port still doesn't work for me, so could it be that I must also disable a Linux kernel setting somewhere?



      1. Hello Jaap,


        When the konsole logon appears it shows a connection to /dev/tty1. I am able to login with a USB keyboard. My Debian Wheezy comes with the following lines in /etc/inittab.

        # /sbin/getty invocations for the runlevels.
        # The "id" field MUST be the same as the last
        # characters of the device (after "tty").
        # Format:
        #  <id>:<runlevels>:<action>:<process>
        # Note that on most Debian systems tty7 is used by the X Window System,
        # so if you want to add more getty's go ahead but skip tty7 if you run X.
        1:2345:respawn:/sbin/getty 38400 tty1
        2:23:respawn:/sbin/getty 38400 tty2
        3:23:respawn:/sbin/getty 38400 tty3
        4:23:respawn:/sbin/getty 38400 tty4
        5:23:respawn:/sbin/getty 38400 tty5
        6:23:respawn:/sbin/getty 38400 tty6

        My Kernel version is


        Serial IO

        I get an echo from a modem connected. I do not get any response from a SpaceOrb 360 which expects to use the power supplied via the DTS line.

        Best regards

        Heinrich Schuchardt

        1. Hi Heinrich,

          Inspired by your modem test, I tried it with a very old US Robotics Sportster modem. When attached to a PC running minicom it still behaves perfectly, echoing AT commands as expected. However, when attached to the Wandboard's serial port, almost anything I send to the modem seems to lock things up, except if I send a break, which lights up the modem's send a receive LEDs. So it appears the Wandboard's serial port is working, but so far only to a limited degree.

          Perhaps I should add that I'm using is a null modem cable (which I've again verified is working properly) for most of my tests and a normal RS232 (DTE-DCE) cable for tests involving the Sportster modem.

          I can use minicom on a PC and the null modem cable with an RS232-to-USB adapter to login to the Wandboard after starting up a getty like this:

          T0:23:respawn:/sbin/getty -L ttyUSB0 115200 vt102

          However, attempting to do the same using ttymxc0 still doesn't work: the login prompt appears in minicom when init is restarted on the Wandboard, but it won't accept any keyboard input and so remains useless.



        2. Hi Heinrich,

          Found it! It's the Wandboard's hardware flow control (RTS/CTS): it's apparently disabled by default and can't be activated. However, as soon as I disabled hardware flow control on my client system, then I could finally login to the Wandboard using its serial port.

          The breakthrough came when I examined the Wandboard's serial port settings using stty:

          root@wandb1:~# stty -a < /dev/ttymxc0
          speed 115200 baud; rows 24; columns 80; line = 0;
          intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
          -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
          -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
          -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
          -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke

          Notice that the "crtscts" option is preceded by a minus sign, which means it's disabled. I can use stty to change the number of data bits or the parity, but I can't use it to enable hardware flow control:

          root@wandb1:~# stty -F /dev/ttymxc0 crtscts
          stty: /dev/ttymxc0: unable to perform all requested operations

          I suspect that hardware flow control for the serial port has not been enabled in this Linux kernel configuration, but why? To avoid some kind of bug?



          1. The schematis of the wandboard show that CTS/RTS are provided by the UART.














  59. Hi everyone, hi Robert,

    I have a problem with my WB Dual what a can't solve it. I booted Linux in the board but when i try to show his ip address, i can't. So, i can't access to Internet to communicate withe my PC

    root@wandboard:~# ifconfig -a
    eth0   Link encap:Ethernet  HWaddr 00:1F:7B:B2:05:EA
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

    lo        Link encap:Local Loopback
              LOOPBACK  MTU:16436  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B

    Where do this problem come from and how can i solve it? After starting, we want to access the INTERNET immediately. It is very important for application in industry.

    This is urgent with our project. Help me, please

    1. Hi Le Quang Huy,

      Have you checked that /etc/network/interfaces was modified as per the instructions, and that your DHCP server is up and running?



  60. Hi Jaap Winius,

    We use a internet box, all PC in my room can connect internet. So, it is clear that the DHCP server is always up and running.

    With my file interfaces, he is modified with :

    auto eth0

    allow-hotplug eth0

    iface eth0 inet dhcp

    But...(sad). You have other ideas ?

    1. Hi Le Quang Huy,

      That doesn't look right. How about using this instead:

        auto lo
        iface lo inet loopback
        auto eth0
        iface eth0 inet dhcp

      So, try it without the hotplug first.



    2. For sanity sake, do you at-least get an ip address when you run: "sudo dhclient eth0"

      1. Hi Robert,
        When a do:

        root@wandboard:~# sudo dhclient eth0
        -sh: sudo: not found

        1. Ah... So you are asking questions about an image that I do not support on this site.

          First, start by grabbing a proper image: Wandboard#RootFileSystem


          1. Yes, I'll try. I used instructions of Wandboard

  61. Hi,

    I booted Linux on the board but it demand arm login and password. What must I do ?


    1. Well, start with the documentation you used to install the Root File System, in most cases the user/password will be listed.

      1. Done. Thanks a lot Robert (smile)

  62. wo

    Is there any way to make GPIO work on kernel 3.12?

  63. Hello Robert .

    Thank you for your work , it helped me a lot .

    I tried to apply kernel real-time patch . I don't know why but if i replace normal-working kernel with new real-time kernel , the board boosted fine . But if i installed it , the board failed to boost .


  64. Hello,

    I am trying the 3.13 kernel but it is freezing after u-boot (Starting kernel):


    1. Hi Leonardo,

      What is the kernel tag for that build?  The "v3.13-rc2-armv7-x2" tag from yesterday should boot, as i just tested it yesterday on the quad..  If your booting that one, can you also please pastebin your uEnv.txt.


  65. uEnv.txt (configured for

    I tried in a new sdcard and the same problem happen. But old kernel ( work.

    1. Strange, the directions on this wiki work just fine, with the v3.13.x branch:

      The ".2" bump on the version is for un-related omap3 dvi fixes..


  66. I tried again, without success.

    Just for know, the u-boot enviroment always reset to default settings, after a reset or a new image/sdcard ?

    I remember, sometime ago, to try to change some settings, just to "learn" and to boot a uImage (from latest image from Tapani).

    Edit: Kernel 3.12.0-armv7-x7 boot ok.

  67. Hi Robert,

    In our work, we want to manipulate remotely with the board. So, we want to log user in autocratically. How i can do that ?


    1. Please define "remotely", ssh is always running on bootup, so you don't have to login into the system for that work.  If you want your gui to login automatic, those settings depend on which login manager your actually using.

      Such, there is no one answer, please expand on your question.


      1. In fact, how to set up auto login on Minimal Ubuntu that we installed on the board. To work with the board, it demand arm login and password. But, i want it can auto login.

        1. I'm still guessing, so please be much more specific. So here's my guess, you want it to auto login the current getty screen from the ubuntu image as currently installed with no additional packages/window managers/etc..

          Take a look at:


          1.  This is exactly what I want. Thanks Robert. I'm sorry for my english.

  68. Hi Robert,

    first thanks for your work!

    I compiled kernel 3.13.0-rc5+ for my Wandboard-Quad without any issues, but USB does not work for me.


    unable to initialize libusb: -99

    I have not tested the USB-OTG port (my casing is a mess, so i cannot easily access it...)

    On 3.0.35-wandboard+yocto kernel USB works fine so my Hardware is OK.

    Maybe i removed an important kernel setting, but i doubt it.

    Here is my .config

    I hope this helps to fix this issue (or you can tell me whats wrong here)



    1. Hi Rony,

      It looks like you better start all over with your minimized config, use the one provided as an initial reference, and test your config changes in small boot tests. We may be able to finally enable OTG in 3.14-rc...

      debian@arm:~$ dmesg | grep usb
      [    1.995484] usbcore: registered new interface driver usbfs
      [    1.995536] usbcore: registered new interface driver hub
      [    1.995646] usbcore: registered new device driver usb
      [    3.400146] usbcore: registered new interface driver udl
      [    3.504377] usbcore: registered new interface driver usb-storage
      [    3.511038] imx_usb 2184000.usb: usbmisc init failed, ret=-517
      [    3.516904] platform 2184000.usb: Driver imx_usb requests probe deferral
      [    3.523697] imx_usb 2184200.usb: usbmisc init failed, ret=-517
      [    3.529553] platform 2184200.usb: Driver imx_usb requests probe deferral
      [    3.844919] usbcore: registered new interface driver usbhid
      [    3.850542] usbhid: USB HID core driver
      [    4.057170] 2184200.usb supply vbus not found, using dummy regulator
      [    4.105887] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
      [    4.126800] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
      [    4.136851] usb usb1: Product: EHCI Host Controller
      [    4.141758] usb usb1: Manufacturer: Linux 3.13.0-rc5-armv7-x5 ehci_hcd
      [    4.148294] usb usb1: SerialNumber: ci_hdrc.1
      [    4.480456] usb 1-1: new high-speed USB device number 2 using ci_hdrc
      [    4.634562] usb 1-1: New USB device found, idVendor=1bcf, idProduct=0c31
      [    4.641390] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
      [    4.648634] usb 1-1: Product: USB to Serial-ATA bridge
      [    4.653833] usb 1-1: Manufacturer: Sunplus Innovation Technology.
      [    4.660002] usb 1-1: SerialNumber: FF380815AF0000000000009FF7FF0B
      [    4.668694] usb-storage 1-1:1.0: USB Mass Storage device detected
      [    4.675853] scsi1 : usb-storage 1-1:1.0
      debian@arm:~$ lsusb
      Bus 001 Device 002: ID 1bcf:0c31 Sunplus Innovation Technology Inc. SPIF30x Serial-ATA bridge
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      debian@arm:~$ uname -a
      Linux arm 3.13.0-rc5-armv7-x5 #1 SMP Mon Dec 23 05:47:49 UTC 2013 armv7l GNU/Linux
      debian@arm:~$ cat /proc/device-tree/model 
      Wandboard i.MX6 Quad Board


      1. Hi Robert,

        i assume you are referring to use /patches/defconfig ? well, unfortunately this config is everything else than minimal and thus it takes a pretty long time to build the kernel. actually i used this config and it took me lots of time to remove all the drivers that i don't need. it would be really nice if you would provide a real minimal .config that contains only essential drivers as defconfig. that would be imho a much better starting point as adding required drivers is much easier than cleaning up a bloated defconfig.

        Well, actually i am not a developer but i have configured many kernels in the past and i already cross-checked my working 3.0.35-wandboard+yocto.config with my 'broken' 3.13.0-rc5+.config and could not find anything that should break USB.

        USB worked with your 3.11.2 kernel, but the kernel caused random lockups and i never managed to find out the reason (no output in logs or on serial console - only chance was to press reset button)

        My hardware seems to be OK - no issues with yocto kernel so far and i would stick with yocto kernel if i would'nt need newer drivers... (sad)

        so now i used my 'working' 3.11.2+.config and run

        make olddefconfig

        make clean


        make modules_install

        and copied zImage to /boot


        3.13.0-rc5 kernel builds and i can boot it, but again USB is broken and now i am pretty sure it has nothing todo with my .config as i have not touched the working config (and afaik olddefconfig shouldn't break any settings)

        Probably it's a compiler issue. I am not cross-compiling. I compile the kernel directly on the wandboard - no problems so far with yocto kernel (i use gcc 4.7.3 for compiling)

        It would be really nice if you could take the time and test if my .config works for you. If so we can be sure it's a problem related to compiling.




        1. Hi Rony,

          You are using a quad core, so use:

          make -j5

          to speed things up... Or use an x86 to cross compile/test till you have a config that works for you..

          I've already spend the time to provide and test patches/defconfig which works out of the box on this hardware. It's completely up to you to figure out what "you" broke when minimizing it.  PS, the "3.0.35" board file config is not going to work on the later 3.x device tree only config's..


          1. well, now i used the config from patches/defconfig and as exspected

            USB still does NOT work...

            as i said i have configured many kernels before (of course i use -j5), so i was pretty sure that i did not made any mistake in the setup that could break USB.

            so something else must be wrong here - maybe a bug - i don't know.

            native build works with yocto kernel and with your kernel (3.11.2) without breaking USB.

            i hope you will take a closer look at the sources and patches - maybe you understand what causes this issue.

            i think it's possible that it's a bug/problem that nobody detected before just because everybody uses a crosscompiler...

            i will try if it works if i use a crosscompiler, but even if it works it's still sort of broken/buggy... i'll let you know



            1. Strange it 'still' works here, did you include any of the patches in my tree, or just use the config as is?

              For the scripted build "./" we use a gcc 4.8 based cross compiler.  However I also build the same kernel natively in a schroot with ubuntu oneiric 11.10 (gcc version 4.6.1) thru trusty 14.04 (gcc version 4.8.2) & Debian Wheezy (gcc version 4.6.3) and Jessie (gcc version 4.8.2). These are auto-tested 24/7... with gcc build regression testing.. One of my Wand Quad's:

              To support my "NetInstall" images:




  69. I came here after FAIL with PandaboardES, Beaglebone, & Beaglebone Black using kernels 3.4, 3.8.13, & 3.12.5 SPIDEV to feed a DAC in a waveform generator application.  Using Angstrom vs. Ubuntu root file systems made no difference.  Shifting out 192 data bits with a 16MHz+ SPI clock to update the DAC once a millisecond should not be a burden to the kernel.

    The problem is random long latencies (5+ mS) in the write to /dev/spidev break my 1 mS servo loop.

    I've written real-time test code to illustrate the timing problem.  Changing the write to toggle a GPIO pin instead of the SPIDEV meets my timing constraints, so this would appear to isolate the problem to the SPIDEV write system call.  I found a 3.4-rt kernel for the PandaboardES from the "Robot Operating System" project and it was if anything a bit worse, probably from allowing the SPIDEV driver to be preempted.  Since SPIDEV is "open loop" you can run the test code without any SPI chip attached and look at the CS, CLK, & Dout pins with a scope.  The loop runs for 5 minutes to generate decent stats (and also a good match to my desired nominal epoch time).

    Robert Nelson has run my test code on his BeagleboardXM and it too fails with excessive latencies writing SPIDEV and is fine writing GPIO instead.

    If anyone gets a /dev/spidevX.Y to show up on a Wandboard, drop me an Email and I can send you my test code.  If anyone is interested in the code, post a reply here and I'll upload it as an attachment, or you can get it from the Panadaboard Wiki here:, of course it'll need to be edited for the /dev/spidevX.Y and a GPIO pin to be used on the Wandboard.


    At this point I've no way to tell if the problem is confined to TI's ARM hardware or is generic to the Linux ARM SPIDEV driver.  Its one reason I'm looking for alternatives. The Wandboard Dual looks like a nice replacement to the Pandaboard ES and the Wandboard Quad looks like a nice upgrade at a bit lower price.  Pandaboard is basically dead as TI has disbanded its OMAP group and stopped targeting phone/tablet hardware (also probably why Barnes and Noble has had a  fire sale on their Nook tablets this Xmas season).  At the end of the day all I really need is working SPIDEV without the random long latencies and working WIFI.


    it would be really nice if you would provide a real minimal .config that contains only essential drivers as defconfig. that would be imho a much better starting point as adding required drivers is much easier than cleaning up a bloated defconfig.

    I vote the opposite, you only compile a kernel once if everything works, much easier to delete unneeded files from /lib/modules and or /lib/firmware if you really are that tight on filespace, than deal with an endless series of "how do I get .... working" questions.  Having hassled with getting SPIDEV to work on a variety of systems, I've much preferred the Angstrom distributions that had /dev/spidevX.Y available after boot without building anything – I'd rather never enter the kernel building business at all, if possible.


    1. spi is pretty accessible from here on page 7 pins 7/8/9..

      Just have to tweak the dts file.


      1. I will gladly order a Wandboard Quad if its SPIDEV can be shown to meet my timing requirements!

        My view of the PDF file shows:

        pin 7   CSPI1_MOSI

        pin 11 CSPI1_SCLK

        pin 13 CSPI1_CS0

        Are the WandBoard SPI pins 3.3V or 5V?  The Pandaboard's 1.8V meant extra parts, not a big deal but nicer to not need level translators, as I recall our DAC chip was 3.3V with 5V OK (or set by a jumper, been awhile since I've hooked up the actual hardware) we setup jumpers on the prototype to bypass the level translators for the Beaglebone.

        Just have to tweak the dts file.

        Easy for you, but I'd have no clue how to start (sad)  Would this be via device tree overlay or editing the main dts file, shows how fuzzy I am on how this is supposed to work, the Pandaboard's buddy=spidev uEnv.txt entry was the slickest from my point of view (smile)





      it would be really nice if you would provide a real minimal .config that contains only essential drivers as defconfig. that would be imho a much better starting point as adding required drivers is much easier than cleaning up a bloated defconfig.

      I vote the opposite, you only compile a kernel once if everything works, much easier to delete unneeded files from /lib/modules and or /lib/firmware if you really are that tight on filespace, than deal with an endless series of "how do I get .... working" questions.  Having hassled with getting SPIDEV to work on a variety of systems, I've much preferred the Angstrom distributions that had /dev/spidevX.Y available after boot without building anything – I'd rather never enter the kernel building business at all, if possible.

      well, generic kernels are slower and consume more memory. if you need a certain device/driver you should know what you need and simply add the required drivers. that's much easier than checking several hours a kernel .config and removing stuff. but this is just my point of view... maybe the best solution would be to provide a minimal and a generic .config and let the user decide.

      just a suggestion.

      1. There is a minimal .config:

        make ARCH=arm imx_v6_v7_defconfig
        make ARCH=arm multi_v7_defconfig


  70. I was looking to increase the clock speed in the Wandboard to 1,200 mhz maximum many configurations feature that clock speed. If I understand the current situation, changing the cpu speed is difficult and not worth the time investment.

    1. Hi Christian,

      Correct you don't understand the situation... (wink)

      (from: cpufreq-info)
      cpufreq stats: 396 MHz:3.86%, 792 MHz:0.04%, 996 MHz:96.10%  (65)
      voodoo@imx6q-wandboard-2gb-0:~$ uname -r

      What is your real question and which variant of the WandBoard are we talking about?


  71. True, I don't understand how to change the clock frequency on the CPU. I am talking about the Quad-Core Wandboard. I could just download an image file from and live with whatever config, but I wanted to follow the instructions here. I thought maybe the OS would run faster if I manually compiled the software instead.  Thanks in advance.


    1. The only difference being, they use Freescale's bsp based on 3.0.x kernel whereas I'm using pure mainline.  Both support dynamic cpufreq changes on the board.  But when you compare 3.13-rcX to 3.0.x they lack lots of "new" kernel stuff support...

  72. Hi, I am testing your latest kernel / patch and using optargs=video=HDMI-A-1:1920x1080@24 I am able to get video (and probably sound, because it is a CEA mode) but how I can set the framebuffer / video memory size ? Can you provide an example ? Thank you.

    1. We are using the imx_drm driver which uses the drm stack, the framebuffer/video size is already pre-calculated and setup for your resolution override (1920x1080@24).


  73. Hi Robert,

    This is a very good job, it`s working fine!

    I have a custom board based on Wandboard with PCIe interface. How can i add PCIe support in this kernel?

    Best regards,

    1. Hi Anton,

      I haven't tested the PCIe on any i.mx6's yet. But i know your going to have to run the u-boot-imx next branch to get all the PCIe fixes..;a=shortlog;h=refs/heads/next

      As far as the kernel side, you might have to wait for v3.14-rc1


  74. Hi Robert,

    I'm a new wandboard user, I would use PCIe buse but, PCIe not working properly. 

    When I insert the PCI management in the kernel (via. /tools / menuconfig)
    A kernel panic occurs when start this one.
    I installed u-boot 2014.01-rc1 version, from u-boot-imx.git  but it does not change anything..

    When do you think the kernel v3.14-rc1 is available with PCIe ?

    Thank you for everything you do


    Best regards 

    Yann PERON

    1. Hi Yann,

      Typically it's 10-14 days between a release and the first -rc1. As far as imx6/pcie support, I haven't dug too much into the for-next branch yet to give you an exact answer at this point.  Once it hits, i'll enable it in my linux-dev master branch, till we get closer to getting rc1 in the armv7-multiplatform repo.


  75. wo

    Hi, all

    Do anyone know how to enable sound via HDMI? 




    1. Install alsamixer from alsa-tools and make sure it's not muted.

  76. Hi Robert,

    I'm getting an error using ethernet...

    an error has occurred in the RX packets only

    Could you fix it?


    WBQuad, 3.13-armv7-x9

    eth0 Link encap:Ethernet HWaddr 00:1f:7b:b4:07:08
    inet addr: Bcast: Mask:
    RX packets:3008918 errors:57439 dropped:269 overruns:57439 frame:57439
    TX packets:3848628 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:2684468875 (2.5 GiB) TX bytes:2768043982 (2.5 GiB)

    lo Link encap:Local Loopback
    inet addr: Mask:
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:111208 errors:0 dropped:0 overruns:0 frame:0
    TX packets:111208 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:14781355 (14.0 MiB) TX bytes:14781355 (14.0 MiB)

    And, I can't load bcm4329 driver.

    What should I do?

    FYI, u-boot:mmc, root directory:hdd


    1. Hi Takanori,

      It looks like mainline changed the wifi driver again, I just added the new nvram.txt name (dmesg | grep brcm) and it works fine again. See :

      As far as the network driver, it's best to ask over at:

      PS: watch


  77. First, thanks for writing this page.

    Now, my problem is the same as most people using HDMI->DVI adapter; I have no video output.  At the u-boot prompt, I see the logo.  As soon as the linux kernel starts, my LCD monitor reports no signal.  I've verified my wandboard is ok with an HDMI TV.  So the problem is with u-boot and the kernel.  So here I am.

    I've read through your wiki page and was able to execute some of the commands.  It fails at compiling u-boot, because I'm not using a cross toolchain.  Is it possible to build natively?  I'm using the SDCARD image as my build system.  It has gcc installed, but it seems to be the standard gcc.  The Linaro gcc in your instructions uses eabihf.  Will this difference cause problems in the resulting binaries?

    Just so I'm providing the full picture.  The error message I get from "make ARCH=arm distclean" is

       /bin/bash: arm-linux-gcc: command not found

    It seems on this SDCARD image, the gcc binary is named: arm-linux-gnueabi-gcc.  Which is a symlink to arm-linux-gnueabi-gcc-4.6.  I've looked around in the Linaro download page and can't seem to find any native binaries.  How odd.

    Basically, I just want to verify that a non eabihf and version 4.6 gcc will build a working u-boot and kernel.  I just need something to bootstrap into a self hosting system.  I'll rebuild both images with the latest tools once I have a working video setup.




    1. With the quad see the hdmi hint here: Wandboard#HDMI  sometimes even leaving the serial cable plugged in even helps.

      A lot of projects still assume anything 'arm' must be cross compiled.  So if you build it natively sometimes you need to just set CROSS_COMPILE to blank, but still defined..

      make ARCH=arm CROSS_COMPILE= xyz


  78. I just ran through the process on a Fedora 20 host.  It all went smoothly, but I did have to install a few missing packages:

    yum install redhat-lsb-core ncurses-devel


    1. Those dependicies should have been covered with the kernel build script:

      Where they not?

      1. I think they were.  Looking at the script, I see that it was what gave me the message about redhat-lsb-core.  I probably didn't notice that  ncurses-devel was also requested.  Anyway, I installed both, and the build went to completion.

        Thanks for doing so much work to pull this together!


  79. Hi, thanks a lot for your work!

    I installed your ubuntu-13.10 minimal and xfce4, although i can't get a proper screen resolution (1680x1050 HDMi -> DVI) it works quite well with 1600x1000 which is not my default. My Monitor was detected correctly by xfce as HP w22 (not Sony) but not its native resolution.

    If I comment HorizSync my screen goes colored with vertical lines and i have to revert.

    Of course my edid info is corrupted so I tried new xrandr modes -> the same..

    Did I miss something during the kernel build, obviously the vivante driver is not found..







    Section "Device"

            Identifier      "i.MX Accelerated Framebuffer Device"

            Driver          "vivante"

            Option          "fbdev"         "/dev/fb0"

            Option          "vivante_fbdev" "/dev/fb0"

            Option          "HWcursor"      "false"

            VideoRam        65536



    Section "Monitor"

            Identifier      "Configured Monitor"

    #       VendorName      "SONY"

    #       ModelName       "MFM-HT95"

            HorizSync       28.0 - 64.0 #64

    #       VertRefresh     56.0 - 76.0

    #       Modeline "640x480_60.00"  23.86  640 656 720 800  480 481 484 497  -HSync +Vsync

    #       Modeline "800x600_60.00"  38.22  800 832 912 1024  600 601 604 622  -HSync +Vsync

    #       Modeline "1024x768_60.00"  64.11  1024 1080 1184 1344  768 769 772 795  -HSync +Vsync

    #       Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync

            Modeline "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync



    Section "Screen"

            Identifier      "Default Screen"

            Monitor         "Configured Monitor"

            Device          "i.MX Accelerated Framebuffer Device"

            DefaultDepth    24

            DefaultFbBpp    32

            SubSection "Display"

                    Modes           "1680x1050" "1280x1024" "1024x768" "800x600" "640x480"




    Section "ServerLayout"

            Identifier      "Default Layout"

            Screen          "Default Screen"




    [    41.518] (EE) Failed to load module "vivante" (module does not exist, 0)

    [    41.517] (WW) Warning, couldn't open module vivante

    [    41.692] (WW) Falling back to old probe method for fbdev

    [    41.697] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support

    [    41.840] (WW) modesetting(0): Option "fbdev" is not used

    [    41.841] (WW) modesetting(0): Option "vivante_fbdev" is not used

    [    41.841] (WW) modesetting(0): Option "HWcursor" is not used


     Maybe one can help.





    1. See the hdmi hint to force your monitors true resolution. Wandboard#HDMI

      Kernel patches welcome on the vivante stuff, I haven't spend any time testing that functionality yet. 

      1. Thx, the following line in uEnv.txt solved my problem for HDMI->DVI 1680x1050:


  80. Hi Robert,

    I've got a Wandboard Solo with a custom LCD and touchscreen attached. In a previous build of your image (Kernel 3.0.35) I was able to add a line to uEnv.txt to enable the LCD:


    I tweaked a few timing related parameters in the file mxc_lcdif.c for my specific device, but I was happy to do that.

    With the latest build (3.13.0), the video entry in uEnv.txt appears to be ignored and it looks like the file I tweaked has gone.

    Can you tell me if the support is still included? or if/where it must be enabled?




    1. To support your custom LCD/touchscreen with v3.13.x it's going to take a little work on your be-half.  That parameter is ignored as that driver is not in mainline.  Take a look at how lvds support was added to a similar imx6 based board:

      You are going to have to setup something similar in the imx6dl-wandboard.dts file

      1. Robert,

        I'll give it a go.

        Many thanks for your reply (and for what you provide).


  81. Hi Robert thanks for the great work.

    I compiled a Kernel 3.13 for the Wandboard Quad with my Technisat SkyStar USB HD and get a problem.

    Do you know why i get this error ?

    Thanks for your help

    dmesg output.

    [ 236.045557] usb 1-1: new full-speed USB device number 7 using ci_hdrc
    [ 236.255466] usb 1-1: device descriptor read/64, error -71
    [ 236.575265] usb 1-1: device descriptor read/64, error -71
    [ 236.815146] usb 1-1: new high-speed USB device number 8 using ci_hdrc
    [ 236.966761] usb 1-1: New USB device found, idVendor=14f7, idProduct=0500
    [ 236.966793] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 236.966816] usb 1-1: Product: TechniSat USB device
    [ 236.966836] usb 1-1: Manufacturer: TechniSat Digital
    [ 236.966856] usb 1-1: SerialNumber: 0008C9F0ACD4
    [ 236.968575] technisat-usb2: set alternate setting
    [ 236.968903] technisat-usb2: firmware version: 17.63
    [ 236.968931] dvb-usb: found a 'Technisat SkyStar USB HD (DVB-S/S2)' in warm state.
    [ 236.970301] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
    [ 236.971667] dvb-usb: Technisat SkyStar USB HD (DVB-S/S2) error while loading driver (-12)

    1. Hi Daniel,

      That "-71" error code "normally" signifies a low-level USB protocol error.  My experience has been a device blowing the handshake somehow (invalid timings and such) or mis-use of the control endpoint (USB endpoint 0).  It may or may not be a kernel build issue is what I'm trying to say.  Does this USB HD enumerate and work properly on other Linux systems?

      All the best,   Joe

  82. Hi Joseph thanks for your answer. 

    The Thing is the USB Box is working with other Wandboard Images from Martin Wild his Images working to 80% out of the Box specialy USB OTG is working fine but the Network is slow. The thing is he put so many things in his Images like Samba, Webmin, Mysql, Apache i dont need all this stuff. But Roberts Images are Clean at the first moment but not all is working at the first time like OTG and the Box ^^

    Thank you Robert. (smile) 

    1. Patches to add to the default .config are always welcome. Just because I do not currently utilize the otg port on the wand's does not mean someone else does not.

  83. Ali

    I am getting following error when I boot the OS, any guess whats wrong? (I know it has something to do with wireless but I have doubt about the file system as well that it got correctly mounted or not).

    [ 6.642774] ALSA device list:
    [ 6.645748] #0: imx6-wandboard-sgtl5000
    [ 6.649762] #1: imx-spdif
    [ 6.666983] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [ 6.675162] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
    [ 6.692242] devtmpfs: mounted
    [ 6.695621] Freeing unused kernel memory: 492K (c0ae7000 - c0b62000)
    [ 6.947718] random: init urandom read with 34 bits of entropy available
    [ 7.195786] init: ureadahead main process (78) terminated with status 5
    [ 7.348922] init: mounted-proc main process (99) terminated with status 1
    [ 8.411220] brcmfmac: brcmf_sdio_chip_drivestrengthinit: No SDIO Drive strength init done for chip 4329 rev 3 pmurev 6
    [ 8.654991] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Sep 2 2011 14:48:19 version 4.220.48
    [ 8.682552] brcmfmac: brcmf_fil_cmd_data: Failed err=-23
    [ 8.687897] brcmfmac: brcmf_fws_init: failed to set bdcv2 tlv signaling
    [ 8.700924] brcmfmac: brcmf_fil_cmd_data: Failed err=-23
    [ 8.720288] brcmfmac: brcmf_fil_cmd_data: Failed err=-23

    1. Ali

      Found the reason I was mounting incorrect device:

      In /etc/fstab I was using sdb1 instead of mmcblk0p1.



  84. Ali

    I have another question. It seems like boot environment is not being loaded from uEnv.txt file. In my case rootfs is always being loaded from ssd.

    There is something wrong as I get following error on serial console, I can manually set the bootargs via serial but still I am curious to know the reason behind it:

    "U-Boot 2014.01-dirty (Feb 01 2014 - 12:22:05)

    CPU: Freescale i.MX6Q rev1.2 at 792 MHz
    Reset cause: POR
    Board: Wandboard
    DRAM: 2 GiB
    *** Warning - bad CRC, using default environment"

    1. Ali

      What is correct bootcms if I want to boot from u-boot manually?

      1. Ali

        1. uenvcmd=run loadzimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdt_addr};
    2. It's a "Warning" not an error.  It's just stating that you haven't saved your environment variables into flash* via "savenv" so it's loading the defaults. *flash: your board does not have.

      1. Ali

        I was able to manually set the bootargs to boot from HDD instead of SD card. But I had to go and manually update the mmcroot or soem other environment variable of u-boot.

        I am able to boot from HDD thanks to this page.


        1. That's why the commented out mmcroot u-boot variable is listed here:


          1. Ali

            I did uncomment it and set the correct bootargs but u-boot was not loading the uEnv.txt instead it was loading the default environment.

            Well may be I did some mistake.

  85. Ali

    So today I tried booting Picuntu root file system and got stucked at:

    [ 8.301061] EXT4-fs (sda1): recovery complete
    [ 8.312305] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
    [ 8.320011] VFS: Mounted root (ext4 filesystem) readonly on device 8:1.
    [ 8.326773] devtmpfs: mounted
    [ 8.330159] Freeing unused kernel memory: 492K (c0ae7000 - c0b62000)
    [ 8.378872] random: nonblocking pool is initialized
    [ 8.907114] init: mounted-proc main process (86) terminated with status 1
    mountall: Disconnected from Plymouth

    Any pointer??

    1. So which problem are you specifically looking at?  It looks like you either didn't correctly setup the serial port or video console, thus no login prompt.  You should fix that first.  Otherwise I have zero experience with that third party image. Have you tried asking them?

  86. Hi:

    I have just built 3.13.3 with a Debian system including LXDE.  I cannot get sound to work over HDMI.  I tried the installation of the sdma file mentioned about August 25, but still get the "firmware not found" message when I do a:

    dmesg | grep sdma

    Any ideas on how to get sound over HDMI working?




    1. Hi Freddie,

      The sdma firmware is not needed.  I'd first check with alsa-tools/alsamixer that the HDMI audio output is not muted. If it still fails, can you try with the v3.14.x branch? I haven't personally tested HDMI audio, so I can't confirm anything right now.


      1. Robert:

        Here is an update concerning HDMI sound.  I build the 3.14.3 branch and installed LXDE and there is no change the HDMI audio output still does not work.  However when you select the alsa (1.0 imx6-wandboard-sgtI5000) the sound comes out the audio output stereo jack.  There is no selection for HDMI output instead.  The only other choice is alsa (0.0-imx-spdif).

        Also when is the video acceleration going to be working on the Wandboard?  Are there any threads that you can point me to?




        1. Hi Freddie,

          I dove into this more yesterday, the hdmi-audio driver is not actually in the v3.13.x/v3.14.x tree's yet.


          I've already added this to my linux-dev master branch, however video no longer works, so I need to figure that out now too..

          Video Acceleration is still an un-supported feature on mainline at this point. I did recently add the vivanti drm driver, so in theory freescale's latest driver should work.. It's just no one has documented it yet.


          1. Robert:

            How can I get this installed into my system, do I need to rebuilt the Kernel or can I just install some .ko file somewhere?



  87. Robert:

    In the last Section titled HDMI you have xorg.conf standing alone.  May I assume that this is a configuration file?

    Where should it be placed?  In /usr/share/X11/xorg.conf.d

    Or somewhere else?




    1. In the standard place "/etc/X11/xorg.conf" is fine, the import line is to select the modesetting driver.


      1. Robert:
        Thanks, that did the trick.  Now to see if the HDMI sound works!




        1. It doesn't, I'm still playing around with the hdmi audio patchset, and have not merged it back into the v3.14.x tree yet.

        2. Robert:

          Thanks for the info, I'll wait.


  88. Hi Robert,

    How i can playback sound via line out and record it via line in and mic inputs on Wandboard quad with 3.14-rc4 kernel and ubuntu-13.04-minimal?

  89. Hi,

    I tried your latest branch, v3.14-rc6-armv7-x2, but vivante module dont compile.

    drivers/gpu/drm/vivante/vivante_drv.c: In function ‘vivante_exit’:

    drivers/gpu/drm/vivante/vivante_drv.c:99:3: error: implicit declaration of function ‘drm_platform_exit’ [-Werror=implicit-function-declaration]

       drm_platform_exit(&driver, pplatformdev);


    cc1: some warnings being treated as errors

    make[4]: *** [drivers/gpu/drm/vivante/vivante_drv.o] Error 1

    make[3]: *** [drivers/gpu/drm/vivante] Error 2

    make[2]: *** [drivers/gpu/drm] Error 2

    make[1]: *** [drivers/gpu] Error 2

    make: *** [drivers] Error 2

    make: *** Waiting for unfinished jobs....

    1. Hi Leonardo,

      I think you forgot to attach the patch to fix this. "drm_platform_exit" was removed in v3.14-rcX hence the vivante driver is now disabled in the default config.


  90. Robert:

    I just built the latest 3.14 release of the Kernel you posted today.

    I can't seem to get the kernel to read the EDID correctly no matter what I put into the string "video=HDMI-A-1:1920x1080@60e" in the uEnv.txt file.

    I always get 1920x1080 at 72Hz which causes bad flickering on this TV/Monitor.

    Any ideas whats going on?



    1. Hi Freddie,

      It's the new imx-drm changes, do you see any improvement with the v3.15.x branch i just created and pushed out this morning?


      1. Robert:

        I have just installed v3.15.2 and now I get a black screen.  I think this is even worse that v3.14.x.

        I just saw over on the googlegroup Forums that somebody has come up with a solution for the HDMI problem, have you seen this?!topic/wandboard/KgFACCiAEPk

        This is a patch from Fabio Estevam who claims to fix the HDMI problems on the Quad board.  Here is the Patch:

        Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
         arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 19 +++++++++++++++++++
         1 file changed, 19 insertions(+)
        diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
        index bdfdf89..5c6f10c 100644
        --- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
        +++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
        @@ -62,6 +62,18 @@
         	status = "okay";
        +&hdmi {
        +	ddc-i2c-bus = <&i2c1>;
        +	status = "okay";
        +&i2c1 {
        +	clock-frequency = <100000>;
        +	pinctrl-names = "default";
        +	pinctrl-0 = <&pinctrl_i2c1>;
        +	status = "okay";
         &i2c2 {
         	clock-frequency = <100000>;
         	pinctrl-names = "default";
        @@ -127,6 +139,13 @@
        +		pinctrl_i2c1: i2c1grp {
        +			fsl,pins = <
        +				MX6QDL_PAD_EIM_D21__I2C1_SCL 		0x4001b8b1
        +				MX6QDL_PAD_EIM_D28__I2C1_SDA 		0x4001b8b1
        +			>;
        +		};
         		pinctrl_i2c2: i2c2grp {
         			fsl,pins = <
         				MX6QDL_PAD_KEY_COL3__I2C2_SCL		0x4001b8b1

        There is also another patch mentioned on the Googlegroup Forum concerning imx6q clk, Here it is:


        On Wed, Apr 23, 2014 at 09:55:47AM +0200, Dirk Behme wrote:
        > On 14.04.2014 16:20, Philipp Zabel wrote:
        > >From: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
        > >
        > >Route the video PLL to the display interface clocks via the di_pre_sel
        > >and di_sel muxes by default.
        > >
        > >Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
        > >Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
        > >---
        > > arch/arm/mach-imx/clk-imx6q.c | 9 +++++++++
        > > 1 file changed, 9 insertions(+)
        > >
        > >diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
        > >index a3a69ab..ba17299 100644
        > >--- a/arch/arm/mach-imx/clk-imx6q.c
        > >+++ b/arch/arm/mach-imx/clk-imx6q.c
        > >@@ -445,6 +445,15 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node)
        > > clk_set_parent(clk[ldb_di1_sel], clk[pll5_video_div]);
        > > }
        > >
        > >+ clk_set_parent(clk[ipu1_di0_pre_sel], clk[pll5_video_div]);
        > >+ clk_set_parent(clk[ipu1_di1_pre_sel], clk[pll5_video_div]);
        > >+ clk_set_parent(clk[ipu2_di0_pre_sel], clk[pll5_video_div]);
        > >+ clk_set_parent(clk[ipu2_di1_pre_sel], clk[pll5_video_div]);
        > >+ clk_set_parent(clk[ipu1_di0_sel], clk[ipu1_di0_pre]);
        > >+ clk_set_parent(clk[ipu1_di1_sel], clk[ipu1_di1_pre]);
        > >+ clk_set_parent(clk[ipu2_di0_sel], clk[ipu2_di0_pre]);
        > >+ clk_set_parent(clk[ipu2_di1_sel], clk[ipu2_di1_pre]);
        > >+
        > > /*
        > > * The gpmi needs 100MHz frequency in the EDO/Sync mode,
        > > * We can not get the 100MHz from the pll2_pfd0_352m.
        > I'm no expert on this, so just a question from an internal review:
        > With this, having both ldb_di0_sel and ipu1_di0_sel driven by
        > pll5_video, what will happen if both lvds and hdmi are trying to set
        > the rate of pll5_video_div?
        It's indeed a good question.
        Very likely, one or the other will be broken, depending which one calls
        clk_set_rate() first.  The one calling clk_set_rate() later will work
        It's a result of that there is no negotiation between rate change
        requests from different clients on the same clock.  Such negotiation
        can be done with clk rate change notifier.  It will make these client
        driver quite complex on clk set rate operation though.  Also, if none
        of the possible rate of the source clock can meet the different
        requests from these clients at the same time, we're stuck anyway.
        That said, for now we have limitation to support both lvds and hdmi.




        1. Fabio's patch has been in my tree for awhile:

          Due to travel this week to the ELC, i'm not going to be able to look at this till later next week.  I'm also planning to pull-in Shawn's for-next patchset after rc4.


          1. Robert:

            Congrats, you have fixed my problem with HDMI in v3.15.3.  Now I get a nice number on the monitor "1080p", thats what I like to see.




            1. Awesome!  That's good to hear Freddie,

              Now, hopefully i don't break it again with v3.15-rc4, as i pulled in Shawn's imx: for-next branch:



              1. Robert:

                I will be happy to try it out when you post to git.  I keep an eye out for the change.




                1. Hi Freddie,

                  If you'd like to follow along, my "development" integration tree is here: (master branch)


                  I usually follow linus's git and then merge via meld on every "v3.X-rcY"


                  1. Robert:

                    I tested your "development" branch on my Wandboard Quad and I'm am happy to report that you did not break HDMI with the latest patch.


                    Next up for me is to understand and hopefully get the Vivanti hardware acceleration working for 2d, 3d and videos.  I have much learning and research to do.

                    Do you have any hints?




  91. I had no difficulty following the instructions on this page (as far as I could tell):

    • u-boot built and copied fine to the SD
    • the kernel built and copied fine to the SD
    • the root image copied fine to the SD

    However, (in contrast to using the ubuntu image from when I plug this SD into the WBQUAD daughter board and power up, I don't observe anything happening.  When I removed the SD card and mounted it again on the build machine, /var/log/dmesg still said that nothing had been logged.

    So far I am stumped about what to try next...

    1. Hi Arthur,

      Well the directions as written work on this page. Did you build the correct u-boot for your edition of the board? Do you get anything over the serial terminal on powerup? The only microSD slot that is supported on power up is the one on the processor card.




        I have the utmost confidence that the directions as written work when followed correctly and in no way meant to imply otherwise.

        I believe (or misbelieve...) that I followed the u-boot build instructions at
        to get, patch, and build, configured for the WBQUAD.  Actually, I did configure for wbquad and build twice without success.

        With the standard Ubuntu image, I do get output over the serial terminal, but not with the sdcard with the image that I built. (but see edit below)

        I have used this card successfully with the WBQUAD before (using Martin Wild's image).

        Edit 1: I am finding that (for me, of course) adding the bootloader and populating the first partition are mutually exclusive:

        (1) After setting up following the instructions, u-boot does not write on the serial port

        (2) Next, I reinstall the bootloader with

        sudo dd if=./u-boot/u-boot.imx of=${DISK} bs=512 seek=2
        and the bootloader works but reports that it cannot mount the ext2 partition
        (3) Returning the sdcard to my laptop, it now auto-mounts only the second partition.

        (4) Re-following the instructions to set up the first partition (without repartitioning) results in the bootloader failing to write to the serial port
        sudo mkfs.ext2 ${DISK}1 -L boot
        sudo cp -v ./uEnv.txt /media/boot/

        sudo cp -v ./armv7-multiplatform/deploy/${kernel_version}.zImage /media/boot/zImage
        sudo mkdir -p /media/boot/dtbs/
        sudo tar xfv ./armv7-multiplatform/deploy/${kernel_version}-dtbs.tar.gz -C /media/boot/dtbs/

        Whether or not I double the offset to the beginning of the first partition (i.e., so that fdisk -l -u /dev/sdb shows Start for /dev/sdb1 at 124 instead of 62), but I consistently find that the bootloader works until I populate the first partition, after which the bootloader writes nothing to the console.

        Conclusion: I don't understand dd as well as I thought that I did. (sad)

        Edit 2: I find that all that I need to do to disable the bootloader is

        sudo mkfs.ext2 ${DISK}1 -L boot

        Conclusion: I don't understand mkfs as well as I thought that I did, either. (sad)


        1. Hi Arthur,

          It sounds like your version of "sfdisk" is not leaving a 1MB hole between the start of the drive and the first partition. (This hole is where we are currently dumping the u-boot.imx)

          /sbin/sfdisk -v
          sfdisk from util-linux 2.20.1



            THANK YOU, Robert.

            That was exactly the problem.  I used fdisk to create a hole and the two partitions, reinstalled, and got a perfect boot.

  92. I have an wandboard quad. I'm unable to use HDMI output with my screen.

    my kernel is builded with branch 3.14 and with default configuration.

    I have doing many tests with different values for optargs=video=HDMI-A-1:xxxx without success. My screen always complains that the resolution is not suitable.

    I have tested the 3.15 branch too. I have no error message from the screen, it seem receiving something because it never goes back suspend mode, but it's always black.

    Someone may help me to correct this problem?



    1. Hi Jordi,

      I see something similar in the lab here with my quad.  Does it help if you have a serial terminal connected to the board. (or just ground the serial shell) Something attached to the same power plug as your display. (in my case i have to have the serial connected, otherwise the hdmi never enables the monitor)


      1. Hi,

        I have a serial terminal connected.

        But I'm wrong: with a 3.14 I'm able to have the prompt if I use

        HDMI-A-1:1280x1024M@60e. My screen is able to use 1920x1080...


        With 3.15 with the same configuration I have a message about wrong resolution and

        /sys/class/drm/card0-HDMI-A-1/modes displays









  93. Dear Robert,

    I have successfully followed your instructions with Debian. Additionally, I have installed minimal kde desktop. Everything is working perfect. However, from time to time, I see a freeze problem accompanied by a 'Kernel oops' message that I see with my minicom on my laptop. Have you seen any kernel oops crash before with your 3.14 branch?

    The crash starts with:

    [ 6478.120693] Unable to handle kernel paging request at virtual address 000202c8

    [ 6478.128062] pgd = c0004000

    [ 6478.130794] [000202c8] *pgd=00000000

    [ 6478.134505] Internal error: Oops: 5 [#1] SMP ARM

    [ 6478.139140] Modules linked in: btsdio bluetooth 6lowpan_iphc brcmfmac evdev joydev brcmuto

    [ 6478.165382] CPU: 0 PID: 2928 Comm: kworker/u8:2 Not tainted 3.14.0-armv7-x3 #1

    [ 6478.172807] Workqueue: brcmf_wq brcmf_sdio_dataworker [brcmfmac]

    [ 6478.178855] task: eaf98c80 ti: e301c000 task.ti: e301c000

    [ 6478.184392] PC is at brcmf_rx_frame+0x94/0x57c [brcmfmac]


    So, it seems related to the wifi.......

    The full dump is here:




  94. Hi Robert,

    Thank you for your work, and sorry for another question about HDMI.

    I have tested two kernel, 3.10.x (actually 3.10.32) and 3.14.x, with your help on HDMI Wandboard#HDMI. The HDMI works just fine in case of kenel 3.14.x but 3.10.x (I have tried with both direct HDMI and HDMI-VGA adaptor). 

    Any extra work I have to do to get HDMI out on kernel 3.10.x?

    1. Hi Jin,

      Your welcome to backport the hdmi changes from v3.14.x back to v3.10.x.  Personally my goal is mainline or bust.


      1. Dear Robert,

        I guest my question was unclear. Actually, Hdmi does not work on kernel 3.10.32. I need that kernel because the latest ipipe patch is for it. Can you give any hint?

        Thanks again,

        1. No, there is over a years worth of development for the i.mx6 family between 3.10.x and 3.14.x. It would be best to patch "ipipe" for v3.14.x.


  95. Dear Robert,

    Thanks for your great work.

    I own a wandboard dual, and following you steps, installing the debian rootfs.

    I am able to see the output from the serial console and able to login as root.

    But i have no luck to get the HDMI work, may i know the format of uENV.txt? The # key is meant commented out, right? or it is the syntax that uboot need.



    1. Hi Jaszen,

      HDMI should work out of the box with teh Dual, can you pastebin the output of:

      parse-edid /sys/class/drm/card0-HDMI-A-1/edid

      (note card0-HDMI-A-1 might not match what's the dual, as this from a TI board I had plugged in, just look in the /sys/class/drm/ directory for the dual video device node)


      anything with # is ignored by u-boot when reading the uEnv.txt file.


      1. Hi Robert,

        I got the HDMI working now, it is because the LCD setting problem.

        I will continue to explore more on other features on wandboard.



  96. Dear Robert,

    As i continue to test on the audio using audio in and digital out, for

    the kernel version 3.14.x, do it need the sdma firmware in order to get the audio to work?



    1. Hi Robert,


      Look like there is a bugs for imx-sgtl5000.

      I got the error message snd_soc_register_card failed (-517).



  97. Hi Robert,

    your software-ecosystem looks very promising. I just have two problems with my IMX6-Solo: SPI and GPIO

    /proc/device-tree/modul gives me "i.MX6 dual lite Board" --> is that the problem?

    I've read in the comments that you need a special .dtb-File for SPI

    I'm planning on including these two patches for the wandboard-solo:

    but how is the System deciding on which dtb it uses?

    And is there a solution to the GPIO_Problem? In /sys/class/gpio i dont have the usual gpio### but gpiochip### --> a simple "echo 101 > /sys/class/gpio/export" works like a charm

    Thanks in advance, hans

    1. Hi Hans,

      Initially for the "solo" we needed that separate dts file. However it's no longer needed, as the imx6 solo and dual lite are the same core, just one cpu fuse disabled.  Thus the kernel will correctly enable the second cpu on the dual lite during bootup.

      Did you export the gpio?


  98. Hi Robert,

    I have installed Ubuntu 14.04 on wendboard from the link you provided

    Now I am trying to run chromium with maximum GPU usage. Even though i have enabled GPU acceleration in "chrome://flags"  ("chrome://gpu" shows all accelerated)  I am not sure if GPU is actually being used. "chrome://gpu" doesnt give proper GPU info.

    Driver Information


    Initialization time164
    GPU0VENDOR = 0x0000, DEVICE= 0x0000
    AMD switchablefalse
    Driver vendorMesa
    Driver version10.1.0
    Driver date 
    Pixel shader version1.20
    Vertex shader version1.20
    Machine model 
    GL version2.1
    GL_VENDORMesa Project
    GL_RENDERERSoftware Rasterizer
    GL_VERSION2.1 Mesa 10.1.0



    "glmark2" gave a score of 1 (one) and "glxinfo" output is like follows:



    name of display: localhost:10.0
    MESA-LOADER: malformed or no PCI ID
    libGL error: dlopen /usr/lib/arm-linux-gnueabihf/dri/ failed (/usr/lib/arm-linux-gnueabihf/dri/ cannot open shared object file: No such file or directory)
    libGL error: dlopen ${ORIGIN}/dri/ failed (${ORIGIN}/dri/ cannot open shared object file: No such file or directory)
    libGL error: dlopen /usr/lib/dri/ failed (/usr/lib/dri/ cannot open shared object file: No such file or directory)
    libGL error: unable to load driver:
    libGL error: driver pointer missing
    libGL error: failed to load driver: imx-drm
    display: localhost:10  screen: 0
    direct rendering: Yes
    server glx vendor string: SGI
    server glx version string: 1.4
    server glx extensions:
        GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
        GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_INTEL_swap_event,
        GLX_MESA_copy_sub_buffer, GLX_OML_swap_method, GLX_SGIS_multisample,
        GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
    client glx vendor string: Mesa Project and SGI
    client glx version string: 1.4
    client glx extensions:
        GLX_ARB_create_context, GLX_ARB_create_context_profile,
        GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
        GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,

    "lshw" doesnt give any info about the GPU. Also it shows CPU1,CPU2 and CPU3 as disabled. Can you please tell me why is that? Do I need to recompile the kernel with SMP?


    I  want the chromium appl to use maximum CPU/GPU . Can you please give me  some pointers/suggestions?



    Kiran G

    1. We don't have any working/useful gpu acceleration drivers for armhf yet for the v3.14.x mainline kernel.

      That's a bug in lshw, you should report it upstream.


      1. Hi Robert,

        Thanks for the reply.

        Does Ubuntu 13.10 ( support GPU?

        Where can I see the instructions for installing this? Where are the u-boot and kernel sources?



        Kiran G



        1. Also,Can I user your rootfs (13.04 OR 14.04) with the kernel provided by wandboard. I tried this but chrome or glmark is not showing the proper GPU info. Should I do any extra config to make this work?



          1. Hi Kiran,

            When we have the gpu working, it will be documented on this wiki.  At this time, only the "wandboard' kernel + rootfs works for that situation.


            1. Hi Robert,


              I could see this option in your kernel:


               Choose this option if you have a Vivante graphics card.                                                                                                                                           
               If M is selected, the module will be called vivante.                                                                                                                                               


              Is this not enough for enabling GPU in your kernel? If not, can you please let me know whet else need to be done?


              Kiran G


              1. Yeap, that's the module we borrowed from Freescale's v3.10.x bsp, to interact with Vivanti's driver blob.

                So in "theory" it should work, i just haven't spent the time writing how to make ti work.


        2. It's no different then the procedure for 14.04, just no longer supported.

          1. Thanks a lot Robert.



  99. Hi Robert,

    I am trying to enable a custom splash during Kernel boot. I followed the standard way of hardcoding the ppm image, but I am not able to see the splash when the wandboard is booting. I think this is because I am not setting the  kernel video  parameters properly. Can you please let me know what are the parameters. BTW I am using an HDMI(21.5") display and I am using the u-boot/rootfs provided by wandboard as I require GPU support.



    1. The parameters for "mainline" are listed here:


      You'll have to contact Freescale/ for details on their kernel bsp.


      1. Thanks again Robert.

      2. Hi Robert,

        Do you know any reason why kernel wont show ANY logo during boot? Have you tried booting your kernel with logo enabled("quiet splash"?)

        Kiran G

        1. Hi Kiran,

          On mainline we have the penguins, kernel log and console working on bootup on tty0. (Just a slight pause (blankness) between u-boot -> kernel video handoff.)


  100. I just got back to playing with my wandboards after a long break.  However after following the instructions here step by step I can't get either my dual or quad to boot?  I have no serial output at all.  I've tried the images on the wandboard site and those at least show the u-boot SPL loading and then they hang up.  I am perplexed as I never used to have any issues with these boards.  I am using the 5V , 2 A power supply and I've confirmed they boards are alive using the USB OTG.  I have also tried several different SD cards, so I am pretty stuck.  Any suggestions?




    1. Odd, as there isn't much that can go wrong with setting up the microSD card. Just make sure you using the correct microSD slot and the "dual" bootloader with the "dual" board etc.

      As a quick test, use the netinstall script here:

      As it downloads a pre-built bootloader/kernel.


      1. I tried using netinstall with wandboard-quad and wheezy hard float options and no luck nothing even out of the serial port.  I am of course using the SD slot on the EDM module.  Like I said I never used to have any issues with these boards, they just been setting on a shelf in my office for a while.  Guess I can get another power supply and check with that.  My board is a rev. B1 other than that I don't know.






      2. Haven't looked at the schematic in a while, but I don't recall there being any jumpers for putting the wandboard in serial boot mode.  Was thinking I could hook the mfg tool up to it to see if i can load a kernel that way.

        1. There is, via resistors, but you would need a soldering iron to modify it from factory default.

  101. Install instruction worked for me (Ubuntu 14.04 minimal, wandboard quad). Now i am trying to set my rootfs to sata ext4 partition. My uEnv.txt:


    mmcroot=/dev/sda1 ro

    mmcrootfstype=ext4 rootwait fixrtc



    ##Un-comment to enable systemd in Debian Wheezy

    #optargs=quiet init=/lib/systemd/systemd


    ##Video, edid busted...




    i copied all files and directories from sd to sata. Command “lsblk” show that my sda1 is “/”. Just one problem- when I trying “adduser” or another commands wit “sudo” I become something like that error (my free translation from German): “/usr/bin/sudo user must be user with UID=0 and *setuid*-Bit must be set”

    Anny suggestions how I can fix it?

    And I changed my system language to German, but German fonts like ä ö ü ß are not shown by system. Just when i typing, those fonts are corect.

    1. Sounds like you may have a permissions problem. What is the output of:

      ls -l /usr/bin/sudo

      How did you copy the data over? I usually use rsync:

      You'll have to regenerate the locales, for your local language, as i only generated (en_US.UTF-8)


      1. Hallo,

        On another pc, using dd, i copied complete micro sd rootfs partition to my sda1 rootfs partition. Now I can create new user account using sudo adduser, so I think now I can run all commands as sudo. Command “ls -l /usr/bin/sudo” now answering

        “-rwsr-xr-x 1 root root 111780 Feb 10 20:10 /usr/bin/sudo”. So, I think its ok?

        About the script to regenerate locales- I afraid to run this script to fix lokales on good for me configured and with programs installed system. If it fails, it’s possible that I have more problems than now and new compiling und installing takes some time. Is there some simple commands to fix the locales on working system?


        1. Those permissions for sudo look good now. To change your locale run:

          sudo dpkg-reconfigure locales

          and select it.

          There is also the "locales-all" package

          sudo apt-get install locales-all

          It'll take around 120MB of extra space.


          1. thank you for the answer. I fixed my problem with locales (German language packs was installed). I changed my locales from de_DE.ISO-8859-15 to de_DE.UTF-8 with command: “sudo update-locale LANG=de_DE.UTF-8”. After reboot I have no more problems with German locales,.

          2. one more question. i tried to install usb-dvb-s card tbs5922se with official drivers from official site . i used .sh script for kernel 3.x.x version, 32 bit system. After command "make" i becomme message: 

            make -C /home/ubuntu/darblaukis/tbs/linux-tbs-drivers/v4l
            make[1]: Betrete Verzeichnis '/home/ubuntu/darblaukis/tbs/linux-tbs-drivers/v4l'
            Updating/Creating .config
            Preparing to compile for kernel version 3.15.1
            File not found: /lib/modules/3.15.1-armv7-x2/build/.config at ./scripts/ line 33, <IN> line 4.
            make[1]: *** Keine Regel vorhanden, um das Target ».myconfig«,
            benötigt von »config-compat.h«, zu erstellen. Schluss.
            make[1]: Verlasse Verzeichnis '/home/ubuntu/darblaukis/tbs/linux-tbs-drivers/v4l'
            make: *** [all] Fehler 2

            i think there is no linux headers installed on my system. How can i fix this problem?

            1. Hi Marijus,

              Well you "cross-compiled" the kernel from your x86 machine and copied the final output to the wandboard. So to build that driver, you'll either need to copy and re-symlink the "build/" directory. Or just run the kernel build script on your wandboard.


  102. I followed the tutorial to create the SD card, but the Wandboard doesn't seem to boot properly. When I plug in the power, the boot splash image (one with text at center of screen) appears on the screen for about half a second (1024x768 70Hz), then the display output turns off. After a few seconds, the display turns back on, this time at 60Hz, and four images of Tux appear in the top left corner, which disappear after half a second (the display output remains on this time). The display finally turns off after about fifteen minutes.

    The Wandboard doesn't appear in the network, and the display remains on after removing the SD card without resetting the board.

    My Wandboard is a rev. C1 Quad.

    Also, the tutorial tells me to download, but mentions ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz in the verification and extraction, so I downloaded that instead.

    1. Hi Adam,

      I actually don't have the rev C, there's a patch posted:

      Can you your serial boot, as video should work on v3.15.x with the hdmi override's.

      Fixed the rootfs link, copy/paste error on my mass update this week.


      1. Thanks for the fast reply.

        I am using a laptop, so I can't use a serial port (and compiling the kernel takes three hours), so I will try to use the one on an older machine (running Windows 7, blegh).

        As for the patch, I am not really sure how to apply it (though I did find the file armv7-multiplatform/KERNEL/arch/arm/boot/dts/imx6qdl-wandboard.dtsi)

        1. The post below by Kenneth MacCallum seems to explain what my problem was.

          I downloaded and compiled the kernel again, and the Wandboard boots now.


          wget -c

          should probably be

          wget -c

          for rev. C1.

  103. Hi I just added i2c3 to the device tree. I found that there's an incorrect pin in the ioctrlc for GPIO_16 that conflicts with one of the pins of i2c3 and causes a kernel panic at boot. It's the ENET_REF_CLK pin which is actually wired to ball V22. The io mux setting is a bit confusing for that pin so I can see why it was wrong.


    Thought someone would like to know.

  104. Hi Robert,

    I am putting the Wandboard's EDM1 module on the EDM1-Fairy base board and it works  just fine except the pcie. Do you have any patch or tip to enable the pcie? I am using kernel 3.14.x built by your scripts. 

    Thank you

    1. Hi Jin Ho,

      pcie currently is disabled in v3.14.x still lots of bugs to deal with first, might haven it enabled in v3.16/v3.17.


  105. Hi Robert,

    Thanks for the the wonderful tutorials and custom images. I am trying to use the Ubuntu 14.04 minimal image with a 3.0.35 kernel. This kernel worked with your old Ubuntu 13.04 minimal image. but with the new image. The console fails to come up. I checked syslog to see what could have been happening and I see the following output:


    Jul  7 16:59:12 arm kernel: init: serial main process (3050) terminated with status 1

    Jul  7 16:59:12 arm kernel: init: serial main process ended, respawning

    Jul  7 16:59:22 arm kernel: init: serial main process (3167) terminated with status 1

    Jul  7 16:59:22 arm kernel: init: serial main process ended, respawning

    Jul  7 16:59:32 arm kernel: init: serial main process (3169) terminated with status 1

    Jul  7 16:59:32 arm kernel: init: serial main process ended, respawning

    Jul  7 16:59:42 arm kernel: init: serial main process (3171) terminated with status 1

    Jul  7 16:59:42 arm kernel: init: serial main process ended, respawning


    This suggests that getty is crashing and then being restarted. Do you have any ideas as to what could be causing this crash in the new image?




    1. Just a quick comment for those who may be trying to do the same thing. ie Use Robert's Ubuntu minimal image with 3.0 kernel. The following should be enabled in the kernel .config file:



  106. my wifi not working on my wandboard quad rev. C1:

    dmesg | grep brcm

    brcmfmac: F1 signature read @0x18000000=0x16044330

    brcmfmac: brcmf_sdbrcm_download_code_file: Fail to request firmware -2

    brcmfmac: _brcmf_sdbrcm_download_firmware: dongle image file download failed

    brcmfmac: brcmf_bus_start: brcmf_sdbrcm_bus_init failed -1

    brcmfmac: brcmf_sdbrcm_probe: dongle is not responding

    brcmfmac: brcmf_sdio_probe: device attach failed

    brcmfmac: brcmf_ops_sdio_probe: F2 error, probe failed -19...

    usbcore: registered new interface driver brcmfmac

    1. Rev c1 is still not fully supported yet by this wiki. As i don't have one yet. (wink)

  107. Robert:

    Do you have Debian Jessie version for this distribution yet?  Or do you know how to upgrade a Debian wheezy to  Jessie?

    There are a lot of things in Jessie that I need and I have not figured out how to put a Jessie system on the WBQuad.



    1. When we get closer to the freeze date, i'll start generating jessie images. For now just do this:

      sudo sed -i -e 's:wheezy:jessie:g' /etc/apt/sources.list
      sudo apt-get update ; sudo apt-get install apt dpkg udev
      sudo apt-get update ; sudo apt-get upgrade


  108. Robert:

    What's up with the systemd thing?  Should I use it or not?  How do I install it in your images if I need to install it?

    Does Jessie require systemd?





      It'll be the default init in jessie.


      1. Robert:

        I installed jessie and if works fine.  However it does not start up lightdm, it starts in the kernel.  How can I get lightdm to start automatically?

        It starts if I log in as root and issue the command:


        It also starts lightdm if I issue the command:

        service lightdm start

        Where do I put the command to start lightdm as soon as it boots?




  109. Hi Robert

    great and very impressive work (many thanks!!)

    Because all works so fine, I'm trying to use suspend-to-RAM (Kernel 3.16.x on wb-dual) to build a battery powered system and basically it works (only) after unloading the WiFi driver by:

    1. modprobe  -r brcmfmac
    2. echo mem >/sys/power/state
    3. echo enabled >/sys/class/tty/ttymxc0/power/wakeup

    The electrical current is reduced from 270mA in idle mode to 130mA in suspend-to-RAM mode which is still quite high.

    (I expect only a few mA for the SDRAM).

    And there is no improvement when unloading the ethernet driver (fec) by configuring it as loadable module.

    Any idea how to improve that?

    (the device is currently headless - the GPU should go to powerdown on suspend, shouldn't it?)

    Regards and thanks


    1. Hi Matthias,

      PM should be better with v3.17.x, we are still missing a few things on mainline.


  110. Hi, Robert,


    we are struggling in the transferring file a.out to the wand board via Ethernet.


    1. We have created SD card as your method given at

    inserted it in wandboard, connected wandboard to the Host Ubuntu PC via serial port.

    2. on the gtkterm console wandboard booting well and arm login came after user name & password.

    3. i have set ip address to wandboard as follows -

    $ sudo ip addr add dev eth0

    $ sudo ip link set dev eth0 up

    $ sudo nano /etc/network/interfaces

    written the following content

    auto lo

    iface lo inet loopback


    #auto eth0H

    #iface eth0 inet dhcp


    #auto eth1

    #iface eth1 inet dhcp


    # TO configure static ip address

    auto eth0

    iface eth0 inet static







    save the file and close it.


    $ sudo /etc/init.d/networking restart


    4. Connected Host PC & Target Wandboard via ethernet cable


    5. My Host PC = & Wandboard =


    From Host, ping

    it is giving response well


    From Wandboard,


    it is also giving proper response.


    6. Now we have installed tftp server on Host as -

    $ sudo apt-get install tftp tftpd xinetd

    $ sudo nano /etc/xinetd.d/tftp

    and fill it with the following contents


    service tftp


    protocol = udp

    port = 69

    socket_type = dgram

    wait = yes

    user = nobody

    server = /usr/sbin/in.tftpd

    server_args = /tftpboot

    disable = no


    saved it & closed it.


    $ sudo /etc/init.d/xinetd restart

    $ sudo mkdir /tftpboot

    $ sudo chown <my user name>.<my user name> /tftpboot


    7. After this we have copied generated a.out file in the /tftpboot directory


    8. Now from Wandboard gtkterm consol we are trying to -

    ubuntu@arm:~$ tftp

    -bash: /home/ubuntu/bin/tftp: Permission denied

    ubuntu@arm:~$ sudo tftp

    [sudo] password for ubuntu:

    Sorry, try again.

    [sudo] password for ubuntu:

    Sorry, try again.

    [sudo] password for ubuntu:

    Sorry, try again.

    sudo: 3 incorrect password attempts



    9. But as shown above, it is not accessing Host PC /tftpboot directory.


    Can you please tell me what is going wrong? what configuration is it require till?

    How to transfer this a.out file to the wandboard via Ethernet?


    1. Sorry, not much experience with tftp, maybe someone here or on the wandboard forums can help.  I'd say just use nfs.


  111. Hello,

    thank you for posting such a wonderful resource!! 

    One thing I had a problem with was with the u-boot configure.  Apparently there is no target for wandboard_quad_config. There is a target for wandboard_quad_defconfig and that worked fine.

    thanks again,



    1. Hi Mark,

      That just means you didn't checkout the v2014.07 branch


      and instead you are on 'master' which is in the middle of the next merge cycle.


  112. Hi,

    thank you for this great instructions.

    I have a wandboard solo with a Linux 3.16.0 Kernel running by following the build instructions in the wiki. I am using a debian root file system with a dist-upgrade to testing.

    I connected the wandboard to my monitor via a HDMI-DVI connector. As expected I can see one Tux followed by the login while starting the system. When I try to run X it is unable to start since it can't find any screens.

    Running xrandr gives me a "Can't open display". I tired to parse the edid from /sys/class/drm/card0-HDMI-A-1/edid but the file is empty.

    I read that there are other people have problems reading the edid but only on quad boards.

    Any ideas how I could debug this problem any further?


    1. Take a look at this section:

      We still need to force the modesetting driver for xorg.


  113. Hi Robert,

    I followed the install instructions line by line (incl. the HDMI section).

    I will try to get a HDMI monitor to test it.

    1. A HDMI monitor isn't required. It's just an HDMI connector on the pcb, thus we use that label in the wiki section.

  114. Hello Robert,

    I rechecked all my config files but I still couldn't find anything that points to my problem of Xorg not finding any screens.



    1. Btw, you can drop the video=xzy override on the dual board.

      Now i'm just installing xorg, will just take a moment.

      Err, wait your on "jessie" those directions where written for X.Org 1.12.4 on "wheezy", i'll have to upgrade too.

      edit: we need:


  115. hallo,

    i have wandboard quad C1 and dvb-s usb tuner TBS5922SE. I wish to build server with samba and tvheadend with dvb-s. So i need install drivers for TBS5922SE first (download site: To install those drivers i need kernel headers and build tools. I have installed those packages but they dont work on my wandboard. On normal desktop pc it works. So i think i need install those tbs drivers as modules by crosscompiling kernel following your instructions. But how exactly, what steps i need to do? TBS has mini pc called matrix that is very similar to wandboard and his OS (ubuntu 12.04 and 3.0.35 kernel) supports or have preinstalled TBS drivers, xbmc, vdr, tvheadend, lirc etc, so i think its posible to build similar OS on wandboard. 

    1. The linux-headers-`uname-r` package is available for point release's and already setup in the rootfs on this wiki

      sudo apt-get update
      sudo apt-get install linux-headers-`uname -r`


      1. i made it, but build tools giving me errors after "make && make install" and drivers are not fully installed and tbs-hardware works not. So i thaught i can install those drivers by crosskompiling it as modules after i compiled kernel (at same way how in your wiki). Just i dont knew how exactly i can do that.