Difference between revisions of "OnePlus 6 (oneplus-enchilada)"
m (Updates!) |
(Move to community (https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2088)) |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox device | {{Infobox device | ||
| manufacturer = OnePlus | | manufacturer = OnePlus | ||
− | | name = 6 | + | | name = 6 |
− | | codename = oneplus-enchilada | + | | codename = oneplus-enchilada |
| image = File:Oneplus-6-phosh-neofetch.jpg | | image = File:Oneplus-6-phosh-neofetch.jpg | ||
| imagecaption = Running phosh! | | imagecaption = Running phosh! | ||
| releaseyear = 2018 | | releaseyear = 2018 | ||
+ | | category = community | ||
| originalsoftware = Android 8.0 (Up to Android 10) on Linux 4.9 | | originalsoftware = Android 8.0 (Up to Android 10) on Linux 4.9 | ||
| chipset = Qualcomm SDM845 Snapdragon 845 | | chipset = Qualcomm SDM845 Snapdragon 845 | ||
Line 11: | Line 12: | ||
| gpu = Adreno 630 | | gpu = Adreno 630 | ||
| storage = 64/128/256 GB | | storage = 64/128/256 GB | ||
− | | display = 1080 x 2280 | + | | display = 1080 x 2280 AMOLED |
| memory = 6/8 GB | | memory = 6/8 GB | ||
| architecture = aarch64 | | architecture = aarch64 | ||
Line 25: | Line 26: | ||
| status_battery = P | | status_battery = P | ||
| status_3d = Y | | status_3d = Y | ||
− | | status_accel = | + | | status_accel = N |
| status_haptics = Y | | status_haptics = Y | ||
| status_audio = N | | status_audio = N | ||
Line 34: | Line 35: | ||
| status_sms = N | | status_sms = N | ||
| status_calls = N | | status_calls = N | ||
− | | status = | + | | status = Maintained, supported and upstream! |
| booting = yes | | booting = yes | ||
− | | pmoskernel = 5.11 | + | | pmoskernel = 5.11 |
| whet_dhry = 4100 | | whet_dhry = 4100 | ||
| status_otg = P | | status_otg = P | ||
Line 50: | Line 51: | ||
=== The easy method === | === The easy method === | ||
− | I've built a pretty simple flashable installer, making the installation method identical to that of any other Android ROM. It's also possible to dual boot as the device has 2 slots, or 2 copies of all the important partitions. | + | I've built a pretty simple flashable installer, making the installation method identical to that of any other Android ROM. It's also possible to dual boot as the device has 2 slots, or 2 copies of all the important partitions. |
+ | |||
+ | The installer is available here: https://gitlab.com/sdm845-mainline/pmos-installer | ||
+ | |||
+ | Prebuilts for the OnePlus 6 can be found here: https://github.com/calebccff/pmos-oneplus6 | ||
=== The manual method === | === The manual method === | ||
<pre>pmbootstrap init</pre> | <pre>pmbootstrap init</pre> | ||
− | + | Select OnePlus as the vendor, and then "enchilada" (OnePlus 6) or "fajita" (OnePlus 6T) as the device | |
Most UIs work well, phosh is quite good, plasma mobile does seems to be more buggy. | Most UIs work well, phosh is quite good, plasma mobile does seems to be more buggy. | ||
− | |||
− | Now run the following | + | Now run the following, pick a password when prompted. |
<pre> | <pre> | ||
− | pmbootstrap install | + | pmbootstrap install |
− | |||
</pre> | </pre> | ||
− | Reboot back into bootloader mode after each of the following commands, | + | |
+ | Reboot back into bootloader mode after each of the following commands (if you encounter weird behaviour like the command getting stuck before the flashing starts). | ||
+ | |||
+ | By default the rootfs will be flashed to system, this doesn't leave much free space for your applications / data, if you don't mind factory resetting the device you can instead flash to userdata by specifying the partition like below. | ||
<pre> | <pre> | ||
fastboot erase dtbo | fastboot erase dtbo | ||
− | + | pmbootstrap flasher flash_rootfs --partition userdata | |
− | + | pmbootstrap flasher flash_kernel | |
− | |||
</pre> | </pre> | ||
− | Reboot and you | + | Reboot and you're good to go! |
If you have flashing or booting issues, try first flashing the latest OxygenOS to the slot you want to install postmarketOS to (ie, flash in TWRP from your other slot). If you still have no luck, try flashing OOS 9 as the bootloader can be more forgiving. | If you have flashing or booting issues, try first flashing the latest OxygenOS to the slot you want to install postmarketOS to (ie, flash in TWRP from your other slot). If you still have no luck, try flashing OOS 9 as the bootloader can be more forgiving. | ||
− | It is possible to dual boot with android by following the guide above and using: | + | It is possible to dual boot with android when flashing postmarketOS to the system partition by following the guide above and using: |
<pre>fastboot --set-active=[a|b]</pre> | <pre>fastboot --set-active=[a|b]</pre> | ||
Line 123: | Line 128: | ||
Unplug from USB, hold {{Button|Power}} and {{Button|Volume Up}} until you see "Fastboot Mode" text. | Unplug from USB, hold {{Button|Power}} and {{Button|Volume Up}} until you see "Fastboot Mode" text. | ||
+ | |||
+ | For the OnePlus 6T, hold {{Button|Power}} and both {{Button|Volume Up}} and {{Button|Volume Down}} to get in Fastboot Mode. | ||
= Status = | = Status = |
Latest revision as of 19:09, 16 April 2021
USB Networking |
Works |
---|---|
Flashing |
Works |
Touchscreen |
Works |
Display |
Works |
WiFi |
Works |
Xwayland |
Works |
FDE | |
Mainline |
Works |
Battery |
Partial |
3D Acceleration |
Works |
Accelerometer |
Broken |
Audio |
Broken |
Bluetooth |
Works |
Camera |
Broken |
GPS |
Broken |
Mobile data |
Broken |
SMS |
Broken |
Calls |
Broken |
USB OTG |
Partial |
This page documents the status of mainline Linux on the OnePlus 6!
The OnePlus 6 is an incredibly powerful and efficient mobile device, well regarded and (bar the notch) an excellent portable work horse, getting mainline Linux working means not only freedom from proprietary software, and security updates at OnePlus' discretion, but also the ability to boot any mobile or desktop distro as long as the required software is packaged.
The phone is currently capable of booting modern Linux with only a few patches, see the kernel here and check the table on the right (or above) for the hardware support checklist.
Installing
The easy method
I've built a pretty simple flashable installer, making the installation method identical to that of any other Android ROM. It's also possible to dual boot as the device has 2 slots, or 2 copies of all the important partitions.
The installer is available here: https://gitlab.com/sdm845-mainline/pmos-installer
Prebuilts for the OnePlus 6 can be found here: https://github.com/calebccff/pmos-oneplus6
The manual method
pmbootstrap init
Select OnePlus as the vendor, and then "enchilada" (OnePlus 6) or "fajita" (OnePlus 6T) as the device
Most UIs work well, phosh is quite good, plasma mobile does seems to be more buggy.
Now run the following, pick a password when prompted.
pmbootstrap install
Reboot back into bootloader mode after each of the following commands (if you encounter weird behaviour like the command getting stuck before the flashing starts).
By default the rootfs will be flashed to system, this doesn't leave much free space for your applications / data, if you don't mind factory resetting the device you can instead flash to userdata by specifying the partition like below.
fastboot erase dtbo pmbootstrap flasher flash_rootfs --partition userdata pmbootstrap flasher flash_kernel
Reboot and you're good to go!
If you have flashing or booting issues, try first flashing the latest OxygenOS to the slot you want to install postmarketOS to (ie, flash in TWRP from your other slot). If you still have no luck, try flashing OOS 9 as the bootloader can be more forgiving.
It is possible to dual boot with android when flashing postmarketOS to the system partition by following the guide above and using:
fastboot --set-active=[a|b]
to switch to your inactive slot before flashing.
Issues
A small number of users have reported their device being stuck on the bootloader unlocked screen after installing, follow the debugging steps below if that happens to you
The first and simplest debugging step is to see if the kernel is booting, this can be done by checking for a gadget mode device appearing in dmesg on your host, you can do this by putting the phone in fastboot mode and then running dmesg -w
in a terminal, opening another and running:
fastboot boot /tmp/postmarketOS-export/boot.img-oneplus-sdm845
The terminal running dmesg -w
should see output similar to the following:
[79239.786757] usb 1-3: new high-speed USB device number 10 using xhci_hcd [79240.031271] usb 1-3: New USB device found, idVendor=18d1, idProduct=d00d, bcdDevice= 1.00 [79240.031274] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [79240.031275] usb 1-3: Product: Android [79240.031276] usb 1-3: Manufacturer: Google [79240.031277] usb 1-3: SerialNumber: 5725c671 [79304.089875] usb 1-3: USB disconnect, device number 10 [79309.428896] usb 1-3: new high-speed USB device number 11 using xhci_hcd [79309.684225] usb 1-3: New USB device found, idVendor=0525, idProduct=a4a2, bcdDevice= 5.08 [79309.684227] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [79309.684229] usb 1-3: Product: RNDIS/Ethernet Gadget [79309.684230] usb 1-3: Manufacturer: Linux 5.8.0-rc6-oneplus-sdm845 with dwc3-gadget
Note the first device up until USB disconnect
is the phone appearing in fastboot mode, followed by it booting into the kernel.
If you don't see a USB disconnect
line, make sure you have run fastboot erase dtbo
. If you do but it is not followed by a new device appearing, try flashing a different version of OxygenOS to the slot you're on (ie by switching slots and then flashing the OTA from TWRP), OOS 9 can behave better. If you still have issues and have tried reflashing multiple times, feel free to contact @kalube
in the #mainline:postmarketos matrix channel.
Building
Feel like helping? Want to learn kernel development?
Check out the mainlining guide
For detailed SDM845 specific instructions on initial device porting and building. Feel free to contact @kalube (or anyone) in the #postmarketos-mainline matrix channel if you're stuck.
How to enter flash mode
Unplug from USB, hold Power and Volume Up until you see "Fastboot Mode" text.
For the OnePlus 6T, hold Power and both Volume Up and Volume Down to get in Fastboot Mode.
Status
Bluetooth
There seems to be a race condition with dbus, running sudo service bluetooth restart
will fix bluetooth (until the next reboot).
Audio
The headphone jack and earpiece speaker both work, and are in the process of being packaged up for postmarketOS. The speaker requires a separate driver and some more complicated configuration, it is currently a work in progress.
Community Info
postmarketOS users that own the device
- Blacklight
- DrGit (Notes: 128GB)
- DrGit (Notes: 256GB)
- Jrg
- Kalube (Notes: Mainline messing)
- Realaravinth (Notes: 6T, 8GB/120GB)
- SevralT (Notes: My second phone for Linux ;p)
- Tvsclass (Notes: Android dual boot)
Maintainers
See also
- Kernel sources
- pmaports!1221 Initial merge request.
- pmaports!1271 Updates to add panel mode and WiFi support.
- Enchilada device package
- Fajita device package
- Kernel package