Bare-Metal Hardware Platform

Samsung Galaxy S8 Native Ubuntu 24.04 LTS & Docker Homelab Server

Repurpose decommissioned Galaxy S8 hardware (Exynos 8895 / SM-G950N, SM-G950F, SM-G950FD) into an autonomous, 24/7 enterprise Linux server running native Ubuntu 24.04.5 LTS Noble Numbat, Docker, CasaOS, Ollama LLM inference, and USB-C DisplayPort 1080p60 video output.

8 Cores
2.31 GHz M2 + 1.69 GHz A53
12.4 GB/s
4GB LPDDR4x Memory Bandwidth
1080p @ 60Hz
USB-C DisplayPort Alt Mode
1.4 W
Idle Server Power Consumption

System Architecture & Execution Model

Unlike userland chroot apps (Termux or UserLAnd) that run restricted under Android SELinux and zygote controls, this platform deploys an auto-booting Linux initialization supervisor directly from Samsung's physical BOOT partition (/dev/block/sda7).

Hardware Root of Trust: The stock S-Boot bootloader transfers control to our DEFEX-free Linux 4.4.111 kernel. When the Android USB framework signals readiness, init.rc launches the master supervisor (/data/linux/start_all.sh) in the root cgroup, escaping all Android process termination limits.
Boot Phase Component Hardware Action Executed
Phase 1 Kernel Initialization DEFEX-free Linux 4.4.111 unpacks LZMA ramdisk; powers Synopsis DWC3 USB controller.
Phase 2 Supervisor Escape PID is moved to root cgroup (/acct/tasks) to escape Android libprocessgroup termination.
Phase 3 Panic Guards & PMIC Removes buggy V4L2 camera ISP nodes; unlocks MAX77865 PMIC to 1,500 mA fast charging.
Phase 4 Storage & Userspace Mounts external MicroSD card and Ubuntu 24.04.5 LTS Noble Numbat rootfs at /mnt/ubuntu.
Phase 5 Daemons & Desktop Starts SSH (:22), TigerVNC (:5901), noVNC (:6080), GNOME 46 macOS desktop, and DisplayPort bridge.
Phase 6 Docker & Homelab Spawns Docker 26 daemon, CasaOS (:8080), Portainer (:9000), Ollama (:11434), and Uptime Kuma (:3001).

Hardware Specifications & Capabilities

Detailed technical hardware specifications of the Samsung Galaxy S8 (SM-G950N / SM-G950F / SM-G950FD) configured as a 24/7 server:

Compute Processor
Samsung Exynos 8895 SoC (10nm LPE FinFET)
Octa-core big.LITTLE design: 4x Samsung Exynos M2 custom performance cores clocked at 2.314 GHz and 4x ARM Cortex-A53 efficiency cores at 1.690 GHz under native performance governor.
Graphics Engine
ARM Mali-G71 MP20 (Bifrost Architecture)
20 execution cores locked at 546 MHz Booster mode. Provides hardware acceleration via Cairo/X11 rendering and OpenCL/Vulkan compute pipelines.
Memory & High-Speed Bus
4 GB LPDDR4x Dual-Channel @ 1794 MHz
Delivers up to 12.4 GB/s of sustained memory throughput. 3.4 GB allocated directly to Linux userspace with zram swap compression for high container density.
Dual Storage Architecture
64 GB UFS 2.1 Internal + MicroSD DW MMC
Internal storage delivers 540 MB/s read and 218 MB/s write. External MicroSD reader (11500000.dwmmc2) provides hotplug storage expansion for media and NAS backups.
DisplayPort 1.2 Alt Mode
Hardware DECON2 (/dev/graphics/fb2)
Full 1920x1080 @ 60 Hz video output over USB Type-C. Operates via ION memory allocations and hardware vertical blank synchronization (FBIO_WAITFORVSYNC).
Dedicated Audio DSP
ABOX Calliope DSP @ 1.18 GHz
Maxim MAX98506 mono speaker amplifier (ALSA hw:0,0) and Cirrus Logic CS47L92 Digital Microphone 1 (ALSA hw:0,9) unified via custom asound.conf routing.

Comparative Benchmarks vs Single-Board Computers

