<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>electrons on radio</title>
	<atom:link href="http://www.electronsonradio.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.electronsonradio.com</link>
	<description>a blog about math, science and engineering</description>
	<lastBuildDate>Tue, 17 Apr 2012 12:26:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Quick start to Angstrom on the BeagleBoard</title>
		<link>http://www.electronsonradio.com/2012/02/quick-start-to-angstrom-on-the-beagleboard/</link>
		<comments>http://www.electronsonradio.com/2012/02/quick-start-to-angstrom-on-the-beagleboard/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 02:37:01 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=111</guid>
		<description><![CDATA[Every time I put down my BeagleBoard for a while I forget what is needed to install Angstrom to get it running how I like. So to remind myself in the future, I made a quick start guide: First I grab an image from Narcissus Set the machine to BeagleBoard, and choose the options though [...]]]></description>
			<content:encoded><![CDATA[<p>Every time I put down my BeagleBoard for a while I forget what is needed to install Angstrom to get it running how I like. So to remind myself in the future, I made a quick start guide:</p>
<p>First I grab an image from <a href="http://narcissus.angstrom-distribution.org/  ">Narcissus</a></p>
<p>Set the machine to BeagleBoard, and choose the options though advanced complexity.<br />
Set all defaults except I add the following packages:<br />
Python<br />
OpenCV headers and libs<br />
All kernel modules<br />
Wireless-tools<br />
Bootloader Files</p>
<p>Check <a href="  http://treyweaver.blogspot.co.nz/2010/10/installing-angstrom-on-beagleboard-xm.html">this guide</a> for installing the image.</p>
<p>If having problem with serial, check post on <a href="http://www.electronsonradio.com/2011/06/beagleboard-character-faults-on-serial-after-boot-uart-wakeup-issue/">serial issues</a>.</p>
<p>Setup Angstrom using some details from <a href="http://www.gigamegablog.com/2012/01/29/beaglebone-linux-101-configuring-angstrom-linux/">this BeagleBone guide</a>.</p>
<p>Add user with &#8220;adduser&#8221;<br />
create .profile for user to set path environment variable:<br />
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin<br />
export PATH</p>
<p>Reboot with<br />
shutdown -r now</p>
<p>Halt with<br />
shutdown -h now</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2012/02/quick-start-to-angstrom-on-the-beagleboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic reddit api access in python</title>
		<link>http://www.electronsonradio.com/2012/01/basic-reddit-api-access-in-python/</link>
		<comments>http://www.electronsonradio.com/2012/01/basic-reddit-api-access-in-python/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 04:42:21 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=109</guid>
		<description><![CDATA[Recently I&#8217;ve been working a bit with the reddit api and have made a basic python script for grabbing info off reddit through the api. You can check out the script on my github (link). It currently has basic functionality for authorization, cookie handling and will grab a user&#8217;s info. Before using and modifying you [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been working a bit with the reddit api and have made a basic python script for grabbing info off reddit through the api. You can check out the script on my github (<a href="https://github.com/david-electrons" title="Github repo" target="_blank">link</a>). It currently has basic functionality for authorization, cookie handling and will grab a user&#8217;s info. </p>
<p>Before using and modifying you should pay attention to the <a href="https://github.com/reddit/reddit/wiki/API" title="Reddit API rules" target="_blank">reddit&#8217;s api rules</a> and <a href="http://www.reddit.com/help/faq" title="Reddit's general rules" target="_blank">reddit&#8217;s general rules</a>. Specially, make fewer than one request per two seconds, don&#8217;t lie about your user-agent and no &#8220;vote cheating&#8221;. Reddit has implemented anti-cheating and anti-spam code which is not available on their repo which detects misuse. It will find you and will ban you. In general, just be nice.</p>
<p>To get up and running you&#8217;ll need to setup a dv_settings.json file which contains the account information for login and target username. Here is an example:</p>
<p><code>{<br />
        "account": {<br />
                "username": "user123",<br />
                "password": "password123"<br />
        },<br />
        "target": "targetusername",<br />
        "user-agent": "reddit info grabber v0.1"<br />
}</code></p>
<p>The script also needs write access to the filesystem to create the cookies file.</p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2012/01/basic-reddit-api-access-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cp210x usb to serial converter linux driver</title>
		<link>http://www.electronsonradio.com/2011/07/cp210x-usb-to-serial-converter-linux-driver/</link>
		<comments>http://www.electronsonradio.com/2011/07/cp210x-usb-to-serial-converter-linux-driver/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 11:35:21 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Hardware Development]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=90</guid>
		<description><![CDATA[Silicon labs have a range of usb to serial converters called the cp210x series. With modern OEM computers moving away from installing serial ports these devices are becoming more and more useful. Now, cp210x actually refers to the chipset that is doing the conversion of USB to UART. So you can install these chips in [...]]]></description>
			<content:encoded><![CDATA[<p>Silicon labs have a range of usb to serial converters called the cp210x series. With modern OEM computers moving away from installing serial ports these devices are becoming more and more useful. Now, cp210x actually refers to the chipset that is doing the conversion of USB to UART. So you can install these chips in your own designs to completely rid the dependence on serial cables. In windows Silicon Labs provide customizable drivers which means you can provide your own branding. For example, if I made a device with a cp2102 chip I could set it up so when someone plugged it into their computer it would read, &#8220;Dave&#8217;s awesome USB device&#8221;. </p>
<p>So I have been using the cp2102 evaluation kit from Silicon Labs. Basically because it is a robust and reliable method of USB-Serial conversion. An added benefit of these device is that they can support speeds higher than what is available with standard RS232 hardware. For example I can transfer data with a baud rate of 2Mbps. </p>
<p>I recently received a question about using cp210x from Silicon Labs with linux. So linux has basic support [2] for cp210x devices from a community made driver (as of 2.6.39). Silicon Labs have released new products in this product range, namely cp2105 for example, which the current linux driver doesn&#8217;t recognise. </p>
<p>For example:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
usb 1-1.2: device v10c4 pea70 is not supported
usb 1-1.2: New USB device found, idVendor=10c4, idProduct=ea70
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=5
usb 1-1.2: Product: CP2105 Dual USB to UART Bridge Controller
usb 1-1.2: Manufacturer: Silicon Labs
usb 1-1.2: SerialNumber: 0000BBA1
</pre>
<p>On the silicon labs website [1], they have released a new version of the driver. Unfortunately this doesn&#8217;t work out of the box and seems to be aimed towards Red Hat users. So I am going to briefly go through how to build and install the new driver in Ubuntu. To make your life easier I have done the required modifications and have them here for download.</p>
<p>Drivers: <a href="http://www.electronsonradio.com/downloads/cp210x.tar">cp201x.tar</a></p>
<p>This driver supports the following devices:<br />
CP2101<br />
CP2102<br />
CP2103<br />
CP2104<br />
CP2105</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
./configure
make
make install
</pre>
<p>For example:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
dave@ubuntu:~/cp210x_silabs/cp210x-3.1.0/cp210x$ ./configure
Kernel version  : 2.6.38-8-generic
Module extension        : .ko
KO File   : cp210x.ko
Kernel Dir  : /lib/modules/2.6.38-8-generic/build
Module File  : cp2101.ko
Module Dir  : /lib/modules/2.6.38-8-generic
Current Dir  : /home/dave/cp210x_silabs/cp210x-3.1.0/cp210x
</pre>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
dave@ubuntu:~/cp210x_silabs/cp210x-3.1.0/cp210x$ make
make -C /lib/modules/2.6.38-8-generic/build -I /home/dave/cp210x_silabs/cp210x-3.1.0/cp210x M=/home/dave/cp210x_silabs/cp210x-3.1.0/cp210x modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.38-8-generic'
  CC [M]  /home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.o
/home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.c:454:1: warning: &quot;/*&quot; within comment
/home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.c:723:1: warning: initialization from incompatible pointer type
/home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.c:724:1: warning: initialization from incompatible pointer type
/home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.c:728:1: warning: initialization from incompatible pointer type
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.mod.o
  LD [M]  /home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic'
</pre>
<p>A couple of warnings in there, but we will ignore them for the time.</p>
<p>You can see from the output that it made the file: /home/dave/cp210x_silabs/cp210x-3.1.0/cp210x/cp210x.ko</p>
<p>You can do a &#8220;make install&#8221; but I didn&#8217;t want it to overwrite my existing driver:</p>
<p>Backed up my old driver</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
dave@ubuntu:~/cp210x_silabs/cp210x-3.1.0/cp210x$ sudo mv /lib/modules/2.6.38-8-generic/kernel/drivers/usb/serial/cp210x.ko cp210x.ko.ori
</pre>
<p>Then copied over the new one:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
dave@ubuntu:~/cp210x_silabs/cp210x-3.1.0/cp210x$ sudo mv cp210x.ko /lib/modules/2.6.38-8-generic/kernel/drivers/usb/serial/cp210x.ko
</pre>
<p>I then did a depmod, then a modinfo.</p>
<pre class="brush: plain; collapse: true; light: false; title: ; toolbar: true; notranslate">
dave@ubuntu:~/cp210x_silabs/cp210x-3.1.0/cp210x$ sudo depmod
dave@ubuntu:~/cp210x_silabs/cp210x-3.1.0/cp210x$ sudo modinfo cp210x
filename:       /lib/modules/2.6.38-8-generic/kernel/drivers/usb/serial/cp210x.ko
version:        v1.10.0
license:        GPL
description:    Silicon Labs CP210x USB Serial Adaptor Driver
author:         RMS
srcversion:     35585FF341190212CF9E53A
alias:          usb:v18EFpE00Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v16D6p0001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v166Ap0303d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13ADp9999d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C5pEA61d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4pF004d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4pF003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4pF002d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4pF001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4pEA70d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4pEA61d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4pEA60d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p846Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p83A8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p8341d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p8293d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p826Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p822Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p8218d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p81E7d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p81E2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p81C8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p81ACd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p81A6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p819Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p815Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p814Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p814Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p813Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p8115d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p80F6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p80DDd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p80CAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p807Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p8066d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p8054d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p8053d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p803Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10C4p800Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10B5pAC70d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10ABp10C5d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v10A6pAA26d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0FCFp1006d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0FCFp1004d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0FCFp1003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v08E6p5501d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0489pE000d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0471p066Ad*dc*dsc*dp*ic*isc*ip*
depends:        usbserial
vermagic:       2.6.38-8-generic SMP mod_unload modversions 686
parm:           debug:Enable verbose debugging messages (bool)
</pre>
<p>Update:<br />
1. I have just noticed that make install doesn&#8217;t work for the driver I attached. Just copy it over like I did above, then do a depmod.<br />
2. I think that the driver version hasn&#8217;t been incremented, as it still reads v1.10.0 after update. You could update the source if you want it to read correctly.</p>
<p>References<br />
[1] http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx<br />
[2] http://www.etheus.net/CP210x_Linux_Driver</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/07/cp210x-usb-to-serial-converter-linux-driver/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Angstrom on the BeagleBoard: Fixing your MAC Address.</title>
		<link>http://www.electronsonradio.com/2011/07/angstrom-on-the-beagleboard-fixing-your-mac-address/</link>
		<comments>http://www.electronsonradio.com/2011/07/angstrom-on-the-beagleboard-fixing-your-mac-address/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 17:05:40 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=81</guid>
		<description><![CDATA[Just a quick post today about how to fix the MAC address on your BeagleBoard. Unfortunately the MAC address isn&#8217;t set in the EEPROM of the usb network adapter so the driver randomly generates a new one on startup. To overcome this I use a patch for the driver to pickup the MAC Address from [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick post today about how to fix the MAC address on your BeagleBoard. Unfortunately the MAC address isn&#8217;t set in the EEPROM of the usb network adapter so the driver randomly generates a new one on startup. </p>
<p>To overcome this I use a patch for the driver to pickup the MAC Address from the kernel boot arguments. The same as here [1]. Unfortunately OpenEmbedded had trouble reading that patch file. But &#8220;good news everybody&#8221;, I rehashed it and it is linked below:</p>
<p>Patch: <a href="http://www.electronsonradio.com/downloads/kernel-2.6.32-cli-mac-address.patch">kernel-2.6.32-cli-mac-address.patch</a></p>
<p>You can then place the following line in uEnv.txt to set your MAC address:</p>
<p>optargs=&#8221;ethaddr=00:11:22:33:44:66&#8243;</p>
<p>Then on startup you can tell if it is set:</p>
<p>[   11.681304] eth0: register &#8216;smsc95xx&#8217; at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 00:11:22:33:44:66</p>
<p>or by looking at ifconfig.</p>
<p>Update: Another method is to use the patch from [2], which will be included upstream in future kernels.</p>
<p>Patch: <a href="http://www.electronsonradio.com/downloads/smsc95xx-generate-random-MAC-address-once-not-every-ifup.patch">smsc95xx-generate-random-MAC-address-once-not-every-ifup.patch</a></p>
<p>This is easier than using kernel arguments because then you can then change your MAC address without a restart:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
ifconfig usb0 down
ifconfig usb0 hw ether 00:11:22:33:44:55 up
</pre>
<p>Reference:<br />
[1] <a href="http://maxgalemin.blogspot.com/2010/11/patch-for-fixing-random-mac-address-on.html">http://maxgalemin.blogspot.com/2010/11/patch-for-fixing-random-mac-address-on.html</a><br />
[2] <a href="https://patchwork.kernel.org/patch/263861/">https://patchwork.kernel.org/patch/263861/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/07/angstrom-on-the-beagleboard-fixing-your-mac-address/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Playstation Eye + gstreamer examples</title>
		<link>http://www.electronsonradio.com/2011/06/playstation-eye-gstreamer-examples/</link>
		<comments>http://www.electronsonradio.com/2011/06/playstation-eye-gstreamer-examples/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 04:33:36 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[PSEye BeagleBoard Capture]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=69</guid>
		<description><![CDATA[Here are a few examples of using the Playstation Eye with gstreamer: Streaming live video from the camera at 1fps. gst-launch -v v4l2src ! ffmpegcolorspace ! video/x-raw-yuv,width=640,height=480,framerate=\(fraction\)30/1 ! queue ! videorate ! video/x-raw-yuv,framerate=1/1 ! jpegenc ! multipartmux ! tcpserversink host=192.168.1.105 port=5000 This can be captured in VLC: vlc tcp://192.168.1.106:5000 Single image capture: gst-launch v4l2src num-buffers=1 [...]]]></description>
			<content:encoded><![CDATA[<p>Here are a few examples of using the Playstation Eye with gstreamer:</p>
<p>Streaming live video from the camera at 1fps.<br />
<code>gst-launch -v v4l2src ! ffmpegcolorspace ! video/x-raw-yuv,width=640,height=480,framerate=\(fraction\)30/1 ! queue ! videorate ! video/x-raw-yuv,framerate=1/1 ! jpegenc ! multipartmux ! tcpserversink host=192.168.1.105 port=5000</code><br />
This can be captured in VLC:<br />
vlc tcp://192.168.1.106:5000</p>
<p>Single image capture:<br />
<code>gst-launch v4l2src num-buffers=1 ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! ffmpegcolorspace ! videorate ! video/x-raw-rgb,framerate=1/1 ! ffmpegcolorspace ! pngenc snapshot=true ! filesink location=test.png</code><br />
I noticed that the PSEYE ignores the &#8220;num-buffers=1&#8243; parameter so I use the snapshot flag on pngenc instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/06/playstation-eye-gstreamer-examples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BeagleBoard character faults on serial after boot (UART wakeup issue)</title>
		<link>http://www.electronsonradio.com/2011/06/beagleboard-character-faults-on-serial-after-boot-uart-wakeup-issue/</link>
		<comments>http://www.electronsonradio.com/2011/06/beagleboard-character-faults-on-serial-after-boot-uart-wakeup-issue/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 12:34:10 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=64</guid>
		<description><![CDATA[I have been getting junk/corrupting/incorrect characters on my serial line after I rebuilt Angstrom with OpenEmbedded. Here is an example: I managed to track it down to &#8220;UART wakeup and timeout options&#8221; as described here [1] and here [2]. The first character I type is rubbish, because of the wakeup and everything after that becomes [...]]]></description>
			<content:encoded><![CDATA[<p>I have been getting junk/corrupting/incorrect characters on my serial line after I rebuilt Angstrom with OpenEmbedded. Here is an example:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
.---O---.
|       |                  .-.           o o
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beagleboard ttyS2

Angstrom 2011.03 beagleboard ttyS2

beagleboard login: ¹root
Ðass÷ïòdº
</pre>
<p>I managed to track it down to &#8220;UART wakeup and timeout options&#8221; as described here [1] and here [2]. The first character I type is rubbish, because of the wakeup and everything after that becomes corrupted. I noticed [3] has a solution which has outdated locations, once I found the new locations of these settings disabling the wakeup option of the ttyS2 uart fixed the problem.</p>
<p><code>echo disabled > /sys/devices/platform/serial8250.2/power/wakeup</code></p>
<p>Fixed:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
.---O---.
|       |                  .-.           o o
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beagleboard ttyS2

Angstrom 2011.03 beagleboard ttyS2

beagleboard login: root
root@beagleboard:~#
</pre>
<p>You could also increase the timeout so that the UART doesn&#8217;t go to sleep but this isn&#8217;t very useful if you leave it running in the background!</p>
<p><code>root@beagleboard:~# tail /sys/devices/platform/serial8250.2/sleep_timeout<br />
5</code></p>
<p>Update: 2011-07-10<br />
Unfortunately I&#8217;ve still had a few issues with reliability on the serial port to the BeagleBoard. Appears to be some sort of grounding issue (combined with the timeout issue). I found it all clears up if I do the above and ground the BeagleBoard USB otg port to one of my laptop&#8217;s USB ports.</p>
<p>Update: 2012-04-18<br />
I&#8217;ve found newer Angstrom builds don&#8217;t have this problem anymore.</p>
<p>[1] <a href="http://groups.google.com/group/beagleboard/browse_thread/thread/718af8f541a8eed2/d803c87e452092f9?lnk=gst&#038;q=serial+characters#d803c87e452092f9">http://groups.google.com/group/beagleboard/browse_thread/thread/718af8f541a8eed2/d803c87e452092f9?lnk=gst&#038;q=serial+characters#d803c87e452092f9</a><br />
[2] <a href="http://groups.google.com/group/beagleboard/browse_thread/thread/a794ca286fbea94f">http://groups.google.com/group/beagleboard/browse_thread/thread/a794ca286fbea94f</a><br />
[3] <a href="http://elinux.org/OMAP_Power_Management#UART_wakeup_and_timeout_options">http://elinux.org/OMAP_Power_Management#UART_wakeup_and_timeout_options</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/06/beagleboard-character-faults-on-serial-after-boot-uart-wakeup-issue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenEmbbeded: Adding custom patches to kernel</title>
		<link>http://www.electronsonradio.com/2011/05/openembbeded-linux-kernel-adding-pseye-patched-modules/</link>
		<comments>http://www.electronsonradio.com/2011/05/openembbeded-linux-kernel-adding-pseye-patched-modules/#comments</comments>
		<pubDate>Fri, 27 May 2011 16:17:40 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>
		<category><![CDATA[PSEye BeagleBoard Capture]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=54</guid>
		<description><![CDATA[As I previously discussed the drivers for the Playstation Eye camera in the opkg Angstrom repo need to be patched to be able to use additional features of the camera. Here I show how I built the kernel in open embedded, added playstation eye drivers to the kernel and applied the required patches for the [...]]]></description>
			<content:encoded><![CDATA[<p><p class="flickrTag_container"><a href="http://www.flickr.com/photos/40839498@N00/5807091989/" class="flickr"><img src="http://farm4.static.flickr.com/3538/5807091989_62da55c222_m.jpg" alt="Array" class="flickr small photo" /></a></p></p>
<p>As I previously discussed the drivers for the Playstation Eye camera in the opkg Angstrom repo need to be patched to be able to use additional features of the camera. Here I show how I built the kernel in open embedded, added playstation eye drivers to the kernel and applied the required patches for the driver.</p>
<p>Before you start with this I&#8217;d recommend you at least do a full system build (maybe download only) in OpenEmbedded so that it downloads all the archives and so you don&#8217;t have to mess around with doing this half way through your build. I usually leave it overnight to build, it is infinitely annoying if it has stopped halfway because the download source is broken. </p>
<p>You can download the specific pseye patch from [1] or you can roll your own from more recent versions ov534.c from the LinuxTV git [2]. </p>
<p>So you need to know which kernel you will be building. This is defined by the machine configuration. So for the beagleboard, have a look in here: conf<br />
For me it says something like:<br />
PREFERRED_PROVIDER_virtual/kernel = &#8220;linux-omap&#8221;<br />
Then look for the kernel version for example, v2.6.37</p>
<p>Therefore you can put the gspca patch in<br />
/recipes/linux/linux-omap<br />
And add the patch into the recipe file:<br />
/recipes/linux/linux-omap_git.bb<br />
Add a line to this file in the SRC_URI_append field for the patch- use other patches as a template </p>
<p>In the kernel I was using, this driver wasn&#8217;t built by default so you need to change your kernel conf (defconf)<br />
Which can be found in: /recipes/linux/linux-omap/beagleboard<br />
So that it reads:<br />
CONFIG_USB_GSPCA_OV534=m<br />
(Ie: builds it as a module)</p>
<p>Then you do your usual OE build (Hint: <a href="http://www.angstrom-distribution.org/building-angstrom">http://www.angstrom-distribution.org/building-angstrom</a>)<br />
Such as:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
MACHINE=beagleboard ./oebb.sh config beagleboard
MACHINE=beagleboard ./oebb.sh update
MACHINE=beagleboard ./oebb.sh bitbake virtual/kernel
</pre>
<p>You can then copy the resulting image to your SD card and give it a test.</p>
<p>Update 1: 29/05/2011<br />
You can check after building to see if your patch was applied by looking at your patch log in the temp/work directory, for example in:<br />
tmp-angstrom_2008_1/work/beagleboard-angstrom-linux-gnueabi/linux-omap-psp-2.6.32-r100c+gitr5fc29e7b2a76a64a739f857858ef0b98294aa155/temp/log.do_patch</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
NOTE: Applying patch 'PSEYE-to-latest.patch' (../sources/openembedded/recipes/linux/linux-omap-psp-2.6.32/PSEYE-to-latest.patch)
</pre>
<p>Otherwise you can do a modinfo on the loaded module to see the updated version<br />
[3] has a example of modinfo before and after the patched modules</p>
<p>References:<br />
[1] <a href="http://kaswy.free.fr/sites/default/files/download/ps3eye/0.5/ps3eyeMT-2.6.31-10-generic.patch">http://kaswy.free.fr/sites/default/files/download/ps3eye/0.5/ps3eyeMT-2.6.31-10-generic.patch</a><br />
[2] <a href="http://git.linuxtv.org/jfrancois/gspca.git?a=history;f=drivers/media/video/gspca/ov534.c;h=0c6369b7fe1892e0fcae05608587e8cd4999f333;hb=HEAD">http://git.linuxtv.org/jfrancois/gspca.git?a=history;f=drivers/media/video/gspca/ov534.c;h=0c6369b7fe1892e0fcae05608587e8cd4999f333;hb=HEAD</a><br />
[3] <a href="http://oftw.wikidot.com/install-ps3-eye-camera-in-ubuntu">http://oftw.wikidot.com/install-ps3-eye-camera-in-ubuntu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/05/openembbeded-linux-kernel-adding-pseye-patched-modules/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Testing the Playstation Eye on the BeagleBoard (basic capture)</title>
		<link>http://www.electronsonradio.com/2011/04/testing-the-playstation-eye-on-the-beagleboard/</link>
		<comments>http://www.electronsonradio.com/2011/04/testing-the-playstation-eye-on-the-beagleboard/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 11:40:29 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[PSEye BeagleBoard Capture]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=49</guid>
		<description><![CDATA[As the title says, I am wanting to simply test the ability to take snapshots from the Playstation Eye connected to a BeagleBoard. Setting up the Playstation Eye was easy and several steps were taken from here WARNING: This is the old driver, which doesn&#8217;t support any features other than capture. See updates below This [...]]]></description>
			<content:encoded><![CDATA[<p>As the title says, I am wanting to simply test the ability to take snapshots from the Playstation Eye connected to a BeagleBoard.</p>
<p>Setting up the Playstation Eye was easy and several steps were taken from <a href="http://mechomaniac.com/node/32">here</a></p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">opkg install kernel-module-gspca-ov534</pre>
<p>WARNING: This is the old driver, which doesn&#8217;t support any features other than capture. See updates below</p>
<p>This will install the <del datetime="2011-05-27T16:29:26+00:00">latest</del> drivers for the playstation eye. This will also install kernel-module-gspca-main. The driver will probably automagically modprobe. Which is fine, but will default to 30fps. <a href="http://wiki.tekkotsu.org/index.php/Sony_PlayStation_Eye_driver_install_instructions">This</a> website has some info about loading the driver with different video modes for support up to 120fps.</p>
<p>Now by using lsusb and lsmod, we can see that the Playstation Eye is attached and the driver is loaded:</p>
<pre class="brush: plain; collapse: true; light: false; title: ; toolbar: true; notranslate">
root@beagleboard:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 002 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 002 Device 004: ID 046d:c31c Logitech, Inc.
Bus 002 Device 005: ID 1415:2000 Nam Tai E&amp;E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
root@beagleboard:~# lsmod
Module                  Size  Used by
rfcomm                 33484  0
ipv6                  249063  8
hidp                   11193  0
l2cap                  30104  4 rfcomm,hidp
bluetooth              49221  3 rfcomm,hidp,l2cap
rfkill                 14838  1 bluetooth
minix                  25759  0
gspca_ov534            13610  0
gspca_main             20729  1 gspca_ov534
rtc_twl                 4451  0
mt9t112                 9246  0
rtc_core               12535  1 rtc_twl
</pre>
<p>Good. How do we test it? This was a bit more problematic than I thought. All I wanted was a simple application which grabbed a snapshot off the camera and saved it to a file. I didn&#8217;t want to have to install a big package which requires lots of dependances. On <a href="http://mechomaniac.com/node/32">this</a> website they use w3cam, which is ideal except it doesn&#8217;t display the colours properly. <a href="http://www.tldp.org/HOWTO/html_single/Webcam-HOWTO/#COMMAND">This</a> website has a few suggestions. The only one avaliable through the Angstrom package browser is Motion. Which is a excellent application, except it segfaults. Their website blames ffmpeg and suggests compiling from source. Which seems like a lot of effort. I came across <a href="http://staticwave.ca/source/uvccapture/">uvccapture</a>, which simply takes webcam snapshots and only requires libjpeg! </p>
<p>Unfortunately the makefile isn&#8217;t setup nicely for cross-compiling. So I did it by hand:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -c v4l2uvc.c
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -c uvccapture.c
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -o uvccapture uvccapture.o v4l2uvc.o /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib/libjpeg.so
</pre>
<p>This is what I got when I first ran it:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
root@beagleboard:~# ./uvccapture
ioctl querycontrol error 22
</pre>
<p><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=506474">Here</a> suggest running it with -m:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
root@beagleboard:~# ./uvccapture -v -m
Using videodevice: /dev/video0
Saving images to: snap.jpg
Image size: 320x240
Taking snapshot every 0 seconds
Taking images using mmap
Resetting camera settings
ioctl querycontrol error 22
Camera brightness level is 20
Camera contrast level is 37
ioctl querycontrol error 22
Camera saturation level is -1
Camera gain level is 20
Saving image to: snap.jpg
</pre>
<p>Brilliant! Here is a test photo:</p>
<p><a href="http://www.electronsonradio.com/wp/wp-content/uploads/2011/04/snap.jpg"><img src="http://www.electronsonradio.com/wp/wp-content/uploads/2011/04/snap-300x225.jpg" alt="" title="Playstation Eye snapshot with the BeagleBoard" width="300" height="225" class="aligncenter size-medium wp-image-50" /></a></p>
<hr />
Update 10/04/2011:<br />
I did all of the above at about 1-2am in the morning, afterwards I set it to take a photo every minute using a cron job. This was the result (I kept the image small as there are 500 frames in there):</p>
<p><a href="http://www.electronsonradio.com/wp/wp-content/uploads/2011/04/snap2011-smaller.gif"><img src="http://www.electronsonradio.com/wp/wp-content/uploads/2011/04/snap2011-smaller.gif" alt="" title="Sunrise! " width="128" height="96" class="aligncenter size-full wp-image-53" /></a></p>
<p>Oh dear. No automatic brightness control. Which is fair enough, except when I manually change it using arguments for uvccapture it has no effect! I will see if I can trace back that error, so that I can control the camera using this tool better.</p>
<p>An &#8220;ioctl querycontrol error 22&#8243; equates to:</p>
<p><a href="http://pubs.opengroup.org/onlinepubs/009695399/functions/ioctl.html">http://pubs.opengroup.org/onlinepubs/009695399/functions/ioctl.html</a>:<br />
[EINVAL]<br />
    The STREAM or multiplexer referenced by fildes is linked (directly or indirectly) downstream from a multiplexer.</p>
<p><a href="http://v4l2spec.bytesex.org/spec/r7667.htm">http://v4l2spec.bytesex.org/spec/r7667.htm</a><br />
EINVAL<br />
    The request or the data pointed to by argp is not valid. This is a very common error code, see the individual ioctl requests listed in Reference I, Function Reference for actual causes.</p>
<p>According to this:<a href="http://v4l2spec.bytesex.org/spec/r13317.htm"> http://v4l2spec.bytesex.org/spec/r13317.htm</a></p>
<p>The struct v4l2_queryctrl id is invalid. The struct v4l2_querymenu id or index is invalid.</p>
<hr />
Update2 11/04/2011:</p>
<p>After a bit of searching and debugging I found that this error is indicative that your driver is incompatible with some sort of control being set, such as brightness. After a quick search for the driver ov534, the version on opkg is the unpatched version which does not include these addition features. So at modprobe you should be able to set these. The follow is the opkg unpatched version, and evidence that these functions don&#8217;t work:</p>
<pre class="brush: plain; collapse: false; light: false; title: ; toolbar: true; notranslate">
root@beagleboard:~# modinfo gspca-ov534
filename:       /lib/modules/2.6.32/kernel/drivers/media/video/gspca/gspca_ov534.ko
license:        GPL
description:    GSPCA/OV534 USB Camera Driver
author:         Antonio Ospite &lt;ospite@studenti.unina.it&gt;
srcversion:     3D02E66445ABF0F2E0C86B6
alias:          usb:v1415p2000d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v06F8p3003d*dc*dsc*dp*ic*isc*ip*
depends:        gspca_main
vermagic:       2.6.32 preempt mod_unload modversions ARMv7
root@beagleboard:~# modprobe -r gspca-ov534
root@beagleboard:~# modprobe gspca-ov534 autogain=1
FATAL: Error inserting gspca_ov534 (/lib/modules/2.6.32/kernel/drivers/media/video/gspca/gspca_ov534.ko): Unknown symbol in module, or unknown parameter (see dmesg)
</pre>
<p>Some references:<br />
<a href="http://v4l2spec.bytesex.org/spec/x542.htm">http://v4l2spec.bytesex.org/spec/x542.htm</a><br />
<a href="http://kaswy.free.fr/?q=en/node/53">http://kaswy.free.fr/?q=en/node/53</a><br />
<a href="http://kaswy.free.fr/?q=en/node/47">http://kaswy.free.fr/?q=en/node/47</a> <------- read this!!!<br />
Latest version of the source can be downloaded from here:<br />
<a href="http://kaswy.free.fr/?q=en/node/38">http://kaswy.free.fr/?q=en/node/38</a></p>
<p>Will update in a few days after compiling the driver. Stay tuned!</p>
<hr />
<p>To make your life easier, here is the binary (including the source) for uvccapture. You will need to opkg install libjpeg8 to run it.</p>
<p>uvccapture v0.5 for arm7a (BeagleBoard) : <a href="http://www.electronsonradio.com/downloads/uvccapture-0.5.tar">link</a></p>
<hr />
<p>If you haven&#8217;t realised already, this page describes how to get the unpatched PSEYE driver up and going from opkg. Another <a href="http://www.electronsonradio.com/?p=54">post </a>describes a process of how to patch the driver.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/04/testing-the-playstation-eye-on-the-beagleboard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building Ångström for the BeagleBoard using OpenEmbedded</title>
		<link>http://www.electronsonradio.com/2011/04/building-angstrom-for-the-beagleboard-using-openembedded/</link>
		<comments>http://www.electronsonradio.com/2011/04/building-angstrom-for-the-beagleboard-using-openembedded/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 10:06:57 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=43</guid>
		<description><![CDATA[OpenEmbedded is an amazing package which greatly streamlines the process of building a kernel and a root filesystem for the BeagleBoard using the Angstrom distribution. So the basic process is: 1. Install required packages (http://openembedded.org/index.php/OEandYourDistro). 2. Follow building Ångström steps (http://www.angstrom-distribution.org/building-angstrom). 2. ??? 3. Profit. Here are some great links which will definitely help answer [...]]]></description>
			<content:encoded><![CDATA[<p>OpenEmbedded is an amazing package which greatly streamlines the process of building a kernel and a root filesystem for the BeagleBoard using the Angstrom distribution. So the basic process is:</p>
<p>1. Install required packages (<a href="http://openembedded.org/index.php/OEandYourDistro">http://openembedded.org/index.php/OEandYourDistro</a>).<br />
2. Follow building Ångström steps (<a href="http://www.angstrom-distribution.org/building-angstrom">http://www.angstrom-distribution.org/building-angstrom</a>).<br />
2. ???<br />
3. Profit.</p>
<p>Here are some great links which will definitely help answer some questions. So before you start you need to have the required packages installed on your system Then you should follow the instructions from the distro website.</p>
<p>What that page doesn&#8217;t explain is that:<br />
- virtual/kernel is just the kernel<br />
- console-image and base-image are &#8220;package sets&#8221; for the root filesystem.<br />
This OE wiki page has info about the output from the build:<br />
<a href="http://elinux.org/BeagleBoardAndOpenEmbeddedGit">http://elinux.org/BeagleBoardAndOpenEmbeddedGit</a><br />
These have some other helpful info:<br />
<a href="http://groups.google.com/group/beagleboard/browse_thread/thread/e83117c1160c5578?pli=1">http://groups.google.com/group/beagleboard/browse_thread/thread/e83117c1160c5578?pli=1</a><br />
<a href="http://beaglelinux.blogspot.com/2011/03/configuringrebuilding-kernel.html">http://beaglelinux.blogspot.com/2011/03/configuringrebuilding-kernel.html</a></p>
<p>Some other stuff which I found helpful.<br />
If you mess up your git tree and get &#8220;Error: refusing to pull with rebase: your working tree is not up-to-date&#8221; when you do &#8220;git pull &#8211;rebase&#8221;. You can try what it says <a href="http://www.openembedded.org/index.php/GitPhraseBook#Upgrading_your_data_.28lurking.29">here</a>. But I found that doesn&#8217;t help, I did <a href="http://live.gnome.org/TranslationProject/GitHowTo#I_messed_up._Now.3F">this</a> instead. But warning: this will overwrite any custom changes you&#8217;ve made to the tree. In general learning how to use Git properly is key.</p>
<hr />
<p>You will need a lot of space, I&#8217;d recommend having at least 20gb free. Don&#8217;t do what I do and move the directories half way through the build, you&#8217;ll need to start the build all over again.</p>
<hr />
<p>Doing a complete system build (kernel+rootfs) takes a long time and a lot of bandwidth. I&#8217;ve been doing it from an Ubuntu virtual machine and it takes about 12 hours to complete (virtual/kernel + console-image). So consider using demo images and pulling binaries via opkg. Or a dedicated machine for doing this rather than a virtual machine. </p>
<hr />
<p><del datetime="2011-06-29T00:24:58+00:00">Coping MLO and uboot from <a href="http://www.angstrom-distribution.org/demo/beagleboard/">here</a> is fine. I think there are some exceptions to this- the newer kernels require this uboot, but don&#8217;t quote me on this. You will need to setup your own bootscript (boot.src) for the kernel you&#8217;re compiling.</del> When you build your OS using OE, for example &#8220;bitbake console-image&#8221; it will build MLO and uboot for you. Don&#8217;t use old ones, especially since uboot using uEnv.txt now.</p>
<hr />
<p>If you are new to the BeagleBoard I would recommend trying to get the demo images from <a href="http://www.angstrom-distribution.org/demo/beagleboard/">here</a> working first. It will help you understand the boot system and what is required for a complete operational system.</p>
<hr />
<p>Related to the last item, setting up the SD partitions is trival using the mkcard.txt script from <a href="http://www.angstrom-distribution.org/demo/beagleboard/">here</a>. That page also has some instructions of how to do it.</p>
<hr />
<p>Don&#8217;t do an &#8220;apt-get install bitbake&#8221; (or equivalent), this is outdated and you should be following the instructions on the Angstrom distro website. Use the script! It grabs OE (ie: bitbake) for you!! The script hides a lot of the complex setting up things at first, so you can get down to building that first system.</p>
<hr />
<p>Here is a good link with a description of the OpenEmbedded directory structure: <a href="http://gumstix.org/software-development/open-embedded/161-openembedded-directory-layout.html">http://gumstix.org/software-development/open-embedded/161-openembedded-directory-layout.html</a>. It is a must read to understand where everything ends up.</p>
<hr />
<p><a href="http://www.openembedded.org/index.php/Bitbake_cheat_sheet">Bitbake cheat sheet</a></p>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/04/building-angstrom-for-the-beagleboard-using-openembedded/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Fixing a Bitbake: &#8220;checksum mismatch.: Failed&#8221; error</title>
		<link>http://www.electronsonradio.com/2011/04/fixing-a-bitbake-zlib-checksum-mismatch-failed-error/</link>
		<comments>http://www.electronsonradio.com/2011/04/fixing-a-bitbake-zlib-checksum-mismatch-failed-error/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 01:25:46 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[BeagleBoard]]></category>

		<guid isPermaLink="false">http://www.electronsonradio.com/?p=42</guid>
		<description><![CDATA[I have found when building packages in OpenEmbedded with bitbake I often get a zlib checksum mismatch error. For example: With all the documentation around about how to fix checksum errors in Bitbake, what caused my error is actually a download error. So you really don&#8217;t want to do OE_ALLOW_INSECURE_DOWNLOADS=&#8221;1&#8243;. For my error Bitbake is [...]]]></description>
			<content:encoded><![CDATA[<p>I have found when building packages in OpenEmbedded with bitbake I often get a zlib checksum mismatch error.</p>
<p>For example:</p>
<pre class="brush: plain; collapse: true; light: false; title: ; toolbar: true; notranslate">ERROR: The checksums for &quot;/home/vmplanet/Beagle/angstrom-setup-scripts/sources/downloads/zlib-1.2.3.tar.bz2&quot; did not match.
  MD5: expected &quot;dee233bf288ee795ac96a98cc2e369b6&quot;, got &quot;b2a4bc176e9f29b0c439ef9a53a62a1a&quot;
  SHA256: expected &quot;e3b9950851a19904d642c4dec518623382cf4d2ac24f70a76510c944330d28ca&quot;, got &quot;7b4f72a40bd21934680f085afe8a30bf85acff1a8365af43102025c4ccf52b73&quot;

NOTE: package zlib-native-1.2.3-r7.0: task Fetch failed: http://www.zlib.net/zlib-1.2.3.tar.bz2 checksum mismatch.: Failed
ERROR: Function 'Fetch failed: http://www.zlib.net/zlib-1.2.3.tar.bz2 checksum mismatch.' failed
ERROR: Task 449 (virtual:native:/home/vmplanet/Beagle/angstrom-setup-scripts/sources/openembedded/recipes/zlib/zlib_1.2.3.bb, do_fetch) failed with exit code '1'
</pre>
<p>With all the documentation around about how to fix checksum errors in Bitbake, what caused my error is actually a download error. So you really <strong>don&#8217;t</strong> want to do  OE_ALLOW_INSECURE_DOWNLOADS=&#8221;1&#8243;. For my error Bitbake is downloading zlib1.2.3 which has been replaced with zlib1.2.5. Therefore the link is now broken. A quick search reveals a sourceforge mirror <a href="http://sourceforge.net/projects/libpng/files/zlib/1.2.3/">here</a>. I removed any zlib files from the OE download directory. The sourceforge version and md5 file I place in the download direction and resume the build. </p>
<p>So if you are getting this error building some packages check if the package successfully downloaded and that it is the right version. If not you might need to change the mirror or download it separately with wget. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.electronsonradio.com/2011/04/fixing-a-bitbake-zlib-checksum-mismatch-failed-error/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

