<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://www.hermann-uwe.de">
<channel>
 <title>Uwe Hermann - A slightly paranoid Debian developer</title>
 <link>http://www.hermann-uwe.de</link>
 <description />
 <language>en</language>
<feedburner:info uri="uwehermann" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.hermann-uwe.de/node/feed" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
 <title>libsigrokdecode 0.1.1 released, more protocol decoders supported</title>
 <link>http://www.hermann-uwe.de/blog/libsigrokdecode-0-1-1-released-more-protocol-decoders-supported</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1591"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/sigrok_logo.png" width="100" height="111" align="right" hspace="5" alt="sigrok logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just a quick announce: We &lt;a href="http://www.sigrok.org/blog/libsigrokdecode-011-released"&gt;released libsigrokdecode 0.1.1&lt;/a&gt; today, a new version of one of the shared libraries part of the open-source &lt;a href="http://www.sigrok.org"&gt;sigrok&lt;/a&gt; project (for signal acquisition/analysis of &lt;a href="http://sigrok.org/wiki/Supported_hardware"&gt;various test&amp;amp;measurement gear&lt;/a&gt;, like logic analyzers, scopes, multimeters, etc). I will update &lt;a href="http://packages.qa.debian.org/libs/libsigrokdecode.html"&gt;the Debian package&lt;/a&gt; soonish.&lt;/p&gt;
&lt;p&gt;As you probably know, in addition to the infrastructure for protocol decoding, this library also ships with &lt;a href="http://sigrok.org/wiki/Protocol_decoders"&gt;a bunch of protocol decoders&lt;/a&gt; written in Python. Currently we support &lt;strong&gt;29&lt;/strong&gt; different ones (in various states of "completeness", improvements are ongoing).&lt;/p&gt;
&lt;p&gt;This release adds support for the following new protocol decoders:&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1600"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/can_pd.preview.jpg" width="200" height="150" align="right" hspace="5" alt="CAN probing" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/avr_isp"&gt;avr_isp&lt;/a&gt;: AVR In-System Programming&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/can"&gt;can&lt;/a&gt;: Controller Area Network&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/jtag"&gt;jtag&lt;/a&gt;: Joint Test Action Group (IEEE 1149.1)&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/jtag_stm32"&gt;jtag_stm32&lt;/a&gt;: Joint Test Action Group / ST STM32&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/lm75"&gt;lm75&lt;/a&gt;: National LM75&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/lpc"&gt;lpc&lt;/a&gt;: Low-Pin-Count&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/maxim_ds28ea00"&gt;maxim_ds28ea00&lt;/a&gt;: Maxim DS28EA00 1-Wire digital thermometer&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/onewire_link"&gt;onewire_link&lt;/a&gt;: 1-Wire serial communication bus (link layer)&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/onewire_network"&gt;onewire_network&lt;/a&gt;: 1-Wire serial communication bus (network layer)&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/sdcard_spi"&gt;sdcard_spi&lt;/a&gt;: Secure Digital card (SPI mode)&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/tlc5620"&gt;tlc5620&lt;/a&gt;: Texas Instruments TLC5620 DAC&lt;/li&gt;
&lt;li&gt;
		&lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=tree;f=decoders/uart_dump"&gt;uart_dump&lt;/a&gt;: UART dump&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please check the &lt;a href="http://www.sigrok.org/blog/libsigrokdecode-011-released"&gt;announce on the sigrok blog&lt;/a&gt; and/or the &lt;a href="http://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blob;f=NEWS"&gt;NEWS file&lt;/a&gt; for the full list of changes and improvements.&lt;/p&gt;
&lt;p&gt;Happy hacking and decoding!&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/libsigrokdecode-0-1-1-released-more-protocol-decoders-supported#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2405">decoder</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2409">logic analyzer</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1956">open-source</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2403">pd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2404">protocol</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2402">sigrok</category>
 <pubDate>Wed, 30 Jan 2013 02:18:00 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1601 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>sigrok at the 29th Chaos Communication Congress (29c3)</title>
 <link>http://www.hermann-uwe.de/blog/sigrok-at-the-29th-chaos-communication-congress-29c3</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1598"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/29c3_logo.png" width="160" height="229" align="right" hspace="5" alt="29c3 logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yup, it's been a while since my last blog post, but I'm not dead yet. Most of my spare time goes into &lt;a href="http://sigrok.org"&gt;sigrok&lt;/a&gt; development these days (open-source signal analysis suite for logic analyzers, oscilloscopes, multimeters, and lots more), but I'll try to revive my blog too. I have various microcontroller/embedded topics and devices I want to talk about in a small blog post series in the nearer future. But more on that later.&lt;/p&gt;
&lt;p&gt;Feel free to subscribe to the &lt;a href="https://lists.sourceforge.net/lists/listinfo/sigrok-devel"&gt;sigrok-devel mailing list&lt;/a&gt;, join us on IRC in &lt;a href="irc://chat.freenode.net/sigrok"&gt;#sigrok&lt;/a&gt; (Freenode) where most of the discussions take place, or follow our new &lt;a href="http://www.sigrok.org/blog/"&gt;sigrok blog&lt;/a&gt; (&lt;a href="http://www.sigrok.org/blog/rss.xml"&gt;RSS&lt;/a&gt;) if you're interested in the ongoing sigrok developments. Anyway, for now just a quick announce:&lt;/p&gt;
&lt;p&gt;Same as last year, we will be at the &lt;a href="https://events.ccc.de/congress/2012/wiki/Main_Page"&gt;Chaos Communication Congress (29c3)&lt;/a&gt;, this time in Hamburg, Germany. The conference takes place from December 27th to 30th, 2012.&lt;/p&gt;
&lt;p&gt;We'll have a sigrok "&lt;a href="https://events.ccc.de/congress/2012/wiki/Sigrok"&gt;assembly&lt;/a&gt;", likely in area 3b of the conference building, where we'll be hanging around, working on new sigrok features, new hardware drivers, new protocol decoders and various other things. We'll have lots of gear with us for demo and development purposes, including logic analyzers, oscilloscopes, MSOs, multimeters, and lots more.&lt;/p&gt;
&lt;p&gt;Bring your own device if you own &lt;a href="http://sigrok.org/wiki/Supported_hardware"&gt;models we don't yet support or know about&lt;/a&gt;. We'll be happy to have a look!&lt;/p&gt;
&lt;p&gt;Chat with us, give us your suggestions which features you'd like to see, which devices you want to be supported, which &lt;a href="http://sigrok.org/wiki/Protocol_decoders"&gt;protocol decoders&lt;/a&gt; you'd like to have, or even help us write some drivers/decoders!&lt;/p&gt;
&lt;p&gt;Hope to see you there!&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/sigrok-at-the-29th-chaos-communication-congress-29c3#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2410">29c3</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/723">gpl</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1042">hardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2409">logic analyzer</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2407">scope</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2402">sigrok</category>
 <pubDate>Tue, 25 Dec 2012 23:27:59 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1599 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>sigrok - cross-platform, open-source logic analyzer software with protocol decoder support</title>
 <link>http://www.hermann-uwe.de/blog/sigrok--cross-platform-open-source-logic-analyzer-software-with-protocol-decoder-support</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1591"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/sigrok_logo.png" width="200" height="221" align="right" hspace="5" alt="sigrok logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'm happy to finally announce an &lt;strong&gt;open-source&lt;/strong&gt; (GNU GPL), &lt;strong&gt;cross-platform&lt;/strong&gt; (&lt;a href="http://sigrok.org/wiki/Linux"&gt;Linux&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Mac_OS_X"&gt;Mac OS X&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/FreeBSD"&gt;FreeBSD&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Windows"&gt;Windows&lt;/a&gt;, ...) &lt;strong&gt;logic analyzer software package&lt;/strong&gt; myself and Bert Vermeulen have been working on for quite a long time now: &lt;a href="http://sigrok.org"&gt;sigrok&lt;/a&gt; (it &lt;a href="http://en.wikipedia.org/wiki/Grok"&gt;groks&lt;/a&gt; your signals).&lt;/p&gt;
&lt;h3&gt;History&lt;/h3&gt;
&lt;p&gt;I originally started working on an open-source &lt;a href="http://sigrok.org/wiki/FAQ#What_is_a_logic_analyzer.3F"&gt;logic analyzer&lt;/a&gt; software named "flosslogic" in 2010, because I grew tired of almost all devices having a proprietary and Windows-only software, often with limited features, limited input/output file formats, limited usability, limited protocol decoder support, and so on. Thus, the goal was to write a portable, GPL'd, software that can talk to &lt;a href="http://sigrok.org/wiki/Logic_Analyzer_Comparison"&gt;many different logic analyzers&lt;/a&gt; via modules/plugins, supports many input/output formats, and many different protocol decoders.&lt;/p&gt;
&lt;p&gt;The advantage being, that every time we add a new driver for another logic analyzer it automatically supports all the input/output formats we already have, you can use all the protocol decoders we already wrote, etc. It also works the other way around: If someone writes a new protocol decoder or file format driver, it can automatically be used with any of the supported logic analyzers out of the box.&lt;/p&gt;
&lt;p&gt;Turns out Bert Vermeulen had been working on a similar software for a while too (due to &lt;em&gt;exactly&lt;/em&gt; the same reasons, crappy Windows software, etc.) so it was only logical that we joined forces and worked on this together. We kept Bert's name for the software package ("sigrok"), set up a &lt;a href="http://sourceforge.net/projects/sigrok/"&gt;SourceForge project&lt;/a&gt;, mailing lists, IRC channel, wiki, etc. and started working.&lt;/p&gt;
&lt;h3&gt;Overview, Features&lt;/h3&gt;
&lt;p&gt;You can get the lastest sigrok source code from our &lt;a href="http://sigrok.git.sourceforge.net/git/gitweb.cgi?p=sigrok/sigrok;a=shortlog"&gt;main git repository&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;git clone git://sigrok.git.sourceforge.net/gitroot/sigrok/sigrok&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Here's a short overview of sigrok and its features as of today. The software consists of the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href="http://sigrok.org/wiki/Libsigrok"&gt;libsigrok&lt;/a&gt;, a shared library written in C, which contains the general infrastructure for handling logic analyzer data in a streaming fashion.&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1593"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Sigrok_la_collection_2011.preview.jpg" width="320" height="240" align="right" hspace="5" alt="sigrok logic analyzer collection 2011" /&gt;&lt;/a&gt;&lt;br /&gt;
    It also contains the individual &lt;a href="http://sigrok.org/wiki/Supported_hardware"&gt;hardware drivers&lt;/a&gt; which add support for various logic analyzers. Currently supported hardware includes: &lt;a href="http://sigrok.org/wiki/Saleae_Logic"&gt;Saleae Logic&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/CWAV_USBee_SX"&gt;CWAV USBee SX&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Openbench_Logic_Sniffer"&gt;Openbench Logic Sniffer (OLS)&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/ZEROPLUS_Logic_Cube_LAP-C"&gt;ZEROPLUS Logic Cube LAP-C&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/ASIX_SIGMA"&gt;ASIX Sigma/Sigma2&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/ChronoVu_LA8"&gt;ChronoVu LA8&lt;/a&gt;, and others. Many more devices are on our TODO list (and we already own them), it's just a matter of time to reverse engineer the USB protocols and implement a driver for them.&lt;/p&gt;
&lt;p&gt;    Thanks &lt;a href="http://tools.asix.net"&gt;ASIX&lt;/a&gt; for being open and helping with the ASIX Sigma driver, and many thanks to &lt;a href="http://www.chronovu.com"&gt;ChronoVu&lt;/a&gt; for being open as well and providing information about the ChronoVu LA8 protocol! Thanks to &lt;a href="http://labs.ping.uio.no/2010/04/initial-support-for-asix-sigma-in-sigrok/"&gt;Håvard Espeland, Martin Stensgård, and Carl Henrik Lunde&lt;/a&gt; (who contributed the ASIX Sigma driver), Sven Peter and "Haxx Enterprises"/bushing (for contributing the &lt;a href="http://sigrok.org/wiki/ZEROPLUS_Logic_Cube_LAP-C"&gt;ZEROPLUS Logic Cube LAP-C&lt;/a&gt; driver, ported from their &lt;a href="https://code.google.com/p/zerominus/"&gt;zerominus&lt;/a&gt; tool). Also, thanks to Daniel Ribeiro and Renato Caldas who worked on the &lt;a href="http://sigrok.org/wiki/Link_Instruments_MSO-19"&gt;Link Instruments MSO-19&lt;/a&gt; driver (still work in progress).&lt;/p&gt;
&lt;p&gt;    Finally, libsigrok also contains the individual &lt;a href="http://sigrok.org/wiki/Input_output_formats"&gt;input/output file format drivers&lt;/a&gt;. Currently supported are: &lt;a href="http://sigrok.org/wiki/Input_output_formats#sigrok_session_2"&gt;sigrok session&lt;/a&gt; (the default format, which contains all metadata), &lt;a href="http://sigrok.org/wiki/Input_output_formats#Bits"&gt;bits&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Input_output_formats#Hex"&gt;hex&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Input_output_formats#ASCII"&gt;ASCII&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Input_output_formats#Binary_2"&gt;binary&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Input_output_formats#Gnuplot"&gt;gnuplot&lt;/a&gt;, the &lt;a href="http://sigrok.org/wiki/Input_output_formats#OLS"&gt;OpenBench Logic Sniffer forma&lt;/a&gt;t, the &lt;a href="http://sigrok.org/wiki/Input_output_formats#ChronoVu_LA8_2"&gt;ChronoVu LA8 format&lt;/a&gt;, &lt;a href="http://sigrok.org/wiki/Input_output_formats#VCD_.28Value_Change_Dump.29"&gt;Value Change Dump (VCD)&lt;/a&gt; viewable in &lt;a href="http://gtkwave.sourceforge.net/"&gt;gtkwave&lt;/a&gt;, and &lt;a href="http://sigrok.org/w/index.php?title=Input_output_formats&amp;amp;action=submit#Comma-separated_values_.28CSV.29"&gt;Comma-separated values (CSV)&lt;/a&gt;.&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1597"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Sigrok_vcd_output_in_gtkwave.preview.png" width="320" height="210" align="right" hspace="5" alt="sigrok VCD file in gtkwave" /&gt;&lt;/a&gt;
  &lt;/li&gt;
&lt;li&gt;
    &lt;a href="http://sigrok.org/wiki/Libsigrokdecode"&gt;libsigrokdecode&lt;/a&gt;, a shared library written in C, which contains the protocol decoder infrastructure and the protocol decoders themselves, which are written in &lt;a href="http://python.org/"&gt;Python&lt;/a&gt; (&gt;= 3.0).&lt;/p&gt;
&lt;p&gt;    The list of currently supported &lt;a href="http://sigrok.org/wiki/Protocol_decoders"&gt;protocol decoders&lt;/a&gt; includes:&lt;br /&gt;
&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/dcf77/dcf77.py"&gt;dcf77&lt;/a&gt;                DCF77 time protocol
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/lpc/lpc.py"&gt;lpc&lt;/a&gt;                  Low-Pin-Count
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/mx25lxx05d/mx25lxx05d.py"&gt;mx25lxx05d&lt;/a&gt;           Macronix MX25Lxx05D
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/jtag_stm32/jtag_stm32.py"&gt;jtag_stm32&lt;/a&gt;           Joint Test Action Group / ST STM32
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/i2s/i2s.py"&gt;i2s&lt;/a&gt;                  Integrated Interchip Sound
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/spi/spi.py"&gt;spi&lt;/a&gt;                  Serial Peripheral Interface
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/edid/edid.py"&gt;edid&lt;/a&gt;                 Extended display identification data
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/pan1321/pan1321.py"&gt;pan1321&lt;/a&gt;              Panasonic PAN1321
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/mlx90614/mlx90614.py"&gt;mlx90614&lt;/a&gt;             Melexis MLX90614
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/jtag/jtag.py"&gt;jtag&lt;/a&gt;                 Joint Test Action Group
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/rtc8564/rtc8564.py"&gt;rtc8564&lt;/a&gt;              Epson RTC-8564 JE/NB
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/transitioncounter/transitioncounter.py"&gt;transitioncounter&lt;/a&gt;    Pin transition counter
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/usb/usb.py"&gt;usb&lt;/a&gt;                  Universal Serial Bus
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/i2cdemux/i2cdemux.py"&gt;i2cdemux&lt;/a&gt;             I2C demultiplexer
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/i2c/i2c.py"&gt;i2c&lt;/a&gt;                  Inter-Integrated Circuit
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/i2cfilter/i2cfilter.py"&gt;i2cfilter&lt;/a&gt;            I2C filter
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/mxc6225xu/mxc6225xu.py"&gt;mxc6225xu&lt;/a&gt;            MEMSIC MXC6225XU
  &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/uart/uart.py"&gt;uart&lt;/a&gt;                 Universal Asynchronous Receiver/Transmitter
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;  Many more decoders are on our TODO list, and we especially welcome contributed protocol decoders, of course! We intentionally chose Python as implementation language for the decoders, to make them as easy to write (and understand) as possible, even if that means that performance suffers a bit. Have a look at the &lt;a href="https://gitorious.org/sigrok/sigrok/blobs/master/libsigrokdecode/decoders/spi/spi.py"&gt;SPI decoder&lt;/a&gt; for example, to get a feeling for the implementation.&lt;/p&gt;
&lt;p&gt;Protocol decoders can be &lt;strong&gt;stacked&lt;/strong&gt; on top of each other, e.g. you can run the &lt;strong&gt;i2c&lt;/strong&gt; decoder and pipe its output into the &lt;strong&gt;rtc8564&lt;/strong&gt; (Epson RTC-8564 JE/NB) decoder for further processing of the RTC-specific, higher-level protocol. We also plan to support more complex stacking and combining of decoders in various ways in the nearer future.
  &lt;/li&gt;
&lt;li&gt;
    &lt;a href="http://sigrok.org/wiki/Sigrok-cli"&gt;sigrok-cli&lt;/a&gt;, is a command-line frontend, which uses both libsigrok and libsigrokdecode. It can acquire samples from logic analyzers and output them in various formats into files or to stdout, and/or run protocol decoders on the aquired data.&lt;/p&gt;
