Saturday, February 15, 2014

Improvements to Bodhi's Chromebook Support

Just a quick update to let folks know about a few updates our special installers for Bodhi Linux on Chromebook hardware.

Acer C720 Chromebook

I've updated the special ISO image for the Acer C720 which I give instructions for installing here. Updates to the disc include fully functional suspend, automatic audio switching over HDMI, and an E17 profile that enables all the function keys on the Chromebook to work as expected:


You will note in my screen shot above that there is also a bluetooth icon on the system tray. I've opted not to include this by default because I know many won't have a need for it. If you want to use the bluetooth on your C720 simply run the command:

sudo apt-get install blueman

And then use the GUI that is installed to connect to/interact with your blue tooth devices.

Samsung ARM Chromebook

Find instructions for installing Bodhi on the Samsung ARM Chromebook here. While I was busy implementing many improvements to the Debian Wheezy based ARM file system, one of our forum members had been working on a Debian Jessie based file system. Late last month he finished it up to essentially get the hardware fully functional under a true Linux OS! 

When you run our installer script you are now asked if you want to use the stable or testing release - I would highly recommend selecting the testing release at this point. It includes the same Chromebook specific profile I pictured above for the Acer as well as full OpenGLES support. 

The installer script now provides detection for a previous install on the target disc and over writes it (as opposed to making the user manually remove their old install). Another new feature of the installer is support for different install targets. Simply provide the install target as the first argument for the installer script and you can easily run Bodhi on your Samsung Chromebook from a USB flash drive or SD card.

HP 14 and Lenovo X131e

Also - nothing for these guys yet, but I am hoping to pick up an HP 14 sometime this week and get Bodhi going on it. Our same team member who did all of the wonderful improvements to the Jessie filesystem for the Samsung recently picked up a Lenovo X131e and has started work on dual booting this with Bodhi. I will post updates about these when we have something substantial to share.

Wrapping Up

As always, if you run into any issues please open a support request on our user forums as opposed to posting a comment below.

~Jeff Hoogland

Friday, February 14, 2014

HOWTO: Switch to HDMI audio out automatically on Linux

First things first, this is not a tutorial for getting your audio working over your HDMI if it isn't already. This assumes you already have audio over HDMI working via PulseAudio, but currently have to manually assign the new output after attaching your HDMI cable.

TL/DR

If you are using a Debian based distro and don't care about the details of how this works, then you can simply install the .deb file I've prepared here. After that finishes installing you should be good to go - attach your HDMI cable and the system should automatically switch from playing over the speakers/headphones to piping audio over the HDMI.

The Details or How we make things work on not Debian

How this works is a combination of PulseAudio, Bash, and a little bit of udev.

First things first, we need a bash script that with switch between PulseAudio outputs for us. Save the following bit of code to /usr/bin/hdmi_sound_toggle :

#!/bin/bash
#   Switches between soundcards when run. All streams are moved to the new default sound-card.

# $totalsc: Number of sound cards available
totalsc=$(pacmd "list-sinks" | grep card: | wc -l) # total of sound cards: $totalsc
if [ $totalsc -le 1 ]; then # Check whether there are actually multiple cards available
  exit
fi
# $scindex: The Pulseaudio index of the current default sound card
scindex=$(pacmd list-sinks | awk '$1 == "*" && $2 == "index:" {print $3}')
# $cards: A list of card Pulseaudio indexes
cards=$(pacmd list-sinks | sed 's|*||' | awk '$1 == "index:" {print $2}')
PICKNEXTCARD=1 # Is true when the previous card is default
count=0 # count of number of iterations
for CARD in $cards; do
  if [ $PICKNEXTCARD == 1 ]; then
# $nextsc: The pulseaudio index of the next sound card (to be switched to)
    nextsc=$CARD
    PICKNEXTCARD=0
# $nextind: The numerical index (1 to totalsc) of the next card
    nextind=$count
  fi
  if [ $CARD == $scindex ]; then # Choose the next card as default
    PICKNEXTCARD=1
  fi
  count=$((count+1))
done
pacmd "set-default-sink $nextsc" # switch default sound card to next

# $inputs: A list of currently playing inputs
inputs=$(pacmd list-sink-inputs | awk '$1 == "index:" {print $2}')
for INPUT in $inputs; do # Move all current inputs to the new default sound card
  pacmd move-sink-input $INPUT $nextsc
done
exit
Make our script executable with the command:

sudo chmod +x /usr/bin/hdmi_sound_toggle

