<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mithro rants about stuff</title>
    <description>Technical blog about open source hardware, software development, and tech projects. Documenting work on HDMI2USB, TimVideos.us, and various hardware/software initiatives.</description>
    <link>https://blog.mithis.net/</link>
    <atom:link href="https://blog.mithis.net/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sat, 30 May 2026 01:24:15 +1000</pubDate>
    <lastBuildDate>Sat, 30 May 2026 01:24:15 +1000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>
    <language>en-US</language>
    <webMaster>tim@mithis.net (Mithro rants about stuff)</webMaster>
    <managingEditor>tim@mithis.net (Mithro rants about stuff)</managingEditor>
    
    
      <item>
        <title>nMigen – a new improved Migen developed by whitequark!</title>
        <description>&lt;p&gt;As people may know, I’m a big supporter of the &lt;a href=&quot;https://github.com/m-labs/migen&quot;&gt;Migen&lt;/a&gt; and associated &lt;a href=&quot;https://github.com/enjoy-digital/litex&quot;&gt;LiteX ecosystem&lt;/a&gt;. As of today if you are starting a new project today, I would instead recommend that you chose to use &lt;a href=&quot;https://github.com/nmigen/nmigen&quot;&gt;nMigen&lt;/a&gt; instead.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/nmigen/nmigen&quot;&gt;nMigen, A refreshed Python toolbox for building complex digital hardware&lt;/a&gt; is a project that &lt;a href=&quot;https://whitequark.org/&quot;&gt;whitequark&lt;/a&gt; has been working on for the last couple of years and I’m really liking the new improve syntax and the fact that it &lt;a href=&quot;https://github.com/YosysHQ/yosys&quot;&gt;interfaces directly to Yosys&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There seems a lot of interesting things happening in the &lt;a href=&quot;https://github.com/nmigen/nmigen&quot;&gt;nMigen ecosystem&lt;/a&gt;;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://lambdaconcept.com/&quot;&gt;Lambda Concept&lt;/a&gt; has built an &lt;a href=&quot;https://github.com/lambdaconcept/minerva&quot;&gt;32-bit RISC-V soft processor called Minerva&lt;/a&gt;. The CPU core currently implements the RISC-V RV32IM instruction set, is pipelined on 6 stages and largely inspired &lt;a href=&quot;https://en.wikipedia.org/wiki/LatticeMico32&quot;&gt;by the LatticeMico32 processor&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCBcljXmuXPok9kT_VGA3adg&quot;&gt;Robert Baruch&lt;/a&gt; has &lt;a href=&quot;https://www.youtube.com/watch?v=85ZCTuekjGA&quot;&gt;a multipart series where he uses nMigen — a Python toolbox — to recreate a 6800 CPU&lt;/a&gt; like the one used in many vintage video games and pinball machines.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/ktemkin&quot;&gt;Kate Temkin&lt;/a&gt; is also working on creating &lt;a href=&quot;https://luna.readthedocs.io/en/latest/gateware/usb2_device.html&quot;&gt;a new USB 2.0 protocol stack in nMigen&lt;/a&gt; for &lt;a href=&quot;https://github.com/greatscottgadgets/luna&quot;&gt;the LUNA: a USB multitool (&amp;amp; nMigen library)&lt;/a&gt;. I believe that she is also hoping to work on a USB 3.0 stack using the ECP5 high speed transceivers by &lt;a href=&quot;https://github.com/enjoy-digital/daisho&quot;&gt;rewriting the Daisho core&lt;/a&gt; and &lt;a href=&quot;https://github.com/enjoy-digital/usb3_pipe&quot;&gt;the work that Enjoy Digital did to make a transceivers adapter&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 02 May 2020 10:12:03 +1000</pubDate>
        <link>https://blog.mithis.net/archives/hardware/2186-nmigen-new-improved-by-whitequark</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/hardware/2186-nmigen-new-improved-by-whitequark</guid>
        
        
          
            <category>hardware</category>
          
            <category>python</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>As people may know, I’m a big supporter of the Migen and associated LiteX ecosystem. As of today if you are starting a new project today, I would instead recommend...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/hardware/2186-nmigen-new-improved-by-whitequark#comments</comments>
        
      </item>
    
      <item>
        <title>Using “IdentitiesOnly” without key files</title>
        <description>&lt;p&gt;If you want to restrict the keys that ssh tries when connecting to a server, you need to use the &lt;em&gt;IdentityFile&lt;/em&gt; and &lt;em&gt;IdentitiesOnly&lt;/em&gt; &lt;a href=&quot;http://linux.die.net/man/5/ssh_config&quot;&gt;configuration options in your ssh_config&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, a couple of the keys I have are auto generated, with the key being loaded directly into ssh-agent and never written to a file on disk. For hopefully obvious reasons, you can’t dump a private key back out of the agent, but it turns out that &lt;em&gt;IdentityFile&lt;/em&gt; only needs the public key which you &lt;strong&gt;can&lt;/strong&gt; get.&lt;/p&gt;

&lt;p&gt;I ended up using the following script to dump the public keys to files;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Dump the public keys
for KEY in $(ssh-add -l | sed -e&apos;s/[^ ]\+ [^ ]\+ \([^ ]\+\) .*/\1/&apos;); do
  if echo $KEY | grep -q &apos;^/&apos;; then
    continue
  fi
  export KEY_FILE=&quot;$HOME/.ssh/agent.$(echo $KEY | sed -e&apos;s/[^A-Za-z0-9]/_/g&apos;).pub&quot;
  echo &quot;Saving $KEY into $KEY_FILE&quot;
  ssh-add -L | grep $KEY &amp;gt; $KEY_FILE
done
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then I added the following to the ssh_config&lt;/p&gt;

&lt;blockquote&gt;
  &lt;!-- fidelity-allow: BLOCK_HTML necessary - live emits inline &lt;code&gt;&lt;br&gt;...&lt;/code&gt; not pre --&gt;
  &lt;p&gt;&lt;code&gt;  IdentitiesOnly true&lt;br /&gt;
  IdentityFile ~/.ssh/agent.keyname.pub&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When running with “ssh -vv” I see the following in the output;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;!-- fidelity-allow: BLOCK_HTML necessary - live emits inline &lt;code&gt;&lt;br&gt;...&lt;/code&gt; not pre --&gt;
  &lt;p&gt;&lt;code&gt;debug2: set_newkeys: mode 1&lt;br /&gt;