&lt;p&gt;    Example: Data acquisition with 1MHz samplerate into a file.&lt;br /&gt;
&lt;/small&gt;&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;sigrok-cli -d chronovu-la8:samplerate=1mhz --time 1ms -o test.sr&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;    Example: Protocol decoding (JTAG).&lt;br /&gt;
&lt;/small&gt;&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;sigrok-cli -i test.sr -a jtag:tdi=5:tms=2:tck=3:tdo=7&lt;/strong&gt;
 [...]
 jtag: "New state: EXIT1-IR"
 jtag: "IR TDI: 11111110, 8 bits"
 jtag: "IR TDO: 11110001, 8 bits"
 jtag: "New state: UPDATE-IR"
 jtag: "New state: RUN-TEST/IDLE"
 [...]
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
    &lt;a href="http://sigrok.org/wiki/Sigrok-qt"&gt;sigrok-qt&lt;/a&gt;, a Qt-based GUI for sigrok, using both libsigrok and libsigrokdecode.&lt;/p&gt;
&lt;p&gt;    This is intended to be a cross-platform GUI (runs fine and looks "native" on Linux, Windows, Mac OS X) supporting data acquisition and protocol decoding.&lt;/p&gt;
&lt;p&gt;    &lt;strong style="color:red"&gt;NOTE: The Qt GUI is not yet usable! We're working on getting it out of alpha-stage for the next release.&lt;/strong&gt;
  &lt;/li&gt;
&lt;li&gt;
    &lt;a href="http://sigrok.org/wiki/Sigrok-gtk"&gt;sigrok-gtk&lt;/a&gt;, a GTK+-based GUI for sigrok, using both libsigrok and libsigrokdecode (soon).&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1594"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Sigrok-gtk-0.1.preview.png" width="320" height="188" align="right" hspace="5" alt="sigrok-gtk" /&gt;&lt;/a&gt;&lt;br /&gt;
    This is a cross-platform GUI contributed by &lt;a href="http://www.blacksphere.co.nz/main/blackmagic"&gt;Gareth McMullin&lt;/a&gt; (thanks!), supporting data aqcuisition (and soon protocol decoding).&lt;/p&gt;
&lt;p&gt;    &lt;strong style="color:red"&gt;NOTE: The GTK+ GUI is not yet fully usable (but it's more usable than sigrok-qt)! Consider it alpha-stage software for now.&lt;/strong&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We're happy to hear about other (maybe special-purpose) frontends you may want to write using libsigrok/libsigrokdecode as helper libs!&lt;/p&gt;
&lt;h3&gt;Firmware&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1592"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Saleae_logic.preview.jpg" width="200" height="150" align="right" hspace="5" alt="Saleae Logic" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some logic analyzer devices require &lt;a href="http://sigrok.org/wiki/Firmware"&gt;firmware&lt;/a&gt; to be uploaded before they can be used. As always, firmware is a bit of a pain, but here's what we currently do: For non-free firmware we provide instructions how to extract it from the vendor software or from USB dumps, if possible. For distributable firmware we have &lt;a href="http://sigrok.git.sourceforge.net/git/gitweb.cgi?p=sigrok/sigrok-firmwares;a=summary"&gt;a git repo&lt;/a&gt; where you can get it (thanks &lt;a href="http://tools.asix.net"&gt;ASIX&lt;/a&gt; for allowing us to distribute the ASIX Sigma/Sigma2 firmware files!).&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;git clone git://sigrok.git.sourceforge.net/gitroot/sigrok/sigrok-firmwares&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Finally, for all Cypress FX2 based logic analyzers we have an open-source (GNU GPL) firmware named &lt;a href="http://sigrok.org/wiki/Fx2lafw"&gt;fx2lafw&lt;/a&gt;, started by myself, but most work (and finishing the firmware) was then done by &lt;a href="https://www.ohloh.net/accounts/joelholdsworth"&gt;Joel Holdsworth&lt;/a&gt;, thanks! The support list includes Saleae Logic, CWAV USBee SX, CWAV USBee AX, Robomotic Minilogic/BugLogic3, Braintechnology USB-LPS, and many others. Get the code from the &lt;a href="http://sigrok.git.sourceforge.net/git/gitweb.cgi?p=sigrok/fx2lafw;a=summary"&gt;fw2lafw git repository&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;git clone git://sigrok.git.sourceforge.net/gitroot/sigrok/fx2lafw&lt;/strong&gt;
&lt;/pre&gt;&lt;h3&gt;Example dumps&lt;/h3&gt;
&lt;p&gt;We collect various captured logic analyzer signals / protocol dumps in the &lt;a href="http://sigrok.git.sourceforge.net/git/gitweb.cgi?p=sigrok/sigrok-dumps;a=summary"&gt;sigrok-dumps git repository&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;git clone git://sigrok.git.sourceforge.net/gitroot/sigrok/sigrok-dumps&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
They can be useful for testing the sigrok command-line application, the sigrok GUIs, or the protocol decoders.&lt;/p&gt;
&lt;p&gt;We're happy to include further contributed example data in our repository, please send us &lt;strong&gt;.sr&lt;/strong&gt; files of any interesting data/protocol you may come across (even if sigrok doesn't yet have a protocol decoder for that protocol).  See the &lt;a href="http://sigrok.org/wiki/Example_dumps"&gt;Example dumps&lt;/a&gt; wiki page for details.&lt;/p&gt;
&lt;h3&gt;Packages, distros, installers&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1595"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Sigrok_windows_installer3.jpg" width="320" height="250" align="right" hspace="5" alt="sigrok Windows installer" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'm currently working on updated &lt;a href="http://packages.qa.debian.org/s/sigrok.html"&gt;Debian packages&lt;/a&gt; for sigrok (will be &lt;strong&gt;apt-get install sigrok&lt;/strong&gt; to get everything), and we're happy about further packaging efforts for other distros. We have preliminary Windows installer files (using &lt;a href="http://nsis.sourceforge.net"&gt;NSIS&lt;/a&gt;), but the Windows code needs some more fixes and portability improvements before it's really usable. On Mac OS X you can use fink/Macports to install as usual, fancier &lt;strong&gt;.app&lt;/strong&gt; installer files are being worked on.&lt;/p&gt;
&lt;h3&gt;Future&lt;/h3&gt;
&lt;p&gt;Apart from support for more logic analyzers, input/output formats, and protocol decoders, we have a number of other plans for the next few releases. This includes support for analog data, i.e. support for (USB) oscilloscopes, multimeters, spectrum analyzers, and such stuff. This will also require additional GUI support (which could take a while). Also, we want to improve/fix the Windows support, and test/port sigrok to other architectures we come across. Performance improvements for the protocol decoding as well as more features there are also planned.&lt;/p&gt;
&lt;h3&gt;Contact&lt;/h3&gt;
&lt;p&gt;Feel free to contact us on the &lt;a href="https://lists.sourceforge.net/lists/listinfo/sigrok-devel"&gt;sigrok-devel mailing list&lt;/a&gt;, or in the IRC channel &lt;a href="irc://chat.freenode.net/sigrok"&gt;#sigrok&lt;/a&gt; on Freenode. There's also an &lt;a href="https://identi.ca/group/sigrok"&gt;identi.ca group&lt;/a&gt; for sigrok. We're always happy about feedback, bug reports, suggestions for improving sigrok, and patches of course!&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/sigrok--cross-platform-open-source-logic-analyzer-software-with-protocol-decoder-support#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/276">blog</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/122">c</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2405">decoder</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1042">hardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2406">logicanalyzer</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2408">multimeter</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/750">oss</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2394">pcb</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2403">pd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2404">protocol</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/356">python</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2407">scope</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2402">sigrok</category>
 <pubDate>Wed, 02 May 2012 16:05:19 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1596 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>HOWTO: Using OpenVPN on Debian GNU/Linux</title>
 <link>http://www.hermann-uwe.de/blog/howto-using-openvpn-on-debian-gnu-linux</link>
 <description>&lt;p&gt;Here's a quick HOWTO for setting up an &lt;a href="http://www.openvpn.net"&gt;OpenVPN&lt;/a&gt; server and client on any (Debian, in this case) Linux machine of your choice. I'm running an OpenVPN server on a box at home, and a client on my laptop, so I can securely route all my laptop traffic through my OpenVPN server, no matter where I am.&lt;/p&gt;
&lt;p&gt;I highly recommend reading the official &lt;a href="http://www.openvpn.net/index.php/open-source/documentation/howto.html"&gt;OpenVPN HOWTO&lt;/a&gt; from top to bottom, at least once. But here's a short, condensed HOWTO (specifically geared towards my needs, yours might be different):&lt;/p&gt;
&lt;h2&gt;On the server:&lt;/h2&gt;
&lt;p&gt;Install OpenVPN (&lt;strong&gt;apt-get install openvpn&lt;/strong&gt;), then copy the "easy-rsa" files to &lt;strong&gt;/etc/openvpn/easy-rsa&lt;/strong&gt; from where we'll use them to create our keys and certificates:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa&lt;/strong&gt;
  $ &lt;strong&gt;cd /etc/openvpn/easy-rsa&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
In the &lt;strong&gt;vars&lt;/strong&gt; file change the &lt;strong&gt;KEY_SIZE&lt;/strong&gt; variable from 1024 to 4096 for good measure:&lt;/p&gt;
&lt;pre&gt;
  export KEY_SIZE=4096
&lt;/pre&gt;&lt;p&gt;
Then, read in the vars file, clean old keys and certificates (if any) and create new ones:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;. ./vars&lt;/strong&gt;
  $ &lt;strong&gt;./clean-all&lt;/strong&gt;
  $ &lt;strong&gt;./build-ca&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
You'll now have the chance to enter some data such as country code (e.g. "DE"), state/province, locality, organization name, organizational unit name, common name, name, and email address. The values you choose don't really matter much (except for commonName, maybe, which could be your hostname or domain or such). Finally, the &lt;strong&gt;ca.key&lt;/strong&gt; (root CA key) and &lt;strong&gt;ca.crt&lt;/strong&gt; (root CA certificate) files will be created.&lt;/p&gt;
&lt;p&gt;Next, we'll create the server key:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;./build-key-server server&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
You'll have to enter lots of info again (see above), commonName could be "server" or such this time. Upon "Sign the certificate? [y/n]" say &lt;strong&gt;y&lt;/strong&gt;, as well as upon "1 out of 1 certificate requests certified, commit? [y/n]". Finally, the &lt;strong&gt;server.key&lt;/strong&gt; and &lt;strong&gt;server.crt&lt;/strong&gt; files will be created.&lt;/p&gt;
&lt;p&gt;Same procedure for creating a client key (I used "client1" as filename and commonName here):&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;./build-key client1&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Next up we'll generate Diffie Hellman parameters (this will take a shitload of time due to keysize=4096, go drink some coffee):&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;./build-dh&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
When this step is done, you'll have a &lt;strong&gt;dh4096.pem&lt;/strong&gt; file.&lt;/p&gt;
&lt;p&gt;As we want to use OpenVPN's "tls-auth" feature for perfect forward secrecy (it "adds an additional HMAC signature to all SSL/TLS handshake packets for integrity verification"), we'll have to generate a shared secret:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;openvpn --genkey --secret ta.key&lt;/strong&gt;
  $ &lt;strong&gt;mv ta.key keys&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
So much for creating keys. Now, we'll have to configure OpenVPN. Copy the default server config file and edit it:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cd /etc/openvpn&lt;/strong&gt;
  $ &lt;strong&gt;cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .&lt;/strong&gt;
  $ &lt;strong&gt;gunzip server.conf.gz&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
The most important change in my setup is that I use port 443/TCP instead of the usual OpenVPN default of 1194/UDP. This increases the chances that you'll be able to use OpenVPN in almost all places, even in environments which firewall/block lots of stuff. Port 443/TCP (for https) will almost always be usable. I also uncommented the following line, which tells the client to use the VPN interface (usually tun0) per default, so that all the client's traffic (web browsing, DNS, and so on) goes over the VPN:&lt;/p&gt;
&lt;pre&gt;
  push "redirect-gateway def1 bypass-dhcp"
&lt;/pre&gt;&lt;p&gt;
Here's my server config file (comments and commented out lines stripped):&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
  port 443
  proto tcp
  dev tun
  ca /etc/openvpn/easy-rsa/keys/ca.crt
  cert /etc/openvpn/easy-rsa/keys/server.crt
  key /etc/openvpn/easy-rsa/keys/server.key  # This file should be kept secret
  dh /etc/openvpn/easy-rsa/keys/dh4096.pem
  server 10.8.0.0 255.255.255.0
  ifconfig-pool-persist ipp.txt
  push "redirect-gateway def1 bypass-dhcp"
  keepalive 10 120
  tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0 # This file is secret
  comp-lzo
  user nobody
  group nogroup
  persist-key
  persist-tun
  status openvpn-status.log
  log-append openvpn.log
  verb 3
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;You can now start the OpenVPN server, e.g. via&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;/etc/init.d/openvpn restart&lt;/strong&gt;
&lt;/pre&gt;&lt;h2&gt;Server firewall setup/changes:&lt;/h2&gt;
&lt;p&gt;I'm running a &lt;a href="http://hermann-uwe.de/security/my-firewall-iptables-scripts"&gt;custom iptables script&lt;/a&gt; on pretty much all of my boxes. Here's the relevant changes needed to allow the OpenVPN server to work properly. Basically, you need to enable IP forwarding, accept/forward tun0 traffic and setup masquerading (change "eth0" below, if needed):&lt;/p&gt;
&lt;pre&gt;
  echo 1 &gt; /proc/sys/net/ipv4/ip_forward
  iptables -A INPUT -i tun+ -j ACCEPT
  iptables -A FORWARD -i tun+ -j ACCEPT
  iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  iptables -t nat -F POSTROUTING
  iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
&lt;/pre&gt;&lt;p&gt;
My firewall script gets run upon every reboot. If you don't use such a script, you could add the above stuff to your &lt;strong&gt;/etc/rc.local&lt;/strong&gt; file.&lt;/p&gt;
&lt;h2&gt;On the client:&lt;/h2&gt;
&lt;p&gt;Install OpenVPN (&lt;strong&gt;apt-get install openvpn&lt;/strong&gt;), then copy the default client config file and edit it:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cd /etc/openvpn&lt;/strong&gt;
  $ &lt;strong&gt;cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf .&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Change the parameters to match the server config (port 443/TCP, and so on) and use "tls-auth /etc/openvpn/ta.key 1" (note the "1" on the client, and the "0" on the server!). Replace xxx.xxx.xxx.xxx with the public IP address of your OpenVPN server. If it doesn't have a public, static IP address already, you can use services such as DynDNS, or (my preferred method), my &lt;a href="http://hermann-uwe.de/blog/diy-secure-pseudo-ddns-setup-using-ssh"&gt;ssh-based DIY poor man's dynamic DNS setup&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here's my full client config:&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
  client
  dev tun
  proto tcp
  remote xxx.xxx.xxx.xxx 443
  resolv-retry infinite
  nobind
  user nobody
  group nogroup
  persist-key
  ca /etc/openvpn/ca.crt
  cert /etc/openvpn/client1.crt
  key /etc/openvpn/client1.key
  ns-cert-type server
  tls-auth /etc/openvpn/ta.key 1
  comp-lzo
  verb 3
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Now you only need to copy the required certificates and keys to the client (into &lt;strong&gt;/etc/openvpn&lt;/strong&gt;): &lt;strong&gt;client1.crt&lt;/strong&gt;, &lt;strong&gt;client1.key&lt;/strong&gt;, &lt;strong&gt;ca.crt&lt;/strong&gt;, and &lt;strong&gt;ta.key&lt;/strong&gt;. Do &lt;strong&gt;not&lt;/strong&gt; copy the other, server-specific private keys and such to the client(s)! Also, the root CA key (&lt;strong&gt;ca.key&lt;/strong&gt;) should not even be left on the server, but rather moved to some offline storage/box, so that it cannot fall into the wrong hands, e.g. in the case of a server compromise.&lt;/p&gt;
&lt;p&gt;I prefer to manually start the client on my laptop when needed, so I use &lt;strong&gt;AUTOSTART="none"&lt;/strong&gt; in &lt;strong&gt;/etc/default/openvpn&lt;/strong&gt; and then start the client via:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;openvpn /etc/openvpn/client.conf&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
That's it. Comments and suggestions for improving the setup and/or the security aspects of it are highly welcome!&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/howto-using-openvpn-on-debian-gnu-linux#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2401">howto openvpn vpn linux debian package deb bug firewall iptables nat masquerade server client encryption security ssl 443 port</category>
 <pubDate>Sat, 24 Dec 2011 01:02:25 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1590 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Downloading non-DRM Amazon MP3s on Linux using clamz</title>
 <link>http://www.hermann-uwe.de/blog/downloading-non-drm-amazon-mp3s-on-Linux-using-clamz</link>
 <description>&lt;p&gt;I recently wanted to buy some MP3 files from Amazon (a whole album in my case, but you can also just buy single MP3 files if you want). Digital music downloads from Amazon are often much cheaper than buying the physical CD (from Amazon), and you can also instantly get the stuff within seconds, without having to wait for the physical CD to be shipped to your place.&lt;/p&gt;
