Jump to content

Samsung Galaxy A51 (samsung-a51): Difference between revisions

From postmarketOS Wiki
Check some working features
Halamix2 (talk | contribs)
mNo edit summary
(6 intermediate revisions by 3 users not shown)
Line 21: Line 21:
| whet_dhry = 0.0 <!-- see Unixbench page on wiki -->
| whet_dhry = 0.0 <!-- see Unixbench page on wiki -->
<!-- Features -->
<!-- Features -->
| packaged=no
<!-- 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 -->
<!-- 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_usbnet = Y
| status_usbnet = Y
Line 84: Line 83:
== Installation ==
== Installation ==
Use [[pmbootstrap]] to build your own installation image. The device configuration will also build firmware package, which contains required proprietary blobs for Wi-Fi.
Use [[pmbootstrap]] to build your own installation image. The device configuration will also build firmware package, which contains required proprietary blobs for Wi-Fi.
Due to limitations, you will have to use the "userdata" partition as PostmarketOS' root partition. This can be done by adding "--recovery-install-partition=data" to your "[[pmbootstrap]] install" command.


'''[[Heimdall]] installation is untested'''.  Use [[Installation_from_recovery_mode]] instead.
'''[[Heimdall]] installation is untested'''.  Use [[Installation_from_recovery_mode]] instead.
Line 105: Line 106:
<del>The device isn't detected on the computer while plugged in through USB cable. <code>dmesg</code> on host shows nothing related to new device being connected. While similar device like [[Samsung Galaxy Note 9 (Exynos) (samsung-crownlte)]] and [[Samsung Galaxy S8 (samsung-dreamlte)]] uses [https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/4d327313e40b48bdb9ac0c6e07f0b36cc2be4ff8/device/testing/device-samsung-dream/initfs-hook.sh additional initramfs hook], that doesn't help at all - nothing in <code>dmesg</code> on PC.</del>
<del>The device isn't detected on the computer while plugged in through USB cable. <code>dmesg</code> on host shows nothing related to new device being connected. While similar device like [[Samsung Galaxy Note 9 (Exynos) (samsung-crownlte)]] and [[Samsung Galaxy S8 (samsung-dreamlte)]] uses [https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/4d327313e40b48bdb9ac0c6e07f0b36cc2be4ff8/device/testing/device-samsung-dream/initfs-hook.sh additional initramfs hook], that doesn't help at all - nothing in <code>dmesg</code> on PC.</del>


UPDATE: USB Networking now works without any additional setup by enabling <code>CONFIG_USB_ETH</code> (and additionally <code>CONFIG_USB_ETH_RNDIS</code>).
USB Networking works without any additional setup by enabling <code>CONFIG_USB_ETH</code> (and additionally <code>CONFIG_USB_ETH_RNDIS</code>).


=== Wi-Fi ===
=== Wi-Fi ===
Line 113: Line 114:
To enable Wi-Fi, these proprietary blobs are required to be loaded:
To enable Wi-Fi, these proprietary blobs are required to be loaded:


<source>
<pre>
vendor/etc/wifi/mx
vendor/etc/wifi/mx
vendor/etc/wifi/mx140.bin
vendor/etc/wifi/mx140.bin
vendor/etc/wifi/mx140_wlan.hcf
vendor/etc/wifi/mx140_wlan.hcf
vendor/etc/wifi/mx140_wlan_sw.hcf
vendor/etc/wifi/mx140_wlan_sw.hcf
</source>
</pre>


These files are pulled and packaged already in <code>firmware-samsung-a51</code> pmaports package.
These files are pulled and packaged already in <code>firmware-samsung-a51</code> pmaports package.
Line 130: Line 131:
== See also ==
== See also ==
* {{MR|5887|pmaports}} Initial merge request
* {{MR|5887|pmaports}} Initial merge request
 