debug1: SSH2_MSG_NEWKEYS sent&lt;br /&gt;
debug1: expecting SSH2_MSG_NEWKEYS&lt;br /&gt;
debug2: set_newkeys: mode 0&lt;br /&gt;
debug1: SSH2_MSG_NEWKEYS received&lt;br /&gt;
debug1: SSH2_MSG_SERVICE_REQUEST sent&lt;br /&gt;
debug2: service_accept: ssh-userauth&lt;br /&gt;
debug1: SSH2_MSG_SERVICE_ACCEPT received&lt;br /&gt;
debug2: key: /home/tansell/.ssh/agent.keyb.pub (0x2257da0), explicit&lt;br /&gt;
debug1: Authentications that can continue: publickey,password&lt;br /&gt;
debug1: Next authentication method: publickey&lt;br /&gt;
debug1: Offering ECDSA public key: //home/tansell/.ssh/agent.keyb.pub&lt;br /&gt;
debug2: we sent a publickey packet, wait for reply&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Tue, 03 May 2016 12:26:52 +1000</pubDate>
        <link>https://blog.mithis.net/archives/useful-bits/2172-using-identitiesonly-without-key-files</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/useful-bits/2172-using-identitiesonly-without-key-files</guid>
        
        
          
            <category>useful-bits</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>If you want to restrict the keys that ssh tries when connecting to a server, you need to use the IdentityFile and IdentitiesOnly configuration options in your ssh_config. However, a...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/useful-bits/2172-using-identitiesonly-without-key-files#comments</comments>
        
      </item>
    
      <item>
        <title>TimVideos.us and Google Summer of Code 2016!</title>
        <description>&lt;p&gt;This is a &lt;a href=&quot;https://hdmi2usb.tv/gsoc/hdmi2usb/2016/03/14/gsoc-2016/&quot;&gt;cross post&lt;/a&gt; from the &lt;a href=&quot;https://hdmi2usb.tv&quot;&gt;HDMI2USB&lt;/a&gt; website.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h1 id=&quot;timvideosus-and-google-summer-of-code-2016&quot;&gt;&lt;a href=&quot;https://hdmi2usb.tv/timvideos/hdmi2usb/2016/01/11/new-year-roadmap/&quot;&gt;TimVideos.us and Google Summer of Code 2016!&lt;/a&gt;&lt;/h1&gt;
  &lt;p&gt;The &lt;a href=&quot;https://code.timvideos.us/&quot;&gt;TimVideos.us project&lt;/a&gt; is happy to announce that it has been selected to participate in the &lt;a href=&quot;https://developers.google.com/open-source/gsoc/&quot;&gt;Google Summer of Code for 2016 &lt;/a&gt;(GSoC). GSoC is a program where students are paid to contribute to selected open source projects over the northern hemisphere summer, &lt;a href=&quot;http://google-opensource.blogspot.com.au/2013/02/flip-bits-not-burgers-google-summer-of.html&quot;&gt;flip bits not burgers&lt;/a&gt;!&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;https://developers.google.com/open-source/gsoc/timeline&quot;&gt;&lt;strong&gt;The application period is now open&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&quot;https://code.timvideos.us/summer-of-code/&quot;&gt;students have until 25 March 19:00 UTC to apply to work with the TimVideos.us project&lt;/a&gt;. The &lt;a href=&quot;https://github.com/timvideos/getting-started/issues&quot;&gt;list of proposal ideas&lt;/a&gt; includes contributing to the &lt;a href=&quot;https://hdmi2usb.tv/&quot;&gt;HDMI2USB&lt;/a&gt; and things related to the &lt;a href=&quot;https://www.crowdsupply.com/numato-lab/opsis&quot;&gt;Numato Opsis&lt;/a&gt;.&lt;/p&gt;

  &lt;p&gt;&lt;img src=&quot;https://developers.google.com/open-source/gsoc/resources/downloads/GSoC2016Logo.jpg&quot; alt=&quot;GSoC Logo 2016&quot; class=&quot;aligncenter&quot; /&gt;&lt;/p&gt;

  &lt;p&gt;Due to the focus on hardware, we are very interested in students who are interested in things like &lt;a href=&quot;https://en.wikipedia.org/wiki/Hardware_description_language&quot;&gt;VHDL/Verilog and other HDLs&lt;/a&gt;, embedded C programming and operating systems and &lt;a href=&quot;https://en.wikipedia.org/wiki/Circuit_design&quot;&gt;electronic circuit/PCB design&lt;/a&gt;. Some possible ideas include;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/timvideos/getting-started/issues/5&quot;&gt;Working on USB 3.0 support for ultra high speed video capture.&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Porting a real operating system &lt;a href=&quot;https://github.com/timvideos/getting-started/issues/30&quot;&gt;such as Linux&lt;/a&gt; or RTEMS to &lt;a href=&quot;https://m-labs.hk/gateware.html&quot;&gt;our SoC&lt;/a&gt; to &lt;a href=&quot;https://github.com/timvideos/getting-started/issues/33&quot;&gt;allow easier development of new features&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Making use of the &lt;a href=&quot;https://github.com/timvideos/getting-started/issues/32&quot;&gt;Ethernet interface for connecting multiple devices together&lt;/a&gt; and alternative capture interfaces.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/timvideos/getting-started/issues/2&quot;&gt;Creating new expansion board and supporting the professional SDI standard&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/timvideos/getting-started/issues&quot;&gt;and many, many more&lt;/a&gt;.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;If you are interested in applying, your first point of call should be &lt;a href=&quot;https://code.timvideos.us/summer-of-code/&quot;&gt;our Google Summer of Code page&lt;/a&gt;. Even if you can’t apply to GSoC, you can also help us by forwarding &lt;a href=&quot;https://hdmi2usb.tv/gsoc/hdmi2usb/2016/03/14/gsoc-2016/&quot;&gt;this message to anyone you might think who is interested!&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;img src=&quot;https://code.timvideos.us/img/logo.png&quot; alt=&quot;TimVideos Logo&quot; class=&quot;aligncenter&quot; /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Tue, 15 Mar 2016 17:32:13 +1000</pubDate>
        <link>https://blog.mithis.net/archives/summer-of-code/2169-timvideos-us-and-google-summer-of-code-2016</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/summer-of-code/2169-timvideos-us-and-google-summer-of-code-2016</guid>
        
        
          
            <category>summer-of-code</category>
          
            <category>hardware</category>
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>This is a cross post from the HDMI2USB website. TimVideos.us and Google Summer of Code 2016! The TimVideos.us project is happy to announce that it has been selected to participate...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/summer-of-code/2169-timvideos-us-and-google-summer-of-code-2016#comments</comments>
        
      </item>
    
      <item>
        <title>TimVideos.us 2016 New Year’s Resolutions</title>
        <description>&lt;p&gt;This is a &lt;a href=&quot;https://hdmi2usb.tv/timvideos/hdmi2usb/2016/01/11/new-year-roadmap/&quot;&gt;cross post&lt;/a&gt; from the &lt;a href=&quot;https://hdmi2usb.tv&quot;&gt;HDMI2USB&lt;/a&gt; website about my plans for 2016 and the &lt;a href=&quot;https://code.timvideos.us/&quot;&gt;TimVideos project&lt;/a&gt;. Last year was an exciting time for my personal projects!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h1 id=&quot;timvideosus-2016-new-years-resolutions&quot;&gt;&lt;a href=&quot;https://hdmi2usb.tv/timvideos/hdmi2usb/2016/01/11/new-year-roadmap/&quot;&gt;TimVideos.us 2016 New Year’s Resolutions&lt;/a&gt;&lt;/h1&gt;
  &lt;hr /&gt;

  &lt;p&gt;Hello everyone,&lt;/p&gt;

  &lt;p&gt;Hope everyone has had an awesome start to 2016 so far. As is tradition in many western countries, I thought I would put together some &lt;a href=&quot;https://en.wikipedia.org/wiki/New_Year%27s_resolution&quot;&gt;New Year’s Resolutions&lt;/a&gt; and reflect on our progress in 2015. I guess more business minded people might call it a “project roadmap” 🙂&lt;/p&gt;

  &lt;h3 id=&quot;timvideos-project&quot;&gt;&lt;a href=&quot;https://code.timvideos.us/&quot;&gt;TimVideos Project&lt;/a&gt;&lt;/h3&gt;

  &lt;p&gt;In 2015, I decided to focus the &lt;a href=&quot;https://code.timvideos.us/&quot;&gt;TimVideos project&lt;/a&gt; on the &lt;a href=&quot;https://hdmi2usb.tv/&quot;&gt;HDMI2USB project&lt;/a&gt;. The three key results of this focus were;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Starting and completing a &lt;a href=&quot;https://github.com/timvideos/HDMI2USB-misoc-firmware&quot;&gt;rewrite of the HDMI2USB firmware&lt;/a&gt; based on the &lt;a href=&quot;http://m-labs.hk/gateware.html&quot;&gt;Migen and MiSoC system developed by M-Labs&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Launching a &lt;a href=&quot;http://crowdsupply.com/numato-lab/opsis&quot;&gt;successful crowdfunding campaign&lt;/a&gt; for &lt;a href=&quot;https://github.com/timvideos/HDMI2USB-numato-opsis-hardware&quot;&gt;Numato Opsis&lt;/a&gt;, our first open hardware for the HDMI2USB firmware.&lt;/li&gt;
    &lt;li&gt;Having the HDMI2USB firmware on Atlys boards used in production by multiple people!
      &lt;ul&gt;
        &lt;li&gt;Carl Karsten from &lt;a href=&quot;http://nextdayvideo.com/&quot;&gt;NextDayVideo&lt;/a&gt; in the US for both PyCon ZA and Nodevember.&lt;/li&gt;
        &lt;li&gt;The &lt;a href=&quot;https://wiki.debconf.org/wiki/Videoteam&quot;&gt;DebConf Video team&lt;/a&gt; for their &lt;a href=&quot;https://wiki.debian.org/DebianEvents/gb/2015/MiniDebConfCambridge#Video&quot;&gt;MiniDebConf in November&lt;/a&gt;.&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/user/mithro&quot;&gt;Myself for recording&lt;/a&gt; my own talks on the HDMI2USB project at user groups here in Sydney!&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;With the success of this focus in 2015, the &lt;a href=&quot;https://code.timvideos.us/&quot;&gt;TimVideos project&lt;/a&gt; is going to continue to focus on the&lt;a href=&quot;https://hdmi2usb.tv/&quot;&gt;HDMI2USB project&lt;/a&gt; for 2016 (and I’ll go into more detailed goals shortly).&lt;/p&gt;

  &lt;p&gt;The &lt;a href=&quot;https://code.timvideos.us/&quot;&gt;TimVideos project&lt;/a&gt; has also been mildly successful in collaborating with other open source groups doing things related to video recording and production. In 2016, I hope we can strengthen these bonds and forge new ones. Some specific goals around this include;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Getting the TimVideos project to join &lt;a href=&quot;https://sfconservancy.org/&quot;&gt;Software Freedom Conservancy&lt;/a&gt; (or similar organisation).&lt;/li&gt;
    &lt;li&gt;Figure out the right way to collaborate with the &lt;a href=&quot;https://c3voc.de/&quot;&gt;C3VOC team&lt;/a&gt; on &lt;a href=&quot;https://github.com/voc/voctomix&quot;&gt;voctomix&lt;/a&gt; and start adding missing features from &lt;a href=&quot;https://github.com/timvideos/gst-switch&quot;&gt;gst-switch&lt;/a&gt; allowing that project to be retired.&lt;/li&gt;
    &lt;li&gt;Continue to work with supporting groups like &lt;a href=&quot;http://nextdayvideo.com/&quot;&gt;NextDayVideo&lt;/a&gt;, the &lt;a href=&quot;https://wiki.debconf.org/wiki/Videoteam&quot;&gt;DebConf Video team&lt;/a&gt; and &lt;a href=&quot;https://linux.org.au/&quot;&gt;Linux Australia&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Support and help &lt;a href=&quot;http://hamsterworks.co.nz/mediawiki/index.php/FPGA_Projects&quot;&gt;Mike “Hamster” Field&lt;/a&gt; continue to develop a &lt;a href=&quot;https://github.com/hamsternz/FPGA_DisplayPort&quot;&gt;fully open source DisplayPort core&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Collaborate with the &lt;a href=&quot;http://apertus.org/&quot;&gt;apertus° project&lt;/a&gt; on high end (4k and greater!) video capture and processing.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h3 id=&quot;hdmi2usb-project&quot;&gt;&lt;a href=&quot;https://hdmi2usb.tv&quot;&gt;HDMI2USB Project&lt;/a&gt;&lt;/h3&gt;

  &lt;p&gt;As we are concentrating on the &lt;a href=&quot;https://hdmi2usb.tv&quot;&gt;HDMI2USB project&lt;/a&gt;, we have some specific goals around that.&lt;/p&gt;

  &lt;p&gt;HDMI2USB &lt;strong&gt;firmware&lt;/strong&gt; goals;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Refactor the HDMI core to allow support a wider range of interfaces, better debugging and addition of more features. A document about the refactor has been &lt;a href=&quot;https://docs.google.com/a/mithis.com/document/d/1L8lz7u2uj6MrzSQv4b1Vk6Rmic26okyRklOju5IWLYA/edit?usp=drive_web&quot;&gt;started here&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Add support for the &lt;a href=&quot;https://hdmi2usb.tv/timvideos/hdmi2usb/2016/01/11/new-year-roadmap/&quot;&gt;high-speed GTP transceivers&lt;/a&gt; and &lt;a href=&quot;http://hamsterworks.co.nz/mediawiki/index.php/FPGA_Projects&quot;&gt;Mike “Hamster” Field&lt;/a&gt; &lt;a href=&quot;https://github.com/hamsternz/FPGA_DisplayPort&quot;&gt;open source DisplayPort core&lt;/a&gt;.&lt;/li&gt;
    &lt;li&gt;Get Ethernet support working (on both the Atlys and Opsis boards). The two major Ethernet features are;
      &lt;ul&gt;
        &lt;li&gt;Ethernet supports identical capture and control feature set to the USB port.&lt;/li&gt;
        &lt;li&gt;Allowing HDMI2USB boards to act has “HDMI over Ethernet extenders”.&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://hdmi2usb.tv/potential-boards/&quot;&gt;Support for more hardware&lt;/a&gt;;
      &lt;ul&gt;
        &lt;li&gt;miniSpartan6+&lt;/li&gt;
        &lt;li&gt;Digilent Nexys Video&lt;/li&gt;
        &lt;li&gt;New HDMI2USB designed hardware!&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Stretch Goals (1)
      &lt;ul&gt;
        &lt;li&gt;Add support for &lt;a href=&quot;https://docs.google.com/document/d/1ZjM1Brrks0lg1CJp2Rt1BH8-MhJamrKUeCUB4s4nzoA/edit&quot;&gt;hardware based mixing&lt;/a&gt;.&lt;/li&gt;
        &lt;li&gt;Have either a RTOS or Linux running on the FPGA softcore.&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;HDMI2USB &lt;strong&gt;hardware&lt;/strong&gt; goals;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;(By end of year) Development of a low cost PCI-Express capture card.&lt;/li&gt;
    &lt;li&gt;(By middle 2017) Development of an Opsis V2 based around either an high end Artix-7 or a low end Kintex-7 FPGA.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;em&gt;(1): Stretch goals are things we plan to try and achieve if things go well.&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;Hope this update give you an idea of what we have planned for 2016! We would love your help making it all possible.&lt;/p&gt;

  &lt;p&gt;Tim ‘mithro’ Ansell&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Fri, 15 Jan 2016 01:00:58 +1000</pubDate>
        <link>https://blog.mithis.net/archives/lca/2167-timvideos-us-2016-new-years-resolutions</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/lca/2167-timvideos-us-2016-new-years-resolutions</guid>
        
        
          
            <category>lca</category>
          
            <category>pcb</category>
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>This is a cross post from the HDMI2USB website about my plans for 2016 and the TimVideos project. Last year was an exciting time for my personal projects! TimVideos.us 2016...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/lca/2167-timvideos-us-2016-new-years-resolutions#comments</comments>
        
      </item>
    
      <item>
        <title>First V2 “HDMI2USB Production Board” constructed!</title>
        <description>&lt;p&gt;For the last year and a half, I have been working with &lt;a href=&quot;http://numato.com&quot;&gt;Numato Labs&lt;/a&gt; to create a “HDMI2USB Production Board” for our &lt;a href=&quot;https://github.com/timvideos/HDMI2USB&quot;&gt;HDMI2USB firmware&lt;/a&gt; that was originally developed on the &lt;a href=&quot;http://digilentinc.com/atlys/&quot;&gt;Digilent Atlys board&lt;/a&gt;. On Friday, they sent me a picture of the first constructed board!&lt;/p&gt;

