Windows 7 Plunge

Plan of Attack

After my RAID/hard drive debacle, I figured it was time to start with a clean slate.  Usually with my Windows boxes over the years, I would start with a clean drive and reinstall/upgrade OS to clear out the bloat.  I would accumulate all kinds of apps and drivers that just cluttered up the joint.  This situation was no different.  I did find out something though… was more than one of my faulty drives in the RAID pair.  I bought Win 7 32-bit (mistake 1), and then installed on my system with same hardware (mistake 2).  My hardware was decent enough (4 core AMD, 4G RAM, ATI 4xxx series) and OS installed without a hitch.  However 2nd day after install I was repopulating my working drive folders with pictures, video, etc. and I thought I would play a video of gypsy band playing in a pub from our Czech Republik trip and I got the stuttering, frozen black screen, and loss of mouse cursor.  Essentially everything that happened right before that faulty drive got hosed (I was playing back a TiVo video from TiVo-to-go then).  OK, so my video card and/or motherboard became unstable.  The motherboard had the Japanese solid state capacitors and all looked OK (but that may be the issue as there is no visible place for them to bulge – they may just up and die without a visual clue).


Time for a whole new system.  Might as well – I noticed that the motherboard had DDR2 RAM in it, so it had been a while since that was built.  So I sprung for everything (new case, 6 core CPU,  mboard, video card, RAM, blu ray combo player).  And correcting for mistake 1, I purchased Win 7 64-bit.  Price-wize, it was a teeny bit more to buy a new OEM Win 7 Pro, than to do an AnyTime upgrade.  The key point was you cannot do an ‘Anytime Ugrade’ to go from 32-bit to 64-bit system.  Nuff said, it was time to build and install.  Because I was going to have a dual-boot system, I needed to install Windows first and Ubuntu second.  Windows install was straightforward, but longer than the 32-bit install (I guess it had to have all of 64-bit and some of 32-bit to run in compatibility mode) I had done.  Once I got Win 7 up and running, wiped out one of my internal drives that had an old XP system on it (quick-formatted to NTFS).  Then I took my Ubuntu 11.10 live/install disk and rebooted with it.  because I have 3 drive (4 with USB external) with a bunch of partitions, it can get confusing with a Linux install, so I chose to cancel install which basically brings up the Live Ununtu.  Then I went into disk manager and took a gander at my drives and partitions.  I wanted to make sure I had the right drive (since it was the only 100G drive it was easy) and wrote the device name down to be sure.  Then I proceeded to the install app on the Live system.  I made sure not to choose “Install Along Side of” option and chose the manual config option.  There I chose the empty 100G device name and formatted 95% of it for the system mounted on ‘/’, and the rest formatted at Swap partition.  The install continued without issues.  After the reboot, because I don’t like ‘Unity’ interface, I installed the old Gnome interface.  Ubuntu 11.10, unlike first version of 11, stripped out Synaptic and ability to change your login screen out-of-the-box.  Once the Gnome retro interface was installed, logging off and on allowed the interface change.  However, the ‘System’ menu is gone on the top menu bar.  At some point I may be forced to adapt to Unity interface, but I’ll give it a go with ol’ Gnome for a bit.


Jury is Out

Well, I have set up a number of Win 7 boxes at the office – all new PCs and upgrades go to Win 7 Pro, but my work PC is still Vista Business.  Bottom line is I haven’t gotten too cozy with the OS just yet.  Now because I have it at home, I will have to get familiar with it, regardless.  Anyway, interesting Microsoft went back with ‘My Documents” like it used to be in XP days.  Look and feel issues are improvements over Vista – they got that right.  I do have one annoying issue (and I am not alone on this), and that is the power handling (sleep, hibernate, S1, S3, etc).  I never had any issues with Vista and waking up the system after sleep (I enabled wake on-mouse in bios).  In my brief exposure to Win 7 32-bit, the monitor went black after sleep and could not be repowered no matter what I did.  A cold reboot with power (4 second hold) was the only way to get it back.  The weird thing is the monitor power button was hijacked – pushing it did nothing – no orange light, no green light.  I chalked it up to the bogus video card and/or motherboard.  With a completely new system (nothing the same except the SATA system drive) the exact thing happens.  Like I mentioned, I am not the only one experiencing this.  It happens with ATI cards and NVidea, different bios(s), motherboards, etc. Quite prevalent – just Google ‘+windows 7 +monitor +blank +sleep’ and you’ll get plenty of hits.  The interesting thing is even after I put ‘Turn off display = never’ and ‘Put computer to sleep = never’, It still happened after an overnight update (default automatic install).  So what I have done as a work around is keep the power settings like the previous sentence and change ‘Update Settings’ to ‘Download, but install when I choose to’.  I also changed the bios power settings ‘wake’ triggers to S1 instead of S3.  I haven’t had a blank monitor issue for 4 days now, so I think that is behind me.  I did like it when I set my home PC to sleep after 5 hours of being idle and double-clicking mouse to turn back on.  That is how my wife’s Vista PC is and it is a great ‘green’ feature.  I will keep testing after future updates to see if it gets resolved.

