Wednesday, November 16, 2011

#LubuntuLinux on Chromebook CR-48 (Updated 11/18/2011)


Upgrading Lubuntu 10.10 on Chromebook to Lubuntu v11.04
Note: I want to be up front and say how grateful I am to the Google folks for allowing me to have a Chromebook. I've used it in a variety of settings and found it to be versatile enough for my needs as a technology administrator--such as administering a Moodle site, typing at the command line via ssh to a server, or writing a blog entry or memo. Unfortunately, I always found myself wishing for something more...it must be a personal defect to want to install Linux on every machine I touch, but I'm so glad that the Chromebook is versatile enough for that, too!! Thank you Google and Chromebook developers for the opportunity to learn and share using this device!
Read about Chromebooks in schools...here and here

What a fun experience it's been loading LubuntuLinux on the Chromebook CR-48!  The Lubuntu webcam software works just fine--something I wondered would given that it didn't work when running ChromeOS. I've often wanted to do so but have been fearful of goofing things up. The process was surprisingly easy thanks to the hard work of the person at this link. Of course, those instructions are for loading Ubuntu 10.10 (Maverick).

Update: Oops...steps 1-3 must have gotten wiped out during some errant editing. I've tried to re-create them below:
STEPS TO LUBUNTU ON A CHROMEBOOK CR-48
1) Flip the switch on your Google Chromebook CR-48 into developer mode. This picture shows you how to accomplish this after you remove the battery (easy):
Read the accompanying blog entry


2) Follow the instructions linked here very carefully.

3) After completing step 12 in the instructions linked, you're ready for the next step.

4)  Uninstalled Ubuntu stuff unnecessary to LXDE, then installed lubuntu-desktop as described in the linked instructions. You can also copy-n-paste the info below.


