Jump to content

Motorola Moto G6 (motorola-ali): Difference between revisions

From postmarketOS Wiki
m Add link to issue 1516 motorola-ali: How to use mainline
Clean up/reflect latest information
 
(24 intermediate revisions by 7 users not shown)
Line 6: Line 6:
| imagecaption = Moto G6 with Mate desktop
| imagecaption = Moto G6 with Mate desktop
| releaseyear = 2018
| releaseyear = 2018
| originalsoftware = Android 8.0
| originalsoftware = Android
| pmoskernel = 3.18.140
| originalversion = 8.0
| chipset = Qualcomm Snapdragon 450 SDM450
| pmoskernel = 6.12.0
| chipset = Qualcomm Snapdragon 450 (MSM8953)
| cpu = 8x 1.8 GHz Cortex-A53
| cpu = 8x 1.8 GHz Cortex-A53
| gpu = Adreno 506
| gpu = Adreno 506
Line 15: Line 16:
| memory = 3/4 GB
| memory = 3/4 GB
| architecture = aarch64
| architecture = aarch64
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
| type = handset
| status_usbnet = Y
<!-- Features -->
| status_flashing = Y
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown -->
| status_touch = Y
| status_usbnet = Y <!-- USB networking does work? then put Y here and delete this comment -->
| status_screen = Y
| status_flashing = Y <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. -->
| status_wifi = N
| status_touch = Y <!-- Touch screen is working? You can also answer these questions with P for partially. -->
| status_xwayland =  
| status_screen = Y<!-- The display is working? -->
| status_fde =  
| status_3d = Y <!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_mainline = N
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_battery = Y
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_3d =  
| status_emmc = Y<!-- Internal storage can be accessed? -->
| status_accel =  
| status_wifi = Y<!-- Wireless network works? -->
| status_audio = N  
| status_mainline = Y<!-- Instead of a Linux kernel fork, it is possible to run mainline. -->
| status_bluetooth =  
| status_battery = Y<!-- Charging the battery with charging-sdl is possible -->
| status_camera =  
| status_audio = N<!-- Using the device's speakers/headphone jack works -->
| status_gps =  
| status_bluetooth = Y<!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_mobiledata =  
| status_camera = N<!-- Taking photos and videos works. -->
| status_sms =  
| status_gps = <!-- The Global Positioning System sensor works.  -->
| status_calls =  
| status_mobiledata = <!-- Connecting to the Internet via cellular network. -->
| status_otg = N
| status_sms = <!-- Sending and receiving short messages works as intended. -->
| status =  
| status_calls = <!-- Talking to other people over the cellular network. -->
| booting = yes
| status_otg = N<!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device -->
| status_nfc =
<!-- Sensors -->
| status_accel = <!-- The sensor that measures proper acceleration works -->
| status_magnet = <!-- Magnetometer works -->
| status_light = <!-- Ambient light sensor works -->
| status_proximity = <!-- Proximity sensor works -->
| status_hall = - <!-- Hall effect sensor works -->
| status_barometer = - <!-- Barometer works -->
| status_powersensor = - <!-- Power sensor works -->
<!-- Misc -->
| status_fossbootloader =  -
| status_ethernet = -
| status_hdmidp = -
| status_stylus = -
| status_dvb = -
| status_cameraflash = <!-- Camera flash/torch works -->
| status_keyboard = -
| status_touchpad = -
| status_usba = -
| status_irrx = -
| status_irtx = -
| status_haptics =
| status_sdcard =


<!-- you can also use these lines if you need to:
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* -->
see Unixbench page on wiki
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" -->
| whet_dhry = 0.0
 
-->
}}{{Based on SoC|Qualcomm_Snapdragon_450/625/626/632_(MSM8953)|Qualcomm Snapdragon 450 (MSM8953)}}
}}


== Maintainer(s) ==
== Maintainer(s) ==
Line 55: Line 78:


== How to enter flash mode ==
== How to enter flash mode ==
* {{Button|Power}} + {{Button|Volume Down}} buttons or use TWRP reboot bootloader, or <code>adb reboot bootloader</code>
* {{Button|Power}} + {{Button|Volume Down}} buttons, reboot to bootloader via TWRP, or <code>adb reboot bootloader</code>


== Installation ==
== Installation ==
{{note|Working user interfaces (on the downstream kernel): Mate, Gnome, XFCE4, i3wm, sxmo}}
* Follow the [[Installation guide]]
* Enter fastboot mode.
{{Note|'''Note:''' [[lk2nd]] is a hard dependency, without it the mainline kernel will not select the panel.}}
* Execute  <code> pmbootstrap flasher flash_rootfs </code>
<syntaxhighlight lang="shell-session">
* Execute  <code> pmbootstrap flasher boot </code>
$ pmbootstrap init # choose Vendor: qcom Device codename: msm8953
 
