Samsung Galaxy S4 Mini LTE (samsung-serranolte)
S4 Mini running PostmarketOS and Xfce4 | |
Manufacturer | Samsung |
---|---|
Name | Galaxy S4 Mini LTE |
Codename | samsung-serranolte |
Released | 2013 |
Type | handset |
Hardware | |
Chipset | Qualcomm Snapdragon 400 (MSM8930) |
CPU | 1.7 GHz dual-core Krait 300 |
GPU | Adreno 305 |
Display | 960x540 |
Storage | 8 GB, microSD |
Memory | 1.5GB |
Architecture | armv7 |
Software | |
Original software | Android |
Original version | 4.4.2 |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | no |
Flashing |
Works |
---|---|
USB Networking |
Works |
Internal storage | |
SD card | |
Battery |
Works |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration |
Broken |
Audio |
Broken |
Camera |
Broken |
Camera Flash | |
Connectivity | |
WiFi |
Works |
Bluetooth |
Broken |
GPS |
Broken |
NFC | |
Modem | |
Calls |
Broken |
SMS |
Works |
Mobile data |
Broken |
Miscellaneous | |
FDE | |
USB OTG | |
HDMI/DP | |
Sensors | |
Accelerometer |
Broken |
Magnetometer | |
Ambient Light | |
Proximity | |
Hall Effect | |
Haptics | |
Barometer | |
Contributors
- rrooij (initial port)
- scintill (USB network, modem)
- maccraft123 (broken his s4mini)
- Zocker1012 (broken glass, experimenting with edge channel)
- Everyone else on IRC (feel free to put your name)
Users owning this device
- Bastindo (Notes: I have several of these)
- Gfgit (Notes: Boots LineageOS 18.1 kernel, WiFi needs fixing)
- Ignapk (Notes: Current test subject)
- Jakko
- Mykhal (Notes: TODO; and elsewhere i9195 is named serranoltexx, so not sure)
- Piero-e (Notes: international LTE / gt-i9195 / running unofficial /e/OS android.11 based (serranoltexx))
- SmP971 (Notes: stock rom)
- TPJS (Notes: Mint condition; stock so far)
- Ungeskriptet
What works
- Compiling the kernel
- Flashing postmarketos
- Booting
- Screen display
- Multi-touch
- Plasma Mobile(slideshow mode)
- Xfce
- Mate
- Weston
- Touch screen (!1313)
- USB Networking (!1260)
- Sending SMS via terminal (!1314)
- Accelerometer (
echo 1 > /sys/class/input/input2/enable
) - Proximity sensor (
echo 1 > /sys/class/input/input4/enable
) - Light sensor (
echo 1 > /sys/class/input/input5/enable
) - Power button (
/dev/input/event0
) - Volume/Home buttons (
/dev/input/event8
) - Menu/Back touch buttons (
/dev/input/event9
)
What does not work
- HW acceleration (we need libhybris or mainlining or freedreno)
- User Interface: gnome (stuck at boot animation)
- User Interface: gnome-mobile (won't install through pmbootstrap)
Installation
Heimdall method (recommended)
Heimdall is a cross-platform and open-source tool suite used for flashing software onto Samsung devices which is integrated in pmbootstrap
script.
To interact with the device through Heimdall you need to enter "flash mode": 1. Switch off the phone 2. Press and hold the VolumeDown, Home and Power buttons until a warning screen appears 3. Connect the phone to the computer 4. Press the VolumeUp button
Then the device can be interacted with through the pmbootstrap
script:
$ pmbootstrap flasher flash_rootfs # Flash the rootfs with postmarketOS distribution data
$ pmbootstrap flasher flash_kernel # Flash the rootfs with the linux kernel
The phone might reboot after the flasher sub-command, if it does re-enter the flash mode as explained above and flash the remaining.
adb sideload method
The alternative method for those who want to maintain their custom recovery image is adb sideload from recoveries that support it e.g. TWRP
$ pmbootstrap install --android-recovery-zip # Set up pmos for sideloading
$ pmbootstrap flasher --method=adb sideload # Flash the pmos on the device through sideloading
Hardware
Component | Model | Notes |
---|---|---|
MUIC | Texas Instruments TSU6721 | |
eMMC | Sandisk SEM08G | 8GB |
Charging | PM8921 | Uses PMIC |
Volume/Power/Home keys | GPIO | |
Touchscreen | Atmel MXT336S | |
Capacitive keys | Coreriver TC360 | |
Gyroscope/Accelerometer | TDK InvenSense MPU-6500 | |
Light/Proximity sensor | Sharp GP2A | gp2a020 |
Magnetometer | Yamaha YAS532 | |
Audio | msm8230tapansnd | |
Audio DAC | Qualcomm WCD9304 | |
Infrared blaster | Lattice ice4 | |
GPU | Adreno 305 | |
Wi-Fi/Bluetooth | Qualcomm Atheros Prima (WCN3660) | |
NFC | Broadcom BCM2079x | |
GPS | ? | |
Modem | ? | |
Front camera | Samsung s5k6a3yx | |
Main camera | Samsung s5k3h5xa |
HID Buttons
See Troubleshooting:HID buttons
<nowiki>
evtest /dev/input/event9
shows these events:
Event type 0 (EV_SYN) Event type 1 (EV_KEY)
Event code 102 (KEY_HOME) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP)
Event type 5 (EV_SW)
Event code 0 (SW_LID) state 0
evtest /dev/input/event10
shows these events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY) Event code 158 (KEY_BACK) Event code 254 (?) Event type 3 (EV_ABS) Event type 17 (EV_LED) Event code 8 (LED_MISC) state 0
Notes
This newer kernel seems to boot. I've applied some patches on top. https://github.com/gfgit/android_kernel_samsung_msm8930-common/tree/fix_gcc6_build
Some devices have a samsung-serranoltexx codename which appears to be compatible with the image of samsung-serranolte, it's unknown what the difference is.
Mainline preliminary work
This section lists all information I've found online which can be useful to mainline this device. Please edit if you found more stuff to add.
Device tree for MSM8930 and experimental charger driver
https://github.com/flto/linux/tree/msm8930
This branch contains 12 commits to support MSM8930 and PM8291 charger plus some Nokia Lumia 625 (nokia-rm941) specific code that we should skip.
Other similar charger driver to use as reference code qcom_smbb
Touchscreen
exynos5420 board seems to have same touchscreen chip Atmel MXT336S (Datasheet PDF)
WiFi WCN3660
Main Camera s5k3h5xa
Downstream kernel drive seems crashing at boot, still have to investigate. Did not yet try LineageOS 18.1 kernel. Did not yet found newer driver code.
There is a maybe relevant discussion on XDA cyanogenmod-10-2
Possible newer kernel AOSP Common
https://github.com/danascape/kernel-msm-5.4/
Need to find where it comes from
LineageOS repositories
(Taken from XDA LineageOS 18.1 for S4 Mini)
Kernel:
https://github.com/LineageOS/android_kernel_samsung_msm8930-common
Device trees (plus Android specific code):
https://github.com/LineageOS/android_device_samsung_msm8930-common
https://github.com/LineageOS/android_device_samsung_serrano-common
https://github.com/LineageOS/android_device_samsung_serrano3gxx
https://github.com/LineageOS/android_device_samsung_serranodsdd
https://github.com/LineageOS/android_device_samsung_serranoltexx
https://github.com/arco/android_device_samsung_serranoltespr
https://github.com/arco/android_device_samsung_serranolteusc
Links
- !1099 initial pull request
- Kernel used: https://github.com/LineageOS/android_kernel_samsung_msm8930-common
- #1612 Unable to install on S4 Mini (samsung-i9195)
- Device package
- Kernel package