Tuesday, December 18, 2012

Bodhi ARMHF Alpha for Nexus 7

Earlier this month we collected enough donations that I was able to pick up a Nexus 7 to do some development work on for Bodhi. Today I would like to share our first public images for the Nexus 7. They install, they boot up, and they are semi functional. By that I mean the touchscreen and wireless work OOTB and the interface runs smoothly on the device. I haven't had time to try and make audio work fully yet - but I have gotten some noise to come out of the speakers.

With the help of my lovely fiance I filmed the following short demo video of Bodhi running on the device:



Anywho - installing Bodhi on the Nexus 7 follows the same process as installing Ubuntu on the device. I don't have an automated installer finished just yet so you will need to install the Bodhi images using a manual install process. This can be done using the following steps:


Step 0 - Getting the Tools

Installing Bodhi on the Nexus 7 can be done from any Linux distribution so long as you have the proper android tools installed (if you are using Bodhi on your desktop the Android tools can be found in our repositories). Namely you need the fastboot command.

Step 1 - Unlocking your Nexus 7

The bootloader on the Nexus 7 needs to be unlocked to accept other operating systems. Start with your device off, then while holding the volume down button power the device on - you will soon see the bootloader screen. Attach the Nexus 7 to your computer with a micro USB cable and run the command:

sudo fastboot oem unlock

After you run this command your Nexus 7 will ask you to confirm you want to unlock the bootloader - do so. Then run:

sudo fastboot reboot-bootloader

to finish the unlocking process.

Step 2 - Get the Bodhi Files

You need to download and then extract both the tarballs found here.

Step 3 - Writing the data to the Nexus 7

Open a terminal to the directory where you extracted both the files you downloaded above. Then run the following commands in order:

sudo fastboot erase boot
sudo fastboot erase userdata
sudo fastboot flash boot boot.img
sudo fastboot flash userdata rootfs.img
sudo fastboot reboot


After you run the last command your Nexus 7 will reboot and automagically extract and install the Bodhi file system on your device (this will take a few minutes). When it is finished it will boot right into the Bodhi desktop for you.


User Information

Default username:
armhf

Default password:
bodhilinux

The default user has sudo rights.



Getting Support

Please, please, please do not make a comment on this post asking for support with an issue you encounter with installing/running Bodhi on your Nexus 7! Comments asking for support will be removed from this post. Instead please open a support request thread in the Nexus 7 section of our user forums. It is much easier to manage/search/solve issues in a message board format than a comments section.


Other Notes

I do consider this an alpha quality release. As noted above the sound still doesn't work by default and I am sure there are some other minor niggles that need to be worked out.

Cheers,
~Jeff Hoogland

Sunday, December 16, 2012

Bodhi ARMHF Alpha for Samsung Chromebook

As I mentioned in a post last weekend, I've got my hands on the new Samsung Chromebook. The hardware in this device is simply awesome (full formal review forthcoming), but ChromeOS left me wanting a real operating system with non-cloud applications. Thankfully I've been working on Bodhi's ARM branch for awhile now and it proved fairly simple to get at least a base system up and rolling on the Chromebook (largely due to the fact that ChromeOS is Linux based).

Now, unfortunately the current install process for getting an alternative operating system to boot on the Chromebook isn't as easy as our Genesi images - but if you follow the instructions I provide below to the letter you should have Bodhi booting on your Chromebook in no time!

Please note following these steps WILL permanently delete all local data and configurations of your ChromeOS! It essentially restores the system to factory defaults.



Step 1 - Boot in Recovery Mode

Make sure your chromebook is off. Then hold the escape and refresh keys (where f3 should be) and power on the device. This should get you to a recovery screen - press ctrl+d followed by enter. The system should now reboot into recovery mode.

Step 2 - Get to a TTY with Internet

Once the system reboots in recovery mode it will take a few moments to get everything configured (this requires no user input, just waiting - so grab a snack). Once the system starts up select a wireless access point to connect to, but do not log into a Google account. Now that we have an internet connection you need to drop to a TTY. To do this press ctrl+alt+-> (The "->" key is where f2 would be on a standard keyboard).

For the username type chronos and then press enter - no password is needed.

Step 3 - Download and run Bodhi installer

From the tty run:
wget http://goo.gl/HFG6a

Followed by:
sudo bash HFG6a

Both of the above commands are case sensitive so make sure you type them correctly! After running the second command you will be provided with some information about your Chromebook - press enter to continue.

Step 4 - Choose how much space you are giving Bodhi

The installer will prompt you for how much space you want to give to Bodhi. Enter an integer amount for how many gigs you would like to give Bodhi. On the 16gig smartbook the most I would recommend giving to Bodhi is 9gigs (with the max being 10).  For reference the base Bodhi install occupies around 1.6gigs. Once you select an amount of space to give Bodhi the drive will be re-partitioned automagically and then your system will restart. When it starts back up again you will need to walk through the ChromeOS setup process once more - again get as far as the Google login screen but do not log in.

Step 5 - Getting the Bodhi Filesystem

Get to a TTY again by following the instructions outlined in step 2 once more. Then run the same two commands provided in step 3. This time the Bodhi installer will see your drive has already been partitioned and it will begin downloading the Bodhi Chromebook image which it will then install. Note that this will take awhile depending on your internet connection speed as a 300MB tarball needs to be downloaded and extracted. After it finishes installing your system will reboot and you will be greeted by the Enlightenment desktop!

User Information

Default username:
armhf

Default password:
bodhilinux

The default user has sudo rights.

Getting back to ChromeOS

