Jump to content

Samsung Exynos 7 (samsung-exynos7)

From postmarketOS Wiki
Samsung Exynos 7
samsung-on7xelte, an Exynos 7 device, running Phosh
samsung-on7xelte, an Exynos 7 device, running Phosh
Manufacturer Samsung
Name Exynos 7
Codename samsung-exynos7
Type generic
Hardware
Chipset Samsung Exynos 7
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
Android
Extended version
The most recent supported version from the manufacturer.
Android
FOSS bootloader partial
postmarketOS
Category testing
Pre-built images
Whether pre-built images are available from the postmarketOS Installation page.
no
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
Device package device-samsung-exynos7
Kernel package linux-postmarketos-stable
linux-postmarketos-lts
linux-postmarketos-mainline
linux-postmarketos-exynos7870
Features
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).
Works
Internal storage
eMMC, SD cards, UFS...
Works
SD card
Also includes other external storage cards.
Works
Battery
Whether charging and battery level reporting work.
Broken
Screen
Whether the display works; ideally with sleep mode and brightness control.
Works
Touchscreen
Works
Multimedia
3D Acceleration
Works
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
Broken
Camera Flash
Broken
Connectivity
WiFi
Broken
Bluetooth
Broken
GPS
Broken
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Works
USB OTG
USB On-The-Go or USB-C Role switching.
Broken
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Works
Ambient Light
Measures the light level; used for automatic screen dimming in many interfaces.
Works
Proximity
Works
Hall Effect
Measures magnetic fields; usually used as a flip cover sensor
Broken
Haptics
Works
U-Boot
Primary Bootloader
Whether it is possible to replace stock bootloader with U-Boot.
Broken
Secondary Bootloader
Whether it is possible to chainload U-Boot from stock bootloader.
Works
Mainline
Whether latest upstream versions of U-Boot are not broken and it is possible to use them.
Works
Internal Storage
Whether it is possible to boot from internal storage (e.g. eMMC or UFS).
Works
SD card
Whether it is possible to boot from SD card.
Works
USB Host
Whether it is possible to boot from a USB storage or connect a keyboard.
Broken
USB Peripheral
Whether it is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.
Works
Display
Works
Buttons
Whether it is possible to navigate in boot menu or grub with volume and power buttons.
Works

This is a generic port that boots with UEFI for Samsung Exynos 7 based devices.

Device Codename Chipset Architecture
Samsung Galaxy A2 Core samsung-a2corelte Samsung Exynos 7870 Octa aarch64
Samsung Galaxy J6 (2018) samsung-j6lte Samsung Exynos 7870 Octa aarch64
Samsung Galaxy J7 (2016) samsung-j7xelte Samsung Exynos 7870 Octa aarch64
Samsung Galaxy J7 Prime samsung-on7xelte Samsung Exynos 7870 Octa aarch64

Contributors

How to enter flash mode

  • Download (Heimdall): See the wiki page for your device. Key combinations to enter Samsung's Download mode differ between devices.
  • Fastboot (U-Boot): Power on the device by holding down Volume Down until you see the U-Boot Boot Menu. Select Enter Fastboot Mode.

Prerequisites

Although on some devices the bootloader doesnt need a unlock, but if it needs make sure your phone’s bootloader is unlocked. You can do this by enabling OEM unlocking in the Developer Options menu of the stock Android Settings app.

Installation

U-Boot (UEFI boot loader)

Exynos 7 devices have S-Boot or S-LK as the default boot loader. These Samsung bootloaders are known to be very weird. There have been reports for having no boot splash screen or having less RAM than normal when booted with the stock bootloader. Even worse, they can't boot with EFI and overwrite any OS-provided cmdline.

For this reason, a secondary boot loader must be used. Das U-Boot is a popular boot loader which supports a subset of the UEFI specification. It can be installed to the Android boot partition as a secondary boot loader, providing a clean environment for booting mainline Linux. Additionally, it also provides the standard fastboot interface.

Pre-builts

Tauchgang U-Boot provides community releases for Linux Mobile devices and development boards. Along with pre-built images, they also push to LVFS, which means you can easily update Tauchgang itself with fwupd. All devices currently supported by samsung-exynos7 can use Tauchgang.

  1. Visit https://gitlab.postmarketos.org/tauchgang/u-boot/-/artifacts.
  2. Find your device. (e.g. build-samsung-on7xelte)
  3. Check if the build is release. If the branch name doesn't start with release/, click the Next > button below until you find one.
  4. Download artifacts.zip and unzip it.
  5. Reboot the phone into Download mode.
  6. Flash the u-boot-*.img to BOOT using Heimdall:
$ heimdall flash --BOOT u-boot-vendor-codename.img

Your phone will reboot and you will be greeted with an U-Boot screen.

Manual build

Notice Use Tauchgang if possible, manually built U-Boots don't get updated automatically.

If you want to manually build U-Boot for debugging, follow the guides below:

postmarketOS

Warning WARNING: Never use pmbootstrap flasher flash_kernel, even if pmbootstrap suggests you to do so. It will overwrite U-Boot and make the device unbootable.

Pre-built images are not available at the moment. Follow the installation guide with pmbootstrap. Below are the examples for building your own image.

If you don't like having full-disk encryption, omit --fde.

If you have installed the OS to both the internal storage and the SD card, the SD card one will be booted.

Install to internal storage

$ pmbootstrap init
$ pmbootstrap install --fde

Enter fastboot mode inside U-Boot (NOT Samsung's Download mode) and flash the rootfs:

$ pmbootstrap flasher flash_rootfs

Reboot the device, and it will boot into postmarketOS.

Install to an SD card

Internal storage can be tiny for heavy interfaces, such as Phosh or Plasma Mobile. Some devices can't be flashed internally because U-Boot's fastboot doesn't detect the internal emmc. In such cases, you can install to an SD card instead.

$ pmbootstrap init
$ pmbootstrap install --fde --disk=/path/to/sdcard

Plug the SD card inside the device and reboot. It will boot into postmarketOS.

Known Issues

Generic kernels

  • Wi-Fi: doesn't work.

Close-to-mainline kernel

  • Charging: No battery charger driver exists, which is responsible for reporting charge status and control.
  • Brightness: Display works with simple framebuffer, so you can't control the panel brightness.
  • USB Gadget: The host may not receive network packets from the device, unless the host sends packets to the device. Due to this behavior, SSH (among other things) doesn't work well. A workaround is to have ping -Aq <IP> run in the background while you interact with the device (replace <IP> with the device IP address).

Problems

Wi-Fi

Wi-Fi behaves very erratically (practically unusable) when the SDIO is probed in DMA mode. The driver fails to communicate with the SDIO, reporting timeout errors. The PIO transfers happen to be stable though.

Some devices don't support 5 GHz or WPA3. If the 2.4 GHz encryption is set to WPA3-only or WPA2/WPA3 transition mode, it will refuse to connect and repeatedly prompt you for a new password, even if the correct one is entered. To fix this, set the encryption to WPA2-PSK only in your router's configuration menu.

See also

pmaports!7886 Initial merge request