$ pmbootstrap install
== Mainline Kernel ==
$ pmbootstrap flasher flash_lk2nd
Mainlining attempts are currently in-progress (effort led by Uclydde, with guidance from gavodavo/Ultracoolguy).
$ pmbootstrap flasher flash_rootfs
* Lk2nd has been ported, and can be found here: [https://github.com/Uclydde/lk2nd/tree/motorola-ali lk2nd]
</syntaxhighlight>
 
As of 8/10/2021, the Moto G6 is able to boot the msm8953 mainline kernel fork. It works fairly well, with features like display, touchscreen, and wifi working.


== 32bit or 64bit ==
== Status ==
For whatever reason, Motorola decided to ship a 32bit build of Android with the Moto G6, despite the SoC (sdm450/msm8953) being 64bit. For this reason, the postmarketOS build that was originally created is 32bit. The device fails to boot a 64bit build of postmarketOS using the downstream kernel, though it may be possible with some additional modifications.
The Motorola Moto G6 is supported by upstream [https://github.com/msm8916-mainline/lk2nd lk2nd].
There is an initial device tree in upstream Linux for the Motorola Moto G6.


A 64bit build using the mainline Linux kernel works.
As of 11/21/2021, a device tree, panel driver, and kernel configuration have been added to the msm8953 mainline kernel fork, and patches have been submitted to upstream Linux to add initial support.


== See also ==
== See also ==
Line 78: Line 100:
* {{MR|1281|pmaports}} Update to arm64, update gcc, remove unused patches
* {{MR|1281|pmaports}} Update to arm64, update gcc, remove unused patches
* {{MR|1956|pmaports}} Revert arch to armv7
* {{MR|1956|pmaports}} Revert arch to armv7
* {{MR|3569|pmaports}} Use mainline kernel fork and add firmware support
* {{MR|6041|pmaports}} Removal of device-specific packages in favor of generic msm8953 package
* [https://github.com/msm8953-mainline/linux/pull/48 Add support for Motorola Moto G6 to msm8953-mainlining/linux]
* [https://lkml.org/lkml/2022/11/19/304 Add initial Moto G6 device tree to upstream Linux]
* {{issue|1494|pmaports}} Motorola Moto G6 doesn't boot to graphics
* {{issue|1494|pmaports}} Motorola Moto G6 doesn't boot to graphics
* {{issue|1516|pmaports}} motorola-ali: How to use mainline?
* {{issue|1516|pmaports}} motorola-ali: How to use mainline?
* {{Device package|motorola-ali}}
* {{Kernel package|motorola-ali}}


* [https://github.com/MotorolaMobilityLLC/kernel-msm/tree/MMI-PPS29.55-24 Downstream kernel source]
* [https://github.com/MotorolaMobilityLLC/kernel-msm/tree/MMI-PPS29.55-24 Downstream kernel source]
* [https://github.com/moto-g6-mainlining/extracted-decompiled-fdt Decompiled downstream kernel device tree]
* [https://github.com/moto-g6-mainlining/lk2nd Original lk2nd port]
* [https://github.com/msm8916-mainline/lk2nd/pull/412 Add support for Motorola Moto G6 to upstream lk2nd]


* [https://github.com/Uclydde/lk2nd/tree/motorola-ali Working lk2nd port]
<!--
<!--
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):

Latest revision as of 09:46, 7 February 2025

Motorola Moto G6
Moto G6 with Mate desktop
Moto G6 with Mate desktop
Manufacturer Motorola
Name Moto G6
Codename motorola-ali
Released 2018
Type handset
Hardware
Chipset Qualcomm Snapdragon 450 (MSM8953)
CPU 8x 1.8 GHz Cortex-A53
GPU Adreno 506
Display 1080x2160
Storage 32/64 GB
Memory 3/4 GB
Architecture aarch64
Software
Original software Android
Original version 8.0
postmarketOS
Category testing
Pre-built images no
Mainline yes
postmarketOS kernel 6.12.0
Features
Flashing
Works
USB Networking
Works
Internal storage
Works
SD card
No data
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
Works
Audio
Broken
Camera
Broken
Camera Flash
No data
Connectivity
WiFi
Works
Bluetooth
Works
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
USB OTG
Broken
Sensors
Accelerometer
No data
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Haptics
No data

Maintainer(s)

Uclydde

Users owning this device


How to enter flash mode

  • Power + Volume Down buttons, reboot to bootloader via TWRP, or adb reboot bootloader

Installation

Note Note: lk2nd is a hard dependency, without it the mainline kernel will not select the panel.
$ pmbootstrap init # choose Vendor: qcom Device codename: msm8953
$ pmbootstrap install
$ pmbootstrap flasher flash_lk2nd
$ pmbootstrap flasher flash_rootfs

Status

The Motorola Moto G6 is supported by upstream lk2nd. There is an initial device tree in upstream Linux for the Motorola Moto G6.

As of 11/21/2021, a device tree, panel driver, and kernel configuration have been added to the msm8953 mainline kernel fork, and patches have been submitted to upstream Linux to add initial support.

See also