Jump to content

Motorola Moto G 2014 (motorola-titan): Difference between revisions

From postmarketOS Wiki
CmdrWgls (talk | contribs)
Added infobox, removed HTML, formatted table.
Knuxify (talk | contribs)
m gitlab.com -> gitlab.postmarketos.org (bot edit)
 
(21 intermediate revisions by 15 users not shown)
Line 1: Line 1:
[[Category:Supported Devices]]
[[Category:Devices]]
{{Infobox device
{{Infobox device
| manufacturer = Motorola
| manufacturer = Motorola
| name = Moto G (2nd gen)
| name = Moto G (2nd gen)
| codename = titan
| codename = motorola-titan
| image = File:Moto G 2014 Weston.png
| image = File:Moto G 2014 Weston.png
| imagecaption = Moto G 2014 running Weston
| imagecaption = Moto G 2014 running Weston
| releaseyear = 2014
| releaseyear = 2014
| originalsoftware = Android 4.4.4 on Linux 3.10
| originalsoftware = Android
| cpu = Qualcomm MSM8226 Snapdragon 400
| originalversion = 4.4.4 (Linux 3.4)
| pmoskernel = 3.4.113
| chipset = Qualcomm Snapdragon 400 (MSM8226)
| cpu = Quad-core 1.2 GHz Cortex-A7
| gpu = Adreno 305
| gpu = Adreno 305
| storage = 8GB
| storage = 8/16 GB
| display = 720x1280 IPS
| display = 720x1280 IPS LCD
| memory = 1GB
| memory = 1 GB
| architecture = armv7
| type = handset
| whet_dhry = 879.7
| status_usbnet = Y
| status_flashing = P
| status_touch = Y
| status_screen = P
| status_wifi = P
| status_xwayland =
| status_fde =
| status_mainline =
| status_battery = P
| status_3d = N
| status_accel = N
| status_audio =
| status_bluetooth =
| status_camera =
| status_gps =
| status_mobiledata =
| status_sms =
| status_calls =
| booting = yes
}}
}}
=== Contributors ===
== Contributors ==


