Hey everyone,
I’ve been working on getting a modern mainline Linux stack running on the Nokia Lumia 1520, a 2013 Windows Phone built around Qualcomm’s MSM8974 platform.
This isnt an Android ROM port or a Windows Phone mod. The goal is to bring the device up on a current Linux kernel with postmarketOS and gradually implement the missing hardware support needed to make it usable.
So far, I’ve managed to:
- Build a custom bootloader and device-tree configuration
- Create a postmarketOS device package for the RM-940
- Boot a Linux 6.16-based kernel
- Bring up USB networking
- Establish a stable SSH connection to the phone
- Run an Alpine Linux/postmarketOS userspace
- Begin implementing device-specific power and hardware support
The SSH milestone was a major step because I can now properly inspect the running system, collect logs, test kernel changes, and continue development without relying only on framebuffer output or early boot behavior.
The current challenge is power management.
Full system suspend currently powers down the USB high-speed PHY, but the PHY fails to initialize again when the device resumes. Because USB networking is also the main development connection, this effectively cuts off access to the phone.
For now, I’m treating display blanking and panel power management as a separate, more achievable target while I continue investigating the suspend/resume issue.
There is still a lot missing, and I would not call it a usable daily-driver port yet, but the Lumia 1520 is now booting a modern Linux kernel and running a real userspace more than a decade after the hardware was released. I just wanted to share the work....
The work is public here:
https://github.com/KorelisLabs/lumia-1520-mainline