<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Android on Insignificant Bits</title>
    <link>https://bobcopeland.com/blog/tags/android/</link>
    <description>Recent content in Android on Insignificant Bits</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Wed, 11 Jun 2014 13:33:51 +0000</lastBuildDate>
    <atom:link href="https://bobcopeland.com/blog/tags/android/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Tablet guts</title>
      <link>https://bobcopeland.com/blog/2014/06/tablet-guts/</link>
      <pubDate>Wed, 11 Jun 2014 13:33:51 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2067</guid> 
      <description>&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/bluesterror/14211434628&#34; title=&#34;Tablet guts by bluesterror, on Flickr&#34;&gt;&lt;img alt=&#34;Tablet guts&#34; loading=&#34;lazy&#34; src=&#34;https://farm4.staticflickr.com/3908/14211434628_9eb41c2698_m.jpg&#34;&gt;&lt;/a&gt; In case you want to know what the inside of a Samsung Galaxy Tab 3.0 looks like, I propose the following experiment: unplug one, and let it sit unused and un-powered for two months. You will then find it in the state where disconnecting and reconnecting the battery is required to get it to charge again. I am not making this up. Oh, and opening it is pretty tricky even with the proper plastic tools to do so. Since I have two of them, that&amp;rsquo;s how I lost thirty minutes of my life on Saturday.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Phone bugs</title>
      <link>https://bobcopeland.com/blog/2014/03/phone-bugs/</link>
      <pubDate>Thu, 20 Mar 2014 13:36:43 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2040</guid> 
      <description>&lt;p&gt;If you want to experience what it is like to be the first person to ever do something, might I suggest turning on all the debug knobs on an Android vendor kernel? Some speculative fixes &lt;a href=&#34;https://github.com/bcopeland/android_kernel_sony_apq8064&#34;&gt;over here&lt;/a&gt;, but there is still at least one other RCU bug on boot, and this use-after-free in the usb controller driver:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.520080] msm_hsic_host msm_hsic_host: remove, state 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.525329] usb usb1: USB disconnect, device number 1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.529602] usb 1-1: USB disconnect, device number 2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.637023] msm_hsic_host msm_hsic_host: USB bus 1 deregistered
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.668945] Unable to handle kernel paging request at virtual address aaaaaae6
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.675201] pgd = c0004000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.678497] [aaaaaae6] *pgd=00000000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.681762] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.686737] Modules linked in: wcn36xx_msm(O) wcn36xx(O) mac80211(O) cfg80211(O) compat(O)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.694976] CPU: 1    Tainted: G        W  O  (3.4.0-g4a73a1d-00005-g311eaee-dirty #2)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.702972] PC is at __gpio_get_value+0x28/0x1cc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.707489] LR is at do_restart+0x24/0xd8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.711486] pc : []    lr : []    psr: 60000013
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.711486] sp : ebcd9ed8  ip : c032a858  fp : ebcd9ef4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.722930] r10: 00000000  r9 : c04dd67c  r8 : 00000000
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.728210] r7 : c4d81f00  r6 : 6b6b6b6b  r5 : c10099cc  r4 : aaaaaaaa
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.734680] r3 : 09090904  r2 : c1672f80  r1 : 00000010  r0 : 6b6b6b6b
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                                                 ^^^^^^^^ whoops
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.741241] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[   34.748504] Control: 10c5787d  Table: acfb006a  DAC: 00000015
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I guess I should try to find out where to report bugs for these (predictably) not upstream drivers, but that seems like a total pain.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android rebuilt</title>
      <link>https://bobcopeland.com/blog/2010/02/android-rebuilt/</link>
      <pubDate>Sat, 13 Feb 2010 15:27:15 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1429</guid> 
      <description>&lt;p&gt;While stuck inside for days due to snow, I once again downloaded the Android source trees from the repos. I plan to update my &lt;a href=&#34;https://bobcopeland.com/blog/android_wifi.html&#34;&gt;Android wifi page&lt;/a&gt; with better, step-by-step instructions to go from nothing to a working set of wireless utilities on the phone. In the meantime, I&amp;rsquo;ve re-familiarized myself with the current Android build environment (for various values of current &amp;ndash; this uses donut since as far as I know, eclair doesn&amp;rsquo;t have a definition for the Dream (G1/ADP1) phone yet).&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl1251 performance</title>
      <link>https://bobcopeland.com/blog/2009/08/wl1251-performance/</link>
      <pubDate>Tue, 18 Aug 2009 03:18:46 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1383</guid> 
      <description>&lt;p&gt;After fixing the remaining ifup bug (as expected, it was easy), I have some initial numbers on the new kernel driver versus the stock vendor driver on the G1:
driveravg ping msnetperf mbit/stiwlan65.2317.53wl12518.5653.82
So, better on latency, worse on throughput. wl1251 is also quite a lot larger when taking all of cfg80211/mac80211 into account, though I didn&amp;rsquo;t spend any time trying to tweak the size in the build. Well, at least the code doesn&amp;rsquo;t make you want to poke your own eyes out.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl1251_sdio merged</title>
      <link>https://bobcopeland.com/blog/2009/08/wl1251_sdio-merged/</link>
      <pubDate>Tue, 11 Aug 2009 03:27:23 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1378</guid> 
      <description>&lt;p&gt;The SDIO patches for TI 1251 (Android wifi chipset) are finally merged into wireless-testing, so they should be a lot easier to hack on now. That means the driver should make it into 2.6.32, though at a rather experimental stage. I did fix some crashes on ifup/ifdown since last posting, but there&amp;rsquo;s always more work to do. Current todo list includes better behavior for non-polling controllers (make the irq have a top-half), tracking down a device hang on reinitialization, pushing the msm_wifi.ko module, and on and on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Now bionic</title>
      <link>https://bobcopeland.com/blog/2009/07/now-bionic/</link>
      <pubDate>Sun, 19 Jul 2009 19:12:18 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1363</guid> 
      <description>&lt;p&gt;Kalle has &lt;a href=&#34;http://marc.info/?l=linux-wireless&amp;amp;m=124785700109009&amp;amp;w=2&#34;&gt;posted&lt;/a&gt; a rebased version of my SDIO patches on top of the latest wireless-testing. I&amp;rsquo;ve done a little bit of testing with it &amp;ndash; the driver starts up and loads fine, but once the interface goes down, it&amp;rsquo;s busted:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;6&amp;gt;[  980.884302] wl1251_sdio mmc0:0001:1: firmware: requesting wl1251-fw.bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;6&amp;gt;[  981.036448] wl1251_sdio mmc0:0001:1: firmware: requesting wl1251-nvs.bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[  981.045449] init: untracked pid 354 exited
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[  981.074408] init: untracked pid 355 exited
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  981.331853] wl1251: 151 tx blocks at 0x3b788, 35 rx blocks at 0x3a780
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  981.339300] wl1251: firmware booted (Rev 4.0.4.3.5)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  984.702740] wlan0: direct probe to AP 00:1a:70:da:a9:cd (try 1)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  984.901621] wlan0: direct probe to AP 00:1a:70:da:a9:cd (try 2)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  985.101583] wlan0: direct probe to AP 00:1a:70:da:a9:cd (try 3)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[  985.301617] wlan0: direct probe to AP 00:1a:70:da:a9:cd timed out
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;7&amp;gt;[ 1024.802837] wl1251: down
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1044.856640] init: untracked pid 358 exited
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1050.033886] mmc0: Data timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1050.037701] wl1251: ERROR sdio write failed (-110)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1051.045674] mmc0: Data timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1051.049519] wl1251: ERROR sdio write failed (-110)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1052.057673] mmc0: Data timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;3&amp;gt;[ 1052.061518] wl1251: ERROR sdio write failed (-110)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Exploring this further turned into a rather long yak shaving session because I wanted to get iw on the phone to do more manual tests, and I wanted to link it dynamically against bionic, the Android&amp;rsquo;s fork of a BSD libc. Here were a few interesting discoveries found along the way:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wifi UI Part 0</title>
      <link>https://bobcopeland.com/blog/2009/07/wifi-ui-part-0/</link>
      <pubDate>Mon, 13 Jul 2009 04:13:13 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1359</guid> 
      <description>&lt;p&gt;Work on the Android wireless driver is stalled for now as kvalo is rebasing the patches. I believe the next step will be to take the platform code, which I have temporarily built into a module called msm_wifiÂ¸ and turn it into a platform rfkill device. Or something like that &amp;ndash; this is what he and I came up with at the wireless summit. Then there&amp;rsquo;s an annoying stack trace because free_irq() happens in common code, but sdio irqs are somewhat different so that needs to be pushed down into the interface layer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl12xx howto</title>
      <link>https://bobcopeland.com/blog/2009/05/wl12xx-howto/</link>
      <pubDate>Sun, 31 May 2009 00:03:55 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1325</guid> 
      <description>&lt;p&gt;So, wl12xx definitely works including transmission, but I still haven&amp;rsquo;t fixed the rough edges in the driver. However, I did bother to make a semi-permanent &lt;a href=&#34;https://bobcopeland.com/blog/android_wifi.html&#34;&gt;writeup&lt;/a&gt; on how to build and use wl12xx on the G1 as it currently stands. I hope to clean up the warts and submit the patchset next week. Meanwhile, I have a lot of ath5k bugs to work on. Enough for today though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>First scan</title>
      <link>https://bobcopeland.com/blog/2009/05/first-scan/</link>
      <pubDate>Thu, 21 May 2009 19:36:00 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1318</guid> 
      <description>&lt;p&gt;Success! Scanning with wl12xx on my ADP1 works. I&amp;rsquo;ll post more later but here&amp;rsquo;s a teaser. That&amp;rsquo;s a real SSID, however apt.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# ./iwlist wlan0 scan
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wlan0     Scan completed :
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          Cell 01 - Address: 00:0F:B5:63:30:4E
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Channel:11
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Frequency:2.462 GHz (Channel 11)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Quality=14/70  Signal level=-96 dBm
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Encryption key:on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    ESSID:&amp;#34;SERENDIPITY&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                              24 Mb/s; 36 Mb/s; 54 Mb/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Mode:Master
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Extra:tsf=000001dec907e41c
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    Extra: Last beacon: 160ms ago
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    (Unknown Wireless Token 0x8C05)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>wl12xx update</title>
      <link>https://bobcopeland.com/blog/2009/05/wl12xx-update/</link>
      <pubDate>Sat, 16 May 2009 21:42:54 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1315</guid> 
      <description>&lt;p&gt;I won&amp;rsquo;t claim success until I actually transfer data, but so far, it looks like wl12xx SDIO support is baked:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.247063&lt;/span&gt;] cfg80211: Using &lt;span style=&#34;color:#66d9ef&#34;&gt;static&lt;/span&gt; regulatory domain info
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.253472&lt;/span&gt;] cfg80211: Regulatory domain: US
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.262810&lt;/span&gt;] 	(start_freq &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; end_freq &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; bandwidth), (max_antenna_gain, max_eirp)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.271568&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;2402000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2472000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2700&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.279472&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5170000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5190000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.287254&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5190000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5210000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.294975&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5210000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5230000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.302482&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5230000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5330000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;2300&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.310264&lt;/span&gt;] 	(&lt;span style=&#34;color:#ae81ff&#34;&gt;5735000&lt;/span&gt; KHz &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5835000&lt;/span&gt; KHz &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;@&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;40000&lt;/span&gt; KHz), (&lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; mBi, &lt;span style=&#34;color:#ae81ff&#34;&gt;3000&lt;/span&gt; mBm)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;111.317894&lt;/span&gt;] cfg80211: Calling CRDA &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; country: US
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.684807&lt;/span&gt;] lib80211: common routines &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; IEEE802&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;11&lt;/span&gt; drivers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.690972&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;NULL&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.744713&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;TKIP&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.787467&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;WEP&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;112.845267&lt;/span&gt;] lib80211_crypt: registered algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;CCMP&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.251671&lt;/span&gt;] wl12xx: registering driver
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.256462&lt;/span&gt;] wifi_probe
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.259208&lt;/span&gt;] trout_wifi_power: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.569452&lt;/span&gt;] trout_wifi_reset: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.623681&lt;/span&gt;] trout_wifi_set_carddetect: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.628290&lt;/span&gt;] mmc0: card_present &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.631921&lt;/span&gt;] mmc0: Slot status change detected (&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.653283&lt;/span&gt;] mmc0: Command timeout
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.664788&lt;/span&gt;] mmc0: card claims to support voltages below the defined range&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; These will be ignored&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.678429&lt;/span&gt;] mmc0: SDIO card claims to support the incompletely defined &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;low voltage range&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; This will be ignored&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.692773&lt;/span&gt;] mmc0: new SDIO card at address &lt;span style=&#34;color:#ae81ff&#34;&gt;0001&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.702813&lt;/span&gt;] wl12xx: &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; probe
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.728844&lt;/span&gt;] phy0: Selected rate control algorithm &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;minstrel&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.738915&lt;/span&gt;] wl12xx: loaded
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  &lt;span style=&#34;color:#ae81ff&#34;&gt;113.743919&lt;/span&gt;] wl12xx: initialized
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Unfortunately, I can&amp;rsquo;t really test it yet because the wpa_supplicant already on the phone doesn&amp;rsquo;t support -Dwext or -Dnl80211, and there are no wireless-tools. So I need to cross-compile those before attempting to associate. In the meantime, here&amp;rsquo;s &lt;a href=&#34;https://bobcopeland.com/blog/kernel/wl/20090516/wl12xx_sdio_2.patch&#34;&gt;a very rough patch&lt;/a&gt; that implements the goods from wireless-testing wl12xx. I need to work on read() and write() - right now they are a copy of what is in the google driver because it appears the host driver has issues with RW_EXTENDED. I don&amp;rsquo;t believe the readb/writeb fallbacks should be strictly necessary. Ditto with the platform code, that needs a slightly better solution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wl12xx merged</title>
      <link>https://bobcopeland.com/blog/2009/04/wl12xx-merged/</link>
      <pubDate>Thu, 30 Apr 2009 22:25:27 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1299</guid> 
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit 00d8979d598d5461a06d800c779f15e03888d9d8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Author: Kalle Valo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Date:   Wed Apr 29 23:33:31 2009 +0300
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wl12xx: add driver
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wl12xx is a driver for TI wl1251 802.11 chipset designed for embedded
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    devices, supporting both SDIO and SPI busses. Currently the driver
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    supports only SPI. Adding support 1253 (the 5 GHz version) should be
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    relatively easy. More information here:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?contentId=4711
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (Collapsed original sequence of pre-merge patches into single commit for
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    initial merge. -- JWL)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Signed-off-by: Kalle Valo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Signed-off-by: Bob Copeland
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Signed-off-by: John W. Linville
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hooray, wl12xx is now in wireless-testing! As the commit log states, SDIO support isn&amp;rsquo;t there yet, because I haven&amp;rsquo;t written it yet. Well, I wrote some of it, but nothing worth even compile-testing yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Closer</title>
      <link>https://bobcopeland.com/blog/2009/04/closer/</link>
      <pubDate>Sun, 19 Apr 2009 16:12:19 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1293</guid> 
      <description>&lt;p&gt;I was in fact wrong that my self-compiled android kernels weren&amp;rsquo;t booting &amp;ndash; they were. But they do fail somewhere in init:. Unfortunately, when you boot the phone, you don&amp;rsquo;t have any idea why it fails because there&amp;rsquo;s no console by default. It would&amp;rsquo;ve been a lot easier to see this if I had a serial cable, but I did finally remember that I could use fbcon with the smallest font and CONFIG_PRINTK_DELAY to see the messages scroll by. And so now I see the problem:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emulator</title>
      <link>https://bobcopeland.com/blog/2009/04/emulator/</link>
      <pubDate>Thu, 02 Apr 2009 03:01:59 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1281</guid> 
      <description>&lt;p&gt;The Android source code includes at least two ARM sub-architectures in their kernel tree. The one actually used on the G1 hardware is derived from the Qualcomm MSM machine type, at least part of which is in the mainline. Then there is &amp;ldquo;goldfish,&amp;rdquo; which appears to be just a pseudo machine used only for the emulator. While I haven&amp;rsquo;t had a lot of success with the MSM stuff booting on the phone so far, building the emulator kernel is not too hard once you know where to look:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upstream Last</title>
      <link>https://bobcopeland.com/blog/2009/03/upstream-last/</link>
      <pubDate>Tue, 31 Mar 2009 14:28:08 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1274</guid> 
      <description>&lt;p&gt;Building a booting kernel for Android using their own code still eludes me. I guess it would help if I knew anything at all about the ARM platform, as I have no idea what I am doing. Still, the code dump fails the &amp;ldquo;anyone should be able to build it&amp;rdquo; test rather strongly, judging from posts on the android mailing lists.&lt;/p&gt;
