Motorola Moto G 2014 (motorola-titan)

From postmarketOS
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
Category testing
Original software Android
Original version 4.4.4 (Linux 3.4)
postmarketOS kernel 3.4.113
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
Unixbench Whet/Dhry score 879.7
Features
USB Networking
Works
Flashing
Partial
Touchscreen
Works
Display
Partial
WiFi
Partial
FDE
Mainline
Battery
Partial
3D Acceleration
Broken
Audio
Bluetooth
Camera
GPS
Mobile data
Internal storage
SMS
Calls
USB OTG
NFC
Sensors
Accelerometer
Broken
Magnetometer
Ambient Light
Proximity
Hall Effect
Barometer
Power Sensor
Misc
Built-in DVB
Camera Flash
Keyboard
Touchpad
USB-A
HDMI/DP
Ir TX
Ir RX
Stylus
Memory Card
Haptics
Ethernet
FOSS bootloader

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