<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8116763720493817797</id><updated>2012-01-20T10:58:37.171-08:00</updated><category term='QuickCam'/><category term='ubuntu 8.10'/><category term='wireless bridge'/><category term='NETGEAR'/><category term='dd-wrt'/><category term='7.10'/><category term='wakeonlan'/><category term='etherwake'/><category term='QuickCam Connect'/><category term='buildroot'/><category term='cups'/><category term='VPN'/><category term='vncviewer'/><category term='Logitech'/><category term='ether-wake'/><category term='printer'/><category term='wnr 2000 v2'/><category term='windows'/><category term='toshiba'/><category term='FreeNX'/><category term='wakelan'/><category term='gumstix'/><category term='inted'/><category term='laptop'/><category term='wastage'/><category term='linux'/><category term='driver'/><category term='gspca'/><category term='router'/><category term='photo editing'/><category term='magic packet'/><category term='winblows'/><category term='wake on lan'/><category term='photoshop'/><category term='administrator'/><category term='brother'/><category term='client bridge'/><category term='vnc-viewer'/><category term='red eye'/><category term='vncserver'/><category term='xstartup'/><category term='verdex'/><category term='vnc'/><category term='WOL'/><category term='X'/><category term='blue-screen'/><category term='Xvnc'/><category term='linsux'/><category term='8.04 lts'/><category term='Real vnc'/><category term='mfc-210c'/><category term='core2 duo'/><category term='Vastage'/><category term='wireless'/><category term='Wasteaa'/><category term='wake-on-lan'/><category term='trackpad'/><category term='BSOD'/><category term='ubuntu'/><category term='m205'/><category term='E2500'/><category term='satellite'/><category term='xinetd'/><category term='vista'/><title type='text'>I think, therefore, I forget...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-8563718477707280019</id><published>2012-01-19T00:02:00.000-08:00</published><updated>2012-01-19T00:11:04.908-08:00</updated><title type='text'>X11 middle button click under MacOS</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-mbZy6KWDd1E/TxfPinm1g5I/AAAAAAAAAJQ/c5TXKrUKIVk/s1600/x11-preferences-3-button-click.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 319px;" src="http://1.bp.blogspot.com/-mbZy6KWDd1E/TxfPinm1g5I/AAAAAAAAAJQ/c5TXKrUKIVk/s400/x11-preferences-3-button-click.png" alt="" id="BLOGGER_PHOTO_ID_5699252047115027346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Oh the joys of using Mac OS X Lion. For all the touted "ease of use", this OS sure seems to have its share of quirks. It's neither Unix nor Windows, but something in between. Think Different, I guess. Here's a small list:&lt;br /&gt;&lt;br /&gt;track pad has several gesture based controls, i.e. 3 finger swipe to  show "Mission Control" or two finger side swipe to browse through pages,  three finger swipes to move between "full screen apps", the "maximize  (+)" button that doesn't seem to quite maximize or do things that you're  typically used to.&lt;br /&gt;&lt;br /&gt;Anyhoo, that's the hand we're dealt, and that's what we're going to play with. So on to the problem at hand: X11 in the *nix world uses the middle button click or the right click typically to paste any highlighted text. This seemed nearly impossible in MacOS X. After some hunting around the InterWebs, figured out that this can be controlled by the Preferences (see Image).&lt;br /&gt;&lt;br /&gt;This allows me to paste the highlighted (implicitly copied) text on the console. Not quite as nice as the middle button click, but Option + click I can live with.&lt;br /&gt;&lt;br /&gt;Also, I've changed trackpad options so that single tap works like a click.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-8563718477707280019?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/8563718477707280019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=8563718477707280019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8563718477707280019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8563718477707280019'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2012/01/x11-middle-button-click-under-macos.html' title='X11 middle button click under MacOS'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-mbZy6KWDd1E/TxfPinm1g5I/AAAAAAAAAJQ/c5TXKrUKIVk/s72-c/x11-preferences-3-button-click.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-3458228921177699710</id><published>2011-12-26T21:57:00.000-08:00</published><updated>2012-01-19T00:19:22.330-08:00</updated><title type='text'>Vista Home Premium Backup, or the backup that almost wasn't</title><content type='html'>I recently decided to upgrade my machine's hard drive because its running super slow, and it looks like it might be yearning to fail. Not wanting to take a chance, I decided to start backing up data using Windows Backup, in the hopes of simplifying my life. I'm doing this even though I regularly backup the user data using Backuppc (+ rsyncd), which has been working so far (only tested the backup part, not the restore. perhaps that'll be another adventure). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;here's what i have so far:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm replacing a 2.5" SATA IDE 200GB Hitachi 5400 rpm drive with a 2.5" SATAII IDE 120GB Intel SSD 320. the drive is smaller, but the original had multiple partitions, and the main windows partition was around 120GB. So the plan is to backup up only the windows partition to this one (good-bye linux on the laptop... i've been primarily using my desktop for linux development pretty much anyways, and the laptop linux is rotting at Ubuntu 8.04, with not much data there, so ya).&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have to give kudos to Amazon for fast shipping and a fairly decent price on the Intel Drive. The drive itself so far seems super fast (windows rated it at 5.9, which currently is the highest rating it provides). However, the overall system base score is limited by the integrated graphics card, so while i don't see the reported base-score I definitely see a boost in disk performance. I'm hoping it translates to some power savings as well and longevity since i don't much have to worry about shocks destroying platters (and other physical issues).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting back on to the main track, getting the drive was the easy part. What I seemed to be lacking was any way of quickly transferring my existing / working installation to this drive so that I wouldn't have to fiddle with all settings and stuff. Alas, that didn't seem all that easy thanks to Windows Vista Home Premium. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This product has a Backup and Restore program that only backs up data (no programs, no settings etc.). There are several paid programs out there, but most seemed to have harsh invectives and umpteen frustrations directed at them. Anyhoo, I decided to backup my data before something else goes wrong anyway.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Windows Vista Backup and Restore has a bug that prevents it from backing the files up on a network location. Though it promises to support network based backups, it fails each time backup is started with the following error:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found the following advise that promised to work:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="body" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 2em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; overflow-x: visible; overflow-y: visible; clear: right; font-size: 11px; color: rgb(51, 51, 51); line-height: 13px; background-color: rgb(255, 255, 255); "&gt;&lt;code&gt;Ok just read your forms.  I have got a bit further than you guys but not fully solved.&lt;br /&gt;&lt;br /&gt;When set up the network drive through Vista backup and it asks your for your username and password, I figured out this works:&lt;br /&gt;&lt;br /&gt;Username: Everyone&lt;br /&gt;Password:  admin&lt;br /&gt;&lt;br /&gt;Hope this helps&lt;hr class="sig" style="border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; margin-top: 0.5em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; border-top-color: rgb(187, 187, 187); height: 1px; width: 370px; "&gt;beauty in the air&lt;/code&gt;&lt;/div&gt;&lt;ul class="history"   style="border-style: initial; border-color: initial;  margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 20px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 13px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; color: rgb(51, 51, 51);  background-color: rgb(255, 255, 255); font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;li   style="border-style: initial; border-color: initial; font-style: inherit;  margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0.25em; padding-right: 0px; padding-bottom: 0.25em; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border- list-style-type: none; text-decoration: none; font-family:inherit;color:initial;"&gt;&lt;code&gt;&lt;span class="type" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit;  margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0.5em; padding-bottom: 0px; padding-left: 0px;  color: rgb(68, 68, 68); font-family:inherit;font-size:0.9em;"  &gt;Proposed As Answer by&lt;/span&gt;&lt;a class="author" href="http://social.technet.microsoft.com/profile/phreakingcrow/?type=forum&amp;amp;referrer=http://social.technet.microsoft.com/Forums/en-US/itprovistanetworking/thread/2f2c7b65-5ff1-4a33-bdb6-5d05ab333069/" rel="nofollow" title="About phreakingcrow" style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: green; cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; vertical-align: top; "&gt;&lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit;  margin-top: 0px; margin-right: 0.5em; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline- padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: inline-block; vertical-align: top; font-family:inherit;color:initial;"  &gt;phreakingcrow&lt;/span&gt;&lt;abbr class="affil" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; display: inline-block; vertical-align: top; color: rgb(0, 0, 0); "&gt;&lt;/abbr&gt;&lt;/a&gt;&lt;span class="date" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: italic;  margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0.5em; padding-bottom: 0px; padding-left: 0.5em; display: inline-block;  color: rgb(68, 68, 68); font-family:inherit;font-size:0.9em;"  &gt;Tuesday, December 08, 2009 5:28 PM&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I created a new scratch path with "public" access (this is a temporary thing since it is a security concern!) in my smb.conf.master file&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;code&gt; [m-e-scratch]&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; path = /mnt/media-e/scratch&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; available = yes&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; # valid users = alpha beta&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; read only = no&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; browsable = yes&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; public = yes&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; writeable = yes&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt; security = share&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;created the true smb.conf using &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;root@smbhost&amp;gt; testparm -s smb.conf.master &amp;gt;smb.conf&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;root@smbhost&amp;gt; restart smbd&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Restarted Backup and Restore and set user name to "Everyone" and password "admin" as advised above, and so far, it seems to be working.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Update: backup failed several times backing up to this shared location. I gave up after 4 attempts.&lt;br /&gt;&lt;br /&gt;So I'm now going to try and clone my Windows Vista partition using Linux.&lt;br /&gt;&lt;br /&gt;Here's what I've managed to do so far:&lt;br /&gt;&lt;br /&gt;1. remove all absolutely essential stuff off the main windows partition. This included my temp directory where I typically like to store installers for any programs I download. I do this so that each time I have to reinstall / re-image something, I have the exact version of stuff I've been using / testing. I copied over these files manually to my networked scratch space.&lt;br /&gt;2. Removed any large files that Windows creates using the built in disk clean up. I cleaned up almost 20GiB of queued up crash reports and shadow copies.&lt;br /&gt;3. Removed prior restore points (this was  little tricky to convince myself to do)&lt;br /&gt;4. Disabled hibernation. Reboot, and delete hiberfile.sys. Freed up about 3GiB&lt;br /&gt;5. Disabled page file usage. Restarted machine and deleted pagefile.sys. Freed up about 3 GiB.&lt;br /&gt;6. Next, I defragmented my drive using the built in Windows Defragmenter. To start this, right click on the C:\ select Properties. In the basic properties tab, click on Tools&lt;br /&gt;7. I tried to shrink my partition using the built in Windows Vista partition shrinker. However, here I ran into an issue since it wouldn't let me reduce the size. Apparently, &lt;a href="http://www.howtogeek.com/howto/windows-vista/working-around-windows-vistas-shrink-volume-inadequacy-problems/"&gt;other folks&lt;/a&gt; have faced this issue as well. No worries. Linux to the rescue.&lt;br /&gt;8. Downloaded Ubuntu 11.10 LiveCD&lt;br /&gt;9. Tried to use wodim to burn the iso, but failed (not sure why?)&lt;br /&gt;10. Booted into Ubuntu 8.04 and used Brasero to burn the disk&lt;br /&gt;11. Reboot machine, go into bios to change boot order with DVD as primary, Insert Ubuntu live CD and continue boot&lt;br /&gt;12. Used Ubuntu's G-Parted to reduce the size of the drive (WOW! Ubuntu 11.10 looks freaking awesome! I'll consider upgrading my workstation to this as well. "Consider" being the keyword since I have way too many tools on it. Maybe will do with the laptop once i'm done getting windows up and running. Perhaps will use G-Parted again to monkey with the partitions!). For G-Parted, I took care to shrink the Windows Partition (on my old hard-disk) to under the size of the SSD. Since the SSD was about 120GiB, I set the Windows partition to be smaller, around 95 GiB. I ensured that G-Parted rounded to MiB, and not to cylinder (since this would have caused it to re-write a lot of the data).&lt;br /&gt;13. About 30 mins later, G-parted was done. I removed the Ubuntu CD and rebooted into windows.&lt;br /&gt;14. Let windows check-disk continue undisturbed. It found several empty links etc. that it took care of and finally, I got into Vista desktop. Yay! (so far).&lt;br /&gt;15. Shutdown machine and rebooted twice, to see it works ok.&lt;br /&gt;16. Reformat SSD drive (currently in Kingwin SSD Sata2 to USB 2.0 enclosure from Fry's).&lt;br /&gt;17. Boot using Ubuntu live CD&lt;br /&gt;18. clone partition using dd&lt;br /&gt;&lt;code&gt;&lt;br /&gt;dd if=/dev/sda2 of=/dev/sdb2&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;And here is where the fun (or rather pain) started. After several hours, dd was done, and when i replaced the drive back, I got the following ominous message:&lt;br /&gt;&lt;br /&gt;"Operating system not found"&lt;br /&gt;&lt;br /&gt;Crap. What went wrong? I figured that the drive I was copying to was smaller than the source drive, so that must be the issue. Simple enough fix:&lt;br /&gt;&lt;br /&gt;1. Use the Toshiba recovery DVDs to restore back to factory condition&lt;br /&gt;2. copy over only the windows partition once the restore was done.&lt;br /&gt;&lt;br /&gt;Before I did this, I Live booted Ubuntu and checked the hard-drive. I was surprised to see all the files there. sudo fdisk -l also showed the partitions. I was scratching my head. Anyway, I started the Toshiba recovery (which meant I lost all the time I'd spent copying and all the data I had already copied over).&lt;br /&gt;&lt;br /&gt;Things seemed to be going fine till I saw the ominous error just as the second DVD was getting done. "Recovery check sum failed.&lt;br /&gt;&lt;h1&gt;ERROR  10-FC12-05&lt;wbr&gt;70&lt;/h1&gt;So I started searching the net for what could be causing this. Several websites came up indicating that the memory had failed, or the hard disk, or the recovery DVDs and the like. In between, I tried several times and each time it would fail.&lt;br /&gt;&lt;br /&gt;http://forums.toshiba.com/t5/System-Recovery-and-Recovery/ERROR-10-FC12-0570/td-p/209662&lt;br /&gt;&lt;br /&gt;A few times I saw the error&lt;br /&gt;&lt;h1&gt;ERROR  10-FC12-0241&lt;/h1&gt;&lt;h1&gt;&lt;wbr&gt;&lt;/h1&gt;and then I also saw a blue screen with MEMORY_FAIL (or something like that).&lt;br /&gt;&lt;br /&gt;So I made DVD copies, and I watched the process closely. Didn't see any complaints about scratched disks or copy failed etc. So I figured there must be something wrong with the drive. I could always see the files stored there, but each time I tried to boot from it, after the BIOS prompt, I would get the "Operating system not found".&lt;br /&gt;&lt;br /&gt;So I went ahead and bought a new SATA drive (not SSD, just the regular cylinder drive). 500GB.&lt;br /&gt;&lt;br /&gt;Did the same dd magic. Booted with fingers crossed. "Operating system not found"&lt;br /&gt;&lt;br /&gt;Crap. Deja vu.&lt;br /&gt;&lt;br /&gt;At this point I simply decided to install Windows the new drive. I figured there must be something wrong in dd -ing the raw bytes on the drive, so if I let the thing install cleanly, I'd know what was going on.&lt;br /&gt;&lt;br /&gt;Start Toshiba recovery. Disk 2. Error 10-FC12-0214. crap!&lt;br /&gt;&lt;br /&gt;So I decided to simply install Ubuntu now. Install Ubuntu. "Installation success. Remove bootable media and press ENTER to reboot." Reboot, fingers crossed. "Operating system not found".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I put back in my old working Vista drive. Reboot: "Operating system not found"&lt;br /&gt;&lt;br /&gt;Now I was sure it couldn't be the drive or the installation process. It had to be something in my laptop. So I remove the drive from the laptop, but it in the KINGWIN external USB drive, and reboot.&lt;br /&gt;&lt;br /&gt;F2 to enter BIOS, change boot order to include USB, remove DVD, reboot&lt;br /&gt;&lt;br /&gt;Welcome to Ubuntu! I had just managed to boot into Ubuntu from the USB drive. This clearly meant that Ubuntu had installed correctly, and the hard-drive was OK, but for some reason the laptop wasn't able to see the drive when it was hooked in.&lt;br /&gt;&lt;br /&gt;This was supremely weird because the laptop WAS able to see it: Ubuntu clearly was able to install, as was Windows (I remembered seeing the files). So what else had happened?&lt;br /&gt;&lt;br /&gt;My suspicion went to the BIOS: if for some reason the BIOS didn't know there was a hard drive attached, it wouldn't attempt to boot from it.&lt;br /&gt;&lt;br /&gt;Reboot, F2&lt;br /&gt;&lt;br /&gt;BIOS listed hardrive as "NONE"! VIOLA!&lt;br /&gt;&lt;br /&gt;Next, more head scratching on how to get BIOS recognize the drive. Some more net searching led to blurbs about BIOS updates. So went to Toshiba's website and realized there was a BIOS update for v 2.30. Mine was 1.80. Easily done.&lt;br /&gt;&lt;br /&gt;Download self extracting executable to Ubuntu.&lt;br /&gt;Unzip to extract .iso,&lt;br /&gt;burn with Brasero&lt;br /&gt;Insert CD in laptop drive&lt;br /&gt;REBOOT&lt;br /&gt;Lots of beeping as the BIOS CD took hold and updated BIOS (I dared not touch any key till it said it was done).&lt;br /&gt;REBOOT&lt;br /&gt;f2 to enter BIOS: version reported as 2.8!&lt;br /&gt;HDD: detected correctly!&lt;br /&gt;remove CD before&lt;br /&gt;REBOOT&lt;br /&gt;Welcome to Ubuntu!&lt;br /&gt;&lt;br /&gt;Success!&lt;br /&gt;&lt;br /&gt;Shutdown Laptop, insert SSD&lt;br /&gt;Use Toshiba recovery DVD, success!&lt;br /&gt;remove DVD&lt;br /&gt;Reboot into Live UBUNTU&lt;br /&gt;Attach KINGWIN USB containing old laptop Vista drive. Insert BOTH USB dongles to the laptop&lt;br /&gt;&lt;br /&gt;dd if=/dev/sdb2 of=/dev/sda2&lt;br /&gt;&lt;br /&gt;i.e. I just copied over the Vista partition from the old drive over the Vista partition in the newly recovered SSD.&lt;br /&gt;&lt;br /&gt;(20.37MB/s transfer speed! because of more USB power??)&lt;br /&gt;&lt;br /&gt;REMOVE Ubuntu DVD, reboot : Windows Error "Insert recovery disk, select startup recovery"&lt;br /&gt;&lt;br /&gt;This was expected. Put in Toshiba recovery DVD, reboot, F2 change BIOS to boot from DVD, REBOOT&lt;br /&gt;&lt;br /&gt;Select System Recovery Options&lt;br /&gt;Start up recovery&lt;br /&gt;Disk automatically found Vista partition&lt;br /&gt;and rebooted 30 seconds later&lt;br /&gt;Welcome to Vista!&lt;br /&gt;&lt;br /&gt;So Weeks worth of consternation because BIOS stopped recognizing hard-drive. How? No idea.&lt;br /&gt;But glad it's working now.&lt;br /&gt;&lt;br /&gt;UPDATE: it's been several weeks and the SSD + LAPTOP has been running like a CHAMP! Also downloaded the Intel SSD Drive toolkit that is scheduled to now run on a weekly basis and can issue the TRIM command and keep the hard-drive at optimal efficiency. Great thing about the tool is it allows turn-key disabling of PreFetch and SuperFetch services without any need to muck around in the Control Panel. Highly recommended! Found here &lt;a href="http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=18455"&gt;http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;DwnldID=18455&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-3458228921177699710?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/3458228921177699710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=3458228921177699710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3458228921177699710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3458228921177699710'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2011/12/vista-home-premium-backup-or-backup.html' title='Vista Home Premium Backup, or the backup that almost wasn&apos;t'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-3652675754703764557</id><published>2011-08-26T01:11:00.000-07:00</published><updated>2011-08-26T01:37:20.497-07:00</updated><title type='text'>The curious incident of a night and the HP Touchpad</title><content type='html'>HP announced, rather rudely over an earnings call, to its stock holders and employees that it is killing its WebOS development, and all production of WebOS hardware including the HP Touchpad and the anticipated Pre3 phones. It announces a fire sale on the HP touchpad ($99 for the 16GB model and $149 for the 32GB model) and these puppies fly off faster than you can say "HP". What the fuck happened?&lt;br /&gt;&lt;br /&gt;Leo Apothekar happened. Bad management in action, poor planning, worse execution and senseless destruction of share holder value happened. HP's stock fell 20% hours after the announcement. HP is also mulling a spin off of its PC division, a division responsible for a huge chunk of its revenue. &lt;br /&gt;&lt;br /&gt;I only wonder what HP's board was thinking? What tune is Leo the Lion piping that he's got the board of a multi-billion dollar tech powerhouse purring and skipping along happily while he leads them to their perdition? What are HP stock holders waiting for? Where is the lawsuit?&lt;br /&gt;&lt;br /&gt;I guess everyone is waiting for the dust to settle before launching their first salvo. Leo and the board can still save their skins. &lt;br /&gt;&lt;br /&gt;HP's board suffers from extreme myopia (or some form of encephalopathy). HP's board: &lt;br /&gt;&lt;br /&gt;a) approved the purchase of Palm for 2+ Billion dollars,&lt;br /&gt;b) approved the expenditure of several million more in development and silly advertisement campaigns (they hired Russell Brand!)&lt;br /&gt;c) crippled a viable competitor to the Ipad with an obscenely high price (going toe-to-toe with the entrenched market leader)  &lt;br /&gt;d) killed the platform in 48 days, before even letting it get any traction (see (c) above)&lt;br /&gt;e) demoralized their own employees by breeding uncertainty and distrust. Most will probably pack up and leave for competitors: Apple, Microsoft, Android&lt;br /&gt;f) spurned all app developers, almost permanently, and yet keep hopes of floating WebOS afloat&lt;br /&gt;g) let Leo announce the "planned" spin-off of the PC division WITHOUT any concrete plan in place, almost assuring that the spin-off won't beget a good price.&lt;br /&gt;h) sowed confusion in their sales channels, and have almost certainly handed the market over to Dell&lt;br /&gt;i) still supports Leo Apothekar despite all of the above&lt;br /&gt;&lt;br /&gt;Yet, if only they can get past their egos, they can make something come out of it for the share holders and employees (one must wonder what deals or incentives they have should they choose to not take corrective action).&lt;br /&gt;&lt;br /&gt;They can:&lt;br /&gt;a) reinstate the production of WebOS tables at the discounted price. Think Gillette razor blade model: take a loss on the initial hardware once, amortize the gain with the sale of apps. Retain the PC business and leverage the strong sales channels. HP's name still carries value.&lt;br /&gt;b) keep pushing for adoption of webOs tablets by corporations (see a above). They had some nifty features built in like VPN support and Flash. Their email integration / Synergy is brilliant.&lt;br /&gt;c) fire Apothekar. &lt;br /&gt;&lt;br /&gt;Option d) face share holder lawsuits.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-3652675754703764557?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/3652675754703764557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=3652675754703764557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3652675754703764557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3652675754703764557'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2011/08/curious-incident-of-night-and-hp.html' title='The curious incident of a night and the HP Touchpad'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-8329234394196349762</id><published>2011-08-21T23:34:00.001-07:00</published><updated>2011-08-22T01:22:28.548-07:00</updated><title type='text'>Getting PHP to talk Perl</title><content type='html'>PHP IS a great language to enable dynamic webpages. Perl is awesome when it comes to string parsing. Getting the two to work together, one can accomplish miracles!&lt;br /&gt;&lt;br /&gt;I tried to get this going on my home server and immediately ran into a few issues. Looks like the folks working on these technologies like to ensure job security by intentionally breaking things, and not making them straightforward (well, usually they are, but very often one needs to roll up their sleeves and hack things together to get things going. Such is the way of the Linux / open-source world).&lt;br /&gt;&lt;br /&gt;So here i document the hoops I needed to jump through to have this work. Hopefully, this will help others out there (and someday myself if I need to repeat this).&lt;br /&gt;&lt;br /&gt;1. Install apache. Since I was running Backuppc, this was already done and running for me. For Ubuntu 10.04 this can also be done with apt-get or Synaptic package manager. In my installation, apache serves pages from /var/www&lt;br /&gt;2. Install php5. This can be done from Synaptic&lt;br /&gt;3. Install php-pear&lt;br /&gt;4. Install php5-dev. This is needed for phpize command below:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo apt-get install php5-dev&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;5. Restart apache&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo /etc/init.d/apache2 restart&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;6. Check to see if php is installed and working correctly with Apache. I created the following simple test files&lt;br /&gt;&lt;br /&gt;&lt;b&gt;index.html&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;	&amp;lt;body&amp;gt;&lt;br /&gt;		this is a test. Click the following links for various test files and&lt;br /&gt;		scripts&lt;br /&gt;&lt;br /&gt;		&amp;lt;table&amp;gt;&lt;br /&gt;			&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;a href="./phpinfo.php"&amp;gt; phpinfo &amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;				&amp;lt;td&amp;gt; php test&amp;lt;/td&amp;gt;&lt;br /&gt;				&amp;lt;/tr&amp;gt;&lt;br /&gt;			&amp;lt;tr&amp;gt;&lt;br /&gt;				&amp;lt;td&amp;gt;&amp;lt;a href="./test1.php"&amp;gt; perl test &amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;				&amp;lt;td&amp;gt; calling perl from php &amp;lt;/td&amp;gt;&lt;br /&gt;			&amp;lt;/tr&amp;gt;&lt;br /&gt;		&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;phpinfo.php&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt; phpinfo();&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;test1.php&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;&amp;lt;?php&lt;br /&gt;&lt;br /&gt;print "Hello from PHP! ";&lt;br /&gt;$perl = new Perl();&lt;br /&gt;$perl-&amp;gt;require("./test1.pl");&lt;br /&gt;print "Bye! ";&lt;br /&gt;&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;test1.pl&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;print "Hello from perl!&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;";&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At this point, php was working for me, but obviously the Perl integration wasn't (since PHP didn't know about any Perl module / extensions). I also had Perl already installed on my machine. If not, this can be done through Synaptic or apt-get.&lt;br /&gt;&lt;br /&gt;According to several websites, the easy way to download and install Perl extensions doesn't work (see PECL bug website in required reading below). So here is what I had to do to get this to work for me.&lt;br /&gt;&lt;br /&gt;1. download and extract latest Perl module extension from PECL.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# cd ~/temp/php-extension-perl&lt;br /&gt;# wget http://pecl.php.net/get/perl-1.0.0.tgz&lt;br /&gt;# wget http://pecl.php.net/get/perl-1.0.0.tgz&lt;br /&gt;# tar zxf perl-1.0.0.tgz&lt;br /&gt;# cd perl-1.0.0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;2. Next steps / building and installation require root privileges (can actually be done as non-root, preferred and then copy over the .so, but i just did them as root for convenience)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# sudo su&lt;br /&gt;# phpize&lt;br /&gt;# ./configure --with-perl=$(which perl) --with-php-config=$(which php-config)&lt;br /&gt;# make&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;At this point, I got compilation issues with PHP_VERSION not being defined. Some links in the required reading section below called for mangling a header file and adding a #define PHP_VERSION 0. Instead, I simply modified the makefile. Changes are shown by the diff below&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# diff Makefile Makefile.orig&lt;br /&gt;&lt;br /&gt;51c51&lt;br /&gt;&amp;lt; DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir) &lt;span type="bold"  style="color:red;"&gt;-DPHP_PERL_VERSION=0&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;&amp;gt; DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Right after this, I got linker issues because it couldn't find the perl library. The issue is that Perl advertises the Perl library as "libperl.so", while the Perl 5.3 installation creates no such file / link. This causes the linker error (See required reading section for "-lperl nonsense"). I fixed this by adding a link in the right location. By doing the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# find /usr/lib -iname libperl* -print&lt;br /&gt;# pushd /usr/lib&lt;br /&gt;# ln -s libperl.so.5.10.1 libperl.so&lt;br /&gt;# popd&lt;br /&gt;# make&lt;br /&gt;# make install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;make install above did something funky and tried to copy the perl.so library to within the temp folder. I don't understand why it did this, but I definitely didn't want to point apache or perl or any other system thing to a temp directory. So I copied this over manually (perhaps there's a better way to use configure and have this done, but I didn't have the time or the patience to do so.)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# pushd /etc/php5/apache2&lt;br /&gt;# mkdir modules&lt;br /&gt;# cp ~/temp/php-perl-extension/perl-1.0.0/modules/perl.so ./modules&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Edit php.ini under Apache (/etc/php5/apache2/php.ini) to have it recognize and load the Perl module. Changes are shown by the diff below (&lt;span style="color:red;"&gt;&lt;b&gt;ALWAYS backup the original file&lt;/b&gt;&lt;/span&gt; before changing it!).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# diff php.ini php.ini.2011-08-21-2305&lt;br /&gt;807,809c807&lt;br /&gt;&amp;lt;&lt;br /&gt;&amp;lt; extension_dir = "./modules"&lt;br /&gt;&amp;lt;&lt;br /&gt;---&lt;br /&gt;&amp;gt; ; extension_dir = "./"&lt;br /&gt;944,945d941&lt;br /&gt;&amp;lt; extension=/etc/php5/apache2/modules/perl.so&lt;br /&gt;&amp;lt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Next, restart apache&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo /etc/init.d/apache2 restart&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;At this point, I was good to go. Clicking on my phpinfo test links gave me the following:&lt;br /&gt;&lt;h2&gt;&lt;a name="module_perl"&gt;perl&lt;/a&gt;&lt;/h2&gt; &lt;table border="0" cellpadding="3" width="600"&gt; &lt;tbody&gt;&lt;tr class="h"&gt;&lt;th&gt;Perl support&lt;/th&gt;&lt;th&gt;enabled&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td class="e"&gt;Extension version &lt;/td&gt;&lt;td class="v"&gt;&lt;i&gt;no value&lt;/i&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td class="e"&gt;Revision &lt;/td&gt;&lt;td class="v"&gt;$Revision$ &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td class="e"&gt;Perl version &lt;/td&gt;&lt;td class="v"&gt;118.53.46.49.48.46.49 &lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;And clicking on the test perl link gave me:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Hello from PHP! Hello from perl!&lt;br /&gt;&lt;br /&gt;Bye! &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Source links and recommended reading:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://devzone.zend.com/article/1712"&gt;Using Perl code from PHP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://us2.php.net/manual/en/ini.core.php#ini.extension%3EPHP%20manual,%20extensions%3C/a%3E%3Cbr%3E%3Cbr%3E%3Ca%20href=" org="" servers="" html=""&gt;How to compile php 5.3x to support extensions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://adityo.blog.binusian.org/?p=683"&gt;How to integrate Perl with PHP 5.3 on opensuse 10.2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lists.cistron.nl/pipermail/freeradius-users/2007-June/msg00187.html"&gt;Cannot find -lperl nonsense&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linuxjournal.com/article/9282?page=0,0"&gt;Integrating Perl and PHP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pecl.php.net/bugs/bug.php?id=21273"&gt;PECL: None of the possible methods of installation work&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pecl.php.net/package/perl"&gt;PECL: Perl package&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://help.ubuntu.com/10.04/serverguide/C/httpd.html"&gt;Apache httpd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-8329234394196349762?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/8329234394196349762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=8329234394196349762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8329234394196349762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8329234394196349762'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2011/08/getting-php-to-talk-perl.html' title='Getting PHP to talk Perl'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-7454692693151504171</id><published>2011-06-29T04:34:00.000-07:00</published><updated>2011-06-29T04:38:14.942-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wnr 2000 v2'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless bridge'/><category scheme='http://www.blogger.com/atom/ns#' term='router'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='NETGEAR'/><category scheme='http://www.blogger.com/atom/ns#' term='dd-wrt'/><category scheme='http://www.blogger.com/atom/ns#' term='client bridge'/><title type='text'>Wireless bridge mode on Netgear WNR2000 V2</title><content type='html'>Flashing netgear router WNR2000v2&lt;br /&gt;&lt;br /&gt;1. do a hard reset with rest to factory defaults (“30/30/30” reset) on WNR2000v2 router (“router”). Check to see if defaults kicked in&lt;br /&gt;2. Download “trailer” build for router. This is a version of DD-WRT specifically addressed to the router and will have the router name in it.&lt;br /&gt;3. Disable compound TCP for windows Vista or newer&lt;br /&gt;CTCP can be enabled with the command:&lt;br /&gt;netsh interface tcp set global congestionprovider=ctcp &lt;br /&gt;or disabled with the command:&lt;br /&gt;netsh interface tcp set global congestionprovider=none&lt;br /&gt;To display the current setting for CTCP use:&lt;br /&gt;netsh interface tcp show global&lt;br /&gt;&lt;br /&gt;E.g. (in admin cmd window):&lt;br /&gt;C:\Windows\system32&gt;netsh interface tcp show global&lt;br /&gt;Querying active state...&lt;br /&gt;&lt;br /&gt;TCP Global Parameters&lt;br /&gt;----------------------------------------------&lt;br /&gt;Receive-Side Scaling State          : enabled&lt;br /&gt;Chimney Offload State               : disabled&lt;br /&gt;Receive Window Auto-Tuning Level    : highlyrestricted&lt;br /&gt;Add-On Congestion Control Provider  : none&lt;br /&gt;ECN Capability                      : disabled&lt;br /&gt;RFC 1323 Timestamps                 : disabled&lt;br /&gt;&lt;br /&gt;NOTE: remember to re-enable CTCP after setup is done&lt;br /&gt;&lt;br /&gt;4. Disable wireless networking&lt;br /&gt;5. Disable firewall and anti-virus&lt;br /&gt;6. Use IE for uploading firmware&lt;br /&gt;7. Once firmware is uploaded (wait 10 minutes), DD-WRT default login page shows up (use IE)&lt;br /&gt;8. set password temporarily to login: root, pass: admin (to keep things simple. Change once setup is working)&lt;br /&gt;9. Basic setup: &lt;br /&gt;a. change IP address to 192.168.1.3&lt;br /&gt;b. gateway: 192.168.1.1 (main router)&lt;br /&gt;c. local dns: 192.168.1.1&lt;br /&gt;d. Click APPLY settings&lt;br /&gt;e. Relogin to router at 192.168.1.3&lt;br /&gt; &lt;br /&gt;10. Change wireless settings&lt;br /&gt;a. Client bridge mode&lt;br /&gt;b. Wireless mode: G-ONLY (only for initial setup. Change later to GN or N-only as applicable)&lt;br /&gt;c. SSID: put your ssid d4mnn3twork&lt;br /&gt;d. Network config: bridged&lt;br /&gt;e. Remember to APPLY changes on each page as the settings change&lt;br /&gt;11. Change wireless security&lt;br /&gt;a. WPA personal&lt;br /&gt;b. TKIP&lt;br /&gt;c. Give private shared key (PSK)&lt;br /&gt;d. NOTE: cannot use dynamic keys due to limitation of 802.11 protocols&lt;br /&gt;e. Click APPLY&lt;br /&gt;f.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;30/30/30 reset: with the router on, press and hold reset switch for 30 seconds. DO NOT let go. Turn off the router power using the OFF switch, continue to press the reset switch for another 30 seconds. DO NOT LET GO. With the reset switch continually pressed, turn on the router power. Continue to keep the reset switch pressed for another 30 seconds. Wait about 2 minutes and log in to the router to check if reset took effect. You should be able to log in with the defaults. &lt;br /&gt;&lt;br /&gt;Router default login: Netgear was thoughtful with the WNR2000v2: it provided an on-off switch at the back of the router. Also, they printed the default access credentials right on the back of the router:&lt;br /&gt;http://www.routerlogin.net&lt;br /&gt;login: admin&lt;br /&gt;pass: password&lt;br /&gt;&lt;br /&gt;references:&lt;br /&gt;http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51486 &lt;br /&gt;http://www.dd-wrt.com/wiki/index.php/Installation#Is_Your_Router_Supported.3F&lt;br /&gt;http://dd-wrt.com/phpBB2/viewtopic.php?p=446547#446547&lt;br /&gt;http://en.wikipedia.org/wiki/Compound_TCP&lt;br /&gt;http://www.dd-wrt.com/wiki/index.php/Settings#Disable_Compound_TCP&lt;br /&gt;&lt;br /&gt;http://blog.chinthaka.org/2011/01/flashing-netgear-wnr2000-v2-with-dd-wrt.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-7454692693151504171?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/7454692693151504171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=7454692693151504171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7454692693151504171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7454692693151504171'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2011/06/wireless-bridge-mode-on-netgear-wnr2000.html' title='Wireless bridge mode on Netgear WNR2000 V2'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-4606506315070540624</id><published>2011-04-05T17:30:00.001-07:00</published><updated>2011-04-05T17:36:07.938-07:00</updated><title type='text'>How outdated is XP?</title><content type='html'>Just happened to use an XP machine and was moving a folder from one location to another, when it came across a file that was already open by another program. It promptly gave me an error dialog and then quit copying. Midway.&lt;br /&gt;&lt;br /&gt;I like Win7/Vista much better where it gives you an option of continuing to copy, rename or discard. I do prefer Linux's cp --no-clobber (or overwrite by default) mechanism a little better as well, since that makes the process non-interactive (I asked you to do something, I know what I'm doing and do it accordingly philosophy). I can understand that Windows typically works with "you asked me to do this, but are you really sure you're not shooting yourself in the foot" mentality, and I can understand that. It's not what I'd like, but I can see how non-techies of the world might.&lt;br /&gt;&lt;br /&gt;I don't like XP's "oh crap something unexpected happend. Bail!" philosophy. Not any more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-4606506315070540624?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/4606506315070540624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=4606506315070540624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4606506315070540624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4606506315070540624'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2011/04/how-outdated-is-xp.html' title='How outdated is XP?'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-4069042035093029238</id><published>2010-10-01T17:09:00.000-07:00</published><updated>2010-10-01T17:25:17.671-07:00</updated><title type='text'>Controlling Perforce RCS field expansion</title><content type='html'>Perforce RCS keyword expansion is an immensely useful feature. It allows a developer to quickly apprehend the version and branch information. However, when used with scripts that decorate variables with $, some very odd, unexpected expansions can happen. &lt;br /&gt;&lt;br /&gt;Perl scripts are particularly susceptible to this e.g. $Find::file::dir, will almost always be mangled.&lt;br /&gt;&lt;br /&gt;I stumbled on the following page that talks a little bit about the issues, but doesn't provide a complete solution.&lt;br /&gt;&lt;a href="http://sial.org/howto/perforce/"&gt;http://sial.org/howto/perforce/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, this feature can be turned off or controlled in P4 by changing the file type modifiers. By specifying +ko, the keyword expansion is limited to only $Id:$ and $Header:$.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;p4 -c your_cspec reopen -t 'text+ko' your_file&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Alternatively, Jeremy Mates was kind enough to point the way:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Change the variable to be incompatible with what Perforce is looking for, while still being valid Perl:&lt;br /&gt;&lt;br /&gt;$File -&gt; ${File}&lt;br /&gt;&lt;br /&gt;Or change the name of the variable in the Perl script.&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-4069042035093029238?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/4069042035093029238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=4069042035093029238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4069042035093029238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4069042035093029238'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2010/10/controlling-perforce-rcs-field.html' title='Controlling Perforce RCS field expansion'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-8686271634674769315</id><published>2010-08-02T23:00:00.000-07:00</published><updated>2010-08-02T23:09:51.507-07:00</updated><title type='text'>Through the looking glass. Or, How I Adapted to Windows 7</title><content type='html'>My laptop died. Boo hoo. IT gave me a brand new solid state drive. Yay! And they also gave me Windows 7 to go along with it. What a favor! No not really. I'm sitting here installing all the programs I need to be productive. &lt;br /&gt;&lt;br /&gt;And learning to navigate around the quirks of Windows 7.&lt;br /&gt;&lt;br /&gt;I have Vista at home and I had initially though that W7 would be fairly similar to Vista. Nope, there are some radical differences. The first one to hit me has been the Taskbar. Gone are the QuickLaunch menu and the familiar (sensible?) application window notifiers. The latter have been a mainstay of windows since the days of Windows 95! Instead, we have the unfamiliar (unfriendly?) Mac like "pin-up" blobs that you can "pin" to the task bar. &lt;br /&gt;&lt;br /&gt;My initial thought was: "oh that's different. But it's cool... I can have an active QuickLaunch bar. Weird, but I can live with that."&lt;br /&gt;&lt;br /&gt;But very soon, I found out that you can't pin too many things to the taskbar. &lt;br /&gt;&lt;br /&gt;But you can create your own tool bar and use that for creating a QuickLaunch bar!&lt;br /&gt;Microsoft kb article &lt;a href="http://support.microsoft.com/kb/975784"&gt;975784&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-8686271634674769315?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/8686271634674769315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=8686271634674769315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8686271634674769315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8686271634674769315'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2010/08/through-looking-glass-or-how-i-adapted.html' title='Through the looking glass. Or, How I Adapted to Windows 7'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-2080396210432244892</id><published>2010-07-17T12:01:00.000-07:00</published><updated>2010-07-17T12:15:05.583-07:00</updated><title type='text'>Ultravnc interaction with Windows Vista taskbar</title><content type='html'>I recently installed UltraVNC to allow remote login / control on my Windows Vista Home Premium laptop. I had initially hoped that Windows Vista Home Premium would have Remote Desktop as part of the base install, but I guess Microsoft does need a few features to distinguish it's "business" and "home" offerings to justify the higher costs for business consumers.&lt;br /&gt;&lt;br /&gt;Anyhoo, UltraVNC sure does the job: I am able to log in remotely irrespective of the user logged in. I was expecting a more Linux like experience where independent log-ins and desktop sessions are supported, but this is a straight reflection of the host computers local screen. Scary good.&lt;br /&gt;&lt;br /&gt;However, I did notice an odd interaction between the UltraVNC's service and the Windows Vista taskbar: every 15 seconds or so, the taskbar jumps up from auto-hide and goes back really quickly. &lt;br /&gt;&lt;br /&gt;I don't know what is going on or even how to see what event is causing the taskbar to jump, but I'm sure it is because of the winVNC service because if i stop the service, it doesn't happen. If I restart it, it starts happening again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-2080396210432244892?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/2080396210432244892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=2080396210432244892' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2080396210432244892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2080396210432244892'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2010/07/ultravnc-interaction-with-windows-vista.html' title='Ultravnc interaction with Windows Vista taskbar'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-4262054389332316247</id><published>2010-06-11T00:39:00.001-07:00</published><updated>2010-06-11T00:50:34.352-07:00</updated><title type='text'>Printing on Ubuntu</title><content type='html'>I have MFC210C shared on my Ubuntu 9.10 via Samba and it works for the most part. However, each time I print in "Normal" mode, the text is always "double visioned". And the page printed is almost always quarter the actual area. &lt;br /&gt;&lt;br /&gt;For the longest time I was scratching my head wondering what to do. The printer works fine if I boot the host in WinXP, so it had to be a cups issue. &lt;br /&gt;&lt;br /&gt;Though I haven't yet figured out the cups settings, I can get around these problems by doing the following:&lt;br /&gt;&lt;br /&gt;1. Printing in "Fine" / "Best quality" prints sharp text and graphics.&lt;br /&gt;2. I have to manually set the paper size to A4 each time. By default it always shows up as "Letter", causing the printed size to be small (nearly halved in each dimension)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-4262054389332316247?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/4262054389332316247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=4262054389332316247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4262054389332316247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4262054389332316247'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2010/06/printing-on-ubuntu.html' title='Printing on Ubuntu'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-6153817719390538986</id><published>2010-06-09T18:53:00.000-07:00</published><updated>2010-06-09T19:09:47.728-07:00</updated><title type='text'>warning: no new line at end of file</title><content type='html'>For the longest time, I would run in to this when compiling files with gcc. I never knew why. I always surmised that it must be something to do with the way older compilers worked, in that they probably concatenated a whole bunch of C files and read them from their standard input. Doing so has the advantage that your compiler doesn't have to do anything special for handling multiple files. all it wants, it get from one interface: it's standard input. That would also allow you to potentially use it as a sink in a pipe chain command.&lt;br /&gt;&lt;br /&gt;E.g. &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cat foo.c bar.c sna.c fu.c | ccompiler&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;if any of these files were not ending on a new line, you'd run in to possible artifacts&lt;br /&gt;&lt;br /&gt;E.g. if foo.c was &lt;br /&gt;&lt;code&gt;&lt;br /&gt;#ifdef _FOO_&lt;br /&gt;exter int foo;&lt;br /&gt;#endif&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and bar.c was &lt;br /&gt;&lt;code&gt;&lt;br /&gt;#ifdef _BAR_&lt;br /&gt;extern int bar;&lt;br /&gt;#endif&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;cat foo.c bar.c would produce&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#ifdef _FOO_&lt;br /&gt;exter int foo;&lt;br /&gt;#endif#ifdef _BAR_&lt;br /&gt;extern int bar;&lt;br /&gt;#endif&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;which would cause a compile error.&lt;br /&gt;&lt;br /&gt;However, I now know that this is done because the C standard &lt;a href="http://gcc.gnu.org/ml/gcc/2003-11/msg01568.html"&gt;requires it&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;The C language standard says&lt;br /&gt;A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character.&lt;br /&gt;&lt;br /&gt;Since this is a "shall" clause, we must emit a diagnostic message for a violation of this rule.&lt;br /&gt;&lt;br /&gt;This is in section 2.1.1.2 of the ANSI C 1989 standard. Section 5.1.1.2 of the ISO C 1999 standard (and probably also the ISO C 1990 standard).&lt;br /&gt;--&lt;br /&gt;Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com&lt;br /&gt;&lt;/quote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-6153817719390538986?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/6153817719390538986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=6153817719390538986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6153817719390538986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6153817719390538986'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2010/06/warning-no-new-line-at-end-of-file.html' title='warning: no new line at end of file'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-1828899113565593149</id><published>2010-01-05T19:33:00.001-08:00</published><updated>2010-01-05T19:45:19.107-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vnc-viewer'/><category scheme='http://www.blogger.com/atom/ns#' term='Real vnc'/><category scheme='http://www.blogger.com/atom/ns#' term='vnc'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeNX'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>So long VNC. I will miss you. NOT.</title><content type='html'>Being a lazy embedded software engineer has several advantages, like being able to control every gadget in your house from your couch. Needless to say, you also remotely log in to the several boxes spread around the house. &lt;br /&gt;&lt;br /&gt;However, if you happen to be using a windows machine (e.g. a laptop, you are on your couch of course... and only because your smartphone probably does not have a capable enough client just yet) to log in to a unix box and desire to partake in the advantages a GUI offers (all you ssh console people, the GUI is a major advancement, so get with the times already!), then you have to contend with the beast known as VNC.&lt;br /&gt;&lt;br /&gt;if you are on a Ubuntu machine (yes, no self-respecting engineer has only a windows machine.. it will, at the very least, dual-boot in to Linux), then ubuntu's Remote Desktop works splendidly. However, if you are ssh-ing over the "nekked inter-webs" then VNC is your only option. and that blows. &lt;br /&gt;&lt;br /&gt;Or so I used to think, before running into &lt;a href="https://help.ubuntu.com/community/FreeNX"&gt;FreeNX&lt;/a&gt;. Google, thou truly art a friend! FreeNX blows VNC completely out of the water. No more need to juggle between Hextile, CoRRE, Tight and other sub-par encodings. No more jiggling of the colormaps, image quality and compression levels only to have the entire processor reduced to competing with molasses, and failing.&lt;br /&gt;&lt;br /&gt;also ALT +TAB works! Though it does require one keystroke to enable: "CTRL + ALT + K" &lt;br /&gt;&lt;a href="http://markslinuxblog.blogspot.com/2009/06/freenx-and-nomachine-client-on-xp-alt.html"&gt;Thanks Mark!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Adios VNC-viewer / REAL VNC. you suck. Hello, FreeNX!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-1828899113565593149?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/1828899113565593149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=1828899113565593149' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1828899113565593149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1828899113565593149'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2010/01/so-long-vnc-i-will-miss-you-not.html' title='So long VNC. I will miss you. NOT.'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-2106028724550899638</id><published>2009-11-20T23:54:00.000-08:00</published><updated>2009-11-21T00:03:37.159-08:00</updated><title type='text'>Socket programming under Cygwin</title><content type='html'>Wrote a simple socket program on Cygwin, tried to compile it and got an error saying sockaddr_in wasn't defined. A lot of head scratching and adding random header files, I gave up and Googled for the answer. For whatever reason, socket programming under cygwin wants you to add &lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include &amp;lt;cygwin/in.h&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;tip found at: &lt;br /&gt;&lt;a href="http://www.ureader.de/msg/1186183.aspx"&gt;http://www.ureader.de/msg/1186183.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-2106028724550899638?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/2106028724550899638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=2106028724550899638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2106028724550899638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2106028724550899638'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/11/socket-programming-under-cygwin.html' title='Socket programming under Cygwin'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-7792948479783754697</id><published>2009-08-19T01:26:00.000-07:00</published><updated>2009-08-19T01:38:13.408-07:00</updated><title type='text'>Geek humor</title><content type='html'>I can be such a geek. I checked out the man page for false, and the very first sentence I read cracked me up:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# man false&lt;br /&gt;&lt;br /&gt;FALSE(1)                                                User Commands                                                FALSE(1)&lt;br /&gt;&lt;br /&gt;NAME&lt;br /&gt;       false - do nothing, unsuccessfully&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is obviously a play on "do nothing, in style", but then digging a little deeper, one wonders if this is a subtle caricature of socially inept and untalented, diffident individuals. My moment of Zen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-7792948479783754697?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/7792948479783754697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=7792948479783754697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7792948479783754697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7792948479783754697'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/08/geek-humor.html' title='Geek humor'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-1617549719774267670</id><published>2009-08-16T19:14:00.000-07:00</published><updated>2009-08-16T19:33:55.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wake on lan'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='wakelan'/><category scheme='http://www.blogger.com/atom/ns#' term='etherwake'/><category scheme='http://www.blogger.com/atom/ns#' term='WOL'/><category scheme='http://www.blogger.com/atom/ns#' term='wakeonlan'/><category scheme='http://www.blogger.com/atom/ns#' term='magic packet'/><category scheme='http://www.blogger.com/atom/ns#' term='wake-on-lan'/><category scheme='http://www.blogger.com/atom/ns#' term='ether-wake'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Wake on Lan: a different kind of magic (packet)</title><content type='html'>I was having trouble using ether-wake (or etherwake) to wake up my machines. However, I noticed that using wakeonlan (which is a Perl script!) seemed to always work. As an aside, I preferred wakeonlan because it is simpler and doesn't require the extra step of becoming root. Anyways, I wanted to use something that was program and not just a perl script, so I tried figuring out what was different. &lt;br /&gt;&lt;br /&gt;A quick wireshark session revealed the packets to be different. And analyzing the packets made me understand what was already written in the manuals for both programs a little better: wakeonlan was using UDP packets (type 0x800), where was ether-wake was generating the "true" magic packet: a raw ethernet packet of type 0x802. &lt;br /&gt;&lt;br /&gt;So essentially, the NICs on all my machines seem to not support the ether-wake generated magic packet. That also probably explains why my DDWRT router can't wake my connected machines (this is different from WOWL packets over the wireless link. DDWRT has a known issue about dropping WOL packets when acting as a wireless bridge, but I digress). &lt;br /&gt;&lt;br /&gt;The solution to my problem was wakelan. More details at found at &lt;a href="http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/wol-mini-howto-3.html&lt;br /&gt;"&gt;http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/wol-mini-howto-3.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;source&lt;/b&gt;: &lt;a href="ftp://metalab.unc.edu/pub/Linux/system/network/misc/"&gt;ftp://metalab.unc.edu/pub/Linux/system/network/misc/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a simple one c-file program that spits out a UDP WOL packet on the specified port. The good thing is that it doesn't need super-user privilege and the great thing is that it works just as well as the wakeonlan script with my machines!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-1617549719774267670?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/1617549719774267670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=1617549719774267670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1617549719774267670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1617549719774267670'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/08/wake-on-lan-different-kind-of-magic.html' title='Wake on Lan: a different kind of magic (packet)'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-7400087754447117800</id><published>2009-08-16T15:40:00.000-07:00</published><updated>2009-08-16T17:49:12.659-07:00</updated><title type='text'>NFS Mounting AVR3NGW 100</title><content type='html'>&lt;div style="text-align: justify;"&gt; To get nfs mounting to work, following steps are needed:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;change router / dhcp settings so that board / server can work with each other. In my case, I just chose a static setup because it makes life easy. My server is located at 192.168.1.101 (both tftp and nfs) while the avr device is located at 192.168.1.103. The gumstix stays at 192.168.1.100. Router gateway is at 192.168.1.1. The "static"-ness is achieved by setting appropriate rules on the router's dhcp server.  &lt;/li&gt;&lt;li&gt;expose appropriate root file system from a nfs mountable point on the build-server&lt;/li&gt;&lt;li&gt;  modify avr32ngw100's kernel so that nfs is created as part of the kernel image and not as a module  change uboot to boot from tftp instead of on board flash / sd-card&lt;/li&gt;&lt;li&gt;  change uboot arguments to pass root as nfs to linux kernel.&lt;/li&gt;&lt;li&gt;  ensure that root is not mounted on /dev/mtdblock, since it will already have been specified as bootargs to the kernel&lt;/li&gt;&lt;li&gt;  disable any dhcp or other disruptive network setup, since eth0 would already have been setup by uboot   &lt;/li&gt;&lt;/ol&gt; &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Modifying avr32kernel&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Under gumstix, this was simply done by the following set of commands:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cd build_arm_nofpu&lt;br /&gt;cd linux-gum-2.6.21&lt;br /&gt;make ARCH=arm menuconfig&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;However, under avr32, this is a little different. Actually, NFS support is built in to the kernel by default. This can be checked by inspecting the .config file in the kernel directory:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# grep --ignore-case nfs \&lt;br /&gt;buildroot-avr32-v2.3.0/project_build_avr32/atngw100/linux-2.6.27.6/.config&lt;br /&gt;&lt;br /&gt;CONFIG_NFS_FS=y&lt;br /&gt;CONFIG_NFS_V3=y&lt;br /&gt;# CONFIG_NFS_V3_ACL is not set&lt;br /&gt;# CONFIG_NFS_V4 is not set&lt;br /&gt;CONFIG_ROOT_NFS=y&lt;br /&gt;CONFIG_NFSD=m&lt;br /&gt;CONFIG_NFSD_V3=y&lt;br /&gt;# CONFIG_NFSD_V3_ACL is not set&lt;br /&gt;# CONFIG_NFSD_V4 is not set&lt;br /&gt;CONFIG_NFS_COMMON=y&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The NFS_FS=y and the CONFIG_ROOT_NFS=y imply that this is all setup nice and proper. We can also use the menuconfig method to check if things are setup as we want them:&lt;br /&gt;&lt;br /&gt;in the linux-2.6.27.6/ dir above, do&lt;br /&gt;&lt;code&gt;&lt;br /&gt; make ARCH=avr32 CROSS_COMPILE=avr32-linux- menuconfig&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;this should bring up the familiar menu. Browse to File Systems | Network File Systems ensure that “NFS Client support (for NFS v3)” and “Root file system on NFS” are built in (denoted by '*'.   denotes that they are loaded as modules. We don't want modules, but want built in since at boot up the kernel won't have an opportunity to load modules because no file-system would exist at that point to locate and provide the said modules). &lt;br /&gt;&lt;br /&gt;Since the default command contains this, it is good to know and keep around:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;     make ARCH=avr32 CROSS_COMPILE=avr32-linux- atngw100_defconfig&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;  Also when booting over TFTP, the kernel image must be provided. Avr32 Buildroot generally produces a kernel image called uImage (same as gumstix). However, this is then copied over to the binaries folder, found at &lt;br /&gt;&lt;code&gt;&lt;br /&gt;   buildroot-avr32-v2.3.0/binaries/atngw100/atngw100-linux-2.6.27.6.gz  &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;That this file is the same as uImage produced by the kernel may be verified using the cksum command:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cksum $(find ./ -iname uImage -print)&lt;br /&gt;127785873 1252230 ./arch/avr32/boot/images/uImage&lt;br /&gt;&lt;br /&gt;cksum ~/work/buildroot-avr32-v2.3.0/binaries/atngw100/atngw100-linux-2.6.27.6.gz&lt;br /&gt;127785873 1252230 ~/work/buildroot-avr32-v2.3.0/binaries/atngw100/atngw100-linux-2.6.27.6.gz&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So all that remains now is to set the appropriate commands in u-boot, copy over files to proper places and have this thing going!&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Preparing the root-fs &lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Since both the NGW100 and gumstix are buildroot systems they have a lot in common. However, the differences are significant enough to warrant independent and complete documentation.&lt;br /&gt;&lt;br /&gt;Firstly, the NGW100's root file system is typically produced as a tar file. Also it's generated root file system is present in a different path as compared with gumstix. In particular, the NGW100's root filesystem is located at:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /buildroot-avr32-v2.3.0/project_build_avr32/atngw100/root &lt;br /&gt;&lt;/code&gt;  &lt;br /&gt; we copy this over to ~/avr32ngw100/work/nfsroot &lt;br /&gt;&lt;code&gt;  &lt;br /&gt; cp -a buildroot-avr32-v2.3.0/project_build_avr32/atngw100/root/* ~/avr32ngw100/work/nfsroot &lt;br /&gt;&lt;/code&gt;  &lt;br /&gt; Ensure that the target file system has /dev/null and /dev/console. Sometimes, tar does not have the permission to create these nodes. &lt;br /&gt;&lt;code&gt;&lt;br /&gt; touch ~/avr32ngw100/work/nfsroot/dev/null &lt;br /&gt; touch ~/avr32ngw100/work/nfsroot/dev/console &lt;br /&gt;&lt;br /&gt; chmod 666 ~/avr32ngw100/work/nfsroot/dev/null ~/avr32ngw100/work/nfsroot/dev/console &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;  &lt;br /&gt; Ideally /dev/null and /dev/console are character special devices created by mknod &lt;br /&gt;  &lt;br /&gt;&lt;code&gt;  &lt;br /&gt;sudo mknod ~/avr32ngw100/work/nfsroot/dev/console c 5 &lt;br /&gt;sudo mknod ~/avr32ngw100/work/nfsroot/dev/null c 1 3  &lt;br /&gt;sudo chown hypo ~/avr32ngw100/work/nfsroot/dev/console ~/avr32ngw100/work/nfsroot/dev/null&lt;br /&gt;sudo chmod 666 ~/avr32ngw100/work/nfsroot/dev/console ~/avr32ngw100/work/nfsroot/dev/null&lt;br /&gt;&lt;/code&gt;  &lt;br /&gt;  &lt;br /&gt;However, this kept giving me problems. Also sometimes i would get a message "could not open initial console" on the serial terminal, so i went back to simply touching the files.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt; U-boot settings &lt;/h2&gt;&lt;br /&gt;  &lt;br /&gt; There are some good instructions at: &lt;br /&gt;&lt;a href=" http://support.atmel.no/knowledgebase/avr32studiohelp/com.atmel.avr32.tool.ngw100/html/filesystem_over_nfs_for_avr32_linux.html &lt;br /&gt;"&gt; http://support.atmel.no/knowledgebase/avr32studiohelp/com.atmel.avr32.tool.ngw100/html/filesystem_over_nfs_for_avr32_linux.html &lt;/a&gt;&lt;br /&gt;  &lt;br /&gt; However, once the tftp server is up and serving files, i ran in to an unhandled exception error and an endless loop of the board trying to restart. Turns out that the expanded kernel was trampling over the downloaded data. I computed the appropriate location to download the kernel to so that it won't get trampled over by the expanded kernel. &lt;br /&gt;  &lt;br /&gt;&lt;code&gt;  &lt;br /&gt;  perl -e '{my $image = 1.2 * 1024 * 1024; my $top_mem = 0x10000000 + 32 * 1024 * 1024; printf("0x%x 0x%x\n", $image, $top_mem - 2*$image);}'  &lt;br /&gt;  &lt;br /&gt;  0x133333 0x11d99999  &lt;br /&gt;&lt;/code&gt;  &lt;br /&gt;  &lt;br /&gt; the second figure is the download location. After doing this, I also ran in to a couple of webpages that indicated success with downloading to an address 0x1040000 &lt;br /&gt;  &lt;br /&gt; We want to leave enough space at the start of the memory section for the kernel to expand. The size computation in perl above helps us determine where to place this. We back-off twice the size of the compressed kernel from the top of the memory. My assumption was to leave the very top alone because some cpus jump to that address during startup. Also placing it close to the end gives more room in the beginning so that the expanded kernel doesn't overwrite the compressed image :) &lt;br /&gt;  &lt;br /&gt;&lt;code&gt;  &lt;br /&gt;  setenv bootcmd 'set ipaddr 192.168.1.103;tftp 0x10400000 avr32ngw100/uImage-n;bootm'  &lt;br /&gt;  or  &lt;br /&gt;  setenv bootcmd 'set ipaddr 192.168.1.103;tftp 0x11d99999 avr32ngw100/uImage-n;bootm'  &lt;br /&gt;&lt;/code&gt;  &lt;br /&gt;  &lt;br /&gt; next we setup the boot args that are passed to the linux kernel. In particular, we need to setup the ethernet interface and indicated that we're booting off nfs. The Uboot interpreter on this board however, can't handle the length of the command. So, we use the askenv command: &lt;br /&gt;  &lt;br /&gt; syntax of ip command is &lt;br /&gt;&lt;code&gt;&lt;br /&gt; ip=&amp;lt;client-ip&amp;gt;:&amp;lt;server-ip&amp;gt;:&amp;lt;gw-ip&amp;gt;:&amp;lt;netmask&amp;gt;:&amp;lt;hostname&amp;gt;:&amp;lt;device&amp;gt;:&amp;lt;autoconf&amp;gt; &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;  &lt;br /&gt;&lt;code&gt;              &lt;br /&gt; askenv:         &lt;br /&gt;/dev/nfs rw nfsroot=192.168.1.101:/home/hypo/avr32ngw100/work/nfsroot,nolock,rsize=1024,wsize=1024 console=ttyS0 ip=192.168.1.103:192.168.1.101:192.168.1.1:::eth0:off         &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;                &lt;br /&gt;                &lt;br /&gt;Copying and pasting the above might not work, so type away!        &lt;br /&gt;             &lt;br /&gt;Also disable network startup since this is done at boot up        &lt;br /&gt;&lt;code&gt;&lt;br /&gt;cd ~/avr32ngw100/work/nfsroot         &lt;br /&gt;mv etc/init.d/S20network etc/init.d/s20network         &lt;br /&gt;&lt;/code&gt;               &lt;br /&gt;                &lt;br /&gt;Change /etc/network/interfaces so that no auto setup happens on eth0 that can disrupt the nfs mount.        &lt;br /&gt;&lt;code&gt;&lt;br /&gt;         # Configure Loopback         &lt;br /&gt;         auto lo         &lt;br /&gt;         iface lo inet loopback         &lt;br /&gt;                &lt;br /&gt;         # Configure Ethernet 0         &lt;br /&gt;         # commenting out auto setup for eth0 because         &lt;br /&gt;         # this would already have happened during nfs root         &lt;br /&gt;         # boot up. Uncomment when not running with root over nfs         &lt;br /&gt;                &lt;br /&gt;         # auto eth0         &lt;br /&gt;         # iface eth0 inet dhcp         &lt;br /&gt;                &lt;br /&gt;         # i don't need this just yet, but will enable it later         &lt;br /&gt;         # Configure Ethernet 1         &lt;br /&gt;         # auto eth1         &lt;br /&gt;         # iface eth1 inet static         &lt;br /&gt;         # address 10.0.0.1         &lt;br /&gt;         # netmask 255.255.255.0         &lt;br /&gt;         # network 10.0.0.0         &lt;br /&gt;         # broadcast 10.0.0.255         &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;                &lt;br /&gt; Change /etc/fstab so that default mounting on / and /usr is disabled:        &lt;br /&gt;&lt;code&gt;                &lt;br /&gt;         # /etc/fstab: static file system information.         &lt;br /&gt;         #         &lt;br /&gt;         #                            &lt;br /&gt;               #mtd1  /  jffs2  defaults 0 0               &lt;br /&gt;               # commenting out following because root-fs is now nfs mounted, so /usr is also part of that and not needed anymore               &lt;br /&gt;               #mtd3  /usr  jffs2  defaults 0 0               &lt;br /&gt;                              &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;&lt;h2&gt; Server settings &lt;/h2&gt;&lt;br /&gt;                &lt;br /&gt;&lt;h3&gt; TFTP settings: &lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;Ensure that the compiled kernel image is placed in the right location. My tftp root is located at ~/tftpboot. And since it's serving both gumstix and ngw100 uImages, I've modified the tree a little bit so that it is scalabe for other targets / projects:        &lt;br /&gt;&lt;code&gt;&lt;br /&gt;         cd ~/tftpboot         &lt;br /&gt;         mkdir gumstix avr32ngw100         &lt;br /&gt;         cp ~/avr32ngw100/work/nfsroot/boot/uImage ~/tftpboot/avr32ngw100/uImage         &lt;br /&gt;         cp ~/gumstix/uImage ~/tftpboot/gumstix/uImage         &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;                &lt;br /&gt;Ensure that the path above matches the path mentioned in bootcmd on the target.        &lt;br /&gt;Change appropriate config files on the server to ensure that the new device has access to these folders:        &lt;br /&gt;&lt;br /&gt;Change /etc/hosts.allow.        &lt;br /&gt;&lt;code&gt;                &lt;br /&gt;         portmap: 192.168.1.100 , 192.168.1.101 , 192.168.1.103          &lt;br /&gt;         lockd: 192.168.1.100 , 192.168.1.101 , 192.168.1.103          &lt;br /&gt;         mountd: 192.168.1.100 , 192.168.1.101 , 192.168.1.103         &lt;br /&gt;         statd: 192.168.1.100 , 192.168.1.101 , 192.168.1.103          &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;                &lt;br /&gt;        NOTE: /etc/hosts.deny stays the same:        &lt;br /&gt;&lt;code&gt;                &lt;br /&gt;         # ALL: PARANOID         &lt;br /&gt;         lockd:ALL         &lt;br /&gt;         mountd:ALL         &lt;br /&gt;         rquotad:ALL         &lt;br /&gt;         statd:ALL         &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;                &lt;br /&gt;                &lt;br /&gt; /etc/exports:        &lt;br /&gt;&lt;code&gt;                &lt;br /&gt;         # Cast of characters         &lt;br /&gt;         # 192.168.1.100 - gumstix         &lt;br /&gt;         # 192.168.1.101 - server          &lt;br /&gt;         # 192.168.1.103 - avr32ngw100         &lt;br /&gt;                &lt;br /&gt;         # gumstix tftp boot-point         &lt;br /&gt;         /home/hypo/gumstix/tftpboot  192.168.1.100(ro,sync) 192.168.1.101(ro,sync) 192.168.1.103(ro,sync)         &lt;br /&gt;                &lt;br /&gt;         # avr32ngw100 boot point         &lt;br /&gt;         /home/hypo/avr32ngw100/work/tftpboot 192.168.1.100(ro,sync) 192.168.1.101(ro,sync)  192.168.1.103(ro,sync)         &lt;br /&gt;                &lt;br /&gt;         # gumstix root fs         &lt;br /&gt;         /home/hypo/gumstix/nfsroot 192.168.1.100(rw,sync,no_root_squash) 192.168.1.101(rw,sync)  192.168.1.103(rw,sync)         &lt;br /&gt;                &lt;br /&gt;         # avr32ngw root fs         &lt;br /&gt;         /home/hypo/avr32ngw100/work/nfsroot 192.168.1.100(rw,sync,no_root_squash) 192.168.1.101(rw,sync) 192.168.1.103(rw,sync,no_root_squash)         &lt;br /&gt;&lt;/code&gt;                &lt;br /&gt;                &lt;br /&gt;Note the rw,no_root_squash options for the development boards. this allows them to mount the paths with root privileges.         &lt;br /&gt;&lt;br /&gt;Restart tftpd and nfs-servers&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo /etc/init.d/tftpd restart&lt;br /&gt;sudo /etc/init.d/nfs-user-server restart&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;PS: there's probably a good reason why i'm running a user space nfs server instead of the usual kernel space version, but it eludes me at the moment. Perhaps I wanted to export heterogeneous filesystems (ntfs + ext3) under one nfs mount point. But since I didn't note my rationale, I have no idea right now. I see no reason for a kernel space nfs server to not work with this setup.&lt;br /&gt;&lt;br /&gt;             &lt;br /&gt;Test the tftp and nfs connections on the server before struggling with the board:        &lt;br /&gt;                &lt;br /&gt;&lt;code&gt;                &lt;br /&gt;         # mkdir ~/temp/test         &lt;br /&gt;         # cd ~/temp/test         &lt;br /&gt;         # tftp         &lt;br /&gt;         tftp&gt; get avr32ngw100/uImage         &lt;br /&gt;         1 file xxx bytes         &lt;br /&gt;         tftp&gt; quit         &lt;br /&gt;         # ls uImage         &lt;br /&gt;         uImage         &lt;br /&gt;                &lt;br /&gt;         # rm *         &lt;br /&gt;         # cd ../         &lt;br /&gt;         #  sudo mount -t nfs 192.168.1.101:/home/hypo/avr32ngw100/work/nfsroot/ ~/temp/test         &lt;br /&gt;         # ls         &lt;br /&gt;         bin         etc         lost+found  proc        tmp         &lt;br /&gt;         boot        home        media       root        usr         &lt;br /&gt;         config      lib         mnt         sbin        var         &lt;br /&gt;         dev         linuxrc     opt         sys         www         &lt;br /&gt;         # umount ~/temp/test         &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ironically, it took me half a day to get the setup going and a whole day to blog about it. There's infact more I've already done, just haven't gotten around to bloggin about it :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-7400087754447117800?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/7400087754447117800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=7400087754447117800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7400087754447117800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7400087754447117800'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/08/nfs-mounting-avr3ngw-100.html' title='NFS Mounting AVR3NGW 100'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-2452412234582067390</id><published>2009-08-09T17:20:00.000-07:00</published><updated>2009-08-09T18:24:52.221-07:00</updated><title type='text'>Buildroot on AVR32NGW100</title><content type='html'>&lt;div style="text-align: justify;"&gt;Getting buildroot going for this new toy was far easier than on gumstix. However, there are still a few steps needed that are different from the recommended steps. So far being on an "unsupported" Ubuntu 8.10 system hasn't given me a lot of grief. Yet.&lt;br /&gt;&lt;br /&gt;Useful link: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4401.&lt;br /&gt;&lt;br /&gt;Anyhoo, this is what I did do:&lt;br /&gt;&lt;br /&gt;download the AVRBuildroot tar file from &lt;a href="http://www.atmel.com/dyn/resources/prod_documents/buildroot-avr32-v2.3.0.tar.tar"&gt;http://www.atmel.com/dyn/resources/prod_documents/buildroot-avr32-v2.3.0.tar.tar&lt;/a&gt;. Note that the ".tar" extension is repeated, so you can easily get rid of that&lt;br /&gt;&lt;br /&gt;Untar to chosen folder:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;tar xvjf buildroot-avr32-v2.3.0.tar.tar&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;this should create a new folder named buildroot-avr32-v2.3.0. I have mine at the following location:&lt;br /&gt;~/avr32ngw100/work/buildroot-avr32-v2.3.0/&lt;br /&gt;&lt;br /&gt;Next, create a default configuration for your buildroot&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cd buildroot-avr32-v2.3.0/&lt;br /&gt;make atngw100_defconfig&lt;br /&gt;make&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Normally, you'd leave at this point and go do your laundry or something that consumes time. However, in my case, the build broke because it wasn't able to download docs from the AVR website. Since I'm now a buildroot *cough* expert, i simply set that option to be false.&lt;br /&gt;&lt;br /&gt;edit buildroot-avr32-v2.3.0/.config and change&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;BR2_PACKAGE_AVR32_WIKI_DOCS=y&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;# BR2_PACKAGE_AVR32_WIKI_DOCS is not set&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;then do&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;make&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and you have your very first buildroot image for avr32!&lt;br /&gt;&lt;br /&gt;Once you have good build, all packages would have been downloaded in the dl folder. We should "cache" this so that these same packages needn't be downloaded everytime a clean build is kicked off.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cd ~/avr32ngw100/work/buildroot-avr32-v2.3.0&lt;br /&gt;mv dl ../dl_cache&lt;br /&gt;ln -s ~/avr32ngw100/work/dl_cache dl&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;now ls -la dl should show you something like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; ls -la dl&lt;br /&gt;lrwxrwxrwx 1 hypo hypo 38 2009-08-09 18:05 dl -&gt; ~/avr32ngw100/work/dl_cache/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Next up, getting the image on the device using tftp and nfsbooting. Since avr32ngw100 also uses U-BOOT, this should be similar to the setup needed for gumstix!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-2452412234582067390?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/2452412234582067390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=2452412234582067390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2452412234582067390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2452412234582067390'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/08/buildroot-on-avr32ngw100.html' title='Buildroot on AVR32NGW100'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-9111955119908973211</id><published>2009-08-08T20:58:00.000-07:00</published><updated>2009-08-09T23:56:45.588-07:00</updated><title type='text'>Getting AVR32Studio running on Ubuntu 8.10</title><content type='html'>&lt;div style="text-align: justify;"&gt;I recently  bought myself a new toy and wanted to program it right away. The recommended way is the AVR32 toolchain. However, this isn't supported on Ubuntu 8.10. It's supported on 8.04 and 9.04, but since I'm on 8.10 I'm SOL. I couldn't upgrade to 9.04 Jaunty because of space issues (that's another blog and another story).&lt;br /&gt;&lt;br /&gt;Well, anyhoo, Google and Bing are the solution to Linsux heartaches. Found the solution to my problems here: &lt;a href="http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=71919"&gt;http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=71919&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, i followed these instructions:&lt;br /&gt;&lt;br /&gt;goto &lt;a href="http://packages.ubuntu.com/hardy/i386/libxerces27/download"&gt;http://packages.ubuntu.com/hardy/i386/libxerces27/download&lt;/a&gt;&lt;br /&gt;choose a mirror and open with gdebi&lt;br /&gt;&lt;br /&gt;it will ask you too install the package. Do it.&lt;br /&gt;&lt;br /&gt;now do&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo apt-get install avr32-gnu-toolchain&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Install AVR32Studio&lt;br /&gt;&lt;br /&gt;However, when you try to build a simple hello world application, AVR32Studio croaks with the following error&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Unable to find full path for "avr32-linux-gcc"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Even though the binaries are installed, the name that AVR32Studio wants aren't there. To fix this, create links with correct names, e.g. create a link for avr32-linux-gcc that points to avr32-gcc.&lt;br /&gt;&lt;br /&gt;Since there are several files and i'm lazy enough to not do them manually, i wrote the following script&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;use warnings;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;die("can't open command") unless open(INPUT,"ls -1 /usr/bin/avr*-* | ");&lt;br /&gt;&lt;br /&gt;while(&amp;lt; INPUT &amp;gt;)&lt;br /&gt;{&lt;br /&gt;  chomp;&lt;br /&gt;  my $source = $_;&lt;br /&gt;  my $target = $source;&lt;br /&gt;  $target =~ s/-/-linux-/g;&lt;br /&gt;  system("sudo ln -s $source \t $target\n");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Build project again and it should work!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-9111955119908973211?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/9111955119908973211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=9111955119908973211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/9111955119908973211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/9111955119908973211'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/08/getting-avr32studio-running-on-ubuntu.html' title='Getting AVR32Studio running on Ubuntu 8.10'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-4883201743015635451</id><published>2009-08-08T19:54:00.000-07:00</published><updated>2009-08-16T19:13:05.643-07:00</updated><title type='text'>Waking a sleeping giant</title><content type='html'>&lt;div style="text-align: justify;"&gt;I'm a lazy engineer. I like my machines to do my work for me. In particular, I like my machines to wakeup when I'm ready to work and I hate having to walk the 5 feet or less to turn on the damned 'puter.&lt;br /&gt;&lt;br /&gt;Of course, I'm not the first one to be bothered by this so the good folks at AMD wrote a few patents and did some initial work on this. Other enterprising, but apparently equally physical exertion averse individuals built the technology into network cards and the supportive folks in the Linux community decided to make it a part of the Ubuntu 8.10 release.&lt;br /&gt;&lt;br /&gt;All seemed to work fine, except that my Ubuntu box could no longer wake up on LAN. It worked fine if it was shut down from Winders XP, but no joy if Linux was involved. Googling and Binging for it finally brought me to the solution. And by that I mean, I came across a page that described how to fix my exact problem and one that I didn't have any difficulty following in my usual sleep deprived state.&lt;br /&gt;&lt;br /&gt;found here: &lt;a href="http://ubuntuforums.org/showthread.php?t=1138704"&gt;http://ubuntuforums.org/showthread.php?t=1138704&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So here's what one does to have WOL working on Hardy Ubuntu 8.10&lt;br /&gt;&lt;br /&gt;First things first:&lt;br /&gt;&lt;br /&gt;Ensure that your hardware supports WOL. You find this by going into your BIOS. In my case, the Dell box had options to turn off power to the NIC to save power. I nixed that: you want the NIC to be alive so that it can "listen" to the WOL magic packets.&lt;br /&gt;&lt;br /&gt;Also, there were other hibernation / ACPI settings for saving power during hibernation. I switched these to S1. The other option, S3, would have killed the NIC again, and so is a no-no.&lt;br /&gt;&lt;br /&gt;Next, install ethtool if it isn't already installed&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo apt-get install ethtool&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Check if the NIC supports WOL (assuming eth0)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo ethtool eth0 | grep --ignore-case wake&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Output should look like below:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Supports Wake-on: g&lt;br /&gt;Wake-on: d&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;the "d" on the second line indicates that WOL is currently disabled. We want to set this to g to allow WOL to work.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo ethtool -s eth0 wol g&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To check if this works, halt / suspend the system and issue a WOL from another machine:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;other-machine:$&gt; wakeonlan 00:BA:AD:BA:BE:00:00&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If all the settings took effect, then you are good to go. If not, check the /etc/init.d/halt script&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo vi /etc/init.d/halt&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;search for NETDOWN and ensure that it is set to "no".&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;NETDOWN=no&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Repeate above steps with ethtool and see if this works. If it does, it means that basic functionality is present, but we need to make sure that NIC is forced to stay on during shutdown.&lt;br /&gt;&lt;br /&gt;For this we will create a script that can be called on halt / hibernate.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo emacs /etc/init.d/wakeonlanconfig.sh&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;add the following lines:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;ethtool -s eth0 wol g&lt;br /&gt;exit&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Add execute permissions to this file and add to rc infrastructure:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo chmod a+x wakeonlanconfig.sh&lt;br /&gt;sudo update-rc.d -f wakeonlanconfig.sh defaults&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;At this point you should be good to go. To test, halt / hibernate / stand-by the system and issue a WOL from the other machine. The machine should wake up like magic.&lt;br /&gt;&lt;br /&gt;DONE. :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-4883201743015635451?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/4883201743015635451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=4883201743015635451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4883201743015635451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/4883201743015635451'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/08/waking-sleeping-giant.html' title='Waking a sleeping giant'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-808448016540802423</id><published>2009-07-26T23:40:00.000-07:00</published><updated>2009-07-27T00:26:02.543-07:00</updated><title type='text'>Adding a new drive to ubuntu</title><content type='html'>Given the awesome low prices on hard-drives, i bought myself a Hitachi deskstar 1 TB drive. yep, 1 TERA byte! I still remember the days when 64 MB RAM and 120 MB hard-drive on a Pentium II constituted a "high-end" system.&lt;br /&gt;&lt;br /&gt;(sidebar: OK, now I'm officially old. Anytime anyone starts a sentence with 'I remember the days when...', they're fucking officially OLD. So there. I know it's been more than 10 years since I was a teenager and I'm comfortable with it :P)&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Windows installation was a cinch: &lt;/li&gt;&lt;li&gt;insert pci card, &lt;/li&gt;&lt;li&gt;power up box, &lt;/li&gt;&lt;li&gt;administrative tools&lt;/li&gt;&lt;li&gt;computer management&lt;/li&gt;&lt;li&gt;disk management (local)&lt;/li&gt;&lt;li&gt;insert driver CD&lt;/li&gt;&lt;li&gt;reboot and navigate back to disk management and assign apposite drive letter (E: for new 1 TB drive, G: for CD, since F: is reserved for the MyBook USB backup and I'd hate changing a whole bunch of rules).&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Anyways, the moment I booted up the system into linux, I knew something was off. I was happy that the new drive was instantly recognized, but it came up where my original /dev/sda1 (windows C:) had been. This threw of several mount / mapping rules so that none of my mediatomb shares were available anymore.&lt;br /&gt;&lt;br /&gt;the solution to the problem is to use UUIDS.&lt;br /&gt;&lt;br /&gt;found the n00b introduction at the following page helpful. (Bing and Google are your friends, though transitivity does not apply in this case).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.unixtutorial.org/2008/05/ubuntu-uuid-how-to/"&gt;http://www.unixtutorial.org/2008/05/ubuntu-uuid-how-to/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see the UUIDs of the various devices known to the system, use the following command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;blkid&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;the following commands can be used to manually mount the individual drives using UUIDs (UUIDs used in example are not real).&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mkdir /mnt/windowsC /mnt/windowsD /mnt/windowsE&lt;br /&gt;sudo mount -t ntfs -U BAADBABEDOOD /mnt/windowsC&lt;br /&gt;sudo mount -t ntfs -U DEADBABEDOOD /mnt/windowsD/&lt;br /&gt;sudo mount -t ntfs -U BAADBEEFFOOD /mnt/windowsE/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/quote&gt;&lt;br /&gt;&lt;br /&gt;EDIT /etc/fstab to create the following entries to allow easier / auto-mounting if needed&lt;br /&gt;&lt;br /&gt;&lt;quote&gt;more help on fstab can be found at &lt;a href="https://help.ubuntu.com/community/Fstab"&gt;https://help.ubuntu.com/community/Fstab&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#/dev/sda1 /mnt/windowsC ntfs-3g,rw,user,auto 0 0&lt;br /&gt;UUID=BAADBABEDOOD /mnt/windowsC ntfs-3g,rw,user,auto 0 0&lt;br /&gt;#/dev/sdb1 /mnt/windowsD ntfs-3g,rw,user,auto 0 0&lt;br /&gt;UUID=DEADBABEDOOD /mnt/windowsD ntfs-3g,rw,user,auto 0 0&lt;br /&gt;UUID=BAADBEEFFOOD /mnt/windowsE ntfs-3g,rw,user,auto 0 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/quote&gt;&lt;br /&gt;&lt;br /&gt;At this point, a reboot is needed to fix the drive assignments. (ideally you could just issue the following command to remount all drives:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo mount -a&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;However, it might still be worth while to observe system performance after a reboot / cold-start for any glitches, since this will run all necessary prior scripts as well).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-808448016540802423?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/808448016540802423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=808448016540802423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/808448016540802423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/808448016540802423'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/07/adding-new-drive-to-ubuntu.html' title='Adding a new drive to ubuntu'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-8439739990763332953</id><published>2009-07-21T06:03:00.000-07:00</published><updated>2009-07-21T08:37:56.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linsux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='cups'/><category scheme='http://www.blogger.com/atom/ns#' term='mfc-210c'/><category scheme='http://www.blogger.com/atom/ns#' term='printer'/><category scheme='http://www.blogger.com/atom/ns#' term='brother'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='driver'/><title type='text'>Printing in Ubuntu</title><content type='html'>I had my linux laptop printing to my Brother MFC-210c printer, but since i've changed laptops and now finally got a dedicated linux machine, I wanted to setup a print server. First things first, get the printer to work with CUPS.&lt;br /&gt;&lt;br /&gt;Followed instructions from this website:&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=590793"&gt;http://ubuntuforums.org/showthread.php?t=590793&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also very useful was Brother's linux support site (very happy that they're doing this! my next printer is probably going to be Brother too when this one fails!)&lt;br /&gt;&lt;br /&gt;&lt;p&gt;*&lt;a href="http://solutions.brother.com/linux/en_us/index.html"&gt;http://solutions.brother.com/linux/en_us/index.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;*&lt;a href="http://solutions.brother.com/linux/en_us/instruction_prn1a.html#dpkg1"&gt;http://solutions.brother.com/linux/en_us/instruction_prn1a.html#dpkg1&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;machine arch: intel p4 HT running ubuntu 8.10&lt;br /&gt;&lt;br /&gt;(repeated below for local record)&lt;br /&gt;&lt;p&gt;* install tcsh: &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo apt-get install tcsh&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;* download lpd and cups drivers (.dep packages) &lt;br /&gt;from &lt;a href="http://solutions.brother.com/Library/sol/printer/linux/rpmfiles/lpr_debian/mfc210clpr-1.0.2-1.i386.deb"&gt;here&lt;/a&gt; and &lt;a href="http://solutions.brother.com/Library/sol/printer/linux/rpmfiles/cups_wrapper/cupswrapperMFC210C-1.0.2-3.i386.deb"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cd ~/temp/brother-driver&lt;br /&gt;sudo mkdir /var/spool/lpd&lt;br /&gt;sudo dpkg -i --force-all --force-architecture mfc210clpr-1.0.2-1.i386.deb &lt;br /&gt;sudo mkdir /usr/share/cups/model&lt;br /&gt;sudo dpkg -i --force-all cupswrapperMFC210C-1.0.2-3.i386.deb &lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;NB: replace above .deb package with appropriate ones if things change later.&lt;br /&gt;&lt;br /&gt;check if the drivers were correctly installed:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; dpkg -l | grep --ignore-case brother&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above should generate an output that looks like below:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ii  brscan2                                    0.2.4                                                      Brother Scanner Driver&lt;br /&gt;ii  cupswrappermfc210c                         1.0.2-3                                                    Brother MFC210C CUPS wrapper driver&lt;br /&gt;ii  mfc210clpr                                 1.0.2-1                                                    Brother lpr Inkjet Printer Definitions&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;At this point, i was ready to print a test page. However going to System | Administration | Printing showed me two Brother MFC-210C printers. One was listed as a "text only printer", which I simply deleted (because it wasn't working to begin with). Check on the remaining icon that it is listed as "Brother MFC-210C CUPS v1.1" (right click, select Properties).&lt;br /&gt;&lt;br /&gt;Print a test page!&lt;br /&gt;&lt;br /&gt;Next step, getting the printer shared so that windows machines can print to it.&lt;br /&gt;&lt;br /&gt;This needs samba installed and working, which i'm assuming is already done. if not, there's another page on this blog that should help you get up and running.&lt;br /&gt;&lt;br /&gt;The following howto page is helpful&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tldp.org/HOWTO/Debian-and-Windows-Shared-Printing/sharing_with_windows.html"&gt;http://tldp.org/HOWTO/Debian-and-Windows-Shared-Printing/sharing_with_windows.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, these throw open the system to all, so i decided to make some modifications&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cd /etc/samba&lt;br /&gt;sudo vi /etc/samba/smb.conf.master&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;add / modify the following section&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[printers]&lt;br /&gt;   comment = All Printers&lt;br /&gt;   browseable = yes&lt;br /&gt;   path = /var/spool/samba&lt;br /&gt;   printable = yes&lt;br /&gt;   guest ok = no&lt;br /&gt;   read only = yes&lt;br /&gt;   create mask = 0700&lt;br /&gt;   use client driver = yes&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;restart samba&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo testparm -s smb.conf.master &gt; smb.conf&lt;br /&gt;sudo /etc/init.d/samba restart&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Modify cups files&lt;br /&gt;&lt;br /&gt;Windows printer drivers format their output for the printer before sending it across the network. You must configure CUPS to accept the pre-formatted output by uncommenting the following line from &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo vi /etc/cups/mime.convs&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;application/octet-stream   application/vnd.cups-raw   0   -&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Also uncomment the following line from &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo /etc/cups/mime.types&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;application/octet-stream&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now CUPS must be told to allow connections from other machines on the network. Add these lines to /etc/cups/cupsd.conf: &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;Location /printers&gt;&lt;br /&gt; AuthType None&lt;br /&gt; Order Deny,Allow&lt;br /&gt; Deny From All&lt;br /&gt; Allow From 192.168.1.*/255.255.255.0&lt;br /&gt;&lt;/Location&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This allows only machines on the local network to access the cups driver.&lt;br /&gt;&lt;br /&gt;restart the cups daemon&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo /etc/init.d/cups restart&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-8439739990763332953?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/8439739990763332953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=8439739990763332953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8439739990763332953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8439739990763332953'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/07/printing-in-ubuntu.html' title='Printing in Ubuntu'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-7574271251068761058</id><published>2009-07-05T03:28:00.000-07:00</published><updated>2009-07-05T03:37:59.197-07:00</updated><title type='text'>VNC viewer for Linux</title><content type='html'>When connecting to a Ubuntu machine, from a linux machine, I've been using vncviewer. However, from a vista laptop, i had been using TightVNC. Overall, TightVNC is a good application, BUT the most frustrating of "features" is the lack of ALT+TAB support. i consider this a deal breaker. I had wanted to switch to RealVNC right away, but then resisted because somehow I felt that it wasn't a free app.&lt;br /&gt;&lt;br /&gt;Turns out I was mis-informed. sort of. Apparently, the newest version is non-free. The older version (VNC Free Edition Viewer for Windows, Stand-alone Viewer, &lt;br /&gt;Version 4.1.3) found &lt;a href="http://www.realvnc.com/cgi-bin/download.cgi"&gt;here&lt;/a&gt; is free! Yay! RealVNC works so much better now that ALT+TAB is a possibility :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-7574271251068761058?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/7574271251068761058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=7574271251068761058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7574271251068761058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7574271251068761058'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/07/vnc-viewer-for-linux.html' title='VNC viewer for Linux'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-8393356321622949682</id><published>2009-04-09T18:02:00.000-07:00</published><updated>2009-04-09T18:47:41.926-07:00</updated><title type='text'>changing uclibc config</title><content type='html'>i've been having issues getting gdb to break into multi-threaded code. it ends up dying due to SIGTRAP. Apparently this is due to a disconnect between lipthread.so and libthread_db.so. &lt;br /&gt;&lt;br /&gt;found the following threads: &lt;br /&gt;http://www.nabble.com/gdb-can%27t-see-call-stack%3A-SIGTRAP-td22615190.html#a22615190&lt;br /&gt;http://sourceware.org/bugzilla/show_bug.cgi?id=8963&lt;br /&gt;http://sourceware.org/ml/gdb-patches/2005-10/msg00044.html&lt;br /&gt;&lt;br /&gt;the solution was to rebuild uclibc. But i had a heck of a time trying to figure out how to do this. Some amount of googling and head-banging gave me the following page:&lt;br /&gt;&lt;br /&gt;http://buildroot.uclibc.org/buildroot.html&lt;br /&gt;&lt;br /&gt;which advised me to run &lt;br /&gt;&lt;br /&gt;make uclibc-menuconfig&lt;br /&gt;&lt;br /&gt;However, doing this completely broke my build. i had to go back to scratch and download a fresh build-root. i'm sure there's an easy way to recover from what i did, but i just didn't have the time to figure out what. &lt;br /&gt;&lt;br /&gt;so, new build headaches aside, the thing to do is:&lt;br /&gt;&lt;br /&gt;make ARCH=arm uclibc-menuconfig&lt;br /&gt;&lt;br /&gt;Now, by default, this drops a file at build_arm_nofpu/uclibc/.config. And the buildroot documentation page above instructs to copy this over to toolchain/uClibc/uClibc.config. In my buildroot however, the dropped file is toolchain/uClibc/uClibc-verdex.config. &lt;br /&gt;&lt;br /&gt;cp toolchain/uClibc/uClibc-verdex.config toolchain/uClibc/uClibc.config&lt;br /&gt;&lt;br /&gt;I would need to copy this over to uClibc.config-locale if locales were turned on, but in my case, they're not. so uClibc.config is the file in I need to replace.&lt;br /&gt;&lt;br /&gt;cd /home/hypo/gumstix/gumstix-buildroot-1614-extracted&lt;br /&gt;make&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-8393356321622949682?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/8393356321622949682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=8393356321622949682' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8393356321622949682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8393356321622949682'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/04/changing-uclibc-config.html' title='changing uclibc config'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-7979608660943645349</id><published>2009-03-30T18:16:00.001-07:00</published><updated>2009-08-16T19:10:36.610-07:00</updated><title type='text'>rebuilding gumstix gdb</title><content type='html'>Did a make clean on my gumstix tree and tried to rebuild (why? that's material for another post). Got stuck at gdb with the following error:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;gcc -DHAVE_CONFIG_H -I. -I/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes -I. -D_GNU_SOURCE -I. -I/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes -I../bfd -I/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes/../include -I/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes/../bfd -I/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes/../intl -I../intl -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -c /home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes/arm-dis.c -o arm-dis.o&lt;br /&gt;checking for canonicalize_file_name... cc1: warnings being treated as errors&lt;br /&gt;/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes/arm-dis.c: In function 'print_insn_thumb16':&lt;br /&gt;/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes/arm-dis.c:2155: error: format not a string literal and no format arguments&lt;br /&gt;/home/hypo/gumstix/gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdb-6.4/opcodes/arm-dis.c:2162: error: format not a string literal and no format arguments&lt;br /&gt;make[5]: *** [arm-dis.lo] Error 1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I remembered having solved it before, so started searching and sure enough, found my question and answer on the Nabble site!&lt;br /&gt;&lt;br /&gt;http://www.nabble.com/make-gdbclient-failure-tt21114770.html#a21114770&lt;br /&gt;&lt;br /&gt;so, here's the fix:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;FWIW, edited gumstix-buildroot-1614/toolchain_build_arm_nofpu/gdbclient-6.4/opcodes/Makefile&lt;br /&gt;removed -Werror and it worked&lt;br /&gt;&lt;br /&gt; diff Makefile Makefile.2008-12-21&lt;br /&gt;179c179&lt;br /&gt;&lt; WARN_CFLAGS = -W -Wall -Wstrict-prototypes -Wmissing-prototypes&lt;br /&gt;---&lt;br /&gt;&gt; WARN_CFLAGS = -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-7979608660943645349?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/7979608660943645349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=7979608660943645349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7979608660943645349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7979608660943645349'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/03/rebuilding-gumstix-gdb.html' title='rebuilding gumstix gdb'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-6085439528089060817</id><published>2009-01-29T01:52:00.000-08:00</published><updated>2009-01-29T02:02:50.319-08:00</updated><title type='text'>You can check-out any time you like, but you can never leave (or check-in)</title><content type='html'>With apologies to The Eagles.&lt;br /&gt;&lt;br /&gt;So I was trying to check-in my work to my svn repository when it kept running into files it didn't have permissions for. This frustrated me for quite sometime because apparently there are several such files (and all seem to have a size of 0 bytes / blocksize) and changing each one of those with "chmod 644" got tiresome really quickly. And svn is deceptive that way too because it would just croak and die on that file and not move any forward.&lt;br /&gt;&lt;br /&gt;I had run in to this issue earlier, but didn't have the time to look in to what was exactly causing the problem. Finally figured out that because the files were of size zero, apparently tar dropped them there with no permissions what so ever. I kid you not, ls -la on the offending file showed permissions as "-------------"!&lt;br /&gt;&lt;br /&gt;so, I whipped up the following perl script to automatically chmod the offending file to correct permissions without disturbing any other files / permissions.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/perl&lt;br /&gt;#author: hypothetical25&lt;br /&gt;#created: 2009-01-29&lt;br /&gt;# this is a file to add a given directory to svn without being stuck by permission issues.&lt;br /&gt;# i frequently found that svn add * was getting stuck because it would run in to files that didn't have the correct permissions set on them. Typically these files were extracted from some tar ball&lt;br /&gt;#Copyright: all rights reserved.&lt;br /&gt;#if you want to use this, drop me a line (or leave a comment on this blog)&lt;br /&gt;&lt;br /&gt;# run svn&lt;br /&gt;# if output matchs svn: Can't open file '\(.*\)': Permission denied&lt;br /&gt;# chmod 744 $1&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;&lt;br /&gt;open FH, "svn add --force * 2&gt;&amp;amp;1 |" or die "can't open svn";&lt;br /&gt;my $error_pattern;&lt;br /&gt;$error_pattern = "svn.*open file \'(.*)\': Permission denied";&lt;br /&gt;while(&lt;fh&gt;)&lt;br /&gt;{&lt;br /&gt;    chomp;&lt;br /&gt;    # print "$_\n";&lt;br /&gt;    if(/$error_pattern/)&lt;br /&gt;    {&lt;br /&gt;    print "found an error with file [$1]\n";&lt;br /&gt;    system "chmod", "744", $1;&lt;br /&gt;    close FH;&lt;br /&gt;    open FH, "svn add --force * 2&gt;&amp;amp;1 |" or die "can't open svn";&lt;br /&gt;   &lt;br /&gt;    }&lt;br /&gt;    print "read [$_]\n";&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-6085439528089060817?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/6085439528089060817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=6085439528089060817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6085439528089060817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6085439528089060817'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/01/you-can-check-out-any-time-you-like-but.html' title='You can check-out any time you like, but you can never leave (or check-in)'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-7956908042735464722</id><published>2009-01-25T16:15:00.000-08:00</published><updated>2009-01-25T17:29:22.359-08:00</updated><title type='text'>It's alive!</title><content type='html'>I have image capture working on the Gumstix!. had to jump through a few hoops, but it is finally here! Next up:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Measure much current it consumes  &lt;/li&gt;&lt;li&gt;Control GPIO lines&lt;/li&gt;&lt;li&gt;Determine processor performance various image processing routines&lt;/li&gt;&lt;li&gt;Enable ffmpeg&lt;/li&gt;&lt;li&gt;Actual images from the board.&lt;/li&gt;&lt;/ol&gt;update: photos from the gumstix:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_jVI6VrkzbUw/SX0QoZVg_hI/AAAAAAAAAFw/eMXumI3Nk8c/s1600-h/12:31:1969-16:22:00-P0219.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 352px; height: 288px;" src="http://1.bp.blogspot.com/_jVI6VrkzbUw/SX0QoZVg_hI/AAAAAAAAAFw/eMXumI3Nk8c/s400/12:31:1969-16:22:00-P0219.jpg" alt="" id="BLOGGER_PHOTO_ID_5295407023039512082" border="0" /&gt;&lt;/a&gt;one of the first images from the gumstix. I still haven't been able to figure out why I get these artifacts every now and then. Initially I thought they were some compensation algorithm in the driver or the camera itself going awry, but I see these even during static scenes. Not sure if the audio data is being interpretted incorrectly by the driver.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jVI6VrkzbUw/SX0QoVVJ7BI/AAAAAAAAAFo/T5WrHaCJ7Ck/s1600-h/12:31:1969-16:21:20-P0211.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 352px; height: 288px;" src="http://2.bp.blogspot.com/_jVI6VrkzbUw/SX0QoVVJ7BI/AAAAAAAAAFo/T5WrHaCJ7Ck/s400/12:31:1969-16:21:20-P0211.jpg" alt="" id="BLOGGER_PHOTO_ID_5295407021964258322" border="0" /&gt;&lt;/a&gt;Gumstix camera looking at the gumstix&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jVI6VrkzbUw/SX0QoaPl-zI/AAAAAAAAAFg/7-IsfzBRkfo/s1600-h/12:31:1969-16:34:10-P0366.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 352px; height: 288px;" src="http://2.bp.blogspot.com/_jVI6VrkzbUw/SX0QoaPl-zI/AAAAAAAAAFg/7-IsfzBRkfo/s400/12:31:1969-16:34:10-P0366.jpg" alt="" id="BLOGGER_PHOTO_ID_5295407023283108658" border="0" /&gt;&lt;/a&gt;Self-awareness: Gumstix camera (hint: round eye like thing) looking in the mirror with gumstix in the foreground. You can see the white serial cable reflected, and the image of the duracell. The blue ethernet cable reflection is seen too, behind the reflected battery.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-7956908042735464722?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/7956908042735464722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=7956908042735464722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7956908042735464722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/7956908042735464722'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/01/its-alive.html' title='It&apos;s alive!'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_jVI6VrkzbUw/SX0QoZVg_hI/AAAAAAAAAFw/eMXumI3Nk8c/s72-c/12:31:1969-16:22:00-P0219.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-948532548921719377</id><published>2009-01-11T16:48:00.000-08:00</published><updated>2009-01-11T18:24:00.832-08:00</updated><title type='text'>Getting Mediatomb to start at system startup</title><content type='html'>Guide from: &lt;a href="http://icrontic.com/forum/showthread.php?p=590832"&gt;http://icrontic.com/forum/showthread.php?p=590832&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;hypo@homer-slaver:/etc$ sudo update-rc.d -f mediatomb remove&lt;br /&gt; Removing any system startup links for /etc/init.d/mediatomb ...&lt;br /&gt;   /etc/rc0.d/K20mediatomb&lt;br /&gt;   /etc/rc1.d/K20mediatomb&lt;br /&gt;   /etc/rc2.d/S20mediatomb&lt;br /&gt;   /etc/rc3.d/S20mediatomb&lt;br /&gt;   /etc/rc4.d/S20mediatomb&lt;br /&gt;   /etc/rc5.d/S20mediatomb&lt;br /&gt;   /etc/rc6.d/K20mediatomb&lt;br /&gt;hypo@homer-slaver:/etc$ sudo update-rc.d mediatomb start 90 2 3 4 5 . stop 10 0 1 6 .&lt;br /&gt; Adding system startup for /etc/init.d/mediatomb ...&lt;br /&gt;   /etc/rc0.d/K10mediatomb -&gt; ../init.d/mediatomb&lt;br /&gt;   /etc/rc1.d/K10mediatomb -&gt; ../init.d/mediatomb&lt;br /&gt;   /etc/rc6.d/K10mediatomb -&gt; ../init.d/mediatomb&lt;br /&gt;   /etc/rc2.d/S90mediatomb -&gt; ../init.d/mediatomb&lt;br /&gt;   /etc/rc3.d/S90mediatomb -&gt; ../init.d/mediatomb&lt;br /&gt;   /etc/rc4.d/S90mediatomb -&gt; ../init.d/mediatomb&lt;br /&gt;   /etc/rc5.d/S90mediatomb -&gt; ../init.d/mediatomb&lt;br /&gt;hypo@homer-slaver:/etc$ sudo reboot&lt;br /&gt;&lt;br /&gt;Note: command hypo@homer-slaver:/etc$ sudo update-rc.d mediatomb start 90 2 3 4 5 . stop 10 0 1 6 .&lt;br /&gt;&lt;br /&gt;may also be replaced by command specified by the original post, but it is not recommended as order of disabling services is not correctly maintained.&lt;br /&gt;&lt;br /&gt;hypo@homer-slaver:/etc$ sudo update-rc.d mediatomb defaults 99&lt;br /&gt;&lt;br /&gt;The idea is that mediatomb should be one of the last services to startup, so that eth0 is all setup. I already have setup my /etc/interfaces file correctly for this.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;hypo@homer-slaver:/etc$ cat network/interfaces&lt;br /&gt;auto lo&lt;br /&gt;iface lo inet loopback&lt;br /&gt;auto eth0&lt;br /&gt;iface eth0 inet dhcp&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;update: after doing the steps above, mediatomb would startup correctly, but all network connectivity would be lost. &lt;br /&gt;&lt;br /&gt;I also noticed that removing line iface eth0 inet dhcp would cause the network to configured properly, but mediatomb wouldn't run. I figured out this was happening because after logging in, the NetworkManager Applet would run and try to configure the interface again, leading to some confusion within the system (don't know exactly what conflict / confusion).&lt;br /&gt;&lt;br /&gt;NetworkManagerApplet was disabled by: &lt;br /&gt;1. browse to System &gt; Preferences &gt; Sessions&lt;br /&gt;2. scroll down and uncheck Network Manager&lt;br /&gt;3. close&lt;br /&gt;4. sudo reboot&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-948532548921719377?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/948532548921719377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=948532548921719377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/948532548921719377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/948532548921719377'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/01/getting-mediatomb-to-start-at-system.html' title='Getting Mediatomb to start at system startup'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-6590688077121137197</id><published>2009-01-10T07:23:00.000-08:00</published><updated>2009-02-04T23:48:04.822-08:00</updated><title type='text'>gumstix gdb shared library problems</title><content type='html'>first posted at Gumstix &lt;a href="http://www.nabble.com/gdb-problems-with-hello-world-td21286223.html"&gt;http://www.nabble.com/gdb-problems-with-hello-world-td21286223.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;hi all,&lt;br /&gt;&lt;br /&gt;gdb keeps complaining about not being able to find shared libraries even though they exist.&lt;br /&gt;&lt;br /&gt;0x400009e0 in ?? ()&lt;br /&gt;warning: Unable to find dynamic linker breakpoint function.&lt;br /&gt;GDB will be unable to debug shared library initializers&lt;br /&gt;and track explicitly loaded dynamic code.&lt;br /&gt;&lt;br /&gt;Error while mapping shared library sections:&lt;br /&gt;/lib/libc.so.0: No such file or directory.&lt;br /&gt;Error while mapping shared library sections:&lt;br /&gt;/lib/ld-uClibc.so.0: No such file or directory.&lt;br /&gt;Error while reading shared library symbols:&lt;br /&gt;/lib/libc.so.0: No such file or directory.&lt;br /&gt;Error while reading shared library symbols:&lt;br /&gt;/lib/ld-uClibc.so.0: No such file or directory.&lt;br /&gt;&lt;br /&gt;Do I need to have something in my .gdbinit file? This was working fine under ubuntu 7.10 (no .gdbinit file there).&lt;br /&gt;&lt;br /&gt;verdex xlp (tftp boot, nfsroot)&lt;br /&gt;netmicroSD&lt;br /&gt;&lt;br /&gt;current setup (doesn't work):&lt;br /&gt;ubuntu 8.10&lt;br /&gt;&lt;br /&gt;old setup (worked)&lt;br /&gt;ubuntu 7.1&lt;br /&gt;&lt;br /&gt;I get the following:&lt;br /&gt;gumstix-gdb -s ./hello --dir ./ ./hello&lt;br /&gt;GNU gdb 6.4&lt;br /&gt;Copyright 2005 Free Software Foundation, Inc.&lt;br /&gt;GDB is free software, covered by the GNU General Public License, and you are&lt;br /&gt;welcome to change it and/or distribute copies of it under certain conditions.&lt;br /&gt;Type "show copying" to see the conditions.&lt;br /&gt;There is absolutely no warranty for GDB.  Type "show warranty" for details.&lt;br /&gt;This GDB was configured as "--host=i386-pc-linux-gnu --target=arm-linux-uclibcgnueabi"...&lt;br /&gt;(gdb) target remote 192.168.1.100:2000&lt;br /&gt;Remote debugging using 192.168.1.100:2000&lt;br /&gt;0x400009e0 in ?? ()&lt;br /&gt;warning: Unable to find dynamic linker breakpoint function.&lt;br /&gt;GDB will be unable to debug shared library initializers&lt;br /&gt;and track explicitly loaded dynamic code.&lt;br /&gt;(gdb) l&lt;br /&gt;1 #include &lt;stdio.h&gt;&lt;br /&gt;2&lt;br /&gt;3 int main()&lt;br /&gt;4 {&lt;br /&gt;5  printf("\n hello world \n");&lt;br /&gt;6  return 0;&lt;br /&gt;7 }&lt;br /&gt;8&lt;br /&gt;(gdb) break hello.c:5&lt;br /&gt;Breakpoint 1 at 0x8448: file hello.c, line 5.&lt;br /&gt;(gdb) c&lt;br /&gt;Continuing.&lt;br /&gt;Error while mapping shared library sections:&lt;br /&gt;/lib/libc.so.0: No such file or directory.&lt;br /&gt;Error while mapping shared library sections:&lt;br /&gt;/lib/ld-uClibc.so.0: No such file or directory.&lt;br /&gt;Error while reading shared library symbols:&lt;br /&gt;/lib/libc.so.0: No such file or directory.&lt;br /&gt;Error while reading shared library symbols:&lt;br /&gt;/lib/ld-uClibc.so.0: No such file or directory.&lt;br /&gt;&lt;br /&gt;Breakpoint 1, main () at hello.c:5&lt;br /&gt;5  printf("\n hello world \n");&lt;br /&gt;(gdb)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Any clues?&lt;br /&gt;&lt;br /&gt;thanks,&lt;br /&gt;hypo&lt;br /&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is resolved by doing the following in gdb&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;set solib-absolute-prefix /home/hypo/gumstix/gumstix-buildroot-1614/build_arm_nofpu/staging_dir/lib/&lt;br /&gt;set solib-search-path /home/hypo/gumstix/gumstix-buildroot-1614/build_arm_nofpu/staging_dir/lib/&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;i've added the above lines in my .gdbinit, so that this happens automatically whenever i start gumstix-gdb from ~/gumstix/gumstix-buildroot-1614&lt;br /&gt;&lt;br /&gt;update: 2009-02-04&lt;br /&gt;This issue was still happening. the following .gdbinit solved it for me:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;set solib-absolute-prefix /dev/null&lt;br /&gt;set solib-search-path /home/hypo/gumstix/gumstix-buildroot-1614/build_arm_nofpu/staging_dir/lib/&lt;br /&gt;target remote 192.168.1.100:2000&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-6590688077121137197?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/6590688077121137197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=6590688077121137197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6590688077121137197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6590688077121137197'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2009/01/gumstix-gdb-shared-library-problems.html' title='gumstix gdb shared library problems'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5281565806662528211</id><published>2008-12-31T10:15:00.000-08:00</published><updated>2008-12-31T10:22:53.306-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='satellite'/><category scheme='http://www.blogger.com/atom/ns#' term='core2 duo'/><category scheme='http://www.blogger.com/atom/ns#' term='m205'/><category scheme='http://www.blogger.com/atom/ns#' term='toshiba'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='8.04 lts'/><title type='text'>Ubuntu 8.04 screen brightness issue</title><content type='html'>Recently upgraded from Ubuntu 7.10 to 8.04 LTS on the lappy. Good for the most part, but it does seem to have its share of kinks which are surprising in that one expects incremental improvements. Screen brightness can now be set with the function keys, which is awesome. However, the GUI for doing the same through Power Management Options seems to be missing. 7.10 had this and I had to monkey with it each time the laptop came back from hibernation. &lt;br /&gt;&lt;br /&gt;In 8.10, I have the function brightness up/down keys working, but the laptop seems to jump to medium / maximum brightness anytime I haven't touched any key for a few minutes. This is annoying. I can understand something like this happening when coming out of standby or hibernate, but while it is still running and not in screen-saver mode or anything is simply perplexing.&lt;br /&gt;&lt;br /&gt;still searching for a fix. Also found out that there might be a heating / cooling issue. &lt;br /&gt;http://forum.notebookreview.com/showthread.php?t=293543&lt;br /&gt;http://linuxrevolutions.org/2008/05/14/ubuntu-804-laptop-screen-brightness/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5281565806662528211?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5281565806662528211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5281565806662528211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5281565806662528211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5281565806662528211'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/12/ubuntu-804-screen-brightness-issue.html' title='Ubuntu 8.04 screen brightness issue'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-8075571926137346066</id><published>2008-12-28T20:12:00.000-08:00</published><updated>2008-12-28T20:18:46.433-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu 8.10'/><category scheme='http://www.blogger.com/atom/ns#' term='Xvnc'/><category scheme='http://www.blogger.com/atom/ns#' term='vncserver'/><category scheme='http://www.blogger.com/atom/ns#' term='vncviewer'/><category scheme='http://www.blogger.com/atom/ns#' term='vnc'/><category scheme='http://www.blogger.com/atom/ns#' term='X'/><category scheme='http://www.blogger.com/atom/ns#' term='7.10'/><category scheme='http://www.blogger.com/atom/ns#' term='xstartup'/><category scheme='http://www.blogger.com/atom/ns#' term='xinetd'/><category scheme='http://www.blogger.com/atom/ns#' term='inted'/><title type='text'>vnc viewer on ubuntu 8.10 core dumps</title><content type='html'>Firstly, getting the vnc viewer going was a whole bunch of pain (especially having it log in as non-root). But once I actually did get it going, I saw the following core-dump.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt; TXScrollbar.cxx:47: void TXScrollbar::set(int, int, int, bool): Assertion `limit_ &gt; 0 &amp;&amp; len_ &gt;= 0 &amp;&amp; len_ &lt;= limit_' failed.&lt;br /&gt;Aborted (core dumped)&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I get that anytime I try resizing or maximizing the window. Not expected behaviour. Since I don't have the time right now, I'm simply going to live with not resizing the window.&lt;br /&gt;&lt;br /&gt;There are other issues with VNC that I haven't been able to sort out yet:&lt;br /&gt;&lt;br /&gt;1. running VNC automatically on startup (or rather having xinetd configured so that Xvnc would be launched each time a user tries to connect.&lt;br /&gt;2. to have the vnc session match the current users desktop session on the server&lt;br /&gt;3. running VNC as someone other than root&lt;br /&gt;4. running vnc over ssh and xdm so that the same login screen maybe used instead of special VNC protocol&lt;br /&gt;&lt;br /&gt;setup: &lt;br /&gt;client machine: ubuntu 7.10 connected via 802.11g wireless&lt;br /&gt;host machine (server): ubuntu 8.10 connected via ethernet eth0 / bridge to wireless network&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-8075571926137346066?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/8075571926137346066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=8075571926137346066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8075571926137346066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8075571926137346066'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/12/vnc-viewer-on-ubuntu-810-core-dumps.html' title='vnc viewer on ubuntu 8.10 core dumps'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5809949066635868216</id><published>2008-12-24T10:41:00.000-08:00</published><updated>2009-08-16T19:08:26.315-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='verdex'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='gumstix'/><category scheme='http://www.blogger.com/atom/ns#' term='E2500'/><category scheme='http://www.blogger.com/atom/ns#' term='QuickCam Connect'/><category scheme='http://www.blogger.com/atom/ns#' term='Logitech'/><category scheme='http://www.blogger.com/atom/ns#' term='QuickCam'/><category scheme='http://www.blogger.com/atom/ns#' term='gspca'/><category scheme='http://www.blogger.com/atom/ns#' term='buildroot'/><title type='text'>Getting Gumstix to see Logitech QuickCam E2500</title><content type='html'>I finally got my Gumstix to recognize the USB Camera. Fairly easy once I got it going :)&lt;br /&gt;&lt;br /&gt;E2500 needs the GSPCA driver. No not the German Short-haired pointer club of America http://www.gspca.org/, or the Guyana Society for the Prevention of Cruelty to Animals, but the Generic Software Package for Camera Adapters. The GSPCA is a reverse engineered driver for numerous camera chips deployed in several usb web-cams. &lt;br /&gt;&lt;br /&gt;While compiling the gspca driver is, purportedly, fairly trivial for ubuntu 7.10, I did run in to a few kinks with Ubuntu 8.10. Also the camera I bought from Fry's added another twist in the imbroglio: the Logitech QuickCam Connect E2500 web-cam is not supported directly by the gspca driver.. So I had to hunt around with Google till I found the thread that answered my question. Given the fact that my knowledge about Linux drivers is vanishingly small, this was the only option left to me. However, this has been a great learning experience and I definitely spy myself writing a video input device driver in the near future. &lt;br /&gt;&lt;br /&gt;The following links were very helpful in getting this to work under Ubuntu 8.1 (I needed to do this to ensure that the camera works)&lt;br /&gt;&lt;br /&gt;1. http://nepbabu.livejournal.com/15650.html&lt;br /&gt;2. http://www.actionshrimp.com/2008/08/logitech-quickcam-e2500-on-ubuntu-skype/&lt;br /&gt;3. http://www.nabble.com/CCD-cameras-and-the-Quick-Capture-Interface-td19498519.html&lt;br /&gt;&lt;br /&gt;Per the instructions in 1., I downloaded the gspca driver and un-tar-ed it to the appropriate folder (~/work/gspcav1-20071224)&lt;br /&gt;I then downloaded the patch (quickcamE2500.tar.gz) from  http://forums.quickcamteam.net/attachment.php?aid=86 and untar to download folder (~/work)&lt;br /&gt;Next, I applied the patch &lt;br /&gt;&lt;code&gt;&lt;br /&gt;cd ~/work/gspcav1-20071224&lt;br /&gt;patch -p1 &lt; ../quickcamE2500.diff&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Compiled the module&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo ./gspca_build&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And copied over the module (gspca.ko) to the appropriate place. To do this, I first figured out where the current gspca.ko module lived (it existed, but the one that came with the kernel didn't support my web-cam).&lt;br /&gt;&lt;code&gt;&lt;br /&gt;bash$&gt; sudo modprobe -v gspca&lt;br /&gt;bash$&gt; sudo mv /lib/modules/2.6.27-9-generic/kernel/drivers/usb/media/gspca.ko /lib/modules/2.6.27-9-generic/kernel/drivers/usb/media/gspca.ko.2008-12-22&lt;br /&gt;bash$&gt; sudo cp gspca.ko /lib/modules/2.6.27-9-generic/kernel/drivers/usb/media/gspca.ko&lt;br /&gt;bash$&gt; sudo rmmod gspca # remove the currently installed module&lt;br /&gt;bash$&gt; sudo modprobe gspca&lt;br /&gt;&lt;br /&gt;#check to ensure that it is installed&lt;br /&gt;bash$&gt; lsmod | grep gspca&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Next I connected the camera and got /dev/video0. I also checked dmesg | tail for notes about the camera being mounted&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[    4.843394] input: Logitech USB Receiver as /devices/pci0000:00/0000:00:1d.7/usb5/5-5/5-5.2/5-5.2:1.0/input/input1&lt;br /&gt;[    4.850991] input,hidraw0: USB HID v1.10 Keyboard [Logitech USB Receiver] on usb-0000:00:1d.7-5.2&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;At this point, I tried to fire up Ekiga because several online forums had mentioned success getting a picture. However, I had no such luck. After trying for a few hours and hunting around, I came across Nep's page above and that mentioned xawtv. A sudo-apt-gets later, I had all i needed and I was able to get a picture of myself. However, it took a really long time (~5 minutes) to start getting a picture. Also, I think some parameters may be off and might need some tuning because the picture in xawtv kept steady if i had my hand blocking almost all of the view (no, no i didn't cover the entire lens), but for almost every other situation, the bottom half of the picture would keep jumping. I suspect it has something to do with the average lighting and auto correction, but I tried turning off the parameters, but it didn't help much.&lt;br /&gt;&lt;br /&gt;I tried various combinations (didn't exactly do a 2k factorial test here, but hey) of the following parameters, but no luck.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cd /sys/module/gspca/parameters/&lt;br /&gt;sudo echo 0&gt;autoexpo&lt;br /&gt;sudo echo 4&gt;gamma&lt;br /&gt;sudo echo 300&gt;GRed&lt;br /&gt;sudo echo 300&gt;GBlue&lt;br /&gt;sudo echo 300&gt;GGreen&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I had to make some modifications to have this run under buidlroot.&lt;br /&gt;I created a gspca folder under gumstix-buildroot/packages, and created two files per instructions found in buildroot/docs/buildroot.htm, viz. Config.in and gspca.mk&lt;br /&gt;&lt;br /&gt;Config.in looks as below:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;config BR2_PACKAGE_GSPCA&lt;br /&gt; bool "gspca"&lt;br /&gt; default n&lt;br /&gt; help&lt;br /&gt;   The GSPCA video driver module. This required to support&lt;br /&gt;   Logitech Quickcam E2500 USB Webcam&lt;br /&gt;&lt;br /&gt;   http://www.nabble.com/CCD-cameras-and-the-Quick-Capture-Interface-td19498519.html&lt;br /&gt;   http://www.ithinkthereforeiforget.blogspot.com&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;gspca.mk is essentially a modified version given by Pete &lt;a href="http://www.nabble.com/CCD-cameras-and-the-Quick-Capture-Interface-td19498519.html"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#############################################################&lt;br /&gt;#&lt;br /&gt;# Driver for GSPCA USB web cams.&lt;br /&gt;#&lt;br /&gt;#############################################################&lt;br /&gt;&lt;br /&gt;GSPCA_VERSION=20071224&lt;br /&gt;GSPCA_SOURCE:=gspcav1-$(GSPCA_VERSION).tar.gz&lt;br /&gt;GSPCA_SITE:=http://mxhaard.free.fr/spca50x/Download/$(GSPCA_SOURCE)&lt;br /&gt;GSPCA_BUILD_DIR=$(BUILD_DIR)/gspcav1-$(GSPCA_VERSION)&lt;br /&gt;GSPCA_PKG_DIR=$(BASE_DIR)/package/gspca&lt;br /&gt;GSPCA_CAT:=zcat&lt;br /&gt;GSPCA_MODULE=$(GSPCA_BUILD_DIR)/gspca.ko&lt;br /&gt;GSPCA_TARGET_MODULE=$(TARGET_DIR)/lib/modules/2.6.21gum/extra/gspca.ko&lt;br /&gt;&lt;br /&gt;GSPCA_CFLAGS := "-DGSPCA_ENABLE_COMPRESSION"&lt;br /&gt;GSPCA_CFLAGS += "-DCONFIG_USB_GSPCA_MODULE=1"&lt;br /&gt;GSPCA_CFLAGS += "-DVID_HARDWARE_GSPCA=0xFF"&lt;br /&gt;GSPCA_CFLAGS += -DGSPCA_VERSION=\\\"01.00.20\\\"&lt;br /&gt;&lt;br /&gt;# following are required to make Logitech QuickCam E2500. Change for &lt;br /&gt;# other cameras accordingly&lt;br /&gt;# wget http://forums.quickcamteam.net/attachment.php?aid=86 -O patch.tar.gz&lt;br /&gt;GSPCA_PATCH:=patch&lt;br /&gt;GSPCA_PATCH_OPTIONS:=-p1&lt;br /&gt;GSPCA_PATCH_FILE:=quickcamE2500.diff&lt;br /&gt;GSPCA_PATCH_SOURCE:=$(GSPCA_PATCH_FILE).tar.gz&lt;br /&gt;GSPCA_PATCH_SITE:="http://forums.quickcamteam.net/attachment.php?aid=86"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$(DL_DIR)/$(GSPCA_SOURCE):&lt;br /&gt; $(WGET) -P $(DL_DIR) $(GSPCA_SITE)/$(GSPCA_SOURCE)&lt;br /&gt;#TODO: fix this!&lt;br /&gt;# $(WGET) -P $(DL_DIR) $(GSPCA_PATCH_SITE)/$(GSPCA_PATCH_SOURCE)&lt;br /&gt;&lt;br /&gt;gspca-source: $(DL_DIR)/$(GSPCA_SOURCE)&lt;br /&gt;&lt;br /&gt;$(GSPCA_BUILD_DIR)/.unpacked: $(DL_DIR)/$(GSPCA_SOURCE)&lt;br /&gt; $(GSPCA_CAT) $(DL_DIR)/$(GSPCA_SOURCE) | \&lt;br /&gt; tar -C $(BUILD_DIR) $(TAR_OPTIONS) -&lt;br /&gt;############  Unpack patches #########&lt;br /&gt;# $(GSPCA_CAT) $(DL_DIR)/$(GSPCA_PATCH_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -&lt;br /&gt;# cp $(DL_DIR)/$(GSPCA_PATCH_FILE) $(BUILD_DIR)/gspcav1-$(GSPCA_VERSION)&lt;br /&gt;# TODO: fix this!&lt;br /&gt;# cd $(GSPCA_PATCH) $(GSPCA_PATCH_OPTIONS) &lt; $(BUILD_DIR)/$(GSPCA_PATCH_FILE) &lt;br /&gt; touch $(GSPCA_BUILD_DIR)/.unpacked&lt;br /&gt;&lt;br /&gt;$(GSPCA_MODULE): $(BASE_DIR)/uImage $(GSPCA_BUILD_DIR)/.unpacked&lt;br /&gt; $(MAKE) -C "$(LINUX_DIR)" \&lt;br /&gt; CROSS_COMPILE="$(KERNEL_CROSS)" \&lt;br /&gt; ARCH=$(ARCH) \&lt;br /&gt; CC="$(TARGET_CC)" \&lt;br /&gt; EXTRA_CFLAGS="$(TARGET_CFLAGS) $(GSPCA_CFLAGS)" \&lt;br /&gt; SUBDIRS="$(GSPCA_BUILD_DIR)" \&lt;br /&gt; modules&lt;br /&gt; touch $@&lt;br /&gt;&lt;br /&gt;$(GSPCA_TARGET_MODULE): $(GSPCA_MODULE)&lt;br /&gt; $(MAKE) -C "$(LINUX_DIR)" \&lt;br /&gt; CROSS_COMPILE="$(KERNEL_CROSS)" \&lt;br /&gt; ARCH=$(ARCH) \&lt;br /&gt; CC="$(TARGET_CC)" \&lt;br /&gt; EXTRA_CFLAGS="$(TARGET_CFLAGS)" \&lt;br /&gt; SUBDIRS="$(GSPCA_BUILD_DIR)" \&lt;br /&gt; INSTALL_MOD_PATH="$(TARGET_DIR)" \&lt;br /&gt; modules_install&lt;br /&gt;&lt;br /&gt;gspca: uclibc $(GSPCA_TARGET_MODULE)&lt;br /&gt;&lt;br /&gt;gspca-clean:&lt;br /&gt; -$(MAKE) -C $(GSPCA_BUILD_DIR) clean&lt;br /&gt;&lt;br /&gt;gspca-dirclean:&lt;br /&gt; rm -rf $(GSPCA_BUILD_DIR)&lt;br /&gt;&lt;br /&gt;#############################################################&lt;br /&gt;#&lt;br /&gt;# Toplevel Makefile options&lt;br /&gt;#&lt;br /&gt;#############################################################&lt;br /&gt;ifeq ($(strip $(BR2_PACKAGE_GSPCA)),y)&lt;br /&gt;TARGETS+=gspca&lt;br /&gt;endif &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Next I started make menuconfig in &lt;buildroot&gt; and selected gspca from the menu. I still had to go in and patch the source manually for my logitech e2500. A make followed and created and installed the module in the proper location.&lt;br /&gt;&lt;br /&gt;I fired up the gumstix, connected the camera and got the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[root@gumstix ~]# usb 1-2: new full speed USB device using pxa27x-ohci and address 2&lt;br /&gt;usb 1-2: configuration #1 chosen from 1 choice&lt;br /&gt;Linux video capture interface: v2.00&lt;br /&gt;/home/hypo/gumstix/gumstix-buildroot-1614/build_arm_nofpu/gspcav1-20071224/gspca_core.c: USB GSPCA camera found.(ZC3XX) &lt;br /&gt;usbcore: registered new interface driver gspca&lt;br /&gt;/home/ot-1614/build_arm_nofpu/gspcav1-20071224/gspca_core.c: gspca driver 01.00.20 registered&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Woohoo! /dev/video0 exists and is readable! Now on to porting spca-view!&lt;br /&gt;&lt;br /&gt;Update (01/25/2009): Google seems to generate different results these days. Came across interesting post on atmel's site dealing with adding packages to buildroot while looking for something else.&lt;br /&gt;&lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc32082.pdf"&gt;&lt;br /&gt;http://www.atmel.com/dyn/resources/prod_documents/doc32082.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5809949066635868216?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5809949066635868216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5809949066635868216' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5809949066635868216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5809949066635868216'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/12/getting-gumstix-to-see-logitech.html' title='Getting Gumstix to see Logitech QuickCam E2500'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-136661315514812610</id><published>2008-12-23T17:32:00.000-08:00</published><updated>2008-12-23T17:50:44.311-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='winblows'/><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='administrator'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='trackpad'/><category scheme='http://www.blogger.com/atom/ns#' term='wastage'/><category scheme='http://www.blogger.com/atom/ns#' term='blue-screen'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='BSOD'/><title type='text'>Carping about Vista Crap</title><content type='html'>Vista has been good generally, but I have noticed a few things that had me blowing a gasket, at least early on when I didn't understand what caused the odd behavior.&lt;br /&gt;&lt;br /&gt;This might not be a Vista thing per se, but the touch pad scrolling doesn't seem to work reliably. Especially when running applications with elevated privileges ("as administrator"). E.g if the task manager is started with "normal" user privileges (UAC is enabled, of course), the touchpad scrolling works. However, when "view processes from all users" is enabled, the touchpad scrolling stops working. A similar difference in behavior is observed when regedit is started with / without elevated privileges. This leads me to believe that this might have something to do how mouse event messages are received by "elevated" applications. &lt;br /&gt;&lt;br /&gt;I doubt, though, that this is a Vista thing because mousewheel scroll seems to work in the same situtation (when using a discrete USB mouse instead of the trackpad). So my blame right now lays with Synaptic.&lt;br /&gt;&lt;br /&gt;Second, i see Vista BSOD fairly consistently when I use VPN. After I Idle on VPN for a while (haven't measured exactly how much time), I get a BSOD. I haven't had pause yet to analyze the error code and determine if this is due to a driver or some arcane interaction between Vista and its driver and its power management.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-136661315514812610?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/136661315514812610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=136661315514812610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/136661315514812610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/136661315514812610'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/12/carping-about-vista-crap.html' title='Carping about Vista Crap'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-850737416527978824</id><published>2008-12-18T23:43:00.001-08:00</published><updated>2009-08-12T22:24:03.690-07:00</updated><title type='text'>Gumstix NFS boot</title><content type='html'>After a long time, I've had a chance to pick up the pieces of my project again. So this time, I was trying to get the stix to boot off the network. This saves tremendous time over manual transferring the kernel and rootfs over serial. Manual process also requires several steps and is therefore a wasteful process as one can't leave the stix and do something else.&lt;br /&gt;&lt;br /&gt;Anyhoo... so booting a device off the network requires a few fundamental things:&lt;br /&gt;&lt;br /&gt;1. a server hosting the kernel image (typically bootp or tftp). I chose tftp because it seemed to be the easy thing to do&lt;br /&gt;2. server hosting the root file system. this is typically over nfs&lt;br /&gt;3. setting arguments in boot loader so that the kernel may be started with the proper settings&lt;br /&gt;4. configuring the rootfs so that it knows it is being booted off the network.&lt;br /&gt;&lt;br /&gt;Before going any further, READ THESE first:&lt;br /&gt;1. &lt;a href="http://docwiki.gumstix.org/Root_filesystems#NFS_Root"&gt;Gumstix wiki on NFS root&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://docwiki.gumstix.org/index.php/U-Boot"&gt;Gumstix UBoot wiki&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://www.denx.de/wiki/view/DULG/UBoot"&gt;http://www.denx.de/wiki/view/DULG/UBoot"&gt;Uboot wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I installed the following in Ubuntu:&lt;br /&gt;tftp tftpd nfs nfsd portmap&lt;br /&gt;wireshark (formerly known as Ethereal)&lt;br /&gt;&lt;br /&gt;for nfs setup follow guidelines here &lt;a href="http://nfs.sourceforge.net/nfs-howto/ar01s02.html"&gt;http://nfs.sourceforge.net/nfs-howto/ar01s02.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;my hosts.allow looks as below (found in &lt;nfsroot&gt;/etc/ = NFSROOT_ETC):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;portmap: 192.168.1.100 , 192.168.1.101 , 192.168.1.104&lt;br /&gt;lockd: 192.168.1.100 , 192.168.1.101 , 192.168.1.104&lt;br /&gt;mountd: 192.168.1.100 , 192.168.1.101 , 192.168.1.104&lt;br /&gt;statd: 192.168.1.100 , 192.168.1.101 , 192.168.1.104&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;192.168.1.100 = gumstix&lt;br /&gt;192.168.1.101 = laptop (ubuntu 7.1)&lt;br /&gt;192.168.1.104 = server (ubuntu 8.1)&lt;br /&gt;&lt;br /&gt;these were setup static ip in my router set up (details follow later in the blog)&lt;br /&gt;&lt;br /&gt;my hosts.deny looks as below (NFSROOT_ETC/hosts.deny):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;lockd:ALL&lt;br /&gt;mountd:ALL&lt;br /&gt;rquotad:ALL&lt;br /&gt;statd:ALL&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;NFSROOT_ETC/exports looks as below. this sets up the nfs share&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/home/hypo/gumstix/nfsroot     192.168.1.100(rw,sync,no_root_squash) 192.168.1.101(rw,sync) 192.168.1.104(rw,sync)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This directory is different from the gumstix root folder (~/gumstix/gumstix-buildroot-1614/build_arm_no_fpu/root = GUMSTIX_ROOT) because i don't want any inadvertent modifications on the stix to ruin all later builds. This was any changes are localized to the stix (till I overwrite the root fs).&lt;br /&gt;&lt;br /&gt;Command for copying over the root folder:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cp -a &lt;build_root&gt;/build_arm_no_fpu/root/* ~/gumstix/nfsroot&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Tftp boot is started (on host machine, not gumstix) with the following command:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sudo in.tftpd -l -s /tftpboot/ -r blksize -r blksize2 -v -v -v -v -v -B 1024&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;this starts up tftpd in standalone mode (more later on how to launch this at startup). The "-B 1024" option limits blocksize to 1024. -r blksize and -r blksize2 prevent negotiation on the block size. I did this because I was initially seeing some problems getting tftp to work reliably. The repeated -v options increase verbosity on the server (though I couldn't figure out where syslog goes). -s /tftpboot/ tells the server to change root systems to indicated path. This is the location where uImage must be copied to.&lt;br /&gt;&lt;br /&gt;UBoot variables need to be set to ensure it boots from tftp as follows. Remember to printenv and save off default UBoot environment in case you need to flip back. &lt;br /&gt;&lt;br /&gt;To enable TFTP boot and root over NFS &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-------------------------------------&lt;br /&gt;setenv bootargs 'console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=192.168.1.101:/home/hypo/gumstix/nfsroot,nolock,rsize=1024,wsize=1024 ip=192.168.1.100:192.168.1.101:::::off\; tftpb a2000000 uImage &amp;&amp; bootm a2000000'&lt;br /&gt;setenv bootcmd 'tftpb a2000000 uImage; bootm a2000000'&lt;br /&gt;setenv serverip 192.168.1.101&lt;br /&gt;setenv ipaddr 192.168.1.100&lt;br /&gt;-------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Some options in the commands above are different from those specified in the Gumstix NFS Root wiki. In particular.&lt;br /&gt;&lt;br /&gt;rsize=1024,wsize=1024 specify that the nfs server must limit packet sizes to 1024 bytes. As before, this is to prevent IP fragmentation and associated problems (Gumstix maynot be able to assemble packets correctly). Typically router sizes are 1500 (=MTU).&lt;br /&gt;&lt;br /&gt;To revert back&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-------------------------------------&lt;br /&gt;setenv bootargs 'console=ttyS0,115200n8 root=1f01 rootfstype=jffs2 reboot=cold,hard'&lt;br /&gt;setenv bootcmd 'icache on; setenv stderr nulldev; setenv stdout nulldev; if pinit on &amp;&amp; fatload ide 0 a2000000 gumstix-factory.script; then setenv stdout serial; setenv stderr serial; echo Found gumstix-factory.script on CF...; autoscr; else if mmcinit &amp;&amp; fatload mmc 0 a2000000 gumstix-factory.script; then setenv stdout serial; setenv stderr serial; echo Found gumstix-factory.script on MMC...; autoscr; else setenv stdout serial; setenv stderr serial; katload 100000 &amp;&amp; bootm; fi; fi'&lt;br /&gt;-------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;remember to 'saveenv' after chaning environment variables.&lt;br /&gt;&lt;br /&gt;Changes in Gumstix root fs / kernel&lt;br /&gt;&lt;br /&gt;Follow Gumstix NFS Root wiki to change fstab and init.d/ dirs. Also do the following, which aren't mentioned in the wiki:&lt;br /&gt;&lt;br /&gt;For netmicroSD boards, ethernet chip is SMC911x. Ensure that this is enabled in the kernel (not module, built in) and SMC91x is NOT. &lt;br /&gt;&lt;br /&gt;&lt;buildroot&gt;/build_arm_nofpu/linux-2.6.21gum/.config contains the following section. Follow instructions in Gumstix NFS Root wiki to change these options using make ARCH=arm menuconfig&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#&lt;br /&gt;# Ethernet (10 or 100Mbit)&lt;br /&gt;#&lt;br /&gt;CONFIG_NET_ETHERNET=y&lt;br /&gt;CONFIG_MII=y&lt;br /&gt;# CONFIG_SMC91X is not set&lt;br /&gt;# CONFIG_DM9000 is not set&lt;br /&gt;CONFIG_SMC911X=y&lt;br /&gt;CONFIG_SMC911X_GUMSTIX=y&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If the above isn't set correctly, Gumstix won't be able to mount NFS correctly.&lt;br /&gt;&lt;br /&gt;Edit GUMSTIX_ROOT/etc/network/interfaces and comment out anything that brings up / tears down eth0. If this isn't done, then typically dhcp kicks in and it is good bye NFS. Then the system just hangs waiting for NFS ROOT  (NFS Root 192.168.1.101 time out. Still trying)&lt;br /&gt;&lt;br /&gt;GUMSTIX_ROOT/etc/network/intefaces now looks like&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# Configure Loopback&lt;br /&gt;auto lo&lt;br /&gt;iface lo inet loopback&lt;br /&gt;&lt;br /&gt;iface usb0 inet dhcp&lt;br /&gt;&lt;br /&gt;iface bnep0 inet dhcp&lt;br /&gt;&lt;br /&gt;#auto eth0 # commented out because eth0 is setup at boot time&lt;br /&gt;iface eth0 inet dhcp&lt;br /&gt;&lt;br /&gt;iface eth1 inet dhcp&lt;br /&gt;&lt;br /&gt;iface wlan0 inet dhcp&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;edit GUMSTIX_ROOT/etc/modules and comment out anything that loads ethernet modules, e.g. smc91x, smc911x (as these would already be compiled in the kernel. see below).&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# MMC support -- comment the next two lines to enable using CF&lt;br /&gt;#mmc_block&lt;br /&gt;#pxamci&lt;br /&gt;&lt;br /&gt;# Compact Flash support -- Must load smc91x or smc911x first!!&lt;br /&gt;#smc91x # comment out modules already loaded in kernel&lt;br /&gt;#smc911x&lt;br /&gt;#pcmcia&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Load USB host driver&lt;br /&gt;ohci-hcd&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above will prevent "-EEXIST module already exists (owned by kernel)" failures when booting up.&lt;br /&gt;&lt;br /&gt;Make the kernel and copy over uImage to /tftpboot/ and build_arm_no_fpu/root/* to ~/gumstix/nfsroot.&lt;br /&gt;&lt;br /&gt;Copying over rootfs and uImage maybe automated as part of the build/make process. Remember to modify on the GUMSTIX_ROOT/etc/fstab according to the gumstix NFS Root wiki (comment out line for /) before copying over rootfs to nfsroot.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#script to make and copy over images&lt;br /&gt;#place this in ~/gumstix/&lt;buildroot&gt;, e..g ~/gumstix/gumstix-buildroot-1614/makencopy.sh&lt;br /&gt;&lt;br /&gt;make&lt;br /&gt;if [ -f uImage ]; then&lt;br /&gt; cp uImage /tftpboot/&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -f rootfs.arm_nofpu.jffs2 ]; then &lt;br /&gt; cp -a build_arm_no_fpu/root/* ~/gumstix/nfsroot&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-850737416527978824?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/850737416527978824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=850737416527978824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/850737416527978824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/850737416527978824'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/12/gumstix-nfs-boot.html' title='Gumstix NFS boot'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-2059401234797307803</id><published>2008-12-15T01:15:00.001-08:00</published><updated>2008-12-15T01:27:17.898-08:00</updated><title type='text'>PCI Wireless card with Ubuntu 8.10</title><content type='html'>So... new adventure: getting Airlink 101 Wireless PCI Adapter AWLH3028 to work with fresh install of Ubuntu 8.10. Host system: P4 3.2GHz, 4 GB Ram (Dell Optiplex Gx280), 120gb/80gb dual boot xp/ linux&lt;br /&gt;&lt;br /&gt;Ubuntu install was a breeze, though the time setting window acted a little funky with the zoom feature. After install, network manager showed all available networks just fine. However, connecting to any available network (protected or not) simply failed. Couldn't figure out what was going on:&lt;br /&gt;&lt;br /&gt;dmesg | tail -50 gave something like below:&lt;br /&gt;wirless wlan0 (ethernet addr) time-out&lt;br /&gt;&lt;br /&gt;Google gave up following link which indicated my card (RealTek based) is supported (good news!):&lt;br /&gt;&lt;a href="https://help.ubuntu.com/community/HardwareSupportComponentsWirelessNetworkCardsAirlink101#PCI"&gt;https://help.ubuntu.com/community/HardwareSupportComponentsWirelessNetworkCardsAirlink101#PCI&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, still no luck.&lt;br /&gt;&lt;br /&gt;finally came across this page &lt;a href="http://ubuntu-virginia.ubuntuforums.org/showthread.php?t=574501&amp;page=28"&gt;http://ubuntu-virginia.ubuntuforums.org/showthread.php?t=574501&amp;amp;page=28&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solution was as simple as tearing down wlan0 and setting mode to Managed. This has worked with WPA2 Personal after that. Survives even restarts. Don't know why I had to do it, but it works!&lt;br /&gt;&lt;br /&gt;sudo ifconfig eth0 down&lt;br /&gt;sudo ifconfig wlan0 down&lt;br /&gt;sudo ifconfig wlan0 up&lt;br /&gt;sudo iwconfig essid &lt;essid&gt;&lt;br /&gt;sudo iwconfig wlan0 mode Managed&lt;br /&gt;sudo dhclient wlan0&lt;br /&gt;&lt;br /&gt;dhclient above was timing out. Killed it and selected network in Network Manager applet. worked!&lt;/essid&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-2059401234797307803?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/2059401234797307803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=2059401234797307803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2059401234797307803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2059401234797307803'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/12/pci-wireless-card-with-ubuntu-810.html' title='PCI Wireless card with Ubuntu 8.10'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-3150334396401086724</id><published>2008-10-19T23:13:00.001-07:00</published><updated>2008-10-19T23:22:05.061-07:00</updated><title type='text'>Rebuilding Gumstix kernel</title><content type='html'>I've been trying to enable usb camera support for a while and have been following the instructions available at (). Did the make ARCH=arm menuconfig etc. but still was having trouble getting the kernel objects (.ko) files be included in the build. Finally came across the following page (while trying to enable rootfs over nfs) that seems to explain the mystery:&lt;br /&gt;&lt;br /&gt;http://docwiki.gumstix.org/index.php/Recompiling_the_Linux_Kernel&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;During this step: &lt;/p&gt; &lt;pre&gt;make ARCH=arm menuconfig&lt;/pre&gt; (make your changes to the kernel here and save the config file on exit)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;If you want to keep these change in this buildroot &lt;/pre&gt; THIS WAS THE MISSING LINK! &lt;pre&gt;&lt;br /&gt;cp .config ../../target/device/Gumstix/basix-connex/linux.config&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Now build the NFS enabled kernel &lt;/p&gt; &lt;pre&gt;make ARCH=arm clean&lt;br /&gt;&lt;/pre&gt; &lt;pre&gt;rm build_arm_nofpu/root/boot/uImage&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;from your gumstix-buildroot &lt;/p&gt; &lt;pre&gt;cd &lt;gumstix-buildroot&gt;&lt;br /&gt;make&lt;br /&gt;&lt;/gumstix-buildroot&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-3150334396401086724?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/3150334396401086724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=3150334396401086724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3150334396401086724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3150334396401086724'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/10/rebuilding-gumstix-kernel.html' title='Rebuilding Gumstix kernel'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-3244188808178883919</id><published>2008-10-12T12:09:00.001-07:00</published><updated>2008-10-12T12:10:56.660-07:00</updated><title type='text'>Wireless bridge to debug Gumstix</title><content type='html'>&lt;div style="text-align: justify;"&gt;If you debug Gumstix over Ethernet, you will soon realize the networking in Ubuntu 7.01 is not very well supported, especially if you try to constantly switch between wireless and wired connections. It would certainly be more convenient to have the Gumstix be on the same wired network as your development station. Also, if you have a wireless setup going at home, then having a bridge between the wireless and wired networks becomes absolutely essential.&lt;br /&gt;&lt;br /&gt;The following steps allow you to set up a wireless client bridge. The Gumstix and development PC are on the remote wired network. The remote wired network is connected to the main wireless network through the client bridge. The network may look something as below:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Internet cloud&lt;br /&gt;+ ---&gt; cable modem&lt;br /&gt;     + ---&gt; netgear router (mr814 802.11b)&lt;br /&gt;       ---/wireless/---&lt;br /&gt;         + Linksys wrt54g (802.11b/g)&lt;br /&gt;           --- wired network ---&lt;br /&gt;            +---&gt; PC&lt;br /&gt;            |---&gt; Gumstix&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;(I wanted to have wireless G routers all around, but since I didn't want to spend money and had an older, spare wireless B router sitting at home, this is the network I had to work with.)&lt;br /&gt;&lt;br /&gt;Typically, the older router should be the "main" router that connects to the cable modem because&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;br /&gt;&lt;li&gt;the network capabilities (e.g. throughput and protocol) will, typically, be decided by the older router&lt;/li&gt;&lt;li&gt;older routers will, typically, have lesser support and configurability&lt;/li&gt;&lt;li&gt;lowest common denominator will be the dominant bottleneck&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;By design, the Linksys wrt54g v5 firmware doesn't allow the device to be configured as a network bridge. However, this feature may be enabled by replace the firmware with the open source dd-wrt. This may be performed according to instructions from the &lt;a href="http://www.bitsum.com/openwiking/owbase/ow.asp?WRT54G5_CFE"&gt;bit-sum page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The instructions to get the new firmware are pretty straightforward and fool-proof.&lt;br /&gt;&lt;br /&gt;Once dd-wrt is up and running, the following will need to be done on the PC and the two routers to set the bridge.&lt;br /&gt;&lt;br /&gt;The generic instructions are &lt;a href="http://www.dd-wrt.com/wiki/index.php/Wireless_Bridge"&gt;here&lt;/a&gt;&lt;br /&gt;NOTE: for whatever reason, dd-wrt seems to work better with IE.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If using a laptop, ensure that the laptop's wireless is disabled&lt;/li&gt;&lt;li&gt;Connect PC's Ethernet port to one of the LAN ports (not WAN) of the secondary router with an Ethernet cable&lt;/li&gt;&lt;li&gt;Give the PC a static IP on the same subnet as the secondary router's ip. E.g. if the secondary router's default address is 192.168.1.1, then set your PC's static IP to 192.168.1.10. Preferably the address should be outside the DHCP address range served by the router.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;main router's WAN should be set up to DHCP (or however the ISP recommends so that router gets a valid IP address when connected to a working cable modem)&lt;/li&gt;&lt;li&gt;set "main" router (mr814) LAN ip address to be 192.168.1.1. This is the private (home) network that is managed by the main router&lt;/li&gt;&lt;li&gt;set dhcp to be on&lt;/li&gt;&lt;li&gt;set dhcp range 192.168.1.100 - 192.168.1.150 (these are the addresses that fall under dhcp)&lt;/li&gt;&lt;li&gt;disable the "secondary" (wrt54g) router's DHCP server&lt;/li&gt;&lt;li&gt;set "secondary" router IP to 192.168.1.2 (this should be on the same subnet as the "main" router)&lt;/li&gt;&lt;li&gt;set DNS servers to be those obtained from the ISP or 192.168.1.1 ("main" router)&lt;/li&gt;&lt;li&gt;save settings&lt;/li&gt;&lt;li&gt;apply settings&lt;/li&gt;&lt;li&gt;Select Status | Wireless | Site Survey&lt;/li&gt;&lt;li&gt;Ensure that the target wireless network is visible ("main" router)&lt;/li&gt;&lt;li&gt;Click "Join"&lt;/li&gt;&lt;li&gt;Save and Apply Settings&lt;/li&gt;&lt;li&gt;Power cycle the secondary router&lt;/li&gt;&lt;li&gt;Once the router comes back up, ensure that it is reachable at 192.168.1.2. &lt;/li&gt;&lt;li&gt;If for whatever reason, this fails, use the reset button: hold down the reset button while the router is on. Pull the power cord. Wait 10 seconds, attach power cord again. Try reaching the router at 192.168.1.1 when connected directly to one of its lan ports.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-3244188808178883919?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/3244188808178883919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=3244188808178883919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3244188808178883919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3244188808178883919'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/10/wireless-bridge-to-debug-gumstix.html' title='Wireless bridge to debug Gumstix'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5679912790845820494</id><published>2008-10-04T01:08:00.000-07:00</published><updated>2008-10-04T17:55:02.984-07:00</updated><title type='text'>Setting up Ubuntu Linux dual-boot partitions</title><content type='html'>Every now and then I've had to convert a new Winblows machine to dual boot Linsux. And almost each time I've had to scratch my head to come up with a configuration that works. So here it is, for posterity.&lt;br /&gt;&lt;br /&gt;This is what I currently have:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;/dev/sda5              19G  3.2G   15G  18% /&lt;br /&gt;varrun               1010M   96K 1010M   1% /var/run&lt;br /&gt;varlock              1010M     0 1010M   0% /var/lock&lt;br /&gt;udev                 1010M  100K 1009M   1% /dev&lt;br /&gt;devshm               1010M     0 1010M   0% /dev/shm&lt;br /&gt;lrm                  1010M   34M  976M   4% /lib/modules/2.6.22-15-generic/volatile&lt;br /&gt;/dev/sda3             935M   52M  836M   6% /boot&lt;br /&gt;/dev/sda7              36G   12G   22G  36% /home&lt;br /&gt;/dev/sda1             1.5G  139M  1.4G  10% /media/sda1&lt;br /&gt;/dev/sda2             128G   51G   77G  40% /media/sda2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It's not perfect, but it works. For the future though, I'd like to trim it as follows. I've kept it as percentages so that disk size expansion compensates feature bloat in accordance with Murphy's Law.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Partition      % of disk       Comment              &lt;br /&gt;/              3               Linux root. Current allocation was about 8%, of which only 18% (1.44%) was used&lt;br /&gt;/boot          0.1             Current allocation was about 0.02%, of which 6% was used (0.0012%)&lt;br /&gt;/home          30-46           Current size was about 16%. This could be expanded to save more&lt;br /&gt;/media/sda2    50              this is where most of my junk lies. Windows is mounted here&lt;br /&gt;/media/sda1    0.5             manufacturer set. Windows recovery partition is here&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5679912790845820494?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5679912790845820494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5679912790845820494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5679912790845820494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5679912790845820494'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/10/setting-up-ubuntu-linux-dual-boot.html' title='Setting up Ubuntu Linux dual-boot partitions'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-6675052448717300080</id><published>2008-10-03T00:09:00.000-07:00</published><updated>2008-10-03T00:12:26.249-07:00</updated><title type='text'>Getting wireless to work right in Ubuntu</title><content type='html'>I've griped before about Ubuntu's issues with staying connected to WPA enabled wireless routers. Apparently, lots of other folks have faced similar issues, and for a while! After much frustration and mucking around, I've finally found a solution (amongst numerous other statements of similar problems from various other people).&lt;br /&gt;&lt;br /&gt;I've now created a script that I call each time my wireless setup goes crazy. And it's been working so far!&lt;br /&gt;&lt;br /&gt; cat restart_wireless.sh &lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;WIRELESS_DRIVER=iwl4965&lt;br /&gt;sudo /etc/init.d/networking stop&lt;br /&gt;sudo modprobe -r $WIRELESS_DRIVER&lt;br /&gt;sudo modprobe $WIRELESS_DRIVER&lt;br /&gt;sudo /etc/init.d/networking start&lt;br /&gt;&lt;br /&gt;Source: http://ubuntuforums.org/archive/index.php/t-16606.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-6675052448717300080?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/6675052448717300080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=6675052448717300080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6675052448717300080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/6675052448717300080'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/10/getting-wireless-to-work-right-in.html' title='Getting wireless to work right in Ubuntu'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5274605756040597756</id><published>2008-10-02T04:52:00.000-07:00</published><updated>2008-10-02T05:02:09.831-07:00</updated><title type='text'>Gumstix - restarting buildroot</title><content type='html'>So, I was tinkering around with make menuconfig under the gumstix linux kernel and I seemed to have screwed up. make started failing with errors indicating that the arch type wasn't defined. I'm really not sure what happened, but if I have to hazard a guess I think I enabled certain features which are i386 only. But, I wasn't able to recover from that situation. A few things now that I'm wiser after the incident:&lt;br /&gt;&lt;br /&gt;I should've been using a versioning system (for heaven's sake I already used svn for check-out this code... )&lt;br /&gt;I should keep a manual log of what changes I implement as well&lt;br /&gt;&lt;br /&gt;anyways, I got around this by re-downloading my entire build-root. I also realized I had to do another step which I should've (but couldn't really have) done the first time I downloaded build-root: ensure that I download a version of build-root that really works.&lt;br /&gt;&lt;br /&gt;Since I had a previous version already flashed and running on my gumstix, I did the following to extract this info:&lt;br /&gt;&lt;br /&gt;[root@gumstix ~]# cat /etc/gumstix-release &lt;br /&gt;DISTRIB_ID='gumstix'&lt;br /&gt;DISTRIB_DESCRIPTION=''&lt;br /&gt;DISTRIB_RELEASE='1614'&lt;br /&gt;DISTRIB_CODENAME=''&lt;br /&gt;BUILD_DATE='Tue Sep 30 19:04:19 PDT 2008'&lt;br /&gt;BUILD_HOSTNAME='myHostName'&lt;br /&gt;&lt;br /&gt;svn co -r1614 http://svn.gumstix.com/gumstix-buildroot/trunk gumstix-buildroot&lt;br /&gt;&lt;br /&gt;by itself didn't seem to work initially... all modified files remained as it is (understandably and thankfully so)&lt;br /&gt;&lt;br /&gt;I simply mv-ed my existing gumstix folder and ran the command again. It finished really quickly!&lt;br /&gt;&lt;br /&gt;cd ~/gumstix&lt;br /&gt;mv gumstix-buildroot gumstix-buildroot-screwedup&lt;br /&gt;&lt;br /&gt;then I did:&lt;br /&gt;&lt;br /&gt;cd ~/gumstix/gumstix-buildroo&lt;br /&gt;make defconfig&lt;br /&gt;make&lt;br /&gt;&lt;br /&gt;so far so good.. it's going!&lt;br /&gt;&lt;br /&gt;Next steps (to be implemented one at a time)&lt;br /&gt;&lt;br /&gt;1. enable gdb support&lt;br /&gt;2. enable usb (gadget) support&lt;br /&gt;3. enable other device / driver support&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5274605756040597756?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5274605756040597756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5274605756040597756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5274605756040597756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5274605756040597756'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/10/gumstix-restarting-buildroot.html' title='Gumstix - restarting buildroot'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-2719514443916460019</id><published>2008-09-28T21:19:00.000-07:00</published><updated>2008-09-30T20:29:15.383-07:00</updated><title type='text'>Gumstix to go</title><content type='html'>&lt;div style="text-align: justify;"&gt;I had started tampering with Gumstix sometime back, but had run out of spare cycles to devote to it. This weekend, I had unexpected access to time and I figured I'll start playing with my tiny linux machine again. However, I realized that 3 months can be long enough time to entirely forget all the steps I needed to take to have the thing going. So I am back at square one, re-learning everything. So, now I think would be a good time to permanently document my steps so that I can do this again much faster.&lt;br /&gt;&lt;br /&gt;I have to hand it gumstix, though. As an embedded development system, it's far easier to get up and running (especially given the price!). Richard Stallman may be on to something :)&lt;br /&gt;&lt;br /&gt;To get things started, connect to the middle port on the console-lcd-vx board. If using a usb-to-serial dongle, typically /dev/ttyUSB0 is used with kermit (kermit -l /dev/ttyUSB0)&lt;br /&gt;&lt;br /&gt;The board comes with OpenEmbedded (OE) loaded on it. The build system with OE seems rather challenging and daunting. Instead, I prefer buildroot, which seems to use simply the make file syntax. Since this is more "standard" linux fare, I believe working with this will be easier. Though ofcourse I'm sure that a few things I want will be implemented / documented for OE and I'll have to fight to get those working in build-root. But that seems an acceptable compromise.&lt;br /&gt;&lt;br /&gt;Download and create build-root environment according to the instructions at the &lt;a href="http://docwiki.gumstix.org/index.php/Buildroot"&gt;Gumstix buildroot wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Gumstix OE &lt;a href="http://www.gumstix.net/Software/view/Getting-started/Quick-start/111.html"&gt;Quickstart&lt;/a&gt; page is even quicker and will get you started with a hello-world app really quickly. HOWEVER, getting gdb support is tricky. If OE is still the way you want to go, then do everything EXACTLY as laid on this page, and no problems should happen. I have to thank my current company for this discipline. A few years ago, I would've been experimenting and trying to figure out how and why the particular steps are important. Not any more. Not after working at the place I work for a year. I have come to respect the brain-deaded-ness of it all: experiment at your own peril and waste precious time while others who know little off the beaten path try to vainly help you. I have had enough. Or I've just gotten wiser. Or just plain older. But I'm ranting.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The following instructions apply to build-root and getting gdbserver up and running. You will need to replace the default OE kernel and rootfs images with the ones buildroot generates after doing the following:&lt;br /&gt;Follow the instructions EXACTLY.&lt;ul&gt;&lt;li&gt;Get gdb / gdbserver compiled for the target. Follow instructions &lt;a href="http://docwiki.gumstix.org/index.php/Programming"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this example the program to debug is named ‘hello’:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use ‘make menuconfig’ in the buildroot to enable building both GDB server and GDB client on host &lt;/li&gt;&lt;li&gt;  cd ~/gumstix/gumstix-buildroot&lt;/li&gt;&lt;li&gt;make menuconfig&lt;/li&gt;&lt;li&gt;  make&lt;/li&gt;&lt;li&gt;flash the new rootfs to the gumstix using &lt;a href="http://docwiki.gumstix.org/index.php/Replacing_the_filesystem_image#Verdex_and_post-1325_versions_of_Basix_and_Connex"&gt;these instructions&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;gdb cannot run on serial as it is being used for console. Connect the ethernet board.&lt;ul&gt;&lt;li&gt;once gumstix boots up, run ifconfig to see ip address&lt;/li&gt;&lt;li&gt;run ‘gdbserver localhost:2000 arm_executable’ on the gumstix; (port need not be 2000)&lt;/li&gt;&lt;/ul&gt;run gdb from directory ‘buildroot/toolchain_build_arm_nofpu/gdbclient-6.3/gdb/’ with options ‘--symbols=hello hello’&lt;ul&gt;&lt;li&gt;alias gumstix-gdb='~/gumstix/gumstix-buildroot/toolchain_build_arm_nofpu/gdbclient-6.4/gdb/gdb'&lt;/li&gt;&lt;li&gt;cd ~/helloworld&lt;/li&gt;&lt;li&gt;gumstix-gdb --symbols=./hello ./hello&lt;/li&gt;&lt;li&gt;(gdb) set arm abi AAPCS&lt;/li&gt;&lt;li&gt;(gdb) target remote 192.168.0.3:2000  # where 192.168.0.3 is the IP of my gumstix as obtained by ifconfig&lt;/li&gt;&lt;/ul&gt;The 'set arm abi AAPCS' is really important otherwise gdbserver tends to SIGILL at a breakpoint. Details &lt;a href="http://sourceware.org/ml/gdb/2008-01/msg00039.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Transfer image to gumstix using instructions from &lt;a href="http://docwiki.gumstix.org/index.php/Replacing_the_filesystem_image"&gt;here&lt;/a&gt;. Hopefully you'll have done things correctly and the board isn't bricked. Also, hopefully you actually do have gdbserver / gdb going correctly.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;Now that build system and debugger are in place, time to make the first program. Follow instructions for the Hello world example &lt;a href="http://docwiki.gumstix.org/Sample_code/C/Hello_World"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: GUMSTIX SVN username = password = root&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-2719514443916460019?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/2719514443916460019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=2719514443916460019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2719514443916460019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2719514443916460019'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/09/gumstix-to-go.html' title='Gumstix to go'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-8186587177439896283</id><published>2008-09-23T21:52:00.000-07:00</published><updated>2008-09-23T21:57:52.257-07:00</updated><title type='text'>Netflix DRM errors</title><content type='html'>Soo... i've been enjoying Netflix's watch now feature for a while now. But when I tried starting it the other day, I was greeted with a DRM error C00D11E2. It wanted me to reset DRM. So I called Netflix customer support and the very helpful people advised me to go ahead and nuke my DRM settings. I read a little more about it and found out that doing so would remove permissions for any and all of my non-Netflix paid-for and downloaded content! &lt;br /&gt;&lt;br /&gt;Sigh! so much for DRM done in-correctly. So, I went ahead and nuked it. And no effect. Still wouldn't run. I tried it in Admin mode and it ran. So I changed back to the Guest account I was using and no luck. Pretty soon, it dawned on me that this had to do with Privileges on the Guest account. So much for being able to do things! And it wasn't for the health / security of my machine either. I was very easily and without any problems able to "upgrade an Windows media player 11 component". &lt;br /&gt;&lt;br /&gt;I guess I'll just create another power user account with enough privileges to allow netflix to play. Don't want to be admin all the time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-8186587177439896283?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/8186587177439896283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=8186587177439896283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8186587177439896283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/8186587177439896283'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/09/netflix-drm-errors.html' title='Netflix DRM errors'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5757128896394261048</id><published>2008-09-02T12:43:00.000-07:00</published><updated>2008-09-02T12:47:53.164-07:00</updated><title type='text'>Different CPU package types</title><content type='html'>&lt;table style="width: 595px; height: 36px;" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt; &lt;tr class="dark"&gt;&lt;td colspan="3"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;  &lt;td class="subline1" colspan="2"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;td class="subline1"&gt;  &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a name="PLCC"&gt;PLCC &lt;/a&gt;&lt;span class="headcomment"&gt;- Plastic Leaded Chip Carrier&lt;br /&gt;&lt;/span&gt;&lt;a name="PLCC"&gt;CLCC &lt;/a&gt;&lt;span class="headcomment"&gt;- Ceramic Chip Carrier&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.cpu-collection.de/?l0=package"&gt;http://www.cpu-collection.de/?l0=package&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Plastic_leaded_chip_carrier"&gt;http://en.wikipedia.org/wiki/Plastic_leaded_chip_carrier&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5757128896394261048?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5757128896394261048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5757128896394261048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5757128896394261048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5757128896394261048'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/09/different-cpu-package-types.html' title='Different CPU package types'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-1923594157184478075</id><published>2008-07-01T23:08:00.000-07:00</published><updated>2008-07-27T18:21:45.470-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='winblows'/><category scheme='http://www.blogger.com/atom/ns#' term='Vastage'/><category scheme='http://www.blogger.com/atom/ns#' term='linsux'/><category scheme='http://www.blogger.com/atom/ns#' term='Wasteaa'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu gripes</title><content type='html'>I have had a long running argument with a few friends about the utility of Ubuntu. I started out as a Linux believer / fanatic when in school. I drank hook line and sinker the "academia" spiel about Linux being a better and more productive operating system than WinBlows to end. Till I met a few high respected practising academics and professionals who championed otherwise. Thus I decided to be a good engineer and become OS agnostic. I chose to create, in my head, a wet-ware database about what was good about each OS and use it for that purpose.&lt;br /&gt;&lt;br /&gt;But the number of exceptions and uses has become far too much for me to bear and I must purge my knowledge in the pensieve of this blog, so that at a later date, I might refer to it without having to relearn history or reinvent the wheel. Hopefully others can use my experiences as well and make better informed and wiser decisions.&lt;br /&gt;&lt;br /&gt;Things I do like about Ubuntu Linux:&lt;br /&gt;1.&lt;br /&gt;&lt;br /&gt;Things I don't like about Ubuntu LinSux:&lt;br /&gt;&lt;br /&gt;1. Laptops aren't supported very well (I understand there is proprietary support required, but that doesn't mean I have to like shoddy things. I would love it if all hardware manufacturers got their act together and supported Linux all out, but then where's the monetary incentive?)&lt;br /&gt;&lt;br /&gt;2. It seems to have an increase load of crapware or malformed experimentware. Take tracerd for instance: it is supposed to be a indexer tool to enhance searches. Nice and fine, except that it sucks. No I mean literally. It sucks all available memory and processing power away from the machine even while it is in use. At least windows products are mature enough to not do that. They may have a whole bunch of other things wrong with them (mem leaks for one, zombied processes etc.) but they tend to not cripple you while you work. Not so trackerd. It happily sucks the life of your hard drive and processing cycles from your tasks while it runs.&lt;br /&gt;&lt;br /&gt;3. Hibernation doesn't work right. Now I'd like to accept the Ubuntu apologizer's claim "it's because of the broken M$ ACPI model", but I just can't get myself to do that. Each time the machine resumes from hibernation in windows, stuff comes back normal: the screen works, the sound works yada yada. Not so with Gutsy. NetworkManager is not going to work, in addition to sucking all processing cycles (something that isn't supposed to happen in Linux because of its excellent scheduler and extreme advantages against a micro-kernel architecture). Good luck if sound works right. Oh yeah and keep 'em fingers crossed or else the display might not come on right (though mostly, it does). Somehow ACPI under windows seems to be free from these afflictions.&lt;br /&gt;&lt;br /&gt;4. sound card doesn't work right. In Winblows Vastage, when you connect a headphone jack, the audio in the speakers is killed (as expected). In Gutsy Linsux, connected a headphone gives you audio in two places! two for the price of one! so if you wanted to hear some music without disturbing those around you, fat chance! Also audio has never dealt very well with hibernation (see 3 above). Btw, FYI, I am currently using Gutsy as I type and I tend to do a lot of my non-work development in Gutsy.&lt;br /&gt;&lt;br /&gt;5. Screen brightness goes to eye burning max each time the system resumes from suspend / hibernation. Have to go to Preferences | Power Management each time and jiggle screen brightness around to reduce it to comfortable levels.&lt;br /&gt;&lt;br /&gt;6. (07/07/2008) More hibernation quirks: system resumes fine from suspend when idle, but then immediately hibernates. More &lt;a href="http://ubuntuforums.org/archive/index.php/t-590017.html"&gt; here &lt;/a&gt; and &lt;a href="https://bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/149665"&gt; here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7. Can't join the same wireless network after suspend / hibernate. There is an open bug on this.&lt;br /&gt;&lt;br /&gt;8. Using Photoshop under Wine initially had the issue that the clone tool (Alt + Click) wouldn't work because it would always try to move the window. Figured out that this was because of Ubuntu's window manager (Gnome). Easily remedied in this case by changing System | Preferences | Windows | used Super "windows logo" plus click for move.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Things I do like about Windows Vista:&lt;br /&gt;&lt;br /&gt;Things I don't like about Winblows WasteYa:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-1923594157184478075?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/1923594157184478075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=1923594157184478075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1923594157184478075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1923594157184478075'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/07/ubuntu-gripes.html' title='Ubuntu gripes'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5780605241508422384</id><published>2008-04-24T00:32:00.001-07:00</published><updated>2008-04-24T01:10:30.859-07:00</updated><title type='text'>Setting up my machine the way i like</title><content type='html'>The Joys of Setting up a new Vista Machine (NOT)&lt;br /&gt;&lt;br /&gt;Ensuring Cygwin works correctly. &lt;br /&gt;1. install cygwin as Administrator&lt;br /&gt;2. run as non-admin user&lt;br /&gt;3. start ash from windows cmd shell&lt;br /&gt;4. rebaseall&lt;br /&gt;5. Get xterm to show up with correct options (scrollbar and history)&lt;br /&gt;http://www.mail-archive.com/cygwin-xfree@cygwin.com/msg17510.html&lt;br /&gt;create a .Xresources file in your home directory that includes&lt;br /&gt;        Xterm.*.saveLines: 3000&lt;br /&gt;        Xterm.*.scrollbar: true&lt;br /&gt;6. create menu of favorite items in context menu for XWin status bar icon&lt;br /&gt;man XWinrc&lt;br /&gt;http://sinewalker.wordpress.com/2006/04/&lt;br /&gt;7. get "clear" to work by aliasing to 'printf "\ec"'&lt;br /&gt;http://www.mail-archive.com/cygwin-xfree@cygwin.com/msg17052.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5780605241508422384?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5780605241508422384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5780605241508422384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5780605241508422384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5780605241508422384'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/04/setting-up-my-machine-way-i-like.html' title='Setting up my machine the way i like'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-3924005593248304546</id><published>2008-03-14T11:24:00.000-07:00</published><updated>2008-03-14T12:42:28.326-07:00</updated><title type='text'>Questioning the obvious</title><content type='html'>Every so often, I ponder upon words I have used ever since I was a child and realize I learnt the words, but never really understood their connection or meaning. While I have come across several such realizations, I have noted down only a few. Time to start changing that!&lt;br /&gt;&lt;br /&gt;English borrows copiously from Latin and hence shares with Sanskrit to a large degree the scientific structure of forming new words from base words. This *creates* to an interesting relationships between new words, allowing the language to *grow* organically.&lt;br /&gt;&lt;br /&gt;Words in focus today: crest&lt;br /&gt;&lt;br /&gt;Crest as we all probably already learnt means the peak of a summit or maximum point of a wave (as opposed to trough). From "crest" comes the word "cresent" (or the Latin equivelent "créscere")meaning "growing" or in other words something that is "growing towards a peak or a crest". &lt;br /&gt;&lt;br /&gt;From crest, also comes the word "crease", which typically means a groove or wrinkle. Essentially, a feature with sharp peak.&lt;br /&gt;&lt;br /&gt;From "crease" come the more familiar words, "in-crease" and "de-crease" meaning to "induce a crest" or "reduce a crest" (notice "induce" and "reduce" and the root "duce" and the latin origin "ducere" but we'll come around to that another time).&lt;br /&gt;&lt;br /&gt;Also related to the Latin "crescere" is "creare" meaning "to make" or "to produce", which gives us the word "create" meaning "to make something" or "to grow something". &lt;br /&gt;&lt;br /&gt;"Create" also gives us the following words: &lt;br /&gt;"creature" meaning "something made" or "something grown" or "something that was created" (stemming perhaps from God's creature).&lt;br /&gt;"creation"&lt;br /&gt;&lt;br /&gt;From "créscere" ("growing") comes the "creistre" ("to grow") which leads to the past-participle "creu" ("grew"). From "creu" comes the familiar verb "accrue" meaning  "grow by collecting" (or very surrealy,"grow by growing"). &lt;br /&gt;&lt;br /&gt;"crue" also produces (notice root "duce" again) the familiar  word "crew" meaning "(a collection of things that were) grown". From "crew" comes the notion of "re-crue" ("re-crew" or "regrow") (notice how a noun gradually evolves in to a verb, akin to the usage of "Google") and the familiar though seemingly unrelated verb/ noun "recruit"!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-3924005593248304546?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/3924005593248304546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=3924005593248304546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3924005593248304546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/3924005593248304546'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/03/questioning-obvious.html' title='Questioning the obvious'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-2243603254932759953</id><published>2008-02-11T03:26:00.001-08:00</published><updated>2008-02-11T03:27:58.421-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='red eye'/><category scheme='http://www.blogger.com/atom/ns#' term='photo editing'/><category scheme='http://www.blogger.com/atom/ns#' term='photoshop'/><title type='text'>Red eye removal with Photoshop</title><content type='html'>Very useful and interesting &lt;a href="http://graphicssoft.about.com/library/nosearch/n-psredeye.htm"&gt;article&lt;/a&gt; demonstrating the use of Adobe Photoshop for removing red eyes. This works much better than Picasa!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-2243603254932759953?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/2243603254932759953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=2243603254932759953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2243603254932759953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2243603254932759953'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/02/red-eye-removal-with-photoshop.html' title='Red eye removal with Photoshop'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5729513958694955546</id><published>2008-01-10T06:22:00.000-08:00</published><updated>2008-01-10T06:30:58.647-08:00</updated><title type='text'>Wallstreet Journal copy + paste error</title><content type='html'>I've noticed for sometime that Wall Street Journal articles seem to have some goof ups from time to time. The latest one I spotted happened here:&lt;br /&gt;&lt;br /&gt;date: Thursday, January 10, 2008 (2008-01-10)&lt;br /&gt;page: C2&lt;br /&gt;Article: Wall Street's scary word: MBIA&lt;br /&gt;&lt;br /&gt;column 1, paragraph 7&lt;br /&gt;"The notes being marketed yesterday with a12% yeid-..."&lt;br /&gt;is repeated at c 4, p 1, line 2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5729513958694955546?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5729513958694955546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5729513958694955546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5729513958694955546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5729513958694955546'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/01/wallstreet-journal-copy-paste-error.html' title='Wallstreet Journal copy + paste error'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-2512774773318876193</id><published>2008-01-08T14:24:00.000-08:00</published><updated>2008-01-08T14:32:05.226-08:00</updated><title type='text'>XEmacs on Cygwin freezes when WinXP screen-saver comes on</title><content type='html'>I've seen this happen one time too many now, and it becomes really tiresome.&lt;br /&gt;&lt;br /&gt;1. start xwin (xwinstart.bat)&lt;br /&gt;2. edit file you want to work on in emacs&lt;br /&gt;3. work on file for a while and then leave computer unattended&lt;br /&gt;4. resume after screen saver&lt;br /&gt;5. notice unresponsive emacs (window doesn't paint, but will minimize and maximize without redrawing)&lt;br /&gt;&lt;br /&gt;workaround:&lt;br /&gt;1. kill emacs and start over&lt;br /&gt;&lt;br /&gt;NOTE: this has started happening often enough that i've actually created a script to kill apps&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/bash&lt;br /&gt;# author: hypothetical-twenty-five&lt;br /&gt;# created: 2007-12-24&lt;br /&gt;&lt;br /&gt;usage()&lt;br /&gt;{&lt;br /&gt;cat&amp;lt;&amp;lt;EOF&lt;br /&gt;Usage:&lt;br /&gt;&lt;br /&gt;killapp &amp;lt;prog&amp;gt;&lt;br /&gt;&lt;br /&gt;e.g. killapp emacs&lt;br /&gt;&lt;br /&gt;NOTE: every instance of the program, if found, will be terminated&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if [ $# -ne 1 ]; then&lt;br /&gt;#     echo exiting&lt;br /&gt;     usage;&lt;br /&gt;     exit;&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;PID=$(ps -ef | grep $1 | awk '{ print $2 }')&lt;br /&gt;if [ "x$PID" == "x"  ]; then&lt;br /&gt;    echo "application [ $1 ] not found "&lt;br /&gt;else&lt;br /&gt;   echo "killing pids [ $PID ]";&lt;br /&gt;    kill -s 9 $PID&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-2512774773318876193?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/2512774773318876193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=2512774773318876193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2512774773318876193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/2512774773318876193'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2008/01/xemacs-on-cygwin-freezes-when-winxp.html' title='XEmacs on Cygwin freezes when WinXP screen-saver comes on'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-5584927505433442720</id><published>2007-12-25T14:13:00.001-08:00</published><updated>2007-12-25T14:46:45.956-08:00</updated><title type='text'>Problems with Windows Remote Desktop</title><content type='html'>Alt+Tab fails to bring window to front in Remote Desktop&lt;br /&gt;&lt;br /&gt;Using Windows XP Home for running the client logging in to a Windows XP Professional machine.&lt;br /&gt;&lt;br /&gt;Steps:&lt;br /&gt;&lt;br /&gt;1. Log in to remote machine with bit depth set = 16 bits, experience = 56Mbps (Modem)&lt;br /&gt;2. drop connection (network outage / timeout ?)&lt;br /&gt;3. restart remote desktop with bit depth = 16 bits, experience = broadband&lt;br /&gt;4. try alt + tab to see appropriate window getting focus, but not becoming foreground&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-5584927505433442720?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/5584927505433442720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=5584927505433442720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5584927505433442720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/5584927505433442720'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2007/12/problems-with-windows-remote-desktop.html' title='Problems with Windows Remote Desktop'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-1231630046546684662</id><published>2007-12-24T16:27:00.000-08:00</published><updated>2007-12-24T16:55:58.067-08:00</updated><title type='text'>Windows XP: problems with more RAM</title><content type='html'>so, I recently bought my aging XP laptop some upgrades: a new battery, a new power cord and 2GB of RAM! I figured adding RAM will help things a little bit (though I have to admit, I didn't have a very clear goal for doing all this in mind. I guess I just didn't want to spend on a brand new laptop just yet. Heard they're shipping with Vista.  Seriously though, I think I did it because I dread having to reinstall everything on a new machine and getting it to be exactly how I like it). &lt;br /&gt;&lt;br /&gt;Anyways, my feeling was that adding more memory would only smoothen things out and make everything a whole lot better. For the most part, that is exactly what happened. However, I began to notice that the machine wouldn't hibernate any longer. It seemed to be on for days. The other day, I happened to catch a system bubble with the message "Insufficient System Resources Exist to Complete the API". What!!?? It had less resources than before?&lt;br /&gt;&lt;br /&gt;So out came Google and I started hunting around. About 10 minutes of hunting later, I figured out that others were seeing this problem as well (described in Microsoft &lt;a href="http://support.microsoft.com/kb/909095"&gt;KB90905&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;So apparently the internal kernel structures were somehow setup inefficiently so that when the RAM size was suddenly increased on the system, it just didn't have a big enough hiberfile setup to be able to dump all memory contents to disk and would hence complain about not having "enough" resources. The hotfix took care of that one. I'm surprised though that it didn't get picked up by my machine automatically. Thought the system would be smart enough to know that the machine has more than 1GB of RAM (threshold for the problem is about a gig of RAM, apparently). Guess they don't have detailed conditions like that specified in their hotfix query database. Whatever. 'Tis fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-1231630046546684662?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/1231630046546684662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=1231630046546684662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1231630046546684662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1231630046546684662'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2007/12/windows-xp-problems-with-more-ram.html' title='Windows XP: problems with more RAM'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8116763720493817797.post-1577067341310921121</id><published>2007-12-24T15:18:00.000-08:00</published><updated>2007-12-24T15:25:44.837-08:00</updated><title type='text'>Firefox download manager not showing up</title><content type='html'>Problem:&lt;br /&gt;&lt;br /&gt;Was recently having trouble with Firefox: the download manager would not showup when downloading files. Also, when brought up using the Tools | Downloads menu, the download manager would contain nothing at all. &lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;&lt;br /&gt;had to delete the downloads.rdf file in my firefox profile (located in C:\Documents and Settings\&amp;lt;windows logon profile&amp;gt;\Application Data\Mozilla\Firefox\Profile\&amp;lt;firefox profile&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/mozilla.support.firefox/browse_thread/thread/f5cabe2f4325ba07/930c8ea25b5cdd85"&gt;http://groups.google.com/group/mozilla.support.firefox/browse_thread/thread/f5cabe2f4325ba07/930c8ea25b5cdd85&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8116763720493817797-1577067341310921121?l=ithinkthereforeiforget.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ithinkthereforeiforget.blogspot.com/feeds/1577067341310921121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8116763720493817797&amp;postID=1577067341310921121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1577067341310921121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8116763720493817797/posts/default/1577067341310921121'/><link rel='alternate' type='text/html' href='http://ithinkthereforeiforget.blogspot.com/2007/12/firefox-download-manager-not-showing-up.html' title='Firefox download manager not showing up'/><author><name>kage</name><uri>http://www.blogger.com/profile/14360678218582580769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
