Splashtop OS from Grub2

I noticed recently that the folks at Splashtop (formerly DeviceVM) have released Splashtop OS. It appears to be a small, quick loading chrome web browser based operating system with flash support. I have a few ASUS motherboards that support Express Gate so I am familiar with their earlier incarnation of this idea. I decided to give Splashtop OS a try on a laptop that dual boots between Windows Vista and Ubuntu 10.10. My laptop was not on the list of supported platforms but it seems to work, YMMV.

The Windows installer downloads and installs Splashtop OS to a hidden folder on the Windows drive (in this case drive C). It didn’t make any changes to the Grub2 boot manager installed by Ubuntu. It added an entry for Splashtop OS to Windows Vista’s boot manager. Running update-grub didn’t find Splashtop OS so I needed to add it manually.

The safe place to add entries to Grub2 is in the file /etc/grub.d/40_custom. The entries will depend upon what partition the Slashtop is installed on. In my case it was on the first partition of the drive. The “set root=” entry could be different if your config is not the same.

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Splashtop CE (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
echo 'Splashtop CE ...'
linux16 /SPLASHDL/SPLASHDL.SYS/CE_BZ
}

After making changes to the Grub2 configuration file it needs to be updated by running the following:

sudo update-grub

On initial boot we are presented with Bing as the search engine choice but it appears there are plenty of opportunities for customization. I think it also installed the “Bing Bar” on the Internet Explorer in my Windows install. When a company does these things without warning you have to wonder what else they have done without asking. It offered to import bookmarks and asked if I wanted to use my windows wireless settings during the install.

It seems fast, works with Youtube and could be a good thing.

Posted in linux, ubuntu, vista, windows | Tagged , | 2 Comments

Enable Sure Electronics Driver in LCDproc

I purchased an LCDSmartie usb lcd display board from ebay to use with LCDproc and was relieved to find instructions for downloading LCDproc from cvs and enabling the driver here:

http://lodge.glasgownet.com/2009/12/22/suresmartie-lcdproc/

See the above link for step by step instructions. I am using it on Ubuntu 10.04 and it worked well. The following is a quick summary of the steps (just in case it disappears):

cvs -d:pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc login
cvs -z3 -d:pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc co -P lcdproc
sudo apt-get install libusb-dev autogen automake
sh ./autogen.sh
./configure –enable-drivers=SureElec
make
sudo make install
sudo gedit /usr/local/etc/LCDd.conf

Add the following to /etc/LCDd.conf:

driver=SureElec
DriverPath=/usr/local/lib/lcdproc/
Edition=3
Contrast=200
Brightness=480

Posted in linux, Tutorial | 1 Comment

Python Gmail LCDproc Client

One of the LCDproc clients running on my wifi radio is a python script which grabs the atom feed from Gmail to find out if there are any unread messages in my inbox. LCDproc is a project that produces server software that drives those small lcd displays on a Linux/BSD machine. The Gmail notifier script is inspired by two different sources:

http://www.stefanomanni.it/arduino/2009/12/07/ardugmailnotifier-an-arduino-based-gmail-notifier/

Which depends on python-feedparser.

and also:

http://mydogsbreakfast.blogspot.com/2010/01/lcdprocpy.html

Which depends on Jingleman’s Python OOP Wrapper Library for LCDproc Telnet API (lcdproc0.02).

Here is the result: lcdgmail.py.tar.gz

* Sept. 20, 2010 – added some exception handling to toughen the script up a bit. I found that feedparser doesn’t like to read things sometimes.

* Sept. 21, 2010 – modified the script to read feed once per iteration of the main loop.

* Sept. 29, 2010 – added simple GNU all-permissive license to code.

#!/usr/bin/env python

# This is a fusion of two different scripts:
#
# 1) http://mydogsbreakfast.blogspot.com/2010/01/lcdprocpy.html
#
# requires lcdproc0.2 from http://pypi.python.org/pypi/lcdproc
# Also see http://github.com/jingleman/lcdproc/
# Based on http://github.com/jingleman/lcdproc/blob/master/examples.py
#  sudo apt-get install python-setuptools
#  sudo easy_install lcdproc