&lt;div id=&quot;attachment_2046&quot; style=&quot;width: 671px&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;a href=&quot;/assets/images/wp-content/uploads/2015/07/HDMI2USB-Prod-V2.jpg&quot;&gt;&lt;img class=&quot;wp-image-2046&quot; src=&quot;/assets/images/wp-content/uploads/2015/07/HDMI2USB-Prod-V2-1024x675.jpg&quot; alt=&quot;HDMI2USB &amp;quot;Production Board&amp;quot; Version 2&quot; width=&quot;661&quot; height=&quot;436&quot; srcset=&quot;/assets/images/wp-content/uploads/2015/07/HDMI2USB-Prod-V2-1024x675.jpg 1024w, /assets/images/wp-content/uploads/2015/07/HDMI2USB-Prod-V2-300x197.jpg 300w, /assets/images/wp-content/uploads/2015/07/HDMI2USB-Prod-V2-900x593.jpg 900w&quot; sizes=&quot;(max-width: 661px) 100vw, 661px&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;HDMI2USB “Production Board” Version 2&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;At the end of last year, we decided to abandon our first attempt and start again from scratch, this picture is the result of that work. Some of the reasons we decided to start from scratch was;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A “de facto standard” for locking HDMI ports was established and low cost connectors became available. This meant we no longer needed to support both DVI and HDMI connectors, reducing the complexity significantly and solving some persistent issues.&lt;/li&gt;
  &lt;li&gt;Not only did the cost of Spartan 6 parts with high speed “GTP” transceivers drop but our understanding of how to use them increased. This would allow us to create a board which natively supports DisplayPort.&lt;/li&gt;
  &lt;li&gt;The idea streaming via not only USB, but also Ethernet became a stronger possibility, meaning the extra cost of adding ethernet was now worth it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, our board has the following differences with the Atlys board;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Has DDR3 memory instead of DDR2, increasing the memory bandwidth.&lt;/li&gt;
  &lt;li&gt;Has a Spartan S6LX45&lt;strong&gt;T&lt;/strong&gt; with the GTP broken out to DisplayPort headers.&lt;/li&gt;
  &lt;li&gt;Has a PCI-Express style expansion connector instead of the expensive VHDCI connector, allow much cheaper expansion boards.&lt;/li&gt;
  &lt;li&gt;Has all the extra pins on the FX2, increasing the potential USB interface options.&lt;/li&gt;
  &lt;li&gt;Has control over all the HDMI functionality, including hot plug and CEC functionality.&lt;/li&gt;
  &lt;li&gt;Removes parts we don’t need such as the audio, buttons, switches and LEDs.&lt;/li&gt;
  &lt;li&gt;Mounts in any ITX style computer case.&lt;/li&gt;
  &lt;li&gt;Adds UTMI USB (as well as the Cypress FX2)&lt;/li&gt;
  &lt;li&gt;Adds MicroSD connector.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 05 Jul 2015 14:47:57 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/2045-first-v2-hdmi2usb-production-board-constructed</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/2045-first-v2-hdmi2usb-production-board-constructed</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
            <category>hardware</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>For the last year and a half, I have been working with Numato Labs to create a “HDMI2USB Production Board” for our HDMI2USB firmware that was originally developed on the...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/2045-first-v2-hdmi2usb-production-board-constructed#comments</comments>
        
      </item>
    
      <item>
        <title>HDMI2USB – Production Board Bring Up – Day 8 (28th July 2014)</title>
        <description>&lt;ul&gt;
  &lt;li&gt;Updated the &lt;a href=&quot;https://docs.google.com/a/mithis.com/spreadsheets/d/10vNcsOAxnuiwc5diespjIepMySxhR0iVZfYxouq4p-E/edit#gid=1936356070&quot;&gt;HDMI2USB variant spreadsheet&lt;/a&gt; with new Numato board pin out.&lt;/li&gt;
  &lt;li&gt;Successfully generated a HDMI2USB firmware for Numato board with new pin information. That fixes the constraint issue!&lt;/li&gt;
  &lt;li&gt;Successfully generated a HDMI2USB firmware for Numato board with second receive port (RX2) disabled!
    &lt;ul&gt;
      &lt;li&gt;Was able to view the HDMI2USB test image output on TX2!&lt;/li&gt;
      &lt;li&gt;Was able to capture the HDMI2USB test image via mplayer!&lt;/li&gt;
      &lt;li&gt;Was unable to detect a screen on RX1.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Created a “flash.sh” script to use libFPGALink to flash the FPGA and then load the Cypress firmware.&lt;/li&gt;
  &lt;li&gt;Wrote a Python script to interrogate the CDC serial port for status of the firmware.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 29 Jul 2014 00:13:02 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/2009-hdmi2usb-production-board-bring-up-day-8-28th-july-2014</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/2009-hdmi2usb-production-board-bring-up-day-8-28th-july-2014</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Updated the HDMI2USB variant spreadsheet with new Numato board pin out. Successfully generated a HDMI2USB firmware for Numato board with new pin information. That fixes the constraint issue! Successfully generated...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/2009-hdmi2usb-production-board-bring-up-day-8-28th-july-2014#comments</comments>
        
      </item>
    
      <item>
        <title>HDMI2USB – Production Board Bring Up – Day 5, 6 and 7 (25th, 26th and 27th July 2014)</title>
        <description>&lt;h2 id=&quot;25th-july-2014&quot;&gt;25th July 2014&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Setup &lt;a href=&quot;https://github.com/xobs&quot;&gt;xob&lt;/a&gt;‘s hacked up &lt;a href=&quot;https://github.com/timvideos/HDMI2USB/pull/69&quot;&gt;colormake in our build system&lt;/a&gt;. Nice colorized output now!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Fought more with
    &lt;pre&gt;ERROR:Place - Constraint Resolved NO placeable site for hdmiMatri_Comp/dvi_rx1/ioclk_buf issue&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;Watched &lt;a href=&quot;https://www.youtube.com/watch?v=xuK6udkbyGo&quot;&gt;Paul Fenwick’s OSCon Keynote&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Streaming System Hacking&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Made the configuration system better and adding a lot of comments to the json file (which isn’t really valid json any more).&lt;/li&gt;
  &lt;li&gt;Made pycon2internal.py slightly better and able to parse PyOhio format (based on the PyCon US format).&lt;/li&gt;
  &lt;li&gt;Added hack to make event2internal.py to use pycon2internal.py at some periods.&lt;/li&gt;
  &lt;li&gt;Set up a bunch of encoders in the Oregon EC2 region.&lt;/li&gt;
  &lt;li&gt;Get access to www.timvideos.us again and deployed the updated website.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2 id=&quot;26th-july-2014&quot;&gt;26th July 2014&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Went into the &lt;a href=&quot;http://hackerspace-adelaide.org.au/&quot;&gt;Adelaide Hackerspace&lt;/a&gt; and created a cable to interface the &lt;a href=&quot;http://www.microchip.com/wwwproducts/Devices.aspx?product=USB3300&quot;&gt;USB3300 ULPI&lt;/a&gt; chip to 2xPMOD headers.&lt;/li&gt;
  &lt;li&gt;Got streaming working for day 1 of &lt;a href=&quot;http://pyohio.org&quot;&gt;PyOhio&lt;/a&gt;, it was late as we were disorganised.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://aps-sids.github.io/&quot;&gt;aps-sids&lt;/a&gt; foolishly pointed out a bug in the title of the streaming system, so I &lt;a href=&quot;http://logs.timvideos.us/%23timvideos/%23timvideos.2014-07-26.log.html#t2014-07-26T16:15:22&quot;&gt;taught him&lt;/a&gt; about how we actually flumotion for an event.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2 id=&quot;27th-july-2014&quot;&gt; 27th July 2014&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Did a lot of spreadsheet hacking on the production board pin planning spreadsheet;
    &lt;ul&gt;
      &lt;li&gt;Added half bank / BUFIO2 regions.&lt;/li&gt;
      &lt;li&gt;Added dedicated clock pin information.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Started work on reshuffling the pins to fix the timing issue.&lt;/li&gt;
  &lt;li&gt;Helped aps-sids get &lt;a href=&quot;https://github.com/timvideos/flumotion/tree/modern-twisted-fix&quot;&gt;Flumotion working on the latest Twisted release&lt;/a&gt;. Turned out that &lt;a href=&quot;http://lists.fluendo.com/pipermail/flumotion-devel/2014-January/000698.html&quot;&gt;someone else&lt;/a&gt; had already done most of the work and only a couple very small fixes where needed. &lt;a href=&quot;http://logs.timvideos.us/%23timvideos/%23timvideos.2014-07-28.log.html#t2014-07-28T05:43:23&quot;&gt;aps-sids reported&lt;/a&gt; that he was now able to run flumotion on Ubuntu Trusty!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;
