Samsung Galaxy J4 (samsung-j4lte): Difference between revisions
Manoedinata (talk | contribs) Update Samsung Galaxy J4 device page: Basic information |
mNo edit summary |
||
(15 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
| codename = samsung-j4lte | | codename = samsung-j4lte | ||
| model = SM-J400 | | model = SM-J400 | ||
| image = File: | | image = File:Samsung-j4lte-pmos-bootstrap.jpg | ||
| imagecaption = | | imagecaption = Samsung Galaxy J4, on postmarketOS boot splash screen | ||
| releaseyear = 2018 | | releaseyear = 2018 | ||
| category = testing | | category = testing | ||
Line 19: | Line 19: | ||
| architecture = aarch64 | | architecture = aarch64 | ||
| type = handset | | type = handset | ||
| whet_dhry = | | whet_dhry = <!-- see Unixbench page on wiki --> | ||
<!-- Features --> | <!-- Features --> | ||
<!-- 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 = | | status_usbnet = Y | ||
| status_flashing = | | status_flashing = P | ||
| status_touch = | | status_touch = Y | ||
| status_screen = | | status_screen = Y | ||
| status_3d = | | status_3d = | ||
| status_fde = | | status_fde = | ||
| status_emmc = | | status_emmc = Y | ||
| status_wifi = | | status_wifi = Y | ||
| status_mainline = | | status_mainline = | ||
| status_battery = | | status_battery = Y | ||
| status_audio = | | status_audio = N | ||
| status_bluetooth = | | status_bluetooth = | ||
| status_camera = | | status_camera = N | ||
| status_gps = | | status_gps = | ||
| status_mobiledata = | | status_mobiledata = | ||
| status_sms = | | status_sms = | ||
| status_calls = | | status_calls = | ||
| status_otg = | | status_otg = | ||
| status_nfc = | | status_nfc = - | ||
<!-- Sensors --> | <!-- Sensors --> | ||
| status_accel = <!-- The sensor that measures proper acceleration works --> | | status_accel = <!-- The sensor that measures proper acceleration works --> | ||
| status_magnet = <!-- Magnetometer works --> | | status_magnet = <!-- Magnetometer works --> | ||
| status_light = <!-- Ambient light sensor works --> | | status_light = - <!-- Ambient light sensor works --> | ||
| status_proximity = <!-- Proximity sensor works --> | | status_proximity = <!-- Proximity sensor works --> | ||
| status_hall = <!-- Hall | | status_hall = <!-- Hall effeĺct sensor works --> | ||
| status_barometer = <!-- Barometer works --> | | status_barometer = <!-- Barometer works --> | ||
| status_powersensor = <!-- Power sensor works --> | | status_powersensor = <!-- Power sensor works --> | ||
<!-- Misc --> | <!-- Misc --> | ||
| status_dvb = | | status_dvb = - | ||
| status_cameraflash = | | status_cameraflash = | ||
| status_keyboard = | | status_keyboard = - | ||
| status_touchpad = | | status_touchpad = - | ||
| status_usba = | | status_usba = - | ||
| status_sdcard = | | status_sdcard = | ||
| status_hdmidp = | | status_hdmidp = - | ||
| status_irtx = | | status_irtx = - | ||
| status_irrx = | | status_irrx = - | ||
| status_stylus = | | status_stylus = - | ||
| status_haptics = | | status_haptics = | ||
| status_ethernet = | | status_ethernet = | ||
| status_fossbootloader = | | status_fossbootloader = - | ||
| booting = yes | |||
| booting = | |||
}} | }} | ||
== Contributors == | == Contributors == | ||
* | * manoedinata | ||
== Users owning this device == | == Users owning this device == | ||
Line 93: | Line 77: | ||
== How to enter flash mode == | == How to enter flash mode == | ||
{{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}} | |||
In some cases, using power button to boot into Download Mode doesn't work. Instead, while pressing {{Button|Volume Down}} + {{Button|Home}}, connect the device to PC via USB. Don't release the buttons until you're in the Download Mode. | |||
== Installation == | == Installation == | ||
Use [[pmbootstrap]] to build your own installation image. | Use [[pmbootstrap]] to build your own installation image. The device configuration will also build firmware package, which contains required proprietary blobs for Wi-Fi. | ||
'''[[Heimdall]] installation doesn't work'''. Use [[Installation_from_recovery_mode]] instead. | |||
== Known Working == | |||
* Touchscreen | |||
* Screen & display | |||
* Framebuffer (additionally with <code>msm-fb-refresher</code> to refresh the screen) | |||
* Charging & battery status | |||
* Wi-Fi (partially, with firmware package) | |||
== Notes == | |||
=== Wi-Fi === | |||
To enable Wi-Fi, these proprietary blobs are required to be loaded: | |||
<pre> | |||
vendor/etc/wifi/mx | |||
vendor/etc/wifi/mx140.bin | |||
vendor/etc/wifi/mx140_wlan.hcf | |||
</pre> | |||
These files are pulled and packaged already in <code>firmware-samsung-j4lte</code> pmaports package. | |||
=== Framebuffer === | |||
Some patches are required for framebuffer to fix some issues, e.g. swapped color. | |||
The kernel panics with <code>null pointer dereference</code> if running [https://wiki.postmarketos.org/wiki/Category:Interface#Other_interfaces framebuffer-based or text interfaces] with <code>CONFIG_FRAMEBUFFER_CONSOLE</code>, or if you want to display kernel console to the screen. So, <code>none</code> or <code>console</code> environment doesn't show anything. | |||
{{note|Newer DECON drivers as seen in newer devices e.g. [[Samsung Galaxy A51 (samsung-a51)]] also have similar issue, and can be fixed by [https://github.com/map220v/kernel_samsung_a51-linux/commit/974f3e70d07021a9d7b42f08720b0b425003745f keeping <code>fb0</code> enabled]. Could it be the same reason for our device?}} | |||
== See also == | == See also == | ||
* {{MR|5936|pmaports}} Initial merge request | |||
* {{Device package|samsung-j4lte}} | |||
* {{MR| | * {{Kernel package|samsung-j4lte}} | ||
* {{Device package| | |||
* {{Kernel package| | |||
Latest revision as of 11:32, 1 February 2025
![]() Samsung Galaxy J4, on postmarketOS boot splash screen | |
Manufacturer | Samsung |
---|---|
Name | Galaxy J4 |
Codename | samsung-j4lte |
Model | SM-J400 |
Released | 2018 |
Type | handset |
Hardware | |
Chipset | Samsung Exynos 7570 Quad |
CPU | 4x 1.4 GHz ARM Cortex A53 |
GPU | Mali T720 |
Display | 720x1280 IPS |
Storage | 32 GB |
Memory | 2 GB |
Architecture | aarch64 |
Software | |
Original software | Android |
Original version | 10 |
postmarketOS | |
Category | testing |
Pre-built images | no |
postmarketOS kernel | 3.18.140 |
Flashing |
Partial |
---|---|
USB Networking |
Works |
Internal storage |
Works |
SD card |
No data |
Battery |
Works |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration |
No data |
Audio |
Broken |
Camera |
Broken |
Camera Flash |
No data |
Connectivity | |
WiFi |
Works |
Bluetooth |
No data |
Ethernet |
No data |
GPS |
No data |
Modem | |
Calls |
No data |
SMS |
No data |
Mobile data |
No data |
Miscellaneous | |
FDE |
No data |
USB OTG |
No data |
Sensors | |
Accelerometer |
No data |
Magnetometer |
No data |
Proximity |
No data |
Hall Effect |
No data |
Haptics |
No data |
Barometer |
No data |
Power Sensor |
No data |
Contributors
- manoedinata
Users owning this device
- Manoedinata (Notes: Normal condition.)
How to enter flash mode
+ +
In some cases, using power button to boot into Download Mode doesn't work. Instead, while pressing
+ , connect the device to PC via USB. Don't release the buttons until you're in the Download Mode.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.
Heimdall installation doesn't work. Use Installation_from_recovery_mode instead.
Known Working
- Touchscreen
- Screen & display
- Framebuffer (additionally with
msm-fb-refresher
to refresh the screen) - Charging & battery status
- Wi-Fi (partially, with firmware package)
Notes
Wi-Fi
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
These files are pulled and packaged already in firmware-samsung-j4lte
pmaports package.
Framebuffer
Some patches are required for framebuffer to fix some issues, e.g. swapped color.
The kernel panics with null pointer dereference
if running framebuffer-based or text interfaces with CONFIG_FRAMEBUFFER_CONSOLE
, or if you want to display kernel console to the screen. So, none
or console
environment doesn't show anything.
Newer DECON drivers as seen in newer devices e.g. Samsung Galaxy A51 (samsung-a51) also have similar issue, and can be fixed by keeping fb0 enabled. Could it be the same reason for our device? |
See also
- pmaports!5936 Initial merge request
- Device package
- Kernel package