&lt;p&gt;The good thing about Amazon's MP3 downloads is that the files are &lt;strong&gt;not&lt;/strong&gt; infested with any &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Digital_rights_management"&gt;DRM&lt;/a&gt;-crap (if that were the case I wouldn't spend a single penny on such useless junk, of course). This allows you to burn the MP3 files on CDs and/or play them on any device you like (MP3 player of choice, laptop, hifi-system, car, e-book reader with MP3 playback support, etc. etc).&lt;/p&gt;
&lt;p&gt;Granted, you can not re-sell the digital files on eBay later, this is the one little drawback you have when compared to physical CDs, but I guess most people can usually live with that. Also, it would be great if Amazon would provide Ogg Vorbis files instead (or in addition to) MP3 files, of course.&lt;/p&gt;
&lt;p&gt;Anyway, in order to download the MP3 files you buy from Amazon, they suggest to install the &lt;a href="http://www.amazon.com/gp/dmusic/help/amd.html/ref=hp_200143320_downloader"&gt;Amazon MP3 Downloader&lt;/a&gt;, which (surprisingly) is even available in a Mac and Linux version (only 32-bit though), but is (unsurprisingly) closed-source. This is no-go, of course, but luckily there is an alternative.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://code.google.com/p/clamz/"&gt;clamz&lt;/a&gt; tool (GPL, version 3 or later) allows you to easily download single Amazon MP3 files, or whole albums. First, you need to login to your Amazon account and then visit a certain Amazon page (which sets a special "congratulations, the Amazon MP3 Downloader has been successfully installed" cookie in your browser). See the &lt;a href="https://code.google.com/p/clamz/"&gt;clamz website&lt;/a&gt; for the respective URL for your country. For Germany, use &lt;a href="http://www.amazon.de/gp/dmusic/after_download_manager_install.html?AMDVersion=1.0.9"&gt;this&lt;/a&gt; URL.&lt;/p&gt;
&lt;p&gt;The clamz installation is easy enough on Debian:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;apt-get install clamz&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
&lt;strong&gt;IMPORTANT:&lt;/strong&gt; It seems you need at least version 0.5 for recent Amazon files as they apparently changed something, see &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=647043"&gt;#647043&lt;/a&gt;. Current Debian unstable as of today already has 0.5, though.&lt;/p&gt;
&lt;p&gt;After that is done, the rest is easy: In Amazon, click on "Buy MP3" or "Buy MP3 album", which will download a special &lt;strong&gt;AmazonMP3-1234567890.amz&lt;/strong&gt; file. You can then let clamz download all the MP3s by typing:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;clamz AmazonMP3-1234567890.amz&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Wait a few minutes, and you'll have a bunch of non-DRM MP3 files in your current directory. Easy.&lt;/p&gt;
&lt;p&gt;See the manpage for a bunch of options which let you configure clamz to your preferences.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/downloading-non-drm-amazon-mp3s-on-Linux-using-clamz#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1012">amazon</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2399">amz</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2398">clamz</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/49">debian</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/542">digital</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/897">download</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/595">drm</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/267">mp3</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/359">music</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2400">open-source free-software</category>
 <pubDate>Sun, 06 Nov 2011 01:16:05 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1589 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>The TrekStor eBook Reader 3.0 (EBR30-a), review and dissection</title>
 <link>http://www.hermann-uwe.de/blog/the-trekstor-ebook-reader-3-0-ebr30-a-review-and-dissection</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1586"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Trekstor_ebook_reader_3_0_front.preview.jpg" width="160" height="120" align="right" hspace="5" alt="The TrekStor eBook Reader 3.0, front" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1583"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Trekstor_ebook_reader_3_0_front_on.preview.jpg" width="160" height="120" align="right" hspace="5" alt="The TrekStor eBook Reader 3.0, front on" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There a &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Comparison_of_e-book_readers"&gt;many, many, e-book reader devices&lt;/a&gt; available these days, and they're quickly becoming pretty affordable. The currently cheapest device in Germany (that I know of) is the &lt;a href="http://trekstor.de/en/products/detail_entertainment.php?pid=36&amp;amp;cat=14"&gt;TrekStor eBook Reader 3.0&lt;/a&gt;, model number &lt;strong&gt;EBR30-a&lt;/strong&gt;, at 59.- Euros via &lt;a href="http://www.weltbild.de/3/16985164-1/elektronik/weltbild-ebook-reader-3-0.html"&gt;Weltbild&lt;/a&gt; or &lt;a href="http://www.hugendubel.de/3/16985165-1/elektronik/ebook-reader-3-0.html"&gt;Hugendubel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The device has an 800x480 7" TFT (yep, no &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/E_Ink"&gt;e-ink&lt;/a&gt;), 2100mAh battery, it can display PDFs, EPUB, and TXT files (and Adobe DRM crap, which I don't really care about), it has an accelerometer which allows for landscape/portrait switching, it can play MP3, OGG, WAV, and WMA audio files (headphone jack), it can display pictures (BMP, GIF, JPG, even PNG, though that's not mentioned in the vendor's specs), and it has 2GB internal storage for books/music/pictures. Uploading of (non-DRM) content is done by a simple file copy, it enumerates as a standard USB mass storage device with FAT filesystem. It's a relatively nice reader for the price, I've read a few PDFs (datasheets, presentations) on it in the subway/train while listening to music from the device and it's quite OK for my purposes. So much for the review part.&lt;/p&gt;
&lt;p&gt;However, I didn't really buy it for reading books on it, I was more interested in taking it apart, of course ;-) My hope was that it would turn out to be a really cheap device running &lt;a href="https://www.kernel.org/"&gt;Linux&lt;/a&gt;/&lt;a href="http://www.denx.de/wiki/U-Boot"&gt;U-Boot&lt;/a&gt; which would be perfect for playing around with embedded Linux stuff. Unfortunately, I wasn't so lucky (it seems).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1584"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Trekstor_ebook_reader_3_0_opened.preview.jpg" width="160" height="120" align="right" hspace="5" alt="The TrekStor eBook Reader 3.0, opened" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've posted a few photos of the device and its hardware components &lt;a href="https://secure.flickr.com/photos/uwehermann/sets/72157627829025907/"&gt;on my flickr account&lt;/a&gt; and over at &lt;a href="http://randomprojects.org/wiki/TrekStor_eBook_Reader_3.0_EBR30-a_%28Weltbild_%2B_Hugendubel_Edition%29"&gt;randomprojects.org&lt;/a&gt;, together with all the information I was able to find out so far. Here's a quick summary:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Main CPU/SoC&lt;/strong&gt;: FI E200 B6077BA 26P1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAM&lt;/strong&gt;: MIRA P3S12D40ETP (512MBit / 64MByte DDR SDRAM, max. 200MHz)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NAND flash&lt;/strong&gt;: Samsung K9GAG08U0E (16GBit / 2GByte, x8, 3.3V)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Battery management&lt;/strong&gt;: KrossPower AXP199 A5004AB 36G&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RTC/clock/calender chip (I2C)&lt;/strong&gt;: H8563S&lt;/li&gt;
&lt;li&gt;Some accelerometer (to switch between landscape/portait mode), model unclear so far, maybe the chip labeled &lt;strong&gt;605 132&lt;/strong&gt;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1585"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Trekstor_ebook_reader_3_0_cpu.preview.jpg" width="160" height="120" align="right" hspace="5" alt="The TrekStor eBook Reader 3.0, CPU" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are public datasheets for most of the hardware components (see &lt;a href="http://randomprojects.org/wiki/TrekStor_eBook_Reader_3.0_EBR30-a_%28Weltbild_%2B_Hugendubel_Edition%29"&gt;randomprojects.org&lt;/a&gt; for links), but unfortunately the most important one (for the CPU) is not yet found/identified. I was told that the CPU/SoC is probably based on an ARM9 (ARM926EJ-S) core and the firmware running on it seems to be some uCos-based RTOS (not Linux, unfortunately).&lt;/p&gt;
&lt;p&gt;So far I was not able to find out the vendor name or website of the "FI E200" CPU/SoC (let alone any datasheets), any hints would be highly appreciated. I checked &lt;a href="http://www.arm.com/products/processors/licensees.php"&gt;arm.com: Processor Licensees&lt;/a&gt;, but the only two companies whose name starts with "F" having licensed an ARM9 core are Fujitsu and Freescale, which doesn't fit, I think?&lt;/p&gt;
&lt;p&gt;I could (and probably will) check the PCB for RX/TX lines on an UART and/or JTAG pads (none are obviously labelled), and given that it's and ARM9 core there is a good chance that &lt;a href="http://openocd.sourceforge.net/"&gt;OpenOCD&lt;/a&gt; can be used and that a standard cross-gcc toolchain for ARM will work. However, that is all pretty pointless until it's clear which SoC exactly is used, and thus whether there is already Linux and/or U-Boot support for it and/or whether datasheets are available so that the respective code could be written. Without datasheets, this is going to be a pretty painful experience, not really worth investing much time, IMHO.&lt;/p&gt;
&lt;p&gt;If anyone knows more about the vendor/device and respective datasheets, please let me know. Thanks!&lt;/p&gt;
&lt;p&gt;&lt;span style="color:red"&gt;Update 2012-04-19:&lt;/span&gt; I found the UART TX pin a while ago, a &lt;a href="http://randomprojects.org/wiki/TrekStor_eBook_Reader_3.0_EBR30-a_%28Weltbild_%2B_Hugendubel_Edition%29#UART"&gt;bootlog&lt;/a&gt; is available. The CPU and all other chips are also known now: The SoC is an &lt;a href="http://www.allwinnertech.com/product/f1e200.html"&gt;Allwinner Technology F1 E200&lt;/a&gt;, the orientation sensor is a &lt;a href="http://www.memsic.com/component/content/article/33-featured-products/88-dtos.html"&gt;MEMSIC MXC6225XU&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/the-trekstor-ebook-reader-3-0-ebr30-a-review-and-dissection#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2396">adobe</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2393">dissection</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/595">drm</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2388">e-book</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2387">ebook</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2392">ebr30-a</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2395">epub</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1042">hardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2391">lcd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/267">mp3</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1669">ogg</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2394">pcb</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1006">pdf</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2390">reader</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1021">review</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2389">trekstor</category>
 <pubDate>Sun, 23 Oct 2011 18:59:36 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1587 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Flashrom 0.9.4 released - Flashing BIOS/ROM chips from the Unix/Linux command line using various programmers</title>
 <link>http://www.hermann-uwe.de/blog/flashrom-0-9-4-released--flashing-bios-rom-chips-from-the-unix-linux-command-line-using-various-programmers</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1581"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/flashrom_logo.png" width="96" height="96" align="right" hspace="5" alt="flashrom logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Forgot to mention this here: We released &lt;a href="http://flashrom.org"&gt;flashrom&lt;/a&gt; 0.9.4 a few days ago, the latest release of the open-source, GPL'd ROM chip flashing software for Linux, *BSD, DOS, and partially also Windows (work in progress, though).&lt;/p&gt;
&lt;p&gt;Here's a quick summary of the &lt;a href="http://flashrom.org/Flashrom/0.9.4"&gt;release announcement&lt;/a&gt;. Some of the noteworthy news items include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for &lt;a href="http://flashrom.org/Supported_programmers"&gt;new programmers&lt;/a&gt;: OpenMoko Neo1973/Neo FreeRunner debug board version 2 or 3, Olimex ARM-USB-TINY, ARM-USB-TINY-H, ARM-USB-OCD, and ARM-USB-OCD-H, Open Graphics Project development card (OGD1), Angelbird Wings PCIe SSD/88SX7042, ITE IT85xx embedded controllers, Intel NICs with parallel flash.&lt;/li&gt;
&lt;li&gt;Dozens of added flash chips, chipsets, mainboards.&lt;/li&gt;
&lt;li&gt;Improved Dediprog SF100 support.&lt;/li&gt;
&lt;li&gt;Add support for more than one Super I/O or EC per machine.&lt;/li&gt;
&lt;li&gt;Always read the flash chip before writing, for improved error checking and faster programming.&lt;/li&gt;
&lt;li&gt;Enable write support on NVIDIA MCP6x/MCP7x.&lt;/li&gt;
&lt;li&gt;Lots of bugfixes, documentation fixes, internal improvements, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Get the &lt;a href=""&gt;latest release tarball&lt;/a&gt;, or download and build the &lt;a href="http://flashrom.org/Downloads"&gt;most recent version via Subversion&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;svn co svn://flashrom.org/flashrom/trunk flashrom&lt;/strong&gt;
  $ &lt;strong&gt;cd flashrom&lt;/strong&gt;
  $ &lt;strong&gt;make&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
I already updated &lt;a href="http://packages.qa.debian.org/f/flashrom.html"&gt;the Debian package&lt;/a&gt; to 0.9.4 (it has also already migrated to Debian testing and Ubuntu), other people have updated Fedora, Gentoo, NetBSD etc. etc.&lt;/p&gt;
&lt;p&gt;There's already a &lt;a href="http://patchwork.coreboot.org/project/flashrom/list/"&gt;huge amount of patches queued for the next release&lt;/a&gt;, including support for even more programmers, PowerPC support (tested on Mac Mini and others), and of course the usual "more boards, more chips" items...&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/flashrom-0-9-4-released--flashing-bios-rom-chips-from-the-unix-linux-command-line-using-various-programmers#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1026">bios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1246">cdrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1845">coreboot</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2227">dos</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1665">efi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/199">flash</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1795">flashrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2223">fwh</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2222">lpc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2225">parallel</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2197">plcc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2226">programmer</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1796">rom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2224">spi</category>
 <pubDate>Mon, 29 Aug 2011 18:25:20 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1582 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>The FONIC Surf-Stick, Huawei E1750 HSPA USB modem, on Debian GNU/Linux via usb_modeswitch and wvdial</title>
 <link>http://www.hermann-uwe.de/blog/the-fonic-surf-stick-huawei-e1750-hspa-usb-modem-on-debian-gnu-linux-via-usb-modeswitch-and-wvdial</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1577"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/fonic_surfstick_huawei_e1750_package.preview.jpg" width="320" height="240" align="right" hspace="5" alt="FONIC Surf-Stick, Huawei E1750, package" /&gt;&lt;/a&gt;&lt;br /&gt;