# 2) Python script for ArduGmail Notifier
#
# AUTHOR: Stefano Manni | http://www.stefanomanni.it/arduino | ::FREE SOFTWARE::
# ATTENTION: First install python-feedparser available in Ubuntu Repository or at http://www.feedparser.org/
#  sudo apt-get install python-feedparser

# Checks the Gmail atom feed to see how many messages in inbox and displays a bit of info about
# the first few in the queue and sends the the info out as a lcdproc client (16x2 LCD)

# Copyright 2010, Peter Harding, seephar.com
# revised 20100920 - added exception handling
# revised 20100921 - modified to read feed once per iteration
#
#     Copying and distribution of this file, with or without modification,
#     are permitted in any medium without royalty provided the copyright
#     notice and this notice are preserved.  This file is offered as-is,
#     without any warranty.

import time, commands, string, sys, feedparser, time
from time import strftime

from lcdproc.server import Server
USERNAME="gmail username"		# Change to match your username!
PASSWORD="gmail password"		# Change to match your password!
PROTO="https://"
SERVER="mail.google.com/gmail/feed/atom"	

def main():

	try:
		lcd = Server("127.0.0.1", debug=False)
		lcd.start_session()
	except:
		print "Unexpected error:", sys.exc_info()[0]
		raise SystemExit("LCD didn't start, no need to continue")

	screen1 = lcd.add_screen("Screen1")
	screen1.set_heartbeat("off")
	screen1.set_duration(12)

	screen2 = lcd.add_screen("Screen2")
	screen2.set_heartbeat("off")
	screen2.set_duration(12)

	ddow = strftime("%A")
	ddate = strftime("%d %b %Y")

	display_sc1_ln1 = screen1.add_string_widget("sc1_ln1", text= "Wait 90 Secs...", x=1, y=1)
	display_sc1_ln2 = screen1.add_scroller_widget("sc1_ln2", text="for Network", left=1, top=2, right=16, bottom=2, speed=3)

	display_sc2_ln1 = screen2.add_scroller_widget("sc2_ln1", text=ddow, left=1, top=1, right=16, bottom=1, speed=3)
	display_sc2_ln2 = screen2.add_scroller_widget("sc2_ln2", text=ddate, left=1, top=2, right=16, bottom=2, speed=3)

	# wait 90 seconds for networking to be fully active on startup otherwise script will break
	time.sleep(90)

	while True:

		try:
			gfeed = feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER)
		except:
			gcounter = 0
			display_sc1_ln1.set_text("Gmail: ?")
			display_sc1_ln2.set_text("Feed not read!")
			ddow = strftime("%A")
			ddate = strftime("%d %b %Y")
			display_sc2_ln1.set_text(ddow)
			display_sc2_ln2.set_text(ddate)
		else:
			gcounter = int(gfeed.feed.fullcount)
			if gcounter == 0:
				display_sc1_ln1.set_text("Gmail: 0")
				display_sc1_ln2.set_text("No mail!")
				ddow = strftime("%A")
				ddate = strftime("%d %b %Y")
				display_sc2_ln1.set_text(ddow)
				display_sc2_ln2.set_text(ddate)

		if gcounter == 1:
			display_sc1_ln1.set_text("Gmail: 1")
			try:
				gtitle = str(gfeed.entries[0].title)
			except:
				gtitle = "Couldn't read title"
			if len(gtitle) > 25:
				display_sc1_ln2.set_text(gtitle[0:24])
			else:
				display_sc1_ln2.set_text(gtitle)
			try:
				gsummary = str(gfeed.entries[0].summary)
			except:
				gsummary = "Couldn't read summary"
			if len(gsummary) > 25:
				display_sc2_ln1.set_text(gsummary[0:24])
			else:
				display_sc2_ln1.set_text(gsummary)
			try:
				gauthor = str(gfeed.entries[0].author)
			except:
				gauthor = "Couldn't read author"
			if len(gtitle) > 25:
				display_sc2_ln2.set_text(gauthor[0:24])
			else:
				display_sc2_ln2.set_text(gauthor)

		if gcounter == 2:
			display_sc1_ln1.set_text("Gmail: 2")
			display_sc1_ln2.set_text("")
			try:
				gtitle = str(gfeed.entries[0].title)
			except:
				gtitle = "Couldn't read title"
			if len(gtitle) > 25:
				display_sc2_ln1.set_text(gtitle[0:24])
			else:
				display_sc2_ln1.set_text(gtitle)
			try:
				gtitle = str(gfeed.entries[1].title)
			except:
				gtitle = "Couldn't read title"
			if len(gtitle) > 25:
				display_sc2_ln2.set_text(gtitle[0:24])
			else:
				display_sc2_ln2.set_text(gtitle)

		if gcounter > 2:
			display_sc1_ln1.set_text("Gmail: " + str(gcounter))
			try:
				gtitle = str(gfeed.entries[0].title)
			except:
				gtitle = "Couldn't read title"
			if len(gtitle) > 25:
				display_sc1_ln2.set_text(gtitle[0:24])
			else:
				display_sc1_ln2.set_text(gtitle)
			try:
				gtitle = str(gfeed.entries[1].title)
			except:
				gtitle = "Couldn't read title"
			if len(gtitle) > 25:
				display_sc2_ln1.set_text(gtitle[0:24])
			else:
				display_sc2_ln1.set_text(gtitle)
			try:
				gtitle = str(gfeed.entries[2].title)
			except:
				gtitle = "Couldn't read title"
			if len(gtitle) > 25:
				display_sc2_ln2.set_text(gtitle[0:24])
			else:
				display_sc2_ln2.set_text(gtitle)

		time.sleep(900) # check every 15 min should be often enough, wouldn't want to be a pest