The Positives

Besides the obvious issues with some legacy apps being unstable under 64-bit, I am happy with the performance of this new system.  After putting together, I ended up with an ‘Experience Score’ of 6, where my previous Vista system was 5.2.  The benefit I think will be the attractive part of the new system is the extended RAM access and the 6 cores.  This will be very handy in Blender (installed both in Win 7 and my 64-bit Ubuntu) and ArcGIS 10 (which can take advantage of the extra cores).

Posted under Operating Systems

Ubuntu 11 (Natty) on Beagleboard

I have no idea what messed up the microSD that had Ubuntu 10.10.  I loaded up a new SD with the latest 11.04 image (zcat and dd) and that went pretty smoothly.  Meanwhile, I decided to put Angstrom back on that corrupted DS card (worse case it wouldn’t work) withmy development PC (used Linux Mint presently).  Worked fine, but went blank after firing up gdm.  I got the image from the Narcissus site and custom made it with gnome and other extras.  I probably should have stuck with the console version.  Fired up good when I redid it with just the console bare bones version.  Then I made the mistake of adding the gdm package.  I wasn’t sure at the time if that was the issue.  It was.  I can’t remember if the SED card that came with it ever got to the gnome desktop.  I’m betting it has something to do with fact it is using HDMI, but not that concerned as I have Ubuntu working like a champ.

