Kemp’s Blog

A technical blog about technical things

  • Error building grep for OpenEmbedded

    This is another error related to using a newer version of texinfo than expected. It’s also another “wait for it to fail and then edit in the working directory” solution unless someone can provide a better option.

    Once the build has failed with the following message:

    grep.texi:291: @itemx must follow @item

    open up $GUMSTIXTOP/tmp/work/x86_64-linux/grep-native-2.5.1-r2/grep-2.5.1/doc/grep.texi and delete lines 286 to 290 (inclusive). Side-effect: your generated documentation will no longer be perfect.



  • Error fetching packages for OpenEmbedded

    For my third post on compiling OpenEmbedded for Gumstix on a modern system, we come across errors downloading base-passwd, busybox, curl, dosfstools, fakeroot, file, gconf-dbus, git, iana-etc, ipkg, ipkg-utils, libxml-parser-perl, libxml2, mime-support, module-init-tools, netbase, openssl, pax-utils, pcmciautils, popt, pxaregs.c, setserial, sysvinit, tinylogin, tslib, udev, update-alternatives, update-rc.d, usbutils, util-linux, and zlib.

    This is a simple problem and a simple fix: old versions of these packages are either moved to a different location or removed entirely, so we change the URLs that the build process uses. Beware: using alternate sources for these packages carries an inherent risk – you may be downloading a modified version without knowing. Where possible you should also add hash entries for each file based on a known good value.

    Read more…


  • gcc error building Python in OE

    This error message provides very little clue as to what the actual problem is when compiling Python during the OpenEmbedded build process:

    gcc: error: directory”: No such file or directory

    As it turns out (thanks to the tip here), this is caused by a change in subversion.

    Luckily it’s easy to inject your own copy earlier in the path than the one it usually finds. Simply create a script called svnversion in $GUMSTIXTOP/bitbake/bin and insert the following:

    #!/bin/sh
    echo exported

    Your problem should be solved.



  • Missing find.pl compiling OE

    I received the following error when compiling OpenEmbedded due to a file that is no longer included in Perl distributions:

    | Can’t locate find.pl in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at perlpath.pl line 7.

    There are ways to integrate a copy of the file into the build process, but my inexperience with bitbake et al. meant that when they didn’t work I couldn’t troubleshoot very well myself. Instead, I simply placed the file in /etc/perl. The contents of the file, which should be called find.pl, can be found below.

    Read more…


  • binutils errors compiling OE

    The second problem I encountered in building OpenEmbedded for our Gumstix devices was a failure when downloading binutils. Specifically, the checksum found for the downloaded file didn’t match the one that the build process expected. The message given is:

    NOTE: The MD5Sums did not match. Wanted: ‘9d22ee4dafa3a194457caf4706f9cf01’ and Got: ‘ccd264a5fa9ed992a21427c69cba91d3’
    NOTE: Task failed: Checksum of ‘ftp://ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2’ failed
    NOTE: package binutils-cross-2.18-r1: task do_fetch: failed
    ERROR: TaskFailed event exception, aborting
    NOTE: package binutils-cross-2.18: failed
    ERROR: Build of /home/kemp/gumstix/gumstix-oe/org.openembedded.snapshot/packages/binutils/binutils-cross_2.18.bb do_fetch failed
    ERROR: Task 317 (/home/kemp/gumstix/gumstix-oe/org.openembedded.snapshot/packages/binutils/binutils-cross_2.18.bb, do_fetch) failed

    The error is due to an incompatibility between older versions of binutils and newer versions of texinfo. This post show you how to resolve this.

    Read more…


  • patch version error compiling OE

    I have had to check out our Gumstix stock and find out if it’s still usable. They are a mix of old Connex and (non-Pro) Verdex boards and so the only OS I can build for them is OpenEmbedded. I have yet to find out if the currently available version from the Gumstix website actually works with these versions of the boards, but one step at a time…

    This post walks through how to solve the following error message when building OpenEmbedded on modern systems:

    | configure: error:
    | quilt requires at least version 2.4 of GNU patch. You can download a
    | current version of patch from ftp.gnu.org, or if you already have GNU patch
    | then you can supply its path with the ‘–with-patch=’ option.

    Read more…


  • OpenModelica vs Dymola: connect

    In general, I target Modelica simulation at OpenModelica for the simple reason that it’s free for me to run anywhere. Having had to retarget one of the simulations at Dymola, I encountered a few differences. This post gives a quick overview of one such difference in using the connect function.

    Read more…


  • Fixing webcam after Ubuntu 14.04 upgrade

    After upgrading to Ubuntu 14.04 (Trusty Tahr), my wife found that her webcam (integrated into a Dell monitor) was no longer available in Skype and other applications. The microphone was available, so the USB connection to the monitor appeared functional. The problem turned out to be that she was not in the video group, which is required in order to access webcams. The following command resolved this:

    sudo adduser user video

    (replace user with your own username)

    After this you will have to log out and back in and then you should have access to your webcam.

    I’m not sure if this also applies for a new install, so if anyone can confirm/deny then that would be great.



  • Packaging a Python app for Windows

    This post gives an overview of the steps to package a Python application for distribution to Windows users in such a way that they don’t have to worry about installing Python, additional modules, and so on. This is significantly more convenient if they are not an experienced computer user, or if they simply have no need for Python otherwise. My particular approach is based around a combination of PyInstaller (to create a Windows executable) and NSIS (to create the installer). I’m not an expert in this and in fact this is my first experimentation outside of py2exe, so your own judgement should be applied. However, this technique worked for me and seems to have been used by people previously (for example, this Stack Overflow answer).

    Read more…


  • Modelica external C functions

    This post looks into getting external functions working in OpenModelica and, to an extent, Dymola. There are a couple of approaches and I hope to give you a better idea of what to look out for when you come to implement your functions.

    You may have noticed that my series on Modelica socket communication stalled somewhat after only one part). Originally, this post was going to be part 2 of the series, but it has become somewhat more general, so I’m posting it as a separate thing.

    Read more…