UsingTheDevice

Revision 30 as of 2012-12-10 10:45:32

Clear message

This project is no longer maintained. You might be interested in Ubuntu Touch though.

Using the Device

Serial Debug Shell

This new feature was recently added for 13.04, to enable and use, simply attach the usb cable to the Nexus7, connect to your computer and in a terminal type:

  • "screen /dev/ttyACM0 115200"

This should drop you into a login prompt. To kill, issue "ctrl-a k"

Multitouch & Gestures

Only some multitouch gestures are enabled on the Nexus 7. For the gestures that are not enabled, the failures are a combination of bugs and unimplemented code. Section 5 of the Unity Gesture UI Guidelines covers what behaviors the gestures are supposed to do. Right now, only the following gestures are known to work:

Gesture

Correct Behavior

Single finger tap

Select item

Single finger drag

Move item

Single finger double tap

Select a whole word or item

Single finger triple tap

Select a paragraph or related set of items

3 finger tap

Bring-up Unity grab handles

4 finger tap

Open the dash

Resetting the Device

If the device is locked-up then you can reset it by holding down Volume Down and Power. When the screen goes black release the buttons. If you end up in fastboot mode (by holding down too long) just click the power button and it will boot back into Ubuntu.

sudo password

The default sudo password is ubuntu.

software updates

Currently, standard Ubuntu archives such as -updates and -security are not enabled for this device.

Enabling them is not recommended because an update may supersede a package that was customized for the Nexus 7. For the time being you will have to reflash your device with a new image to 'update'.

The team plans to get all the customized patches into Ubuntu 12.10 during the R cycle, and will send an announcement announcing when it is recommended that users upgrade.

Starting Onboard (onscreen keyboard) when it fails to auto-show