I was hoping with version 11 that the clock speed issue with the XM board would be solved.  Apparently the new kernel also chokes with the 1GHz beagleboard.  I had to go into the boot.scr in the /boot folder to change the boot parameters from 1000 to 800 for the CPU.  After doing that the speed came back (it was appalling before changing as it literally took 5 or 6 seconds for the prompt to come up after opening the terminal.  Before I made the boot script change, the USB cam was hardly working – it was extra grainy and barely moved fast enough to have a frame rate.  Focus was effected too.  After the fix, the cam worked as it should.

One thing that must be done if you are trying to interface with a serial port with Ubuntu 11 – change the parameters for the ftdi device you use.   For some reason, the probe of the the USB serial device (in this case an Arduino Nano) came out wrong.  I could get an arduino sketch uploaded once after choosing /dev/ttyusb0, but then it stopped working.  It repeatedly said there was no such device.  Well there wasn’t – nothing resembling that in /dev folder.  What had to be done is a modprobe to the device with proper hex numbers.  If you do an ‘lusb’, you will get all your devices listed on the USB bus.  You need to pay attention to the vender ID and product ID.  Most likely the vendor ID is correct.  The product ID for me was off.  I had a 6001 for my product ID and I thing dmesg reported a different number.  Regardless, it is a good idea to run modprobe again with correct numbers.  Mine was:

sudo modprobe ftdi_sio vendor=0x0403 product=0x6001

After that, I could communicate with arduino and there was a ttyUSB0 entry in the /dev folder.  Now I just have to work on my flowchart and coding before I starting piecing things together.

Posted under Operating Systems,Robotics

Beagleboard + Ubuntu 10.10…Sweet!

Things are just falling into place with this Beagleboard.  The Ubuntu distro, although slow on installing packages is pretty damn robust.  I have installed a bunch of packages without a hiccup.  X11VNC works without any issues, and can access with ultraVNC without much screen lag.  My UVC webcam (which can be seen in motion in earlier posts) works perfectly due to great kernel library and UVC driver that was already in distro.  I added extras like “gUVCView“, which is an awesome webcam app.  I have installed “motion” and “UVCCapture” as well.  The goal is getting OpenCV on here and getting some video recognition algorithms going.  From what I have seen with Beagleboard, I have no worries.  The video pipeline on this board is pretty spectacular.  There is even a camera header installed on board for those ‘board cams’ which have 15-18 wires connecting them.  I will be boning up on my Python and then OpenCV will be a big chunk of my robot ‘to do’ list.

You can see below the beagleboard and the future enclosure body (torso) with the camera head aimed at the keyboard.  It actually defaults to 640×480 and I reduced the size in the .guvcviewrc file (found in user directory) to 320×200. For my testing and vision processing experiments, this quarter-vga format will be fine to cut my teeth on.

Ubuntu on Beagleboard-XM

Posted under Operating Systems,Robotics

New Tangent – Vortex86SX is History!

OK.  Why spend so much time on a frankly, underpowered system board.  Chalk it up to learning experience I guess.  That Vortex86 may have been the cat’s pajamas (pulled that from nowhere) about 5-10 years ago with 300Mhz, but the lack of FPU or math coprocessor cripples it nowadays.  Less operating systems will use it, and the workarounds for Linux and extra compiling are not worth it for a base system to hang other applications and projects on.  Now there are still many SOC and processor evaluation boards out there that do not have FPU capability, but the processing power (speed, memory) and community support make up for that.  Case in point: Beagleboard

I picked up a revision B XM version of one of these little nuggets and I am quite impressed.  What kept me from getting one years ago was the lack of VGA output.  All the other boards I tried at least had that.  This has s-video (usually crappy at best) and HDMI out.  I got back one of my old monitors which has a DVI input, and then I made the plunge for the Beagleboard.  Glad I waited, as the XM unit has a 1Ghz processor (TI Omap 37XX) and 512M RAM.  Pretty awesome for a board that is 3 inches by 3 inches (smaller than PC104 form factor by a smidge).  Here’s the bonus:  it comes with a 4-port USB Host connector (a hub, technically) soldered to the board, as well as a RJ-45 ethernet connector (smsc95XX), and the serial port is now soldered on as well (DB-9).  It comes with a 4G microSD card which is always recognized as an MMCblk0 device.  Many headers are also part of the board now, so no crazy tight-space soldering if you want to attach a daughtercard!


These ports and connectors make it very easy to work with.  Pretty much plug-and-go!  Important to get a 5V adapter, as this board is flackey if relying on power from USB OTG port.  Still, this 5V supply can power many devices on the onboard USB ports like (in image above) a mouse, keyboard, and 2G thumb drive!  And it still consumes less than 2 watts of juice.  I see a great future with this little board.


The SD card that came with it had a demo image for testing right on it.  This shows that it can boot up.  It is not, however, setup for a working system.  It comes with a recent Angstrom build which worked completely in ramdisk.  The only partition formatted was the 80M bootable fat.  The rest of the card was unpartitioned.  I copied the the contents of fat partition to a safe folder on Vista machine fat32 hard drive (USB) and proceeded to boot up one of my Linux live distros – can’t remember which one, but it was probably Puppy 5.1 or Debian Lenny.  Then I setup the Beagle SD card with Gparted.  I made a bootable fat at 90M, EXT3 at about 3G, and an EXT2 storage for the rest.  I suppose I could have put back the saved MLO and u-boot.bin, but I ended up going to a Texas Instruments site and used the MLO and u-boot.bin from their Android Froyo site.  Yes, I installed Froyo, and it worked, but it was pretty lame on a machine with no touchscreen and a mouse/keyboard.  If I got a touchpanel daughtercard, then perhaps.  Anyway, the packages and layering of the operating system is different (OK for phones, but not so much for a development robot system).  So, I kept the bootloader files and proceeded to test other systems.  I installed Angstrom and it worked great, except the package ‘universe’ was not that large.  i hit brick walls when trying to get things I thought I might need – like luvcview or uvcview.  Sure I could compile them for my kernel, but I was too impatient.  I tried Debian netinstall, but my kernal did not match my rootfs, because there was only one netinstall rootfs on debian ARM site and it was for 2.36.29 kernel, and I had 2.36.34……  You would think it would work (yes it booted and all, but installing modules for devices or adding packages kept spitting out ‘invalid format’ errors).

I ended up with Ubuntu 10.10 (Maverick I guess).  With help of Robert Nelson images, I manually installed the boot images with mkimage in Debian, and the rootfs on the second partition (untarred it).  Anyway, after altering the boot.scr a little and saving with mkimage, the Beagleboard boots right up.  If the serial port is connect to PC with a terminal program running (PuTTY for Windows, picocom for Linux) at 115200-n-8, it displays on both terminal and DVI output (LCD monitor).

Beagleboard DVI

Xserver didnt work after install because the distro image was a ‘minimal’ one – perfect!  I would like to be responsible for my own application bloat anyway.  So I proceeded to install X Windows server (apt-get install xorg) and windows manager – fluxbox (apt-get install fluxbox).

One note:  the ethernet did not work right away, which was really a setup issue.  For some strange reason, the ethernet installed on USB1 instead of USB0 like it always did before.  This might be because I had a thumb drive in the port.  Ethernet is really a USB ethernet.  So using ‘ifconfig’, I set a static ip, and used ‘route add’ to set gateway.  Pinging outside site confirmed working ethernet.  Very next step after that was to update package list (apt-get update), which had to be done before installing anything else like X windows mentioned above.  At last count, on this little board, I had 22,800 files and directories installed (from apt-get feedback).


One mention on performance.  Ubuntu 10.10 is not a speed demon on this board.  Angstrom is much faster.  It is due to a combination of things – sheer file number and system footprint, SD card capability and format, and the fact that the kernel command to restrict CPU speed to 800 from 1000 (this will be fixed in a later update).  But I sacrifice speed for functionality at this point.  Afterall, I was going to be setting up a 300Mhz system before – so this is still like heaven.

Helpful Links:

Posted under Operating Systems,Robotics