sudo apt-get remove acpi-support acpid adium-theme-ubuntu aisleriot alacarte app-install-data app-install-data-partner appmenu-gtk apt-xapian-index apturl apturl-common at-spi avahi-autoipd avahi-daemon bamfdaemon banshee banshee-extension-soundmenu banshee-extension-ubuntuonemusicstore baobab binfmt-support bluez-alsa bluez-cups bluez-gstreamer bogofilter bogofilter-bdb bogofilter-common branding-ubuntu brasero brasero-cdrkit brasero-common brltty brltty-x11 capplets-data checkbox checkbox-gtk cli-common compiz compiz-core compiz-gnome compiz-plugins compiz-plugins-main compizconfig-backend-gconf computer-janitor computer-janitor-gtk cups-bsd dc dmz-cursor-theme doc-base dvd+rw-tools empathy empathy-common eog espeak espeak-data evolution evolution-common evolution-data-server evolution-data-server-common evolution-exchange evolution-indicator evolution-plugins evolution-webcal example-content exiv2 firefox firefox-globalmenu firefox-gnome-support foo2zjs foomatic-db-compressed-ppds foomatic-db-engine foomatic-filters gbrainy gcalctool gcc gcc-4.5 gconf-defaults-service gconf-editor gdm gdm-guest-session gedit gedit-common geoclue geoclue-ubuntu-geoip ghostscript-x ginn gir1.2-gconf-2.0 gir1.2-panelapplet-3.0 gir1.2-soup-2.4 gnome-about gnome-accessibility-themes gnome-applets gnome-applets-data gnome-codec-install gnome-control-center gnome-desktop-data gnome-games-common gnome-mag gnome-mahjongg gnome-media gnome-media-common gnome-menus gnome-nettool gnome-orca gnome-panel gnome-panel-bonobo gnome-panel-data gnome-screensaver gnome-screenshot gnome-search-tool gnome-session gnome-session-bin gnome-session-canberra gnome-session-common gnome-settings-daemon gnome-sudoku gnome-system-log gnome-system-monitor gnome-terminal gnome-terminal-data gnome-themes-selected gnome-themes-ubuntu gnome-user-guide gnome-utils-common gnomine growisofs gsettings-desktop-schemas gstreamer0.10-alsa gstreamer0.10-gnonlin gstreamer0.10-plugins-base-apps gstreamer0.10-pulseaudio gstreamer0.10-tools gstreamer0.10-x guile-1.8-libs gwibber gwibber-service gwibber-service-facebook gwibber-service-identica gwibber-service-twitter hpijs hplip hplip-cups hplip-data humanity-icon-theme ibus ibus-gtk ibus-pinyin ibus-pinyin-db-android ibus-pinyin-db-open-phrase ibus-table im-switch indicator-applet indicator-applet-appmenu indicator-applet-complete indicator-applet-session indicator-application indicator-appmenu indicator-datetime indicator-me indicator-messages indicator-session indicator-sound inputattach kerneloops-daemon launchpad-integration lftp libappindicator0.1-cil libart2.0-cil libasound2-plugins libatspi1.0-0 libavahi-core7 libavahi-gobject0 libbamf0 libboost-serialization1.42.0 libbrasero-media1 libbrlapi0.5 libc-dev-bin libc6-dev libcairo-perl libcamel1.2-19 libcanberra-pulse libcolamd2.7.1 libcompizconfig0 libcrypt-passwdmd5-perl libcryptui0 libdaemon0 libdconf0 libdecoration0 libdee-1.0-1 libdigest-sha1-perl libdotconf1.0 libebackend1.2-0 libebook1.2-10 libecal1.2-8 libedata-book1.2-8 libedata-cal1.2-10 libedataserver1.2-14 libedataserverui1.2-11 libegroupwise1.2-13 libespeak1 libevolution libexempi3 libexiv2-10 libfile-copy-recursive-perl libfolks-telepathy22 libfolks22 libfreezethaw-perl libgail-common libgail-gnome-module libgconf2.0-cil libgd2-xpm libgdata-common libgdata1.7-cil libgdata11 libgee2 libgeoclue0 libgexiv2-0 libgkeyfile1.0-cil libglade2.0-cil libgladeui-1-11 libglew1.5 libglewmx1.5 libglib-perl libglib2.0-bin libglib2.0-cil libglib2.0-data libgmime-2.4-2 libgmime2.4-cil libgnome-mag2 libgnome-media0 libgnome-menu2 libgnome-vfs2.0-cil libgnome-window-settings1 libgnome2.24-cil libgnomekbd-common libgnomekbd4 libgnomeui-0 libgnomeui-common libgomp1 libgoocanvas-common libgoocanvas3 libgpod-common libgpod4 libgraphite3 libgsl0ldbl libgtk-sharp-beans-cil libgtk-vnc-1.0-0 libgtk2-perl libgtk2.0-cil libgtkhtml-editor-common libgtkhtml-editor0 libgtkhtml3.14-19 libgtksourceview2.0-0 libgtksourceview2.0-common libgudev1.0-cil libgweather-common libgweather1 libgwibber1 libhpmud0 libhyphen0 libibus2 libido-0.1-0 libjson-glib-1.0-0 liblaunchpad-integration1.0-cil liblouis-data liblouis2 libmetacity-private0 libmission-control-plugins0 libmldbm-perl libmono-addins-gui0.2-cil libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil libmono-i18n-west2.0-cil libmono-management2.0-cil libmono-posix2.0-cil libmono-security2.0-cil libmono-sharpzip2.84-cil libmono-system2.0-cil libmono-zeroconf1.0-cil libmythes-1.2-0 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libnotify0.4-cil libnss-mdns libnux-0.9-0 libnux-0.9-common libopencc1 liboverlay-scrollbar-0.1-0 libpam-ck-connector libpam-gnome-keyring libpanel-applet-3-0 libpango-perl libprotobuf6 libprotoc6 libpst4 libpulse-browse0 libpulse-mainloop-glib0 libquvi0 libraptor1 librarian0 librasqal2 librdf0 libreoffice-base-core libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-emailmerge libreoffice-gnome libreoffice-gtk libreoffice-help-en-us libreoffice-impress libreoffice-math libreoffice-style-human libreoffice-writer libsane-hpaio libsdl1.2debian-pulseaudio libsensors4 libsnmp-base libsnmp15 libspeechd2 libspeexdsp1 libstlport4.6ldbl libsyncdaemon-1.0-1 libtaglib2.0-cil libtelepathy-farsight0 libtelepathy-glib0 libtelepathy-logger2 libtextcat-data libtextcat0 libtotem-plparser17 libubuntuone-1.0-1 libubuntuone1.0-cil libunity-misc0 libunity4 libutouch-geis1 libuuid-perl libwmf0.2-7-gtk libxp6 libzeitgeist-1.0-1 light-themes linux-libc-dev lp-solve make manpages-dev media-player-info metacity metacity-common min12xxw mono-2.0-gac mono-csharp-shell mono-gac mono-gmcs mono-runtime mousetweaks mscompress mtools nautilus nautilus-data nautilus-sendto nautilus-sendto-empathy nautilus-share network-manager-pptp network-manager-pptp-gnome notify-osd notify-osd-icons nux-tools onboard openprinting-ppds overlay-scrollbar pinyin-database pitivi pkg-config plymouth-theme-ubuntu-logo pnm2ppa protobuf-compiler pulseaudio pulseaudio-esound-compat pulseaudio-module-bluetooth pulseaudio-module-gconf pulseaudio-module-x11 pulseaudio-utils pxljr python-appindicator python-aptdaemon-gtk python-aptdaemon.gtkwidgets python-argparse python-brlapi python-configglue python-crypto python-egenix-mxdatetime python-egenix-mxtools python-farsight python-gmenu python-gnome2 python-gnomecanvas python-gst0.10 python-gtksourceview2 python-gtkspell python-ibus python-imaging python-indicate python-launchpad-integration python-libproxy python-louis python-mako python-markupsafe python-openssl python-pam python-papyon python-pexpect python-piston-mini-client python-protobuf python-pyatspi python-pygoocanvas python-pyinotify python-pyorbit python-rdflib python-serial python-speechd python-telepathy python-twisted-bin python-twisted-core python-twisted-names python-twisted-web python-ubuntuone-client python-ubuntuone-control-panel python-ubuntuone-storageprotocol python-uno python-virtkey python-wnck python-xapian radeontool rarian-compat rdesktop rfkill rtkit samba-common samba-common-bin sane-utils screensaver-default-images seahorse sessioninstaller shotwell smbclient software-center speech-dispatcher splix ssh-askpass-gnome syslinux syslinux-common telepathy-butterfly telepathy-gabble telepathy-haze telepathy-idle telepathy-logger telepathy-mission-control-5 telepathy-salut tomboy toshset totem totem-common totem-mozilla totem-plugins tsclient ttf-opensymbol ubufox ubuntu-artwork ubuntu-desktop ubuntu-docs ubuntu-mono ubuntu-sounds ubuntu-sso-client ubuntu-system-service ubuntu-wallpapers ubuntuone-client ubuntuone-client-gnome ubuntuone-control-panel ubuntuone-control-panel-gtk unity unity-asset-pool unity-common unity-place-applications unity-place-files uno-libs3 update-inetd ure usb-creator-common usb-creator-gtk vinagre vino whois wodim x-ttcidfont-conf xcursor-themes xdg-user-dirs-gtk xfonts-mathml xscreensaver-gl xul-ext-ubufox zeitgeist zeitgeist-core zeitgeist-datahub zeitgeist-extension-fts zenity && sudo apt-get install lubuntu-desktop