* [https://github.com/PabloCastellano/ PabloCastellano]
* [https://github.com/PabloCastellano/ PabloCastellano]


=== What works ===
== Users owning this device ==
{{Device owners}}
 
== Installation ==
{{note| No backend is available for user interface weston - it will boot to black/blank screen, see [[Weston#Troubleshooting|Weston troubleshooting]].}}
 
Flashing kernel will fail
* flash_kernel: [https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/issues/126 boot image is too big]


* [x] Kernel compiles (LineageOS)
If you prefer installation from [[Installation_from_recovery_mode|recovery zip]], it will fail for the same reason:
* [x] Booting the system
<syntaxhighlight lang="bash">
* [ ] Splash screens
+ dd 'if=/mnt/pmOS/boot/boot.img' 'of=/dev/block/mmcblk0p31'
* [x] Unlock the root encrypted partition
dd: error writing '/dev/block/mmcblk0p31': No space left on device
* [x] Framebuffer graphics
</syntaxhighlight>
* [x] Weston
* [x] Touchscreen
* [ ] XWayland
* [ ] Battery
* [ ] Flash light
* [ ] RGB front LED
* [ ] Backlight control
* [x] flash_system
* [x] boot
* [ ] flash_kernel
* [ ] wifi


=== What doesn't work well ===
Fortunately, this occurs after rootfs has been written, so it is still possible to boot:
<syntaxhighlight lang="bash">$ fastboot boot boot.img</syntaxhighlight>


* I had to disable -Werror in order to compile the kernel
== Aditional info ==
* initfs hook is not executed
* Splash screens don't work and I cannot get framebuffer working in initramfs
* Screen is black after I've entered the password. Workaround:


<source lang="bash">sh /etc/postmarketos-mkinitfs/hooks/00-device-motorola-titan.sh`</source>
* Screen is black on Wayland after the password is entered. Workaround:
* Cannot boot if kernel is XZ-compressed (it boots if you build it using [https://github.com/postmarketOS/pmbootstrap/wiki/Troubleshooting%3Akernel#building-the-kernel-with-androids-build-system Android's build system])
 
* flash_kernel: [https://github.com/postmarketOS/pmbootstrap/issues/126 boot image is too big]
<syntaxhighlight lang="bash">sh /etc/postmarketos-mkinitfs/hooks/00-device-motorola-titan.sh</syntaxhighlight>
* wifi: requires wcnss-service (see issue [https://github.com/postmarketOS/pmbootstrap/issues/373 #373] and the wiki page [https://github.com/postmarketOS/pmbootstrap/wiki/QMI-(Qualcomm-MSM-Interface) Qualcomm MSM Interface]).
 
* show_splash
Note: this is obsolete, possibly replaced by:
<syntaxhighlight lang="bash">/etc/postmarketos-mkinitfs/hooks/00-msm-fb-refresher.sh</syntaxhighlight>
 
* Cannot boot if kernel is XZ-compressed (it boots if you build it using [https://wiki.postmarketos.org/wiki/Troubleshooting:kernel#Building_the_kernel_with_Android.27s_build_system Android's build system])
 
* wifi: requires wcnss-service (see issue [https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/issues/373 #373] and the wiki page [https://wiki.postmarketos.org/wiki/QMI Qualcomm MSM Interface]) (this is installed by default if you choose to install nonfree firmware).


<pre># From initramfs
<pre># From initramfs
Line 78: Line 99:
[  74.194960,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[  74.194960,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[  74.196516,0] lm3630a_bl 0-0038: wake up and re-init chip</pre>
[  74.196516,0] lm3630a_bl 0-0038: wake up and re-init chip</pre>
=== Useful stuff ===


White LED:
* White LED:
Note: the id <code>e1d8be00</code> will probably differ.
<syntaxhighlight lang="bash">echo 255 > /sys/devices/leds-qpnp-rgb-e1d8be00/leds/white/brightness</syntaxhighlight>
[https://github.com/LineageOS/android_kernel_motorola_msm8226/blob/cm-14.1/drivers/leds/leds-qpnp.c#L187-L189 RGB LED documentation]
 
* Backlight brightness:
 
<syntaxhighlight lang="bash">echo 255 > /sys/class/leds/lcd-backlight/brightness</syntaxhighlight>
Values are between 0 and 255.
 
== Hardware Status (<code>hwtest</code> on xt1064) ==
{| class="wikitable feature-colors"
! style="text-align:left;"| Category
! style="text-align:left;"| Model
! style="text-align:left;"| Path
! style="text-align:left;"| Status
! style="text-align:left;"| Value
|-
|framebuffer
|mdssfb_80000
|/sys/class/graphics/fb0
| class="feature-yes"| Working
|U:720x1280p-51
|-
|input
|fbkeyboard
|/dev/input/event9
| class="feature-yes"| Working
|
|-
|input
|gpio-keys
|/dev/input/event8
| class="feature-yes"| Working
|
|-
|input
|qpnp_pon
|/dev/input/event7
| class="feature-yes"| Working
|
|-
|input
|proximity
|/dev/input/event6
| class="feature-yes"| Working
|
|-
|input
|lightsensor-level
|/dev/input/event5
| class="feature-yes"| Working
|
|-
|input
|synaptics_dsx_i2c
|/dev/input/event4
| class="feature-yes"| Working
|
|-
|input
|bmm050
|/dev/input/event3
| class="feature-yes"| Working
|
|-
|input
|bmg160
|/dev/input/event2
| class="feature-yes"| Working
|
|-
|input
|bma_interrupt
|/dev/input/event1
| class="feature-yes"| Working
|
|-
|input
|bma2x2
|/dev/input/event0
| class="feature-yes"| Working
|
|}


<source lang="bash">echo 255 > /sys/devices/leds-qpnp-rgb-e1d8be00/leds/white/brightness</source>
=== Battery ===
[https://github.com/LineageOS/android_kernel_motorola_msm8226/blob/cm-14.1/drivers/leds/leds-qpnp.c#L187-L189 RGB LED documentation]
Charging works during usb networking.  Battery/charging properties are exposed at <code>/sys/class/power_supply/battery/</code>.
 
=== USB-OTG ===
Based on dmesg content (only), usb-otg connect/disconnect and the usb device is recognized.


=== Links ===
== Links ==


* [https://github.com/LineageOS/android_kernel_motorola_msm8226 android_kernel_motorola_msm8226]
* [https://github.com/LineageOS/android_kernel_motorola_msm8226 android_kernel_motorola_msm8226]
Line 93: Line 199:
* [https://cve.lineageos.org/android_kernel_motorola_msm8226 CVE security status]
* [https://cve.lineageos.org/android_kernel_motorola_msm8226 CVE security status]
* [http://termbin.com/84rz dmesg.txt]
* [http://termbin.com/84rz dmesg.txt]
* {{Device package|motorola-titan}}
* {{Kernel package|motorola-titan}}
* [https://forum.xda-developers.com/t/sailfish-os.3204245/ recent fully-featured SailfishOS (hybris)]


=== Drivers table ===
== Drivers table ==


{| class="wikitable sortable"
{| class="wikitable sortable"

Latest revision as of 13:50, 4 November 2024

Motorola Moto G (2nd gen)
Moto G 2014 running Weston
Moto G 2014 running Weston
Manufacturer Motorola
Name Moto G (2nd gen)
Codename motorola-titan
Released 2014
Type handset
Hardware
Chipset Qualcomm Snapdragon 400 (MSM8226)
CPU Quad-core 1.2 GHz Cortex-A7
GPU Adreno 305
Display 720x1280 IPS LCD
Storage 8/16 GB
Memory 1 GB
Architecture armv7
Software
Original software Android
Original version 4.4.4 (Linux 3.4)
postmarketOS
Category testing
Pre-built images no
postmarketOS kernel 3.4.113
Unixbench Whet/Dhry score 879.7
Features
Flashing
Partial
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
Partial
Screen
Partial
Touchscreen
Works
Multimedia
3D Acceleration
Broken
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
Partial
Bluetooth
No data
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
Broken
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Barometer
No data

Contributors

Users owning this device


Installation

Note No backend is available for user interface weston - it will boot to black/blank screen, see Weston troubleshooting.

Flashing kernel will fail

If you prefer installation from recovery zip, it will fail for the same reason:

+ dd 'if=/mnt/pmOS/boot/boot.img' 'of=/dev/block/mmcblk0p31'
dd: error writing '/dev/block/mmcblk0p31': No space left on device

Fortunately, this occurs after rootfs has been written, so it is still possible to boot:

$ fastboot boot boot.img

Aditional info

  • Screen is black on Wayland after the password is entered. Workaround:
sh /etc/postmarketos-mkinitfs/hooks/00-device-motorola-titan.sh

Note: this is obsolete, possibly replaced by:

/etc/postmarketos-mkinitfs/hooks/00-msm-fb-refresher.sh
  • wifi: requires wcnss-service (see issue #373 and the wiki page Qualcomm MSM Interface) (this is installed by default if you choose to install nonfree firmware).
# From initramfs
/tmp # show_splash splash1.ppm.gz 
fbsplash: short read

This is written to dmesg everytime you type the previous command:

[   74.192213,0] mdss_fb_alloc_fb_ion_memory: alloc 0x398000B vaddr = e9b99000 (0x00200000 iova) for fb0
[   74.192374,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.192685,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.192846,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193004,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193106,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193263,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193366,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193522,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193624,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193780,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.193882,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194037,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194138,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194292,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194446,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194547,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194702,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194804,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.194960,0] vm_start=b6ad2000 vm_end=b6e6a000 vm_page_prot=1799
[   74.196516,0] lm3630a_bl 0-0038: wake up and re-init chip
  • White LED:

Note: the id e1d8be00 will probably differ.

echo 255 > /sys/devices/leds-qpnp-rgb-e1d8be00/leds/white/brightness

RGB LED documentation

  • Backlight brightness:
echo 255 > /sys/class/leds/lcd-backlight/brightness

Values are between 0 and 255.

Hardware Status (hwtest on xt1064)

Category Model Path Status Value
framebuffer mdssfb_80000 /sys/class/graphics/fb0 Working U:720x1280p-51
input fbkeyboard /dev/input/event9 Working
input gpio-keys /dev/input/event8 Working
input qpnp_pon /dev/input/event7 Working
input proximity /dev/input/event6 Working
input lightsensor-level /dev/input/event5 Working
input synaptics_dsx_i2c /dev/input/event4 Working
input bmm050 /dev/input/event3 Working
input bmg160 /dev/input/event2 Working
input bma_interrupt /dev/input/event1 Working
input bma2x2 /dev/input/event0 Working

Battery

Charging works during usb networking. Battery/charging properties are exposed at /sys/class/power_supply/battery/.

USB-OTG

Based on dmesg content (only), usb-otg connect/disconnect and the usb device is recognized.

Links

Drivers table

Component Brand Module Works?
Accelerometer Bosch Sensortec MEMS accelerometer sensor driver bma2x2
Framebuffer mdss Yes
WiFi wcnss
Storage
USB networking