</description>
        <pubDate>Mon, 28 Jul 2014 23:39:31 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/2003-hdmi2usb-production-board-bring-up-day-5-6-and-7th-25th-26th-and-27th-july-2014</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/2003-hdmi2usb-production-board-bring-up-day-5-6-and-7th-25th-26th-and-27th-july-2014</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>25th July 2014 Setup xob‘s hacked up colormake in our build system. Nice colorized output now! Fought more with ERROR:Place - Constraint Resolved NO placeable site for hdmiMatri_Comp/dvi_rx1/ioclk_buf issue Watched...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/2003-hdmi2usb-production-board-bring-up-day-5-6-and-7th-25th-26th-and-27th-july-2014#comments</comments>
        
      </item>
    
      <item>
        <title>HDMI2USB – Production Board Bring Up – Day 4 (24th July 2014)</title>
        <description>&lt;p&gt;Generally slow progress today, but some success.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Able to successfully load libFPGALink firmware onto Cypress chip and programmed the FPGA using it. Yay!&lt;/li&gt;
  &lt;li&gt;Wrote a test firmware based on http://hamsterworks.co.nz/mediawiki/index.php/DVI-D_Serdes to transmit 720p output from both the TX ports.
    &lt;ul&gt;
      &lt;li&gt;Images are successfully received on both devices but there is a weird artifact in the image.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p style=&quot;text-align: center;&quot;&gt; &lt;a href=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_0029322.jpg&quot;&gt;&lt;img src=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_0029322-225x300.jpg&quot; alt=&quot;Numato HDMI2USB Prototype driving 2 screens&quot; width=&quot;225&quot; height=&quot;300&quot; class=&quot;alignnone wp-image-1997 size-medium&quot; srcset=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_0029322-225x300.jpg 225w&quot; sizes=&quot;(max-width: 225px) 100vw, 225px&quot; /&gt;  &lt;img src=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_003008-300x225.jpg&quot; alt=&quot;HDMI2USB weird image artifact&quot; width=&quot;400&quot; height=&quot;300&quot; class=&quot;alignnone wp-image-1998&quot; srcset=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_003008-300x225.jpg 300w, /assets/images/wp-content/uploads/2014/07/IMG_20140725_003008-900x675.jpg 900w&quot; sizes=&quot;(max-width: 400px) 100vw, 400px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://dreamsxtrinsic.blogspot.com.au/&quot;&gt;Rohit’s VGA expansion board&lt;/a&gt; was received, but yet to turn it on. Looking forward to seeing that working live!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_010725.jpg&quot;&gt;&lt;img src=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_010725-225x300.jpg&quot; alt=&quot;HDMI2USB - Rohit&apos;s VGA Capture board&quot; width=&quot;225&quot; height=&quot;300&quot; class=&quot;aligncenter wp-image-2000 size-medium&quot; srcset=&quot;/assets/images/wp-content/uploads/2014/07/IMG_20140725_010725-225x300.jpg 225w&quot; sizes=&quot;(max-width: 225px) 100vw, 225px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Set up the streaming system for &lt;a href=&quot;http://nextdayvideo.com&quot;&gt;Carl&lt;/a&gt; and &lt;a href=&quot;http://www.pyohio.org/&quot;&gt;PyOhio&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;Tried to figure out where www.timvideos.us was hosted.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 25 Jul 2014 12:18:12 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/1995-hdmi2usb-production-board-bring-up-day-4-24th-july-2014</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/1995-hdmi2usb-production-board-bring-up-day-4-24th-july-2014</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Generally slow progress today, but some success. Able to successfully load libFPGALink firmware onto Cypress chip and programmed the FPGA using it. Yay! Wrote a test firmware based on http://hamsterworks.co.nz/mediawiki/index.php/DVI-D_Serdes...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/1995-hdmi2usb-production-board-bring-up-day-4-24th-july-2014#comments</comments>
        
      </item>
    
      <item>
        <title>HDMI2USB – Production Board Bring Up – Day 3 (23rd July 2014)</title>
        <description>&lt;ul&gt;
  &lt;li&gt;Looked into if Travis CI has IPv6 connectivity. &lt;a href=&quot;https://travis-ci.org/mithro/temp/builds/30607921&quot;&gt;It appears so!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Investigated git server side hooks as a method to run CI on build.timvideos.tv
    &lt;ul&gt;
      &lt;li&gt;Travis-CI does a git push to build.timvideos.tv which does a make in the post-recieve.&lt;/li&gt;
      &lt;li&gt;Issues;
        &lt;ul&gt;
          &lt;li&gt;For non-pull requests we could encode the private key using Travis’s encrypted environment variables.&lt;/li&gt;
          &lt;li&gt;What about pull requests? Mean anyone can send arbitrary code to build.timvideos.tv – Maybe use QEmu’s COW support and reboot after each build?&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Looked a jig for a nice way to write the git hooks.
        &lt;ul&gt;
          &lt;li&gt;&lt;a href=&quot;https://github.com/robmadole/jig/pull/8&quot;&gt;Sent a pull request&lt;/a&gt; to fix some documentation.&lt;/li&gt;
          &lt;li&gt;Really designed to run as a “pre-commit” hook locally on a person’s machine rather than a server side hook. &lt;a href=&quot;https://github.com/robmadole/jig/issues/9&quot;&gt;Logged an issue to discuss that.&lt;/a&gt;&lt;/li&gt;
          &lt;li&gt;Has a lot of nice plugins for Python development already.&lt;/li&gt;
          &lt;li&gt;Would allow us to add hdl-pretty as a commit hook.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Alternatives to jig appear to be;
        &lt;ul&gt;
          &lt;li&gt;https://github.com/icefox/git-hooks – Written in bash&lt;/li&gt;
          &lt;li&gt;https://pypi.python.org/pypi/git-pre-commit-hook – Written in python&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Got my “fake” Xilinx Platform Cable USB (Model DLC9G) working under Linux – Full instructions can be found at &lt;a href=&quot;https://github.com/timvideos/HDMI2USB/wiki/Xilinx-Platform-Cable-USB-under-Linux&quot;&gt;https://github.com/timvideos/HDMI2USB/wiki/Xilinx-Platform-Cable-USB-under-Linux&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;The device was &lt;a href=&quot;http://www.ebay.com.au/itm/Xilinx-Platform-USB-Download-Cable-Jtag-Programmer-for-FPGA-CPLD-C-Mod-XC2C64A/390809652326&quot;&gt;purchased from eBay&lt;/a&gt; on the 11th July, costed $37 USD with shipping and arrived at Joel’s house on Monday.&lt;/li&gt;
      &lt;li&gt;First issue was /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/setup_pcusb didn’t understand I had udev and was trying to install for the ancient hotplug.
        &lt;ul&gt;
          &lt;li&gt;Fixed by changing line 26 from TP_USE_UDEV=”0″ to TP_USE_UDEV=”1″&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Next setup_pcusb didn’t tell udev to reload the udev rules. Had to do that with udevadm control –reload-rules&lt;/li&gt;
      &lt;li&gt;Next setup_pcusb didn’t ask me to install fxload, so I needed to install it with apt-get install fxload&lt;/li&gt;
      &lt;li&gt;Next the rules that were installed to /etc/udev/rules.d/xusbdfwu.rules were invalid; they caused the following errors in /var/log/daemon.log&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;pre style=&quot;padding-left: 90px;&quot;&gt;Jul 23 16:40:29 laptop udevd[841]: unknown key &apos;SYSFS{idVendor}&apos; in /etc/udev/rules.d/xusbdfwu.rules:2
Jul 23 16:40:29 laptop udevd[841]: invalid rule &apos;/etc/udev/rules.d/xusbdfwu.rules:2&apos;
Jul 23 16:46:11 laptop udevd[841]: unknown key &apos;SYSFS{idVendor}&apos; in /etc/udev/rules.d/xusbdfwu.rules:3
Jul 23 16:46:11 laptop udevd[841]: invalid rule &apos;/etc/udev/rules.d/xusbdfwu.rules:3&apos;&lt;/pre&gt;

&lt;ul class=&quot;day3-postpre-list&quot;&gt;
  &lt;li&gt;This was fixed with;
    &lt;ul&gt;
      &lt;li&gt;Changing SYSFS to ATTRS&lt;/li&gt;
      &lt;li&gt;Changing BUS to SUBSYSTEM&lt;/li&gt;
      &lt;li&gt;Changing $TEMPNODE to $tempnode&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;The little status light then turned on red! Yay!&lt;/li&gt;
  &lt;li&gt;Was able to do a boundary scan in iMPACT on a Zybo development board after soldering a header onto it.&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
  &lt;li&gt;Received the HDMI2USB production boards created by &lt;a href=&quot;http://numato.com/&quot;&gt;Numato&lt;/a&gt;!
    &lt;ul&gt;
      &lt;li&gt;Started with bunch of stuff to do with LEDs;
        &lt;ul&gt;
          &lt;li&gt;Logged issues about LEDs not been label intelligently. Such as the “power” LED being labeled “D33”.&lt;/li&gt;
          &lt;li&gt;Researched the DONE net again so I could understand the D2 LED (which should be named D_FPGA_NOT_CONFIGURED or DNCFG for short). Started adding the information to the JTAG/Reset documentation.&lt;/li&gt;
          &lt;li&gt;Figured out why D3 (connected to the Cypress INT1 pin) was only faintly lit.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Logged a bunch of issue regarding small silk screen fixes to make future boards easier to understand.&lt;/li&gt;
      &lt;li&gt;Logged an issue about adding some standoffs in the center of the board for mechanical stability.&lt;/li&gt;
      &lt;li&gt;Logged an issue about having a good GND point to connect your probe too.
        &lt;ul&gt;
          &lt;li&gt;This page describes the two good ways to add a GND test point – http://www.robotroom.com/PCB-Layout-Tips.html&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Starting researching the 5V rail and if we could remove it totally (thus saving a bunch of stuff). Looks like we can, but needs more investigation.&lt;/li&gt;
      &lt;li&gt;After replacing the JTAG cable was able to use iMPACT to boundary scan and it found Spartan 6 chip!&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Discovered CEC is 3V3 signal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;non-hdmi2usb-stuff&quot;&gt;Non HDMI2USB stuff&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Tried to figure out why my home router has decided that it wants to hand out address in the 2001:44b8:31dc:8d01::/64 rather than the 2001:44b8:31dc:8d00::/64 range it use too.&lt;/li&gt;
  &lt;li&gt;Found a bunch of issues with domains served of ns1.mithis.com as the secondary servers where disabled. Root cause was an old version of PowerDNS failing on TCP zone transfers causing domains to become stale and get dropped from the secondaries. Enabled email notification when secondary disables the zones.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;
</description>
        <pubDate>Thu, 24 Jul 2014 01:54:52 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/1993-hdmi2usb-production-board-bring-up-day-3-23rd-july-2014</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/1993-hdmi2usb-production-board-bring-up-day-3-23rd-july-2014</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Looked into if Travis CI has IPv6 connectivity. It appears so! Investigated git server side hooks as a method to run CI on build.timvideos.tv Travis-CI does a git push to...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/1993-hdmi2usb-production-board-bring-up-day-3-23rd-july-2014#comments</comments>
        
      </item>
    
      <item>
        <title>HDMI2USB – Production Board Bring Up – Day 2 (22nd July 2014)</title>
        <description>&lt;h3 id=&quot;non-hdmi2usb-related-stuff&quot;&gt;Non-HDMI2USB related stuff&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Answered a bunch of work emails.&lt;/li&gt;
  &lt;li&gt;Read and answered bunch of PyCon AU related emails.&lt;/li&gt;
  &lt;li&gt;Fix &lt;a href=&quot;https://dlv.isc.org&quot;&gt;DLV records&lt;/a&gt; for a bunch of domains.&lt;/li&gt;
  &lt;li&gt;Helped &lt;a href=&quot;http://aps-sids.github.io/porting-flumotion/2014/07/21/flumotion-dvswitch-problems/&quot;&gt;aps-sids with flumotion porting work&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;hdmi2usb-related-stuff&quot;&gt;HDMI2USB related stuff&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Worked from Joel’s house today to &lt;a href=&quot;https://www.fedex.com/fedextrack/html/oldindex.html?tracknumbers=770633168459&amp;amp;cntry_code=au&amp;amp;language=en&quot;&gt;receive the production HDMI2USB boards&lt;/a&gt;, they didn’t turn up 🙁&lt;/li&gt;
  &lt;li&gt;Create a &lt;a href=&quot;build.hdmi2usb.tv&quot;&gt;trusty VM on server&lt;/a&gt; for Joel to setup HDMI2USB CI on.&lt;/li&gt;
  &lt;li&gt;Investigated origin of files in HDMI2USB code. Current status seems to be;
    &lt;ul&gt;
      &lt;li&gt;hdl/edid – Written by us (Jahanzeb).&lt;/li&gt;
      &lt;li&gt;hdl/hdmi – Mostly written by Xilinx and released in application notes. Need to figure out the exact licensing of the files (are they MIT? Only for use on Xilinx parts?) and move them to third party.&lt;/li&gt;
      &lt;li&gt;hdl/jpeg_encoder – OpenCores mkjpeg core. Need to move to third party.&lt;/li&gt;
      &lt;li&gt;hdl/usb – Written by us (Jahanzeb).&lt;/li&gt;
      &lt;li&gt;ipcore_dir – Cores generated by Xilinx. Need to figure out the exact licensing of the files (are they MIT? Only for use on Xilinx parts?) and move them to third party.&lt;/li&gt;
      &lt;li&gt;cypress – Confusing mess. We know this and plan to &lt;a href=&quot;https://github.com/timvideos/HDMI2USB/issues/16&quot;&gt;rewrite the firmware using only FOSS tools&lt;/a&gt;.
        &lt;ul&gt;
          &lt;li&gt;Bunch of proprietary binary blobs.&lt;/li&gt;
          &lt;li&gt;Bunch of headers of unknown copyright.&lt;/li&gt;
          &lt;li&gt;Bunch of code written by us.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Logged a lot of bugs about warnings Xilinx tools are generating when compiling the firmware.&lt;/li&gt;
  &lt;li&gt;Made generate_ucf.py generate a file for Atlys functionally identical to existing HDMI2USB.ucf file. Was able to successfully build the firmware with generate HDMI2USB.ucf file for the Atlys board.&lt;/li&gt;
  &lt;li&gt;Started trying to get firmware to compile with the Numato HDMI2USB.ucf file, ran into the following issue&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;pre style=&quot;padding-left: 30px;&quot;&gt;Phase 4.2 Initial Placement for Architecture Specific Features