if __name__ == "__main__":
	main()


Download script here: lcdgmail.py.tar.gz

Posted in linux, ubuntu | Leave a comment

Ubuntu Manual Project

Kudos to the Ubuntu Manual Project team. Getting Started with Ubuntu 10.04 is a great introduction (refresher) to the newest version of Ubuntu. It has been translated to many languages and has been released with a creative commons license so you are free to share. Download your copy now!

Posted in linux, Tutorial, ubuntu | Leave a comment

Lucid No Video Quirk on Biostar TF7050-M2

The Nvidia 7050PV video IGP on my Biostar TF7050-M2 motherboard has normally been cranky on install of previous versions of Ubuntu so it was not unexpected when it gave me trouble with Ubuntu 10.04 “Lucid Lynx”. On starting my flash drive I was able get to the initial install menu but the normal “Try Ubuntu without installing” option yielded a blank screen when the graphical display manager (gdm) started up. To avoid this I pressed F6 Other Options and selected nomodeset. Then I selected the “Try Ubuntu without installing” option to get to a point where I could install Lucid.

Once I installed Lucid and attempted to restart I found again that there was no video on boot. To avoid this I held the shift key down during startup to enter the grub boot menu. The first option was highlighted (in my case Ubuntu, with Linux 2.6.32-21-generic). I pressed “e” to edit the commands before booting and used the cursor keys to move the cursor down to the end of the “linux /boot/vmlinuz-2.6.32-21-generic root=UUID=xxxxxxxxxxx-xxx-xxx-xxxx-xxxxxxxxxxxxx ro quiet splash” line. At the end of the line I added a space and “nomodeset” (without the quotes) and then pressed Ctrl-x to boot the system.

When the machine started into the gdm and after login, I selected System->Administration->Update Manager and made sure all the updates had been installed. Then I selected System->Administration->Hardware Drivers to install the latest drivers for the nvidia IGP on my motherboard (in my case NVIDIA accelerated graphics driver (version current) [Recommended]). When it finished installing I restarted and the correct driver at the correct resolution was what appeared. As always your mileage may vary.