There is a known issue where onboard does not always show automatically when a text input field is selected. In these cases, onboard can be shown manually. To show onboard, first find the onboard indicator in the panel, (the icon should look like this: onboard_ind.png.

Click this indicator, which will then bring up the Onboard menu. From here, simply select "Show Onboard"

show_onboard.png

You might also want to enable Show floating icon when Onboard is hidden from the Onboard Preferences > General tab. With this setting enabled, when you hide the onboard onscreen keyboard, an icon displays. Click the icon to show the keyboard again. This may be easier than launching Onboard again from the Onboard indicator panel menu.

Performing right-click action with Onboard

Unfortunately right-clicking is not possible with the touch UI, even if you enable 'Long-press to right click' in Universal Access. To do this action you need to either use an external mouse, or use the mouse modifier keys in Onboard. To show them you need to click the arrow button on the keyboard:

onboard_keyshift.png

Then when you want to perform a right-click you just need to click on the right-hand leaning arrow:

onboard_keyshift_pressed.png

Increasing Font Size

You may want to increase the default font size. This not only makes GUI text easier to read, it also makes the menus easier to navigate because the selection targets become larger.

  1. Open System Settings from the Unity launcher panel.

  2. Open the Universal Access settings app.

  3. On the Seeing tab, set the Text size to Larger (this is the largest possible setting).

Increasing Unity Launcher Icon Size

You may want to increase the size of icons on the Unity launcher panel. This will make them easier to see and easier to select by touch.

  1. Open System Settings from the Unity launcher panel

  2. Open the Appearances settings app.

  3. On the Look tab, slide the Launcher icon size slider to the largest size possible: 64.

Attaching a USB Device to the Nexus 7

You can attach USB devices to the Nexus 7 if you purchase a Micro USB Host Cable (OTG Cable) from Amazon or other electronics retailers. The cable may be difficult to find at local stores and you may have to order online. Once this cable is attached to the Nexus 7 you can attach a USB hub or a USB device directly.

Warning /!\ There is no way to charge the device while it is connected to the OTG cable Warning /!\

otg-keyboard.jpg

Attaching a Bluetooth mouse

Even that there are still bugs in the Bluetooth stack, Bluetooth mice simply work with the built-in Bluetooth module. Simply use GNOME's Bluetooth tool by clicking on the Bluetooth indicator applet and pair the mouse as you are used to on an Ubuntu desktop/laptop PC.

Remote controlling via VNC

Another way to overcome the shortcomings of the UI on the Nexus 7 is to remote control it via VNC. To start and configure the VNC server, run the command

vino-preferences

In the window appearing check "Allow other users to view your desktop", "Allow other users to control your desktop", and "Require the user to enter this password". Enter a password of your choice. Uncheck the other checkboxes and at the bottom choose "Only when someone is connected". After that, click "Close". Now the vino user daemon should be running and you can securely remote access with any VNC client (after entering your chosen password in the client). If this does not work, start the vino server manually with

/usr/lib/vino/vino-server &

Now you can easily control your Nexus 7 with your PC's screen/keyboard/mouse, for example using the remote desktop viewer vinagre on Ubuntu (activate JPEG compression in Vinagre to improve the speed).

You cannot only forward the whole desktop to a remote screen but also emulate keyboard and mouse on a remote device, preferably a smartphone. If you have an iPhone, install HippoRemote from the AppStore and use the touch keyboard of the iPhone (special PC-typical keys are added) or use the iPhone's touchscreen like the mouse touchpad of a laptop.

Watching YouTube videos

Unfortunately, the Adobe Flash Player is not ported to Linux on ARM architectures, making YouTube videos not play in the default configuration, but fortunately, YouTube is beta-testing HTML-5-based video playback, which works on most modern free software web browsers without any closed-source plug-in or helper application, opening up access to the videos on any architecture if the hardware is powerful enough to play videos.

To be able to watch via HTML 5 you need to activate this mode in YouTube. Go to this page and click on "Join the HTML5 Trial" at the end of the text. Note that not all videos are supported but most are.

Playback speed is very good, much better than playing locally stored video files. Do not forget to suspend your system and wake it up again to get sound working.

I have tested with Ubuntu 13.04 and Firefox.

Workarounds

The following section describes ways to work around certain bugs or lack of features. These should not be interpreted as fixes, and should be used at your own risk, as they are not supported by Canonical in any way.

Attaching a Bluetooth keyboard (or keyboard/mouse combo)

To make input easier but without loosing too much portability one can use a Bluetooth keyboard/mouse combo like this 3 in 1 Bluetooth Multimedia Wireless Keyboard paired to the internal Bluetooth module of the Nexus 7, keeping the Nexus free from cable cluttor or allow charging the Nexus while using it.

Unfortunately you cannot pair it using GNOME's graphical tools for managing Bluetooth, but it works via the command line. First, install some extra command line tools (Enter "ubuntu" as password if prompted):

sudo apt-get install bluez-compat

Now put the device in pairing mode (for device linked above, long-press "BT" key until blue LED blinks) and run the command:

hcitool scan

This gives an output like

Scanning ...
     20:42:A1:00:66:78       bluetooth keyboard

To pair the keyboard enter

sudo hidd --connect 20:42:A1:00:66:78

using the actual address of the keyboard. Now keyboard and mouse work. Note that this uses no PIN, so it is possible that the connection is unencrypted, but for testing/development/demo it works great. Put the keyboard back into pairing mode and repeat this command if the keyboard looses the connection.

It is recommended to go into the preferences of Onboard and turn off the automatic pop-up of the on-screen keyboard (Click indicator applet for Onboard, choose "Preferences", and in the preferences window on the "General" tab uncheck "Auto-show when editing text").

Stabilizing the Bluetooth stack

Unfortunately, the Bluetooth stack is broken and so most Bluetooth devices cannot be used with the standard tools available via the Bluetooth indicator applet. The problem is that the daemon for managing the Bluetooth devices, bluetoothd, crashes. This is reported in bug 1070770 and as a workaround one can run bluetoothd under the control of the debugging tool Valgrind. so install this tool via

sudo apt-get install valgrind

and then edit /etc/init/bluetooth.conf replacing the line

exec /usr/sbin/bluetoothd

by

exec /usr/bin/valgrind /usr/sbin/bluetoothd >/dev/null 2>&1

After that restart bluetoothd via

sudo restart bluetooth

and if this hangs, reboot.

Now bluetoothd is stabilized and does not crash any more if you try to pair a Bluetooth keyboard. The keyboard mentioned in the previous section works perfectly now, and using a PIN, so input is secure. Unfortunately, Bluetooth printing does not work (bug 1080507).

Note that this is a workaround and not a fix. If you are not a Bluetooth developer and want to explore/test/fix other things more easily it is of great help until the bluetoothd crash bug gets actually fixed.

Start filing bugs

Please file bugs according to this guide Logging Bugs. Find a lists of bugs to start working on in the developers section.

Apart from running Ubuntu Core on your Nexus 7 and filing bugs you can help us out by measuring memory usage and measuring power consumption. These are two things we definitely want to improve.