ERROR:Place - ConstraintResolved NO placeable site for
 hdmiMatri_Comp/dvi_rx1/ioclk_buf&lt;/pre&gt;
&lt;pre style=&quot;padding-left: 30px;&quot;&gt;ERROR:Place - SIO has over-constrained componet hdmiMatri_Comp/dvi_rx1/ioclk_buf
 to have to placeable sites. Constraints come from driver constraints AND load
 IO constraints
/bin/sh: line 16: 28981 Segmentation fault (core dumped) map -filter &quot;../ise/iseconfig/filter.filter&quot; -intstyle ise -p xc6slx45-csg324-3 -w -logic_opt off -ol high -xe n -t 1 -xt 0 -register_duplication off -r 4 -global_opt off -mt off -ir off -pr b -lc off -power off -o hdmi2usb_map.ncd hdmi2usb.ngd hdmi2usb.pcf
make: *** [map] Error 139&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;Rohit GSoC mentoring;
    &lt;ul&gt;
      &lt;li&gt;Emailed Rohit about reimbursement for VGA Board hardware parts.&lt;/li&gt;
      &lt;li&gt;Rohit has &lt;a href=&quot;http://www.dhl.com/content/g0/en/express/tracking.shtml?brand=DHL&amp;amp;AWB=7654078014%0D%0A&quot;&gt;shipped me a board&lt;/a&gt; which should arrive at Joel’s tomorrow.&lt;/li&gt;
      &lt;li&gt;Weekly mentoring meeting.&lt;/li&gt;
      &lt;li&gt;Reviewed Rohit’s weekly summary blog post.&lt;/li&gt;
      &lt;li&gt;Reviewed Rohit’s VGA board V2 schematic.&lt;/li&gt;
      &lt;li&gt;Reviewed Rohit’s VGA board V2 PCB.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 23 Jul 2014 01:32:55 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/1988-hdmi2usb-production-board-bring-up-day-2-22nd-july-2014</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/1988-hdmi2usb-production-board-bring-up-day-2-22nd-july-2014</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Non-HDMI2USB related stuff Answered a bunch of work emails. Read and answered bunch of PyCon AU related emails. Fix DLV records for a bunch of domains. Helped aps-sids with flumotion...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/1988-hdmi2usb-production-board-bring-up-day-2-22nd-july-2014#comments</comments>
        
      </item>
    
      <item>
        <title>HDMI2USB – Production Board Bring Up – Day 1 (21st July 2014)</title>
        <description>&lt;ul&gt;
  &lt;li&gt;Wrote snippets for the last 3 days.&lt;/li&gt;
  &lt;li&gt;slidelint work
    &lt;ul&gt;
      &lt;li&gt;Further updated some slidelint site documentation.&lt;/li&gt;
      &lt;li&gt;Committed the &lt;a href=&quot;https://github.com/enkidulan/slidelint_site/pull/4&quot;&gt;slidelint nginx configuration&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Got set up in Joel and Rusty’s coworking space.&lt;/li&gt;
  &lt;li&gt;Explained to Ajit the idea of routing the debug output to multiple locations. Added a diagram to the &lt;a href=&quot;https://docs.google.com/document/d/19XB1AOZMp5Tr-nKEmX8CSuChd6O11wmKfwKc1nsk4OA/edit&quot;&gt;Debug Design document&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Fixed command line processing in &lt;a href=&quot;https://github.com/mithro/hdl-pretty&quot;&gt;hdl-pretty&lt;/a&gt; code. Started down the path of auto-generating help from the customize stuff and then realised I had more important things to do.&lt;/li&gt;
  &lt;li&gt;Got most of my way through a &lt;a href=&quot;https://github.com/mithro/HDMI2USB/tree/generate-ucf&quot;&gt;Python program to generate UCF files&lt;/a&gt; from the &lt;a href=&quot;https://docs.google.com/a/mithis.com/spreadsheets/d/10vNcsOAxnuiwc5diespjIepMySxhR0iVZfYxouq4p-E/edit#gid=1936356070&quot;&gt;HDMI2USB Variants&lt;/a&gt; spreadsheet.&lt;/li&gt;
  &lt;li&gt;Xilinx “Compatible” JTAG programmer turned up at &lt;a href=&quot;http://jms.id.au&quot;&gt;Joel’s&lt;/a&gt; house. Yet to test to see if it works.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 22 Jul 2014 11:16:49 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/1985-hdmi2usb-production-board-bring-up-day-1-21st-july-2014</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/1985-hdmi2usb-production-board-bring-up-day-1-21st-july-2014</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Wrote snippets for the last 3 days. slidelint work Further updated some slidelint site documentation. Committed the slidelint nginx configuration. Got set up in Joel and Rusty’s coworking space. Explained...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/1985-hdmi2usb-production-board-bring-up-day-1-21st-july-2014#comments</comments>
        
      </item>
    
      <item>
        <title>HDMI2USB – Production Board Bring Up – Snippets – Prep Work</title>
        <description>&lt;p&gt;Two weeks ago I decided that I was going to take a week of work and spend it full time working on bringing up the HDMI2USB Production board that I’m working on creating with Numato. Since I’m making all our GSoC students do daily snippets, I thought it would be good for me to do snippets too! Will be good to look back on the week and see what I ended up actually doing.&lt;/p&gt;

&lt;p&gt;The following snippets are for the preparation work I did before the week;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Spent a whole bunch of time cleaning up and organising the &lt;a href=&quot;https://github.com/timvideos/HDMI2USB/issues&quot;&gt;GitHub issues&lt;/a&gt;, including;
    &lt;ul&gt;
      &lt;li&gt;Creating a bunch of tasks and &lt;a href=&quot;https://github.com/timvideos/HDMI2USB/issues?milestone=1&amp;amp;state=open&quot;&gt;milestone&lt;/a&gt; to track the bring up work,&lt;/li&gt;
      &lt;li&gt;Writing some &lt;a href=&quot;https://github.com/timvideos/HDMI2USB/blob/master/CONTRIBUTING.md&quot;&gt;documentation on how we use labels&lt;/a&gt; in the GitHub issue tracker,&lt;/li&gt;
      &lt;li&gt;Organising &lt;a href=&quot;https://github.com/timvideos/HDMI2USB/issues?milestone=2&quot;&gt;issues related to GSoC2014&lt;/a&gt;. Found a bunch of pull requests from the start of GSoC that hadn’t been merged and looked at merging them.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/10vNcsOAxnuiwc5diespjIepMySxhR0iVZfYxouq4p-E/edit#gid=0&quot;&gt;Created a spreadsheet&lt;/a&gt; which compares the production board to the Atlys prototyping board and will be used for tracking all HDMI2USB variants into the future.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1-oq0WZnooKVja8QQSS2u60MwGc0YNB3TprSNDk-SNVU/edit?usp=drive_web&quot;&gt;Created a document proposing a future directory structure for HDMI2USB firmware to allow multiple boards, interfaces and other features.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Organised with &lt;a href=&quot;http://dreamsxtrinsic.blogspot.com.au/&quot;&gt;Rohit&lt;/a&gt; to get a &lt;a href=&quot;https://github.com/rohit91/HDMI2USB-vmodvga&quot;&gt;VGA capture board&lt;/a&gt; during this time.&lt;/li&gt;
  &lt;li&gt;Probably a bunch of other stuff I have totally forgotten.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2 id=&quot;friday--18th-july&quot;&gt;Friday – 18th July&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Finished a bunch of &lt;a href=&quot;https://codereview.chromium.org/user/mithro&quot;&gt;paid work&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Flew to Adelaide. &lt;a href=&quot;http://jms.id.au/&quot;&gt;Joel&lt;/a&gt; picked me up from the Airport.&lt;/li&gt;
  &lt;li&gt;Started work on using ‘git-filter-branch’ to extract our &lt;a href=&quot;http://code.timvideos.us/gst-switch.html#speakertrack&quot;&gt;PTZ and speaker tracking modules&lt;/a&gt; out of the &lt;a href=&quot;https://github.com/timvideos/gst-plugins-bad/tree/speakertrack&quot;&gt;gst-plugins-bad&lt;/a&gt; repo into a normal plugins repository while preserving history.&lt;/li&gt;
  &lt;li&gt;Helped Joel get IPv6 working at his place.&lt;/li&gt;
  &lt;li&gt;Fixed up IPv6 on &lt;a href=&quot;http://storage.mithis.com&quot;&gt;home server&lt;/a&gt; to allow VMs public access.&lt;/li&gt;
  &lt;li&gt;Started up the &lt;a href=&quot;http://github.com/mithro/slidelint_site&quot;&gt;slidelint website&lt;/a&gt; VM and got it a working public IPv6 address.&lt;/li&gt;
  &lt;li&gt;Set up a Ubuntu Precise VM to help test &lt;a href=&quot;http://aps-sids.github.io/porting-flumotion/&quot;&gt;aps-sids flumotion porting work&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2 id=&quot;saturday--19th-july&quot;&gt;Saturday – 19th July&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Day off. Spent day playing DOTA 2 and StarCraft 2 with Joel’s mates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2 id=&quot;sunday--20th&quot;&gt;Sunday – 20th&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Concentrated on getting &lt;a href=&quot;http://github.com/mithro/slidelint_site&quot;&gt;slidelint website&lt;/a&gt; up and running, targeting announcement at &lt;a href=&quot;http://www.pycon-au.org&quot;&gt;PyCon AU&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Created DNS configuration and deployed it. Also updated the domain tracking spreadsheet.&lt;/li&gt;
  &lt;li&gt;Rewrote the setup documentation (and ported it to Markdown).&lt;/li&gt;
  &lt;li&gt;Set up a nginx frontend.&lt;/li&gt;
  &lt;li&gt;Attempted to get &lt;a href=&quot;https://github.com/mozilla-services/circus-web&quot;&gt;circus-web&lt;/a&gt; interface working.
    &lt;ul&gt;
      &lt;li&gt;Turns out it doesn’t work under Python 3 as torandio2 is unmaintained.&lt;/li&gt;
      &lt;li&gt;Ported circus-web to sockjs-torando.&lt;/li&gt;
      &lt;li&gt;Found the tests don’t work.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;
