<?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>mcBachmann.de TechBlog &#187; openwrt</title>
	<atom:link href="http://blog.mcbachmann.de/tag/openwrt/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.mcbachmann.de</link>
	<description>Der Blog zur Website ;-)</description>
	<lastBuildDate>Wed, 11 Jan 2012 21:12:53 +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>OpenWrt: Split Toolchain for faster Firmware Build Times</title>
		<link>http://blog.mcbachmann.de/linux/openwrt-split-toolchain-for-faster-firmware-build-times</link>
		<comments>http://blog.mcbachmann.de/linux/openwrt-split-toolchain-for-faster-firmware-build-times#comments</comments>
		<pubDate>Sat, 02 Apr 2011 11:47:46 +0000</pubDate>
		<dc:creator>Sven Bachmann</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[toolchain]]></category>

		<guid isPermaLink="false">http://blog.mcbachmann.de/?p=632</guid>
		<description><![CDATA[At work we&#8217;re using Hudson to automatically build projects whenever something is changed in a SCM. For most projects you&#8217;ll get fast results if your checkin breaks something which you don&#8217;t mind because you not always rebuild the complete project. Now, OpenWrt brings its own toolchain, which compiles the complete local and cross-compiling stuff because [...]]]></description>
			<content:encoded><![CDATA[<p>At work we&#8217;re using Hudson to automatically build projects whenever something is changed in a SCM. For most projects you&#8217;ll get fast results if your checkin breaks something which you don&#8217;t mind because you not always rebuild the complete project. Now, OpenWrt brings its own toolchain, which compiles the complete local and cross-compiling stuff because the compiler on the host is normally a bit behind and does not contain latest fixes for ARM and other architectures. So how to save some time with not compiling the toolchain everytime a project is build? <span id="more-632"></span></p>
<p>For this purpose OpenWrt has a feature called &#8220;Use External Toolchain&#8221;. This makes it possible to also use vendor-specific toolchains to build OpenWrt. What currently not worked was using OpenWrt itself as its external toolchain. To make this possible, I&#8217;ve created some patches (send already to the mailing list/bugzilla) and written some short <a href="http://wiki.openwrt.org/doc/howto/external_toolchain">How-To in the OpenWrt Wiki</a>.</p>
<p>So now the Toolchain is rebuild once a week (but can also be triggered by hand) and the normal firmware is build as usual with a <strong>git clean -f -d -x</strong> at the beginning.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mcbachmann.de/linux/openwrt-split-toolchain-for-faster-firmware-build-times/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>arm: remove thumb instruction &#8220;bx lr&#8221; from EABI binary</title>
		<link>http://blog.mcbachmann.de/linux/arm-remove-thumb-instruction-bx-lr-from-eabi-binary</link>
		<comments>http://blog.mcbachmann.de/linux/arm-remove-thumb-instruction-bx-lr-from-eabi-binary#comments</comments>
		<pubDate>Mon, 14 Sep 2009 04:59:01 +0000</pubDate>
		<dc:creator>Sven Bachmann</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[eabi]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[thumb]]></category>

		<guid isPermaLink="false">http://blog.mcbachmann.de/?p=387</guid>
		<description><![CDATA[Today I had a strange error using the GCC version 4.4.1 with EABI support on a non thumb-ARMv4. Everytime I compiled something, with and w/o the -mno-thumb-interwork parameter it also contained the bx lr instruction which is only for later ARM processors with thumb support. The only solution seemed to be to patch the GCC. [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had a strange error using the GCC version 4.4.1 with EABI support on a non thumb-ARMv4. Everytime I compiled something, with and w/o the <em>-mno-thumb-interwork</em> parameter it also contained the <strong>bx lr</strong> instruction which is only for later ARM processors with thumb support.<span id="more-387"></span></p>
<p>The only solution seemed to be to patch the GCC. Urgs&#8230; not really a nice solution, because recompiling GCC takes 3 stages and much time. After lots of googling I finally found the solution in the <a href="http://wiki.debian.org/ArmEabiPort#Otherscenarios">Debian Wiki</a>.</p>
<p>GCC will always compile the new <strong>bx lr</strong> instruction and its the assemblers and linkers part to replace it with a normal call on normal ARMs. The problem is&#8230; GCC doesn&#8217;t tell the assembler/linker that it needs to do it. So we have to do it:</p>
<blockquote><p><code>CFLAGS += -Xlinker --fix-v4bx -Xassembler --fix-v4bx</code></p></blockquote>
<p><br/></p>
<hr/>
<br/><br />
<em>Later on&#8230;</em> It seemed that a lot of apps in OpenWrt didn&#8217;t respect my compiler flags, so I needed to patch GCC. You can find the result here: <strong><a href="https://lists.openwrt.org/pipermail/openwrt-devel/2009-September/005018.html">gcc 4.4.1: ARM &#8211; save fix-v4bx flag in linker spec</a></strong> (patch is agains OpenWrt). The plain patch against GCC 4.4.1 is here: <strong><a href='http://blog.mcbachmann.de/wp-content/uploads/2009/09/gcc-save-fix-v4bx-for-linker.patch'>gcc-save-fix-v4bx-for-linker.patch</a></strong>. If it turns out that this is the correct kind to do it, I&#8217;ll send it to the GCC list.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mcbachmann.de/linux/arm-remove-thumb-instruction-bx-lr-from-eabi-binary/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>uClibc: &#8220;bx r6&#8243; compile error on ARM</title>
		<link>http://blog.mcbachmann.de/linux/uclibc-bx-r6-compile-error-on-arm</link>
		<comments>http://blog.mcbachmann.de/linux/uclibc-bx-r6-compile-error-on-arm#comments</comments>
		<pubDate>Tue, 08 Sep 2009 08:31:59 +0000</pubDate>
		<dc:creator>Sven Bachmann</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[uClibc]]></category>

		<guid isPermaLink="false">http://blog.mcbachmann.de/?p=380</guid>
		<description><![CDATA[While compiling OpenWrt for an ARM compatible processor I got the following error: {standard input}: Assembler messages: {standard input}:39: Error: selected processor does not support `bx r6' I found the solution in the The definitive guide to GCC book from William Von Hagen (I don&#8217;t own it, I found it via Google Books). You have [...]]]></description>
			<content:encoded><![CDATA[<p>While compiling OpenWrt for an ARM compatible processor I got the following error:<br />
<br/></p>
<blockquote><p><code>{standard input}: Assembler messages:<br />
{standard input}:39: Error: selected processor does not support `bx r6' </code></p></blockquote>
<p><br/><br />
I found the solution in the <strong>The definitive guide to GCC</strong> book from <em>William Von Hagen</em> (I don&#8217;t own it, I found it via Google Books). You have to disable the the USE_BX flag in the uClibc config file and everything will be fine.<span id="more-380"></span><br />
<br/><br />
To make it permanent, go to <em>toolchain/uClibc/config-*</em> (* is your used uClibc version) and copy the default <em>arm</em> file to <em>arm.ARCH</em> where ARCH is the name of the directory in <em>target/linux/ARCH</em>.</p>
<p>Thanks to William, the OpenWrt community and the uClibc folks (and all others who make this a round thing).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mcbachmann.de/linux/uclibc-bx-r6-compile-error-on-arm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenWrt 8.09: ssh freischalten</title>
		<link>http://blog.mcbachmann.de/linux/openwrt-809-ssh-freischalten</link>
		<comments>http://blog.mcbachmann.de/linux/openwrt-809-ssh-freischalten#comments</comments>
		<pubDate>Sun, 31 May 2009 08:24:59 +0000</pubDate>
		<dc:creator>Sven Bachmann</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.mcbachmann.de/?p=298</guid>
		<description><![CDATA[Da sich bei OpenWrt 8.09 ein wenig geändert hat, ist nun ein etwas anderer Weg notwendig, um von aussen ssh zu nutzen. Freischalten über LuCI 1. Administration 2. Network->Firewall->Traffic Control 3. Advanced Rules->Add Entry 4. Additional Field->Protocol: Add 5. Name: ssh 6. Source: wan 7. Destination: Device 8. Protocol: TCP 9. Destination Port: 22 10. [...]]]></description>
			<content:encoded><![CDATA[<p>Da sich bei OpenWrt 8.09 ein wenig geändert hat, ist nun ein etwas anderer Weg notwendig, um von aussen <strong>ssh</strong> zu nutzen. <span id="more-298"></span><br/></p>
<p><em>Freischalten über LuCI</em></p>
<blockquote><p><code>1. Administration<br />
2. Network->Firewall->Traffic Control<br />
3. Advanced Rules->Add Entry<br />
4. Additional Field->Protocol: Add<br />
5. Name: ssh<br />
6. Source: wan<br />
7. Destination: Device<br />
8. Protocol: TCP<br />
9. Destination Port: 22<br />
10. Action: accept<br />
11. Save &#038; Apply</code></p></blockquote>
<p><br/></p>
<p><em>Freischalten über uci</em></p>
<blockquote><p><code>uci add firewall rule<br />
uci set firewall.@rule[-1]._name=ssh<br />
uci set firewall.@rule[-1].src=wan<br />
uci set firewall.@rule[-1].target=ACCEPT<br />
uci set firewall.@rule[-1].proto=tcp<br />
uci set firewall.@rule[-1].dest_port=22<br />
uci commit firewall<br />
/etc/init.d/firewall start</code></p></blockquote>
<p><br/></p>
<p>Das ganze kann auch nochmal bei meiner Quelle, dem <a href="http://forum.openwrt.org/viewtopic.php?id=20081">OpenWrt Forum</a> nachgelesen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mcbachmann.de/linux/openwrt-809-ssh-freischalten/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using a 56k modem with an Asus wl-500g premium router and OpenWrt Kamikaze 7.09</title>
		<link>http://blog.mcbachmann.de/linux/using-a-56k-modem-with-an-asus-wl-500g-premium-router-and-openwrt-kamikaze-709</link>
		<comments>http://blog.mcbachmann.de/linux/using-a-56k-modem-with-an-asus-wl-500g-premium-router-and-openwrt-kamikaze-709#comments</comments>
		<pubDate>Wed, 26 Mar 2008 15:04:06 +0000</pubDate>
		<dc:creator>Sven Bachmann</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[reudnitz]]></category>
		<category><![CDATA[56k]]></category>
		<category><![CDATA[asus]]></category>
		<category><![CDATA[modem]]></category>
		<category><![CDATA[openwrt]]></category>

		<guid isPermaLink="false">http://blog.mcbachmann.de/?p=201</guid>
		<description><![CDATA[Hi there, this (easter) weekend, I had to fiddle around with an Asus WLAN router, a 56k modem (yes, in Germany we have places without DSL or similar things) and OpenWrt. And what should I say? It works! Thanks to OpenWrt. First of all, you need some packages which you can install with ipkg on [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there,</p>
<p>this (easter) weekend, I had to fiddle around with an Asus WLAN router, a 56k modem (yes, in Germany we have places without DSL or similar things) and OpenWrt. And what should I say? It works! Thanks to OpenWrt.<span id="more-201"></span></p>
<p>First of all, you need some packages which you can install with ipkg on the router: chat, ppp, various usb modules (see openwrt wiki for details) and the usb-serial module.</p>
<p>To enable wifi, please also see the openwrt documentation &#8211; I had to use WAP, because WAP2 was not supported by a windows client &#8211; and downloading some 10MB big files just to make it work would not be funny over 56k modem <img src='http://blog.mcbachmann.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>First step: Set the WAN device from the routers WAN port to the modem device, ppp0</p>
<p><strong>/etc/config/network</strong></p>
<blockquote><p><code>config interface wan<br />
    option ifname 'ppp0'<br />
    option proto dhcp<br />
</code></p></blockquote>
<p>Second step: Configure the ppp utils &#8211; this will show a config for the provider 1&#038;1</p>
<p>Download: <strong><a href='http://blog.mcbachmann.de/wp-content/uploads/2008/03/chat.1und1'>/etc/ppp/chat.1und1</a></strong></p>
<p>Download: <strong><a href='http://blog.mcbachmann.de/wp-content/uploads/2008/03/opts.1und1'>/etc/ppp/opts.1und1</a></strong></p>
<p>Anlegen der <strong>/etc/ppp/pap-secrets</strong>.</p>
<blockquote><p><code>"1und1/1234-567"    *    "PASSWORD"</code></p></blockquote>
<p>Download: <strong><a href='http://blog.mcbachmann.de/wp-content/uploads/2008/03/firewall'>/etc/ppp/ip-up.d/firewall</a></strong></p>
<p>Third step: Add some webscripts, to manage the connect and disconnect via browser</p>
<p>Download: <strong><a href='http://blog.mcbachmann.de/wp-content/uploads/2008/03/status'>/www/cgi-bin/status</a></strong></p>
<p>Download: <strong><a href='http://blog.mcbachmann.de/wp-content/uploads/2008/03/connect'>/www/cgi-bin/connect</a></strong></p>
<p>Download: <strong><a href='http://blog.mcbachmann.de/wp-content/uploads/2008/03/disconnect'>/www/cgi-bin/disconnect</a></strong></p>
<p>If you have questions&#8230; feel free to ask <img src='http://blog.mcbachmann.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Bye<br />
  Sven</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mcbachmann.de/linux/using-a-56k-modem-with-an-asus-wl-500g-premium-router-and-openwrt-kamikaze-709/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