I recently got myself a &lt;a href="http://www.fonic.de"&gt;FONIC&lt;/a&gt; account for mobile Internet. This (German) prepaid-provider offers a "daily flatrate" for 2.50&amp;euro; per day. After the 10th day of usage (i.e., 25&amp;euro;) you don't pay any more. This means, even if you need mobile Internet access 31 days a month, you only pay for 10 days. After 500MB/day or 5GB/month you're throttled down to GPRS speed (but you can still connect, and you don't pay more).&lt;/p&gt;
&lt;p&gt;The FONIC account comes with the "&lt;a href="http://www.fonic.de/html/faqs/surfstick/index.html#oben"&gt;FONIC Surf-Stick&lt;/a&gt;", a &lt;strong&gt;Huawei E1750&lt;/strong&gt; &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/High_Speed_Packet_Access"&gt;HSPA&lt;/a&gt; USB modem (apparently it supports &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/General_Packet_Radio_Service"&gt;GPRS&lt;/a&gt;, &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Enhanced_Data_Rates_for_GSM_Evolution"&gt;EDGE&lt;/a&gt;, &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Universal_Mobile_Telecommunications_System"&gt;UMTS&lt;/a&gt;, &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/High-Speed_Downlink_Packet_Access"&gt;HSDPA&lt;/a&gt; (up to 7.2Mbit/s), &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/High-Speed_Uplink_Packet_Access"&gt;HSUPA&lt;/a&gt; (up to 5.76 Mbit/s), and a &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Subscriber_Identity_Module"&gt;SIM card&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In order to use the device on Linux you need two packages, &lt;a href="http://www.draisberghof.de/usb_modeswitch/"&gt;usb_modeswitch&lt;/a&gt; and &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Wvdial"&gt;wvdial&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;apt-get install usb-modeswitch wvdial&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Recent versions of usb_modeswitch (and matching udev entries) already support the Huawei E1750 out of the box, a few seconds after attaching the device it's automatically switched into modem mode. After this has been done you should have three new serial devices, usually /dev/ttyUSB0, /dev/ttyUSB1, and /dev/ttyUSB2. You'll need /dev/ttyUSB0 for talking to the device using &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Hayes_command_set"&gt;AT commands&lt;/a&gt;. The lsusb output should look like this (see &lt;a href="http://randomprojects.org/wiki/FONIC_Surf-Stick_Huawei_E1750"&gt;here&lt;/a&gt; for full &lt;strong&gt;lsusb -vvv&lt;/strong&gt;):&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;lsusb&lt;/strong&gt;
  Bus 001 Device 045: ID &lt;strong&gt;12d1:1436&lt;/strong&gt; Huawei Technologies Co., Ltd. 
&lt;/pre&gt;&lt;p&gt;
(before usb_modeswitch was run, the USB IDs were &lt;strong&gt;12d1:1446&lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1578"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/fonic_surfstick_huawei_e1750_front.preview.jpg" width="320" height="240" align="right" hspace="5" alt="FONIC Surf-Stick, Huawei E1750, front" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The required settings for connecting are documented at &lt;a href="http://www.fonic.de/html/handy-einstellungen.html#internet"&gt;fonic.de&lt;/a&gt;, specifically the &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Access_Point_Name"&gt;APN&lt;/a&gt; (&lt;strong&gt;pinternet.interkom.de&lt;/strong&gt;). A username and/or password is not required. You need to provide your FONIC &lt;strong&gt;PIN&lt;/strong&gt; though. Dialing is done using the &lt;strong&gt;*99#&lt;/strong&gt; number and using the &lt;strong&gt;ATDT&lt;/strong&gt; command.&lt;/p&gt;
&lt;p&gt;I'm using the following &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Wvdial"&gt;wvdial&lt;/a&gt; config file:&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cat /etc/wvdial.conf&lt;/strong&gt;
  &lt;strong&gt;[Dialer Defaults]&lt;/strong&gt;
  Modem = /dev/ttyUSB0
  Baud = 460800
  &lt;strong&gt;[Dialer pin]&lt;/strong&gt;
  Init1 = AT+CPIN=&lt;strong&gt;1234&lt;/strong&gt;
  &lt;strong&gt;[Dialer fonic]&lt;/strong&gt;
  Phone = &lt;strong&gt;*99#&lt;/strong&gt;
  Username = foo
  Password = foo
  Stupid Mode = 1
  Dial Command = &lt;strong&gt;ATDT&lt;/strong&gt;
  Init2 = ATZ
  Init3 = AT+CGDCONT=1,"IP","&lt;strong&gt;pinternet.interkom.de&lt;/strong&gt;"
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1579"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/fonic_surfstick_huawei_e1750_back.preview.jpg" width="320" height="240" align="right" hspace="5" alt="FONIC Surf-Stick, Huawei E1750, back" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For mobile Internet access you would do the following:&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Attach the device via USB, wait a few seconds to let usb_modeswitch do its magic.
&lt;/li&gt;
&lt;li&gt;
Run &lt;strong&gt;wvdial pin&lt;/strong&gt; and wait a few seconds (until the prompt returns):&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;wvdial pin&lt;/strong&gt;
  --&gt; WvDial: Internet dialer version 1.61
  --&gt; Initializing modem.
  --&gt; Sending: AT+CPIN=1234
  AT+CPIN=1234
  OK
  --&gt; Modem initialized.
  --&gt; Configuration does not specify a valid phone number.
  --&gt; Configuration does not specify a valid login name.
  --&gt; Configuration does not specify a valid password.
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
Run &lt;strong&gt;wvdial fonic&lt;/strong&gt; and wait until the "CONNECT" message appears and you get DNS addresses:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;wvdial fonic&lt;/strong&gt;
  --&gt; WvDial: Internet dialer version 1.61
  --&gt; Initializing modem.
  --&gt; Sending: ATZ
  ATZ
  OK
  --&gt; Sending: ATZ
  ATZ
  OK
  --&gt; Sending: AT+CGDCONT=1,"IP","pinternet.interkom.de"
  AT+CGDCONT=1,"IP","pinternet.interkom.de"
  OK
  --&gt; Modem initialized.
  --&gt; Sending: ATDT*99#
  --&gt; Waiting for carrier.
  ATDT*99#
  CONNECT
  --&gt; Carrier detected.  Starting PPP immediately.
  --&gt; Starting pppd at Mon Aug  1 xx:xx:xx 2011
  --&gt; Pid of pppd: 18672
  --&gt; Using interface ppp0
  --&gt; local  IP address xxx.xxx.xxx.xxx
  --&gt; remote IP address yyy.yyy.yyy.yyy
  --&gt; primary   DNS address 193.189.244.225
  --&gt; secondary DNS address 193.189.244.206
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;If everything worked fine you should now have connected successfully.&lt;/p&gt;
&lt;p&gt;There are other alternatives for achieving the same result, including &lt;a href="http://umtsmon.sourceforge.net/"&gt;umtsmon&lt;/a&gt; (Qt3 in the last release from 2009, looks a bit unmaintained), &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Kppp"&gt;kppp&lt;/a&gt;, the GNOME &lt;a href="http://projects.gnome.org/NetworkManager/"&gt;NetworkManager&lt;/a&gt;, and others, but wvdial worked OK for me.&lt;/p&gt;
&lt;p&gt;For more details about the Huawei E1750 device (e.g. &lt;strong&gt;lsusb -vvv&lt;/strong&gt; and more photos), see my wiki page at&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://randomprojects.org/wiki/FONIC_Surf-Stick_Huawei_E1750"&gt;http://randomprojects.org/wiki/FONIC_Surf-Stick_Huawei_E1750&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong style="color:red"&gt;Update 2011-08-03&lt;/strong&gt;: My measured download speed for a Debian ISO (over HTTP via wget, at night, roughly 22:00 o'clock) is 350-470 KB/s in case anyone is interested. During this download the blue LED on the stick was enabled, which denotes a UMTS connection (green == GPRS/EDGE, turquoise == HSDPA).&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/the-fonic-surf-stick-huawei-e1750-hspa-usb-modem-on-debian-gnu-linux-via-usb-modeswitch-and-wvdial#comments</comments>
 <pubDate>Mon, 01 Aug 2011 01:30:13 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1580 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Testing stuff with QEMU - Part 4: Debian GNU/Linux on PowerPC</title>
 <link>http://www.hermann-uwe.de/blog/testing-stuff-with-qemu-part-4-debian-gnu-linux-on-powerpc</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1574"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/qemu_powerpc_debian_openbios_2.preview.png" width="320" height="198" align="right" hspace="5" alt="Debian PowerPC in QEMU, screenshot 1" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1575"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/qemu_powerpc_debian_sysinfo.preview.png" width="320" height="245" align="right" hspace="5" alt="Debian PowerPC in QEMU, screenshot 2" /&gt;&lt;/a&gt;&lt;br /&gt;
It's been a while since my last blog post, and also quite a while since my last item in the "&lt;a href="/search/node/%22testing+stuff+with+qemu%22"&gt;Testing stuff with QEMU&lt;/a&gt;" series, so here goes.&lt;/p&gt;
&lt;p&gt;I'm using this QEMU image to do compile-tests on the PowerPC architecture for various software projects, especially &lt;a href="http://www.flashrom.org"&gt;flashrom&lt;/a&gt; (open-source flash ROM programming software).&lt;/p&gt;
&lt;p&gt;So here's how to install Debian GNU/Linux on PowerPC (in &lt;a href="http://wiki.qemu.org"&gt;QEMU&lt;/a&gt;):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
    Install QEMU:&lt;br /&gt;
    $ &lt;strong&gt;apt-get install qemu&lt;/strong&gt;
  &lt;/li&gt;
&lt;li&gt;
    Create a (resizable) image which will hold the installed OS. Use the relatively new "qcow2" QEMU image format, which will only take up as much space as is really needed and has some other nice features (compression, encryption).&lt;br /&gt;
    $ &lt;strong&gt;qemu-img create -f qcow2 debian_powerpc.qcow2 2G&lt;/strong&gt;
  &lt;/li&gt;
&lt;li&gt;
    Download a Debian installer ISO for PowerPC:&lt;br /&gt;
    $ &lt;strong&gt;wget http://cdimage.debian.org/cdimage/archive/5.0.8/powerpc/iso-cd/debian-508-powerpc-netinst.iso&lt;/strong&gt;&lt;br /&gt;
    Note: For some reason, the current Debian stable 6.0.2.1 ISO didn't work for me (red screen with undefined error during the install; didn't look into the issue, yet). Using an older 5.0.8 image worked fine.
  &lt;/li&gt;
&lt;li&gt;
    Install Debian in the QEMU image:&lt;br /&gt;
    $ &lt;strong&gt;qemu-system-ppc -hda debian_powerpc.qcow2 -boot d -cdrom debian-508-powerpc-netinst.iso&lt;/strong&gt;&lt;br /&gt;
    The installation is nothing really special, you'll know almost everything from your usual x86 installation procedure. Note that you have to use "qemu-system-ppc" (not your usual "qemu"), of course.
  &lt;/li&gt;
&lt;li&gt;
    After the install has finished, shut down QEMU; from now on you can boot it with:&lt;br /&gt;
    $ &lt;strong&gt;qemu-system-ppc -hda debian_powerpc.qcow2&lt;/strong&gt;
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;See the screenshots for some system info. By default an &lt;a href="http://www.openfirmware.info"&gt;OpenBIOS&lt;/a&gt; firmware and the &lt;a href="http://penguinppc.org/bootloaders/quik/"&gt;quik&lt;/a&gt; bootloader is used, the emulated "machine" is g3beige (Heathrow based PowerMAC). You can use QEMU's -M and -cpu options to select different machines or CPUs.&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/testing-stuff-with-qemu-part-4-debian-gnu-linux-on-powerpc#comments</comments>
 <pubDate>Thu, 28 Jul 2011 23:39:21 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1576 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>openbiosprog-spi, a DIY Open Hardware and Free Software USB-based SPI BIOS chip flasher using flashrom</title>
 <link>http://www.hermann-uwe.de/blog/openbiosprog-spi-a-diy-open-hardware-and-free-software-usb-based-spi-bios-chip-flasher-using-flashrom</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1564"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Openbiosprog-spi-assembled-device-0.1-powerled-chip.preview.jpg" width="320" height="240" align="right" hspace="5" alt="openbiosprog-spi device" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you're &lt;a href="http://identi.ca/uwehermann"&gt;following me on identi.ca&lt;/a&gt; you probably already know that I've been designing a small PCB for a USB-based SPI chip programmer named &lt;a href="http://randomprojects.org/wiki/Openbiosprog-spi"&gt;openbiosprog-spi&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main use-case of the device is to help you &lt;strong&gt;recover easily from a failed BIOS upgrade&lt;/strong&gt; (either due to using an incorrect BIOS image, due to power outages during the flashing progress, or whatever). The device only supports SPI chips, as used in recent mainboards (in DIP-8 form factor, or via manual wiring possibly also soldered-in SO-8 variants). It can identify, read, erase, or write the chips.&lt;/p&gt;
&lt;p&gt;Of course the whole "toolchain" of software tools I used for creating the hardware is open-source, and the hardware itself (schematics and PCB layouts) are freely released under a Creative Commons license (i.e., it's an "Open Hardware" device). The user-space source code is part of &lt;a href="http://www.flashrom.org"&gt;flashrom&lt;/a&gt; (GPL, version 2), the schematics and PCB layouts are licensed under the &lt;a href="http://creativecommons.org/licenses/by-sa/3.0/"&gt;CC-BY-SA 3.0&lt;/a&gt; license and were created using the open-source &lt;a href="http://kicad.sourceforge.net"&gt;Kicad&lt;/a&gt; EDA suite (GPL, version 2).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1567"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Openbiosprog-spi-schematics-0.1.preview.png" width="240" height="165" align="right" hspace="5" alt="openbiosprog-spi schematics" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1568"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Openbiosprog-spi-pcb-kicad-0.1.preview.png" width="240" height="125" align="right" hspace="5" alt="openbiosprog-spi Kicad PCB layout" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The schematics, PCB layouts, and other material is available from &lt;a href="http://gitorious.org/openbiosprog/openbiosprog-spi"&gt;gitorious&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;git clone git://gitorious.org/openbiosprog/openbiosprog-spi.git&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
You can also &lt;a href="http://randomprojects.org/wiki/images/a/a8/Openbiosprog-spi-0.1-gerber.zip"&gt;download the final Gerber files&lt;/a&gt; (ZIP) for viewing them, or sending them to a PCB manufacturer.&lt;/p&gt;
&lt;p&gt;Some more design notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The device uses the &lt;a href="http://www.ftdichip.com/Products/FT2232H.htm"&gt;FTDI FT2232H&lt;/a&gt; chip as basis for USB as well as for handling the actual SPI protocol in hardware (MPSSE engine of the FT2232H).&lt;/li&gt;
&lt;li&gt;Attaching the SPI chip:
&lt;ul&gt;
&lt;li&gt;There's a DIP-8 socket on the device so you can easily insert the SPI chip you want to read/erase/program.&lt;/li&gt;
&lt;li&gt;Optionally, if you don't want a DIP-8 socket, you can solder in a pin-header with 8 pins, which allows you to connect the individual pins to the SPI chip via jumper wires or grippers/probes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The PCB board dimensions are 44mm x 20mm, and it's a 2-layer board using mostly 0603 SMD components.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://randomprojects.org/wiki/Openbiosprog-spi#Usage"&gt;Basic usage&lt;/a&gt; example of the device on Linux (or other OSes supported by flashrom):&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;flashrom -p ft2232_spi:type=2232H,port=A -r backup.bin&lt;/strong&gt; &lt;em&gt;(reads the current chip contents into a file)&lt;/em&gt;
&lt;/pre&gt;&lt;p&gt;
&lt;a href="http://www.hermann-uwe.de/node/1565"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Openbiosprog-spi-finished-pcbs-bunch-of-boards-0.1.preview.jpg" width="240" height="180" align="right" hspace="5" alt="openbiosprog-spi PCBs" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1566"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Openbiosprog-spi-assembled-device-0.1-parts.preview.jpg" width="240" height="180" align="right" hspace="5" alt="openbiosprog-spi parts list" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Over at the main projects page of openbiosprog-spi at&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://randomprojects.org/wiki/Openbiosprog-spi"&gt;http://randomprojects.org/wiki/Openbiosprog-spi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have put up a lot more photos and information such as the &lt;a href="http://randomprojects.org/wiki/Openbiosprog-spi#Bill_of_materials"&gt;bill of materials&lt;/a&gt;, the Kicad settings I used for &lt;a href="http://randomprojects.org/wiki/Openbiosprog-spi#PCB_manufacturing"&gt;creating the PCBs, the Gerber files and the Excellon drill files&lt;/a&gt; and so on.&lt;/p&gt;
&lt;p&gt;The first few prototype boards I ordered at &lt;a href="http://www.pcb-pool.com/ppuk/index.html"&gt;PCB-POOL.COM&lt;/a&gt; (but you can use any other PCB manufacturer of course), the bill of materials (BOM) lists the &lt;a href="http://de.mouser.com"&gt;Mouser&lt;/a&gt; and &lt;a href="http://www.csd-electronics.de/de/index.htm"&gt;CSD electronics&lt;/a&gt; part numbers and prices, but you can also buy the stuff elsewhere, of course (Digikey, Farnell, whatever).&lt;/p&gt;
&lt;p&gt;I already hand-soldered one or two prototypes and tested the device. Both hardware and software worked fine basically, you just need a small one-liner patch to fix an issue in flashrom, but that should be merged upstream soonish.&lt;/p&gt;
&lt;p&gt;In order to make it easy for interested users to get the PCBs I'll probably make them available in the &lt;a href="http://batchpcb.com/index.php/Products"&gt;BatchPCB Market Place&lt;/a&gt; soonish, so you can easily order them from there (you do still need to solder the components though). Note: I'm not making any money off of this, this is a pure hobby project.&lt;/p&gt;
&lt;p&gt;All in all I have to say that this was a really fun little project, and a useful one too. This was my first hardware project using Kicad (I used &lt;a href="http://www.gpleda.org"&gt;gEDA/PCB&lt;/a&gt;, also an open-source EDA toolsuite, for another small project) and I must say it worked very nicely. I didn't even have to read any manual really, it was all pretty intuitive. Please consider &lt;strong&gt;not&lt;/strong&gt; using Eagle (or other closed-source PCB software) for your next Open Hardware project, there are at least two viable open-source options (Kicad, gEDA/PCB) which both work just fine.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/openbiosprog-spi-a-diy-open-hardware-and-free-software-usb-based-spi-bios-chip-flasher-using-flashrom#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1026">bios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/361">cc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1845">coreboot</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1170">creativecommons</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1953">diy</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1795">flashrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/723">gpl</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1042">hardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2383">kicad</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2379">openbiosprog</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2380">openbiosprog-spi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2249">openhardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2381">usb spi</category>
 <pubDate>Thu, 26 Aug 2010 10:23:05 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1569 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Using the HP Pavilion dv7-3127eg laptop with Debian GNU/Linux</title>
 <link>http://www.hermann-uwe.de/blog/using-the-hp-pavilion-dv7-3127eg-laptop-with-debian-gnu-linux</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1560"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/hp_pavilion_dv7_3127eg.preview.jpg" width="320" height="240" align="right" hspace="5" alt="HP Pavilion dv7-3127eg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yep, so I bought a new laptop recently, my &lt;a href="http://hermann-uwe.de/blog/using-debian-gnu-linux-on-the-ibm-lenovo-thinkpad-t40p"&gt;IBM/Lenovo Thinkpad T40p&lt;/a&gt; was slowly getting &lt;em&gt;really&lt;/em&gt; unbearably sloooow (Celeron 1.5 GHz, 2 GB RAM max). After comparing some models I set out to buy a certain laptop in a local store, which they didn't have in stock, so I spontaneously got another model, the &lt;a href="http://h10025.www1.hp.com/ewfrf/wc/product?lc=en&amp;amp;dlc=hr&amp;amp;cc=hr&amp;amp;product=4158065&amp;amp;lang=hr"&gt;HP Pavilion dv7-3127eg&lt;/a&gt; (HP product number VY554EA).&lt;/p&gt;
&lt;p&gt;Why this one? Well, the killer feature for me was that it has two SATA disks, hence allows me to run a &lt;strong&gt;RAID-1 in my laptop&lt;/strong&gt;. This allows me to sleep better at night, knowing that the next dying disk will &lt;strong&gt;not&lt;/strong&gt; necessarily lead to data loss (yes, I do still perform regular backups, of course).&lt;/p&gt;
&lt;p&gt;Other pros: Much faster than the old notebook, this one is an AMD Turion II Dual-Core Mobile M520 at 2.3 GHz per core, it has 4 GB RAM (8 GB max), and uses an &lt;strong&gt;AMD RS780 / SB700 chipset&lt;/strong&gt; which is supported by the Free-Software / Open-Source BIOS / firmware project &lt;a href="http://www.coreboot.org"&gt;coreboot&lt;/a&gt;, so this might make the laptop a good coreboot-target on the long run. I'll probably start working on that when I'm willing to open / dissect it or when the warranty expires, whichever happens first.&lt;/p&gt;
&lt;p&gt;Anyway, I set up a page at &lt;a href="http://randomprojects.org"&gt;randomprojects.org&lt;/a&gt; which contains lots more details about using Linux on this laptop:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;a href="http://randomprojects.org/wiki/HP_Pavilion_dv7-3127eg"&gt;http://randomprojects.org/wiki/HP_Pavilion_dv7-3127eg&lt;/a&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Most of the hardware is supported out of the box, though I haven't yet tested everything. There may be issues with suspend-to-disk / suspend-to-RAM, sometimes it seems to hang (may be just a simple config change is needed in /etc/hibernate/disk.cfg).&lt;/p&gt;
&lt;p&gt;Cons: Pretty big and heavy (but that's OK, I use it mostly as "semi-mobile desktop replacement"), glossy screen, loud fans (probably due to the two disks).&lt;/p&gt;
&lt;p&gt;For reference, here's an lspci of the box:&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;lspci -tvnn&lt;/strong&gt;
  -[0000:00]-+-00.0  Advanced Micro Devices [AMD] RS780 Host Bridge Alternate [1022:9601]
           +-02.0-[01]--+-00.0  ATI Technologies Inc M96 [Mobility Radeon HD 4650] [1002:9480]
           |            \-00.1  ATI Technologies Inc RV710/730 [1002:aa38]
           +-04.0-[02-07]--
           +-05.0-[08]----00.0  Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) [168c:002b]
           +-06.0-[09]----00.0  Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168]
           +-0a.0-[0a]--
           +-11.0  ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] [1002:4391]
           +-12.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller [1002:4397]
           +-12.1  ATI Technologies Inc SB700 USB OHCI1 Controller [1002:4398]
           +-12.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller [1002:4396]
           +-13.0  ATI Technologies Inc SB700/SB800 USB OHCI0 Controller [1002:4397]
           +-13.1  ATI Technologies Inc SB700 USB OHCI1 Controller [1002:4398]
           +-13.2  ATI Technologies Inc SB700/SB800 USB EHCI Controller [1002:4396]
           +-14.0  ATI Technologies Inc SBx00 SMBus Controller [1002:4385]
           +-14.2  ATI Technologies Inc SBx00 Azalia (Intel HDA) [1002:4383]
           +-14.3  ATI Technologies Inc SB700/SB800 LPC host controller [1002:439d]
           +-14.4-[0b]--
           +-18.0  Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] HyperTransport Configuration [1022:1200]
           +-18.1  Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Address Map [1022:1201]
           +-18.2  Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] DRAM Controller [1022:1202]
           +-18.3  Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Miscellaneous Control [1022:1203]
           \-18.4  Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Link Control [1022:1204]
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Full &lt;strong&gt;lspci -vvvxxxxnnn&lt;/strong&gt;, &lt;strong&gt;lsusb -vvv&lt;/strong&gt;, and a much more detailed list of tested hardware components is available &lt;a href="http://randomprojects.org/wiki/HP_Pavilion_dv7-3127eg"&gt;in the wiki&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/using-the-hp-pavilion-dv7-3127eg-laptop-with-debian-gnu-linux#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/49">debian</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2373">dv7</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/528">gnu</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1042">hardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2371">hp</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/203">laptop</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/204">notebook</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2372">pavilion</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1810">raid</category>
 <pubDate>Thu, 15 Jul 2010 09:56:44 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1561 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Using the Oasis UMO19 MCU003 400x USB microscope on Linux via luvcview</title>
 <link>http://www.hermann-uwe.de/blog/using-the-oasis-umo19-mcu003-400x-usb-microscope-on-linux-via-luvcview</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1553"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Oasis_umo19_mcu003_device.preview.jpg" width="320" height="240" align="right" hspace="5" alt="Oasis UMO19 MCU003 digital USB microscope" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've been buying quite a lot of (usually cheapo) gadgets recently, which I'll probably introduce / review in various blog posts sooner or later. Let me start with a fun little gadget, a digital USB-based microscope. I found out about it via &lt;a href="http://lostscrews.com/viewtopic.php?f=10&amp;amp;t=82&amp;amp;p=581&amp;amp;hilit=biot#p581"&gt;this thread&lt;/a&gt; over at &lt;a href="http://lostscrews.com"&gt;lostscrews.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can get this (or a very similar device) e.g. on eBay for roughly 50 Euros. Mine seems to be from a company called &lt;a href="http://www.oasis-gmbh.de/impressum.htm"&gt;Oasis&lt;/a&gt; (though they're probably just the reseller, not sure). The device doesn't seem to have a nice name, but I can see &lt;strong&gt;UMO19 MCU003&lt;/strong&gt; on the microscope, so I guess that's the name or model number.&lt;/p&gt;
