Open main menu

postmarketOS β

Difference between revisions of "Google Nexus 5 (lg-hammerhead)"

(Issues)
m
 
(37 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 +
<!-- NOTE at the top. For some reason, the {{note}} template does not work with links inside? -->
 +
<div role="note" class="note" style="padding: 5px 15px; color: #705000; border: 1px solid #fde29b; background-color: #fdf1d1; margin-top: 5px; margin-bottom: 15px;">
 +
After upgrades in mesa, ofono, kernel we have had several regressions and not all of them are fixed. It would be great if you could help out.<br>
 +
'''In any case, take a look at the [https://gitlab.com/postmarketOS/pmaports/issues?scope=all&utf8=%E2%9C%93&state=opened&search=hammerhead open hammerhead issues] before starting an installation!'''
 +
</div>
 
{{Infobox device
 
{{Infobox device
 
| name = Nexus 5
 
| name = Nexus 5
 
| manufacturer = LG
 
| manufacturer = LG
 
| codename = lg-hammerhead
 
| codename = lg-hammerhead
| image = File:Small_photo_of_nexus_5.jpeg
+
| image = File:Nexus5-pmos-home.jpg
 
| imagecaption = Nexus 5 running plasma mobile
 
| imagecaption = Nexus 5 running plasma mobile
 
| releaseyear = 2013
 
| releaseyear = 2013
| originalsoftware = Android 4.4-6 on Linux 3.4
+
| originalsoftware = Android 4.4.4 on Linux 3.4.0
 
| chipset = Qualcomm MSM8974 Snapdragon 800
 
| chipset = Qualcomm MSM8974 Snapdragon 800
| cpu = Quad-core 2.3 GHz Krait 400
+
| cpu = 4x 2.3 GHz Krait 400
 
| gpu = Adreno 330
 
| gpu = Adreno 330
 
| display = 1080x1920 IPS
 
| display = 1080x1920 IPS
 
| storage = 16/32 GB
 
| storage = 16/32 GB
 
| memory = 2 GB
 
| memory = 2 GB
| architecture = armhf
+
| architecture = armv7
 +
| whet_dhry = 840.9
 
| status_usbnet = Y
 
| status_usbnet = Y
 
| status_flashing = Y
 
| status_flashing = Y
Line 22: Line 28:
 
| status_fde =  
 
| status_fde =  
 
| status_mainline = Y
 
| status_mainline = Y
| status_battery =
+
| status_battery =  
 
| status_3d = Y
 
| status_3d = Y
 
| status_accel =  
 
| status_accel =  
| status_audio =  
+
| status_audio = N
| status_bluetooth =
+
| status_bluetooth = P
 
| status_camera =
 
| status_camera =
 
| status_gps =  
 
| status_gps =  
 
| status_mobiledata = P
 
| status_mobiledata = P
 
| status_sms = Y
 
| status_sms = Y
 +
| status_otg = Y
 
| status_calls = P
 
| status_calls = P
 
| booting = yes
 
| booting = yes
Line 41: Line 48:
 
* bshah
 
* bshah
 
* opendata
 
* opendata
 +
 +
=== Users owning this device ===
 +
{{Device owners}}
  
 
=== Fastboot Mode ===
 
=== Fastboot Mode ===
Line 61: Line 71:
 
First build the image:
 
First build the image:
 
<source lang="shell-session">
 
<source lang="shell-session">
$ git clone https://gitlab.com/postmarketOS/pmbootstrap
+
$ pmbootstrap init
$ cd pmbootstrap/
+
$ pmbootstrap install
$ ./pmbootstrap.py init
 
$ ./pmbootstrap.py install --no-fde
 
 
</source>
 
</source>
  
Line 70: Line 78:
  
 
<source lang="shell-session">
 
<source lang="shell-session">
$ ./pmbootstrap.py flasher flash_rootfs --partition userdata
+
$ pmbootstrap flasher flash_rootfs --partition userdata
$ sudo fastboot format system
+
$ sudo fastboot format system
$ ./pmbootstrap.py flasher flash_kernel
+
$ pmbootstrap flasher flash_kernel
 +
</source>
 +
 
 +
=== Hardware issues ===
 +
 
 +
==== Audio ====
 +
 
 +
No one has still worked on playback and recording support.
 +
 
 +
==== Bluetooth ====
 +
 
 +
Bluetooth seems to be lacking some firmware.
 +
 
 +
From dmesg:
 +
<source lang="shell-session">
 +
[    0.650667] bluetooth hci0: Direct firmware load for brcm/BCM4335C0.hcd failed with error -2
 +
</source>
 +
 
 +
Using instructions at https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Setting_Up_Bluetooth
 +
<source lang="shell-session">
 +
apk add bluez
 +
rc-update add bluetooth
 +
</source>
 +
 
 +
Running bluetoothctl seems to indicate that the controller is recognized:
 +
<source lang="shell-session">
 +
https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Setting_Up_Bluetooth
 +
[bluetooth]# power off
 +
Changing power off succeeded
 +
[bluetooth]# power on
 +
Changing power on succeeded
 +
[CHG] Controller 07:16:16:94:0E:5D Powered: yes
 
</source>
 
</source>
  
=== Issues ===
 
  
==== WiFi workaround on boot ====
+
==== Cellular modem ====
The wifi adapter works in NetworkManager, but it boots in airplane mode and NetworkManager does not detect that. Therefore at boot you need to disable the wifi adapter first, and then re-enable it. This can easily be done in the graphic shell (Plasma Mobile has an airplane mode switch in the pull-down menu: check it and uncheck it) or through the shell:
+
Despite previously working, modem is [https://gitlab.com/postmarketOS/pmaports/issues/238 currently] not detected.
 +
 
 +
==== WiFi====
 +
On boot the wifi adapter starts in airplane mode and NetworkManager does not detect that. A manual workaround is to disable and re-enable the wifi adapter.  
 +
 
 +
This can easily be done in the graphic shell (Plasma Mobile has an airplane mode switch in the pull-down menu: check it and uncheck it) or through the shell:
  
 
<source lang="shell-session">
 
<source lang="shell-session">
$ nmcli radio all off
+
$ sudo nmcli radio all off
$ nmcli radio all on
+
$ sudo nmcli radio all on
 
</source>
 
</source>
  
==== Webbrowser ====
+
=== Software issues ===
In plasma-mobile, Angelfish webbrowser does not run. You may want to install and use qtwebbrowser, which runs and is kind of usable despite the fact that it still has some crashes happening.
+
 
 +
==== Plasma Mobile ====
 +
[https://invent.kde.org/jbbgameich/plasma-angelfish Plasma Angelfish] does not run. You may want to install another browser, like qtwebbrowser, [[Firefox]] and/or [[Chromium]].
 +
 
 +
=== Troubleshooting ===
 +
==== Fastboot unknown chunk type ====
 +
Flashing with fastboot seems to fail for some outdated firmware, it prints the message "FAILED (remote: Unknown chunk type)" when trying to flash the rootfs to userdata.
 +
This can be solved by updating to the [https://developers.google.com/android/images#hammerhead latest baseband firmware and bootloader].
 +
 
 +
==== Remote Data Too Large ====
 +
Sometimes `./pmbootstrap.py flasher flash_kernel` can fail with an error message that includes "Failed (remote: data too large)".  This might be solved by updating by reflashing [https://developers.google.com/android/images#hammerhead the latest version of the stock Android image for the device].
 +
 
 +
=== Partition layout ===
 +
<pre class="shell">
 +
hammerhead:~# fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/mmcblk1
 +
 
 +
Disk /dev/mmcblk1: 14.7 GiB, 15758000128 bytes, 30777344 sectors
 +
Units: sectors of 1 * 512 = 512 bytes
 +
Sector size (logical/physical): 512 bytes / 512 bytes
 +
I/O size (minimum/optimal): 512 bytes / 512 bytes
 +
Disklabel type: gpt
 +
Disk identifier: 98101B32-BBE2-4BF2-A06E-2BB33D000C20
 +
 
 +
Device            Start      End  Sectors  Size Name
 +
/dev/mmcblk1p1      1024  132095  131072  64M modem
 +
/dev/mmcblk1p2    132096  134143    2048    1M sbl1
 +
/dev/mmcblk1p3    134144  135167    1024  512K rpm
 +
/dev/mmcblk1p4    135168  136191    1024  512K tz
 +
/dev/mmcblk1p5    136192  137215    1024  512K sdi
 +
/dev/mmcblk1p6    137216  138239    1024  512K aboot
 +
/dev/mmcblk1p7    138240  142335    4096    2M pad
 +
/dev/mmcblk1p8    142336  144383    2048    1M sbl1b
 +
/dev/mmcblk1p9    144384  145407    1024  512K tzb
 +
/dev/mmcblk1p10  145408  146431    1024  512K rpmb
 +
/dev/mmcblk1p11  146432  147455    1024  512K abootb
 +
/dev/mmcblk1p12  147456  153599    6144    3M modemst1
 +
/dev/mmcblk1p13  153600  159743    6144    3M modemst2
 +
/dev/mmcblk1p14  159744  160767    1024  512K metadata
 +
/dev/mmcblk1p15  160768  193535    32768  16M misc
 +
/dev/mmcblk1p16  193536  226303    32768  16M persist
 +
/dev/mmcblk1p17  226304  232447    6144    3M imgdata
 +
/dev/mmcblk1p18  232448  277503    45056  22M laf
 +
/dev/mmcblk1p19  277504  322559    45056  22M boot
 +
/dev/mmcblk1p20  322560  367615    45056  22M recovery
 +
/dev/mmcblk1p21  367616  373759    6144    3M fsg
 +
/dev/mmcblk1p22  373760  374783    1024  512K fsc
 +
/dev/mmcblk1p23  374784  375807    1024  512K ssd
 +
/dev/mmcblk1p24  375808  376831    1024  512K DDR
 +
/dev/mmcblk1p25  376832  2473983  2097152    1G system
 +
/dev/mmcblk1p26  2473984  2535423    61440  30M crypto
 +
/dev/mmcblk1p27  2535424  3969023  1433600  700M cache
 +
/dev/mmcblk1p28  3969024 30777299 26808276 12.8G userdata
 +
/dev/mmcblk1p29 30777300 30777310      11  5.5K grow
 +
</pre>
  
 
=== Links ===
 
=== Links ===
 +
* [https://gitlab.com/unrznbl/gesture/wikis/gesture---handwriting-for-linux-touchscreens shelli-ui: framebuffer console + gesture recognition video demo]
 
* [https://www.youtube.com/watch?v=u9zw_ewkBJ0 Demonstration video of a Nexus 5 with postmarketOS and plasma]
 
* [https://www.youtube.com/watch?v=u9zw_ewkBJ0 Demonstration video of a Nexus 5 with postmarketOS and plasma]
 
* [https://gitlab.com/postmarketOS/pmbootstrap/tree/b1b5acd79d25fedda99dbbbee9050993aec49405/aports/device/linux-lg-hammerhead obsolete downstream kernel packaging]
 
* [https://gitlab.com/postmarketOS/pmbootstrap/tree/b1b5acd79d25fedda99dbbbee9050993aec49405/aports/device/linux-lg-hammerhead obsolete downstream kernel packaging]
Line 94: Line 191:
 
* [https://gist.github.com/MartijnBraam/57ec370985af341ceb17521183695a3d dmesg from mainline linux with the missing block devices]
 
* [https://gist.github.com/MartijnBraam/57ec370985af341ceb17521183695a3d dmesg from mainline linux with the missing block devices]
 
* [https://github.com/flto/linux/wiki/hammerhead-upstream flto's hammerhead-upstream status page]
 
* [https://github.com/flto/linux/wiki/hammerhead-upstream flto's hammerhead-upstream status page]
 +
* [https://masneyb.github.io/nexus-5-upstream/ Brian Masney's Nexus 5 upstream status page]
  
 
== Photos ==
 
== Photos ==
[[File:Plasma-mobile-hammerhead.jpg|thumb|left|Plasma Mobile]]
+
<gallery>
[[File:20180505_0011_01.jpg|thumb|TTY on mainline]]
+
File:Plasma-mobile-hammerhead.jpg|thumb|left|Plasma Mobile
[[File:Lg-hammerhead-plasma-20180707.jpg|thumb|Plasma Mobile on 2018-07-07]]
+
File:20180505_0011_01.jpg|thumb|TTY on mainline
 +
File:Lg-hammerhead-plasma-20180707.jpg|thumb|Plasma Mobile on 2018-07-07
 +
File:Small_photo_of_nexus_5.jpeg|thumb|Plasma Mobile on 2018-09-16
 +
File:Nexus5-pmos-openstreetmap.jpg|thumb|Openstreetmap on Nexus 5
 +
File:Nexus5-Firefox.jpg|thumb|Firefox on Nexus 5
 +
File:Nexus5-console.jpg|thumb|Terminal on Nexus 5
 +
File:Wikipedia.jpg|thumb|Wikipedia on Nexus 5
 +
File:Nexus5-00-home.jpg|thumb|Nexus 5 home in nature
 +
File:Nexus-01-home.jpg|thumb|Nexus 5 home on bed
 +
File:Nexus5-01-wiki.jpg|thumb|Nexus 5 wikipedia on bed
 +
File:Nexus5-02-boot.jpg|thumb|Nexus 5 booting on desktop
 +
File:Nexus5-02-home.jpg|thumb|Nexus 5 home on desktop
 +
File:Nexus5-02-wiki.jpg|thumb|Nexus 5 wikipedia on desktop
 +
</gallery>
 +
 
 +
== Videos ==
 +
* [https://www.youtube.com/watch?v=y8W-G0G8ajg Running Phosh on the Nexus 5 with postmarketOS - YouTube]
  
 +
== Resources ==
 
* [https://user-images.githubusercontent.com/6033024/26851053-3f5512fe-4af9-11e7-93da-cf9dd94b6b75.jpg Weston running (with the red screen bug)]
 
* [https://user-images.githubusercontent.com/6033024/26851053-3f5512fe-4af9-11e7-93da-cf9dd94b6b75.jpg Weston running (with the red screen bug)]
 
* [https://www.reddit.com/r/postmarketOS/comments/6fovjp/postmarketos_running_on_the_the_nexus_5/ /r/postmarketOS post]
 
* [https://www.reddit.com/r/postmarketOS/comments/6fovjp/postmarketos_running_on_the_the_nexus_5/ /r/postmarketOS post]

Latest revision as of 04:36, 20 November 2019

After upgrades in mesa, ofono, kernel we have had several regressions and not all of them are fixed. It would be great if you could help out.
In any case, take a look at the open hammerhead issues before starting an installation!

LG Nexus 5
Nexus 5 running plasma mobile
Nexus 5 running plasma mobile
Manufacturer LG
Name Nexus 5
Codename lg-hammerhead
Released 2013
Original software Android 4.4.4 on Linux 3.4.0
Hardware
Chipset Qualcomm MSM8974 Snapdragon 800
CPU 4x 2.3 GHz Krait 400
GPU Adreno 330
Display 1080x1920 IPS
Storage 16/32 GB
Memory 2 GB
Architecture armv7
Unixbench Whet/Dhry score 840.9
Features
USB Networking
Works
Flashing
Works
Touchscreen
Works
Display
Works
WiFi
Works
Xwayland
Works
FDE
Mainline
Works
Battery
3D Acceleration
Works
Accelerometer
Audio
Broken
Bluetooth
Partial
Camera
GPS
Mobile data
Partial
SMS
Works
Calls
Partial
USB OTG
Works



Contributors

  • MartijnBraam
  • dzervas
  • lawl
  • bshah
  • opendata

Users owning this device


Fastboot Mode

First make sure to enable USB debugging in Android ([1]) Then with device powered off, hold down Volume Down and Power buttons simultaneously for a few seconds, until Fastboot Mode screen appears.

OEM Unlock

Get device into Fastboot Mode, plug in USB cable, then:

$ sudo fastboot oem unlock

When prompted on device, use Volume-Up/Down buttons to highlight choice, then Power button to select it. The Fastboot Mode screen will appear again, and a message regarding flashing will appear briefly.

Installation

First build the image:

$ pmbootstrap init
$ pmbootstrap install

Then in order to flash it put your device in fastboot mode, and plug it in USB. Then do:

$ pmbootstrap flasher flash_rootfs --partition userdata
$ sudo fastboot format system
$ pmbootstrap flasher flash_kernel

Hardware issues

Audio

No one has still worked on playback and recording support.

Bluetooth

Bluetooth seems to be lacking some firmware.

From dmesg:

[    0.650667] bluetooth hci0: Direct firmware load for brcm/BCM4335C0.hcd failed with error -2

Using instructions at https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Setting_Up_Bluetooth

apk add bluez
rc-update add bluetooth

Running bluetoothctl seems to indicate that the controller is recognized:

https://wiki.alpinelinux.org/wiki/Raspberry_Pi_3_-_Setting_Up_Bluetooth
[bluetooth]# power off
Changing power off succeeded
[bluetooth]# power on
Changing power on succeeded
[CHG] Controller 07:16:16:94:0E:5D Powered: yes


Cellular modem

Despite previously working, modem is currently not detected.

WiFi

On boot the wifi adapter starts in airplane mode and NetworkManager does not detect that. A manual workaround is to disable and re-enable the wifi adapter.

This can easily be done in the graphic shell (Plasma Mobile has an airplane mode switch in the pull-down menu: check it and uncheck it) or through the shell:

$ sudo nmcli radio all off
$ sudo nmcli radio all on

Software issues

Plasma Mobile

Plasma Angelfish does not run. You may want to install another browser, like qtwebbrowser, Firefox and/or Chromium.

Troubleshooting

Fastboot unknown chunk type

Flashing with fastboot seems to fail for some outdated firmware, it prints the message "FAILED (remote: Unknown chunk type)" when trying to flash the rootfs to userdata. This can be solved by updating to the latest baseband firmware and bootloader.

Remote Data Too Large

Sometimes `./pmbootstrap.py flasher flash_kernel` can fail with an error message that includes "Failed (remote: data too large)". This might be solved by updating by reflashing the latest version of the stock Android image for the device.

Partition layout

hammerhead:~# fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/mmcblk1

Disk /dev/mmcblk1: 14.7 GiB, 15758000128 bytes, 30777344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 98101B32-BBE2-4BF2-A06E-2BB33D000C20

Device             Start      End  Sectors  Size Name
/dev/mmcblk1p1      1024   132095   131072   64M modem
/dev/mmcblk1p2    132096   134143     2048    1M sbl1
/dev/mmcblk1p3    134144   135167     1024  512K rpm
/dev/mmcblk1p4    135168   136191     1024  512K tz
/dev/mmcblk1p5    136192   137215     1024  512K sdi
/dev/mmcblk1p6    137216   138239     1024  512K aboot
/dev/mmcblk1p7    138240   142335     4096    2M pad
/dev/mmcblk1p8    142336   144383     2048    1M sbl1b
/dev/mmcblk1p9    144384   145407     1024  512K tzb
/dev/mmcblk1p10   145408   146431     1024  512K rpmb
/dev/mmcblk1p11   146432   147455     1024  512K abootb
/dev/mmcblk1p12   147456   153599     6144    3M modemst1
/dev/mmcblk1p13   153600   159743     6144    3M modemst2
/dev/mmcblk1p14   159744   160767     1024  512K metadata
/dev/mmcblk1p15   160768   193535    32768   16M misc
/dev/mmcblk1p16   193536   226303    32768   16M persist
/dev/mmcblk1p17   226304   232447     6144    3M imgdata
/dev/mmcblk1p18   232448   277503    45056   22M laf
/dev/mmcblk1p19   277504   322559    45056   22M boot
/dev/mmcblk1p20   322560   367615    45056   22M recovery
/dev/mmcblk1p21   367616   373759     6144    3M fsg
/dev/mmcblk1p22   373760   374783     1024  512K fsc
/dev/mmcblk1p23   374784   375807     1024  512K ssd
/dev/mmcblk1p24   375808   376831     1024  512K DDR
/dev/mmcblk1p25   376832  2473983  2097152    1G system
/dev/mmcblk1p26  2473984  2535423    61440   30M crypto
/dev/mmcblk1p27  2535424  3969023  1433600  700M cache
/dev/mmcblk1p28  3969024 30777299 26808276 12.8G userdata
/dev/mmcblk1p29 30777300 30777310       11  5.5K grow

Links

Contents

Photos

Videos

Resources