Motorola Moto G 2014 (motorola-titan)

From postmarketOS Wiki
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
SD card
Battery
Partial
Screen
Partial
Touchscreen
Works
Multimedia
3D Acceleration
Broken
Audio
Camera
Camera Flash
Connectivity
WiFi
Partial
Bluetooth
GPS
NFC
Modem
Calls
SMS
Mobile data
Miscellaneous
FDE
USB OTG
HDMI/DP
Sensors
Accelerometer
Broken
Magnetometer
Ambient Light
Proximity
Hall Effect
Haptics
Barometer

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