Before moving on, confirm the script works as intended. While your HDMI cable is active run the command hdmi_sound_toggle and you should start hearing sound pipe out of the HDMI output.

Next, because PulseAudio is almost always run as a user level daemon, we need something that will move all users' Pulse sessions over to the new output when the HDMI is attached/detached. To do this we create the script /usr/bin/hdmi_sound_toggle_all with the contents:
#!/bin/bash

for dir in /home/*/
do
    dir=${dir%*/}
    sudo -u ${dir##*/} /usr/bin/hdmi_sound_toggle
done
Make this script executable as well:

sudo chmod +x /usr/bin/hdmi_sound_toggle_all

Confirm this script works as well, it needs to be run as root though, so run sudo hdmi_sound_toggle_all while your HDMI is attached - it should switch your output.

Finally, we need to create a udev rule that triggers our scripts when an HDMI cable is attached/detached. To do this we create the file /lib/udev/rules.d/hdmi_sound.rules with the contents:
SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/bin/hdmi_sound_toggle_all"
Note that having the full file path in the execute part is important. So if you placed your scripts somewhere other than /usr/bin like I recommended above - adjust this part accordingly.

You should be good to go, enjoy having audio over your HDMI happen automatically like it should by default. Have any questions, feel free to post a comment below and I'll do my best to help.

~Jeff Hoogland

Tuesday, February 11, 2014

Acer C720 Review - Perfect Little PC

A little over three weeks ago I purchased my first Acer C720 Chromebook. That is right - I liked this little guy so much I went and picked up a second copy so my wife and I could each have one.

For most of last year I kicked around a Samsung ARM Chromebook with me - so much of my discussion here will be in comparison to that device since it is still comparable price wise to the Acer C720.

Performance:

I've used dozens of different netbooks over the last few years and I must say the performance of this new Haswell based Intel chip is phenomenal. A dozen browser tabs open, Netflix streaming all while writing an article or two and the little guy doesn't skip a beat.

This thing can do some gaming as well. While it isn't going to run anything at maximum resolution, I've enjoyed the following titles at one point or another on my C720 in the last few weeks:
  • Left for Dead 2
  • DOTA 2
  • Killing Floor
  • Guild Wars
  • Elder Scrolls 3: Morrowind
The C720 comes with DDR3 memory in a quantity of either 2 or 4GB.


Look and Feel:

The Acer C720 has a solid plastic case, that is plenty functional. I wouldn't say it is going to win any beauty contests, but it isn't unappealing either:


The dimensions of the C720 are 11.34 x 8.03 x 0.75 inches and it weighs in slightly more than the Samsung at 2.76 pounds. I know many people who are used to only having full size laptops find netbooks a bit on the small size, but personally I find the eleven inch C720 to be the perfect middle ground between a tiny screen like a tablet and fuller size laptops.

Battery & Screen:

The Acer makes up for its slightly heavier weight with a slightly longer batter life. The C720 lasts upwards of eight hours on a full charge. Obviously the exact duration will vary depending on how hard you are hammering the processor and how bright the screen is.

The screen on the C720 is basically identical to every 11" Chromebook with its 1366x768 resolution. Honestly I hope this is one of the things we see an improvement on in the next generation of Chromebooks.

Ports/Connections:

The ports on the C720 are identical to the Samsung Chromebook:
  • One USB 3.0
  • One USB 2.0
  • 1/8" audio out
  • HDMI video/audio out
  • SD Card Slot
One giant improvement for the C720 though is the location of all of these ports. Unlike the Samsung which crams both USB, the HDMI and the charging port all next to each other on the back of the device, the C720 has USB ports on opposite sides:



Just like the Samsung - the SD card slot on the C720 does not fully encompass an inserted device, meaning you won't want to travel with one inserted:




Version Comparison:

Something you want to be aware of when looking to pick up an Acer C720 is that there are a few different versions of this little laptop you have to choose from. I'm not going to cite any prices here because they seem to fluctuate week to week depending on where you look, but any version of this device you should be able to pick up for under 300 USD.

There are three* different "stock" versions of the Acer C720. Where they differ is the size of their internal storage and memory. The options are:



RAM
Storage
Option One
2GB
16GB
Option Two
2GB
32GB
Option Three
4GB
16GB

*There is also the C720P that has 2GB of memory, 32GB of storage and comes with a touch screen.

The most important thing to note if you do decide to pick up an Acer C720 is that the storage IS user upgradable while the RAM is NOT. That means if you pick up a C720 with 2GB of RAM and decide later you want more - you will need to upgrade the entire unit.

Upgrading the internal Storage (voids warranty):

If you are like me and think a C720 could easily become your day to day computer if it just had a bit more internal storage space then you simply need to upgrade the internal drive. You will simply need to pick up an M2 SSD such as this one on Amazon. Then you can simply follow this instructional video for changing out your SSD:


As someone who has opened up many laptops in his time - I must say that the C720 is very easy to get apart/back together.

OS/Software:

By default the C720 comes with Chrome OS preinstalled - if you are happy with that skip onto the next section.

One of the best things about the C720 though is that Acer has provided it with a version of Coreboot that is able to load into a traditional BIOS in the form of SeaBIOS. This means that if you aren't happy with just Chrome OS you can install a traditional operating system on the device fairly easily.

Honestly I don't see any reason not to put a full OS on the C720. The hardware is more than capable of handling it and installing the latest version of Google's Chrome browser does everything Chrome OS is capable of.

Final Thoughts:

No hardware is perfect and the C720 is not an exception to this rule. It is however a fantastic little PC for the price point that it comes at and I have been very pleased with it thus far. I picked up my C720 with 4GB of RAM refurbished for 190 USD directly from Acer via Amazon, then factor in the 100 USD SSD upgrade and I have a fantastically fast, mobile, PC with a good amount of storage for under 300 USD - not a bad deal.

Do you have a C720? If so what are your thoughts on the device? If you are looking to pick up a C720, but have a question about something I didn't cover above, please feel free to post a comment below asking.

Cheers,
~Jeff Hoogland

Friday, February 7, 2014

Bodhi Linux 3.0.0 Road Map/FAQ and Donation Drive Updates

The Here and Now - What is going on with Bodhi 2.x.y

In September of last year I posted a notice that the Bodhi 2.x.y update release cycle would be moving to releases three times a year. Then I went and made a liar out of myself when we didn't have a 2.5.0 release in January. For the sake of clarity I would like to let folks know that Bodhi 2.4.0 will be the last set of updated discs in our 2.x.y release cycle.

That being said - our 2.x.y software repositories will keep seeing their normal software updates through the summer of 2014. After this point the 2.x.y release will be moved into "security updates only" mode. Meaning the only changes to software in the 2.x.y repos at that point will be to patch security vulnerabilities. 2.x.y will continue getting security updates until 2017 when Ubuntu 12.04 reaches its end of life.

The Future - Plans for Bodhi 3.x.y

Our plan for major releases has always been every two years just after a new Ubuntu LTS release. This coming summer will mark our third major release - Bodhi 3.0.0. First, lets cover a few FAQs I've been getting regarding this new major release.

Q: Will you continue to support non-PAE Processors?

A: Yep. I do not currently know which kernel version we will be using on our non-PAE disc, but we will continue producing an ISO image that works on older non-PAE computers.

Q: Which version of Enlightenment will you use?

A: Unless I am able to beat E18 into a form I confident is consumable for "normal" users Bodhi 3.0.0 will continue to use the E17 desktop by default. Regardless of which desktop we ship with by default - both desktops will be easily accessible/swappable in our repositories.

Q: If you do use E18+ by default, what happens to systems that do not support compositing?

A: In case you were unaware, one of the "features" E18 brought with it is that compositing is now non-optional. We know that there are still plenty of useful computers out there that don't support this software. Because of this our non-PAE disc will always use E17. It will be the go to disc for running Bodhi on older hardware.

Q: What is the release cycle/date for Bodhi 3.0.0?

A: Because this is a major release, we will have a series of ISO image releases in order to thoroughly test this new base before we call things "stable". Right now the rough outline of release dates I have in my head looks like:
  • March 2nd - Alpha Release
  • April 27th - Beta Release
  • May 30th - Release Candidate
  • June 27th - Release Candidate 2
  • August 2nd - Stable Release
That being said, I stick firmly to my "its ready when its ready" ideology. Meaning that if I am not content with what our 3.0.0 release currently looks like come the end of June - I will delay in releasing it. Bodhi 2.4.0 is solid release and I am in no rush to replace it with something that isn't equally stable.

If you have any questions that I did not cover above - please feel free to post them below in the form of a comment or post them at our user forums.

Bodhi 2014 Donation Drive Updates

In case you missed it, last month I posted about a promotion to drum up donations for the Bodhi project. As you can see here our January donation totals were fantastic. I'd like to thank everyone for the support they continue to show our project - without you we wouldn't exist. Remember - you have until the end of March to show your support before we pick a winner for a Bodhi powered netbook!

Cheers,
~Jeff Hoogland