5) After that, I installed my favorites. Upon restarting, I had to press Ctrl-D to get past the sad ChromeOS image (shown above as the unhappy computer)


The screen the Chromebook starts up with...I have to bypass this screen by pressing
Ctrl-D and then Lubuntu starts up normally


Running Chrome on a Chromebook via LubuntuLinux works great, BTW!

6) Do a distribution upgrade to bring Lubuntu up to 11.04. This took about 2 hours (unattended for the most part).

7) The touchpad was driving me crazy, and since I use an external mouse,  I followed these instructions to disable it when a mouse is connected. I'm copying here for my records:
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
By the way, the touchpad-indicator solution stopped working after upgrade to 11.04. I ended up using this command line solution:
xinput set-prop 12 "Device Enabled" 0
where 0=OFF and 1=ON


8) Autologin
a) To auto-login, navigate to /etc/xdg/lxdm and open the configuration file there, lxdm.conf.
b) Uncomment (delete the # sign and preceding space) in front of the lines for "autologin" and "session", then change the username dgod to whatever your username is. 


Then, I typed lsb_release -a to find out what version of lubuntu (I knew but wanted confirmation):
Distributor ID: Ubuntu
Description: Ubuntu 11.04
Release: 11.04
Codename: natty
I'll probably try to do a dist-upgrade to Lubuntu 11.10 later tonight. Overall, I have 2.8 gigs left over to play with.

Next step for tomorrow...upgrade to 11.10
Reflections on Lubuntu:
To be honest, running LubuntuLinux has already made this computer a heck of a lot more useful. Not only can I use it as a "normal computer" albeit with 2.x gigs of free space, but I can access external USB drives easily, save content, open content, run terminal, and all the standard software that makes UbuntuLinux great.

The only sad point is that it lacks a second USB port, which would have made this a great device. Perhaps my standards are too high, but being able to work on a normal desktop linux is way better than a browser OS. Start up time is still fairly fast (I haven't timed it), and the benefits far outweigh the slight wait time or having to press Ctrl-D to get past the sad computer face.

Update #2 - Problem with 11.10 Upgrade
Alas, I'm back to ChromeOS on the Chromebook CR-48. I attempted to upgrade to Lubuntu 11.10 from Lubuntu 11.04 (which worked beautifully, heart-achingly so in retrospect), and something went wrong. I'm not sure what, but the upgrade froze, restarted, and refused to continue. As a result, I had to reset the Chromebook back to default settings.

I tried re-running the script that had enabled me to load Ubuntu 10.10, but since the partition sizes had changed (as a result of running the script the first time), it was unable to continue. I'd have to modify the script and that's out of range for me at this point.

The lesson? Stop when you're ahead. 8->

Note: There are other approaches, but I haven't had time to try them out. THis is all well-documented in YouTube, so if you want to go further than outlined in this blog entry, check YouTube.com out!

Get Blog Updates via Email!
Enter your email address:
Delivered by FeedBurner


Everything posted on Miguel Guhlin's blogs/wikis are his personal opinion and do not necessarily represent the views of his employer(s) or its clients. Read Full Disclosure

1 comment:

Mr. Jon said...

I'm having a hard time getting embedded audio and video (even YouTube) to display on a Chromebook in Moodle. I've tried on a 1.9 and a 2.1 Moodle site. Did you run into any of those problems?

Subscribe via email

Enter your email address:

Delivered by FeedBurner

Disclaimer

Disclaimer

Everything posted on Miguel Guhlin's blogs/wikis are his personal opinion and do not necessarily represent the views of his employer(s) or its clients. Read Full Disclosure