Difference between revisions of "Ubuntu Touch on Google Nexus 4"

From Cactus Howto
Jump to navigationJump to search
Line 103: Line 103:
* start shell
* start shell
adb shell
adb shell

=== Checking installed version ===

root@ubuntu-phablet:~# system-image-cli --info
current build number: 132
device name: mako
channel: devel
alias: trusty
last update: 2014-01-17 16:53:27
version version: 132
version ubuntu: 20140116.1
version device: 20140115.1
root@ubuntu-phablet:~#


==== Copying files to device ====
==== Copying files to device ====

Revision as of 17:53, 23 February 2014

Please note that development is currently (January 2014) still in alpha state. Do not expect this to be a fully working operating system.

References

State overview

Working features

  • WiFi
  • Phone
  • SMS
  • Browser
  • Camera (only still photography)
  • Contacts
  • Music app
  • Update Manager (allows to update apps)

Showstoppers for using Ubuntu Touch on Nexus 4 as primary OS

  • Bluetooth does not work
  • Enter key does not work in Terminal App
  • openssh-server is installed but does not start. See resolution: http://howto.cactus.de/index.php/Ubuntu_Touch_on_Google_Nexus_4#getting_sshd_to_work
  • Various apps (e.g. CuteSpotify) stop working when screen blanks
  • Missing working mail client (imap/smtp), could not install thunderbird
  • missing flight mode
  • Calendar app has only very basic funtionality (and awkward layout)

Not tested yet

  • How to import contacts, events (calendar)
  • How to sync contacts, events (calendar)
  • Backup/restore data

Installing Ubuntu Touch

Preparing installation

  • Install tools on Ubuntu Desktop:
sudo add-apt-repository ppa:phablet-team/tools
sudo apt-get update
sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot

Starting installation on Ubuntu Desktop

tim@itsecorg:~$ adb kill-server
tim@itsecorg:~$ sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
tim@itsecorg:~$ adb devices
List of devices attached 
00000000xxxxx	device
tim@itsecorg:~$ wget http://humpolec.ubuntu.com/latest/dualboot.sh
tim@itsecorg:~$ chmod 755 dualboot.sh 
tim@itsecorg:~$ ./dualboot.sh FULL
Connect device to install Ubuntu installer to.
Detected connected Nexus 4
FULL install
Downloading SU package
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5861  100  5861    0     0  10104      0 --:--:-- --:--:-- --:--:-- 10105
Rebooting to bootloader

(snip)

finished. total time: 0.822s
Waiting for sideload to boot
sending: 'sideload'  100%    
Wait for installation of package to complete
tim@itsecorg:~$

Continue installation process on phone

  • On the device, press the apps button in Android to bring up the list of apps
  • Browse the apps to find the Ubuntu Installer icon and press it to start the app
  • When the app launches, press on Choose channel to install and choose a channel to download from (the recommended channel is Trusty)
  • Error message: ubuntu-boot.img is not a correct image
  • Once download is completed you need to Grant SU permissions to the application for the install to be successful. Press the Grant button, when prompted.
  • Error can not access /cache/system - no such file or directory (2); Missing update command
  • Press the Reboot to Ubuntu button to boot to Ubuntu. A standard phone reboot with the hard key will always boot to Android.

This first worked on 2014-01-17 with Ubuntu Touch 14.04.

root@ubuntu-phablet:/# uname -a
Linux ubuntu-phablet 3.4.0-3-mako #21-Ubuntu SMP PREEMPT Tue Oct 8 13:11:48 UTC 2013 armv7l armv7l armv7l GNU/Linux
root@ubuntu-phablet:/# cat /etc/ubuntu-build 
132
root@ubuntu-phablet:/#

Using Ubuntu touch

Connecting to the device at shell level

  • connect device to ubuntu desktop via usb
  • check connection status
tim@itsecorg:~$ adb devices
List of devices attached 
0x0x0x0x0x0x0x	device
tim@itsecorg:~$
  • start shell
adb shell

Checking installed version

root@ubuntu-phablet:~# system-image-cli --info
current build number: 132
device name: mako
channel: devel
alias: trusty
last update: 2014-01-17 16:53:27
version version: 132
version ubuntu: 20140116.1
version device: 20140115.1
root@ubuntu-phablet:~# 

Copying files to device

Basic version (works out of the box)

adb push localfile path-on-device

As soon as you get ssh working on the device:

scp localfile touch:path-on-device

Changing password

Remount root fs rw (for update to /etc/shadow):

mount -o remount,rw /

Run passwd command

passwd phablet

Problem with this: dualboot app in touch does not work any more since the password seems to be hard-coded.

Getting sshd to work

mkdir /var/run/sshd
chmod 755 /var/run/sshd
service ssh start
cd /home/phablet
mkdir .ssh
chmod 700 .ssh

Add your pub key to authorized keys:

vi .ssh/authorized_keys

Change acl:

chmod 400 .ssh/authorized_keys 
chown -R phablet:phablet .ssh
  

ssh as phablet now works:

macantha:.ssh tim$ ssh phablet@touch
Welcome to Ubuntu Trusty Tahr (development branch) (GNU/Linux 3.4.0-3-mako armv7l)
* Documentation:  https://help.ubuntu.com/
Last login: Sun Jan 19 11:29:41 2014 from macantha.fritz.box
phablet@ubuntu-phablet:~$

Problem - this does not seem to be boot-resistant. The directory /var/run/sshd vanishes. So the following commands need to be added to the boot process:

Remount root fs rw:

mount -o remount,rw /

Add the following lines to /etc/rc.local (before exit cmd)

mkdir /var/run/sshd
chmod 755 /var/run/sshd
service ssh start

How to become root / use sudo?

  • as phablet user simply use "sudo su -"
  • Whenever you're asked for a password, it's phablet.

Various useful commands on Ubuntu touch

dpkg -l     - lists all installed packages
click list  - lists installed click packages
pkcon install xxx   - installs click package
pkcon search name xxx - searches for package containing xxx

Installing Apps not listed in Touch menue

root@ubuntu-phablet:~# pkcon install thunderbird
Installing                    [=========================]         
Waiting in queue              [=========================]         
Starting                      [=========================]         
Loading cache                 [=========================]         
Querying                      [=========================]         
Running                       [=========================]         
Loading cache                 [=========================]         
Installing packages           [                         ] (0%)  
The following packages have to be installed:
 libstartup-notification0-0.12-3ubuntu1.armhf	library for program launch feedback (shared library)
 thunderbird-1:24.2.0+build1-0ubuntu1.armhf	Email, RSS and newsgroup client with integrated spam filter
Proceed with changes? [N/y] y

                              [=========================]         
Installing                    [=========================]         
Waiting in queue              [            ==           ]         The daemon crashed mid-transaction!
root@ubuntu-phablet:~#