<?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>Technicalities &#187; build</title>
	<atom:link href="http://www.sirena.org.uk/log/tag/build/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sirena.org.uk/log</link>
	<description>Just another random blog</description>
	<lastBuildDate>Sat, 21 Jan 2012 23:41:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Updating the kernel on the Nexus S</title>
		<link>http://www.sirena.org.uk/log/2011/02/14/updating-the-kernel-on-the-nexus-s/</link>
		<comments>http://www.sirena.org.uk/log/2011/02/14/updating-the-kernel-on-the-nexus-s/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 13:12:15 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[crespo]]></category>
		<category><![CDATA[herring]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Nexus S]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=372</guid>
		<description><![CDATA[Building the kernel for the Nexus S is straightforward &#8211; the kernel is public as one would expect so it&#8217;s simply a matter of building it using the standard Linux build system (the machine is called herring in the code). There is one gotcha, though &#8211; the driver for the BCM4329 WiFi controller is a [...]]]></description>
			<content:encoded><![CDATA[<p>Building the kernel for the Nexus S is straightforward &#8211; the <a href="http://android.git.kernel.org/?p=kernel/samsung.git;a=summary">kernel is public as one would expect</a> so it&#8217;s simply a matter of building it using the standard Linux build system (the machine is called herring in the code). There is one gotcha, though &#8211; the driver for the BCM4329 WiFi controller is a loadable kernel module rather than being built into the image. This means you need to copy it onto the device filesystem separately to flashing the kernel itself if you&#8217;re only updating the kernel. The procedure I use for this is below &#8211; it&#8217;s straightforward but I&#8217;m posting it here to make it a bit more discoverable.</p>
<p>First we make the system partition writable:</p>
<pre>adb root
adb remount</pre>
<p>Then copy the BCM4329 driver over (the path to the driver here is running from the root of the kernel tree:</p>
<pre>adb push drivers/net/wireless/bcm4329/bcm4329.ko /system/modules</pre>
<p>Finally, reboot into the bootloader and flash the actual kernel:</p>
<pre>adb reboot bootloader
fastboot flash zimage arch/arm/boot/zImage
fastboot reboot</pre>
<p>Note that some of these commands may return before the operation they&#8217;ve started has completed so you may need to wait for the phone at various points.</p>
<p>As with updating the main system firmware the above requires an unlocked device which voids your warranty. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/02/14/updating-the-kernel-on-the-nexus-s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building firmware images for Nexus S</title>
		<link>http://www.sirena.org.uk/log/2011/01/04/building-firmware-images-for-nexus-s/</link>
		<comments>http://www.sirena.org.uk/log/2011/01/04/building-firmware-images-for-nexus-s/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 16:03:54 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[crespo]]></category>
		<category><![CDATA[herring]]></category>
		<category><![CDATA[Nexus S]]></category>
		<category><![CDATA[phone]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=331</guid>
		<description><![CDATA[Since I couldn&#8217;t seem to readily find any useful instructions for building firmware images for the Nexus S I thought I&#8217;d publish some. In a clean directory this sequence of commands should result in a working set of application layer images. They assume you&#8217;ve already got all the Android build dependencies installed: repo init -u [...]]]></description>
			<content:encoded><![CDATA[<p>Since I couldn&#8217;t seem to readily find any useful instructions for building firmware images for the Nexus S I thought I&#8217;d publish some. In a clean directory this sequence of commands should result in a working set of application layer images. They assume you&#8217;ve already got all the Android build dependencies installed:</p>
<pre>repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread
repo sync
MYDROID=$(pwd)
export MYDROID
. ./build/envsetup.sh
make PRODUCT-full_crespo-user</pre>
<p>The resulting images will be in ﻿﻿﻿the directory out/target/product/crespo. You can get this running on your device by flashing the boot, recovery and system images:</p>
<pre>out/host/linux-x86/bin/fastboot flash boot out/target/product/crespo/boot.img
out/host/linux-x86/bin/fastboot flash recovery out/target/product/crespo/recovery.img
out/host/linux-x86/bin/fastboot flash system out/target/product/crespo/system.img</pre>
<p>Note that using these firmware images will void any warranty you have on the phone &#8211; you&#8217;ll need to unlock the phone using <tt>fastboot oem unlock</tt>, but note that this is irreversible.</p>
<p>Similar instructions should work for Nexus One too, using passion instead of crespo in the make command above.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2011/01/04/building-firmware-images-for-nexus-s/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SCons DESTDIR support</title>
		<link>http://www.sirena.org.uk/log/2007/09/27/scons-destdir-support/</link>
		<comments>http://www.sirena.org.uk/log/2007/09/27/scons-destdir-support/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 10:40:23 +0000</pubDate>
		<dc:creator>Mark Brown</dc:creator>
				<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[SCons]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[SCM]]></category>

		<guid isPermaLink="false">http://www.sirena.org.uk/log/?p=58</guid>
		<description><![CDATA[Michael, it&#8217;s not make that supports for DESTDIR &#8211; it&#8217;s the Makefiles that do it, usually as one of the many features picked up from automake. Half the problem SCons has with this is that there&#8217;s no similarly pervasive tool set to at least set standards (even people who don&#8217;t use automake often emulate the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.cihar.com/">Michael</a>, it&#8217;s not make that <a href="http://blog.cihar.com/archives/2007/09/27/sconst_is_next-generation_build_tool/">supports for DESTDIR</a> &#8211; it&#8217;s the Makefiles that do it, usually as one of the many features picked up from automake. Half the problem <a href="http://www.scons.org/">SCons</a> has with this is that there&#8217;s no similarly pervasive tool set to at least set standards (even people who don&#8217;t use automake often emulate the features that people actually use) and the focus has mostly been on pure make functionality so there&#8217;s really nothing there for installation and packaging. This has resulted in projects using SCons each coming up with their own approach to these things &#8211; which can boil down to no approach at all.</p>
<p>The situation for SCons ought to be improved fairly soon thanks to a pair Summer of Code projects from this year and last year which will together give SCons automake-style functionality &#8211; hopefully once they&#8217;re merged people will start using them when they distribute their software. In the meantime you could always ask upstream to implement DESTDIR support.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sirena.org.uk/log/2007/09/27/scons-destdir-support/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