&lt;p&gt;Build problems aside, the more egregious failure of the Android open source project is the lack of the &amp;ldquo;upstream first&amp;rdquo; mentality. Most Linux software providers follow this strategy to a large extent, which is simply: any patch that goes in my distribution should go to the mainline kernel first. The benefits are obvious: no need to maintain a fork forever, and everyone gets the goods as soon as possible. Even if the patch only serves the developer&amp;rsquo;s own interests, upstreaming it often has the benefit of vetting the interfaces and producing more universal APIs (the wakelocks discussion that followed the code dump is an example of this done backwards).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fit to be TIed</title>
      <link>https://bobcopeland.com/blog/2009/03/fit-to-be-tied/</link>
      <pubDate>Sun, 22 Mar 2009 15:55:31 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=1228</guid> 
      <description>&lt;p&gt;The Android G1 phone uses the TI 1251 for Wifi.Â Â  This is pretty useful for when you need an internet connection for the laptop and there are no alternatives: you can bridge the wifi and the 3G connection and then connect to the wifi device using ad-hoc mode.Â  However, I normally keep the wireless off because it sucks down battery like mad.&lt;/p&gt;
&lt;p&gt;But Kalle Valo from Nokia is working on a driver for the chip called wl12xx, and he is putting a lot of effort into making sure it uses power conservatively (presumably some future version of the Nokia internet tablets will be using this device).Â  This driver is SPI, whereas the G1 uses the same chip in SDIO mode.Â  So I started writing the SDIO port for the driver &amp;ndash; hopefully it will be ready when wl12xx is included in mainline.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