Standardized sysbench, memory bandwidth, and storage I/O benchmarks comparing the Galaxy S8 Linux platform against industry-standard SBCs:

Evaluation Metric Galaxy S8 (Exynos 8895) Raspberry Pi 4 Model B Raspberry Pi 5 (8GB) Rockchip RK3588
CPU Configuration 4x M2 + 4x A53 (8 Cores) 4x A72 (4 Cores) 4x A76 (4 Cores) 4x A76 + 4x A55 (8 Cores)
Multi-Core Sysbench 4,218 events/sec 1,742 events/sec 5,120 events/sec 6,840 events/sec
Single-Core Sysbench 812 events/sec 438 events/sec 1,280 events/sec 1,320 events/sec
Memory Bandwidth 12.4 GB/s (LPDDR4x) 4.1 GB/s (LPDDR4) 11.2 GB/s (LPDDR4x) 14.8 GB/s (LPDDR4x)
Storage Sequential Write 218 MB/s (UFS 2.1) 38 MB/s (MicroSD A1) 42 MB/s (MicroSD A2) 180 MB/s (eMMC 5.1)
Storage Sequential Read 540 MB/s (UFS 2.1) 44 MB/s (MicroSD A1) 88 MB/s (MicroSD A2) 260 MB/s (eMMC 5.1)
DisplayPort Alt Mode Native Hardware USB-C Not Supported Not Supported Native Hardware USB-C
Built-in Battery Backup (UPS) Integrated Li-Ion Battery None (Requires External UPS) None (Requires External UPS) None (Requires External UPS)
Idle Power Consumption 1.4 W 3.2 W 4.8 W 3.5 W

1-Click Flashing & Deployment Guide

The complete platform is packaged into an automated Odin flashable tar: releases/Ubuntu_24.04_GalaxyS8_Full_Odin.tar (88.4 MB).

Hardware Key Sequence (Download Mode): With the USB-C cable plugged into your PC, press and hold Volume Down + Bixby + Power simultaneously for exactly 11 to 13 seconds. The phone enters Download Mode directly without needing to unplug the cable or press Volume Up.

Step-by-Step Installation Instructions

  1. Ensure your Samsung Galaxy S8 has its bootloader unlocked (Developer Options > OEM Unlocking).
  2. Connect the phone to a Windows PC with Samsung USB Mobile Drivers installed.
  3. Put the device into Download Mode via the 11-13 second button combo. Device Manager shows SAMSUNG Mobile USB CDC Composite Device (PID_685D).
  4. Launch Odin 3.14.1. Confirm that an active COM port illuminates in the ID:COM box.
  5. Click AP and select Ubuntu_24.04_GalaxyS8_Full_Odin.tar.
  6. Ensure Auto Reboot and F. Reset Time are checked in the Options tab.
  7. Click Start. The process flashes the kernel to /dev/block/sda7 (BOOT) and /dev/block/sda8 (RECOVERY).
  8. When Odin reports green PASS!, unplug and immediately re-plug the USB-C cable. This forces Windows host controllers to re-enumerate the device bus, bringing ADB online immediately.

Package Verification Checksums

SHA256: 13c1964681f7891f52d438471e24c6a3e7171f7a6618cfc064dd950113b7ffe5
MD5:    d426d93d33403ec9c74c717ff12a06e2
File:   Ubuntu_24.04_GalaxyS8_Full_Odin.tar (88,412,160 bytes)

Services & Homelab Applications Matrix

All services boot concurrently on system start and are accessible via your local network:

Service Port Protocol Function Default Credentials
OpenSSH Server 22 TCP Root system terminal User: root / Pass: ubuntu
noVNC Web Desktop 6080 HTTP Browser Remote Desktop Pass: ubuntu
TigerVNC Server 5901 RFB Native VNC display session (:1) Pass: ubuntu
CasaOS Dashboard 8080 HTTP Homelab & app portal Initial Web Setup
Portainer CE 9000 HTTP Docker container manager Initial Web Setup
Ollama LLM Engine 11434 HTTP Local AI inference REST API Open REST API
Code-Server / VS Code 8082 HTTP Web-based development IDE Initial Web Setup
FileBrowser NAS 8088 HTTP MicroSD card storage manager User: admin / Pass: admin
Uptime Kuma 3001 HTTP Telemetry & status monitoring Initial Web Setup
Nextcloud Hub 8085 HTTP Private cloud file sync Initial Web Setup
AdGuard Home 3000 HTTP Network-wide DNS filter Initial Web Setup