* Oct 18, 2010 – Still need to do this for Ubuntu 10.10 Maverick Meerkat.

Posted in linux, Tech Trouble, ubuntu | Tagged , , | Leave a comment

The (not so) Subtle Subversion of the Netbook

One Laptop Per ChildI have been thinking over the past year about how the ideal of the perfect netbook has been subverted.

When the One Laptop Per Child OLPC XO-1, the Eee PC 700 series were first announced the idea of the netbook for me was simple. A small, ultra portable computer with low power consumption and cost. Flash memory storage promised to keep the machine rugged and mission simple. A machine that was capable enough to do what I needed when away from my main (much more capable) machine but not much more.

I knew that there were many things they could not do. I didn’t care. I wanted them for what they could do. I ended up getting two Intel Atom based flash netbooks. An Acer Aspire One A110 and a Dell Mini 9 both with 8GB Flash drives and replaced their shipped operating systems with Ubuntu Netbook Remix.

It is understandable that manufacturers would like to capitalize on the attention the diminutive machines are getting and the desire to optimize revenue by pushing the features and price up. There is also the threat they pose as they could cannibalize sales of higher end machines. Freescale Smartbook Reference DesignI also fear it may also be a threat to some operating system vendors and as a result may be a pawn in the market share war for people’s hearts and minds. At some point though, the product becomes just a small laptop/notebook and is no longer a netbook.

There is hope, though. I wait patiently for the ARM based *books that may be coming to market soon. The Freescale 7″ tablet reference design announced just in time for 2010 CES looks nice. If it has an 8-10 hour battery life it may be perfect.

More Pictures

Posted in ARM, Buying Technology, netbook, ubuntu | Tagged , , , , | Leave a comment

The New Chumby One

The Chumby is a device that is hard to describe. It is a small wifi connected computer which runs flash applets (called widgets) from the Chumby servers. What this bedside/kitchen/desk/? device does depends on the widgets you choose to run. Email/news/twitter updates, streaming radio, clocks, digital photo frame, there are more than 1500 widgets to choose from.

Chumby OneThe folks at Chumby redesigned the device for a lower cost as the clouds of economic storm of the past year formed. For an insider’s view please see bunnie’s blog. The cool part is that they want you to hack their hardware/software. What you have here is a low power consumption freescale ARM based computer platform to experiment with. The operating system is linux based so you can enable the SSH daemon and log right in. I look forward to more arduino based projects that are bound to be paired with this little beast. Oh, they added an FM radio as well.

I have been interested in the Chumby since the original was introduced a year or so ago but this new lower cost version convinced me to finally get one. Sadly, we Canucks will have to wait since it is not available to Canadians. Bunnie alludes to a trademark dispute in Canada. On the Chumby support forums it is mentioned that two companies are giving them some trouble and another here. I hope this is not a case of a large incumbent company finding ways to restrict competition and trade from a smaller company. No one likes a bully.

Posted in ARM, Buying Technology, linux | Tagged , , | Leave a comment

Tweaking Karmic on emachines D620

My Ubuntu 9.10 (Karmic Koala) install on an emachines D620 yielded default video at 1024×768 with the Vesa driver. The notebook is capable of 1280×800 and the open source Radeon driver has been improving support for the RS690M (ATI 1200 series) which the D620 has. Here is my solution to add support for the video circuitry and native resolution of the lcd on the emachines D620:

sudo gedit /etc/X11/xorg.conf

and change to the following in the xorg.conf:

Section “Device”
Identifier “Configured Video Device”
Driver “radeon”
EndSection

Section “Monitor”
Identifier “Configured Monitor”
EndSection

Section “Screen”
Identifier “Default Screen”
Monitor “Configured Monitor”
Device “Configured Video Device”
SubSection “Display”
Depth 24
Virtual 1280 800
EndSubSection
EndSection

Restart the machine and it should be good to go.

Posted in linux, Tech Trouble, Tutorial, ubuntu | Tagged , , , | Leave a comment

Tweaking Karmic on Averatec 3700