&lt;p&gt;It can focus on magnifications of 20x or 400x. The image resolution is said to be a max. of 1600x1200, but in practice most of my images are 640x480, maybe I have to change some settings and/or the resolution depends on the magnification factor and lighting conditions.&lt;/p&gt;
&lt;p&gt;The device acts as a simple UVC webcam when attached to USB, so you can view the images easily via any compatible webcam software, e.g. &lt;a href="http://www.quickcamteam.net/software/linux/v4l2-software/luvcview/"&gt;luvcview&lt;/a&gt; and also save screenshots of the magnified areas (see images).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1548"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Umo19_chip_epcos_1.jpg" width="200" height="150" align="right" hspace="5" alt="UMO19 chip" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1549"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Umo19_fabric4.jpg" width="200" height="150" align="right" hspace="5" alt="UMO19 fabric" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1550"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Umo19_led1.jpg" width="200" height="150" align="right" hspace="5" alt="UMO19 LED" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;First three from left to right: SMD LED (400x), clothes/jacket (400x), random PCB (20x). The other two below: A via on a PCB (400x), and the "pixels" of a TFT screen (400x).&lt;/p&gt;
&lt;p&gt;It worked out of the box on Linux for me, the &lt;strong&gt;uvcvideo&lt;/strong&gt; kernel driver was loaded automatically.&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;lsusb&lt;/strong&gt;
 Bus 001 Device 013: ID 0ac8:3610 Z-Star Microelectronics Corp.
&lt;/pre&gt;&lt;p&gt;
I set up a wiki page for more details (including full &lt;strong&gt;lsusb -vvv&lt;/strong&gt;) and sample images at:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://randomprojects.org/wiki/Oasis_UMO19_MCU003_USB_microscope"&gt;http://randomprojects.org/wiki/Oasis_UMO19_MCU003_USB_microscope&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I will also post some more images there over the next few days.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1551"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Umo19_tft1.jpg" width="200" height="150" align="right" hspace="5" alt="UMO19 TFT" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.hermann-uwe.de/node/1552"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Umo19_via2.preview.jpg" width="200" height="150" align="right" hspace="5" alt="UMO19 via" /&gt;&lt;/a&gt;&lt;br /&gt;
This is a really fun device for having a look at stuff you'd normally not see (or not well enough), and also useful for e.g. checking PCB solder joints, checking all kinds of electronics for errors or missing/misaligned parts, finding the chip name / model number of very tiny chips etc. etc. I can also imagine it's quite nice for biological use-cases, e.g. for studying insects, tissue, plants, and so on.&lt;/p&gt;
&lt;p&gt;Anyway, definately a nice toy for relatively low price, I can highly recommend a device like this. Check eBay (search for e.g. "usb mikroskop 400") and various online shops for similar devices, there seem to be a large number of them with different names and from different vendors. Just make sure it has at least 400x magnification, there are also some with only 80x or 200x which is not as useful as 400x, of course.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/using-the-oasis-umo19-mcu003-400x-usb-microscope-on-linux-via-luvcview#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2355">20x</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2354">400x</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/49">debian</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2358">electronics</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/723">gpl</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2349">luvcview</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2357">macro</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2353">mcu003</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2356">microscope</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1372">oasis</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2352">umo19</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2350">uvc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2351">uvcvideo</category>
 <pubDate>Thu, 24 Jun 2010 12:31:12 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1554 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>flashrom 0.9.2 released -- Open-Source, crossplatform BIOS / EEPROM / flash chip programmer</title>
 <link>http://www.hermann-uwe.de/blog/flashrom-0-9-2-released--open-source-crossplatform-bios-eeprom-flash-chip-programmer</link>
 <description>&lt;p&gt;The long-pending 0.9.2 version of the open-source, cross-platform, commandline &lt;a href="http://www.flashrom.org"&gt;flashrom&lt;/a&gt; utility &lt;a hef="http://blogs.coreboot.org/blog/2010/06/02/flashrom-0-9-2-released/"&gt;has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From the announce:&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;strong&gt;New major user-visible features:&lt;/strong&gt;&lt;br /&gt;
    * Dozens of newly supported mainboards, chipsets and flash chips.&lt;br /&gt;
    * Support for Dr. Kaiser PC-Waechter PCI devices (FPGA variant).&lt;br /&gt;
    * Support for flashing SPI chips with the Bus Pirate.&lt;br /&gt;
    * Support for the Dediprog SF100 external programmer.&lt;br /&gt;
    * Selective blockwise erase for all flash chips.&lt;br /&gt;
    * Automatic chip unlocking.&lt;br /&gt;
    * Support for each programmer can be selected at compile time.&lt;br /&gt;
    * Generic detection for unknown flash chips.&lt;br /&gt;
    * Common mainboard features are now detected automatically.&lt;br /&gt;
    * Mainboard matching via DMI strings.&lt;br /&gt;
    * Laptop detection which triggers safety measures.&lt;br /&gt;
    * Test flags for all part of flashrom operation.&lt;br /&gt;
    * Windows support for USB-based and serial-based programmers.&lt;br /&gt;
    * NetBSD support.&lt;br /&gt;
    * DOS support.&lt;br /&gt;
    * Slightly changed command line invocation. Please see the man page for details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Experimental new features:&lt;/strong&gt;&lt;br /&gt;
    * Support for some NVIDIA graphics cards.&lt;br /&gt;
    * Chip test pattern generation.&lt;br /&gt;
    * Bit-banging SPI infrastructure.&lt;br /&gt;
    * Nvidia MCP6*/MCP7* chipset detection.&lt;br /&gt;
    * Support for Highpoint ATA/RAID controllers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Infrastructural improvements and fixes:&lt;/strong&gt;&lt;br /&gt;
    * Lots of cleanups.&lt;br /&gt;
    * Various bugfixes and workarounds for broken third-party software.&lt;br /&gt;
    * Better error messages.&lt;br /&gt;
    * Reliability fixes.&lt;br /&gt;
    * Adjustable severity level for messages.&lt;br /&gt;
    * Programmer-specific chip size limitation warnings.&lt;br /&gt;
    * Multiple builtin frontends for flashrom are now possible.&lt;br /&gt;
    * Increased strictness in board matching.&lt;br /&gt;
    * Extensive selfchecks on startup to protect against miscompilation.&lt;br /&gt;
    * Better timing precision for touchy flash chips.&lt;br /&gt;
    * Do not rely on Linux kernel bugs for mapping memory.&lt;br /&gt;
    * Improved documentation.&lt;br /&gt;
    * Split frontend and backend functionality.&lt;br /&gt;
    * Print runtime and build environment information.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;The list of supported OSes and architectures is slowly getting longer, e.g. these have been tested: Linux, FreeBSD, NetBSD, DragonFly BSD, Nexenta, Solaris and Mac OS X. There's partial support for DOS (no USB/serial flashers) and Windows (no PCI flashers). Initial (partial) PowerPC and MIPS support has been merged, ARM support and other upcoming.&lt;/p&gt;
&lt;p&gt;Also, the list of external (non-mainboard) programmers increases, e.g. there is support for NICs (3COM, Realtek, SMC, others upcoming), SATA/IDE cards from Silicon Image and Highpoint, some NVIDIA cards, and various USB- or parallelport- or serialport- programmers such as the Busirate, Dediprog SF100, FT2232-based SPI programmers and more.&lt;/p&gt;
&lt;p&gt;More details at &lt;a href="http://www.flashrom.org"&gt;flashrom.org&lt;/a&gt; and in the &lt;a href="http://flashrom.org/Supported_hardware"&gt;list of supported chips, chipsets, baords, and programmers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I uploaded an svn version slightly more recent than 0.9.2 to &lt;a href="http://packages.qa.debian.org/f/flashrom.html"&gt;Debian unstable&lt;/a&gt;, which should reach Debian testing (and Ubuntu I guess) soonish.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/flashrom-0-9-2-released--open-source-crossplatform-bios-eeprom-flash-chip-programmer#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2344">3com</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1026">bios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2339">buspirate</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1246">cdrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1845">coreboot</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2341">dediprog</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2227">dos</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1665">efi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/199">flash</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1795">flashrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2340">ft2232</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2287">ftdi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2223">fwh</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2348">highpoint</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2222">lpc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2343">nic</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/430">nvidia</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2225">parallel</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2197">plcc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2226">programmer</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2347">realtek</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1796">rom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1727">sata</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2342">sf100</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2345">sii</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2346">silicon image</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2224">spi</category>
 <pubDate>Tue, 08 Jun 2010 17:30:31 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1547 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>coreboot / flashrom in GSOC 2010 -- student application deadline today!</title>
 <link>http://www.hermann-uwe.de/blog/coreboot-flashrom-in-gsoc-2010--student-application-deadline-today</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1545"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/2010soclogo.jpg" width="320" height="285" align="right" hspace="5" alt="GSoC 2010 logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As you may know there's a &lt;a href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; program again this year.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;deadline&lt;/strong&gt; for student applications is &lt;strong&gt;April 9th at 19:00 UTC&lt;/strong&gt;, so if you're a student and you want to work on a &lt;a href="http://www.coreboot.org"&gt;coreboot&lt;/a&gt; (open-source BIOS / PC firmware) or &lt;a href="http://www.flashrom.org"&gt;flashrom&lt;/a&gt; (open-source BIOS chip flasher) project, please apply in time.&lt;/p&gt;
&lt;p&gt;The following &lt;a href="http://www.coreboot.org/GSoC"&gt;coreboot/flashrom GSOC project ideas&lt;/a&gt; have been proposed so far (but you can also suggest your own ideas, of course):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Infrastructure for automatic code checking&lt;/li&gt;
&lt;li&gt;TianoCore on coreboot&lt;/li&gt;
&lt;li&gt;coreboot port to Marvell ARM SOCs with PCIe&lt;/li&gt;
&lt;li&gt;coreboot port to AMD 800 series chipsets&lt;/li&gt;
&lt;li&gt;coreboot mass-porting to AMD 780 series mainboards&lt;/li&gt;
&lt;li&gt;coreboot panic room&lt;/li&gt;
&lt;li&gt;coreboot cheap testing rig&lt;/li&gt;
&lt;li&gt;coreboot GeodeLX port from v3 to v4&lt;/li&gt;
&lt;li&gt;Drivers for libpayload&lt;/li&gt;
&lt;li&gt;Board config infrastructure&lt;/li&gt;
&lt;li&gt;Refactor AMD code&lt;/li&gt;
&lt;li&gt;Payload infrastructure&lt;/li&gt;
&lt;li&gt;flashrom: Multiple GUIs for flashrom&lt;/li&gt;
&lt;li&gt;flashrom: Recovery of dead boards and onboard flash updates&lt;/li&gt;
&lt;li&gt;flashrom: SPI bitbanging hardware support&lt;/li&gt;
&lt;li&gt;flashrom: Generic flashrom infrastructure improvements&lt;/li&gt;
&lt;li&gt;flashrom: Laptop support&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a href="http://www.coreboot.org/GSoC#Why_work_for_coreboot"&gt;this wiki page&lt;/a&gt; for why and how to apply for a coreboot/flashrom project.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/coreboot-flashrom-in-gsoc-2010--student-application-deadline-today#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1026">bios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1845">coreboot</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1795">flashrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/290">google</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/723">gpl</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1746">gsoc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1525">linuxbios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2338">mentor</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1538">projects</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1796">rom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1857">soc</category>
 <pubDate>Fri, 09 Apr 2010 02:42:22 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1546 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Miro 3.0 released, Debian package available</title>
 <link>http://www.hermann-uwe.de/blog/miro-3-0-released-debian-package-available</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1542"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/miro_3_0.preview.png" width="320" height="229" align="right" hspace="5" alt="Miro 3.0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yep, the new major release, &lt;a href="http://www.getmiro.com"&gt;Miro 3.0&lt;/a&gt;, of the cross-platform Internet RSS audio/video aggregator and player &lt;a href="http://www.getmiro.com/blog/2010/03/miro-3-0-faster-louder-smoother-subtitles/"&gt;has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Please check the &lt;a href="https://develop.participatoryculture.org/trac/democracy/wiki/3.0ReleaseNotes"&gt;release notes&lt;/a&gt; and the &lt;a href="http://www.getmiro.com/features/"&gt;feature list&lt;/a&gt; for details. Overall more than &lt;a href="http://bugzilla.pculture.org/buglist.cgi?query_format=advanced&amp;amp;product=Miro&amp;amp;target_milestone=3.0&amp;amp;resolution=FIXED&amp;amp;chfieldto=Now"&gt;139&lt;/a&gt; issues have been fixed since the last 2.x series release. The most notable changes are probably the dropping of xine support upstream (gstreamer is used now for all video/audio on Linux) and the introduction of subtitle support.&lt;/p&gt;
&lt;p&gt;I have &lt;a href="http://packages.qa.debian.org/m/miro/news/20100403T172913Z.html"&gt;uploaded&lt;/a&gt; a new &lt;a href="http://packages.qa.debian.org/m/miro.html"&gt;Miro 3.0 Debian package&lt;/a&gt; to unstable recently (which have been a delayed a bit due to Debian server issues), by now it should be available from most mirrors. Let me know if there are any issues...&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/miro-3-0-released-debian-package-available#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/722">cross-platform</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/379">democracy</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1831">democracy player</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2135">gstreamer</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/721">gtk</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/398">internet</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1555">macos</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/308">miro</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/643">mozilla</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/266">podcast</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/455">rss</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2136">ui</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2132">vidcast</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/173">video</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2133">video podcast</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1316">windows</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2134">xine</category>
 <pubDate>Tue, 06 Apr 2010 23:27:06 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1543 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>libopenstm32 - a Free Software firmware library for STM32 ARM Cortex-M3 microcontrollers</title>
 <link>http://www.hermann-uwe.de/blog/libopenstm32-a-free-software-firmware-library-for-stm32-arm-cortex-m3-microcontrollers</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1539"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/olimex_stm32_h103.preview.jpg" width="320" height="240" align="right" hspace="5" alt="Olimex STM32-H103 eval board" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I guess it's time to finally announce &lt;a href="http://sourceforge.net/projects/libopenstm32/"&gt;libopenstm32&lt;/a&gt;, a Free Software firmware library for &lt;a href="http://www.st.com/mcu/familiesdocs-110.html"&gt;STM32 ARM Cortex-M3 microcontrollers&lt;/a&gt; me and a few other people have been working on in recent weeks. The library is licensed under the &lt;strong&gt;GNU GPL, version 3 or later&lt;/strong&gt; (yes, that's an intentional decision after some discussions we had).&lt;/p&gt;