If you need to get back into ChromeOS after installing Bodhi on your Chromebook - don't worry it is still there. In a terminal client on Bodhi run:

sudo cgpt add -i 6 -P 0 -S 1 /dev/mmcblk0

Once you are done with ChromeOS you can run the following in the ChromeOS TTY to get back to Bodhi:

sudo cgpt add -i 6 -P 5 -S 1 /dev/mmcblk0

Getting Support

Please, please, please do not make a comment on this post asking for support with an issue you encounter with installing/running Bodhi on your Chromebook! Comments asking for support will be removed from this post. Instead please open a support request thread in the ARM section of our user forums. It is much easier to manage/search/solve issues in a message board format than a comments section.

Other Notes

In the current image the track pad is kinda fickle (tap to click doesn't work) and OpenGL support is currently non-functional. Other than that the image is very functional - I have been using it for my day to day activities for the last week now and I have been very pleased with the results. With that being said - please note I consider this an alpha quality release and as such Bodhi's ARMHF testing repos are enabled by default in the current Chromebook image.

One other thing to note is that the top row of keys acts as "function" keys (f1-f10) in Bodhi as though it was a normal keyboard. I personally use the volume up/down/mute keys often on my systems though - as such I have bound the alt key to act as a "function" key normally would on a laptop. Meaning alt+volume key will perform it's indicated action. Also - to make any noise come out of the speakers see this.

Closing Remarks

I would like to extend my thanks the author of this post who created a script for getting Ubuntu setup on the Chromebook. My own Bodhi install script is based directly on his.

Cheers,
~Jeff Hoogland

Saturday, December 8, 2012

Bodhi Linux ARMHF RootFS

If you've been following my blog (or my updates on Google+) then odds are you know I currently have my hands on two ARM devices (plus a third in the mail) I am working on creating Bodhi Linux images for. With this in mind I've decided I am going to start maintaining a generic ARMHF root file system to make creating Bodhi Linux images for new ARM devices easier for myself and others.

You will always be able to find the latest copy of this file system on Bodhi source forge page here. The default user name is armhf and the default password is bodhilinux. The default user has sudo access by default.

Essentially on any device we have a functioning Linux kernel for - it should simply be as easy as extracting that file system to a bootable location. Copying over /lib/firmware and /lib/modules and then telling your ARM system to boot from this new file system.

As an aside - this is the first blog post I am writing from the Samsung ARM Chromebook with the Bodhi desktop! Hopefully have install instructions for this device online soon.


Cheers,
~Jeff Hoogland

Friday, December 7, 2012

HOWTO: Start an SSH Session from ChromeOS

My lovely fiance knows how much I love my toys and opted to get me one of the new ARM based Chrome books as an early Christmas present. I'd been talking a lot about the device because the hardware on it is fairly fantastic for the 250$ price tag it comes with. At any rate - I'll be writing up a full formal review of the device at a later date (once I have had a chance to use it more). I also plan to create Bodhi ARM images for the device once time permits.

Until I have time to get Bodhi running on the device though I am stuck with ChromeOS - which while interesting leaves some to be desired. At the very least I need my operating system to have a web browser and a ssh connection - the former ChromeOS provides very obviously (the whole OS is one giant web browser). Getting an SSH connection from the device was not as straight forward however. I started by searching for a terminal emulator on the Chrome Web Store. As you can see - there are a few options there, but none of them would successfully open a ssh connection to my build servers from my Chrome Book.

A little bit off searching on the Linux answer machine yielded me a proper solution from the comment section of a posting. To get a SSH connection on ChromeOS you do not need to add any software! Pressing the key combination:

ctrl+alt+t

Will open a browser based terminal emulator called "crosh" in a new tab of your browser on ChromeOS. Now my build servers are accessed from a non-default ssh port. On any Debian based operating system I would use the following to connect:

ssh -p username@myserveraddy.com

The ssh client on ChromeOS doesn't seem to like the -p argument for a port number though. I found two ways to connect to a ssh server using a different port number. The first is simply:

ssh username@myserveraddy.com

The second is a whole lot less intuitive. In order you type:

ssh
host myserveraddy.com
user username
port  
connect

Have fun sshing from ChromeOS!
~Jeff Hoogland

Sunday, December 2, 2012

Bodhi Linux Nexus 7 Drive

So I was on the Kernel Panic Ogg cast last night (the episode should be for download later this weekend). While we where discussing a number of things related to Bodhi our ARM port and tablet interface came up. ARM hardware is a very different beast from your normal x86/64bit devices. Meaning even if you have functional kernel drivers for a given device - you still often need a seperate file system images for each device you wish to be easily installable on.

Currently we provide easy to install ARM images for the RaspBerry Pi and the Genesi Smartbook - the latter of which I am actually writing this post from. By the end of this month I hope to be able to add the MK802 I've written a bit about to our support devices as well.

The point of this post however is to see how much interest there is in us creating a Bodhi image for the new Nexus 7 tablet. I've had a couple of users express interest about it on our forums and there was positive buzz about it on the Ogg cast last night.

The main thing holding us back is a lack of developer hardware - I don't own a Nexus 7. We only need a single unit to get our work done, so if you are a Nexus 7 owner that has an interest in running Bodhi on your device and you can spare 5$ (or even 10$) please consider sending it our way via the button below so we can purchase a Nexus 7 to work with.

Edit/Update: In just 5 short days we've managed to collect enough to pick up a development unit! Hopefully we can have some Bodhi images live by the end of the month. If you are still looking to help support us - servers do take money to maintain. You can do so by donating directly to the Bodhi project.

Thanks to everyone who helped out.
~Jeff Hoogland