Nokia 8110 4G (nokia-argon)

From postmarketOS Wiki
Note This page is about the dedicated port of this device. There is also an optional generic port available for this device - see Generic MSM8909 (qcom-msm8909).
Nokia 8110 4G
Manufacturer Nokia
Name 8110 4G
Codename nokia-argon
Released 2018
Type feature phone
Hardware
Chipset Qualcomm Snapdragon 205 (MSM8905)
CPU 2x 1.1 GHz Cortex-A7
GPU Adreno 304
Display 240x320 TFT
Storage 4 GB
Memory 512 MB
Architecture armv7
Software
Original software KaiOS
Original version 2.5
Optional software GerdaOS
postmarketOS
Category testing
Pre-built images no
Mainline yes
postmarketOS kernel msm8916-mainline
Optional Generic Port Generic MSM8909 (qcom-msm8909)
Features
Flashing
Works
USB Networking
Works
Internal storage
SD card
Battery
Works
Screen
Works
Multimedia
3D Acceleration
Audio
Camera
Camera Flash
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Works
Modem
Calls
Partial
SMS
Works
Mobile data
Works
Miscellaneous
FDE
Works
HDMI/DP
Sensors
Magnetometer
Ambient Light
Proximity
Hall Effect
Haptics
Barometer


Contributors

Users owning this device


Display

The display is connected via SPI and works with the tinydrm panel-mipi-dbi driver. It is usable even without GPU or MDP3 support. MDP3 seems to be unused on this device because it isn't connected to the display in any way. Backlight control also works.

in case of:

MESA-LOADER: failed to open panel-mipi-dbi: Error loading shared library /usr/lib/xorg/modules/dri/panel-mipi-dbi_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

see also: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26129

building 24th mesa helps providing panel-mipi-dbi driver, while tinydm still not loading yet:

tinydm logs: https://paste.mozilla.org/zo78ATpY

Modem

Battery

Uses the voltage mode BMS driver, see Wileyfox_Swift_(wileyfox-crackling)#Battery_and_charging for warnings and more information.

Flashing

EDL mode can be entered by pressing the Up and Down keys while plugging in or turning on the phone. Use the loader from https://edl.bananahackers.net and the edl.py fork at https://github.com/andybalholm/edl.

Partitions can also be written directly using dd on rooted devices.

example flashing boot partition with lk2nd image via EDL mode:

$ cd /path/to/fork-from-andybalholm/edl
$ python edl.py -loader /path/to/nokia-argon-edl-loader-from-bananahackers/8110.mbn -w boot /path/to/lk2nd-by-affenul/build-lk2nd-msm8909/lk2nd.img

Installation

Install lk2nd from https://github.com/msm8916-mainline/lk2nd into the boot partition. After that, you can use pmbootstrap flasher commands to flash postmarketOS via the fastboot interface provided by lk2nd.

Commands could look like this:

$ git clone https://github.com/msm8916-mainline/lk2nd.git
$ cd lk2nd
$ make TOOLCHAIN_PREFIX=arm-none-eabi- lk2nd-msm8909

expected output:

...
compiling lk2nd/device/dts/msm8909/msm8905-qrd-skub.dts
compiling lk2nd/device/dts/msm8909/msm8909-mtp.dts
generating image with 2 appended DTBs: build-lk2nd-msm8909/lk.bin-dtb
generating Android boot image: build-lk2nd-msm8909/lk2nd.img

see also: https://github.com/msm8916-mainline/lk2nd#building

Because this lk2nd does not support fs-boot yet, pmbootstrap flasher flash_kernel is required even when booting from an SD card.

The boot logo resides on the splash partition and is encoded as raw rgb565le image data. the whole partition is made up of a 512B header, 153600B image data (16 bits per pixel x 240 x 320 / 8), and padded with zeros to the end of the partition.

Here is how you can have your very own custom boot logo, maybe the postmarketOS logo, or a big Tux ;)

  1. Back up your splash partition
  2. Extract your header dd if=splash_backup.img of=splash_header count=1 should do the trick, if you do not end up with a 512B file, try dd if=splash_backup.img of=splash_header count=512B instead
  3. Create a 240x320 PNG with whatever method suits you best
  4. Convert your file to raw rgb565le data ffmpeg -hide_banner -i splash.png -f rawvideo -vcodec rawvideo -pix_fmt rgb565le splash.raw
  5. Check if your splash looks right ffplay -f rawvideo -pixel_format rgb565le -video_size 240x320 -framerate 1 splash.raw
  6. Assemble your finished splash partition image cat splash_header splash.raw > splash.img
  7. Flash it to the splash partition
  8. Enjoy

See also