</description>
        <pubDate>Mon, 21 Jul 2014 12:47:13 +1000</pubDate>
        <link>https://blog.mithis.net/archives/timvideos-us/1980-hdmi2usb-production-board-bring-up-snippets-prep-work</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/timvideos-us/1980-hdmi2usb-production-board-bring-up-snippets-prep-work</guid>
        
        
          
            <category>timvideos-us</category>
          
            <category>hdmi2usb</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Two weeks ago I decided that I was going to take a week of work and spend it full time working on bringing up the HDMI2USB Production board that I’m...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/timvideos-us/1980-hdmi2usb-production-board-bring-up-snippets-prep-work#comments</comments>
        
      </item>
    
      <item>
        <title>Connecting to a Fritz!Box under Linux using vpnc</title>
        <description>&lt;p&gt;I have two &lt;a href=&quot;http://fritzbox.com.au/product-fritz-wlan7390.html&quot;&gt;Fritz!Box 7390&lt;/a&gt; (one at my place and one at my parents primary residence) and one &lt;a href=&quot;http://fritzbox.com.au/product-fritz-wlan7270.html&quot;&gt;Fritz!Box 7270 devices&lt;/a&gt; (the house they are building). They are pretty reasonable “high end” ADSL routers and a cool feature is they integrated VPN support. I use this functionality to connect the three networks securely together (but that is not what this post is about). This VPN functionality can also be used to connect to your home network while not at home, but information on how to do this from Linux is very sparse (specially if you only want to use FOSS tools to do the connection), so here is how I did it.&lt;/p&gt;

&lt;h2 id=&quot;configuring-your-fritzbox&quot;&gt;Configuring your Fritz!Box&lt;/h2&gt;

&lt;p&gt;To set up your Fritz!Box you need a configuration file, there is no GUI available in the web interface to support create new VPN configurations. While a number of sites have pre-built .cfg files that look like they should work, my Fritz!Boxes only accept encrypted VPN configuration files (see end of post for more information) and no open source tool exists to encrypt them.&lt;/p&gt;

&lt;p&gt;I instead needed to use the FRITZ!Box VPN Connection tool (while it is a Windows program but runs fine under Wine) to create the configuration. It can be downloaded from the &lt;a href=&quot;http://webgw.avm.de/download/Download_en.jsp?partid=14657&quot;&gt;AVM website&lt;/a&gt; (This is different to the VPN client that AVM also provide). Annoyingly the tool doesn’t just read existing .cfg configuration files, it instead reads it’s own vpnadmin.cfg found in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;c:/users/your username/Application Data/AVM/FRITZ!VPN&lt;/code&gt; and then generates a .cfg file and encrypts it.&lt;/p&gt;

&lt;p&gt;Using the FRITZ!Box VPN Connection tool to create a configuration that is compatible with vpnc you must:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Select “Configure VPN for one User” type connection&lt;/li&gt;
  &lt;li&gt;On the “Select Device” screen, select “iPhone, iPod touch or iPad” option&lt;/li&gt;
  &lt;li&gt;On the “Enter the user’s email address” screen, despite the admin tool calling this field the user email, just enter a username. I recommend &lt;strong&gt;not&lt;/strong&gt; having any special characters like @ or . in it.&lt;/li&gt;
  &lt;li&gt;On the “Enter IP address of the User” screen, be careful about what IP address you use (the default should be okay).
    &lt;ul&gt;
      &lt;li&gt;Don’t use the same IP address that the computer uses when connected via wireless/wired. While it seems like a good idea, as the computer would have the same IP address even when remote, it &lt;strong&gt;does not work&lt;/strong&gt; and will mean the device is unable to access the internet when connected to wireless/wired.&lt;/li&gt;
      &lt;li&gt;The “Send all data over the VPN tunnel” option on this page does not seem to affect vpnc, it will always route all your data over the vpn connection. See later for how to fix this problem.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;On the “Key for the connection” screen enter a password. Copy down the shared secret key, you’ll want it when creating the vpnc config. I recommend also keeping the default shared secret key it generates unless your super paranoid about entropy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can check that you have done this correctly in two ways;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;The vpnadmin.cfg will have the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;iphone=1&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xauth_key=&quot;your password&quot;&lt;/code&gt; options. See below for a partial example;&lt;/p&gt;

    &lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
    &lt;pre&gt;
...
  user {
    nameoremail = &quot;xxxx&quot;;
    key = &quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;;
    ip = 192.168.179.201;
    internetaccess = 0;
    &lt;strong&gt;iphone = 1;
    xauth_key = &quot;xxxxx&quot;;&lt;/strong&gt;
  }
...
&lt;/pre&gt;
    &lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
    &lt;p&gt;&lt;/p&gt;
    &lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;If you export an unencrypted config file (remember this can’t be loaded onto the Fritz!Box – so make sure you also export an encrypted version!), the remoteid section will have a key field and not a fqdn field, use_xauth will be set to yes and an xauth section will exist. See below for a partial example;&lt;/p&gt;

    &lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
    &lt;pre&gt;
...
  keepalive_ip = 0.0.0.0;
  remoteid {
    &lt;strong&gt;key_id&lt;/strong&gt; = &quot;qnap&quot;;
  }
  mode = phase1_mode_aggressive;
  phase1ss = &quot;all/all/all&quot;;
  keytype = connkeytype_pre_shared;
  key = &quot;f3e0hcca19ca2a3gaafbI.{1dGe3q8f84&quot;;
  cert_do_server_auth = no;
  use_nat_t = yes;
  &lt;strong&gt;use_xauth = yes;
  xauth {
    valid = yes;
    username = &quot;qnap&quot;;
    passwd = &quot;qnappassword&quot;;
  }&lt;/strong&gt;
  use_cfgmode = yes;
...&lt;/pre&gt;
    &lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
    &lt;p&gt;&lt;/p&gt;
    &lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;configuring-vpnc-on-your-linux-box&quot;&gt;Configuring vpnc on your Linux box&lt;/h2&gt;

&lt;p&gt;The Fritz!Box needs both draft-ietf-ipsec-nat-t-ike-03 support and the client to adopt the server suggested lifetime (which for the Fritz!Box is 3600 seconds). These features where only added to vpnc recently, so make sure your vpnc is newer than subversion revision 511. Both the version in Debian Unstable and any Ubuntu newer than Precise (12.04) have vpnc 0.5.3r512, which is new enough version and you can just &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt-get install vpnc&lt;/code&gt;. For Fedora 17 x86 systems you can find RPMs at http://www.pabloendres.com/2013/02/27/vpnc-and-fritzbox/&lt;/p&gt;

&lt;p&gt;Create the vpnc config in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/vpnc/fritzbox.conf&lt;/code&gt; using the following as a template (replace the parts in bold/brackets):&lt;/p&gt;

&lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
&lt;pre&gt;
IPSec gateway &lt;strong&gt;ip address or DNS name of your FritzBox&lt;/strong&gt;

IKE DH Group dh2
Perfect Forward Secrecy nopfs

IPSec ID &lt;strong&gt;[username entered into the &quot;Enter the user&apos;s email address&quot; screen]&lt;/strong&gt;
# &quot;key&quot; from the Fritz!Box VPN configuration
IPSec secret &lt;strong&gt;[shared secret key from the &quot;Key for the connection&quot; screen]&lt;/strong&gt;

NAT Traversal Mode force-natt

Xauth username &lt;strong&gt;[username entered into the &quot;Enter the user&apos;s email address&quot; screen]&lt;/strong&gt;
Xauth password &lt;strong&gt;[password entered into the &quot;Key for the connection&quot; screen - Not the password use to encrypt the vpnc configuration!]&lt;/strong&gt;
&lt;/pre&gt;
&lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;

&lt;p&gt;As this file contains usernames and password, the config file should be owned by root and only readable by the owner.&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
sudo chown root /etc/vpnc/fritzbox.conf&lt;br /&gt;
sudo chmod 0600 /etc/vpnc/fritzbox.conf&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You should now be able to connect to your home internet using:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
sudo vpnc-connect fritzbox&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;When you are finished, use:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
sudo vpnc-disconnect fritzbox&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2 id=&quot;internet-access-while-using-vpnc&quot;&gt;Internet Access while using vpnc&lt;/h2&gt;

&lt;p&gt;When vpnc connects it will change your default route to go via the tunnel. This will send all your local internet traffic over the VPN connection. If you are setting up the VPN to secure your internet browsing while on a hostile network such as a public WiFi hotspot (such as at a coffee shop) this is what you want.&lt;/p&gt;

&lt;p&gt;However, if you just want to be able to access the hosts on your home network, you don’t want this as it will make your internet browsing extraordinarily slow.  These routes are set up by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/vpn/vpnc-script&lt;/code&gt; script, so you will need custom one. Normally this script is provided a lot of information when connecting to other VPN concentrators (such as a Cisco EasyVPN device) but when connecting to the Fritz!Box you only seem to get limited information.&lt;/p&gt;

&lt;p&gt;I created the following script in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/vpnc/fritzbox-script&lt;/code&gt;, marked it as executable (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chmod a+x /etc/vpnc/fritzbox-script&lt;/code&gt;) and then added “&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Script /etc/vpnc/fritzbox-script&lt;/code&gt;” to my &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/vpnc/fritzbox.conf&lt;/code&gt; file.&lt;/p&gt;

&lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
&lt;pre&gt;
#!/bin/sh

IPROUTE=/sbin/ip

case &quot;$reason&quot; in
  pre-init)
    /etc/vpnc/vpnc-script pre-init
    ;;
  connect)
    INTERNAL_IP4_PREFIX=$(echo $INTERNAL_IP4_ADDRESS | sed -e&apos;s/\.[0-9]\+$//&apos;)
    $IPROUTE link set dev &quot;$TUNDEV&quot; up mtu 1024
    $IPROUTE addr add &quot;$INTERNAL_IP4_ADDRESS/255.255.255.0&quot; peer &quot;$INTERNAL_IP4_ADDRESS&quot; dev &quot;$TUNDEV&quot;
    $IPROUTE route replace &quot;$INTERNAL_IP4_PREFIX.0/255.255.255.0&quot; dev &quot;$TUNDEV&quot;
    $IPROUTE route flush cache
    ;;
  disconnect)
    $IPROUTE link set dev &quot;$TUNDEV&quot; down
    ;;
  *)
    echo &quot;unknown reason &apos;$reason&apos;. Maybe vpnc-script is out of date&quot; 1&amp;gt;&amp;amp;2
    exit 1
    ;;
esac
exit 0
&lt;/pre&gt;
&lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;

&lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
&lt;blockquote&gt;

  &lt;h2 id=&quot;fritzbox-encrypted-vpn-configuration-files&quot;&gt;Fritz!Box encrypted VPN configuration files&lt;/h2&gt;

  &lt;p&gt;Fritz!Boxes will &lt;span style=&quot;color: #ff0000;&quot;&gt;only accept VPN configurations which are encrypted&lt;/span&gt;. Otherwise when try to import the file you will get the cryptic &quot;Error: Import of the VPN settings failed.&quot; as seen below;&lt;br /&gt;
&lt;img alt=&quot;Error: Import of the VPN settings failed.&quot; class=&quot;alignnone size-full wp-image-1835&quot; height=&quot;265&quot; sizes=&quot;(max-width: 745px) 100vw, 745px&quot; src=&quot;/assets/images/wp-content/uploads/2013/10/VPN-error.png&quot; srcset=&quot;/assets/images/wp-content/uploads/2013/10/VPN-error.png 745w&quot; width=&quot;745&quot; /&gt;&lt;/p&gt;

  &lt;p&gt;To create an encrypted file you must use the FRITZ!Box VPN Connection tool. Then when exporting, select &quot;Save VPN settings in a file under&quot; option, check the &quot;Encrypt VPN settings&quot; check box (the file type should change to .eff), and enter your chosen password twice.&lt;/p&gt;

  &lt;p&gt;&lt;img alt=&quot;Export VPN settings&quot; class=&quot;alignnone size-full wp-image-1836&quot; height=&quot;306&quot; sizes=&quot;(max-width: 442px) 100vw, 442px&quot; src=&quot;/assets/images/wp-content/uploads/2013/10/VPN-encrypt.png&quot; srcset=&quot;/assets/images/wp-content/uploads/2013/10/VPN-encrypt.png 442w&quot; width=&quot;442&quot; /&gt;&lt;/p&gt;

  &lt;!-- fidelity-allow: BLOCK_HTML pixel-fidelity-tolerance --&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Sun, 06 Oct 2013 23:44:04 +1000</pubDate>
        <link>https://blog.mithis.net/archives/ubuntu/1833-connecting-to-a-fritzbox-under-linux-using-vpnc</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/ubuntu/1833-connecting-to-a-fritzbox-under-linux-using-vpnc</guid>
        
        
          
            <category>ubuntu</category>
          
            <category>useful-bits</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>I have two Fritz!Box 7390 (one at my place and one at my parents primary residence) and one Fritz!Box 7270 devices (the house they are building). They are pretty reasonable...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/ubuntu/1833-connecting-to-a-fritzbox-under-linux-using-vpnc#comments</comments>
        
      </item>
    
      <item>
        <title>Lightning Timer website</title>
        <description>&lt;p&gt;When doing &lt;a href=&quot;http://en.wikipedia.org/wiki/Lightning_talk&quot;&gt;lightning talks&lt;/a&gt; it is very useful to have a timer so that people don’t over time. There use to be a very simple website called lightningtimer.net but it appears to have gone AWOL. I have set up a mirrored the code at &lt;a href=&quot;lightningtimer.cc&quot;&gt;lightningtimer.cc&lt;/a&gt; and &lt;a href=&quot;lightningtimer.info&quot;&gt;lightningtimer.info&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default it does 5 minutes, but if you can set the hash value to get different times;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://lightningtimer.cc#480&quot;&gt;http://lightningtimer.cc#480&lt;/a&gt; – 8 minutes&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://lightningtimer.cc#30&quot;&gt;http://lightningtimer.cc#30&lt;/a&gt; – 30 seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Code found at &lt;a href=&quot;https://github.com/simonw/lightningtimer.net&quot;&gt;https://github.com/simonw/lightningtimer.net&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 30 Aug 2013 19:04:10 +1000</pubDate>
        <link>https://blog.mithis.net/archives/useful-bits/1823-lightning-timer-website</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/useful-bits/1823-lightning-timer-website</guid>
        
        
          
            <category>useful-bits</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>When doing lightning talks it is very useful to have a timer so that people don’t over time. There use to be a very simple website called lightningtimer.net but it...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/useful-bits/1823-lightning-timer-website#comments</comments>
        
      </item>
    
      <item>
        <title>FastComplete, making bash completion fast on remote file systems</title>
        <description>&lt;p&gt;Here at Google we have quite a few remote file systems which contain various tools we use in our day-to-day work. As typing sucks we generally want the tools in our $PATH. When you try to tab complete Bash needs to &lt;a href=&quot;http://linux.die.net/man/2/stat&quot;&gt;stat&lt;/a&gt; a couple of thousand files and even on fast remote file systems this takes a drastically long time.&lt;/p&gt;

&lt;p&gt;I wrote FastComplete as a solution to this problem. The tool creates a local cache of links on your hard drive to everything in your $PATH. It uses a couple of tricks to make sure all the stats remain locally, while still allowing the remote file to change without needing to update the cache. Linux should also keep this information in memory disk cache making tab completion almost instant again. Yay!&lt;/p&gt;

&lt;p&gt;You can find FastComplete at &lt;a href=&quot;https://github.com/mithro/rcfiles/blob/master/bin/fastcomplete&quot;&gt;https://github.com/mithro/rcfiles/blob/master/bin/fastcomplete&lt;/a&gt; It is a stand alone python program which shouldn’t have any non-core dependencies. The usage documentation is as follows;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Fast complete creates a local disk cache of your path.&lt;br /&gt;
It’s specifically designed to make bash tab complete run much faster. The correct fix would be to add caching to bash, but it was to hard to do so.&lt;/p&gt;

  &lt;p&gt;To find out what path fastcomplete is currently using:&lt;/p&gt;

  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; ~tansell/bin/fastcomplete
&lt;span class=&quot;c&quot;&gt;# Found 3977 commands&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/home/tansell/bin: ... :/home/build/google3/googledata/validators:/home/build/google3/ads/db
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;

  &lt;p&gt;To get fastcomplete to rebuild it’s cache:&lt;/p&gt;

  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; ~tansell/bin/fastcomplete &lt;span class=&quot;nt&quot;&gt;--rebuild&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Using path of &apos;/home/tansell/bin: ... :/home/build/google3/googledata/validators:/home/build/google3/ads/db&apos;&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Cache /usr/local/google/users//tansell/tabcache/d7e5fb63454ae33b4a171b6437be904a did not exist! Rebuilding....&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Looking in: /home/tansell/bin (execv)&lt;/span&gt;
...
&lt;span class=&quot;c&quot;&gt;# Looking in: /usr/bin (symlink)&lt;/span&gt;
...
&lt;span class=&quot;c&quot;&gt;# Looking in: /home/build/google3/ads/db (execv)&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Found 3977 commands&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/local/google/users//tansell/tabcache/d7e5fb63454ae33b4a171b6437be904a
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;

  &lt;p&gt;To use fastcomplete all the time add the following as the *LAST* line in your ~/.bashrc file. Fastcomplete will echo some output to stderr so you can see what is happening.&lt;/p&gt;

  &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# Create a cache of the command&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;eval&lt;/span&gt; &lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;~tansell/bin/fastcomplete &lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Fri, 16 Dec 2011 14:05:46 +1000</pubDate>
        <link>https://blog.mithis.net/archives/useful-bits/407-fastcomplete</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/useful-bits/407-fastcomplete</guid>
        
        
          
            <category>useful-bits</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Here at Google we have quite a few remote file systems which contain various tools we use in our day-to-day work. As typing sucks we generally want the tools in...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/useful-bits/407-fastcomplete#comments</comments>
        
      </item>
    
      <item>
        <title>Can haz kernel patches?</title>
        <description>&lt;p&gt;As it’s only a couple of weeks till another&lt;a href=&quot;http://www.lca2010.org.nz/&quot;&gt; Linux.conf.au&lt;/a&gt; is underway, I thought I better post this draft from the last one! This year LCA is in &lt;a href=&quot;http://maps.google.com/maps?q=Wellington,+New+Zealand&amp;amp;btnG=Search+Maps&quot;&gt;Wellington, New Zealand&lt;/a&gt;, sadly I didn’t get my act together enough to make a proper holiday of it. I’m definitely looking forward to catching up with all the cool hackers at the conference.&lt;/p&gt;

&lt;p&gt;One of the best talks I went to &lt;a href=&quot;http://linux.conf.au&quot;&gt;Linux.conf.au&lt;/a&gt; last year was the &lt;a href=&quot;http://www.ksplice.com/&quot;&gt;Ksplice&lt;/a&gt; talk. This is a wonderful tool which allows people to develop “hot patches” so that you never need to reboot again. The developers have done some very cool work which means for 88% of patches a hot fix can be generated automatically. The presenter was a really great speaker too, during the talk he explains some advanced concepts (like hot to fix-up memory structures) I was able to easily understand it all. I can’t watch until I &lt;strong&gt;never&lt;/strong&gt; have to reboot my Linux machines again!&lt;/p&gt;

&lt;p&gt;I also attended &lt;a href=&quot;http://ozlabs.org/~rusty/&quot;&gt;Rusty&lt;/a&gt;‘s tutorial on hacking &lt;a href=&quot;http://http://lguest.ozlabs.org/&quot;&gt;lguest&lt;/a&gt;. Two years ago I submitted a &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.28.y.git;a=commitdiff;h=b488f22d70f1c2451618b9991b9665d2c6b31e2b&quot;&gt;very important patch&lt;/a&gt; to lguest which is now included in the kernel. This year I didn’t get as far as I had wanted mostly because I had not gotten enough sleep the night before. I did however submit one patch which was accepted. I guess that makes me a kernel hacker :).&lt;/p&gt;

&lt;p&gt;Sadly, Rusty won’t be running another lguest tutorial this year, so it’s unlikely I’ll submit a third patch.&lt;/p&gt;
</description>
        <pubDate>Sun, 03 Jan 2010 13:05:37 +1000</pubDate>
        <link>https://blog.mithis.net/archives/lca/96-lguest-and-ksplice</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/lca/96-lguest-and-ksplice</guid>
        
        
          
            <category>lca</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>As it’s only a couple of weeks till another Linux.conf.au is underway, I thought I better post this draft from the last one! This year LCA is in Wellington, New...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/lca/96-lguest-and-ksplice#comments</comments>
        
      </item>
    
      <item>
        <title>Starhunter, Firefly’s little known older cousin.</title>
        <description>&lt;p style=&quot;float: right; padding: 10px; margin: 0;&quot;&gt;&lt;img src=&quot;/assets/images/wp-content/uploads/2009/05/screenshot.png&quot; alt=&quot;Tulip - The ship from Starhunter&quot; title=&quot;Tulip - The ship from Starhunter&quot; width=&quot;300&quot; height=&quot;219&quot; class=&quot;aligncenter size-full wp-image-103&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I have recently been watching and really enjoying a little known series called &lt;a href=&quot;http://en.wikipedia.org/wiki/Starhunter&quot;&gt;Starhunter&lt;/a&gt;. At first I thought it was an enjoyable rip off of &lt;a href=&quot;http://en.wikipedia.org/wiki/Firefly_(TV_series)&quot;&gt;Firefly&lt;/a&gt;, so i was surprised to find out that it was made first.&lt;/p&gt;

