Nokia 8110 4G (nokia-argon)

From postmarketOS
Nokia 8110 4G
Manufacturer Nokia
Name 8110 4G
Codename nokia-argon
Released 2018
Category testing
Pre-built images no
Original software KaiOS
Original version 2.5
Optional software GerdaOS
postmarketOS kernel msm8916-mainline
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
Type Feature Phone
Features
USB Networking
Works
Flashing
Works
Display
Works
WiFi
Works
FDE
Works
Mainline
Works
Battery
Works
3D Acceleration
Audio
Bluetooth
Works
Camera
GPS
Works
Mobile data
Works
Internal storage
SMS
Works
Calls
Partial
Sensors
Magnetometer
Ambient Light
Proximity
Hall Effect
Barometer
Power Sensor
Misc
Built-in DVB
Camera Flash
Keyboard
Touchpad
USB-A
HDMI/DP
Ir TX
Ir RX
Stylus
Memory Card
Haptics
Ethernet
FOSS bootloader


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 the lk2nd rebase/dts branch 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.

See also: https://github.com/msm8916-mainline/lk2nd/pull/214

commands could looks like this:

$ git clone https://github.com/msm8916-mainline/lk2nd.git
$ cd lk2nd
$ git checkout rebase/dts
$ 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 is based on the experimental-tmp branch and 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