← Back to Devices

Vestel Venus 5.5x — Headless Alpine Linux via Custom Static PID 1

Active VSP355s Headless Phone Board ARMv7

Last updated October 27, 2026

SoC Qualcomm Snapdragon 400 (MSM8926, 4× Cortex-A7)
Architecture ARMv7
Kernel Downstream Linux 3.4.0
OS / Userland Alpine Linux (ARMv7 OpenRC)
Boot Path Custom static /init ramdisk → userdata (mmcblk0p25) pivot

Bring-up tooling, static C helpers, and OpenRC service scripts for converting a bare Vestel Venus 5.5x (VSP355s) motherboard into a headless Alpine Linux node with USB RNDIS networking, Dropbear SSH, Qualcomm WCNSS/Pronto Wi-Fi, persistent ext4 storage, and a working apk package manager.

The target is a bare board with no display, no touchscreen, no battery, and no accessible UART pins — every diagnostic probe, kernel ramdisk replacement, and rootfs deployment was executed exclusively over Qualcomm EDL (05c6:9008) and USB.


Hardware Specifications

Component Specification Details
Model Vestel Venus 5.5x (VSP355s) Reference board family MSM8226
SoC Qualcomm Snapdragon 400 (MSM8926) 4× ARM Cortex-A7 (armv7l, 32-bit), Adreno 305
RAM 1 GB LPDDR2/3 848 MB usable by the stock 3.4.0 kernel
Storage 14.6 GiB eMMC 30,535,680 × 512 B sectors across 25 partitions
Wireless Qualcomm WCNSS / Pronto (Prima) Activated via custom userspace firmware loader helper
Debug Interface Qualcomm EDL (05c6:9008) Triggered via Volume Up + Volume Down on USB VBUS

Hardware & Feature Support Status

Feature State Notes
EDL Access & Full Backup Working Firehose prog_emmc_firehose_8x26.mbn (--sectorsize=512)
Custom Static PID 1 (/init) Working Static ARMv7 ELF in boot.img ramdisk (scripts/init_final.c)
Rootfs Pivot (userdata) Working Mounts mmcblk0p25 (ext4) and pivot_roots into Alpine OpenRC
USB RNDIS Networking Working Configured automatically at boot via android_usb gadget
SSH Server (dropbear) Working Dropbear used because OpenSSH requires PR_SET_NO_NEW_PRIVS (Linux 3.5+)
Wi-Fi (wlan0) Working Custom vestel_fw_helper + vestel_wcnss_trigger brings up Pronto Wi-Fi & DHCP
Package Manager (apk) Working Interactive PTY sessions (devpts) and Alpine package repositories working

Boot Architecture

[PBL / SBL / aboot] → stock boot.img (Linux 3.4.0 + custom ramdisk)
  └── /init (static ARMv7 ELF, scripts/init_final.c)
        ├── creates /dev block & char nodes directly (no devtmpfs on this kernel)
        ├── mounts userdata (mmcblk0p25) at /newroot
        └── pivots into /newroot as PID 1 → Alpine OpenRC
              ├── vestel-usb-net  (configures android_usb RNDIS gadget)
              ├── vestel-wifi-hw  (WCNSS firmware helper + module bring-up)
              ├── vestel-devpts   (mounts /dev/pts for SSH PTYs)
              └── dropbear, wpa_supplicant, udhcpc

Notable Engineering Lessons

  1. No devtmpfs in the Stock 3.4 Kernel:
    • Early custom /init probes appeared to make zero progress because the kernel was built without CONFIG_DEVTMPFS, leaving /dev empty in a fresh ramdisk. scripts/init_final.c explicitly calls mknod() for mmcblk0p25, console, null, and kmsg before mounting the root filesystem.
  2. Userspace WCNSS Firmware Loader Without udev/mdev:
    • Bringing up Qualcomm WCNSS Wi-Fi on a minimal 3.4 kernel required three pieces working together:
      • Extracting the split wcnss.mdt + wcnss.b00…b09 segments from the modem partition image (rather than the standalone wcnss.mbn).
      • Writing a custom static helper (scripts/vestel_fw_helper.c) that loops on write() because the kernel's sysfs firmware data attribute caps individual writes at PAGE_SIZE.
      • Opening /dev/wcnss_wlan via scripts/vestel_wcnss_trigger.c to trigger the subsystem restart and firmware request.
  3. Linux 3.4 ext4 Feature Compatibility:
    • Modern mkfs.ext4 defaults enable metadata_csum and 64bit, which the 3.4 kernel refuses to mount. Formatting userdata with -O ^metadata_csum,^64bit,^orphan_file ensures clean mounting at boot.
  4. Why Dropbear Instead of OpenSSH:
    • OpenSSH's pre-auth privilege separation sandbox requires prctl(PR_SET_NO_NEW_PRIVS), introduced in Linux 3.5. On Linux 3.4.0, Dropbear provides reliable SSH login without kernel backports.

Device Tags:

Other Ported Devices