Skip to end of metadata
Go to start of metadata

This is the comment page for BeagleBone Black.

For all new topics please use: TechXchange Community

  • No labels


  1. Is there a way to structure the boot section such that it can boot both a BBB with a 3.8 kernel, as well as a uImage or zImage of a 3.2 kernel on a BBW?

    We've prepared a beaglebone SD image for LinuxCNC with Xenomai 3.2.21, and until the Xenomai 3.2.21 kernel patch is around I would really love to be able to have a single image for both configs

    I've tried - copied the 3.2.21 zImage to the boot section, but u-boot barfs because it cant find a flattened device tree - well sure, there aint one for the 3.2.21 zImage, any way around that?

    Here's where I am now:

    U-Boot 2013.04-dirty (Apr 29 2013 - 14:23:07)
    I2C:   ready
    DRAM:  256 MiB
    WARNING: Caches not enabled
    NAND:  No NAND device found!!!
    0 MiB
    *** Warning - readenv() failed, using default environment
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Host mode controller at 47401800 using PIO, IRQ 0
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot:  0
    gpio: pin 53 (gpio 53) value is 1
    mmc0 is current device
    micro SD card found
    mmc0 is current device
    gpio: pin 54 (gpio 54) value is 1
    SD/MMC found on device 0
    reading uEnv.txt
    508 bytes read in 4 ms (124 KiB/s)
    Importing environment from mmc ...
    Running uenvcmd ...
    reading zImage
    2248400 bytes read in 264 ms (8.1 MiB/s)
    ERROR: Did not find a cmdline Flattened Device Tree
    Could not find a valid device tree
    gpio: pin 55 (gpio 55) value is 1
    reading zImage
    2248400 bytes read in 264 ms (8.1 MiB/s)
    gpio: pin 56 (gpio 56) value is 1
    reading /dtbs/am335x-bone.dtb
    ** Unable to read file /dtbs/am335x-bone.dtb **
    Booting from mmc ...
    ERROR: Did not find a cmdline Flattened Device Tree
    Could not find a valid device tree

     thanks in advance, Michael


  2. HI Michael,

    There is a note on how to do this (in the uEnv.txt boot script) on the BeagleBone page (as the v3.2 based kernel is not supported for the BeagleBone Black)

    #To boot old v3.2.x based kernel enable: (BeagleBone only)
    #uenvcmd=run loaduimage; run mmc_classic_boot



  3. Robert -

    thanks, got the old kernel to boot on a BBW with the new bootloader and MLO as outlined for the BBB.

    Just need to verify the 3.2 kernel runs on BBB

    I know it's not 'supported' (we patched it with Xenomai to start with); does the BBW really require a separate kernel build?

    I assume HDMI and built-in flash wont workt that way, but at least we'd have something to start with


    1. Hi Michael,

      By "unsupported" I mean no developer (that I'm aware of) is planning to back port BeagleBone Black support to the old v3.2.x based tree.

      The v3.8.x based kernel supports both BeagleBone's, however due to the onboard HDMI/eMMC I elected to create a secondary eewiki page...


  4. Hello Robert,

    I am new to the Beagle Bone Black.  I am in need of some specific info, based on my customer's request.

    Please tell me how to get educated about the operation of the software on the Beagle Bone Black.  Thank you.

    My customer wants to know the details of how to make the Beagle Bone Black go to "sleep"[at a lowere power mode] and then
    wake up very quickly to a full power mode.  And is there a specific signal to connect to ground, or other pin in order to do this?

    My customer based his question on a previous Beagle Board squard board?  

    1. Hi Thomas,

      On TI/Omap/Sitara, you can stick the device in a suspended state:

      echo mem > /sys/power/state

      However, after quickly testing on my pre-production BeagleBone Black, that's not working at the moment. So either I don't have the functionality, or someone still needs to finish writing the functionality for this Brand new silicon revision.


      root@arm:~# uname -a
      Linux arm 3.8.8-bone14 #1 SMP Wed Apr 24 08:55:00 UTC 2013 armv7l GNU/Linux
      root@arm:~# sync; echo mem > /sys/power/state
      -bash: echo: write error: No such device


  5. Greetings Robert.

    I'm trying to get Ubuntu 12.10's desktop working on my BeagleBone Black. At I found your 3.8 kernel combined with the 12.10 GA core rootfs to make a small image for the BBB SD card. I expanded the ext4 partition and installed ubuntu-desktop with no errors. It works fine until I try to use ubuntu desktop.  Apparently the graphics driver is wrong for the BBB platform because when in desktop anything that causes a write to the screen makes the screen jump and flash.  This includes writes to blink a cursor or to move the pointer when the mouse moves.  Eventually the whole thing hangs and forces me to reboot.  If I stay in the console everything works fine until I switch back to the desktop.  There's a second report of these same problems on so it's not just me doing something stupid.

    Any ideas?


    1. Hi Dave,

      To date, I don't believe we have an xorg driver for this hardware yet.  With the v3.8.x based kernel used with the BeagleBone Black we are using a very early version of Rob Clark's (1) KMS based tilcdc driver (2).  So make sure your xorg is not trying to load the old/obsolete 'omapfb' driver, force "fbdev" for now.




      1. Is this specifying the frame-buffer?

        How do I "force fbdev"?  Is this at boot time or is it in an xorg configuration that I can do after I get a command line?

        Also,  Is there somewhere that I can find a description of the boot process and files used by BBB?


        1. Hi Dave,

          fbdev is not a boot time argument, just add it to your xorg.conf to force the xserver to use it over anything else. (At one time Ubuntu had a patch that defaulted the xserver to default to omapfb whenever an TI family device was detected..)

          The boot process on the BBB is very similar to earlier versions of this product line, take a look here (it's a little dated, but still a good reference.)


          Bootrom > loads MLO off (fat partition with boot flag set)

          MLO > loads u-boot.img

          u-boot: reads uEnv.txt and then... boots depending on how you setup uEnv.txt... 


          1. Hello again, Robert,

            Thanks for you help.

            I created an xorg.conf file, in an /etc/X11 subdir, that had nothing in it but "force fbdev."

            Upon reboot, I got a screen announcing "reduced graphics" and I was offered a choice of continuing with the reduced graphics or switching to the "default" graphics.  The default graphics turned out to be the original omap graphics that aren't usable.  Continuing with "reduced graphics" promptly resulted in an error message "plyterminal open assertion 'terminal != ((void *)0)' failed."

            So, several questions:  Is it likely, or not, that there exists an xorg driver for the AM335x?  Will I have to use source code to build the kernel for the BBB, or has someone already done it? Where do I look? Is it reasonable to think that TI has done this, or is working on it now?

            Regards, Dave



            1. Hi Dave,

              You should report that bug to ubuntu, there should be no reason for fbdev to fail, as running with fbdev is the fall back situation.  BTW, have you tried xubuntu desktop or anything else without unity?

              Maybe I left too much leeway with my previous statement, so to just be more clear..  Do you see any wiki's in the community documenting the usage of a real xorg driver for these devices?  If we had something useful, we would have documented it.  BTW, even when some users got the old power-vr 2d xorg driver working a few years ago on the original beagleboard, it was still slower then fbdev!  (PS: the omapfb driver also found in ubuntu was never a real xorg driver, it just accelerated a few routines via neon instructions..)

              So what we have is right now is Rob Clark's KMS based tilcdc driver for AM335x devices:



              1. OK. I'm convinced. There's no real xorg driver.  No, I haven't tried anything without unity, but I will..

                In my searching, I learned that the graphics performance of TI's chip is inferior to RPi's Mali.  So maybe I'm wasting my time. Canonical is not supporting RPi. Maybe they'll take the same position on BBB. Maybe Ubuntu and BBB are just not a good match. 

                Rob Clark is at RH since Feb.  I'm starting to think there's no point in pursuing TI about xorg.

                I wish I'd started working with Linux a long time ago.  Now I'm wondering if I still have the minimum requisite brain cells left for such a late start on this learning curve.

                Thanks again for your indulgence. 



                1. Canonical never supported the original BeagleBone either, they only support devices when paid directly by the manufacture of the device.

                  Even thou Rob Clark is at RH, he's still the best hope for an xorg driver for these devices.


              2. Xubuntu didn't work either.  Same behavior, both omapfb and with fbdev.

                I haven't found a way to ask Rob Clark about the possibility of xorg for AM335x.

                1. i have been able to get both a lxde and xfce desktop working. If you install xfce4 with lightdm-gtk-greeter that should work for xfce, and if you install lubuntu-core with lightdm-gtk-greeter, that should work with lxde.  The only problem im having is my colors seem to be inverted or red.  In other words, anywhere something is suppose to be blue it is red or some variation of red.  Using beaglebone black with ubuntu 13.04 installe don sd card following guide at  Except for the part where it tells you to install the lxde minimal desktop with the shell script, that didnt work. 

                  1. I installed lubuntu-core, and it seems to work. I can login as guest, but I can't find the password for the Demo User. Can someone please tell me what it is?




                    1. Password is temppwd, did you have nay issues with your colors in lubuntu being off or not blue like they are suppose to be.

                      1. The video interface is only 16bit, so some themes designed for 24bit will look a little washed out.


                      2. Thanks for that. In fact it was just a senior moment on my part. I was thinking of the lubuntu as a new installation, but of course it wasn't, so my normal passwords were still in effect.

                        The colors look normal, though I have a black background, and don't seem to be able to change it. Now that I know it works, I might go back to the beginning and re-install raring on the SD card and start from scratch.

  6. Hello Robert.  I'm working on porting a BB-xM project of mine over to the BeagleBone Black.  I usually do this sort of thing by getting each individual subsystem up and running (video, audio, USB, etc.) and then move my code over.  I've run into an interesting problem with the video over HDMI.  I'm currently using the latest patched 3.8.x mainline kernel code from your repository (which I fetched yesterday). When I run the HDMI output to a DVI monitor, there isn't an issue.  The video signal comes up just fine.  But, when I run the HDMI to a device capable of audio output (i.e. an HDMI device that reports audio capability to the BBB), I don't get much of a video signal and no audio.  The video signal will flicker between the blue "no signal" screen and the actual video signal (usually staying blue most of the time). The only audio you hear are "pops" when the video signal comes up and goes away, and you'll only hear them if your speakers are turned all the way up.  I captured this in action here:


    In this particular case, I'm using a 720x480-16@60 resolution, but I've observed this with a handful of others, as well (including more traditional HDMI resolutions like 1280x720-16@60).  I didn't see this problem in the default 3.8.6 kernel of the Angstrom shipped on the eMMC when I ran it, but I don't think it had any HDMI audio, either.

    Do you think that audio over HDMI has something to do with this?  Maybe something more that needs to complement 0002-BeagleBone-Black-TDA998x-Initial-HDMI-Audio-support.patch?  Have you noticed anything similar?


    1. Hi Andrew,  work is still on going with hdmi audio, so the video regression your seeing is probably caused from one of these recent additions:


      I personally won't be able to test anything till i get back home this weekend.. I do have one Samsung hdmi/audio tv to test with, but we rely on the community to report when things do not work..


      1. I've been tinkering with this to see if I can't discover the root cause of the problem.  I'm using a video capture device that captures the HDMI stream and then routes the image to a window on my desktop PC.  Because of this, I thought that HDCP might be part of the trouble.  I couldn't find a bit-by-bit register guide for the TDA19988, so I tried my best with what I could figure out using the comments in the code.

        From the changes made by the hdmi/0002 patch, I changed the following code in drivers/gpu/drm/i2c/tda99x_drv.c:

        /* this is an HDMI monitor, so set things up a bit differently */
        reg_write(encoder, REG_TBG_CNTRL_1, 0);

        ... to this:

        reg_write(encoder, REG_TBG_CNTRL_1, TBG_CNTRL_1_DWIN_DIS);

        The flickering in the video is now gone, though I have a single pink line down the left side of the screen.  Still no audio, though.

        1. Hi Andrew,

          This change was also just pushed out:

          I won't be back till the Saturday to test it however, so give it a try..


          1. That worked like a charm.  I backed out my changes, applied the patch, and I now have non-flickering video AND audio.  Please give Darren my thanks!

            1. Sweet! Thanks for testing. I just pushed out a new kernel with that patch applied...

  7. sed: -e expression #1, char 16: unterminated `s' command

    when running wget chmod +x sudo ./


    1. From what base distribution are you running it from? What version of sed do you have installed?

      sed --version | grep version

      Beyond just Debian Wheezy I have not yet fully tested the script on every distro.

      So patches welcome:



      1. grep (GNU grep) 2.14 GNU sed version 4.2.1.

        I have Ubuntu 13.04 running on the emmc as well as on my sd card, I used an image from and then used to copy to emmc. however now updated the image so it auto detects if sd card is inserted and auto boot to SD card if present without holding the button.

        This new image runs OK on my SD however when trying to emmc using your script I get sed: -e expression #1, char 16: unterminated `s' command


        Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done

        '/boot/uboot/MLO' -> '/tmp/boot/MLO' '/boot/uboot/u-boot.img' -> '/tmp/boot/u-boot.img' sending incremental file list ./ uEnv.txt

        sent 695 bytes  received 34 bytes  486.00 bytes/sec total size is 598  speedup is 0.82 sed: -e expression #1, char 16: unterminated `s' command


        1. Thanks for the report.. I will look into when back from traveling this weekend.. As previously mentioned the script was only tested on Debian Wheezy using my images available here:

          BeagleBone Black

          So patches welcome..

          PS, my image has always supported auto detecting the sd card, wonder what took him so long to copy my image update? (wink)

          Edit: Just verified, the script successfully flashes my own 13.04 based image to the eMMC, so it's not a 13.04 regression..

          I think my script is failing as it's expecting the microSD device (/dev/mmcblk0p1) to be mounted to /boot/uboot/ which I've been doing by default for a few years...


          1. I was trying to make it easy for less technical people to adopt the BeagleBone Black and help build a software community around the Black more like the PI.  I'll compile my own kernels from GIT – I had not intended to step on any toes here, and I fully credited where I pulled the kernels from.


            1. Hi John,
              It's no big deal, I just thought it was funny as I had spent a friday afternoon a few weeks ago perfecting the image such that it would be 100% compatible with the default u-boot... (wink) Then in my mind: Wait a minute, did something break, oh i see, they sync'd with my version of u-boot before i had pushed the fix out...

              But, with regards to the sd to eMMC script, i need to test with your image, as it should work but does not. (Of course I'm on the road this week..) I'm wondering how similar your uEnv.txt is in the boot partition, as the script relies on changing the line:
              mmcroot=/dev/mmcblk0p2 ro


              1. I pulled the uEnv.txt from ArchLinix for now:

                	run findfdt; 
                	if test $board_name = A335BNLT; then 
                	  	setenv mmcdev 1; 
                		mmc dev ${mmcdev}; 
                		if mmc rescan; then 
                			setenv mmc1 1;
                			setenv mmc1 0;
                	setenv mmcdev 0; 
                	mmc dev ${mmcdev}; 
                	if mmc rescan; then 
                		setenv mmc0 1;
                		setenv mmc0 0;
                	if run loaduimage; then 
                		run loadfdt;
                		run mmcboot;
                mmcroot=/dev/mmcblk0p2 rw
                loadfdt=ext4load mmc ${mmcdev}:2 ${fdtaddr} /boot/dtbs/${fdtfile}
                	if ext4load mmc 0:2 ${loadaddr} /boot/zImage; then 
                		setenv mmcdev 0; 
                		setenv mmcdev 1; 
                		if test $mmc0 = 1; then 
                			setenv mmcroot /dev/mmcblk1p2 rw; 
                		ext4load mmc 1:2 ${loadaddr} /boot/zImage; 



                1. This scheme only places MLO, uEnv, and u-boot.bin in the FAT boot partition and does not use a RAM FS – zImage is a symbolic link to vmlinuz in the boot partition.  I backed the FAT partition down to 1MB and use FAT12.

                  1. Hi John,

                    If your not going to actually use the the fat partition, just use the "raw mode" patches on the u-boot mailing list and just use a one ext4 partition setup..


  8. Robert,

    I installed Debian Wheezy on my beaglebone black from the Demo Image successfully. I then installed LXDE ( i needed a desktop environment to develop GTK/QT apps).

    Now When my BBB starts it takes forever to load LXDE. Is there a way of boosting the loading speed of LXDE?

    Also is there a way to disable LXDE on startup ?



    1. Hi Hussam,

      For most debian desktop environments, to only install the minimal number of packages there is a 'core' debian package.

      sudo apt-get install lxde-core

      Usually lxde start-up is initiated by "~/.xsession"


      1. Robert,

        I installed both the core lxde and an xserver via this command:

        sudo apt-get install xorg lxde-core

        Now when Debian boots, it boots to console and I can now start lxde from command line with the "startx"  command. I was also able to easily vnc onto my BeagleboneBlack with the "tightvncserver"

        Thanks a million!!!!

        1. Hey Hussam,

          Did you manage to make QT work with lxde ? How did you do that ? Where did you find the toolchain ? 

          1. Michael, I haven't tried this myself on the BBB yet but you should be able to install Qt4 with this command. "sudo apt-get install libqt4-dev". This installs the Qt libraries and qmake so you can develop using Qt in pure C++ and editor of your choice. If you want to install QtCreator along with everything qt on the BBB try "sudo apt-get install qt-sdk". Not sure how responsive QTcreator will be on the BBB though. also I suggest installing libqt4-dev only if you're running Debian from the emmc because the other option can eat quite a bit of space.

            These instructions will install qt4 natively on the BBB from the apt repositories. For a QT cross development setup however i.e. build app on PC run on BBB, I highly suggest that you take a look at yocto/poky. I'm a little new to it but it seems that you have multiple automated cross-development options for developing Qt4, Qt4Embedded and GTK+ apps.

  9. Hi,

    I am new in embedded linux and beaglebone black. I want to install ubuntu 13.04 to beaglebone black.

    I tried to steps in eewiki, but when "" finishes, there is  no kernel zImage and modules under the deploy directory.

    Can you any solution for this problem?



    1. Hi Vedat,

      Can you please paste your terminal session after running "./" to so I can help debug it.


      1. Hi Robert,

        I have just compiled again and kernel zImage and modules were produced under the deploy directory.

        Thanks your interest.




        1. The screenshot after is in


          1. Hi Vedat,

            I'm sorry, but I fail to see any error in the output of my script.

            Script Complete
   [user@localhost:~$ export kernel_version=3.8.12-bone17]

            What issue are you having with it?


            1. Hi Robert,

              The problem is that zImage and modules does not folder under deploy directory. There is nothing under deploy directory. But now I successed to solve problem. I created a new file and enable arm-linux-gnueabi compiler and problem was solved.



      2. Hi Robert,

        Again I have some problem. I wonder that I need to change file. I dont change anything form file. does not produce script completed. I will add to screenshoot to soon by trying again.




  10. Hi,

    I have a BBW and BBB. GPIO and I2C codes which is written by me are running correctly in BBW. But BBB does not run GPIO and I2C codes. I have Angstrom in BBW and BBB. In addition, I will plan to install ubuntu to BBW. 

    Is there a solution ? Please help..



    Vedat KILIÇ

    1. Hi Vedat,

      Correct, when moving from the v3.2.x based TI fork, no one has yet implemented an exact replacement for "omap_mux" for device tree's. There's a couple dozen topics on this issue on the google group beagleboard email list..


      1. Hi Robert,

        Is there a way to access GPIO on BBB. In addition, Can I change kernel from v3.8.x to v3.2.x ? Is this possible ?


        1. Take a look at:

          No, I have no plans to work on adding BBB support to v3.2.x...


  11. Robert,

    I was wondering if the Debian distribution has the pinctrl kernel module that can provide us with the status of the pin mux. In Angstrom (Kernel 3.8 +)  this is typically found in the following directory:



    I couldn't find this file in the Debian root file system. Is there a way to enable it or is it simply not there ? It comes in handy to verify the state of the pin muxing on the BBB.





    1. Hi Hussam,

      It's just not mounted by default, so:

      sudo mount -t debugfs debugfs /sys/kernel/debug


      1. Robert,

        That did it! Is there a config file that i can modify to allow  me to  automount debugfs on startup?

        Thanks again!


        1. Figured it out. Added the following entry to /etc/fstab :

          # sudo mount -t debugfs debugfs /sys/kernel/debug

          debugfs          /sys/kernel/debug  debugfs   defaults   0  0




  12. Hi,

    Again I have a problem with ubuntu 13.04 on BBB. The problem is bash. When I compiled a program with arm-linux-gnueabi or installed from repository and tried to run programs, I get an error like 

    -bash: ...... : No such file or directory

    But the program is there. What is the reason of this problem and how can I solve this?


    1. Hi Vedat,

      Background: first 13.04 is "armhf", second "armel" != "armhf" as they have different linker's...

      So you've just built your application with "arm-linux-gnueabi" (aka for armel) and expecting it to just run in an "armhf" system.  So the answer to the first part, rebuild the application with "arm-linux-gnueabihf".. As far as the second problem with the repository, this must be a secondary non "ubuntu" repo correct probally also built for armel?


      1. Hi Robert,

        I solve this problem by copying /lib/arm-linux-gnueabihf/ file into /lib directory.

        Thanks for your interest.


  13. have been trying to upload Wheezy on my beaglebone black. I have no problem porting it to the micro-sd card and it boots fine with the exception that I only get control over the

    serial port and I do not have HDMI or Keyboard/mouse working.

    Using the Serial port, I then use the script to copy it to the eMMC.

    But when I poweroff and poweron the board again, the boot sequence hangs in the middle and give me a tilcdc 600s later

    Is there anything I missed ?




    1. Hi Chris,

      Before today I had never tested the "zImage" only case when moving the data on the microSD to the eMMC flash. To allow dual card operation, we need to use UUID's to name the eMMC device.  To properly boot with this, we need to also use and init file system.  I've updated the wiki page with an updated uEnv.txt file along with directions on what you need to change.  The transfer scripts also now, re-generate the init file system to ensure you have the latest version right before it's copied to the eMMC.


      1. Thanks Robert

        It works fine now.


  14. Hi,

    Now I have two problem ubuntu on BBB. First problem is to connect BBB with USB. I don't connect BBB with USB. And secondly, I added a WIFI doggle to BBB. Everything is OK, but there is a problem. I enabled auto wlan0 in /etc/network/interfaces. But when I restarted BBB, wifi does not connect to ADSL. It connected to ADSL only when I plugged to ethernet and log in. 

    How can I solve these problem?


    1. Hi Vedat,

      I don't understand your first question.  In regard to your second question it must be an error in your /etc/network/interfaces, take a look at, for hints..


      1. Hi Robert,

        Normally we can connect to beaglebone by using a usb cable. In angstrom I can connet beaglebone with ssh over usb cable. But after installing ubuntu, i dont connect beaglebone with ssh over usb.


        1. Well,

          Yes Angstrom is setup out of the box to do that.  However as currently written, I do not set it up the images listed here that way by default.  So, did you personally set up "ubuntu"'s /etc/networking/interfaces to auto connect over usb (via the usb Ethernet gadget) on bootup?


          1. Hi,

            Yes I setup this. But it does not connect (sad)


  15. Hello,

    I followed the Debian instructions and am unable to connect to the beaglebone black. Just for the sake of trying I tried to setup the USB0 device as it is done in Angstrom, with no luck. Previous to that I was thinking ( incorrectly ) that I might be able to ssh into the device over my local network. Yet thinking about it perhaps too late, there is no ssh server in the image that I am aware of. Passed that, the device shows up in my router with no local address, and means of connection is blank ( meaning its not connected ). As for the USB connection, I do not get a mass storage device notification as I do when I pull the SD card out and boot Angstrom.


    When I first power the board up, the power LED lights up. then all 4 of the LEDs to the other side of the ethernet jack light up. Followed shortly by some sequence of flashing when finally the second LED over from the ethernet jack stays lit. The green LED on the ethernet jack its self occasionally flickers t. . . for what that is worth.


    What are my options ? I really would like to avoid spending more money on a serial cable that I feel I really do not need. I do have an FTDI module, but it is a 5v module so I am pretty sure that is a no go. Any help would be much appreciated. 

    1. Hi Wiliam,

      If I'm reading your message correct, you essentially want Angstrom.

      ssh is enabled by default, if you connect the BBB's ethernet interface into a real dhcp/router/etc, you'll be able to ssh in via "ssh debian@arm".

      USB networking is not enable by default, unless you configure /etc/networking/interfaces to do that. (wiki patches welcome, and I'll add that configure option to this wiki..)


      1. Hi Robert.


        Actually no, if I wanted Angstrom, I would not have spent most of yesterday trying to get Debian to work. However, I believe I made a mistake in my configuration of the sd card image. After reading your reply to me here, and just now checking my sd card image, I am sure of it.

        /etc/network/interfaces <--- yes ooops. I will make appropriate adjustments and apprise as to how it works out. Also, I did add usb0 entry into interfaces,

        1. I had it right, that is what I get for typing before I fully wake up.


          So yeah, I am at a loss why this is not working..

          1. Hi Wiliam,

            I'm pretty close to a solution, but currently fighting udhcpd.. (my linux development box is not getting an IP from the bone)


            But it is giving me access to the boot partition over usb.


            1. Hello Robert,

              Ok, that is very nice of you, thank you. I will wait until later and check back to see what is up. Right now on the off chance I messed something up, I am starting over from scratch.

              I did the steps right I believe, but did some steps out of order thinking that not all was necessary. Also, I had to use slightly different commands a few times. As Wheezy was complaining about various things such as saving files in directories that did not already exist. Or copying files from "non existent" directories.

              This time I will try my best to do exactly as described step by step..

              1. Hi Wiliam,

                I've implemented this way in the demo console/minimal tar images.


                It's pretty intrusive to get it working at boottime, that I'm thinking of just pushing out updated images...


                1. Hello again Robert,

                  Ok cool thank you. I will give these a shot and let you know how it works out. Hopefully all I'll have to report, is that it works great (smile)

                2. Hello Robert,

                  Ok yes, I screwed up a couple of steps yesterday. When copying over the rootfs, and I believe a couple of other things. I fixed it this go around, and the bbb is happily blinking a heartbeat pattern.

                  However, when plugged into my Windows 7 machine. Im still not getting a mass storage driver notification. eth0 also still does not show up on the network.

                  usb0 of course wont work because Win7 ( x64 enterprise if thats important ) does not see the beaglebone black period.


                  Forgive me for being dense, I am a bit rusty with Linux, but how do I use the instructions / scripts that you were so kind to include today ? Specifically For usb networking. It seems what you've included is meant to work from a Linux host, which is fine. However this is something that I personally have zero experience with.

                  Thank you very much for your time Robert.

                3. Hello again Robert.

                  Some good news. I went in and poked around some more, and noticed that /etc/resolve.conf was configured wrong for my network. So I changed this to match nameserver to our router, and viola !!!

                  root@arm:~# uname -a
                  Linux arm 3.8.13-bone18 #1 SMP Wed May 15 13:48:09 MST 2013 armv7l GNU/Linux


                  Very very happy now, and so long as I have access. For me personally usb0 networking is a moot point.


                  Again, thank you very much for your time Robert (smile)

  16. Robert,

    First of all congrats for another great Wiki Page, thanks a lot for your help and support in porting Linux on ARM.


    "Robert Nelson
    Hi Vedat,
    Correct, when moving from the v3.2.x based TI fork, no one has yet implemented an exact replacement for "omap_mux" for device tree's. There's a couple dozen topics on this issue on the google group beagleboard email list..


    Do you have any plan, develop in proccess or test that can be made, to help, imporve or start porting the UART1,2,3 avaibility in the BBB with the 3.8 Kernel?

    Can we help in any way to make this possible faster? or any testing wiki that can be follow?

    Thanks a lot for your help and support.


    Again Great Job!


      1. Oh Great I am trying to patch it with the file that you link up here.

        That should be add to at line 503 of the file this way:

        ${git} "${DIR}/patches/not-capebus/0174-bone-Added-RS232-prototype-cape-DT-object.patch"


        And re copy all the files to the SD card?
        Is it a Kernel re-compilation needed, or I can just copy again the files and that will do it?
        Do I have to add the download file to the folder ./patches/not-capebus/x or it will do it automatically?

        Thank you!

        1. I also added the file:


          To the dir: ./linux-dev/patches/not-capebus/

          My guess is the patch should modified files and configs, this mean the the build_kernel script must be re-run?


          Sorry for the double question I am just investigating around here.


          Thanks a lot Robert!

          1. Hi Fernando,

            I'm not sure what your actually looking for.. As that patch is already included by default in the build script by default in the am33x-v3.8 branch.. I was merely pointing it out initially for something to look at and modify for your specific needs..


  17. Hi Robert


    I switched to Ubuntu and installed lxde. I am facing with 2 issues:

    1 - When I plug in my Bluetooth USB in the USB HUB, I loose my mouse in the login page of LXDE. I have to unplug the USB Bluetooth to get it back.

    2 - When I login, I go to an empty screen with brown background with no menu and no windows.

    Any hints on what might be the issues ?

    Thank you


    1. Hi Chris,

      In the past, the MUSB based driver has always been iffy.  Even with v3.8.x, it's best to make sure the device is plugged in at boot/power time.

      For question 2, the ubuntu forums might be a better place to ask, as there are an ulimited number of package combination users can install on these board.  In the past when running lxde i've usually done:

      sudo apt-get -y install lxde lxde-core lxde-icon-theme



  18. HI Robert

    I finally switched back to Debian and installed xfce4 and everything is fine. (With the exception of USB driver being flaky from time to time)

    I am trying to attach a very low res display (160x64) to the LCD interface. I was able to change the Framebuffer size with fbset but how to you change the display side for the LCD to be set at 160x64 ?

    Also, related to that question, how do you change the display resolution to 640x480 to be used for a display through HDMI ?



    1. Would anyone be interested in consulting work to do some optimization on Linux Beaglebone Black ?

  19. Hi there, I am trying to get the TI SGX drivers working on BBB but have had no complete success so far.  Here are the steps I have taken:


    1. Originally, I built a custom kernel / ubuntu rootfs using the instructions here: BeagleBone Black
    2. I then copied the (it seemed to link to the latest TI SGX drivers which were compiled against 3.8.x) into my linux-dev directory (the same one that I created by cloning the repo in step one) and executed the script, inspired by this (somewhat out of date?) section here:
    3. I then manually copied GFX_4.0*_libs.tar.gz to my /media/rootfs/opt directory on my SD card (in the hopes of running the "./") script once I got the freshly minted image running on the BBB.  But, the image created in steps 1/2/3 would not boot, which I believe had something to do with an incorrectly configured boot partiion/u-boot.
    4. Second, assuming my boot image was misconfigured, I tried a fresh install using using sudo ./ --mmc /dev/sdX --uboot bone_dtb (  This image worked wonderfully. 
    5. So, I thought that perhaps I could update the kernel (cd linux-dev/; git pull; ./ which produced an updated kernel zImage, etc in the deploy directory.
    6. I then re-built the SGX modules using the same script as in step 2 and copied the copied GFX_4.0*_libs.tar.gz files to /media/rootfs/opt, just as in step 3.
    7. I then moved my sdcard to the BBB, booted, logged in, confirmed that the kernel was my "custom" build – (dmsg | grep Linux).
    8. I then moved into /opt/sgx, decompressed GFX_4.0*_libs.tar.gz and ran ./  This failed with the following messages:
      1. Extracting gfx_rel_es3_armhf.tar.gz
      2. Extracting gfx_rel_es5_armhf.tar.gz
      3. Bus error
      4. Bus error
      5. Bus error
      6. sgx: Starting SGX fixup for ES0x1.x
      7. cp: cannot stat '/usr/lib/armhf/es0x1.0/*': No such file or directory
      8. cp: cannot stat '/usr/bin/armhf/es0x1.0/*': No such file or directory
      9. WARNING: could not open /lib/modules/3.8.13-bone18/modules.order: No such file or directory
      10. WARNING: could not open /lib/modules/3.8.13-bone18/modules.builtin: No such file or directory
      11. Removing any sustem startup links for /etc/init.d/pvr_init ...
      12. ...
      13. ...
      14. ...
      15. Done: Please reboot system
    9. I then rebooted (skeptically) and lsmod revealed no loaded modules.  According to the SGX_Video_Acceleration page, I was expecting, bufferclass_ti, omaplfb, pvrsrvkm.

    So anyway, that's where I'm at.  Basically my end goal is "simply" to get access to gles/gles2 drivers in order to port openFrameworks ( to the BBB.  We recently got it working for Raspberry Pi, but gl, drivers etc are distributed with their image, so it was fairly straight forward.

    Any tips folks can offer for getting access to accelerated graphics on the BBB are appreciated!  The creative coding community is eagerly awaiting the addition of the BBB to openFrameworks!


    1. Hi Chris,

      The BeagleBone Black uses the TI AM335x which uses "es8.x" graphics. That script is so far only written to build the modules for "es3" BeagleBoard OMAP35xx and "es5" BeagleBoard xM DM3730 hardware.  Take a look at line:

      and disable es3/es5 and only enable es8 for the AM335x...

      Beyond that patches welcome.. (The init script devmem2 calls need to be completely rewritten, along with /opt/*.sh)


      1. Thanks for your help Robert.  I believe I'm getting much closer now.  I am currently working with this slightly revised script which was originally copied from here.  You'll notice that I hard-coded the ES version to be 8 throughout, because I was unable to find a clear answer on what the appropriate register addresses are for the AM335x series (addresses for older boards are in this hw ref man, but I was unable to find a comparable address here or here ... if you know where to find it, then I might be able to submit a more useful, backward compatible patch).  Anyway, here are my steps so far:

        1. I copy the script into my linux-dev repo clone and run it after ./  
        2. After everything is done compiling and packaging, I copy the kernel, modules, etc over to the SD card and also copy the linux-dev/deploy/GFX_4.09.00.01_libs.tar.gz over to /opt/sgx on my SD Card.
        3. Then I place the card in the BBB and boot up.  
        4. I cd over to /opt/sgx, run sudo tar xf GFX_4.0*_libs.tar.gz and sudo ./ which now completes successfully.
        5. Then I reboot.
        6. Upon rebooting, I can now see that omaplfb and pvrsrvkm are loaded, but not bufferclass_ti.
        7. A quick look at my dmesg output right after boot reveals this.
        8. A sudo modprobe bufferclass_ti gives me this via dmesg.
        9. Also, a lsmod after step 8 reveals that bufferclass_ti is loaded.
        10. Then I cd to /usr/bin/armhf/es8.0 and run ./eglinfo (or any for that matter) and I get 
          Unable to initialise egl
          egl error 'EGL_BAD_ALLOC' (0x3003)

        So that's where I am currently ... so close I think.

        Thanks for your help and please excuse any of my superfluous observations.  I'm still finding my way around a bit. 



  20. I have a few questions:


    1- I am using Wheezy and during boot all the message go to the serial port. Is there a way to have them go to the hdmi display ?

    2 - How can I add my own splash screen at boot ?

    3 - How can I change the display resolution to a custom setup ? (i.e.: 640x480)



    1. Hello Chris.  I have done some work with adding splash screens into my BB-xM projects, so I think I can offer you some advice on the items that you have mentioned.  Both the kernel and bootloader are going to have to be modified to accomplish what you want to do.  If you require a splash screen immediately after power-up, you'll need to rebuild your U-Boot bootloader with splash screen support.  Take a look at .  The build configuration file in question is in include/configs/am335x_evm.h in the U-boot source tree.

      Once the kernel begins bootstrapping, the easiest way that I've found to add a splash screen is to replace the 224-color Tux logo in the upper-left corner with a custom image that is the full size of the screen, and then make sure that no text or cursor is drawn to the screen.  The logo in question is in drivers/video/logo/logo_linux_clut224.ppm in the kernel source tree.  This is the file that you'll need to replace with your own custom splash screen image.  To make your new "kernel splash screen", follow these steps:

      1. Create your splash screen image at the full screen resolution size.  Save it as a 256-color (indexed) PNG file (say, splash.png).
      2. Execute the following command: pngtopnm splash.png | ppmquant -fs 223 | pnmtoplainpnm > logo_linux_clut224.pnm
      3. Replace the logo_linux_clut224.pnm in the kernel source with the one you just made.
      4. Rebuild the kernel.  Make sure that the bootup logo is turned on in the kernel (Device Drivers > Graphics Support> Logo configuration > Bootup logo (with standard 224-color Linux logo selected)).

      You now have a "splash screen" in your kernel.  To avoid having the boot text on the screen (or that annoying blinking cursor) on top of your splash screen add the following kernel command line arguments to your uEnv.txt: "console=bank vt.global_cursor_default=0".

      Now you will have your bootloader splash appear, then disappear, then the kernel "splash" appear during boot.  If you want it seamless, you'll have to do a little bit of kernel hacking.  Basically, you're taking the setup register settings of video system in the kernel and then moving it into the initialization code of the bootloader, then you're commenting out those settings in the kernel.  You're moving all video setup out to the bootloader.  You can get these registers by checking out the debugfs output of the video driver once Linux is up and running, but this is a bit more advanced stuff and probably not worth your effort.  If you can handle the splash appearing, disappearing for a moment, and then reappearing again, the method I mentioned works fine.

      For setting a custom resolution, you'll pass that in as the "video" kernel command line argument. Like "video=720x480-16@60".  Typically, if you are using a tiny LCD screen that is a fraction of that, the upper-lefthand corner of the framebuffer is what is displayed on the LCD if it is your primary display.  But, it really depends on the details of your device.

      Here is a clip of one of my projects in action that uses a custom "kernel splash screen":

      This is using the BB-xM S-Video out, but the timeframe is about the same as what you'd see on the BBB.  The NTSC test pattern bars are in the bootloader (I didn't add the custom splash bootloader screen in this one), and the BeagleSNES splash is the replaced kernel logo.  You'll see that the gap between the two isn't really very long.

      1. Hi Andrew,

        I tried to modify u-boot. I run into a few problems.

        1 - I compiled it with the CONFIG_SPLASH_SCREEN and then tried to upload the bmp file but when I run the tftp command I get the following:

        U-Boot# tftp 100000 splash.bmp
        link up on port 0, speed 100, full duplex
        Using cpsw device
        TFTP from server; our IP address is
        Filename 'splash.bmp'.
        Load address: 0x100000
        Loading: *#data abort

        MAYBE you should read doc/README.arm-unaligned-accesses

        pc : [<9f393aa4>] lr : [<9f39ab70>]
        sp : 9f238d70 ip : 00100000 fp : 9f239998
        r10: 00000000 r9 : 9f3ae510 r8 : 9f238f40
        r7 : 000005bc r6 : 9f3ad36c r5 : 000005bc r4 : 00000042
        r3 : 00000000 r2 : 000005bc r1 : 9ffee9ae r0 : 00100000
        Flags: Nzcv IRQs off FIQs on Mode SVC_32
        Resetting CPU ...


        2 - Also in the doc it says: This will also implicitly enable U-Boot Bitmap Support. But it does not seem to. WHen I run help bmp, it says 

        U-Boot# help bmp
        Unknown command 'bmp' - try 'help' without arguments for list of all known commands

        I also tried to add CONFIG_CMD_BMP in u-boot but the compilation failed stating that CONFIG_LCD or CONFIG_VIDEO was not declared. I then added CONFIG_LCD but I guess there were probably other parameters to add and the compilation failed again


        1. Bitmap and splash screen support are dependent upon the video subsystem.  You must enable the video subsystem (i.e. set up the video registers and get the display running) prior to displaying a splash screen.  The example address of 0x100000 to load the bitmap that you are using is far too low in memory, which is why you are getting that error.  I was placing my splash screen at 0x80500000 on the BB-xM. The address on the BBB will need to be higher than 0x80000000 and not conflict with the kernel, initrd, or dtbs addresses specified in the uEnv.txt. 

          I defined CONFIG_VIDEO in the configuration header for the BB-xM to turn on my video support, and then I added additional register settings into the bootloader to set the resolution that I wanted.  You'll set the base address of the framebuffer register setting to the address that you loaded the splash screen to (i.e. 0x80500000).

          For the BBB, try taking this approach:

  21. USB hotplug seems to not be working with 3.8.12-bone17 (have not checked 3.8.12-bone18 yet).  I want to say I recall it working before in the 3.8 series.  A reboot is required when changing devices.

    1. The USB bus needs to rescan after the device is removed, but this is not done automatically.  I have a userspace workaround for this, which you can see here:!category-topic/beagleboard/beaglebone-black/nuyyVDhU6bw

      Basically, execute the following command to rescan the bus: cat /dev/bus/usb/001/001 > /dev/null

      This should get you by until hotplugging gets sorted out in the kernel.

      1. Just for reference, here is the patch (hack just to make it work) that enabled usb on the v3.8 branch.

        Issuing "lsusb" should also re-scan the bus.


        1. Using lsusb never worked for me, even though the patch mentions that.  It will only list the host controller in the lsusb output, but won't actually rescan.  Maybe some later patch is blocking lsusb from doing a proper rescan?  Anyway, cat'ing out the usb bus device will actually trigger the rescan.

        2. Using lsusb does not work for me either, but Andrew's suggested cat /dev/bus/usb/001/001 > /dev/null does, so that's a very good workaround.

  22. I'm getting a "permission denied" message when I try to echo a dt overlay file to capemgr slots as the "ubuntu" user. I'm using the 3.8.13-bone18.1 I built yesterday. The sd image works as expected but when I try to dynamically modify the device tree using the example at the link, I get the permissions error when I execute 

    echo pinctrl-test-7 > $SLOTS. (SLOTS = /sys/devices/bone_capemgr.9/slots

    The command cat $SLOTS gives the expected output.

    File permissions down the /sys path look good for root to write.

    Is there some set up I'm not doing correctly? I believe I was able to capemgr files earlier last week.



    Bob Stewart



    1. Hi Bob,

      You need to run that command as root, in ubuntu you can wrap the command under sudo:

      sudo sh -c "echo (something) > (somewhere)"


      1. Thanks! Worked perfectly.


    2. How did you get the folder "bone_capemgr.9"? I did not get this folder when I finished Robert't tutorial?Have you done something else to  get bone_capemgr.9 ? Thank you for your response in advance.

  23. Are there any known issues with PRU support and uio_pruss in the 3.8 series?

    I have a xenomai kernel built based on 3.8.13-bone18

    the uio_pruss module loads fine, but there are no /dev/uio* devices and  /sys/class/uio/uio0/maps/map0/addr  doesnt exist, which leaves me a bit puzzled



    1. well it seems I need to insert a device tree fragment; I was referred to

      the issue I'm left with - the device-tree-compiler package in the wheezy package stream seems to be too old to compile this, it is missing some '-@' command line flags support

      any suggestions how to build a recent dtc on a wheezy rootfs? I am a tad lost with references to Angstrom and Yocto builds which I'd try to avoi


      1. I had the same problem on Ubuntu. Their  is a Jan. 4 patch to dtc that adds the -@ option --

        I found a git repository for dtc, applied the above patches and did a native compile on my BBB.


        Bob Stewart

        1. I eventually figured that KERNEL/scripts/dtc is what contains the useful stuff, so I build that on the target and then the dts->dtbo compilation process works fine

          that said, I'm still unsuccessful with the dt fragment referenced above

          the insertion process works fine, and /dev/uio* appears, but my PRU examples still dont work; I assume the dt fragment above addresses only ppart of my problem


  24. Hi Robert,


    I updated today the script and I am getting this error:

    + Detected build host [Ubuntu 12.04.2 LTS]
    Debian/Ubuntu/Mint: missing dependicies, please install:
    sudo apt-get update
    sudo apt-get install libncurses5-dev
    * Failed dependency check

    But when I fo the apt-get install, it say (as I expected)

    libncurses5-dev is already the newest version.


    1. Weird, wonder why that's failing now for you... This section of the script should detect your library:

      What does this return?

      dpkg-architecture -qDEB_HOST_MULTIARCH

      BTW: Now that we are in the post-multi-arch world of ubuntu/debian, I pushed a patch that just checks with dpkg to see if libncurses5-dev is installed..


      1. I've seen this same problem.  It is because the Ubuntu 12.04 distro that I am using does not add the arch onto the end of the package name.  My libncurses5-dev package is named just that.  There is no "i386" tacked onto the end of the package name (for my i386-linux-gnu system).  I just comment out line 196 (the "return 1") in tools/ for the missing dependency check and everything works OK.

  25. I'm trying to boot Ubuntu and have followed the wiki through a couple times with no luck.  I set up the SD card, pop it in the BBB and power up.  The first three LEDs light up and stay on and then nothing changes.  I have a serial cable on order, so can't debug much further right now.  Is there anything obvious I might be missing?

    1. Might be worth mentioning that my development server is running Ubuntu Server 13.04.  The SD card I'm using is a PNY 8 GB, Class 4.

    2. Hi Josh,

      So, the led's are on gpio: 53 -> 56... LED 3 is on 55, so you are effectively right here:

      I'm guessing you didn't define uenvcmd in your uEnv.txt...


      1. Hey Robert,

        Thanks for the pointer to the u-boot code, definitely nice to know what's going on during the boot.

        Turns out uenvcmd was set properly, but it wasn't happy with the kernel. I must have changed something critical during the build without realizing it. I've rebuilt using the as-is settings and everything is now fine.

        Cheers, and thanks for all the hard work here.


  26. Hi,

    Firstly, thank you Robert for your work. It is people like you who are responsible for the explosion of interesting projects for this type of board.

    I installed the latest Raring image using these instructions:

    This worked well, and I was able to boot Ubuntu with no problems. What I really want is a GUI desktop, so I ran

    /bin/bash /boot/uboot/tools/ubuntu/

    This seemed to complete successfully, though there were several instances of a grep not finding the file it was supposed to examine. When I rebooted, the greeter appeared as expected, but when I logged in, all I got was a blank background with a mouse pointer, but no desktop. Can anyone point me to a solution for this problem?

    Thanks in advance,


    P.S. One thing I noticed: If I try to run lshw, it just says "Bus Error". Is this expected?


  27. I am having issue with the device tree overlay. I have read many posts on the web but nothing really explaining clearly the process of pin mixing with BBB.

    What I am trying to do is to enable the PRU fast IO r30[7:0] and r30[15:14]

    I have built the following overlay but it does not seem to work at all.

    * pru dts file cape-bone-pru-00A0.dts

    compatible = "ti,beaglebone", "ti,beaglebone-black";

    /* identification */
    part-number = "BB-BONE-PRU";

    fragment@0 {
    target = <&am33xx_pinmux>;
    __overlay__ {
    pruicss_pins: pinmux_pruicss_pins {
    pinctrl-single,pins = <
    /* PRU Pins */
    0x190 0x05 /* conf_mcasp0_aclkx.pr1_pru0_pru_r30[0], OUTPUT_PULLUP | MODE5 */
    0x194 0x05 /* conf_mcasp0_fsx.pr1_pru0_pru_r30[1], OUTPUT_PULLUP | MODE5 */
    0x198 0x05 /* conf_mcasp0_axr0.pr1_pru0_pru_r30[2], OUTPUT_PULLUP | MODE5 */
    0x19C 0x05 /* conf_mcasp0_ahclkr.pr1_pru0_pru_r30[3], OUTPUT_PULLUP | MODE5 */
    0x1A0 0x05 /* pr1_pri_r30[4] */
    0x1A4 0x05 /* conf_mcasp0_fsr.pr1_pru0_pru_r30[5], OUTPUT_PULLUP | MODE5 */
    0x1A8 0x05 /* pr1_pri_r30[6] */
    0x1AC 0x05 /* conf_mcasp0_ahclkx.pr1_pru0_pru_r30[7], OUTPUT_PULLUP | MODE5 */
    0x030 0x06 /* gpmc_ad12.pr1_pru0_pru_r30[14], OUTPUT_PULLUP | MODE6 */
    0x034 0x06 /* gpmc_ad13.pr1_pru0_pru_r30[15], OUTPUT_PULLUP | MODE6 */

    fragment@1 {
    target = <&ocp>;
    __overlay__ {
    test_helper: helper {
    compatible = "bone-pinmux-helper";
    pinctrl-names = "default";
    pinctrl-0 = <&pruicss_pins>;
    status = "okay";


    Anyone can guide me on making this working ?

    Thank you

    1. Hi Chris,

      First make sure you've patched your device tree compiler with:

      I've not documented this procedure yet..  Essentially you'll need to download from: , patch and build...


      1. Robert,

        I did download dtc and apply the patch. (I actually had to modify the patch because if failed a line 97 and 119 of dtc.c - I managed to get the dtc binary.

        I therefore get a dtb out of the above dts. I move the dtb to /lib/firmware and I run an echo to $SLOTS. The overlay is actually loaded when I check with cat $SLOTS

        but when I check the pins with:

        cat $PINS | grep 830   ($PINS -> /sys/kernel/debug/pinctrl/44e10800.pinmux/pins), I get "pin 12 (44e10830) 00000027 pinctrl-single" instead of 00000006

        Something does not seem to be working somewhere. Any hints ?


        1. Anything interesting happening in dmesg?

          I was having a similar result when trying a basic pinmux test (ending up with 00000027).  I had luck when  I used the version of dtc that comes with the kernel source in "${KERNEL_SOURCE}/scripts/dtc/dtc". (check out the thread over at!topic/beaglebone/ADzlEP7s2Wk where Patrick showed me the light!)

          This will sound a bit silly, but have you rebooted the board since any rebuilds on the overlay?  I rebuilt a couple times and copied over the file, only to have the same result (even though I was removing the overlay between builds.)  Once I rebooted, things worked just fine.



          1. I tried to use the version that come with the Kernel Source but it did not have the @ option to create overlay. I try to apply Robert's patch but it failed.

            Any other possible options ?

            1. Did you pull the latest kernel source?  I thought the kernel source version of dtc I was using had the @ option already. 

              Make sure it's running the kernel source version of dtc and not one already installed in the system.

              What is the output of dmesg after you load the overlay?

              Are you compiling on the BBB or on a development machine?

            2. Hi Chris,

              Yeah the patch doesn't apply cleanly to mainline dtc.  I just put a script together that clone's dtc, checks out the same git version as angstrom and applies the original patch.

              chmod +x


              1. Thanks Robert

                This DTC works perfect. 


                I am trying to redirect the HDMI audio pin to be used for PRU but I am facing a rejection stating that I cannot overlay on top of another overlay (I guess?)

                Is that true ? How can I disable the HDMI Overlay then


                [ 65.959264] bone-capemgr bone_capemgr.9: part_number 'cape-bone-pru', version 'N/A'
                [ 65.959653] bone-capemgr bone_capemgr.9: slot #6: generic override
                [ 65.959709] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 6
                [ 65.959762] bone-capemgr bone_capemgr.9: slot #6: 'Override Board Name,00A0,Override Manuf,cape-bone-pru'
                [ 65.963510] bone-capemgr bone_capemgr.9: slot #6: Requesting part number/version based 'cape-bone-pru-00A0.dtbo
                [ 65.963580] bone-capemgr bone_capemgr.9: slot #6: Requesting firmware 'cape-bone-pru-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
                [ 65.967534] bone-capemgr bone_capemgr.9: slot #6: dtbo 'cape-bone-pru-00A0.dtbo' loaded; converting to live tree
                [ 65.967978] bone-capemgr bone_capemgr.9: slot #6: #2 overlays
                [ 65.987429] omap_hwmod: pruss: failed to hardreset
                [ 65.993911] pinctrl-single 44e10800.pinmux: pin 44e109a8 already requested by 48038000.mcasp; cannot claim for 4a300000.pruss
                [ 66.006131] pinctrl-single 44e10800.pinmux: pin-106 (4a300000.pruss) status -22
                [ 66.013920] pinctrl-single 44e10800.pinmux: could not request pin 106 on device pinctrl-single
                [ 66.037886] pruss_uio 4a300000.pruss: pins are not configured from the driver
                [ 66.055426] bone-capemgr bone_capemgr.9: slot #6: Applied #2 overlays.

                1. I managed to remove the HDMI overlay by changing the am335x-boneblack.dtb in /boot/uboot/dtbs and removing the hdmi section.

                  The hdmi pin can now be muxed.

                  It looks like you cannot overlay on top of already pins that have been already configured through another overlay.

  28. This is the dmesg

    [ 36.499705] bone-capemgr bone_capemgr.9: part_number 'cape-bone-pru', version 'N/A'
    [ 36.499888] bone-capemgr bone_capemgr.9: slot #6: generic override
    [ 36.499939] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 6
    [ 36.499992] bone-capemgr bone_capemgr.9: slot #6: 'Override Board Name,00A0,Override Manuf,cape-bone-pru'
    [ 36.502746] bone-capemgr bone_capemgr.9: slot #6: Requesting part number/version based 'cape-bone-pru-00A0.dtbo
    [ 36.502815] bone-capemgr bone_capemgr.9: slot #6: Requesting firmware 'cape-bone-pru-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
    [ 36.507781] bone-capemgr bone_capemgr.9: slot #6: dtbo 'cape-bone-pru-00A0.dtbo' loaded; converting to live tree
    [ 36.508423] bone-capemgr bone_capemgr.9: slot #6: #2 overlays
    [ 36.526493] omap_hwmod: pruss: failed to hardreset
    [ 36.532366] bone-capemgr bone_capemgr.9: slot #6: Applied #2 overlays.
    [ 36.577555] pinctrl-single 44e10800.pinmux: pin 44e10990 already requested by 48038000.mcasp; cannot claim for 4a300000.pruss
    [ 36.589674] pinctrl-single 44e10800.pinmux: pin-100 (4a300000.pruss) status -22
    [ 36.598197] pinctrl-single 44e10800.pinmux: could not request pin 100 on device pinctrl-single
    [ 36.609366] pruss_uio 4a300000.pruss: pins are not configured from the driver


    It looks like I cannot overlay and change the muxing pins of the Audio HDMI for some reasons.

    I believe I have the latest kernel source but no @ option on my linux-dev

    I tried to compile on the dev machine but I could not apply Robert's patch so I downloaded dec to BBB from Robert's link and modified the Robert's patch to make it work on BBB.


  29. Hello Robert,

    I have two things to report, and a possibly a question to ask.

    First, I installed open-iscsi, in hopes of setting up a partition through an iSCSI target on our network here( to keep from needlessly writing to a flash devices ). apt-get install open-scsi worked fine, as did /etc/init.d/open-iscsi restart. However when i issue iscsiadm -m discovery -t st -p

    ( being the iSCSI target ip ) I get the following error message.

    root@arm:~# iscsiadm -m discovery -t st -p
    iscsiadm: can not connect to iSCSI daemon (111)!
    iscsiadm: Could not scan /sys/class/iscsi_transport.
    iscsiadm: Could not scan /sys/class/iscsi_transport.
    iscsiadm: Could not scan /sys/class/iscsi_transport.
    iscsiadm: iSCSI driver tcp is not loaded. Load the module then retry the command.

    iscsiadm: Could not perform SendTargets discovery: iSCSI driver not found. Please make sure it is loaded, and retry the operation


    root@arm:~# lsmod

    Module Size Used by
    nfsd 234170 2
    exportfs 3701 1 nfsd
    usblp 10432 0
    bnep 10407 2
    rfcomm 30970 10
    btusb 11538 0
    bluetooth 190298 24 bnep,btusb,rfcomm
    rfkill 18341 2 bluetooth

    So It would seem that the kernel module iscsi_tcp is missing. In hopes that this was possibly a menuconfig option, I created a new setup following the instructions from the start ( to keep my previous build intact). Where I ran into the second issue.First on this issue, the script downloads yet another copy of linaro. Same version as the one I had already downloaded in the first steps of this guide. Secondly on this issue the script fails with following message.

    + Detected build host [Debian GNU/Linux 7.0 (wheezy)]
    scripts/gcc: Using: arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) 4.7.3 20130226 (prerelease)
    Copyright (C) 2012 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    debug: CC=/home/william/debian-iSCSI/linux-dev/dl/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-
    This script relies heavily on git, and will fail if are not defined.
    git config --global ""
    git config --global "Billy Everyteen"


    Anyhow, this last issue is not really all that important to me personally, as I just duplicated the old setup I had, then used that. However, it does seem to be broken, . . .


    Is there some way I can get a resolution with open-iscsi ? Meaning, I would not mind fixing this myself, but have not found enough information on the internet yet, to fix this problem. I've even looked through the APT packages available, and nothing seems to be what I need to either install or build the iscsi_tcp kernel module. Is there something else I am missing ?


    Oh, one thing I just found:

    root@arm:~# find / -name iscsi_tcp*

    Command was issued on the BBB, files are on my cross dev system ( shared nfs /home ). Is it possible for me to correct this ? If so how ?

    1. Hi William,

      I'm really not sure how I can explain the "./" error message any more then what it actually says:

      This script relies heavily on git, and will fail if are not defined.

      After that error message I give you two links (both to that explain what YOU need to do, along with a hint to what git command YOU need to run on your system.  As I don't know your NAME & EMAIL...  

      Honestly, it may not be important to you, but it only takes about 10 seconds of your time to complete.  It's also the only way to support newer versions git, such as the version found in Ubuntu 13.04 (Raring) and thus any newer release down the road.

      So after you've cleared that up, just enable "CONFIG_SCSI_ISCSI_ATTRS=m / CONFIG_ISCSI_TCP=m" and please report back if it still boots, then i'll push the change by default. Patch below:

      diff --git a/patches/defconfig b/patches/defconfig
      index 4ecb113..73c90b0 100644
      --- a/patches/defconfig
      +++ b/patches/defconfig
      @@ -1543,12 +1543,12 @@ CONFIG_SCSI_SCAN_ASYNC=y
       # CONFIG_SCSI_SPI_ATTRS is not set
       # CONFIG_SCSI_FC_ATTRS is not set
      -# CONFIG_SCSI_ISCSI_ATTRS is not set
       # CONFIG_SCSI_SAS_ATTRS is not set
       # CONFIG_SCSI_SAS_LIBSAS is not set
       # CONFIG_SCSI_SRP_ATTRS is not set
      -# CONFIG_ISCSI_TCP is not set
       # CONFIG_ISCSI_BOOT_SYSFS is not set
       # CONFIG_LIBFC is not set
       # CONFIG_LIBFCOE is not set


      1. Hello Robert,

        Everything seemed to compile fine. However I am stuck without an uSD -> SD card adapter.for a while. In the meantime I'll have to wait until I either get my adapter back, or think of a way to get the kernel / kernel modules onto the uSD card.

        Being new to git . . . all I can say now is . . .d'oh! I had suspected it might have been that, but the debug message threw me off. After that I was thinking that I would have to make a github account or something, but was not sure. Thank you ! 

      2. Hello again Robert.

        It works, and works dahm well. I am very impressed with the speeds the onboard Ethernet is capable of on the bbb.

        11.6MB/s writes, 11.7MB reads according to dd bs=1024k count=2000


        Again, thank you very much for taking the to work on these Debian images. I have always been very impressed with how well Debian has run on x86 for me in the past, now am even more impressed with how well it runs on ARM.Very very glad some one such as yourself takes the time to get all this working.!!!

  30. Wow, the latest 3.10 kernel can boot every board with the .dtb system?  Incredible!

    1. That's the direction I'm heading... Although the omap4's "OMAP4_ERRATA_I688" is still getting in the way...

      But right now my v3.10.x branch is booting on omap3/omap4/imx5x/im6x...


  31. Hi Robert,

    we'd need some basic advice on packaging and cross-building packages

    Background: the LinuxCNC package which now works fine on a BB, using a Xenomai-patched version of 3.8.13-bone20 - see .

    Right now we're using one of your wheezy images as a base for the SD image for users.

    We are about to roll a new SD image, and Charles suggested to look into omap-image-builder.

    I am lacking the basics as for the environment needed, would that happen cross on say an x86 box I assume?

    what would be the suggested procedure to cross-build packages for bb/debian ? (so far we've built on-target only but thats a bit tedious longterm)?

    A question I cant assess: do you think it is possible to slip in the xenomai-patched kernel into a major distro, like the debian arm wheezy stream? Does that make any sense? or should we plan to stay 'outside' and run our own package stream?

    thanks in advance,



    1. Hi Michael,

      That's very cool and I'm glad someone has Xenomai working!

      So running omap-image-builder... At this point it's really only tested on Debian Wheezy/Jessie with only amd64/armhf hardware.  You'd be a little surprised to see a beaglebone with an external usb harddrive can generate an image faster then a most dual/quad cores x86's...

      Btw: i've tried to make omap-image-builder as generic as possible, but every once in a while a non-generic thing gets pulled in, so let me know if something is not generic enough.


      I'm also 'outside' ubuntu and debian.  My goal is that eventually my kernel stuff gets upstream and then eventually ends up their kernel images.. So to help other users out, I do have a lots of spare cycles since replacing my main build machines with quad core cortex-a9's.. (the dual/single are still running, just not doing much.)

      So with just:

      • kernel tag
      • kernel patch (http address to patch)
      • kernel config (http address to config)
      • distro release
      • internal kernel name (bone20)

      I can push out a native kernel deb to in about 4-5 hours... (just like you see here: )

      First idea, setting up a github repo that you guys can push that info too.


      Lucky i've always found a *.deb package, but i need to look into this again myself, as i need to find a way to package gateone in a deb for easy installing..

      So, what's your thoughts, would that help?


      1. Robert,

        thanks for your offer, that would be super helpful!

        Right now I am building the Xenomai kernel cross on my x86 box, after an initial vanilla build from your linux-dev repo on github; from there on it's applying two platform patches, the xenomai patch proper, plus a modified kernel config, then tools/

        We'll definitely take you up on the offer - I assume you suggest cloning your linux-dev repo and add the patches and kconfig there in an appropriate branch? or should we just provide files as suggested on fixed http locations? I assume the former be more robust because we can try in advance in existing linux-dev setting, and suggest picking up the branch; but either way is fine. If we clone your repo, that would have advantages for support for us - we can point users to an existing repo and suggest to nail issues themselves.

        How would I insert patches into the linux-dev structure and applied in a certain order post your vanilla build?

        The xenomai patches are stable  so far, still I need to go back to the xenomai list as the integration of the patch is still in flux, and get advice how to proceed.

        Two related issues:

        • Koen mentioned an RT-PREEMPT patch in the (I assume Angstrom) pipe; we'd be interested in a kernel based on that work (once finished) as well since LinuxCNC runs on either kernel nowadays and an extra option is a bonus
        • yesterday's  '3.8: add DT GPIO helper' patch (821c3a6) would be very useful for use, but as I understand the process this will show up in a subsequent -boneXY tag without me asking?

        we really appreciate your willingness to help!




      2. omap-image-builder question: do I get this right - this works fine on a bb proper (with external storage) and thats what you suggest to do?

        that option wasnt clear to me, I assume cross on x86 is the way to go


      3. meanwhile I've read through the patch logic in linux-dev.git and I think I can wire in the patches for the xenomai build so it delivers in one go. I'll have a stab at it.


        1. Hi Michael,

          I just pushed another re-sync to linux-dev, so that patch from koen should be integrated.

          Considering the size of the v3.8 fork, i was thinking merging back into linux-dev would be a pain, so as long as you can generate the needed files and post them somewhere that would work better.. I pushed a farm control tree here: i'll give you push access if you have a github account.. Hopefully I'll find time later today to push the initial stuff/docs that will explain the syntax. (on the road today again)

          omap-image-builder: yeah it runs better on arm hardware then x86/qemu..


          1. > I just pushed another re-sync to linux-dev, so that patch from koen should be integrated.

            would that be a 3.8.13-bone21 tag? (I dont see that)

            I think 3.8.13 is currently the highest commit that xenomai patch works for


            1. Hi Michael,

              I'm thinking i'll tag bone21 on friday/saturday as my lcd3/lcd7 for the original beaglebone are at home.. (new features of this sync)

              I don't think greg is planning to push a 3.8.14


              1. perfect, expectations managed (wink)


          2. Hi Robert,

            putting together a branch of linux-dev.git for xenomai builds - I'm trying to cross-build debs based on linux-dev.git, and run into the following error ( and tools/ work fine.

            mah@mah2:~/bb38/linux-dev$ tools/

            + Detected build host [Debian GNU/Linux 7.0 (wheezy)]


            scripts/gcc: Using: arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) 4.7.3 20130226 (prerelease)


            `.config' -> `/home/mah/bb38/linux-dev/patches/defconfig'


            make -j16 ARCH=arm KBUILD_DEBARCH=armhf LOCALVERSION=-bone20 CROSS_COMPILE=/home/mah/bb38/linux-dev/dl/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf- KDEB_PKGVERSION=1.0cross  deb-pkg


            ERROR: object '' from LD_PRELOAD cannot be preloaded: ignored.

            make KBUILD_SRC=

            ERROR: object '' from LD_PRELOAD cannot be preloaded: ignored.



            does this ring a bell? happens to me both using and tools/rebuild_deb.s


  32. Hi Robert

    I have tried to install the  Debian for Beaglebone Black from this page  I have used the github image that had GNOME embedded.

    I can get it running however when it get to the point where it uses the network it has issues. I have looked through the logs and it says that the DHCP cannot find the gateway.

    I can set all of the info..   IP  Gateway  DHCP  DNS

    I can pink internally, but cannot ping externally at all. Nor can external ping in.  I also cannot ping to which is local.
    When looking at the DMESG and Log there seems to be a lot of issue getting a response from eth0

    However if I slot in another SD-Card with a non gnome version of Debian it works.

    I am planning to use the Beaglebone for SimpleCV  only. Sorry - I am not a Unix person (well I was but that was 30 years ago and pre Linux (smile), if this was Xenix then I'd have a chance)


    1. Hi David,

      Can you please expand on this "another SD-Card with non gnome version of Debian it works" are they different kernel versions, or what?  Please also remember, due to the shear number of "window managers" I just do not have the resources to test every combination of packages. (After gnome 2.32, I've stayed far/far away!)  My main focus is the kernel and base root file system, anything beyond that is sometimes really beyond me. (wink)


      1. Hi Robert

        Sorry I have this  debian-7.0.0-console-armhf-2013-05-29  on a 4gb SD-Card.  It boots fine and I can access the net

        When I load this   git://  and put it onto a 4gb sd card I cannot connect to the network. All observations in original post  are from this.

        Many many thanks for you valuable time and quick response


        1. Hi Dave,

          Yeah the 'netinstall' should give you warning about the on-board ethernet not getting an address from the dhcp server.  No solution yet..


          1. Hi Robert

            I found this file in your github area


            Can you tell me how I can use this to install this netinstall using a USB Ethernet adaptor

            This is the install I would like to use


            As referenced in the conf file I am having trouble with the DHCP

            conf_warning="ONBOARD Ethernet: dhcp ip retrieval is failing, please use external usb-ethernet during initial install till it can be fixed."

            I will also be using a 8gb card so I hope this will use all of the card. Most images I have directly downloaded only use 4gb and I quickly run out of space during the install of windowing environs etc.


            Many thanks


            1. Hi Dave,

              Just plug in any "usb-ethernet" (davcon/asix/etc.) usb dongle. If you need the usb keyboard, make sure to use a usb 2.0 hub and plug both devices into it..  During the netinstall network setup, just select eth1 and it should get an ip just fine over dhcp (the dhcp issue is just with the 3.8 kernel, cpsw driver, and debian-installer dhcp tool)..


  33. Hi, Robert

    First of all I would like to thank you for all your work on making the BBB more useful and accesible to everybody.

    I've been having a lot of problems with a BBB project: I need to make the BBB emulate a USB keyboard over the USB client port, so it can send certain keystrokes to a Windows machine. I don't have a lot (if any) experience manipulating the Linux Kernel, so all the indications I've been trying to follow concerning the activation of the HID Gadget modules in the Kernel have led me nowhere, even more so when the BBB needs a "special", so to say, compilation of the Kernel.

    I'm currently working on getting it done in Debian, but any pointers you (or anyone who watches this page) could provide about it in Debian, Armstrong or whatever, would be greatly apreciated.

    Hope this doesn't sound very silly, but I'm stuck with this and really need the help to move the project forward.


    Thank you and regards.

    1. Being a bit more specific, if I would want to use the typical example of gadget hid usage from:

      Where should I add the code to support the platform device in the BBB? I found indication that, for the Beagleboard it would be added in KERNEL/arch/arm/mach-omap2/board-am335xevm.c, but that file doesn't exist in the BBB 3.8.13-bone20.1 kernel I just built using the instructions from this page. How would this work for the BBB?


      On the other side, I compiled the kernel activating the Gadget Filesystem and support as modules for Gadget HID, is this correct? I suppose that activating the Gadget Filesystem should allow me to use gadgetfs in userspace (since "mount -t gadgetfs gadgetfs /dev/gadget" returned "Unknown filesystem" before).




      1. Hi Alvaro,

        With the recent conversion to device-tree, I don't see a quick way to do this.  Someone is going to have to make the usb gadget drivers device tree aware...

        Gadget Filesystem is enabled by default..

        cat patches/defconfig | grep GADGET
        # CONFIG_USB_GADGET_MUSB_HDRC is not set
        # CONFIG_GADGET_UAC1 is not set

        and it mounts just fine with:

        sudo mount -t gadgetfs gadgetfs /dev/gadget


        1. Thank you for your answer, Robert.

          Of course, I wasn't taking into account the Device-Tree conversion. I will abandon that route then, my skills aren't up to it.

          About the gadgetfs, you are absolutely right about it being activated by default, and my patch file is, of course, just like you showed. But even then, It just doesn't work for me. I can modprobe gadgetfs just fine, but mount -t gadgetfs gadgetfs /dev/gadget will still fail with "mount: Unknown filesystem type 'gadgetfs'", even taking into account that lsmod shows gadgetfs as correctly loaded.

          Looking into dmesg, the error message returned with the mount command is:

          [ 374.854708] couldn't find an avaliable UDC

          So maybe the problem is that the correspondant UDC driver is not loading or present? As I said, I'm no expert in this questions, but some references I saw suggest that when doing modprobe gadgetfs, the UDC driver should load too (omap_udc in this case?), but in my case, it will only load gadgetfs (dmesg only shows "gadgetfs: USB Gadget filesystem, version 24 Aug 2004". So, Am I getting ths right? What am I missing/doing wrong?

          Regards, and thank you again.

  34. Hello Robert.


    I am not sure if here, or the google groups is the best place to ask this question. But since it is related to your instructions for setting up Debian I will post here.


    After a few days of looking into how uboot / uEnv.txt works, I think I have a very good rough idea of how everything works. One thing I am not exactly sure of though is where the loadaddress value for loading the kernel file( ? ) comes from. I was reading about various boot methods in the TRM, and I am still unsure of where this "magic" value comes from. for instance:

    loadkernel=load mmc ${mmcdev}:${mmcpart} 0x80200000 ${kernel_file}
    loadinitrd=load mmc ${mmcdev}:${mmcpart} 0x81000000 ${initrd_file}; setenv initrd_size ${filesize}

    Most of this I understand, but the values 0x80200000 & 0x81000000 come from where ? the TRM ? What if I want to boot from an alternative device. Would these values still be the same?

     Being new to Linux development in general I suppose I am just having a hard time wading through all this new information ( to me ), and figuring out on my own where to look for this information. Most of the stuff I did learn, I figured out merely by studying the text in your uEnv.txt file, and that from others uEnv.txt files as well. It just all started to make sense. Although later I did find a fairly good reference manual put out by Digi, but it seems to have some proprietary Digi uboot configuration options in it as well. Is there possibly a good source of information concerning the specific uboot used with the BBB ?

    1. Hi Wiliam,

      They are just a physical address in memory...  With the OMAP family, main memory starts at 0x80000000, so we load zImage 2Mb in (just so we don't override u-boot) and initrd 14Mb later.  They aren't really 'magic', you can actually move those values around if you'd like, they just represent the u-boot defaults for this target.  Although strange things can happen say you load zImage on top of u-boot..;a=blob;f=include/configs/am335x_evm.h;hb=HEAD#l57


      1. Hello Robert,


        Awesome link, thanks ! This was just enough info to allow me to get nfs root up and running from a virtual machine to the BBB. Simply by modifying your build instruction on the main page, and adjusting uEnv.txt accordingly. Very, very happy camper now( again ). I am willing to share the information on this since it is mostly information from your site here anyhow, Matter of fact I was seriously considering blogging to "share the wealth".

        From 30,000 FT . . . its pretty much create a nfs share on a server, follow your steps for Debian up until "Copy Root File System:" where everything gets put on the NFS share instead of /media/rootfs/ . Then of course /etc/fstab needs only one minor adjustment, and of course uEnv.txt needs some tickling as well. Great stuff !

  35. Hi Robert,

    I'm getting the following error when executing Do you know why this happens.

    bluehash@bluehash-xps:~/sandbox/images/bubuntu/dtc$ ./
         CLEAN (libfdt)
         CLEAN (tests)
    Switched to branch 'master'
    Already up-to-date.
    Deleted branch fdc7387845420168ee5dd479fbe4391ff93bddab-build (was 1ea7e80).
    Switched to a new branch 'fdc7387845420168ee5dd479fbe4391ff93bddab-build'
    From git://
     * branch            dtc-fixup-fdc7387 -> FETCH_HEAD
    Updating fdc7387..1ea7e80
     checks.c     |  120 ++++++++++++++++++++++++++++++++++++++++++++++++--
     dtc-lexer.l  |    5 +++
     dtc-parser.y |   23 ++++++++--
     dtc.c        |    9 +++-
     dtc.h        |   38 ++++++++++++++++
     flattree.c   |  139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     6 files changed, 325 insertions(+), 9 deletions(-)
         CLEAN (libfdt)
         CLEAN (tests)
         DEP tests/dumptrees.c
    /bin/sh: 1: /home/bluehash/sandbox/images/bubuntu/gcc/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-: not found DEP tests/trees.S




      1. Thanks for taking the time to reply. Works now.

        Any reason what was happening.. I'm trying to learn.

        1. This was more of an opps on my end, considering the order of events I have listed on this wiki.  Almost every project that uses makefile's is setup to use the CC variable when running make. So by exporting our custom CC variable before running we accidentally used the arm cross compiler.


          So my patch just forces it back to the native gcc for the time being.


  36. I'm getting stalled very early in the process with gcc. When I try to make u-boot, I get: 

    make ARCH=arm CROSS_COMPILE=${CC} distclean
    /bin/bash: /home/kevin/bbb/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-gcc: No such file or directory

    I suspect the path to the compiler is broke. So I cd to the directory with the compiler that I downloaded (in the first steps) and notice the compiler is actually a symbolic link to a version specific one. The 'ls' looks like:

    $ ls -l *gcc*
    lrwxrwxrwx 1 kevin kevin 29 Mar 13 20:12 arm-linux-gnueabihf-gcc -> arm-linux-gnueabihf-gcc-4.7.3
    -rwxr-xr-x 1 kevin kevin 477656 Mar 13 19:05 arm-linux-gnueabihf-gcc-4.7.3
    -rwxr-xr-x 1 kevin kevin 18676 Mar 13 19:05 arm-linux-gnueabihf-gcc-ar
    -rwxr-xr-x 1 kevin kevin 18612 Mar 13 19:05 arm-linux-gnueabihf-gcc-nm
    -rwxr-xr-x 1 kevin kevin 18644 Mar 13 19:05 arm-linux-gnueabihf-gcc-ranlib

    So I try to invoke it directly (avoiding the link)(and I can use bash tab completion to prevent typos) I get : 

    ~/bbb/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin$ ./arm-linux-gnueabihf-gcc-4.7.3
    bash: ./arm-linux-gnueabihf-gcc-4.7.3: No such file or directory

    So it seems like I'm doing something basically wrong. I'm running this on a brand new installation of Ubuntu 13.04. Can anyone help? 

    1. Did you make sure to export:

      export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-

    2. Install the 32bit libraries (ia32-libs) for your distribution.

  37. Yes I did that step. Here's the confirmation:

    $ echo $CC

    1. Hi,

      I am also getting this same error like you, mentioned below. Can you please let me know how did you fixed this issue ?

      I ran the below step.

      tar xf gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
      export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-
      and checking the version with : ${CC}gcc --version
      its giving error : 

      pandu@pandu:~/bglbrd$ ${CC}gcc --version
      bash: /home/pandu/bglbrd/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-gcc: No such file or directory


      Please help me to fix it. I am very new to Linux.



      1. Hi Ranganadh,

        This issue happens when either: 1: you didn't install the 32bit libraries, or 2: your not on an x86 system.

        The fix for 1 is easy, see: BeagleBone Black#ARMCrossCompiler:GCC or go see your distro's documentation.

        For 2, well this guide is assuming x86 for cross compiling the binaries.  If your on arm, just use the native gcc compiler..



        1. Thanks for quick response.

          I am following the same above link : BeagleBone Black#ARMCrossCompiler:GCC and yes i am using x64 system.

          Please suggest me the right ARM cross compiler tool chain for me LapTop.




          1. Hi Ranganadh,

            You need to read BeagleBone Black#ARMCrossCompiler:GCC , it explains exactly what you need to do for ubuntu/debian/redhat/centos/fedora.


            1. Sorry to bother you again.

              i am following below steps:

              tar xf gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2

              export CC='pwd'/gcc-arm-none-eabi-4_9-2014q4/bin/arm-none-eabi-

              ${CC}gcc --version


              still getting the same error:

              pandu@pandu:~$ ${CC}gcc --version
              bash: pwd/gcc-arm-none-eabi-4_9-2014q4/bin/arm-none-eabi-gcc: No such file or directory


              Please provide me steps to fix this issue. sorry if i am missing anything.




              1. I have update below libraries as well. Still getting the error.

                sudo apt-get update

                sudo apt-get install libc6:i386 libstdc++6:i386 libncurses5:i386 zlib1g:i386

                1. Hi PR,

                  Based on your previous error, i'd expect it to still not work.

                  There's a big difference between the backslash (`) key (top left 2nd row) and the single-quote (') key (left of enter, center row)..  Since you incorrectly used the single quote (') the pwd was passed as directory instead of the shell command pwd..

                  bash: pwd/...

                  The direction on this wiki are setup for you easily double click and paste sections. If there are any error's it's usually the end user trying to manually type sections into their terminal window.


  38. Can we compile in the ip_set modules by default.  I use them a great deal.  I just used the steps above to compile the kernel and it worked great - thank you very much, but it would be nice to have ip_sets turned on by default in the kernel config.



    1. Hi Dan,

      Do you have a config patch? (wink)


      1. Sure - things are little crazy at work.  As soon as I get ME time I will gladly supply the patch. (smile)

  39. Hello,

    I have a config where I no longer have access to the SD Card because I have reprogrammed the pins to use the PRUs.

    Will BBB boot by default with a USB Flash drive ?

    I am interested in doing an install over the network. How do I create an iso image of the current directory tree I am using boot/root.

    And how to configure the boot process to look for that image over the network and if I do not have access to SD, how can I update the boot loader ?

    Thank you


    1. Hi Chris,

      You cannot boot directly off a USB Flash drive.  However if you have the boot files stored on either the eMMC or microSD your root file system can be stored on the USB flash drive.



  40. Hello Robert,

    First off, I would like to thank you for your work you have done on developing the set of scripts that ease the process of getting Ubuntu running on a variety of ARM SoCs.  It has been a tremendous help!  But, I have a question regarding the use of the LINUX_GIT environment in the script.  I'm working on getting Xenomai running on the BBB, and I would like to use the Xenomai I-pipe kernel (based on 3.8.13 with the Xenomai Real-time subsystem patch applied) that I have locally on my machine as the kernel for the build.


    So, what I do is set LINUX_GIT to the path of my locally clone Xenomai git kernel in the script file and then execute the script.  Everything goes without a hitch, but when the script gets to the part that allows me to configure the kernel, I don't see the Real-time subsystem configuration menu that is present when I configure my local Xenomai kernel outside of the script.


    Is there something that I'm missing or not doing right when using the LINUX_GIT environment variable?

    1. Hi Donald,

      The "LINUX_GIT" variable only purpose is to allow the script to use an 'existing' linux.git tree (1), that is already present on your root file system, without wasting time to pull another 1.5Gb of data from

      './' uses the kernel tags from '' to checkout that tag from the source tree directory under 'LINUX_GIT'.  If you'd like to add Xenomai patches, you need to physically add them to ''...



  41. Robert

    I just uploaded the latest kernel version 3.8.13-bone21.2 with Debian.

    I am getting kernel panic when I try to remove or upload new cap.

    I looked through the dmesg log and it looks like only one of the 2 HDMI cap is loaded.

    [ 2.003410] bone-capemgr bone_capemgr.8: slot #6: BB-BONELT-HDMIN conflict P8.45 (#5:BB-BONELT-HDMI)
    [ 2.013034] bone-capemgr bone_capemgr.8: slot #6: Failed verification 
    [ 2.019819] bone-capemgr bone_capemgr.8: loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 2)

    I also cannot load my own capes. May be I am doing something wrong but it used to work in previous versions.

    Can you help ?

    Thank you



    Here is the message from the console:

    [ 491.404041] Unable to handle kernel NULL pointer dereference at virtual address 0000001b 
    [ 491.412769] pgd = de73c000 
    [ 491.415693] [0000001b] *pgd=9e3c8831, *pte=00000000, *ppte=00000000 
    [ 491.422481] Internal error: Oops: 17 [#1] SMP ARM 
    [ 491.427441] Modules linked in: 
    [ 491.430684] CPU: 0 Not tainted (3.8.13-bone21.2 #1) 
    [ 491.436211] PC is at omap_device_idle+0x10/0x54 
    [ 491.440992] LR is at _od_runtime_suspend+0x1c/0x24 
    [ 491.446050] pc : [<c00284e0>] lr : [<c0028540>] psr: a0000013 
    [ 491.446050] sp : de6edd78 ip : de6ede10 fp : de601c18 
    [ 491.458130] r10: de6eddb0 r9 : c0059db0 r8 : 00000000 
    [ 491.463637] r7 : 60000013 r6 : 00000000 r5 : de620c10 r4 : 00000000 
    [ 491.470512] r3 : 00000000 r2 : 000b000a r1 : de620c80 r0 : de620c00 
    [ 491.477390] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user 
    [ 491.484907] Control: 10c5387d Table: 9e73c019 DAC: 00000015 
    [ 491.490960] Process bash (pid: 1844, stack limit = 0xde6ec240) 
    [ 491.497104] Stack: (0xde6edd78 to 0xde6ee000)

    1. Hi Chris,

      I'm running home in a bit, so can you do me a favor and quickly check to see if this also occurs with the "21.1" commit...

      Aka: git revert d9942d1813af7442160a5ff96d5ede1bc2f84b59 --no-edit


    2. Hi Chris,

      I've been doing some more testing today, can you expand on the exact sequence of commands you did..

      On my BBB, I disabled everything by adding this to my bootcmd..


      Next I tried loading a few *.dtbo's...

      echo BB-GPIOHELP >/sys/devices/bone_capemgr.8/slots
      root@arm:/lib/firmware# cat /sys/devices/bone_capemgr.8/slots
       0: 54:PF--- 
       1: 55:PF--- 
       2: 56:PF--- 
       3: 57:PF--- 
       4: ff:P-O-- Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
       5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
       6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN
      12: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-GPIOHELP


      [  393.971428] bone-capemgr bone_capemgr.8: part_number 'BB-GPIOHELP', version 'N/A'
      [  393.981120] bone-capemgr bone_capemgr.8: slot #12: generic override
      [  393.987918] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 12
      [  393.996178] bone-capemgr bone_capemgr.8: slot #12: 'Override Board Name,00A0,Override Manuf,BB-GPIOHELP'
      [  394.006711] bone-capemgr bone_capemgr.8: slot #12: Requesting part number/version based 'BB-GPIOHELP-00A0.dtbo
      [  394.017378] bone-capemgr bone_capemgr.8: slot #12: Requesting firmware 'BB-GPIOHELP-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
      [  394.035302] bone-capemgr bone_capemgr.8: slot #12: dtbo 'BB-GPIOHELP-00A0.dtbo' loaded; converting to live tree
      [  394.047410] bone-capemgr bone_capemgr.8: slot #12: #2 overlays
      [  394.060577] of_get_named_gpio_flags exited with status 113
      [  394.061405] gpio-of-helper gpio_helper.10: Allocated GPIO id=0
      [  394.067836] of_get_named_gpio_flags exited with status 115
      [  394.078172] gpio-of-helper gpio_helper.10: Allocated GPIO id=1
      [  394.084528] gpio-of-helper gpio_helper.10: ready
      [  394.099257] bone-capemgr bone_capemgr.8: slot #12: Applied #2 overlays.


      1. I compiled the kernel as outlined on the wikipage. downloaded debian.

        updated the sdcard with both and the bootloader.

        I did not do any additional modifs to the Kernel

        When I boot from memory card, HDMIN does not get loaded. i get the following message:

        [ 2.003410] bone-capemgr bone_capemgr.8: slot #6: BB-BONELT-HDMIN conflict P8.45 (#5:BB-BONELT-HDMI)
        [ 2.013034] bone-capemgr bone_capemgr.8: slot #6: Failed verification
        [ 2.019819] bone-capemgr bone_capemgr.8: loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 2)


        then when I log on as root, I issued the following command to remove the HDMI cape:

        echo -5 > $SLOTS (/sys/devices/bone_capemgr.8/slots) and that is when I got a Kernel Panic.

        I have also noticed that in my previous built, I was pointing to bone_capemgr.9 and not bone_capemgr.8 - Not sure if that has anything to do with it

        The version I was using before that was working fine is:

        Linux version 3.8.13-bone18.1 (christy@christy-desktop) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #4 SMP Sat Jun 1 16:49:02 PDT 2013

        1. Hi Chris,

          Not loading "cape-boneblack-hdmin-00A0" is fine... It is just the no audio version of the "cape-boneblack-hdmi-00A0" Check for yourself with:

          meld firmware/capes/cape-boneblack-hdmin-00A0.dts firmware/capes/cape-boneblack-hdmi-00A0.dts

          The "conflict" in the dmesg now occurs, because each *.dtbo now specifies what pins are being used, such that you can't load one *.dtbo over another that is using the same pins.  In this case, cape-boneblack-hdmi was loaded first, so cape-boneblack-hdmin will fail... (this is a big change from bone18.1)

          I can confirm, the "echo -5 > /sys/devices/bone_capemgr.8/slots" crash, if you truly want to remove that part, just disable it on startup instead in uEnv.txt as:



          1. Hi Robert,

            I did a meld on the 2 files and I think I understand why HDMIN is not loading. It look like you cannot override a pin that has already been assigned when changing the muxing pin scheme.

            The pins needs to be unset first.

            HDMI set the full sets of pin and HDMIN is trying to set them again. That is why it is failing. The cape loading should be one or the other. Not both.

            This still does not explain why the lastest kernel has moved back to bone_capemgr.8 from .9 and why I am getting kernel panic

            Any hints ?


            1. Hi Chris,

              At one time it was "bone_capemgr.7"...  Alot of the current documentation reference "/sys/devices/bone_capemgr.*/slots"

              Loading/unloading simple *.dtbo work fine...

              echo BB-GPIOHELP >/sys/devices/bone_capemgr.8/slots
              [   46.030388] bone-capemgr bone_capemgr.8: part_number 'BB-GPIOHELP', version 'N/A'
              [   46.040434] bone-capemgr bone_capemgr.8: slot #7: generic override
              [   46.047123] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 7
              [   46.055242] bone-capemgr bone_capemgr.8: slot #7: 'Override Board Name,00A0,Override Manuf,BB-GPIOHELP'
              [   46.065677] bone-capemgr bone_capemgr.8: slot #7: Requesting part number/version based 'BB-GPIOHELP-00A0.dtbo
              [   46.076205] bone-capemgr bone_capemgr.8: slot #7: Requesting firmware 'BB-GPIOHELP-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
              [   46.094004] bone-capemgr bone_capemgr.8: slot #7: dtbo 'BB-GPIOHELP-00A0.dtbo' loaded; converting to live tree
              [   46.105989] bone-capemgr bone_capemgr.8: slot #7: #2 overlays
              [   46.119639] of_get_named_gpio_flags exited with status 113
              [   46.120479] gpio-of-helper gpio_helper.10: Allocated GPIO id=0
              [   46.126875] of_get_named_gpio_flags exited with status 115
              [   46.137207] gpio-of-helper gpio_helper.10: Allocated GPIO id=1
              [   46.143532] gpio-of-helper gpio_helper.10: ready
              [   46.158351] bone-capemgr bone_capemgr.8: slot #7: Applied #2 overlays.
              echo -7 > /sys/devices/bone_capemgr.8/slots
              [   82.590801] gpio-of-helper gpio_helper.10: removing
              [   82.597582] gpio-of-helper gpio_helper.10: Destroying GPIO id=0
              [   82.608931] gpio-of-helper gpio_helper.10: Destroying GPIO id=1
              [   82.620746] bone-capemgr bone_capemgr.8: Removed slot #7

              Based on the dmesg, it looks like the audio subsystem does not like the device removal, and that is definitely a change from the previous kernel..


  42. Robert

    Tried git rever but got msg Your branch is ahead of 'origin/am33x-v3.8' by 1 commit. so I do not think it took it.

    Is there a way to revert to previous without recompiling everything ?

  43. Robert

    I had created a uio module which worked fine on the white BB with the 3.2 kernel. Now on BBB the same code causes a kernel oops when trying to set a register bit. The dmesg fragment with the oops is below along with the code the caused it. I modprob'd my module to get it running. Is this a result of the DT implementation in 3.8? Its not clear to my why that would be the case but I'm just learning about the DT.


    1. Hi Robert,

      It depends, there where a lot more then just device tree changes in the v3.2.x -> v3.8.x bump.  For one, if you were utilizing the "omap_mux" that's long gone in dt...


      1. Robert,

        Sorry I forgot to copy the dmesg frag and the code that caused the oops – which are below. The module is just a platforrm device with the probeee function allocating the uio_info structure and registering the device, all of which works. The probe concludes by setting up intrects and it's in that function shown below that the crash occurs on an attempt to wwrite tto the gpio2 control registeers. Does the gpio2 memory ppage have to be requested before it is accessed?





        [ 52.654590] rc_uio_module: Registered 'gpio-pwm' driver

        [ 52.660598] rc_uio_module: allocated uio_info

        [ 52.661654] rc_uio_module: Probe registered device.

        [ 52.661670] rc_uio_module: gpio2_bits set to 196800

        [ 52.661699] Unable to handle kernel paging request at virtual address 481ac148

        [ 52.669354] pgd = df7cc000

        [ 52.672205] [481ac148] *pgd=00000000

        [ 52.675992] Internal error: Oops: 805 [#1] SMP ARM

        [ 52.681001] Modules linked in: rc_uio_modules(O+) arc4 carl9170 ath mac80211 cfg80211 rfkill

        [ 52.689873] CPU: 0 Tainted: G O (3.8.13-bone21 #1)




        static void setup_interrupts() {

                int i=1, j=1, k=1, l=1;

                void __iomem *reg;

                i <<= GPIO_BIT_THROTTLE;

                j <<= GPIO_BIT_PITCH;

                k <<= GPIO_BIT_ROLL;

                l <<= GPIO_BIT_YAW;

                gpio2_bits = i | j | k | l;

                printk(KERN_WARNING "rc_uio_module: gpio2_bits set to %d \n", gpio2_bits);

                reg = (void __iomem *)GPIO2 + GPIO_RISINGDETECT;

                iowrite32(gpio2_bits, reg);

                printk(KERN_WARNING "rc_uio_module: Rising Edge Set\n");

                reg = (void __iomem *)GPIO2 + GPIO_FALLINGDETECT;

                iowrite32(gpio2_bits, reg);

                printk(KERN_WARNING "rc_uio_module: Falling Edge Set\n");

                reg = (void __iomem *)GPIO2 + GPIO_IRQSTATUS_SET_0;

                iowrite32(gpio2_bits, reg);

                printk(KERN_WARNING "rc_uio_module: IRQ 0 Set\n");


  44. Hello Robert.

    Given .the code below I am a little confused as how to proceed.

    netboot=echo Booting from network ...;
    setenv autoload no;
    tftp ${loadaddr} ${bootfile};
    tftp ${fdtaddr} ${fdtfile};
    bootm ${loadaddr} - ${fdtaddr}

    the first two lines seem obvious

    tftp ${loadaddr} ${bootfile} = tftp 0×80200000 /boot/zImage ?

    Or do I need to specify the exact file such as 3.8.13-bone21.zImage

    tftp ${fdtaddr} ${fdtfile}; = tftp  0x815f0000 /boot/dtbs/${fdtfile} ?

    I am assuming based on am335x_evm.h this will autosearch for the needed file ?

    netargs I believe I have correct, as I do have nfs root working already.

    bootm ${loadaddr} - ${fdtaddr}

    bootm, or bootz ? loadaddr  and fdtaddr stay the same as above correct ? 

    uenvcmd=run netboot        <---- and then this is it ?

    I have attempted to get this working on my own. However the serial debug "interface" (msp430 launchpad ) that I have is BAUD rate limited to 9600 BAUD. This is my own fault, no one else's but unfortunately is something I can do nothing about for the time being. Here I am assuming uboot defaults to 115200 BAUD, as until the kernel starts loading, I get gibberish in the terminal.

    Any help you can give would be greatly appreciated.

    1. It's a little fun to keep these straight in my head, as I do a lot of changes in my patch..

      So by default:

      "bootfile" = "uImage" and 'bootm' expects a "uImage"

      So to convert the zImage to uImage:


      mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000
      -n "Linux" -d ./3.8.13-bone21.zImage ./uImage


      (hence why i switched to zImage as fast as possible..)


      "fdtfile" is going to be defined as either "am335x-bone.dtb" or "am335x-boneblack.dtb"

      So on your ftp, just store "uImage" & "am335x-boneblack.dtb" and it should work..


      1. Thank you very much Robert it worked like a charm.

        Kind of rough working with a serial interface that is substandard ( but it is all I have right now ). Turns out I had one path wrong, to my zImage ( now uImage ), and I think the nfs share ( on the host ) had the wrong directory permissions. All fixed now, and booting over the network awesomely.

        This will definitely help tons with kernel / userland development. Thanks again , and keep up the great work.

  45. Ubuntu 13.04 Xorg fbdev stability issue!

    Hi Robert,

    I am having a problem with BBB on your latest kernel with X server

    Here is my problem:


    I use 13.04 ubuntu rootfs and kernel 3.8.13.bone21.2 for that, but when I boot BBB, it falls into 1920x1080@24Hz graphic mode
    I changed the KMS in uEnv.txt to change 1280x720@60Hz it is fine in text mode, but as soon as I start X server, it reverts back to
    1920x1080@24Hz mode, little time later it freezes (had to hard reset BBB).
    I looked at EDID information with parse-edid command, it does not even show 1920x1080@24Hz mode there..
    Here is the EDID information.
    parse-edid: parse-edid version 2.0.0
    parse-edid: EDID checksum passed.
     # EDID version 1 revision 3
    Section "Monitor"
     # Block type: 2:0 3:fd
     # Block type: 2:0 3:fc
     Identifier "SAMSUNG"
     VendorName "SAM"
     ModelName "SAMSUNG"
     # Block type: 2:0 3:fd
     HorizSync 26-68
     VertRefresh 24-75
     # Max dot clock (video bandwidth) 230 MHz
     # Block type: 2:0 3:fc
     # DPMS capabilities: Active off:no  Suspend:no  Standby:no
     Mode  "1360x768" # vfreq 60.015Hz, hfreq 47.712kHz
     DotClock 85.500000
     HTimings 1360 1424 1536 1792
     VTimings 768 771 777 795
     Flags "+HSync" "+VSync"
     Mode  "1280x720" # vfreq 60.000Hz, hfreq 45.000kHz
     DotClock 74.250000
     HTimings 1280 1390 1430 1650
     VTimings 720 725 730 750
     Flags "+HSync" "+VSync"
     # Block type: 2:0 3:fd
     # Block type: 2:0 3:fc
    Any idea what is going on? Even 1920x1080@24Hz is not listed in EDID info why Xorg driver chooses 1920x1080 mode that causes stability problem?


    1. Any chance can you change the resolution back with xrandr?

      Good overview on xrandr:


  46. thanks for your reply but by the time I tried to open xterminal to execute xrandr command, the system freezes, I have seen your bone22 kernel release, any changelog info available somewhere, I am hoping it new kernel address HDMI graphic problem..

    How can I use TILCDC drm? Even though your kernel compiled that module I still see fbdev is being used..

    I pulled with git and looked at the difference, it is not descriptive enough..



    1. Hi Erol,

      No one has written a "tilcdc" drm driver yet..  You should be able to use the 'modesetting' drm driver, but it's really not much different then fbdev, other then it knows about drm drivers..


    2. I have the same problem with resolution.  Im using the 3.8.13.bone21.2 kernel and lubuntu-core for the desktop environment.  It doesn't freeze but the desktop stays at 1920x1080 and I cant resize it, I haven't tried using xrandx yet but I will shortly. lxde, lubuntu-core, and xfce4, were the only desktop environment I could get to work, but along with the constant 1920x1080 I get screen flicking and an off color desktop, it seems the blues don't work correctly. I can see blue so its not the connector, but I see blue where its not suppose to be blue.

      1. I haven't figured out the resolution change yet, but make sure your using the modesetting driver: "xserver-xorg-video-modesetting" we may have to force xorg to use it via an xorg.conf.  The screen still 'blanks' for initially, but then stabilizes.. The 'off' color is going to occur any time you have a 24 bit color image, as the lcd interface on this board is only 16bit's wide

        BTW: I've also started a 'minimal' install lxde script here: 


        1. Where is the resolution held, i cant seem to change it anywhere, also i cant stop lxdm to drop into a shell and use xrandx to try and set the resolution there.

          1. It's still locking up with 13.04, whereas 12.10/Wheezy seem to be working just fine..

            For xrandr you can use:

            xrandr -q
            xrandr --output HDMI-0 --mode 1024x768 --rate 60

            Or over serial:

            xrandr -display :0.0 -q
            xrandr -display :0.0 --output HDMI-0 --mode 1024x768 --rate 60


            1. is it possible to use the video= command instead of xrandx? It seems i may have to switch to debian.

              1. The "video" command is only used by kms to setup the initial framebuffer... When xorg starts it then probes the edid 'again' and re-sets up the framebuffer... There's a whole kernel config to fix this issue:



                1. Is it possible to set the color depth through the terminal?

                  1. No not from the command line, only xorg.conf had a "DefaultDepth" option.  But the hardware is only wired for 16bit, so just do not load any 24bit background/images...


                    1. Just curious as to why in your minimal lxde, you choose to use Slim instead of lxdm?

                      1. No reason, other then my network was very slow yesterday and it was a small pkg..


                      2. So, just another update on this.. If you add an "xorg.conf" a lot of the hard-locks/etc start to go away.. I can't really explain it right now..

                        BeagleBone Black#HDMI:


                        1. Thats awesome to hear, how do i stop slim in order to drop into a terminal and run the Xorg -configure?

                          1. I gave up on "Xorg -configure" it kept on getting stuck on both  Wheezy/Raring... I just made the xorg.conf the hard way. Although it helped to ssh in.

                            1. Creating the xorg file fixed every issue i was having, thanks so much for all the help.

                              1. All works well except when i use a mini hdmi to vga adapter, the monitor doesnt recognize that there is input, but will recognize it without the xorg.conf file

                                1. Well, the HDMI spec doesn't support Analog Video... So unless you are using an 'active' hdmi to vga adapter you should not get any video over vga.

                                  1. how is it possible that i get video without the xorg.conf file when using the adapter, granted the video flickers but i see the desktop.

                                    1. What is the part number/manufacture of the 'hdmi to vga' adapter your using?

                                      1. StarTech MCHD2VGAA2 Micro HDMI Male to VGA Female Converter

                                        1. Yuck, not sure if there is enough power on the hdmi port to support that active connector... Well anyway, run parse-edid on it..

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

                                          Then specify that resolution in the xorg.conf like we use to do.

                          2. never mind i suppose i can just create the Xorg.conf.

  47. Hello.

    I am finding my BBB being "spammed" with kernel debugging messages related to the USB gadget. 

    I believe the configuration item CONFIG_USB_GADGET_DEBUG=y has been set. 

    It appears to really slow down the system creating 7 entries in a repeating pattern, MANY times per second. 

    It also makes debugging other issues challenging if you wish to monitor the journal.


    Is anyone aware of a method of changing this configuration short of rebuilding the kernel?  Does the online Angstrom build tool allow these flags to be changed easily?


    Thanks for any help!




    1. Hi Carl,

      Thanks for the note, I've now disabled that config going forward.  It should have been disabled when we started shipping v3.8.x on these boards as default.


      1. Excellent Robert!   Really appreciate that.  Any idea when that will be available, or how I could build an image before the actual release.


        PS.  I am new to the BBB, but have some experience with embedded Linux.  I look forward to contributing in some small way.  I certainly see your name often and appreciate your time and efforts!

        1. Hi Carl,

          Just re-build it as shown here, the script takes care of most of the hard stuff...

          BeagleBone Black#LinuxKernel


  48. Hello all, I am currently attempting to get the the DUXfast unit up and running on the 'Beaglebone Black' to test if it is fast enough to sample from all channels, as it needs the Comedi ( drivers which are not part of the Beaglebone Black kernel.

    I have run the kernel configuration as defined in :

    However it seems that there is no correct flag to enable Comedi for the Beaglebone Black architecture during Kernel Configuration. So is it even possible to enable Comedi on the 'Beaglebone Black' currently?

    Thanks in advance.

    1. Sorry but I think I figured it out apparently the " || ARM " option is missing from the Kconfig file for the Comedi files in kernel version 3.8.13, I'll let you know how it goes if you are interested.

  49. Hello - I'm trying to copy the microSD card to the eMMC of the BBB but receive the following error. I can't figure out how to work around this. Please help.


    chris@CA-Ubuntu:~/Downloads$ sudo ./
    Error: script halting, system unrecognized...
    unable to find: [/boot/uboot/uEnv.txt] is /dev/mmcblk0p1 mounted?




    1. Hi Chris,

      Like the scripts says: "Error: script halting, system unrecognized..." which means you didn't use my demo image or the directions on this wiki to create the microSD card.  Therefore, since I "can not" guarantee the script will correctly copy the microSD to the eMMC the script stops with that error message.  Your more then welcome to edit the script and adjust it for your setup, but it's up to you to correctly setup the boot args for the eMMC.


      1. Hi Robert - I followed your instructions to the T using the demo image etc...

        1. Then it sounds like a bug... Which demo image exactly? (http address helps)

  50. Hi!

    I had some troubles with the Kernel Build scripts on Debian 7 and Ubuntu 12.10 with i386 architecture:
    I cloned the git:// and checked out origin/am33x-v3.8.
    The checks the dependencies with the result:

    Debian/Ubuntu/Mint: missing dependencies, please install:
    sudo apt-get update
    sudo apt-get install libncurses5-dev

    But this package is installed correctly.

     I think this is because of missing switches in the case structure(i think ${pkg}:${deb_arch} does not work in wheezy or quantal i386):

    #pkg: libncurses5-dev
    case "${deb_distro}" in
    squeeze|lucid|precise) -> i think here should be "squeeze|lucid|precise|quantal|wheezy)"
    #ii libncurses5-dev 5.9-4 developer's libraries for ncurses
    dpkg -l | awk '{print $2}' | grep "^${pkg}" >/dev/null || deb_pkgs="${deb_pkgs}${pkg} "
    #ii libncurses5-dev:amd64 5.9+20130504-1 amd64 developer's libraries for ncurses
    deb_arch=$(LC_ALL=C dpkg --print-architecture)
    dpkg -l | awk '{print $2}' | grep "^${pkg}:${deb_arch}" >/dev/null || deb_pkgs="${deb_pkgs}${pkg} "




    1. Hi Chris,

      That's correct, I actually had two bugs in there, when I fixed the first that broke the ${pkg}:${deb_arch}.  Then it turns out, only Jessie/Sid use the new pkg:deb_arch format, surprising as usually ubuntu leads with these odd changes.  In the end i just switched it back to searching for pkg, as it works for everything lucid -> saucy, squeeze -> sid..



  51. kkr

    hello Robert

    I was a big help very to install the os of the Beagle Bone Black firts    . I'm really grateful to you.

    I'm wonder to imitate as it is a guide only do we even use the file system of Angstromg instead of the file system of Ubuntu.


    1. As you can tell, the guide is written for Ubuntu/Debian. But using the same instructions you can easily install Angstrom/ARCH/gentoo/fedora/etc... The biggest hurdle you'll face is enabling the 'serial' console by default on Angstrom.  As it uses systemd and I have no idea on how to get it to enable getty by default on bootup, like we do for Debian/Ubuntu on this wiki.


  52. Hello all,

    I've noticed 3.11 branch in kernel repo(git:// tried to play with it. Compilation went smoothly, and it even runs on my BB black(as well as well as on BB white) with debian rootfs.

    The only problem now is that usb-host doesn't work. Could you please tell me is this problem in 3.11 kernel or I did something wrong? 

    Here some info from my BB:

    root@arm:~# uname -a
    Linux arm 3.11.0-rc2-bone0.4 #1 SMP Fri Jul 26 17:37:37 CEST 2013 armv7l GNU/Linux
    root@arm:~# dmesg | grep usb
    [ 1.303679] usbcore: registered new interface driver usbfs
    [ 1.303854] usbcore: registered new interface driver hub
    [ 1.304457] usbcore: registered new device driver usb
    [ 3.348273] usbcore: registered new interface driver asix
    [ 3.354139] usbcore: registered new interface driver ax88179_178a
    [ 3.360640] usbcore: registered new interface driver cdc_ether
    [ 3.366922] usbcore: registered new interface driver r815x
    [ 3.372854] usbcore: registered new interface driver smsc95xx
    [ 3.378998] usbcore: registered new interface driver net1080
    [ 3.385079] usbcore: registered new interface driver cdc_subset
    [ 3.391404] usbcore: registered new interface driver zaurus
    [ 3.397479] usbcore: registered new interface driver cdc_ncm
    [ 3.473501] usbcore: registered new interface driver cdc_wdm
    [ 3.479583] usbcore: registered new interface driver usb-storage
    [ 3.486108] usbcore: registered new interface driver usbtest
    [ 3.492359] musb-hdrc musb_init_controller failed with status -517
    [ 3.500582] platform Driver musb-hdrc requests probe deferral
    [ 3.771789] usbcore: registered new interface driver usbhid
    [ 3.777665] usbhid: USB HID core driver
    [ 3.878490] musb-hdrc musb_init_controller failed with status -517
    [ 3.886853] platform Driver musb-hdrc requests probe deferral
    [ 4.005432] musb-hdrc musb_init_controller failed with status -517
    [ 4.013780] platform Driver musb-hdrc requests probe deferral
    [ 4.086891] musb-hdrc musb_init_controller failed with status -517
    [ 4.095247] platform Driver musb-hdrc requests probe deferral
    [ 9.609345] musb-hdrc musb_init_controller failed with status -517
    [ 9.617729] platform Driver musb-hdrc requests probe deferral
    [ 9.674485] musb-hdrc musb_init_controller failed with status -517
    [ 9.682884] platform Driver musb-hdrc requests probe deferral



    1. Hi Sergey,

      Correct usb is broken on the v3.11-rcX branch. The drivers/bindings/etc are still being discussed last week on linux-omap...


  53. Hello!

    I have a question about compiling a new kernel for my BBB. I need one with RT patches, so I got the kernel and patches from, branch 3.8-rt. My goal is to be able to run Debian with this kernel. I've successfuly built the kernel and it runs just fine with uInitrd that comes with Debian for BBB, however I'd like to build my own uInitrd. And that's the task I can't accomplish. I'm trying to build initrd.img on Beaglebone running Debian (with modules that I've compiled with new kernel) using update-initramfs. And the I use mkimage to make a uInitrd. Once I have it I try to boot the kernel with it, but it won't boot. Any considerations?

    Thank you!

    1. Hi Konstantin,

      How did you build it? As it should boot via:

      sudo update-initramfs -c -k `uname -r`
      sudo mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d /boot/initrd.img-`uname -r` /boot/uboot/uInitrd
      1. Today I tried to build it using command provided by you, but again, no luck. It gets stuck at the "Uncompressing Linux kernel done...Booting kernel". It boots just fine with old uInitrd. I've copied compiled modules to /lib/modules/`uname r`/ . I buit them and the kernel following the instruction provided on repo, using beaglebone config file from configs folder. I've also copied dtb file to /boot/uboot/dtbs/am335x-boneblack.dtb on my target device, and yet it looks like I've missed something.

        1. Hi Konstantin,

          I'm not sure, I've left the 3.8-rt stuff up to a few other users so i haven't personally built a kernel with it.  But it's probably a missing config or something related that's messing the initrd up.  Does it help if you build with my defconfig in the am33x-v3.8 branch.


  54. Hello,

    I am coming up to speed with the BBB and managed to build/install linux+ubuntu as per the instructions provided (very helpful btw). I can login via serial console & and ssh no problem and get the expected message:

    "Welcome to Ubuntu 13.04 (GNU/Linux 3.8.13-bone24.4 armv7l)"

    However, I have had absolutely no luck with HDMI ?! I know the HDMI hardware & cabling works since Angstrom boots & gives me a Gnome desktop.   Checking 'Xorg.0.log' I see a problem. So did I miss a step? Is there something obvious that folks have already run into & solved ? Would be good to know before I dig further. Thanks in advance.


    p.s. I installed lxde to do a minimal initial test.


    [    23.322] (II) LoadModule: "fbdev"

    [    23.330] (II) Loading /usr/lib/xorg/modules/drivers/

    [    24.179] (II) Module fbdev: vendor="X.Org Foundation"

    [    24.180]    compiled for, module version = 0.4.3

    [    24.180]    Module class: X.Org Video Driver

    [    24.180]    ABI class: X.Org Video Driver, version 13.0

    [    24.180] (II) modesetting: Driver for Modesetting Kernel Drivers: kms

    [    24.181] (II) FBDEV: driver for framebuffer: fbdev

    [    24.181] (++) using VT number 7

    [    24.181] (WW) xf86OpenConsole: setpgid failed: Operation not permitted

    [    24.182] (WW) xf86OpenConsole: setsid failed: Operation not permitted

    [    24.186] (WW) Falling back to old probe method for modesetting

    [    24.187] (EE) open /dev/dri/card0: No such file or directory

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

    [    24.187] (II) Loading sub module "fbdevhw"

    [    24.190] (II) LoadModule: "fbdevhw"

    [    24.199] (II) Loading /usr/lib/xorg/modules/

    [    24.213] (II) Module fbdevhw: vendor="X.Org Foundation"

    [    24.214]    compiled for 1.13.3, module version = 0.0.2

    [    24.214]    ABI class: X.Org Video Driver, version 13.1

    [    24.214] (EE) open /dev/fb0: No such file or directory

    [    24.215] (EE) No devices detected.

    [    24.215]

    Fatal server error:

    [    24.215] no screens found

    [    24.216] (EE)


    1. I get "ABI class: X.Org Video Driver, version 12.*" with Debian jesse (testing). It seems stable so far.

      It looks like you might be working with the equivalent of sid which might be pushing it a bit.

      Sorry I can't say more but I can email my log file if that helps.

    2. Hi Nicholas,

      I'm still testing in the lab here, but it looks like a regression since my last 3.8.13-bone24 snapshot, I'm also waiting for the hdmi fix from TI which should hit the shared kernel tree sometime in the next week.  You can checkout the previous snapshot via:

      git checkout master -f
      git branch -D tmp
      git checkout 3.8.13-bone24 -b tmp


  55. Thanks for the quick response. I will look for the TI update and/or anything you find in your testing. I will try the branch as suggested and perhaps try the v12 of the X.Org driver.


    p.s. good to know i didn't fat finger the install.

    1. Hi Robert,

      Having followed your suggestion, HDMI is now functioning (well at least the console is) so seems you were correct about the regression. As an aside, I had to edit '' as follows but I believe you are already aware of this issue:


              #pkg: libncurses5-dev
              case "${deb_distro}" in
              #nick: squeeze|lucid|precise)


      Thanks for the help.




      1. Hi Nicholas,

        I found the hdmi/cape regression (since 3.8.13-bone24) and disabled it, so I will be pushing a new version (3.8.13-bone25)pretty soon.


        1. Thanks for the update. I will build with '3.8.13-bone25' as soon as I get the chance. I currently have all the gui stuff I need working so thx again.



  56. Does anyone have the camera cape working with kernel 3.8?  I get:

     gpio-rctrl rstctl.3: gpio_rctrl_request eMMC_RSTn
     cssp-camera Got rstctl (gpio:#0 name eMMC_RSTn) label:eMMC_RSTn-CAM3
     gpio-rctrl rstctl.3: gpio_rctrl_assert eMMC_RSTn
     of_get_named_gpio_flags exited with status 4
     of_get_named_gpio_flags exited with status 30
     cssp-camera CSSP Revision A4
     cssp-camera dma_ch=20
     cssp-camera dma_link[0]=65
     hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
     hub 1-0:1.0: hub_suspend
     usb usb1: bus auto-suspend, wakeup 1
     cssp-camera camera sensor configuration failed

    This is on an expansion board. It doesn't boot plugged directly into the BBB.

    According to this web site it should work on BBB.

    I would rather not downgrade to Angstrom just to get it working. Do I need the HDMI or other cape to make it work? Thanks.

    1. The camera cape works fine if you disable the eMMC like the BeagleBone Black Capes wiki mentions. To do this, simply, edit your optargs flag in the uEnv.txt boot script.



      1. Thanks, that worked. I have another issue but I'll start a new thread.


  57. Hello Robert.


    I have just a couple of general inquiries. I have noticed some chatter about USB hotplug being implemented into the latest stable kernels. Has hotplug made it into your build yet ? I still am a little confused as to how this works exactly. Seems with your instructions, we're pulling in mainline sources. But again I am still a bit new to al of this.


    Second I saw you mentioning SGX drivers on one of your elinux pages for the BB XM. I do not have an XM but instead a Beaglebone Black. I was curious if this may work for the Beaglebone Black as well. One one hand it seems as though it might, but also seems the XM uses ( in this context ) a 3.7.x kernel. Again inexperience has me guessing.

    1. HI Wiliam,

      USB hotplug has been enabled in the patchset for awhile now, just do not use a non-standard, non usb 2.0, un-powered usb hub...

      SGX: we do not have the kernel/drm/etc bits yet for the am335x device found on the beaglebone for v3.8.x based kernel.


      1. Thanks much Robert.

  58. Hello Robert,

    I am now having a look at the beagle bone black, as one of my colleage is claming the white one is not fast enough for him!!!

    I having some problems,

    running the script all i get is "Network Down"

    running the script i get

    + Dectected build host [ubuntu 12.04.2 LTS]

    missing dependicies

    sudo apt-get update
    sudo apt-get install libncurses5-dev

    failed dependancy check

    I have updated these, but can't get passed this failure


    Paul S

    1. Just have a bit of a google and found this in


      network_down () {
      echo "Network Down"
      ping -c1 | grep ttl &> /dev/null || network_down
      and i can't ping
      paul s


      1. Just spoken to IT here in UK and we have ping's blocked at the gateway in holand by our global IT, in there wisdom!!!

        if this is my problem, can we get round this?



    2. Hi Paul,

      So the head version of on doesn't ping google anymore, I'm guessing you are running the script from the "/boot/uboot/tools/pkgs/" directory.  From "/boot/uboot/tools" just run "sudo ./" to pull all the changes or just run the script as downloaded in a new directory:

      chmod +x

      Those dependency checks should be fixed now, but for clarification, what git repo did you clone and what git branch did you checkout?


      1. Hello Robert,

        thanks for the reply

        This is the first time i have got back to this in about a month, so thing must have moved on.

        dtc in a new directory look to do a lot of stuff this time, but did seem to fail with:-

        Cloning into '/home/ubuntu/git/dtc'...

        fatal: unable to connaect to[0:]: error=Connection refused

        how do i clear out the old kernel build eg tmp and start again?


        Paul s


        1. Hi Paul,

          Well, there server;a=summary seems to be up..

          Maybe your firewall/proxy isn't allowing git, so change:



          git pull git:// dtc-fixup-65cc4d2
          git pull dtc-fixup-65cc4d2

          if that works, maybe i should just default to that.. As it'll then work for everyone...

          To pull in the kernel build script changes just:

          git checkout master -f
          git branch -D tmp
          git pull
          git checkout origin/am33x-v3.8 -b tmp


          1. Hello Robert,

            Thanks once again, I now have a kernel build 3.8.13-bone25.

            I have installed all on to the SD card (ubuntu), but I don't get any serial.

            I get lots of LED's at boot, and end up with heatbeat and some cpu, but no serial so i can't see where the boot stops or login.

            connected to hdmi and it does get recognised but is black, a usb LED mouse lights up, test only.

            I have rebuild u-boot, kernel and both the boot and rootfs sides of the SD. uEnv.txt is a copy/paste from the web page.

            with no SD card I get the std gadget serial.


            Paul S

            1. Hi Paul,

              You are going to have to clarify the "std gadget serial" comment.  As the beaglebone black does not have the built-in usb-serial ftdi adapter, nor do these images "by default" enable any usb serial gadget on bootup.

              This page assumes, your using this 3.3 TTL usb-serial convertor:



              1. Hello Robert,

                Ahh!! I did not spot that connector (debug), thought it would be the same usd/serial debug as the white one.

                sorry the "gadget serial" is what appares in windows serial devices when "usb client" is conencted, as std without the micoSD card.

                does not look very accessable with a cape on, i am using a CANOPEN cap with a white one to program our motor drivers, before we do our own I/O pcb cape.

                Thanks again, we don't have anything like that cable, maybe I can persuade the electical boys to make me one!!


                Paul S

                1. Hi Paul,

                  The CircuitCo guys didn't want to re-certify the windows driver so it installs the usb-serial drivers for both boards, but only the original BeagleBone has the hardware.

                  Yeah, once you install a cape on the BBB there really isn't any room left for the usb-serial adapter plug.

                  Recently I have been using this breakout cape to separate the cape from the base board, thus allowing serial access with the ftdi plug:



  59. This looks like an OpenCV issue, and a similar issue has been seen with Raspberry Pi, but I'm reporting it here in case anyone has seen this. I get this error running a python-openvc script to process camera cape frames, during initialization and before capturing any frames. I appreciate any help or comments.

    debian@arm:~$ python

    VIDIOC_REQBUFS: Cannot allocate memory

    munmap: Invalid argument

    munmap: Invalid argument

    munmap: Invalid argument

    munmap: Invalid argument

    Unable to stop the stream.: Bad file descriptor

    munmap: Invalid argument

    munmap: Invalid argument

    munmap: Invalid argument

    munmap: Invalid argument

    *** Error in `python': double free or corruption (fasttop): 0x00540f00 ***




    1. Hi Marty,

      Not sure as I haven't tried to run opencv yet, you can wait here for someone else to comment, or also try the beagleboard google group.


  60. Unfortunately I'm having no luck, right from the beginning. When I attempt to run the "wget -c" command, I receive the message "wget: not an http or ftp url: wget". I updated the command to instead point to wget -c but again, no luck. 


    Any advice? Running the out-of-the-box Angstrom distro on a new BBB.

    1. Not sure, double check your network connection?

      The files are downloaded from a 3rd party web server (linaro).



      1. Thanks for the response! I tested connection via ping commands and all went well. I ended up realizing Linaro came installed on my BBB so bypassed the wget for Linaro. However, as soon as I try the wget for the U-Boot patches, I run into the same issue. Interestingly, if I change "https" to "http", I get the response "Connecting to (", followed by "not an http or ftp url: https://raw.github ...". So it appears as if I'm perfectly able to connect to http, but not https. Any idea why this would be?

        1. Well it sounds like something is blocking port 443 (https) on your network. (http is on port 80 by default).


  61. here is ubuntu-small-lxde-desktop,can i set xorg.conf  to support touchscreen. here is some information.

    1. Probably not, as if you look at that website: "Last updated: 11.11.2008". But give it a try, if it fails contact the manufacture for hints.

  62. Hi Robert,

    today I built the kernel following your directions, setting in the cross-compiler to linaro 2013.08 (which I already had) and the linux-stable tree directory (which I already cloned). I did not modify anything in menuconfig. The kernel compiled successfully (u-boot did too) but in the resulting dtbs archive, am335x-boneblack.dtb is missing. This way u-boot obviously complains "** Unable to read file /dtbs/am335x-boneblack.dtb **". Did I miss something?

    Thank you, I appreciate your help.

    1. Hi Antonio,

      Just to clarify; "linux-stable"?



      1. This one: 


        The default tree that you script clones.

        But I am using your stable-kernel github repo, not the linux-dev one. Is this the culprit?

        1. Hi Antonio,

          Correct, the 'stable-kernel' repo does not officially support the am335x line of products. Use the "linux-dev" repo like the wiki shows.


          1. Thank you, Robert.

            I just thought the stable-kernel tree was "stable" also for the Black...

            New lesson learned: what is written by someone who knows about the issue must be followed. Everytime.

            1. The 'stable-kernel' has never been for the beaglebone products, as the patch-set was always too unwieldy.  Side note, I'm actually retiring the 'stable-kernel' repo (other then script changes) and combining all "boards" into one repo tree, "armv7-multiplatform".  Although at this time, that is only for all imx targets and the beagle xm.


              1. Well done, then!

                Just a side question: why does the compiled kernel local version appear as bone26.1 instead of bone26? (uname -r)

                  1. Sorry, I should have been more specific...

                    I was referring to the BBB 3.8 kernel...

                    1. There was a small config change since my last kernel release from that branch.  During a given work week, I like to queue up a few fixes before pushing out a release to my arm build farm.  However by Friday if there still is no more updates, I'll still bump the release and push it out.


                      1. Oh, I see. (Sorry for the dumb question D:)

                        Just another little thing: since there isn't any boneblack dts (obviously) in the linux-stable kernel tree, when does it get created and who (which script) creates it? I hate not being able to figure out how things works, at least broadly...

                        Thank you!

                        1. It gets created by anyone who has an interest in the platform.  However to deal with all the 'capes' this platform has available, it's better to get the capemgr patches in mainline first before the boneblack dts file.


                          1. Sorry, I mean: when does the dts file get created when I compile the kernel?

                            Your script clones the linux-stable kernel tree (which does not contain the boneblack dts), then patches the kernel tree and the boneblack dts file appears. I haven't found references to it in the patch files...

                            I need this because I have to edit the default pin mux for the board.

                            1. The boneblack dts file is touched by a quite a few patches.  So first populate the KERNEL directory with "./" once compilation actually begins (after menuconfig) kill the process via "ctrl-c".  Next edit the files in the KERNEL directory and run "./tools/" to rebuild the KERNEL directory as setup.  Once your satisfied with your patchset (built and run tested), issue "git commit -a -m 'my patch description' -s" followed by "git format-patch -1" then add it to the script.


                              1. Okay,

                                Thank you very much!

                              2. Sorry to bother you again, please bear me.

                                I noticed that the ${kernel_version}-modules.tar.gz archive contents are owned by the user which compiled the kernel (not root); using the command you provide to extract the modules to rootfs, they end up having userid and groupid of the (normal) user which compiled the kernel: if by chance the ids are both 1000 (default for the first normal user, but not always) then on the BBB the files would be owned by the user 'ubuntu' (I hope), but otherwise? Is it an issue?

                                Same thing for the ${kernel_version}-firmware.tar.gz archive...

                                Update: On my Linux box I compiled the kernel with the user 1000:1000 and on the BBB Ubuntu13.04 armhf rootfs 1000:1000 resolves to ubuntu:admin because the ubuntu group's id is 1001...

                                1. Why is this an issue?

  63. Hello Robert,

    First I would like to say that this site here is starting to get increasingly slow in loading. This text editor for instance just sat there for a few minutes trying to load, until I reloaded the whole page when it came back up. This is not a complaint, just a FYI, in case it is something that you can, and would like to fix.


    Ok so on to my question. I would like to build my own rootfs, but am unsure as how to proceed. Buildroot has been suggested to me, and I have known of debootstrap for several years, but never really got to know it well. Debian wheezy is what I am personally interested in. Do you keep a text log for such that I can look through ? 


    I have found some information on the web, but some particulars are not exactly clear. For instance, I would like to at least at the start to make a rootfs similar to the one you have here, but perhaps with a few less things installed by default. Normally I might consider just purging packages, but in the past this has turned out badly for me occasionally. As a result, I have learned to "install" as minimal an image as possible, and build from there. Any other information / advice is also very welcome. 

    Also, I did notice you had a script for a netinstall, but not 100% sure if this would give me what I am after.

    1. Hi Wiliam,

      Right now it is the actual comments that take the longest to load on these pages.  That's why I disabled comments on the main pages and split the comments into their own page.

      Both the minimal and bare images linked to from this site where generated by my omap-image-builder script: & respectively. The bare image is right around 64MB in size on disk, in some cases actually smaller then the final kernel/modules/dtbs for some of the devices I've been building for.


      1. Hello Robert,

        Sorry to be dense( again ), but how am I meant to use this ?

        git clone git://

        this part seems obvious, but I am not sure what to do after this. I looked through all the readme files but the best I can figure is something like. . . wheezy <--- ?

        1. Hi Wiliam,

          I had hinted it with: " & respectively"

          "" builds the "minimal" images hosted on this site and the "" script builds the "bare" images hosted here.

          I specifically didn't mention "" as that builds a full featured image for all boards, thus much larger.


          1. Hello Robert,

            Ok, I was reading through the file ( as well as other stuff ) and got a bit lost. Now I will just download the git, run the script(s) and just see what happens. It is probably the best way for me to learn anyhow. Although, I bet this already exists on my support system already . . . (wink) Not sure but will check.

            Thanks for your time Robert.

            1. Some day I'll put a real readme.txt into that repo, right now it's mostly a shared repo between two groups who are just releasing ready to be run images.


              1. It's all good Robert. If you give me a readme.txt it will enable me to follow your steps quickly, but it doesnt really teach me anything other than following your instructions. Granted, I have learned quite a lot following your other instructions here.

              2. Hello again Robert,

                So I am running the script right now, and debootstrap seems to be doing its thing. I am noticing references to armel. This is not a problem if i want to use an armhf kernel is it ? I seem to recall someone ( maybe you ) saying something about userland being armel anyhow ? Also I am running a *-bone21 kernel this will not pose any problems ?


              3. Robert, think the first question just answered its self. I should have known that I am building more than one image. Based on config,in

              4. Hello Robert,

                Everything went great! Only one problem, openssh-server was not installed, so I had to revert to my trusty v1.5 launchpad ( minus MCU ) to login at 9600 BAUD( ug!), and install openssh

                Where do I add packages, and in which script ? I saw one file "" ( I think ) Which had it listed, but obviously I think that script was never called. Because openssh-server was never installed.


                Are there any(many?) differences between building my own rootfs like this versus using the one you provide on the main page here that I should be aware of? I mean aside from the obvious - less stuff installed. 

                1. Hi Wiliam,

                  Correct "openssh-server" is not installed by default with the "" script, as Ethernet access is optional on a lot of small embedded platforms.  The goal of that script was to build as small as possible useful image for flash based devices.

                  To add pkgs, edit "base_pkg_list" directly in

                  Differences? Like I mentioned a few times already, "" are the EXACT scripts that generate the files hosted here.


                  1. Robert,

                    Ok great. Thanks for all the help, and sorry about grillin' ya. Was noticing that in the base_image script that is_debian () ( line # 139 )  -> exclude_pkgs_list="" ( line # 150 )  does not work quite the way I expected it to work. I added several package names to it( comma separated ), and yet they all seemed to get added anyhow. I am not 100% sure what is happening yet, but I suspect that maybe a package that I missed requires these base packages. I did see the excludes mentioned on the scripts output messages though.

                    Right now, I am considering using the bare_image script, and adding all packages I want listed from dpkg -l on the running system that I have now( which was created from base_image previously ). Going to poke around a bit more to see if that makes sense or not.

                    1. from:

                      base_pkg_list is actually 'space' separated (the variable gets called directly by apt-get install)

                      include_pkgs_list is comma separated, it gets used directly by debootstrap's "--include " option..

                      The repo/script is more about being able to consistently build a new image every month, then explaining how it does what it does. (wink)


                      1. Hello Robert.

                        It has been a few days and I have not made any progress(been too busy with other things), and do not expect to have any time to toy with this soon. I've yet to nail down to get exactly what I want, but feel I should be easily do able with the help that you've given me so far.


                        Looking forward to reading your readme when you get around to it, and I know those "round_to_it's" can be fairly sparse at times.


                        Thanks much ! 

                        1. I was having problems running as it was exiting before completion.

                          This line in was causing the exit:

                          /bin/sh -e "${DIR}/scripts/" || { exit 1 ; }

                          I added the -P option to the cp in which tells cp not to follow symbolic links.

                          sudo cp -v -P ${DIR}/git/linux-firmware/ti-connectivity/* ${tempdir}/lib/firmware/ti-connectivity

                          There were symbolic links in the ti-connectivity directory, I'm guessing there is a race condition or recursion problem during the copy as I was also getting stat errors.

                          I'm building on a virtual Ubuntu 12.04 box on vmware.

                 now completes with the above modification. 







                          1. Adding and removing packages using works great.

                            Robert, thanks for an awesome tool.

                          2. Weird, wonder if it's from the recent adding of another wl binary..


                            as it was working fine before..

                            Btw, i'm surprised 12.04 even works, as qemu on that was so ancient..

                            1. If I diff the tmp directory with the linux git source directory it shows that wl1271-nvs.bin wasn't copied.  This is a symbolic link, so I think the problem involves the link.

                              I ran base_image on Raring 13.04 , it completes successfully without the -P option.

                              The 13.04 is a real machine , not a vm , so perhaps it was due to some virtualization filesystem weirdness.

                              FYI on 13.04 I had to install qemu-user-static and qemu manually using apt-get , would exit on error due to missing or skipped files, despite me trying different servers (Canada, US, main) in software sources.


  64. I'm new to linux and want to understand the linux kernel/patch process in more detail.


    If I modify the file by replacing

    git pull git:// dtc-fixup-65cc4d2 


    patch -p1 <../../dtc-Dynamic-symbols-fixup-support.patch

    where dtc-Dynamic-symbols-fixup-support.patch is from

    then patch reports some errors and the resulting dtc won't accept the -@ option.


    1.  Am I using the wrong patch  ?
    2. What was your process to generate your dtc-fixup-65cc4d2?

    I am using your latest debian fs on a beagleboneblack.

    Thanks for your  work, it is extremely helpful.




    1. Hi Raymond,

      Why are you modifying the script?

      Please look at the top commit of the dtc-fixup-65cc4d2 branch:

      Recognize the commit?


  65. Hi Robert,

    Thanks for your reply.  I will check out this commit and diff it with my patched code to see where I went wrong.

    I modified the script just as a test to confirm my naive belief that I could download the dtc source from , apply what I believed to be the "official" patch, and have it work.  Obviously I missed something.

    To understand where I am coming from, imagine that you never existed and I was trying to get the dtc working with the -@ option.  I would be stuck.  I am trying to learn why I got stuck and how to resolve it.



  66. Hi, everyone! 

    I flashed my SD card with MachineKit(2013-09-02) image, after I put this on my BBB and power on. As I understood, for work the BBB via SSH and VNC, I edited uEnv.txt (uncomment " optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN,BB-BONE-EMMC-2G" and comment the another "optargs= line"), and reboot. 

    Then I have access to my BBB via SSH and VNC( I installed tightvncserver-client), I see the BBB desktop through my desktop pc. The problem is when I tried to run linuxcnc, I see this message:

    linuxcnc@arm:~$ linuxcnc
    LINUXCNC - 2.6.0~pre
    Machine configuration directory is '/home/linuxcnc/linuxcnc/configs/ARM/BeagleBone/BeBoPr'
    Machine configuration file is 'BeBoPr.ini'
    Starting LinuxCNC...
    io started
    halcmd loadusr io started
    Loading BB-LCNC-BEBOPR overlay
    Loading cape-bone-iio overlay
    Waiting for component 'Therm' to become ready.
    task pid=3267
    emcTaskInit: using builtin interpreter
    X Error of failed request: BadWindow (invalid Window parameter)
    Major opcode of failed request: 3 (X_GetWindowAttributes)
    Resource id in failed request: 0xffffffff
    Serial number of failed request: 641
    Current serial number in output stream: 642
    Shutting down and cleaning up LinuxCNC...
    Cleanup done
    LinuxCNC terminated with an error. You can find more information in the log:
    as well as in the output of the shell command 'dmesg' and in the terminal

    Suddenly be a newbie error, I would appreciate your help. (Sorry for my English)

    1. Hi Jhon,

      While a few linuxCNC developers are active on this commit page, you might also want to ping: just to get more eyes on your question.


      1. Hi Robert,

        Thanks for your advice, I'll try too in this site.


  67. Hi,

    All goes well for me until I attempt to copy the root file system to the rootfs partition. I tried with both Ubuntu and the Debian small flash, but partway through the tar, every command began failing due to "Read-only file system", until the entire process failed with the messages "Cannot utime: Read-only file system", "Cannot change ownership to uid 0, gid 0: Read-only file system", and "Exiting with failure status due to previous errors". 

    Any ideas on why the file system is being corrupted partway through?

    1. Hi Daniel,

      This could be caused by a couple things, here is a list of a few common issues.

      • Failing microSD card, they do eventually go bad
      • Broken/Faulty usb-mmc adapter
      • Old bug/race in an older kernel release
      • Or Virtual Machine USB issues (run Linux directly on the your hardware)


      1. Thanks! I'm using a microSD and it transfers files fine. 16GB should be plenty large enough I assume? Maybe I'll try booting to Linux instead of running a VM and see if that helps ...

    2. I had the same problem. The MMC port on my laptop always crashes on a specific sector of any card. I resolved the issue by using an USB reader.

  68. Hi, 

    The last thing confusing me is how to actually install everything on the BBB. My original plan was to plug the microSD card into the BBB, SSH in via USB as usual, download the "Script to copy your microSD card to eMMC" to the BBB, and run that to install everything. However, it appears that the Bone doesn't attempt to connect when the microSD card is in it - it doesn't show up as a USB device or as an Ethernet connection. 

    Any ideas? Should I maybe just plug in the microSD and power up the BBB while holding down the Reset button, as I've done in the past for Angstrom software updates?



    1. Hi Daniel,

      The images hosted on the page are meant to a be a nice clean generic base.  Thus by default they do not do any advanced features such as automatically loading the g_multi driver for usb ethernet/flash drive.  The "minimal" image (not bare) does have ssh installed by default, so over the ethernet port you can login via ssh.  For the "bare" you will need a usb-serial adapter as ssh is not installed to save space.

      For reference, this is the "script" that does the auto loading for my other ubuntu/debian flasher images and is very similar to Angstrom systemd init script.


      1. Thanks for the reply. Unfortunately I'm so inexperienced that I'm still having trouble. I can plug in the microSD and SSH into the 'Bone; navigate to /media/boot and see MLO, dtbs, u-boot.img, uEnv.txt, and zImage; and navigate to /media/rootfs and see bin, boot, dev, etc. However, after a few hours of poking around online and on my board, I'm still at a loss as how to actually install everything?

        (Sorry for all the trouble, but I truly appreciate your advice.)

        1. The images hosted here are both debian based, which means they have dpkg and friends.  So you can use "apt" to install packages.

          sudo apt-get install <pkg_name>

          So to install nano (text editor, already installed)

          sudo apt-get install nano

          If your looking for a specific package, here is the full debian list.


  69. Hi all,

    I am working on a project that will be released to the general public.  I'd like to disable the usb gadgets to avoid any networking confusion or writing to flash memory.  Is disabling/removing the g_multi driver the best way to do this?  If yes then how to disable g_multi? 




    1. Hi Raymond,

      If you disable CONFIG_USB_GADGET you shouldn't have to worry about that situation.

      Just make sure you test the usb host port too, as I do not remember if their was a software config dependency on the host port.


      1. From what I remember, shutting off either the host or client portion of the USB driver disables them both.  Both are needed to make the OTG (On The Go) driver active.  Then again, that was when configuring through Kconfig.  Maybe you can manually undef CONFIG_USB_GADGET and get away with it?  I tried shutting down USB client support and my USB host port wasn't recognized anymore (no init messages for it in the kernel log on startup).

        1. Thanks for the feedback Andrew and Rob.

          Looks like there was a dependency on the host port.

          What I did was :

          1.  Changed the CONFIG_USB_GADGET from y to n in linux_dev/KERNEL/.config
          2. Disabled full rebuild, and skipped the make_menuconfig() in linux_dev/build_script

          After recompiling the gadgets are disabled, but the host port also seems broken.

          Then I:

          1. Re-enabled CONFIG_USB_GADGET
          2. Commented out the lines g_multi-y:= multi.o and obj-$(CONFIG_USB_G_MULTI)      += g_multi.o in linux-dev/KERNEL/drivers/usb/gadget/Makefile

          Now the host port works OK but there is no g_multi module, so the gadgets are dead.  This works for me.

          There is a CONFIG_USB_G_MULTI in .config, maybe this is a better way to handle things.  I'll take a look in the kernel config menus . 



          1. The gadget options are handled in the following kernel config menu:  Device Drivers->USB support ->USB Gadget

            It looks like different combinations can be configured (for eg. disable mass storage, enable ethernet, disable CDC).

            Anyway I disabled most of them, built the kernel normally and results are good, the gadgets are non functional and the host port is OK.


  70. Hi all,

    There seems to be upstart config files in /etc/init, for example networking.conf.  But dpkg --get-selections | grep upstart returns nothing.

    Is upstart installed?

    If yes then why doesn't dpkg know about it?

    If no then are these files redundant?



    1. Hi Raymond,

      First, only Ubuntu uses upstart by default.  However since Ubuntu share a base with Debian, many Debian packages that use the classic systemv startup scripts also install their upstart variant script.


  71. Thanks Robert, I really appreciate your prompt and knowledgeable replies.

    Seems obvious in hindsight!

  72. Hi

    I'm pretty new at this in terms of building kernels and stuff but I think thats what I am going to end up doing.

    I have a Maplin USB keyboard mouse built by Ortek. I've looked around and found that some time ago a patch for the same product was produced. The driver now resides in drivers/hid/Kconfig for the PKB-1700 and WKB-2000. Mine is modelled N99KA but is the same as the PKB-1700.

    I just don't know what to do with the information. It isn't something I've had to address before. I have built kernels before but not in this millenia so I'm really rusty on that.

    I used you're instructions to get Debian, two versions of Ubuntu successfully onto the bone and into the emmc. So thank you very kindly for your efforts there. That's when I discovered that this keyboard/mouse thing wasn't working.

    A few days pondering and searching found me the driver above but then the question is what do I do with it.

    Sorry for being long winded and a bit thick. I don't want to do something an cock the whole thing up.




    1. Hi Michael,

      There are thousands of hid usb devices, the module for this one is enabled.

      linux-dev$ cat patches/defconfig | grep ORTEK

      First I was not able to find the patch/driver you referenced.  However, there has not been much of changes done to the driver since v3.8.x so it would be trivial to backport anything written for mainline back to v3.8.x.


  73. Jay

    I am unable to connect the BBB g_mass_storage gadget to a USB 1.x host.  I am also not able to connect the BBB to a USB 2.0 host using a 1.x hub in between.  I suspect there is a bug in the gadget driver for a usb full-speed connection.

    I am using the debian wheezy (bone26) distribution based on v3.8.  I'm not sure if the full-speed issue is fixed in v3.12, but from my reading it appears that the gadget drivers are not working in anyting above v3.8.  Is there a know problem with the full-speed connection of the gadget driver?  Is there another distribution I should use that might not have this problem?  Where is the best place to go to seek help for this issue?

    Thanks in advance, Jay.

    1. Hi Jay,

      In the past with the musb ip used on similar hardware from TI, there have been many problems with USB 1.0/1.1 hardware.  To be problem free, only use USB 2.0+ hub/hosts.

      You are free to use any distribution you like.

      The 3.8 based kernel used here is based on the upstream tree:

      For 3.12.x, where USB host is still broken, it's the 3.12 branch of the same repo listed before.

      Of course on pure mainline, only the ethernet port works at the moment, mmc should be fixed in the next v3.13-rc0 merge...


  74. Hi

    Ortech Palm keyboard/mouse using hid-ortek.c driver.

    For those that don't know, this is being sold by Maplin with a model number N99KA.

    I think I might have got the sources from the wrong place but I'm not sure how to get them from the right place.

    I found this:

    and it looks like it is more current then the one I'm getting with apt-get sources i.e. 3.2 and not 3.8 as it should be.

    If I try and find the sources for 3.8 they don't exist because 'apt-cache search linux-headers-$(uname -r)' returns nothing.

    It wont let me build kernel stuff from an earlier build. When I moved the stuff to my user area it then complained about me building kernel stuff from user space.

    It's like I'm so close yet so far from getting this working. Any ideas welcome apart from go for a pint, I don't drink.




    PS Robert: I sent an email then thought if it was put here then anyone else looking for this would find the discussion.




    1. Hi Michael,

      We are using an externally built kernel for these devices, so the version you download thru "apt-cache search" will not work for you as it does not match the kernel version used.

      Mainline is:

      For official release you can use a script written by gkanidl to download the "linux-headers" and setup the build environment on the device.



  75. Hi Robert

    Further to the saga of the Maplin (cortek) keyboard.....

    If I use the script and get the sources.

         Copy the hid bits to my user and compile them I get a problem with oldconfig etc.

         Use make menuconfig and set the right flags to get hidusb and cortek keybboard the kernel then gets built (loooonnnng time zzzzzzz). after tat I have files with a .o extension and not .ko a I expected. If I then take the hid bits to my user and compile I get some of the .ko files. One that is strange is that now I get a uhid.ko and not a hid.ko and no usbhid.ko nor even a usbhid.o. If I modprobe the hid-cortek.ko and reboot then dmesg tells me that its seeing the keyboard correctly but it still doesnt work. It has as a side issue installed a load of bluetooth files that weren't there before.

    What i haven't tried is to install the new kernel fully as per this page ''. Thats what I will try tomorrow and fingers crossed it 'might' work.

    I think there must be a flag not being set somewhere, the one you set in menuconfig, for usbhid. Though I could, of course, be completely wrong.

    I thought you and maybe one other person in the universe would be interested where I was up to. nerds like me that spend days trying to do things like this are not that thick on the ground in Warrington. Or should that be that I'm thick for doing it.






  76. well its 3:30am and I went all the way with make until ...


    MK_FW   firmware/am335x-pm-firmware.bin.gen.S

    make[1]: *** No rule to make target `firmware/am335x-pm-firmware.bin', needed by `firmware/am335x-pm-firmware.bin.gen.o'.  Stop.

    make: *** [firmware] Error 2


    tried make install but the same error stops it


    ah well twas a valiant try.

    not sure what to do now, going to bed.


    1. You can grab the firmware binary from:;a=blob;f=bin/am335x-pm-firmware.bin;h=464441213eeb46308fb5cc1af86b4e304450ceb0;hb=HEAD

      It's in the *.diff but doesn't seem to get applied with "patch -p1 < .."



  77. Hi

    I got hid-ortek.ok built, and read somewhere its actually easier if the whole kernel was built before doing it. At the moment its using usbhid and thats wrong, its a hid and has its own structure. You cant get usbhid to let hid-ortek sit between it and the keyboard and that doesnt touch on the mousepad. So I need to bind the keyboard to hid-ortek and not usbhid.

    Now just need to figure how to use the new-bind system and then hopefully that will be the last brick in the wall.

    I must say the way this is done is horrendous but thats the USB bodies imposing things. Once I've managed it I'll try and do a step by step guide in the hope it helps someone else. The info that is around is so fragmented, doesnt explain whats happening or why you do things.

    One other thing is about direct compile and modprobe or use the tools provided in the kernel build process. the modprobe way is like hacking, the kernel build a defined path, its just noone has written the route down.

    We all have to understand that in many ways this is all new stuff even for experts like yourself. Ive been around linux for 10 years and computers for more than 30 but never at this low level except in the very early days, the nearest I have been was in writing machine controller dlls in the 90s.

    A by the by to that is that my brother has given me a Toshiba EX20 programmable controller to play with, now I wonder whether I can get the beaglebone to control that!




  78. Hi all:

    I am having trouble cross compiling with the openssl library.

    The code compiles OK natively on the bbk using

    gcc main.c -lssl

    On my ubuntu PC I am using the linaro gcc compiler used to build the kernel. ie.


    If I copy the ssl library from the bbk (/usr/lib/arm-linux-gnueabihf/  to myLibs on the ubuntu PC, then try

    $CC main.c -L /myLibs/ -lssl

    I get

    main.c:(.text+0x54): undefined reference to `SHA256_Init'

    main.c:(.text+0x96): undefined reference to `SHA256_Update'

    main.c:(.text+0xc8): undefined reference to `SHA256_Final'

    myLibs// undefined reference to `BIO_pop@OPENSSL_1.0.0'


    Any help is appreciated.




    1. I copied and from the target to the host. Now

      $CC main.c -L /myLibs/ -lssl -lcrypto -lz

      on the host terminates with no errors.

      1. BTW:  One of the advantages of running Debian/Ubuntu on these boards.  We do not have to cross compile, as every dependency can be easily installed instead and then built on target.  It saves a lot issues with making sure we have every dependency..


        1. Hi Robert,

          Indeed that is a nice advantage. 

          I am not sure I fully understand your comment.  In my case I am using Eclipse as a development environment on my x86 ubuntu machine, so that forces me to cross-compile, correct ?

          Am I missing something and wasting time figuring out the dependencies?



    Hi Robert


    That was until ...

    I tried to put lxde on. as soon as the screen comes up the keyboard stops. so i uninstalled each bit of lxde till there was only one thing left ...

    [   52.681735] tilcdc 4830e000.fb: timeout waiting for framedone

    now Ive looked everywhere for this, how do I delete it?

    Because this is what stops my keyboard working!!

    Ive al