&lt;p&gt;The code is available &lt;a href="http://libopenstm32.git.sourceforge.net/git/gitweb.cgi?p=libopenstm32/libopenstm32;a=shortlog"&gt;via git&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;git clone &lt;a href="git://libopenstm32.git.sourceforge.net/gitroot/libopenstm32/libopenstm32"&gt;git://libopenstm32.git.sourceforge.net/gitroot/libopenstm32/libopenstm32&lt;/a&gt;&lt;/strong&gt;
 $ &lt;strong&gt;cd libopenstm32&lt;/strong&gt;
 $ &lt;strong&gt;make&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Building is done using a standard ARM gcc cross-compiler (arm-elf or arm-none-eabi for instance), see the &lt;a href="http://github.com/esden/summon-arm-toolchain"&gt;summon-arm-toolchain&lt;/a&gt; script for the basic idea about how to build one.&lt;/p&gt;
&lt;p&gt;The current status of the library is listed &lt;a href="http://sourceforge.net/apps/mediawiki/libopenstm32/index.php?title=Status"&gt;in the wiki&lt;/a&gt;. In short: some parts of GPIOs, UART, I2C, SPI, RCC, Timers and some other basic stuff works and has register definitions (and some convenience functions, but not too many, yet). We're working on adding support for more subsystems, any help with this is highly welcome of course! Luckily ARM stuff (and especially the STM32) has pretty good (and freely available) datasheets.&lt;/p&gt;
&lt;p&gt;We have a few simple example programs, e.g. for the &lt;a href="http://olimex.com/dev/stm32-h103.html"&gt;Olimex STM32-H103 eval board&lt;/a&gt; (see photo). JTAG flashing can be done using &lt;a href="http://hermann-uwe.de/blog/openocd-a-free-software-jtag-utility-with-arm-and-mips-support"&gt;OpenOCD&lt;/a&gt;, for example.&lt;/p&gt;
&lt;p&gt;Feel free to join &lt;a href="http://sourceforge.net/mail/?group_id=269563"&gt;the mailing lists&lt;/a&gt; and/or the &lt;strong&gt;&lt;a href="irc://chat.freenode.net/libopenstm32"&gt;#libopenstm32&lt;/a&gt;&lt;/strong&gt; IRC channel on &lt;a href="http://www.freenode.net"&gt;Freenode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The current list of projects where we plan to use this library is &lt;a href="http://open-bldc.org"&gt;Open-BLDC&lt;/a&gt; (an Open Hardware / Free Software brushless motor controller project by &lt;a href="http://www.esden.net"&gt;Piotr Esden-Tempski&lt;/a&gt;), &lt;a href="http://openmulticopter.org"&gt;openmulticopter&lt;/a&gt; (an Open Hardware / Free Software quadrocopter/UAV project), &lt;a href="http://randomprojects.org/wiki/Openbiosprog"&gt;openbiosprog&lt;/a&gt; (an Open Hardware / Free Software BIOS chip flash programmer I'm in the process of designing using &lt;a href="http://www.gpleda.org"&gt;gEDA/PCB&lt;/a&gt;), and probably a few more.&lt;/p&gt;
&lt;p&gt;If you plan to work on any new (or existing) microcontroller hardware- or software-projects involving an STM32 microcontroller, please consider using libopenstm32 (it's the only Free Software library for this microcontroller family I know of) and help us make it better and more complete. Thanks!&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/libopenstm32-a-free-software-firmware-library-for-stm32-arm-cortex-m3-microcontrollers#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2017">arm</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2168">cortex</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2334">cortex-m3</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2021">embedded</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1664">firmware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/723">gpl</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1529">gpl3</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2333">st</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2332">stm</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2292">stm32</category>
 <pubDate>Thu, 04 Mar 2010 14:20:36 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1540 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>How to setup an encrypted USB-disk software-RAID-1 on Debian GNU/Linux using mdadm and cryptsetup</title>
 <link>http://www.hermann-uwe.de/blog/how-to-setup-an-encrypted-usb-disk-software-raid-1-on-debian-gnu-linux-using-mdadm-and-cryptsetup</link>
 <description>&lt;p&gt;This is what I set up for backups recently using &lt;a href="http://raidsonic.de/de/pages/products/external_cases.php?we_objectID=5235"&gt;a cheap USB-enclosure which can house 2 SATA disks&lt;/a&gt; and shows them as 2 USB mass-storage devices to my system (using only one USB cable). Without any further introduction, here goes the HOWTO:&lt;/p&gt;
&lt;p&gt;First, create one big partition on each of the two disks (/dev/sdc and /dev/sdd in my case) of the exact same size. The cfdisk details are omitted here.&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cfdisk /dev/sdc&lt;/strong&gt;
  $ &lt;strong&gt;cfdisk /dev/sdd&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Then, create a new RAID array using the &lt;strong&gt;mdadm&lt;/strong&gt; utility:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
The array is named &lt;strong&gt;md0&lt;/strong&gt;, consists of the two devices (&lt;strong&gt;--raid-devices=2&lt;/strong&gt;) /dev/sdc1 and /dev/sdd1, and it's a RAID-1 array, i.e. data is simply mirrored on both disks so if one of them fails you don't lose data (&lt;strong&gt;--level=1&lt;/strong&gt;). After this has been done the array will be synchronized so that both disks contain the same data (this process will take a long time). You can watch the current status via:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cat /proc/mdstat&lt;/strong&gt;
  Personalities : [raid1]
  md0 : active raid1 sdd1[1] sdc1[0]
        1465135869 blocks super 1.1 [2/2] [UU]
        [&gt;....................]  resync =  &lt;strong&gt;0.0%&lt;/strong&gt; (70016/1465135869) finish=2440.6min speed=10002K/sec
  unused devices: &lt;none&gt;
&lt;/pre&gt;&lt;p&gt;
Some more info is also available from mdadm:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;mdadm --detail --scan&lt;/strong&gt;
  ARRAY /dev/md0 metadata=1.01 name=foobar:0 UUID=1234578:1234578:1234578:1234578

  $ &lt;strong&gt;mdadm --detail /dev/md0&lt;/strong&gt;&lt;small&gt;
  /dev/md0:
          Version : 1.01
    Creation Time : Sat Feb  6 23:58:51 2010
       Raid Level : raid1
       Array Size : 1465135869 (1397.26 GiB 1500.30 GB)
    Used Dev Size : 1465135869 (1397.26 GiB 1500.30 GB)
     Raid Devices : 2
    Total Devices : 2
      Persistence : Superblock is persistent
      Update Time : Sun Feb  7 00:03:21 2010
            State : active, resyncing
   Active Devices : 2
  Working Devices : 2
   Failed Devices : 0
    Spare Devices : 0
   Rebuild Status : 0% complete
             Name : foobar:0  (local to host foobar)
             UUID : 1234578:1234578:1234578:1234578
           Events : 1
      Number   Major   Minor   RaidDevice State
         0       8       33        0      active sync   /dev/sdc1
         1       8       49        1      active sync   /dev/sdd1
&lt;/small&gt;&lt;/pre&gt;&lt;p&gt;
Next, you'll want to create a big partition on the RAID device (cfdisk details omitted)...&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cfdisk /dev/md0&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
...and then encrypt all the (future) data on the device using &lt;strong&gt;dm-crypt+LUKS and cryptsetup&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cryptsetup --verbose --verify-passphrase luksFormat /dev/md0p1&lt;/strong&gt;
  &lt;em&gt;Enter your desired pasphrase here (twice)&lt;/em&gt;
  $ &lt;strong&gt;cryptsetup luksOpen /dev/md0p1 myraid&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
After opening the encrypted container with &lt;strong&gt;cryptsetup luksOpen&lt;/strong&gt; you can create a filesystem on it (ext3 in my case):&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;mkfs.ext3 -j -m 0 /dev/mapper/myraid&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
That's about it. In future you can access the RAID data by using the steps below.&lt;/p&gt;
&lt;p&gt;Starting the RAID and mouting the drive:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1&lt;/strong&gt;
  $ &lt;strong&gt;cryptsetup luksOpen /dev/md0p1 myraid&lt;/strong&gt;
  $ &lt;strong&gt;mount -t ext3 /dev/mapper/myraid /mnt&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Shutting down the RAID:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;umount /mnt&lt;/strong&gt;
  $ &lt;strong&gt;cryptsetup luksClose myraid&lt;/strong&gt;
  $ &lt;strong&gt;mdadm --stop /dev/md0&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
That's all. Performance is shitty due to all the data being shoved out over one USB cable (and USB itself being too slow for these amounts of data), but I don't care too much about that as this setup is meant for backups, not performance-critical stuff.&lt;/p&gt;
&lt;p&gt;&lt;strong style="color:red"&gt;Update 04/2011:&lt;/strong&gt; Thanks to Bohdan Zograf there's a &lt;a href="http://www.webhostinghub.com/support/mdadm-and-cryptsetup-be"&gt;Belorussian translation&lt;/a&gt; of this article now!&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/how-to-setup-an-encrypted-usb-disk-software-raid-1-on-debian-gnu-linux-using-mdadm-and-cryptsetup#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/148">backup</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1144">backups</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1588">cryptsetup</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/49">debian</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1503">disk</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1298">dm-crypt</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/95">encryption</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/527">ext3</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1277">ide</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1299">luks</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2108">mdadm</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2331">mdstat</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1810">raid</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2329">raid-1</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2330">redundancy</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1727">sata</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/38">security</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/958">usb</category>
 <pubDate>Thu, 25 Feb 2010 18:10:57 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1538 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>FOSDEM 2010: coreboot and flashrom devroom and talks</title>
 <link>http://www.hermann-uwe.de/blog/fosdem-2010-coreboot-and-flashrom-devroom-and-talks</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1395"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/coreboot.png" width="200" height="154" align="right" hspace="5" alt="coreboot logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quick public service announcement (which probably comes a bit too late, sorry):&lt;/p&gt;
&lt;p&gt;There's a &lt;a href="http://fosdem.org/2010/schedule/tracks/coreboot"&gt;coreboot developer room&lt;/a&gt; at this year's &lt;a href="http://www.fosdem.org"&gt;FOSDEM&lt;/a&gt; (Free and Open-Source Software Developer's European Meeting), which starts roughly... um... today. In 20 minutes, actually. Unfortunately I cannot be there, hopefully there will be video archives of the talks. If you're at FOSDEM already, here's the list of talks:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
Sat  13:00-14:00  	coreboot introduction   	(Peter Stuge)&lt;br /&gt;
Sat  14:00-15:00 	coreboot and PC technical details 	(Peter Stuge)&lt;br /&gt;
Sat  15:00-16:00 	ACPI and Suspend/Resume under coreboot 	(Rudolf Marek)&lt;br /&gt;
Sat  16:00-17:00 	coreboot board porting 	(Rudolf Marek)&lt;br /&gt;
Sat  17:00-18:00 	Flashrom, the universal flash tool 	(Carl-Daniel Hailfinger)&lt;br /&gt;
Sat  18:00-19:00 	Flash enable BIOS reverse engineering 	(Luc Verhaegen)
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Highly recommended stuff if you're interested in &lt;a href="http://www.coreboot.org"&gt;an open-source BIOS&lt;/a&gt; and/or &lt;a href="http://www.flashrom.org"&gt;open-source, cross-platform flash EEPROM programmer software&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/fosdem-2010-coreboot-and-flashrom-devroom-and-talks#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2323">2010</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2327">acpi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2325">board</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1845">coreboot</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2324">devroom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2326">enable</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1795">flashrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2322">fosdem</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2328">suspend</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/352">talk</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/173">video</category>
 <pubDate>Sat, 06 Feb 2010 12:31:20 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1537 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Roda RK886EX (Rocky III+) first laptop/notebook being supported by coreboot</title>
 <link>http://www.hermann-uwe.de/blog/roda-rk886ex-rocky-iii-first-laptop-notebook-being-supported-by-coreboot</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1395"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/coreboot.png" width="200" height="154" align="right" hspace="5" alt="coreboot logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Only few days ago &lt;a href="http://tracker.coreboot.org/trac/coreboot/ticket/12"&gt;a long-standing bug&lt;/a&gt; in &lt;a href="http://www.coreboot.org"&gt;coreboot&lt;/a&gt;, the Free Software x86 BIOS/fimware project, has been fixed: Adding support for a laptop/notebook.&lt;/p&gt;
&lt;p&gt;The code was developed by &lt;a href="http://www.coresystems.de"&gt;coresystems GmbH&lt;/a&gt; (thanks a lot!). Quoting from &lt;a href="http://www.coreboot.org/pipermail/coreboot-announce/2010-January/000006.html"&gt;the announcement&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
coreboot&amp;reg; is running on a multitude of different computers, ranging from tiny embedded systems as small as the palm of your hand over desktop and server systems to super computers with thousands of nodes. However, one might say that in the area of mobile computers coreboot has to catch up, compared to &lt;a href="http://www.coreboot.org/Supported_Motherboards"&gt;its support of other devices&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thus, I am especially glad to announce that &lt;a href="http://www.coresystems.de/&lt;br /&gt;
"&gt;coresystems GmbH&lt;/a&gt; is releasing coreboot&amp;reg; for the &lt;a href="http://www.roda-computer.com/en/products/notebooks/rocky-iii-rk886ex.html"&gt;Roda RK886EX a.k.a Rocky III+&lt;/a&gt; notebook today. It's a rugged notebook, protected against shock, vibration, dust and humidity:&lt;br /&gt;
&lt;a href="http://www.roda-computer.com/en/products/notebooks/rocky-iii-rk886ex.html"&gt;http://www.roda-computer.com/en/products/notebooks/rocky-iii-rk886ex.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We have been testing &lt;strong&gt;various Linux distributions as well as Windows XP and Windows 7&lt;/strong&gt; booting on this nice notebook.&lt;/p&gt;
&lt;p&gt;I want to sincerely thank those who made this project possible with their funding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;secunet Security Networks AG&lt;/li&gt;
&lt;li&gt;Bundesamt für Sicherheit in der Informationstechnologie (Federal Office for Information Security, BSI)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A big thank you also goes to everyone who worked with coresystems on this project.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The committed &lt;a href="http://tracker.coreboot.org/trac/coreboot/timeline?from=01%2F17%2F10&amp;amp;daysback=0&amp;amp;changeset=on&amp;amp;update=Update"&gt;patch series&lt;/a&gt; includes improved support for the Intel i945 / ICH7 chipset (which was also written by coresystems), the SMSC LPC47N227 Super I/O, the Texas Instruments Cardbus+Firewire bridge TI PCI7420, and finally the Renesas M3885x Embedded Controller (EC).&lt;/p&gt;
&lt;p&gt;Btw, the latter, the so-called &lt;em&gt;embedded controller&lt;/em&gt; (sometimes integrated in the &lt;a href="http://en.wikipedia.org/wiki/Super_I/O"&gt;Super I/O&lt;/a&gt;, sometimes it's an extra chip) is one of the major problems for coreboot support on laptops. They are almost always undocumented (i.e., no public datasheets are available), but they have low-level control over power/battery management, early power-up sequence, and often include keyboard controller functionality and other important stuff. Luckily, for this notebook &lt;a href="http://www.coreboot.org/pipermail/coreboot/2010-January/055243.html"&gt;an EC datasheet is available&lt;/a&gt;. Checkout the &lt;a href="http://tracker.coreboot.org/trac/coreboot/browser/trunk/src/mainboard/roda/rk886ex/m3885.c"&gt;coreboot EC support code for the Renesas M3885x&lt;/a&gt; for an impression of what this stuff is all about.&lt;/p&gt;
&lt;p&gt;Anyway, there is hope that this laptop will only be the first in a row of multiple supported ones in the future. Interested developers and contributors are of course always welcome &lt;a href="http://www.coreboot.org/Mailinglist"&gt;on the coreboot mailing list&lt;/a&gt; :-)&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/roda-rk886ex-rocky-iii-first-laptop-notebook-being-supported-by-coreboot#comments</comments>
 <pubDate>Tue, 26 Jan 2010 12:43:00 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1536 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Note to self: Missing lvm2 and cryptsetup packages lead to non-working initrd very, very soon</title>
 <link>http://www.hermann-uwe.de/blog/note-to-self-missing-lvm2-and-cryptsetup-packages-lead-to-non-working-initrd-very-very-soon</link>
 <description>&lt;p&gt;I recently almost died from a heart attack because after a really horrible crash (don't ask), Debian unstable on my laptop wouldn't boot anymore. The system hung at "Waiting for root filesystem...", and I was in panic mode as I feared I lost all my data (and as usual my backups were waaay too old).&lt;/p&gt;
&lt;p&gt;At first I was suspecting that something actually got erased or mangled due to the crash, either at the dm-crypt layer, or the LVM layer, or the ext3 filesystem on top of those. After various hours of messing with live CDs, cryptsetup, lvm commands (such as pvscan, pvs, vgchange, vgs, vgck) and finally fsck I still had not managed to successfully boot my laptop.&lt;/p&gt;
&lt;p&gt;I finally was able to boot by changing the initrd from &lt;strong&gt;initrd.img-2.6.30-2-686&lt;/strong&gt; to &lt;strong&gt;initrd.img-2.6.30-2-686.bak&lt;/strong&gt; in the GRUB2 menu (at boot-time), at which point it was clear that something was wrong with my current initrd. A bit of debugging and some initrd comparisons revealed the cause:&lt;/p&gt;
&lt;p&gt;Both, the &lt;strong&gt;cryptsetup&lt;/strong&gt; and &lt;strong&gt;lvm2&lt;/strong&gt; packages were no longer installed on my laptop, which made all &lt;strong&gt;update-initramfs&lt;/strong&gt; invokations (e.g. upon kernel package updates) create initrds which did not contain the proper dm-crypt and lvm functionality support. Hence, no booting for me. I only noticed because of the crash, as I usually do not reboot the laptop very often (two or three times per year maybe).&lt;/p&gt;
&lt;p&gt;Now, as to &lt;em&gt;why&lt;/em&gt; those packages were removed I have absolutely no idea. I did not remove them knowingly, so I suspect some dist-upgrade did it and I didn't notice (but I &lt;em&gt;do&lt;/em&gt; carefully check which packages dist-upgrade tries to remove, usually)...&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/note-to-self-missing-lvm2-and-cryptsetup-packages-lead-to-non-working-initrd-very-very-soon#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1588">cryptsetup</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1298">dm-crypt</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/95">encryption</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/527">ext3</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/36">free software</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2180">fsck</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1872">initrd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/335">kernel</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1571">lvm</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2314">lvm2</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/38">security</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2315">update-initramfs</category>
 <pubDate>Tue, 24 Nov 2009 00:00:14 +0100</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1532 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>coreboot on the cover of the Linux Journal</title>
 <link>http://www.hermann-uwe.de/blog/coreboot-on-the-cover-of-the-linux-journal</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1528"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Coreboot_linuxjournal.preview.jpg" width="160" height="176" align="right" hspace="5" alt="coreboot on Linux Journal" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nice &lt;a href="http://www.coreboot.org"&gt;coreboot&lt;/a&gt; news &amp;mdash; the Free Software x86 firmware ("BIOS") is featured on the cover of &lt;a href="http://www.linuxjournal.com/issue/186"&gt;issue 186&lt;/a&gt; of the &lt;a href="http://www.linuxjournal.com"&gt;Linux Journal&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Anton Borisov's article &lt;a href="http://www.linuxjournal.com/article/10447"&gt;Coreboot at Your Service!&lt;/a&gt; explains the basic ideas behind coreboot, how to build an image for &lt;a href="http://www.coreboot.org/Supported_Motherboards"&gt;your board&lt;/a&gt;, which &lt;a href="http://www.coreboot.org/Payloads"&gt;payloads&lt;/a&gt; are available and how they are used, e.g. GRUB2, SeaBIOS if you need legacy BIOS callbacks  (e.g. for booting Windows), Etherboot/GPXE, or more fun stuff such as space invaders or tint (a tetris clone) in your flash ROM chip...&lt;/p&gt;
&lt;p&gt;If you read the article and think the build process is a bit complicated and ugly, do not despair! We're currently in the process of converting the whole coreboot code base to use kconfig (the widely-known configuration tool used by the Linux kernel, busybox, and other projects), so in the very near future the whole process for building a coreboot image will work like this:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;make menuconfig&lt;/strong&gt;
  $ &lt;strong&gt;make&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
&lt;a href="http://www.hermann-uwe.de/node/1529"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/coreboot_menuconfig.png" width="320" height="227" align="right" hspace="5" alt="coreboot menuconfig" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Flashing the image can then be done using an EEPROM programmer and/or via the user-space utility &lt;a href="http://www.coreboot.org/Flashrom"&gt;flashrom&lt;/a&gt; (available for Linux, Mac OS X, FreeBSD, etc.)...&lt;/p&gt;
&lt;p&gt;It's nice to see that coreboot is getting more and more coverage in "mainstream" media and is growing both in number of deployments and in number of supported chipsets and boards.&lt;/p&gt;
&lt;p&gt;We are desperately in need of more &lt;strong&gt;developers&lt;/strong&gt; though, there are just way too many chipsets, boards, and datasheets out there; we're happy about every patch and every new tester or developer who likes to mess with code that runs in the very first few (micro)seconds after power-on.&lt;/p&gt;
&lt;p&gt;If you think kernel hacking and related low-level development is nice, you might also be interested in writing code where there's no RAM yet (as coreboot has to initialize it), there's no serial port for debugging (coreboot has to initialize it), no PCI devices have been set up, most of your auxiliary hardware is not yet up (ethernet NIC, parallel port, audio, IDE, SATA, USB, you name it). It's a fun environment to work in and you'll learn a &lt;strong&gt;lot&lt;/strong&gt; about PC hardware, even if you (so far) thought you knew everything there is to know.&lt;/p&gt;
&lt;p&gt;Feel free to join us on the &lt;a href="http://www.coreboot.org/Mailinglist"&gt;mailing list&lt;/a&gt; or on IRC in &lt;strong&gt;#coreboot&lt;/strong&gt; on &lt;a href="http://freenode.net/"&gt;Freenode&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/coreboot-on-the-cover-of-the-linux-journal#comments</comments>
 <pubDate>Fri, 16 Oct 2009 20:29:00 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1530 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Using CRM114 for spam filtering on Debian GNU/Linux</title>
 <link>http://www.hermann-uwe.de/blog/using-crm114-for-spam-filtering-on-debian-gnu-linux</link>
 <description>&lt;p&gt;I've been using &lt;a href="http://crm114.sourceforge.net/"&gt;CRM114&lt;/a&gt; as spam filter for a while now, and I'm quite happy with it. Due to &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529720"&gt;bug #529720&lt;/a&gt; though (incompatible upstream file format changes) I decided to start my setup from scratch with a recent CRM114 version from unstable. Here's a short HOWTO, hope it's useful for others.&lt;/p&gt;
&lt;p&gt;First you need to install crm114 and set up a few files in your $HOME directory.&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;sudo apt-get install crm114&lt;/strong&gt;
  $ &lt;strong&gt;mkdir ~/.crm114&lt;/strong&gt;
  $ &lt;strong&gt;cd ~/.crm114&lt;/strong&gt;
  $ &lt;strong&gt;cp /usr/share/doc/crm114/examples/mailfilter.cf.gz .&lt;/strong&gt;
  $ &lt;strong&gt;gunzip mailfilter.cf.gz&lt;/strong&gt;
  $ &lt;strong style="color:red"&gt;cp /usr/share/crm114/mailtrainer.crm .&lt;/strong&gt;
  $ &lt;strong&gt;touch rewrites.mfp priolist.mfp&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Edit &lt;strong&gt;~/.crm114/mailfilter.cf&lt;/strong&gt; and set the following variables (some are optional, but that's what I currently use):&lt;/p&gt;
&lt;pre&gt;
  :spw: /&lt;strong&gt;mypassword&lt;/strong&gt;/
  :add_verbose_stats: /no/
  :add_extra_stuff: /no/
  :rewrites_enabled: /no/
  :spam_flag_subject_string: //
  :unsure_flag_subject_string: //
  :log_to_allmail.txt: /no/
&lt;/pre&gt;&lt;p&gt;
The &lt;strong&gt;:log_to_allmail.txt: /no/&lt;/strong&gt; option should probably stay at "yes" for the first few days until you have tested your setup and everything works OK. The &lt;strong&gt;~/.crm114/allmail.txt&lt;/strong&gt; file will contain all your mails, in case something goes wrong.&lt;/p&gt;
&lt;p&gt;Now set up empty spam and nonspam files like this:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;cssutil -b -r spam.css&lt;/strong&gt;
  $ &lt;strong&gt;cssutil -b -r nonspam.css&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Test the setup by invoking &lt;strong&gt;mailreaver.crm&lt;/strong&gt; as follows, typing some test text and then pressing &lt;strong&gt;CTRL+d&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;/usr/share/crm114/mailreaver.crm -u ~/.crm114&lt;/strong&gt;
  test
  &lt;strong&gt;[CTRL-d]&lt;/strong&gt;
  ** ACCEPT: CRM114 PASS osb unique microgroom Matcher **
  CLASSIFY fails; success probability: 0.5000  pR: 0.0000
  Best match to file #0 (nonspam.css) prob: 0.5000  pR: 0.0000
  Total features in input file: 8
  #0 (nonspam.css): features: 1, hits: 0, prob: 5.00e-01, pR:   0.00
  #1 (spam.css): features: 1, hits: 0, prob: 5.00e-01, pR:   0.00
  X-CRM114-Version: 200904023-BlameSteveJobs ( TRE 0.7.6 (BSD) ) MF-35EB8B9A [pR: 0.0000]
  X-CRM114-CacheID: sfid-20090920_151224_574131_D290E589
  X-CRM114-Status: UNSURE (0.0000) This message is 'unsure'; please train it!
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;The output should look similar to the above. If there are errors instead, you should check your settings in &lt;strong&gt;~/.crm114/mailfilter.cf&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Now you have to setup a &lt;a href="http://www.procmail.org/"&gt;procmail&lt;/a&gt; rule for crm114:&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
  :0fw: crm114.lock
  | /usr/share/crm114/mailreaver.crm -u /home/uwe/.crm114

  :0:
  * ^X-CRM114-Status: SPAM.*
  IN.spam-crm114
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;In my case this rule is also followed by a &lt;a href="http://spamassassin.apache.org/"&gt;spamassassin&lt;/a&gt; rule, so all my mail goes through two different spam filters (will look into &lt;a href="http://www.nuclearelephant.com/"&gt;dspam&lt;/a&gt; and &lt;a href="http://bogofilter.sourceforge.net/"&gt;bogofilter&lt;/a&gt; also I guess, the more the better).&lt;/p&gt;
&lt;p&gt;Finally, in &lt;a href="http://hermann-uwe.de/files/muttrc"&gt;.muttrc&lt;/a&gt; I have the following configs so I can press &lt;strong&gt;SHIFT+x&lt;/strong&gt; to mark a mail as spam, and &lt;strong&gt;SHIFT+h&lt;/strong&gt; to mark it as non-spam (ham).&lt;/p&gt;
&lt;p&gt;&lt;small&gt;&lt;/p&gt;
&lt;pre&gt;
macro index X '| formail -I X-CRM114-Status -I X-CRM114-Action -I X-CRM114-Version | /usr/share/crm114/mailreaver.crm -u /home/uwe/.crm114/ &lt;span style="color:red"&gt;--spam&lt;/span&gt;'
macro index H '| formail -I X-CRM114-Status -I X-CRM114-Action -I X-CRM114-Version | /usr/share/crm114/mailreaver.crm -u /home/uwe/.crm114/ &lt;span style="color:red"&gt;--good&lt;/span&gt;'
macro pager X '| formail -I X-CRM114-Status -I X-CRM114-Action -I X-CRM114-Version | /usr/share/crm114/mailreaver.crm -u /home/uwe/.crm114/ &lt;span style="color:red"&gt;--spam&lt;/span&gt;'
macro pager H '| formail -I X-CRM114-Status -I X-CRM114-Action -I X-CRM114-Version | /usr/share/crm114/mailreaver.crm -u /home/uwe/.crm114/ &lt;span style="color:red"&gt;--good&lt;/span&gt;'
&lt;/pre&gt;&lt;p&gt;&lt;/small&gt;&lt;/p&gt;
&lt;p&gt;Important: crm114 is most effective if you start with empty CSS files (as shown above) and only train it by marking mails as spam/ham when it gets them wrong. The process will take a few hours or maybe a day (depending on how many mails per day you get), then the misclassification rate gets very low...&lt;/p&gt;
&lt;p&gt;&lt;strong style="color:red"&gt;Update 2009-09-23:&lt;/strong&gt; Changed --spam/--nonspam to the correct options for mailreaver/mailtrainer, --spam/--good.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/using-crm114-for-spam-filtering-on-debian-gnu-linux#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2309">bogofilter</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2307">crm114</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/49">debian</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2308">dspam</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2257">email</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2311">filter</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2312">folder</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/638">mail</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/560">spam</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2310">spamassassin</category>
 <pubDate>Tue, 22 Sep 2009 15:10:04 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1526 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Help add subtitle support for Miro</title>
 <link>http://www.hermann-uwe.de/blog/help-add-subtitle-support-for-miro</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1443"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/miro2_feeds.preview.jpg" width="240" height="170" align="right" hspace="5" alt="Miro 2.0 feed list" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you ever wanted to support an open-source project but you are not a programmer, here's one (of many possible) ways to help:&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.getmiro.com"&gt;Miro&lt;/a&gt; project (Internet TV  / Video and Audio Podcast application for Linux, Windows, and Mac OS X) is &lt;a href="http://www.kickstarter.com/projects/1116615214/subtitles-in-miro-translations-and-support-for-t"&gt;seeking for pledges/donations&lt;/a&gt; that will be used to add &lt;strong&gt;subtitles support&lt;/strong&gt; in Miro.&lt;/p&gt;
&lt;p&gt;To quote from the &lt;a href="http://www.getmiro.com/blog/2009/09/help-add-subtitle-support-for-miro/"&gt;announcement&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
We’re hoping to build real subtitle support into Miro in the next couple months, but we need your help! So we’ve started a Kickstarter project to raise $1,000 to develop this feature for Miro on all three platforms: Windows, Mac, and Linux. Can you pledge to help make it happen? One of the great things about the Kickstarter model is that unless we can reach $1,000, your pledge won’t be charged.&lt;br /&gt;
[...]&lt;br /&gt;
(if you live in the United States, donations are tax deductible &amp;mdash; we are a 501c3 non-profit)
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;There are 11 days left to &lt;a href="http://www.kickstarter.com/projects/1116615214/subtitles-in-miro-translations-and-support-for-t"&gt;make a pledge&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/help-add-subtitle-support-for-miro#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/165">donations</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/398">internet</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/308">miro</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/266">podcast</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2304">subtitles</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/179">tv</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/173">video</category>
 <pubDate>Sun, 20 Sep 2009 21:55:44 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1523 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>A simple DLP-USB1232H based JTAG programmer with OpenOCD support</title>
 <link>http://www.hermann-uwe.de/blog/a-simple-dlp-usb1232h-based-jtag-programmer-with-openocd-support</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/photoblog/dlp-usb1232h-and-openocd-based-jtag-adapter"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/Dlp_usb1232h_jtag1.preview.jpg" width="320" height="240" align="right" hspace="5" alt="DLP-USB1232H and OpenOCD based JTAG adapter" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here's a quick introduction to using a cheap FTDI FT2232H based module (left-hand side on the photo) as a JTAG programmer together with the &lt;a href="http://openocd.berlios.de/web/"&gt;OpenOCD&lt;/a&gt; JTAG software for ARM and MIPS devices. The module I am using for thіs purpose is a &lt;a href="http://www.dlpdesign.com/usb/usb1232h.shtml"&gt;DLP Design DLP-USB1232H&lt;/a&gt;, which is available from various sources (Digikey, Mouser, Saelig, and probably others) for 20-30 bucks plus shipping, depending on where you live.&lt;/p&gt;
&lt;p&gt;By properly connecting the correct pins of the DLP-USB1232H to the target JTAG&lt;br /&gt;
device (I used an &lt;a href="http://www.olimex.com/dev/stm32-h103.html"&gt;Olimex STM32-H103&lt;/a&gt; eval board for testing) you can easily abuse the DLP-USB1232H as JTAG programmer. As I chose the proper DLP-USB1232H GPIOs for the TRST and (S)RST pins, OpenOCD even worked out of the box, without having to change a single line of code.&lt;/p&gt;
&lt;p&gt;The only thing that's required is to provide OpenOCD with an interface config file that uses the &lt;strong&gt;usbjtag&lt;/strong&gt; "layout". I have already &lt;a href="http://lists.berlios.de/pipermail/openocd-development/2009-September/010466.html"&gt;submitted that config file upstream&lt;/a&gt;, I guess it should be merged soonish.&lt;/p&gt;
&lt;p&gt;The usage is then pretty simple:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;openocd -f interface/dlp-usb1232h.cfg -f board/olimex_stm32_h103.cfg&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
And in another xterm:&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;telnet localhost 4444&lt;/strong&gt;
  &amp;gt; &lt;strong&gt;init&lt;/strong&gt;
  &amp;gt; &lt;strong&gt;reset halt&lt;/strong&gt;
  &amp;gt; &lt;strong&gt;flash write_image erase fancyblink.bin 0x08000000&lt;/strong&gt;
  &amp;gt; &lt;strong&gt;reset&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
This flashes the given &lt;strong&gt;fancyblink.bin&lt;/strong&gt; image onto the STM32-H103 eval board via the DLP-USB1232H JTAG programmer, where &lt;strong&gt;fancyblink.bin&lt;/strong&gt; is an example program from my &lt;a href="http://sourceforge.net/projects/libopenstm32/"&gt;libopenstm32&lt;/a&gt; project (that aims to create a full-blown firmware library for ST STM32 microcontrollers, similar to what avr-libc does for AVRs). Contributions for libopenstm32 (license is GPLv3 or later) are highly welcome btw., hint hint...&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;git clone git://libopenstm32.git.sourceforge.net/gitroot/libopenstm32/libopenstm32&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Full schematics, datasheets, and detailed instructions for the JTAG programmer are available from a small page I created in my &lt;a href="http://randomprojects.org"&gt;Random Projects wiki&lt;/a&gt;, which is intended for the various smaller projects I'm working on that don't warrant getting their own domain, wiki, etc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://randomprojects.org/wiki/DLP-USB1232H_and_OpenOCD_based_JTAG_adapter"&gt;http://randomprojects.org/wiki/DLP-USB1232H_and_OpenOCD_based_JTAG_adapter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Random Projects wiki is open-for-all btw, feel free to use it for any freeish, software or hardware projects of your own if you want.&lt;/p&gt;
&lt;p&gt;Anyway, the DLP-USB1232H is a really nice device as it can also be used for many other purposes, such as USB-to-Serial or &lt;a href="http://www.coreboot.org/Flashrom/FT2232SPI_Programmer"&gt;SPI BIOS chip programming&lt;/a&gt;, but more on that in another blog post...&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/a-simple-dlp-usb1232h-based-jtag-programmer-with-openocd-support#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2017">arm</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1026">bios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2295">breadboard</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2296">circuit</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/49">debian</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2294">debugging</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/499">design</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2289">dlp</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/199">flash</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2288">ft2232h</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2287">ftdi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2015">jtag</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2293">libopenstm32</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2018">mips</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2291">olimex</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2014">openocd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1066">patch</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/163">programming</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2224">spi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2292">stm32</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2290">usb1232h</category>
 <pubDate>Sat, 12 Sep 2009 11:00:59 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1517 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>identi.ca - a microblogging service based on Free Software, AGPL, and Creative Commons</title>
 <link>http://www.hermann-uwe.de/blog/identica-a-microblogging-service-based-on-free-software-agpl-and-creative-commons</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1511"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/identica_logo.thumbnail.png" width="100" height="76" align="right" hspace="5" alt="identi.ca logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After a long time of ignoring (or at least not using) &lt;a href="http://en.wikipedia.org/wiki/Micro-blogging"&gt;micro-blogging&lt;/a&gt; services such as Twitter, I recently tried the Free-Software based &lt;a href="http://identi.ca"&gt;identi.ca&lt;/a&gt; service, and I'm beginning to like it.&lt;/p&gt;
&lt;p&gt;The choice of service was pretty obvious &amp;mdash; while Twitter uses proprietary software and has custom Terms of Service, identi.ca is based on software under the &lt;a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html"&gt;GNU Affero General Public License&lt;/a&gt;, and the contents are &lt;a href="http://creativecommons.org/licenses/by/3.0/"&gt;CC-BY 3.0&lt;/a&gt; licensed.&lt;/p&gt;
&lt;p&gt;The code behind identi.ca is called &lt;a href="http://status.net/wiki/Source"&gt;Laconica&lt;/a&gt; (recently &lt;a href="http://status.net/2009/08/28/laconica-is-now-statusnet/"&gt;renamed to StatusNet&lt;/a&gt;) and is &lt;a href="http://gitorious.org/laconica"&gt;hosted at gitorious&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;git clone git://gitorious.org/laconica/mainline.git&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
My account details are available under &lt;a href="http://identi.ca/uwehermann"&gt;http://identi.ca/uwehermann&lt;/a&gt;, where I'm posting smaller announcements and notes about random technical stuff I'm working on (slightly more regularly than in this blog). Sometimes I use the web interface for posting, but using the &lt;a href="http://www.jabber.org"&gt;Jabber&lt;/a&gt; integration available at identi.ca is even more convenient. You can both be notified of new posts ("dents") in real time via Jabber, as well as post your own dents from within your Jabber client, which is nice.&lt;/p&gt;
&lt;p&gt;identi.ca seems to become &lt;a href="http://identi.ca/attachment/2177247"&gt;more popular every day&lt;/a&gt;, which will hopefully make the proprietary Twitter pretty much irrelevant sooner or later.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/identica-a-microblogging-service-based-on-free-software-agpl-and-creative-commons#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2278">agpl</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2275">blogging</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/361">cc</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1170">creativecommons</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/970">git</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2279">gitorious</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2271">identi.ca</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2272">identica</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2276">jabber</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2280">laconica</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2274">microblogging</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2282">pidgin</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/455">rss</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2281">statusnet</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2273">twitter</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2277">xmpp</category>
 <pubDate>Sun, 06 Sep 2009 19:09:11 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1512 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Open-Source software for LightScribe CDs and DVDs?</title>
 <link>http://www.hermann-uwe.de/blog/open-source-software-for-lightscribe-cds-and-dvds</link>
 <description>&lt;p&gt;Dear Lazyweb,&lt;/p&gt;
&lt;p&gt;is there any &lt;em&gt;Free Software&lt;/em&gt; utility for putting those nice logos/images on &lt;a href="http://lightscribe.com/gettingstarted/index.aspx?id=95"&gt;LightScribe&lt;/a&gt; CDs or DVDs? I'm considering buying such a CD/DVD burner, but only if there's open-source software to control the device. I guess burning CDs/DVDs should be no problem using wodim/cdrecord, but adding images as labels on the CD/DVD is likely not possible without special software.&lt;/p&gt;
&lt;p&gt;I know about the &lt;a href="http://www.lightscribe.com/downloadSection/linux/index.aspx"&gt;LightScribe Linux software&lt;/a&gt; (which is binary-only and not open-source, it seems) and &lt;a href="http://www.lacie.com/de/products/product.htm?pid=10803"&gt;LaCie LightScribe Labeler for Linux&lt;/a&gt; (which only creates labels but does not write them to the CD/DVD, and is not open-source either, I think).&lt;/p&gt;
&lt;p&gt;Anyone aware of a Free Software utility for this? Or at least a public specification/datasheet which could be used for creating one? I might even be willing to join development if datasheets are available.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/open-source-software-for-lightscribe-cds-and-dvds#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2259">burn</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1863">cd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2260">datasheet</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/895">dvd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1321">lazyweb</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2258">lightscribe</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2092">opensource</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/750">oss</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/175">software</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2261">specs</category>
 <pubDate>Thu, 03 Sep 2009 15:14:54 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1509 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Qi Hardware: Freedom Redefined - New Open Hardware company to ship Ben NanoNote device in fall 2009</title>
 <link>http://www.hermann-uwe.de/blog/qi-hardware-freedom-redefined--new-open-hardware-company-to-ship-ben-nanonote-device-in-fall-2009</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1504"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/nanonote_front.preview.png" width="160" height="213" align="right" hspace="5" alt="Qi Hardware Ben NanoNote" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I recently stumbled over a neat new Open Hardware and Free Software friendly company &amp;mdash; &lt;a href="http://www.qi-hardware.com"&gt;Qi Hardware&lt;/a&gt; &amp;mdash; founded by &lt;a href="http://www.qi-hardware.com/2009/07/01/hello-world/"&gt;former OpenMoko developers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To quote from the website:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
&lt;a href="http://www.qi-hardware.com"&gt;Qi Hardware&lt;/a&gt;, founded on the belief in open hardware, produces mass market quality hardware applying free software principles to consumer electronics. The three fundamental elements in our development are copyleft hardware, upstream kernels and community driven software.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;They have put up a &lt;a href="http://www.qi-hardware.com/products/"&gt;timeline for upcoming products&lt;/a&gt;, where the &lt;a href="http://www.qi-hardware.com/products/ben-nanonote/"&gt;本 NanoNote™ (Ben NanoNote™)&lt;/a&gt; &amp;mdash; a fully open multifunction ultra small form factor computing device &amp;mdash; is the first entry product that is supposed to ship in &lt;strong&gt;fall 2009&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The Ben NanoNote is based on an &lt;a href="http://www.ingenic.cn/eng/default.aspx"&gt;Ingenic&lt;/a&gt; SoC (336 MHz XBurst Jz4720 MIPS-compatible CPU) with 3.0” color TFT (320x240), 2GB NAND flash, 32 MB SDRAM, SDHC microSD, micro-USB 2.0. The whole device, including the 850mAh Li-ion battery, weighs only 126g. Detailed specs &lt;a href="http://www.qi-hardware.com/products/ben-nanonote/"&gt;are available&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Their currently planned setup includes a Linux kernel, &lt;a href="http://git.denx.de/?p=u-boot.git;a=summary"&gt;u-boot&lt;/a&gt;, and &lt;a href="http://nanl.de/blog/2009/08/openwrt-on-the-ben-nanonote/"&gt;OpenWRT&lt;/a&gt; as software basis. &lt;a href="http://lists.qi-hardware.com/pipermail/developer/2009-August/000315.html"&gt;Personally&lt;/a&gt;, I'd like to see a stock Debian running on the hardware sooner or later, of course. The 2GB of flash and 32MB of RAM should be fine for a small Debian system (for instance, &lt;a href="http://www.hermann-uwe.de/blog/playing-audio-on-the-nslu2"&gt;my NSLU2&lt;/a&gt; runs off a 1GB thumb drive and has 32MB RAM, and is still very useful).&lt;/p&gt;
&lt;p&gt;The code is all GPL'd and available from &lt;a href="http://www.qi-hardware.com/resources/"&gt;various git repos&lt;/a&gt;, hardware will be &lt;a href="http://creativecommons.org/licenses/by-sa/3.0/"&gt;CC-BY-SA 3.0&lt;/a&gt; licensed, &lt;em&gt;and&lt;/em&gt; they try to use Free Software design and development tools also, including &lt;a href="http://kicad.sourceforge.net"&gt;KiCAD&lt;/a&gt; for schematics and PCB layout, and probably &lt;a href="http://code.google.com/p/heekscad/"&gt;HeeksCAD&lt;/a&gt; as CAD tool for mechanical stuff.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1507"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/geda.png" width="160" height="44" align="right" hspace="5" alt="gEDA/PCB logo" /&gt;&lt;/a&gt;&lt;br /&gt;
I'm really tired of seeing more and more self-proclaimed "Open Hardware" projects that often don't even mention any license for their schematics and PCBs, or use crappy, self-invented "open" licenses that are not even remotely open in any way. Probably even worse, many hardware related projects use closed-source, proprietary electronic design tools such as EAGLE or OrCAD, thereby ruining the whole project from the beginning by forcing everyone who likes to contribute or adapt the hardware to use non-free software. That's why I was really happy to see the Qi people thrive to use open tools from the beginning! I hope to see more hardware projects use KiCAD or &lt;a href="http://www.gpleda.org"&gt;gEDA/PCB&lt;/a&gt; for their designs in future...&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/qi-hardware-freedom-redefined--new-open-hardware-company-to-ship-ben-nanonote-device-in-fall-2009#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2248">ben</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2250">freehardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2093">freesoftware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/970">git</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1042">hardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/335">kernel</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/60">linux</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2247">nanonote</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2249">openhardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2254">openmoko</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2252">qi</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2253">qihardware</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2251">uboot</category>
 <pubDate>Sat, 29 Aug 2009 19:47:56 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1508 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>Converting Mailman "Gzip'd Text" archive files to proper mbox files</title>
 <link>http://www.hermann-uwe.de/blog/converting-mailman-gzipd-text-archive-files-to-proper-mbox-files</link>
 <description>&lt;p&gt;Mailman archives are often only available in the pretty useless "Gzip'd Text" format, which you cannot easily download and view locally (and threaded) in a MUA such as &lt;a href="http://www.mutt.org"&gt;mutt&lt;/a&gt;. But that is exactly what I want to do from time to time (e.g. because I want to read the discussions of the past weeks on mailing lists where I'm newly subscribed).&lt;/p&gt;
&lt;p&gt;After some searching I found &lt;a href="http://www.mail-archive.com/gossip@jab.org/msg01219.html"&gt;one way to do it&lt;/a&gt; which I stripped down to my needs:&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;cat mailman2mbox&lt;/strong&gt;
 #!/usr/bin/perl
 while (&amp;lt;STDIN&amp;gt;) {
   s/^(From:? .*) (at|en) /\1\@/;
   s/^Date: ([A-Z][a-z][a-z]) +([A-Z][a-z][a-z]) +([0-9]+) +([0-9:]+) +([0-9]+)/Date: \1, \3 \2 \5 \4 +0000/; 
   print;
 }
&lt;/pre&gt;&lt;p&gt;
Example run on &lt;a href="http://participatoryculture.org/pipermail/develop/"&gt;some random mail archive&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;wget http://participatoryculture.org/pipermail/develop/2009-August.txt.gz&lt;/strong&gt;
 $ &lt;strong&gt;gunzip 2009-August.txt.gz&lt;/strong&gt;
 $ &lt;strong&gt;./mailman2mbox &lt; 2009-August.txt &gt; 2009-August.mbox&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
You can then view the mbox as usual in &lt;a href="http://www.mutt.org"&gt;mutt&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
 $ &lt;strong&gt;mutt -f 2009-August.mbox&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Suggestions for a simpler method to do this are highly welcome. Maybe some mbox related Debian package already ships with a script to do this?&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/converting-mailman-gzipd-text-archive-files-to-proper-mbox-files#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1647">archive</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2257">email</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/638">mail</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2255">mailman</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2256">mbox</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/124">perl</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1190">script</category>
 <pubDate>Mon, 24 Aug 2009 01:31:34 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1506 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>AMD RS780 chipset documentation released, coreboot support upcoming</title>
 <link>http://www.hermann-uwe.de/blog/amd-rs780-chipset-documentation-released-coreboot-support-upcoming</link>
 <description>&lt;p&gt;&lt;a href="http://www.hermann-uwe.de/node/1395"&gt;&lt;img src="http://www.hermann-uwe.de/files/images/coreboot.png" width="160" height="123" align="right" hspace="5" alt="coreboot logo" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Good news for kernel hackers, and especially &lt;a href="http://www.coreboot.org"&gt;coreboot&lt;/a&gt; developers like me: AMD has released the chipset documentation for the &lt;a href="http://en.wikipedia.org/wiki/AMD_700_chipset_series#780G.2F780V"&gt;RS780 chipset&lt;/a&gt;, including the BIOS Developer's Guide. And these documents are being released freely and openly to the public, no NDAs required, which is great!&lt;/p&gt;
&lt;p&gt;Quoting from the &lt;a href="http://www.coreboot.org/pipermail/coreboot-announce/2009-August/000003.html"&gt;original announcement&lt;/a&gt; on the &lt;a href="http://www.coreboot.org/pipermail/coreboot-announce/"&gt;coreboot-announce&lt;/a&gt; mailing list:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
The coreboot community, which includes government organizations, corporations, research labs and individuals from around the world, is very excited to expand on our existing and decade-long collaboration with AMD. This collaboration has, over the years, resulted in the inclusion of coreboot into everything from some of the largest AMD-based supercomputers in the world to some of the smallest embedded systems.&lt;/p&gt;
&lt;p&gt;Together with the recent SB700/SB710/SB750 documentation release, the Developer Guide release for the RS780 family of Integrated Chipset/Graphics Processors enables the coreboot community to support any board with AMD chipsets out there, from embedded to enthusiast desktop and high-end server boards.&lt;/p&gt;
&lt;p&gt;This new release once again demonstrates AMD's commitment to open standards and software that provides an improved user experience and Total Cost of Ownership for users in every walk of life. One cornerstone of this openness is the availability of documentation without NDA, enabling everyone to contribute.&lt;/p&gt;
&lt;p&gt;[...]&lt;/p&gt;
&lt;p&gt;Coreboot is open source, so every interested developer or user can modify, tweak and extend it to their heart's content.&lt;/p&gt;
&lt;p&gt;An additional benefit of this documentation release is &lt;a href="http://www.coreboot.org/Flashrom"&gt;flashrom&lt;/a&gt; support for all AMD chipsets which enables users to reflash their BIOS/firmware/coreboot from within Linux and *BSD without rebooting.&lt;/p&gt;
&lt;p&gt;Coreboot code for the SB700 and 780 chipset family is already being worked on by Zheng Bao at AMD in his spare time and the coreboot community is happy to work with him on finishing and integrating the code into the official coreboot codebase.&lt;/p&gt;
&lt;p&gt;We'd like to thank Sharon Troia at AMD for making these documentation releases possible.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The exact download URLs are listed at &lt;a href="http://www.coreboot.org/Datasheets#AMD_RS780"&gt;http://www.coreboot.org/Datasheets&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/amd-rs780-chipset-documentation-released-coreboot-support-upcoming#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2241">amd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1026">bios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1834">chipset</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1845">coreboot</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2243">datasheets</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1795">flashrom</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/36">free software</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1525">linuxbios</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2244">lowlevel</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2242">rs780</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/2245">sb700</category>
 <pubDate>Thu, 20 Aug 2009 17:59:08 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1501 at http://www.hermann-uwe.de</guid>
</item>
<item>
 <title>How to run 65535 web servers on a single laptop</title>
 <link>http://www.hermann-uwe.de/blog/how-to-run-65535-web-servers-on-a-single-laptop</link>
 <description>&lt;p&gt;OK, so here's what crazy computer geeks come up with when they're bored of just sitting in the subway and staring out of the window.&lt;/p&gt;
&lt;p&gt;Web servers usually run on port 80. &lt;a href="http://en.wikipedia.org/wiki/TCP_and_UDP_port"&gt;TCP/UDP ports&lt;/a&gt; range from 1 to 65535 (&lt;a href="http://www.faqs.org/rfcs/rfc1700.html"&gt;port 0 is reserved&lt;/a&gt;). You can run multiple web servers on different ports at the same time... Do you think what I think?&lt;/p&gt;
&lt;p&gt;Well, first you need a web server (duh). I decided to use &lt;a href="http://www.lighttpd.net/"&gt;lighttpd&lt;/a&gt;, as it's said to be small and memory-efficient (which sounded pretty important given what I was trying to do). Apache would probably not be a good choice here. Mind you, I have &lt;em&gt;not&lt;/em&gt; done any benchmarks at all, I'm just guessing...&lt;/p&gt;
&lt;pre&gt;
  $ &lt;strong&gt;apt-get install lighttpd&lt;/strong&gt;
&lt;/pre&gt;&lt;p&gt;
Then, I wrote a little shell script containing a loop, which invoked lighttpd on port 1, 2, 3, 4, ..., 65535. That's it ;)&lt;/p&gt;
&lt;pre&gt;
  #!/bin/bash
  TMPDIR=/tmp
  CONFFILE="server.document-root       = \"/var/www/\"
           index-file.names           = ( \"index.html\" )"
  for ((i = 1; i &lt; 300; i = i + 1)) do
    echo "+++ Starting web server on port $i"
    echo $CONFFILE &gt; $TMPDIR/lighttpd.conf
    echo "server.port = $i" &gt;&gt; $TMPDIR/lighttpd.conf
    /usr/sbin/lighttpd -f $TMPDIR/lighttpd.conf
    rm -f $TMPDIR/lighttpd.conf
  done 
&lt;/pre&gt;&lt;p&gt;
I'm sure this can be optimized a lot, but it's sufficient for now, and it works.&lt;/p&gt;
&lt;p&gt;You can test any of the web servers by running "&lt;code&gt;wget http://localhost:3556/&lt;/code&gt;" (for example). You can kill them all with &lt;code&gt;killall lighttpd&lt;/code&gt;. If you already run some other daemons on some ports, you cannot start a lighttpd on the same port, so you'll end up with fewer than 65535 servers.&lt;/p&gt;
&lt;p&gt;In case you try this on your hardware, make sure you have lots of RAM and lots of swap. Don't run this on production hardware. Feel free to post your experiences in the comments.&lt;/p&gt;
</description>
 <comments>http://www.hermann-uwe.de/blog/how-to-run-65535-web-servers-on-a-single-laptop#comments</comments>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1475">65535</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/271">crazy</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1479">daemon</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/53">funny</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/203">laptop</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1478">lighttpd</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/989">port</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1190">script</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/845">shell</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1476">web server</category>
 <category domain="http://www.hermann-uwe.de/taxonomy/term/1477">webserver</category>
 <pubDate>Wed, 19 Aug 2009 14:36:03 +0200</pubDate>
 <dc:creator>Uwe Hermann</dc:creator>
 <guid isPermaLink="false">1499 at http://www.hermann-uwe.de</guid>
</item>
</channel>
</rss>