My sister’s laptop is beginning to feel its age and the recent introduction of Ubuntu 9.10 (Karmic Koala) seemed like an opportunity to revive it. The Averatec 3715-ED1 is a 12.1″ 1024×768 screen, AMD Mobile Sempron 3000, 512MB memory, VIA/S3G Unichrome Pro IGP. It is not the fastest of machines but it is small and doubles as a nice heating pad for the cats.

It would be best to install using the safe graphics mode to force it into VGA mode. Press F4 for “Modes” on the boot menu of the LiveCD and select “Safe graphics mode” and then “enter key” to select it. Then start the LiveCD normally. The correct resolution seems to be misidentified and it is defaulting to the maximum resolution which was 1900×1200 or something like that.

After installing I forced the usplash to 1024×768 by editing /etc/usplash.conf:

sudo gedit /etc/usplash.conf

and changed the xres to 1024 and yres to 768, saved it and then ran:

sudo update-initramfs

to implement the change.

The gdm was also defaulting to the wrong resolution but would correct itself after logging in. To fix that I found a usable /etc/X11/xorg.conf here:

http://launchpadlibrarian.net/30406077/xorg.conf

and copied it to the /etc/X11 directory. This configuration file is not normally used anymore since x now automatically detects these settings but in special cases it still can be handy. This was discussed here:

https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-openchrome/+bug/186103, post #22.

The last major tweak I made was related to problems suspending and the wireless adapter not functioning after restore. The wireless adapter uses the rt2500pci driver. As I have discovered in the past, the rt2500pci needs some special handling on suspend:

sudo gedit /etc/pm/config.d/rt2500pci

to place a file called rt2500pci in the /etc/pm/config.d/ directory containing:

SUSPEND_MODULES=”rt2500pci”

Sadly some hardware is supported better than others. After a new release there is often a discovery period of time the length of which is inversely proportional to the number of those who own any particular combination of hardware. It is best to try to keep that in mind when shopping for new equipment and select hardware that is well supported.

Karmic is working much faster than the old operating system that shipped with the computer. I will see over the next week how well these tweaks worked.

Posted in linux, Tech Trouble, ubuntu | Tagged , , , | Leave a comment

Ubuntu 9.10 Available Now

The latest version of Ubuntu was released yesterday and sites are busy as people around the world are trying it out. Ubuntu is a “UNIX like” operating system for personal computers with a strong community minded approach. It is a distribution based on the Linux kernel, the GNU Project and Debian distribution and is composed of free software from many sources.

Get it while it’s hot here: http://www.ubuntu.com/getubuntu/downloadmirrors. There are a few things we all can do to ease the burden a new release has on the Internet.

  • Use more local (and hopefully faster) mirrors for the download.
  • Use the torrents to download and seed to others to share the distribution by many to many.
  • For those who have many machines, please consider caching updates with something like apt-cacher. Download updates once and then distribute them locally on the local network.

We should really thank Canonical and the generous organizations that host the mirrors since the network access is not free. There are very real costs associated with distributing software over the Internet. Each and every one of us have an opportunity to really help and do things that can make us good netizens.

I can’t emphasize enough the importance of using the torrents to distribute Ubuntu in a peer to peer fashion. Peer to peer file sharing is often demonized but this is one obviously important use for the technology that shouldn’t be penalized by my Internet service provider.

I came across a great posting about things to do after installing Ubuntu 9.10 with many good suggestions. There are many new features in this release of Ubuntu and I think the devs were very ambitious with the many improvements. Thanks, so much to them and the rest of the community involved!

http://www.ubuntu.com/community/conduct
New features in Ubuntu 9.10 – http://www.ubuntu.com/products/whatisubuntu/910features
http://www.ubuntu.com/getubuntu/downloadmirrors
Concise list of the torrents – http://torrent.ubuntu.com:6969/
http://blog.thesilentnumber.me/2009/09/top-things-to-do-after-installing.html
http://ubuntuforums.org/

Posted in Desktop PC's, linux, ubuntu | Leave a comment