Difference between revisions of "Ubuntu Touch on Google Nexus 4"
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=== Nexus 4 Dual Boot Android/Ubuntu Touch === |
|||
Please note that development is currently (January 2014) still in alpha state. Do not expect this to be a fully working operating system. |
|||
Main source: https://wiki.ubuntu.com/Touch/DualBootInstallation |
|||
=== References === |
|||
General information: https://wiki.ubuntu.com/Touch/ReleaseNotes |
|||
* Main source: https://wiki.ubuntu.com/Touch/DualBootInstallation |
|||
* General information: https://wiki.ubuntu.com/Touch/ReleaseNotes |
|||
=== State overview === |
|||
Please note that development is currently (January 2014) still in alpha state. Do not expect this to be a fully working operating system. |
|||
==== 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: |
* Install tools on Ubuntu Desktop: |
||
sudo add-apt-repository ppa:phablet-team/tools |
sudo add-apt-repository ppa:phablet-team/tools |
||
sudo apt-get update |
sudo apt-get update |
||
sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot |
sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot |
||
* Backup Nexus 4 |
* Backup Nexus 4 (just to be safe): see [[backup android phone to Ubuntu]] |
||
* Note Nexus 4 Android Build Number: JWR66V (4.3) |
* Note Nexus 4 Android Build Number: JWR66V (4.3) |
||
* Nexus 4 Device unlock |
* Nexus 4 Device unlock (see http://nexus4root.com/nexus-4-root/how-to-root-nexus-4-windowsmac-osxlinuxubuntu/) |
||
* Prepare Nexus 4 |
* Prepare Nexus 4 |
||
** Enable USB debugging |
** Enable USB debugging |
||
==== Starting |
==== Starting installation on Ubuntu Desktop ==== |
||
<pre> |
<pre> |
||
tim@itsecorg:~$ adb kill-server |
tim@itsecorg:~$ adb kill-server |
||
Line 25: | Line 53: | ||
tim@itsecorg:~$ adb devices |
tim@itsecorg:~$ adb devices |
||
List of devices attached |
List of devices attached |
||
00000000xxxxx device |
|||
tim@itsecorg:~$ wget http://humpolec.ubuntu.com/latest/dualboot.sh |
tim@itsecorg:~$ wget http://humpolec.ubuntu.com/latest/dualboot.sh |
||
tim@itsecorg:~$ chmod 755 dualboot.sh |
tim@itsecorg:~$ chmod 755 dualboot.sh |
||
Line 37: | Line 65: | ||
100 5861 100 5861 0 0 10104 0 --:--:-- --:--:-- --:--:-- 10105 |
100 5861 100 5861 0 0 10104 0 --:--:-- --:--:-- --:--:-- 10105 |
||
Rebooting to bootloader |
Rebooting to bootloader |
||
< waiting for device > |
|||
(snip) |
|||
downloading 'boot.img'... |
|||
OKAY [ 0.839s] |
|||
booting... |
|||
OKAY [ 0.003s] |
|||
finished. total time: 0.842s |
|||
Waiting for recovery to boot |
|||
Creating update command |
|||
Booting back to bootloader |
|||
< waiting for device > |
|||
downloading 'boot.img'... |
|||
OKAY [ 0.685s] |
|||
booting... |
|||
OKAY [ 0.002s] |
|||
finished. total time: 0.687s |
|||
Waiting for sideload to boot |
|||
sending: 'sideload' 100% |
|||
Wait for installation of package to complete |
|||
If you are asked to preserve possibly lost root access |
|||
Or if device should be rooted |
|||
This is false warning and yuou can answer either yes or no |
|||
Rebooting to bootloader |
|||
< waiting for device > |
|||
downloading 'boot.img'... |
|||
OKAY [ 0.803s] |
|||
booting... |
|||
OKAY [ 0.003s] |
|||
finished. total time: 0.806s |
|||
Waiting for recovery to boot |
|||
Creating update command |
|||
Booting back to bootloader |
|||
< waiting for device > |
|||
downloading 'boot.img'... |
|||
OKAY [ 0.819s] |
|||
booting... |
|||
OKAY [ 0.002s] |
|||
finished. total time: 0.822s |
finished. total time: 0.822s |
||
Waiting for sideload to boot |
Waiting for sideload to boot |
||
Line 79: | Line 74: | ||
tim@itsecorg:~$ |
tim@itsecorg:~$ |
||
</pre> |
</pre> |
||
==== Continue installation process on phone ==== |
|||
* On the device, press the apps button in Android to bring up the list of apps |
* 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 |
* Browse the apps to find the Ubuntu Installer icon and press it to start the app |
||
Line 95: | Line 90: | ||
132 |
132 |
||
root@ubuntu-phablet:/# |
root@ubuntu-phablet:/# |
||
=== Using Ubuntu touch === |
|||
==== Connecting to the device at shell level ==== |
==== Connecting to the device at shell level ==== |
||
Line 102: | Line 99: | ||
tim@itsecorg:~$ adb devices |
tim@itsecorg:~$ adb devices |
||
List of devices attached |
List of devices attached |
||
0x0x0x0x0x0x0x device |
|||
tim@itsecorg:~$ |
tim@itsecorg:~$ |
||
* start shell |
* start shell |
||
adb shell |
adb shell |
||
==== Problems encountered ==== |
|||
* Bluetooth does not work |
|||
* Enter key does not work in Terminal App |
|||
* openssh-server is installed but does not start |
|||
=== 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): |
Remount root fs rw (for update to /etc/shadow): |
||
mount -o remount,rw / |
mount -o remount,rw / |
||
Run passwd command |
Run passwd command |
||
passwd phablet |
passwd phablet |
||
Problem with this: dualboot app in touch does not work any more since the password seems to be hard-coded. |
Problem with this: dualboot app in touch does not work any more since the password seems to be hard-coded. |
||
==== |
==== Getting sshd to work ==== |
||
NOTE: THIS DOES NOT WORK (reverts to ro after reboot) |
|||
simply change first line of /etc/fstab from |
|||
/dev/root / rootfs defaults,ro 0 0 |
|||
to |
|||
/dev/root / rootfs defaults,rw 0 0 |
|||
==== getting sshd to work ==== |
|||
mkdir /var/run/sshd |
mkdir /var/run/sshd |
||
chmod 755 /var/run/sshd |
chmod 755 /var/run/sshd |
||
Line 164: | Line 167: | ||
* Whenever you're asked for a password, it's phablet. |
* Whenever you're asked for a password, it's phablet. |
||
==== Various commands on Ubuntu touch ==== |
==== Various useful commands on Ubuntu touch ==== |
||
dpkg -l - lists all installed packages |
dpkg -l - lists all installed packages |
||
click list - lists installed click packages |
click list - lists installed click packages |
||
Line 170: | Line 173: | ||
pkcon search name xxx - searches for package containing xxx |
pkcon search name xxx - searches for package containing xxx |
||
==== Installing Apps not listed ==== |
==== Installing Apps not listed in Touch menue ==== |
||
<pre> |
<pre> |
||
root@ubuntu-phablet:~# pkcon install thunderbird |
root@ubuntu-phablet:~# pkcon install thunderbird |
||
Line 191: | Line 194: | ||
root@ubuntu-phablet:~# |
root@ubuntu-phablet:~# |
||
</pre> |
</pre> |
||
== Updating Ubuntu Touch == |
|||
Because Dual Boot is a special set-up the standard update method for Ubuntu currently does not work (see Feature Roadmap). |
|||
To update Ubuntu to a newer version, On the android Ubuntu dual boot application, select "Uninstall Ubuntu" from the menu options. Next you will be asked if you want to keep the user data from Ubuntu. If you do not select "Delete user data", the next installation of Ubuntu will preserve your contacts, installed applications, pictures, background settings, ... |
|||
Once Ubuntu has been uninstalled, follow the same installation step to download a newer version of Ubuntu. |
Latest revision as of 20:45, 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
- Main source: https://wiki.ubuntu.com/Touch/DualBootInstallation
- General information: https://wiki.ubuntu.com/Touch/ReleaseNotes
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
- Backup Nexus 4 (just to be safe): see backup android phone to Ubuntu
- Note Nexus 4 Android Build Number: JWR66V (4.3)
- Nexus 4 Device unlock (see http://nexus4root.com/nexus-4-root/how-to-root-nexus-4-windowsmac-osxlinuxubuntu/)
- Prepare Nexus 4
- Enable USB debugging
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
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:~#
Updating Ubuntu Touch
Because Dual Boot is a special set-up the standard update method for Ubuntu currently does not work (see Feature Roadmap).
To update Ubuntu to a newer version, On the android Ubuntu dual boot application, select "Uninstall Ubuntu" from the menu options. Next you will be asked if you want to keep the user data from Ubuntu. If you do not select "Delete user data", the next installation of Ubuntu will preserve your contacts, installed applications, pictures, background settings, ...
Once Ubuntu has been uninstalled, follow the same installation step to download a newer version of Ubuntu.