Kernel & Hardware Subsystem Engineering

1. MAX77865 PMIC 1,500 mA Fast-Charge & UVLO Register Unlock

Stock Samsung kernels restrict standard USB chargers to 450-500 mA, causing power starvation under full CPU load. The supervisor writes directly to the PMIC I2C registers to unlock 1,500 mA charging and set brownout protection to 4.3V:

echo "0xBD 0x6C" > /sys/class/power_supply/max77865-charger/data  # Unlock CHGPROT
echo "0xC3 0x61" > /sys/class/power_supply/max77865-charger/data  # UVLO = 4.3V + DISSKIP
echo "0xC0 0x3C" > /sys/class/power_supply/max77865-charger/data  # CHG_CNFG_09 = 1500mA input limit
echo "0xB9 0x9E" > /sys/class/power_supply/max77865-charger/data  # CHG_CNFG_02 = 1500mA fast charge
echo "0xB7 0x05" > /sys/class/power_supply/max77865-charger/data  # MODE_BUCK | MODE_CHGR
echo 1500 > /sys/class/power_supply/battery/batt_tune_input_charge_current
echo 1500 > /sys/class/power_supply/battery/batt_tune_fast_charge_current

2. Exynos V4L2 Camera ISP Kernel Panic Guard

Calling VIDIOC_QUERYCAP on uninitialized Samsung camera ISP nodes (/dev/video100 through /dev/video220) triggers a NULL-pointer dereference kernel panic (fimc_is_ixs_video_querycap+0x24/0x68) whenever GStreamer, Nautilus, or WebKit scans video devices. The supervisor removes uninitialized nodes while preserving Exynos MFC hardware codecs:

rm -f /dev/video[1-9][0-9]* /dev/v4l-subdev*
# /dev/video6..9 remain intact for Exynos MFC hardware H.264/HEVC decoding and encoding.

3. USB-C DisplayPort 1080p60 Hardware Driver

The native daemon (src/drivers/exynos_dp_bridge.c) monitors physical cable hotplug via sysfs (/sys/class/switch/hdmi/state). It keeps DECON2 (/dev/graphics/fb2) in power-down while disconnected to prevent kernel timeout panics, and on connection negotiates EDID timings, powers up the DisplayPort link, and streams X11 display buffers locked to hardware vertical blanking.

Hardware Control Center CLI (s8ctl)

Unified management CLI deployed at /usr/local/bin/s8ctl providing real-time telemetry and hardware tuning:

s8ctl status          # Telemetry report: CPU, GPU, RAM, battery, thermal, and network
s8ctl cpu perf        # Lock 4x M2 cores @ 2.314 GHz and 4x A53 cores @ 1.690 GHz
s8ctl cpu power       # Shift CPU governor to powersave mode
s8ctl gpu boost       # Lock Mali-G71 MP20 GPU to 546 MHz Booster mode
s8ctl torch on|off    # Toggle rear camera flashlight LED
s8ctl haptic 200      # Pulse internal haptic motor for specified duration in ms
s8ctl sdcard          # Display MicroSD mount status, capacity, and benchmark tests
s8ctl audio test      # Play 440 Hz acoustic test tone through MAX98506 speaker

Frequently Asked Questions & Troubleshooting

Question: Can this run on Snapdragon 835 variants (SM-G950U / SM-G950W)?
This release is specifically compiled for the Samsung Exynos 8895 SoC (SM-G950N, SM-G950F, SM-G950FD). Snapdragon models possess locked bootloaders and incompatible kernel interfaces.
Question: Does this require a functioning internal screen or front LED?
No. The entire system is engineered for headless operation. All status cues utilize the rear torch LED, internal haptic motor pulses, and network telemetry.
Question: What happens if power is abruptly disconnected?
The Galaxy S8's internal battery functions as an integrated uninterruptible power supply (UPS), preventing filesystem corruption and keeping services online during brief outages.