&lt;p&gt;It has so many of the same elements, the quirky ship mechanic, the captain who doesn’t play by the rules with a darker background, raiders, etc. I have no doubt that &lt;a href=&quot;http://www.imdb.com/name/nm0923736/&quot;&gt;Joss Whedon&lt;/a&gt; stole many the ideas for Firefly from this series and in the process improving on them in many ways. Sadly, like Firefly this series was canceled way before it reached a wide audience.&lt;/p&gt;

&lt;p&gt;You can watch the “second season” (Starhunter 2300), which is closer to a spin off  rather then a second season (most of the characters have changed), on &lt;a href=&quot;http://www.youtube.com/show?p=I9idlNtiYTs&quot;&gt;Youtube&lt;/a&gt;. I would highly recommend people who enjoyed Firefly check it out. Since its free, what have you got to loose?&lt;/p&gt;

&lt;p&gt;While the first season is available on Joost, it is apparently horrible mangled. Sadly, the DVD’s are not available here in Australia so I’m going I’m going to have to buy them from &lt;a href=&quot;http://www.amazon.com/Starhunter/e/B001CG5BH8/ref=ntt_tv_dp_pel&quot;&gt;Amazon&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 26 May 2009 00:05:06 +1000</pubDate>
        <link>https://blog.mithis.net/archives/sci-fi/102-starhunter-fireflys-little-known-older-cousin</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/sci-fi/102-starhunter-fireflys-little-known-older-cousin</guid>
        
        
          
            <category>sci-fi</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Recovered from Wayback Machine archive</description>
        
        
        
          <comments>https://blog.mithis.net/archives/sci-fi/102-starhunter-fireflys-little-known-older-cousin#comments</comments>
        
      </item>
    
      <item>
        <title>Programmer art, it’s deadly!</title>
        <description>&lt;p&gt;So one of the other things I worked on at &lt;a href=&quot;http://linux.conf.au/&quot;&gt;Linux.conf.au&lt;/a&gt; was a project &lt;a href=&quot;http://shenki.net&quot;&gt;Joel Stanley&lt;/a&gt; started, “Open Velociraptor Per Child, the Game!”.&lt;/p&gt;

&lt;p&gt;The game comes out of the &lt;a href=&quot;http://velociraptorz.org/&quot;&gt;Open Velociraptor Per Child&lt;/a&gt; project’s ideas. The OVPC project aims to give every child in the world their very own Velociraptor. The game simulates what would happen if this project was ever to achieve it’s wonderful but lofty goal.&lt;/p&gt;

&lt;p&gt;My main contribution was adding support for (&lt;em&gt;very bad&lt;/em&gt;) collision detection, scoring and difficult levels. However, what I spent most of my time was spent making bad programmer art, that of the particularly gruesome child death animation. I like to think it was this artwork that meant we won top spot at the &lt;a href=&quot;http://games.sericyb.com.au/&quot;&gt;Gaming Miniconf&lt;/a&gt; competition, beating the “Shave Bdale” game.&lt;/p&gt;

&lt;p&gt;You can download the game from the &lt;a href=&quot;http://git.sugarlabs.org/projects/one-velociraptor-per-child&quot;&gt;git repository&lt;/a&gt;. Have fun!&lt;/p&gt;
</description>
        <pubDate>Wed, 28 Jan 2009 18:33:02 +1000</pubDate>
        <link>https://blog.mithis.net/archives/gaming-miniconf/97-programmer-art-its-deadly</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/gaming-miniconf/97-programmer-art-its-deadly</guid>
        
        
          
            <category>gaming-miniconf</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>So one of the other things I worked on at Linux.conf.au was a project Joel Stanley started, “Open Velociraptor Per Child, the Game!”. The game comes out of the Open...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/gaming-miniconf/97-programmer-art-its-deadly#comments</comments>
        
      </item>
    
      <item>
        <title>Compiling for Windows using Cygwin on Linux….</title>
        <description>&lt;p&gt;So for the past week while I have been at the &lt;a href=&quot;http://linux.conf.au/&quot;&gt;best conference&lt;/a&gt; in the world I have been trying to compile &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=summary&quot;&gt;tpserver-cpp&lt;/a&gt; for Windows. I had done the hard work and gotten it to compile (as documented &lt;a href=&quot;http://blog.mithis.net/archives/tp/10-compiling-tpserver-cpp-under-windows&quot;&gt;here&lt;/a&gt;, &lt;a href=&quot;http://blog.mithis.net/archives/tp/12-compiling-tpserver-cpp-under-windows-part-2&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://blog.mithis.net/archives/tp/13-compiling-tpserver-cpp-under-windows-part-3&quot;&gt;here&lt;/a&gt;) on Windows previously. However, as I was in Hobart at a Linux conference I didn’t really have access to Windows computer. That was not going to stop me, so I attempted to &lt;a href=&quot;http://en.wikipedia.org/wiki/Cross-compiling&quot;&gt;cross compile&lt;/a&gt; the binaries under Linux. This has a number of advantages as it would mean when &lt;a href=&quot;http://jms.id.au/wiki&quot;&gt;someone&lt;/a&gt; finally gets around to creating a autobuilder, we can produce Windows binaries too.&lt;/p&gt;

&lt;p&gt;Ubuntu provides the &lt;a href=&quot;http://www.mingw.org/&quot;&gt;mingw32 compilers&lt;/a&gt; in the &lt;a href=&quot;http://packages.ubuntu.com/search?keywords=mingw32&amp;amp;searchon=names&amp;amp;section=all&quot;&gt;repository&lt;/a&gt; so I didn’t think it would be all that hard to get working. The problem is that tpserver-cpp does not have a “native” Windows support but &lt;a href=&quot;http://www.cygwin.com/&quot;&gt;cygwin&lt;/a&gt; comes to the rescue and provides a compatibly layer. Using cygwin turned out to not be as simple as using mingw32 compiler with the cygwin headers.&lt;/p&gt;

&lt;p&gt;I ended up using &lt;a href=&quot;http://www.kegel.com/crosstool/&quot;&gt;crosstool&lt;/a&gt; to build my own cygwin compiler. I battled for a long while with the fact that Ubuntu now enables “fortify source” by default. This breaks many versions of things like binutils and gcc (which often do &lt;em&gt;naughty&lt;/em&gt; things which fortify source does not like). After I figured out how to disable it, I was still was only able to get an ancient version of gcc to compile (3.3.6) which meant I had to fix a lot of problems in the tpserver-cpp code. I guess someone had to do it eventually, but it was annoying that I was forced too.&lt;/p&gt;

&lt;p&gt;I then manually downloaded a bunch of &lt;a href=&quot;http://mirror.aarnet.edu.au/pub/cygwin/release/&quot;&gt;cygwin packages&lt;/a&gt; to build a tree for the dependencies (such as boost and guile). This was much faster then trying to compile them on my own.  Finally, I was able to build tperver-cpp and create a Windows binary! I can confirm it runs fine under Wine and am now getting friends who are still shacked to Windows to test it there.&lt;/p&gt;

&lt;p&gt;It sounds much simpler now, but it took me over a week of work to boil it down to these steps. It was like a constant game of wack-a-mole, once I had solved one problem another popped up.&lt;/p&gt;

&lt;p&gt;So what now in this area? I want to get a recent version of the compiler working and preferably build all the dependencies ourselves (rather then rely on the cygwin compiled versions). I would ultimately like to see the cygwin compilers being packaged with Ubuntu/Debian in the same way that the mingw32 compilers are. I don’t know if any of that is likely to happen however as I never seem to have enought time. For now I have uploaded a copy of &lt;a href=&quot;http://blog.mithis.net/~tim/crosstool-cygwin-gcc336.tar.bz2&quot;&gt;my cross compiler&lt;/a&gt; (It needs to be extracted so it is found in /opt/crosstool).&lt;/p&gt;

&lt;p&gt;I hope this helps someone!&lt;/p&gt;
</description>
        <pubDate>Tue, 27 Jan 2009 16:22:22 +1000</pubDate>
        <link>https://blog.mithis.net/archives/tp/95-xcompiling-cygwin-on-linux-for-windows</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/tp/95-xcompiling-cygwin-on-linux-for-windows</guid>
        
        
          
            <category>lca</category>
          
            <category>tp</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>Recovered from Wayback Machine archive</description>
        
        
        
          <comments>https://blog.mithis.net/archives/tp/95-xcompiling-cygwin-on-linux-for-windows#comments</comments>
        
      </item>
    
      <item>
        <title>OSDC &amp; orbital death, better late then never…</title>
        <description>&lt;p&gt;So last year at the end of November I spoke at OSDC. I had been meaning to blog about the conference but never gotten around to doing so. The conference was great, but like previous OSDC’s I came down with something. Sadly, this meant that missed &lt;a href=&quot;http://en.wikipedia.org/wiki/Andrew_Tridgell&quot;&gt;Andrew Tridgell’s&lt;/a&gt; talk about the &lt;a href=&quot;http://people.samba.org/people/2008/10/22#a-year-since-microsofts-appeal-failed&quot;&gt;EU-Microsoft agreement&lt;/a&gt;. Joel, who had been camped out in my lounge room for the week, said it was really worth listening too. I really wish OSDC recorded all the talks like Linux.conf.au does.&lt;/p&gt;

&lt;p&gt;As part of speaking at the conference I had to produce a paper. This paper puts into writing a lot of what I have &lt;a href=&quot;http://blog.mithis.net/archives/games/82-techtalk-gamingforfreedom&quot;&gt;been talking about&lt;/a&gt;. I wasn’t going to post it, but after getting a email out of the blue about the topic, I’ve decided to &lt;a href=&quot;/assets/images/wp-content/uploads/2009/01/osdc-paper.pdf&quot;&gt;put a copy here on my blog&lt;/a&gt;. I might as well also upload the &lt;a href=&quot;/assets/images/wp-content/uploads/2009/01/osdc-presentation.pdf&quot;&gt;presentation I gave&lt;/a&gt;, but it won’t be very interesting by itself. Both are released under a CC-BY-SA.&lt;/p&gt;

&lt;p&gt;If there is one thing that any budding game developer (open source or otherwise) should take away from this talk, it is the following:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;When a person is looking for normal software, &lt;span style=&quot;color: #ff0000;&quot;&gt;they have an issue to solve.&lt;/span&gt;&lt;br /&gt;
When looking for computer games, &lt;span style=&quot;color: #ff0000;&quot;&gt;they are looking to be entertained.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This fundamental difference in mindset should drive every aspect of your game, website and release process.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Edit: How could I forget? A big thanks goes out to &lt;a href=&quot;http://www.hawthornlandings.org/&quot;&gt;Leslie Hawthorn&lt;/a&gt; who helped proof read the paper and making it much easier to read!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Mon, 26 Jan 2009 14:43:32 +1000</pubDate>
        <link>https://blog.mithis.net/archives/games/99-osdc-orbital-death-better-late-then-never</link>
        <guid isPermaLink="true">https://blog.mithis.net/archives/games/99-osdc-orbital-death-better-late-then-never</guid>
        
        
          
            <category>games</category>
          
        
        
        
          <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mithro</dc:creator>
        
        
        
          <description>So last year at the end of November I spoke at OSDC. I had been meaning to blog about the conference but never gotten around to doing so. The conference...</description>
        
        
        
          <comments>https://blog.mithis.net/archives/games/99-osdc-orbital-death-better-late-then-never#comments</comments>
        
      </item>
    
  </channel>
</rss>