<!-- * [https://gitlab.postmarketos.org/manoedinata/pmaports/-/tree/manoedinata/add-samsung-a51 @manoedinata's pmaports]-->
<!--
* {{Device package|samsung-a51}}
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):
* {{Kernel package|samsung-a51}}
* {{MR|CHANGEME|pmaports}} Initial merge request
* {{issue|CHANGEME|pmaports}} Some related issue
You can also add normal web links:
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]
-->
<!--
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.
* {{Device package|DEVICE_CODENAME}}
* {{Kernel package|DEVICE_CODENAME}}
-->

Revision as of 12:02, 1 February 2025

Samsung Galaxy A51
Samsung Galaxy A51, running postmarketOS with XFCE 4
Samsung Galaxy A51, running postmarketOS with XFCE 4
Manufacturer Samsung
Name Galaxy A51
Codename samsung-a51
Model SM-A515
Released 2019
Type handset
Hardware
Chipset Samsung Exynos 9611
CPU 4x 2.3 GHz Cortex-A73 & 4x 1.7 GHz Cortex-A53
GPU Mali-G72
Display 1080 x 2400 Super AMOLED
Storage 64GB / 128GB / 256GB
Memory 4GB / 8GB
Architecture aarch64
Software
Original software Android
Original version 13
postmarketOS
Category testing
Pre-built images no
postmarketOS kernel 4.14.113
Unixbench Whet/Dhry score 0.0
Features
Flashing
Partial
USB Networking
Works
Internal storage
Works
SD card
No data
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
No data
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
Works
Ethernet
No data
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
No data
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Haptics
No data


Contributors

  • manoedinata

Users owning this device


How to enter recovery/Odin mode

  • Press and hold Bixby Key + Volume Down simultaneously while device is powered off, then plug USB cable in for Odin mode.
  • Press and hold Bixby Key + Volume Up + Power simultaneously while device is powered off for recovery mode.
  • Press and hold Volume Down + Power simultaneously for 7-8 seconds while device is powered on to force reboot. Once time is up immediately release the keys and press one of combinations above before boot logo appears, otherwise device will boot normally.

Installation

Use pmbootstrap to build your own installation image. The device configuration will also build firmware package, which contains required proprietary blobs for Wi-Fi.

Due to limitations, you will have to use the "userdata" partition as PostmarketOS' root partition. This can be done by adding "--recovery-install-partition=data" to your "pmbootstrap install" command.

Heimdall installation is untested. Use Installation_from_recovery_mode instead.

Note Particularly for this device, ADB Sideloading through TWRP may cause the installation process to hang after finishing the installation. Install postmarketOS with TWRP's Install GUI instead.

Known Working

  • Touchscreen
  • Display (with Samsung's DECON driver)
  • Framebuffer (additionally with msm-fb-refresher to refresh the screen)
  • Charging & battery status
  • Volume (tested on XFCE)
  • Screen brightness changing (partially)
  • Wi-Fi (partially, with firmware package)

Notes

USB Networking

The device isn't detected on the computer while plugged in through USB cable. dmesg on host shows nothing related to new device being connected. While similar device like Samsung Galaxy Note 9 (Exynos) (samsung-crownlte) and Samsung Galaxy S8 (samsung-dreamlte) uses additional initramfs hook, that doesn't help at all - nothing in dmesg on PC.

USB Networking works without any additional setup by enabling CONFIG_USB_ETH (and additionally CONFIG_USB_ETH_RNDIS).

Wi-Fi

Although the required proprietary blobs are loaded and Wi-Fi did turn on, it can't connect to any available network. This assumption is based on attempt to connect to an AP through NetworkManager (on XFCE 4). Needs more investigation.

To enable Wi-Fi, these proprietary blobs are required to be loaded:

vendor/etc/wifi/mx
vendor/etc/wifi/mx140.bin
vendor/etc/wifi/mx140_wlan.hcf
vendor/etc/wifi/mx140_wlan_sw.hcf

These files are pulled and packaged already in firmware-samsung-a51 pmaports package.

Framebuffer

Some patches are required for framebuffer to fix some issues, e.g. swapped color, missing fb0 device, etc. The last one is required to boot framebuffer-based or text interfaces with CONFIG_FRAMEBUFFER_CONSOLE, or if you want to display kernel console to the screen, otherwise the kernel panics with null pointer dereference.


See also