Motorola Moto G 2013 (motorola-falcon)
|
Moto G 2013 is successfully running SXMO-DE-DWM | |
| Manufacturer | Motorola |
|---|---|
| Name | Moto G (1st gen) |
| Codename | motorola-falcon |
| Released | 2013 |
| 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 GB |
| Memory | 1 GB |
| Architecture | armv7 |
| Software | |
Original software The software and version the device was shipped with. |
Android 4.3 |
Extended version The most recent supported version from the manufacturer. |
Android 5.1 (Linux 3.4.42) |
| postmarketOS | |
| Category | testing |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
pmOS kernel The kernel version that runs on the device's port. |
3.4.113 |
Unixbench score Unixbench Whetstone/Dhrystone score. See Unixbench. |
877.9 |
| Device package |
|
| Kernel package |
|
Flashing Whether it is possible to flash the device with pmbootstrap flasher. |
Works
|
|---|---|
USB Networking After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system). |
Broken
|
Battery Whether charging and battery level reporting work. |
Partial
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Broken
|
| Multimedia | |
3D Acceleration |
Untested
|
Audio Audio playback, microphone, headset and buttons. |
Untested
|
Camera |
Untested
|
| Connectivity | |
WiFi |
Works
|
Bluetooth |
Broken
|
GPS |
Untested
|
| Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
USB OTG USB On-The-Go or USB-C Role switching. |
Untested
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Works
|
Magnetometer Sensor to measure the Earth's magnetism |
Works
|
Hall Effect Measures magnetic fields; usually used as a flip cover sensor |
Works
|
Haptics |
Works
|
Contributors
Users owning this device
- AAT596 (Notes: LineageOS 17.1)
- Alexdmrk (Notes: Tested SXMO-DE-DWM: runs normally. eMMC storage banks died after third flashinf pmOS)
- Cark
- Dzeimis (Notes: 2 devices. Unlocked on 2024-04-05. One with pmOS built from source, another with stock android 5.1)
- Egbert (Notes: currently used as remote control)
- Jarocks (Notes: dead eMMC)
- LaermWirke (Notes: XT1032)
- Little-miss-synth (Notes: bootloader unlocked, running a stripped down instance of lineageOS and used as a digital audio player)
- Living
- Marshift
- Maxnet (Notes: cannot unlock bootloader anymore in the official way)
- Mjack3k (Notes: PMOS with SXMO UI.)
- Roboe (Notes: (lended) hwrev: 0x83C0, cpu: MSM8226 CS, emmc: 16GB; unreliable eMMC; running debloated Lineage OS 14.1 as a portable FM radio)
- StandaSK (Notes: Running mainline)
- Thewiseguyshivam (Notes: Touchscreen not working on this, currently running stock Android with unlocked bootloader)
- UltrasonicMadness (Notes: Screen doesn't work and the battery lid is missing)
Installing
There appears to be no special process to flashing the device, as long as the bootloader is unlocked first.
| Motorola stopped providing bootloader unlock codes for some of their devices. The unlock page may or may not work for you. If it doesn't - there is no official, easy or free way to unlock the bootloader completely. |
Once you're in fastboot by holding down +, flashing it is as follows:
$ pmbootstrap init
$ pmbootstrap install
$ pmbootstrap flasher flash_rootfs
$ pmbootstrap flasher boot
$ pmbootstrap flasher flash_kernel
It's highly recommended to flash kernel, otherwise the device won't boot PM: it will boot in Android firmware. Note: charger screen will be broken!
Installation from recovery zip via TWRP doesn't work
Hardware Status (downstream)
CURRENTLY BROKEN!
$ sudo hwtest gives:
| Category | Model | Path | Status | Value |
|---|---|---|---|---|
| framebuffer | mdssfb_80000 | /sys/class/graphics/fb0 | Working | U:720x1280p-54 |
| input | gpio-keys | /dev/input/event5 | Working | |
| input | qpnp_pon | /dev/input/event4 | Working | |
| input | light-prox | /dev/input/event3 | Working | |
| input | synaptics_dsx_i2c | /dev/input/event2 | Working | |
| input | accelerometer | /dev/input/event1 | Working | |
| input | compass | /dev/input/event0 | Working |
Note: XT1031 shows as MSM8x26 in /proc/cpuinfo:
Hardware : Qualcomm MSM8626 Revision : 83c0 Device : falcon Radio : 3 MSM Hardware : MSM8626 CS
Battery
charging-sdl is not supported, but charging works during usb networking. Battery/charging properties are exposed at /sys/class/power_supply/battery/.
Charger versus power key boot shows these differences in /proc/cmdline:
androidboot.mode=mot-charger | androidboot.mode=normal androidboot.powerup_reason=0x00000100 | androidboot.powerup_reason=0x00000080 bootreason=charger | bootreason=power_key_press
USB-OTG
Based on dmesg content (only), usb-otg connect/disconnect is recognized.
LED
Similar to the Moto G 2014, the LED can be controlled:
$ echo 255 > /sys/devices/leds-qpnp-rgb-e1dba000/leds/white/brightness
Hardware Status (mainline)
| Component | Part number / Driver | Works? | Notes |
|---|---|---|---|
| eMMC | Y | ||
| Touchscreen | N | ||
| Button | pm8226_resin | Y | Volume Down |
| Button | gpio-keys | Y | Volume Up |
| Button | pm8226_pwrkey | Y | Power |
| WiFi, Bluetooth | N | ||
| Display (SimpleFB) | Y | ||
| Display (DRM panel) | ? | N | |
| Backlight | pm8226? | P | Setup by bootloader, not currently configurable. |
| Front camera | onsemi MT9M114 | N | |
| Rear camera | onsemi AR0543 | N | |
| Rear camera flash | pm8226? | N | |
| Notification LED | pm8226 | N | Connected to MPP 6, can be controlled with gpio-led, but should support LPG (PWM) as well. |
| Hall effect sensor | ROHM BU52017HFV | Y | Controlled with gpio-keys |
| Vibrator | pm8226_vib | Y | |
| Accelerometer | ST LIS3DH | Y | |
| Magnetometer | Asahi Kasei AK8963 | Y | |
| Temperature sensor | TI TMP108 | P | Works and DTS is complete, but the mainline driver doesn't support the ALERT interrupt signal. |
| Proximity / Ambient light sensor | AMS/TAOS CT406 | N | Seems similar to AMS/TAOS TSL277x series, which is already supported in mainline. |
UART
On phone schematics, there is a block called UART OVER HEADSET, that includes the chips u4950, u4951 and u4952, but they are very likely missing in production boards (DNI means Do Not Include?), as found on a picture of the board available on the web.
Therefore the remaining option is try to get serial output from MSM_UART_TX/RX on JTAG:MINI, which was reported elsewhere on this wiki for Motorola devices.
lk2nd
lk2nd supports falcon starting with version 0.15.0 from September 2023. Follow the installation instructions in the git repo.
Links
- Close to mainline kernel repository
- android_kernel_motorola_msm8226 (downstream kernel)
- falcon_defconfig (downstream defconfig)
device-motorola-falcon
linux-motorola-falcon (downstream)
linux-postmarketos-qcom-msm8226 (near-mainline)- pmaports!5087 Merge request adding initial near-mainline support
- Mainline device tree