Samsung Galaxy Note 10.1 2014 LTE (samsung-lt03lte)
| Manufacturer | Samsung |
|---|---|
| Name | Galaxy Note 10.1 2014 LTE |
| Codename | samsung-lt03lte |
| Model | P605 |
| Released | 2013 |
| Type | tablet |
| Hardware | |
| Chipset | Qualcomm Snapdragon 800 (MSM8974) |
| CPU | 4x 2.3 GHz Krait 400 |
| GPU | Adreno 330 |
| Display | 2560x1600, TFT LCD, 10.1" |
| Storage | 16/32 GB |
| Memory | 3 GB |
| Architecture | armv7 |
| Software | |
Original software The software and version the device was shipped with. |
Android 4.3 |
Extended version The most recent supported version from the manufacturer. |
Android 5.1.1 |
| Optional software | LineageOS |
| 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 |
pmOS kernel The kernel version that runs on the device's port. |
6.15.11 |
| Device package |
|
| Kernel package |
|
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. |
Partial
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Untested
|
Touchscreen |
Untested
|
Stylus |
Untested
|
| Multimedia | |
3D Acceleration |
Untested
|
Audio Audio playback, microphone, headset and buttons. |
Untested
|
Camera |
Untested
|
Camera Flash |
Untested
|
IR TX |
Untested
|
IR RX |
Untested
|
| Connectivity | |
WiFi |
Untested
|
Bluetooth |
Untested
|
GPS |
Untested
|
| Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
USB OTG USB On-The-Go or USB-C Role switching. |
Untested
|
HDMI/DP Video and audio output with HDMI or DisplayPort. |
Untested
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Untested
|
Magnetometer Sensor to measure the Earth's magnetism |
Untested
|
Ambient Light Measures the light level; used for automatic screen dimming in many interfaces. |
Untested
|
Proximity |
Untested
|
Hall Effect Measures magnetic fields; usually used as a flip cover sensor |
Untested
|
Haptics |
Untested
|
Barometer Sensor to measure air pressure |
Untested
|
Power Sensor Sensor to monitor current, voltage and power. Not fuel gauge! |
Untested
|
| This should be the same device as Samsung Galaxy Note 10.1 2014 (samsung-n1awifi) but with LTE and Qualcomm Snapdragon SoC instead of Samsung Exynos SoC. |
The Samsung Galaxy Note 10.1 2014 is one of the earliest tablet devices that came with a built-in stylus. It is the larger cousin of the famous Galaxy Note 3 and a significant improvement in hardware and software over its predecessor, the original Note 10.1.
This variant of the device sports a 32-bit armv7 Snapdragon 800 SoC (System on Chip) which was the flagship chip at the time of the device's launch. It is also one of the earliest tablets to support LTE. The device is also built-well for the most part and is currently about 13 years old.
The device successfully boots PostmarketOS, but a lot of the hardware is yet to be enabled. Details of the supported features and hardware are available on the right.
It is quite the capable device, though, probably not by modern standards. The device is still usable for simple use cases, and more importantly, a test device for kernel tinkerers with this device who wish to learn about the Linux kernel and how systems with SoCs work.
A lot of hardware and drivers are yet to be enabled and a lot of questionable hardware choices yet to be discovered. Contributions to enable features are welcome. Happy tinkering!
Contributors
User:Darkaether worked on getting initial support for the device into lk2nd, the kernel package, and pmaports. Currently working on getting hardware enabled one step at a time as a hobby project to learn about the kernel, embedded systems, and PostmarketOS.
User:Kocourek is currently (as of end of November 2025) working on a close-to-mainline port for the device. However, it is a new hobby project and there is limited time, so no promises. Currently there is not much time for the project. Hope to get back to it in a few months. 🤞
Users owning this device
- Darkaether (Notes: Running LineageOS. Working on porting postmarketOS. Currently working on booting and testing lk2nd on the device.)
- Kocourek (Notes: working on a port for lolz to see how hard it is when other people have already done the hard work)
Local postmarketOS Development setup
Operating System
Any modern Linux should do.
Machine Capabilities
You'll need a machine that can compile the Linux kernel. Fortunately, this only needs to be done once and subsequent builds will be incremental in nature.
Alternatively, you can consider building remotely in a cloud VM if you have that facility available to you.
| If you build remotely, you may not be able to use a lot of nice features in pmbootstrap related to flashing. |
Device Development Setup
As this device is still in very early stages of support and is not usable as a tablet with postmarketOS, here is a possible setup that is proven to be working.
Device bootloader and OEM firmware
If your device still runs the manufacturer's software, ensure that your device has the latest OTA updates installed to ensure that the OEM bootloader is running the latest available software.
The OEM bootloader will always be the first bootloader on the device. Follow the instructions in the section below to install a second-stage bootloader called lk2nd to get some cool features and to boot postmarketOS.
Recovery
A custom recovery is helpful for flashing partitions and for backups. TWRP is a very popular recovery and works well on this device. Unfortunately, newer versions may not have support for this device, but version 3.0.2 works sufficiently well.
Primary OS
Running the manufacturer's Android OS has not been tested. Please add details here if you try it out.
A nice and tested option is to flash LineageOS and have that boot from internal storage. This is essential for things like charging as the battery drivers are not yet supported/enabled in postmarketOS. Additionally, it is very helpful for checking loaded drivers and hardware in a booting downstream kernel. Ensure you have root access in order to access these resources.
Booting postmarketOS
For development, postmarketOS can be booted from an external SD card by following the instructions in the below section. This makes it easy to test changes without flashing and re-flashing the internal flash storage. It also helps extend the lifespan of the device storage as it reduces write cycles to internal flash.
Using lk2nd
lk2nd is supported on this device. Check out Lk2nd/lk1st for more information about it.
Installing lk2nd
To build the latest lk2nd, navigate to the lk2nd repository and clone or download a copy of the main branch.
Build lk2nd for the msm8974 target with the following command:
$ make TOOLCHAIN_PREFIX=arm-none-eabi- lk2nd-msm8974
After successful completion, the lk2nd image would be available at build-lk2nd-msm8974/lk2nd.img.
Flash this file to the boot partition of the device using heimdall or a custom recovery such as TWRP. Be sure to have a backup of the boot partition handy. In case the device already has lk2nd installed, a new version of lk2nd can be installed using the fastboot flash lk2nd /path/to/lk2nd.img command.
If the device booted to Android previously, this step will prevent Android from booting as the device would now boot to lk2nd instead of the Android boot image. To address this, once lk2nd is installed, use fastboot commands after lk2nd boots up to flash the android boot image to the boot partition. lk2nd will flash the android boot image with an offset so both of them can co-exist. In case the boot image size is too large, fastboot will fail to flash it. In this case, it may be required to re-compile the kernel image from downstream source to see if a smaller image can be generated. This would happen if the boot partition was backed up using dd or TWRP. |
Additional lk2nd features
To output lk2nd logs to the screen for debugging and other purposes, it is helpful to use the DEBUG_FBCON=1 option while building lk2nd.
To tell lk2nd to always boot to fastboot mode on every boot, the LK2ND_FORCE_FASTBOOT=1 option is helpful.
With these 2 options, the build command would be:
$ make DEBUG_FBCON=1 LK2ND_FORCE_FASTBOOT=1 TOOLCHAIN_PREFIX=arm-none-eabi- lk2nd-msm8974
Booting from an external SD card
For this device, lk2nd supports booting images from the external SD card. During development, it is helpful to build the device's postmarketOS boot and root filesystems, flash them to an SD card, and boot to it with lk2nd.
| Ensure to use an SD card that is rated class 10 or higher. Attempting to boot from an SD card that is slower than this will result in data transfer errors and a failure to boot from the SD card. |
How to enter flash mode
Device flash mode
With the device powered off, hold + .
lk2nd fastboot mode
With the device powered off, hold . As soon as the device logo/lk2nd footer show up on screen, press .
lk2nd shares the same key combination to enter flash mode as above. Due to this, it is a quick-reflex exercise to get into lk2nd fastboot mode during boot - must be pressed right after the device logo/lk2nd footer show up on screen. Pressing it a bit too early would boot into the device's flash mode (not lk2nd's fastboot mode) and a bit too late would result in the combination being ignored.
During development, it is very helpful to set lk2nd to always boot to fastboot mode as described above.
Installation
Using pmbootstrap
Follow Installation/Using pmbootstrap. When asked for the device's vendor/codename, select samsung as the vendor and lt03lte as the codename.
When asked for extra packages, here are a few that are helpful to have on the device for debugging or for general utility:
- vim
- file
- fastfetch
- btop
- x11vnc
- evtest
When asked for the UI, select xfce4. This UI is simpler to work with during development stage as there is no hardware acceleration available at the moment. Checkout the xfce4 page for more information about this desktop environment.
Building a custom kernel
While the shared kernel package works out of box, you'll need to frequently build new kernels for the device as additional hardware is enabled in your development process.
The recommended way to build the kernel is to use the envkernel feature that pmbootstrap supports. More details about envkernel can be found here.
Clone the pmaports source
Start by cloning pmaports source if you haven't already:
$ git clone
Checkout the kernel source
You should use a personal fork if you wish to contribute changes.
$ git clone git@github.com:msm8974-mainline/linux.git
Setup envkernel
Ensure that you have the pmbootstrap source (you would have already done this as part of your pmbootstrap setup).
Replace /path/to/ below with the path to the directory where your pmbootstrap source is checked out. |
$ cd linux
$ source /path/to/pmbootstrap/helpers/envkernel.sh
Follow the prompts to setup the chroot and the envkernel. This only takes a few minutes.
Copy the kernel config
The kernel config is available inside pmaports. The kernel config in this case is a common file for all devices that share this kernel package. Any device specific drivers, etc. are enabled via kernel modules.
Replace /path/to/ below with the path to the directory where your pmaports source is checked out. |
$ cp /path/to/device/testing/linux-postmarketos-qcom-msm8974/config-postmarketos-qcom-msm8974.armv7 lt03lte.kconfig
Run make to build the config and kernel
While inside the kernel source and in the same terminal window where envkernel is activated:
$ make lt03lte.kconfig
This will setup your kernel config. Next, build the kernel. If your machine has more cores available, adding -j to the make command followed by the number of parallel threads you want can help speed up the kernel build.
$ make
Build the kernel package and device packages followed by device image
To build the packages for install, run:
$ pmbootstrap build --envkernel linux-postmarketos-qcom-msm8974 --force
$ pmbootstrap build device-samsung-lt03lte --force
$ pmbootstrap install
This will setup the necessary chroots, build the packages, and assemble the device image.
Flashing a built image to an SD card
If the image has been built remotely or you wish to flash a fresh image for the device each time, follow the steps below.
Export the image
$ pmbootstrap export
Convert the sparse image to a raw image
Use the simg2img tool to convert a sparse image to a raw image.
Clone the repo locally, build it, and setup PATH so that the simg2img command is available for execution in your terminal.
Replace /path/to/ below with the path to the directory where your workspace is present. |
$ simg2img /path/to/workspace/chroot_native/home/pmos/rootfs/samsung-lt03lte.img /tmp/output.raw.img
/tmp/output.raw.img is the file we will flash to the SD card.
Flashing the image to an SD card
Use your favourite flash tool to flash to an SD card. Balena Etcher works quite well, but any other tool should work fine too.
Inserting the SD card into the device and booting lk2nd should automatically pick up the SD card partitions and boot to postmarketOS!
Flashing with heimdall
$ pmbootstrap export
$ heimdall flash --BOOT /tmp/postmarketOS-export/boot.img --SYSTEM /tmp/postmarketOS-export/samsung-lt03lte.img
Contributing hardware enablement and kernel changes
Contributions for enabling more hardware, drivers, and other kernel changes are welcome!
To do so, there are a few things to keep in mind:
- In the earlier steps where pmaports was cloned, you would instead need to create a fork in postmarketOS gitlab and clone that instead so you can raise an MR with your changes.
- Remember to also change the path to pmaports in your pmbootstrap config to point to your local clone.
- Changes to the device tree source (DTS) and the kernel are to be made to the kernel repo in GitHub. Create a personal fork and raise PRs with your changes.
- Kconfig files in postmarketOS should never be modified manually. Use the
pmbootstrap kconfig edit <name of package>command to edit the Kconfig.
Remember to zap your chroots before running pmbootstrap kconfig edit. When using envkernel, Rust is installed and will modify Rust related configs in the Kconfig. This is an unwanted change so ensure to use pmbootstrap zap to zap your chroots before modifying the Kconfig. |
- Reviews may take time - this SoC is quite old and is not a priority for many folks so be patient and allow for some time for code reviews for any code changes.
- Before pushing new changes to the kernel package or the device package, be sure to uptick the release version in the
APKBUILDfile as it would be an update to the packages.
The downstream kernel for the device is available here. The downstream DTS for the device appears to be this one. These can be used as references while enabling additional hardware.
Issues and General Notes
Display
This device has a questionable hardware choice of using embedded DisplayPort instead of DSI for the display panel. While this doesn't sound too bad right away, the lack of devices using the old DisplayPort hardware on this SoC is very problematic as there are no references to go by. Additionally, the driver that was once used to handle eDP on this device has been deleted. :) reference link
There are newer eDP drivers, however, they are an entirely different hardware block with different clocks, etc. so may not be usable for this device.
One alternative for now, while we figure out the eDP drivers, is to use simpledrm which loads based on an existing simple-framebuffer which the original bootloader setup at boot up (and lk2nd leaves running).
This strategy is used for a bunch of devices, however, has not been successful for this one. With this enabled, the driver is successfully initialized and X.org server is setup and functional, however, the display just stays fully blue.
The display can, however, be viewed over USB SSH using VNC. :) This hack is useful for testing things like the touchscreen and stylus as well as UI elements while the display is being figured out.
Using VNC
With simple-framebuffer and simpledrm setup, VNC can be used to get a display image over USB to the connected computer.
VNC Start (to be run on device over USB SSH)
$ sudo x11vnc -display :0 -auth /var/run/lightdm/root/:0
Any VNC client on the computer the device is connected to should be able to connect and bring up the output.
Testing Input devices without a screen
You can test input devices without a screen by using the evtest or xinput commands.
xinput
This is useful if your X Server is setup and working.
xinput CLI (to be run on device over USB SSH)
$ DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo xinput
Testing a particular input 6 with xinput (to be run on device over USB SSH)
$ DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 sudo xinput test 6
evtest
This is useful for testing inputs without an X Server running.
List input devices (to be run on device over USB SSH)
$ cat /proc/bus/input/devices
Capture raw events from an input device (to be run on device over USB SSH)
$ sudo evtest /dev/input/event0
More details on evtest can be found here.
Additional info
Unixbench results
| The numbers seem very low compared to the Exynos variants. Power/performance tweaking may be necessary to get better results. |
========================================================================
BYTE UNIX Benchmarks (Version 6.0.0)
System: samsung-lt03lte: Linux
OS: Linux -- 6.15.2 -- #1-postmarketos-qcom-msm8974 SMP PREEMPT Wed Nov 19 23:37:19 UTC
Machine: armv7l (unknown)
Language: en_US.utf8 (charmap="UTF-8", collate=)
CPU 0: ARMv7 Processor rev 0 (v7l) (38.4 bogomips)
CPU 1: ARMv7 Processor rev 0 (v7l) (38.4 bogomips)
CPU 2: ARMv7 Processor rev 0 (v7l) (38.4 bogomips)
CPU 3: ARMv7 Processor rev 0 (v7l) (38.4 bogomips)
17:13:03 up 5 min, 0 users, load average: 1.13, 1.04, 0.47; runlevel
------------------------------------------------------------------------
Benchmark Run: Tue Oct 21 2025 17:13:03 - 17:17:47
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 2731989.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 1070.4 MWIPS (10.0 s, 7 samples)
System Benchmarks Partial Index BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 2731989.2 234.1
Double-Precision Whetstone 55.0 1070.4 194.6
========
System Benchmarks Index Score (Partial Only) 213.4
------------------------------------------------------------------------
Benchmark Run: Tue Oct 21 2025 17:17:47 - 17:22:36
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables 10736475.8 lps (10.0 s, 7 samples)
Double-Precision Whetstone 4011.0 MWIPS (10.1 s, 7 samples)
System Benchmarks Partial Index BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 10736475.8 920.0
Double-Precision Whetstone 55.0 4011.0 729.3
========
System Benchmarks Index Score (Partial Only) 819.1
See also