This project delivers a complete, modern Debian build for WM8505-powered netbooks. It has been specifically tested for the Sylvania SYNET07526, the sub-$100 Windows CE netbook sold by CVS in 2011. It has been found to work on other generic WM8505 netbooks, and should work on the WM8650 with some adjustments*.
The kernel used is a Linux 6.1 rebase of linux-vtwm, a repository with patches for VIA/Wondermedia SoCs. The build script automatically rebases further to the latest 6.1.x release from upstream, fetches the linux-config-6.1 package from Debian, and adapts the most similar target, config.armel_none_marvell
, to be compatible with the netbook using a combination of options from the seed
and the kernel's defconfig. multistrap
is used to build the Debian root filesystem, and systemd-nspawn
to configure it.
All standard system utilities and kernel modules are included, providing the functionality you would expect from a stock Debian system. USB sound cards, Wi-Fi adapters, and Ethernet adapters have been tested to work normally.
* I have been unable to test the WM8650 since I only have WM8505 devices. The kernel options should be the same, so I would expect it to work after changing wm8505-ref.dtb
to wm8650-mid.dts
in the build script. The wm8505fb.patch
would likely need to be reverted as well since WM8650+ uses a different pixel format, which can be done by deleting the file from the patch
folder. Please reach out if you run into issues or are able to get this working.
Special thanks to wh0's bookconfig for providing a Linux 6.1 rebase of the abandoned linux-vtwm project. This would not have been possible without them.
- Packages:
multistrap.conf
integrates all of Debian's standard system utilities by explicitly listing priorityimportant
andstandard
packages. It also includes additional packages for Wi-Fi, SSH, and other utilities. - Patches:
wm8505fb.patch
applies the correct default contrast value for the WM8505 in thewm8505-fb
driver. - Systemd:
- expand-rootfs.service - Expands the root filesystem using
growpart
andresize2fs
on first boot. - gen-dropbear-keys.service - Generates Dropbear SSH host keys on first boot.
- update-hosts.service - Updates /etc/hosts with the hostname on first boot.
- wlan-gpio.service - Uses
gpioset
to connect/disconnect the built-in USB Wi-Fi adapter. - systemd-firstboot.service.d/override.conf - Drop-in file to override prompts for
systemd-firstboot
.
- expand-rootfs.service - Expands the root filesystem using
- Udev:
10-display.rules
allows control of display contrast in thewm8505-fb
driver. The default of 128 is the max value. A reboot is required to change this setting. - Fstab: Mounts the swap file
/swapfile
.
- First Boot: The first boot process takes about 5 minutes. You will be asked to configure your timezone, set a hostname, and create a root password.
- Storage: The root filesystem is expanded to fit the SD card on first boot.
- Memory: A 256 MB swap file is included in the disk image and is mounted by
/etc/fstab
on boot. - Wi-Fi: The built-in Wi-Fi adapter is controlled by GPIO and is enabled on boot. You can configure your network via
nmtui
. Ensure your network allows 802.11g clients. - SSH: Dropbear SSH is included, and keys are generated on first boot.
- Display: The display backlight is always on and cannot be controlled.
- Graphics: Graphics acceleration is not available. Everything is software-rendered, making screen redraws very expensive. Video playback and most games are not feasible.
- Audio: Built-in audio is non-functional as kernel support for the codec is unavailable.
- Battery: Battery state monitoring is not possible.
- Storage: Internal NAND/serial flash is inaccessible.
- Performance: The WM8505 is very slow. It runs at 300 MHz? with a single core, lacking floating-point acceleration, speculative execution, and essentially all features typical of a modern CPU. Running Debian on such a device is more of a novelty than anything.
Most of these limitations are due to using the open-source linux-vtwm kernel rather than utilizing the modifications made by VIA. I would expect projectgus's kernel_wm8505 repo to run better, particularly when it comes to graphics, though it is an ancient Android-based kernel stuck at 2.6.29. If someone more experienced than me wants to attempt to apply VIA's patches to a newer kernel, you'd definitely get my attention.
Building requires a Debian or Ubuntu-based system due to its use of multistrap
. Follow these steps:
- Clone this repository and navigate to its directory:
git clone https://github.com/lrussell887/Debian-for-WM8505-Netbooks.git cd Debian-for-WM8505-Netbooks/
- Run
build.sh
(needs root privileges):sudo ./build.sh
The resulting build files (disk-6.1.X.img.gz
and upgrade-6.1.X.tar.gz
) are placed in the build
directory.
Pre-compiled builds are available on the Releases page.
- disk-6.1.X.img.gz - Full disk image containing
boot
androotfs
partitions. Used for new installations. - upgrade-6.1.X.tar.gz - Tarball containing updated
boot
files and kernel modules. Used for upgrading an existing installation.
For setting up a new Debian installation.
Requirements:
- An SD card between 4GB and 32GB.
- A copy of
disk-6.1.X.img.gz
. - An imaging tool like balenaEtcher (recommended) or
dd
.
Installation Steps:
- Image the SD Card:
- With balenaEtcher: Use it to directly flash
disk-6.1.X.img.gz
to your SD card. - With
dd
:- Decompress the image with:
gzip -d /path/to/disk-6.1.X.img.gz
- Identify your SD card device (e.g.,
/dev/sdX
), and run:sudo dd if=/path/to/disk-6.1.X.img of=/dev/sdX bs=1M conv=fsync
- Then eject the SD card using:
sudo eject /dev/sdX
- Decompress the image with:
- With balenaEtcher: Use it to directly flash
- Insert the imaged SD card into your netbook.
- Turn on your netbook. It will boot from the SD card automatically.
For upgrading an existing Debian installation to a newer kernel.
- Run the following on your netbook (needs root privileges):
sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/lrussell887/Debian-for-WM8505-Netbooks/master/upgrade-kernel.sh)"
Requirements:
- An SD card with an existing image.
- A copy of
upgrade-6.1.X.tar.gz
. - A Linux computer.
Upgrade Steps:
- Mount the
boot
androotfs
partitions. Identify your SD card device (e.g.,/dev/sdX
), and run:mkdir boot rootfs sudo mount /dev/sdX1 boot sudo mount /dev/sdX2 rootfs
- Update the
boot
partition:sudo rm -rf boot/* sudo tar -xzvf /path/to/upgrade-6.1.X.tar.gz -C boot --strip-components=1 boot
- Update the
rootfs
partition:sudo rm -rf rootfs/lib/modules/* sudo tar -xzvf /path/to/upgrade-6.1.X.tar.gz -C rootfs --strip-components=1 --skip-old-files rootfs
- Eject the SD card:
sudo eject /dev/sdX