Hardware |
Download |
Install |
Handbook |
Changelog |
Community |
About
Changelog
Subscribe: RSS | Atom
- Root now boots read-only so systemd can check the filesystem before remounting read-write, and the boot partition is checked before mounting. Upgrades migrate /etc/fstab while preserving customizations.
- Swapfile creation is now baked into the image build rather than running on the device during first boot.
- The PS/2 keyboard controller now runs at 4.64 MHz instead of 9.27 MHz, doubling the hardware receive timeout from 2 ms to 4 ms. The 2 ms timeout is too narrow for some boards, causing the controller to drop bytes, resulting in stuck or dropped keys (issue #3). Even at the slower rate, the controller has plenty of headroom to sample the PS/2 signals.
- Kernel updated to 6.12.109.
- Refreshed standard and desktop images.
- The graphics driver now supports the Video DMA (VDMA) engine, which can convert color format as it copies. The display only accepts 32-bit color, so until now the whole desktop had to be drawn in 32-bit and the 2D engine had to copy every finished frame to the display on top of its own drawing. The desktop is now drawn in 16-bit color, halving the memory each pixel takes, and the VDMA carries what changed to the display in 32-bit while the 2D engine only draws. The VDMA moves a full frame in about half the time the 2D engine took, and drawing in 16-bit makes no discernible difference on screen.
- The X.org driver now draws the desktop in 16-bit color and hands what changed on screen to the VDMA to put on the display, presenting through that same path with TearFree on or off and with or without 2D acceleration.
- Halving the pixel footprint and freeing the 2D engine from presentation copies makes drawing faster across the board. Large fills and copies are now roughly double in speed, window blits (moving and scrolling) improve by over half, and the X server uses between a quarter and three quarters less CPU per operation.
- Page flips no longer wait on a deadline. Before, the kernel waited up to 100 ms for the 2D engine to finish writing a newly drawn frame and then displayed it anyway, which under heavy load could show a partially drawn frame. Now a flip always waits for the 2D engine to finish before the frame is shown.
- IceWM has been patched to fix menu icons disappearing at 16-bit color depth when only part of a window was redrawn.
- The kernel now ignores the SD card's lock switch. A board that reads every card as write-protected (issue #21) could not boot, since the root filesystem lives on the card and has to be writable.
- Further cleanup of the display driver and the X.org driver, with nothing that changes in everyday use.
- Kernel updated to 6.12.108.
- Refreshed standard and desktop images.
- Launched the distro website, managed in the new wmt-os-site repository. Documentation has moved here and has been removed from the wmt-os repository.
- The external package build system has been rewritten around a central builder and a per-package conf file, with each package's changelog generated from its patch descriptions. Every Debian-derived package has been rebuilt through it and republished with a new revision.
- Backports now come from forky rather than sid. Dillo's suite now reflects this, but both currently carry the same 3.3.0-3, so nothing changes on device.
- gogglesmm is now backported from forky (1.3.1) instead of being built from trixie's 1.2.5. Ogg Vorbis is decoded with the fixed-point tremor library instead of the floating-point libvorbis.
- libfaad2 is now backported from forky (2.11.3) and built with fixed-point decoding, eliminating floating-point emulation for AAC. It includes a fix for fixed-point SBR envelope estimation (merged upstream), allowing HE-AAC internet radio streams to decode in real time with high-band audio restored.
- Kernel updated to 6.12.107.
- Refreshed standard and desktop images.
- The PS/2 keyboard path now runs in the keyboard's native scan set 2, matching what Windows CE does on these machines, and the driver forwards the controller's parity and timeout flags to the kernel's AT keyboard driver, which requests a resend of any corrupted byte instead of silently accepting it. The auxiliary port keeps receiving unflagged bytes, since delivering the flags desynchronized the touchpad.
- The repository pin has been lowered from 1001 to 990. This changes nothing about how WMT OS packages take precedence over Debian's, but fixes a first-upgrade problem on new installs where packages built into an image carry a newer timestamp than their identical archive copies, so apt listed them as downgrades and aborted non-interactive upgrades.
- Kernel updated to 6.12.104.
- Refreshed standard and desktop images.
- A new panel driver parses the vendor U-Boot lcdparam value and sets the resolution at runtime instead of hard-coding it, letting devices such as the EPC-1026 with its 10" 1024x600 display work properly. As a consequence, all panels now inherit their U-Boot defaults, so the normal 800x480 panels run at 62 Hz instead of 60 since that is how the vendor drove them. The value can be overridden through EXTRA_CMDLINE.
- The panel-simple driver is no longer used. The 800x480 panel is now defined directly with panel-dpi in the device tree using the vendor values, and serves as the fallback when the lcdparam value cannot be found. With that, the Innolux AT070TN92 timings patch was reverted as it is no longer needed.
- The kernel now validates display modes against the hardware's real limits, rejecting timings the display controller cannot express instead of programming them blindly.
- The X.org driver no longer invents an 800x480 fallback mode and now accepts exactly the modes the panel publishes. Its redundant legacy validation paths were also removed.
- The ASoC driver no longer performs any vendor codec register writes, as they were found to be functionally inert. They were specific to the VT1613 and would write to unrelated registers on any other codec, so their removal leaves the driver fully generic over any AC97 codec attached to the WM8505, covering all known boards (VT1613, VT1612A, WM9715L).
- The seeded asound.state has been replaced with an ALSA init file, making the distro's audio defaults portable across all codecs.
- The default ALSA config no longer pins audio to the internal card, so the default device can now be changed normally, such as to a USB sound card.
- The PS/2 driver has been patched so the touchpad can never enumerate as a keyboard, which could happen intermittently on a reboot and left it dead until the next one.
- First-boot setup gains a Keymap field for choosing a keyboard layout, filled dynamically from the XKB data just as the timezone list is from tzdata. The chosen layout applies to both the console and the desktop, and layouts that cannot type Latin keep us alongside with Alt+Shift switching.
- The setup.ini file is now shredded rather than deleted after it is applied.
- The Dillo backport recipe was fixed. Its modernized sid packaging now requires debhelper 14, which trixie lacks, so the build now takes debhelper alone from sid, the same practice Debian's own backports follow for build tooling.
- Dillo was updated to 3.3.0-3, adding support for WebP images and Brotli-compressed pages.
- Refreshed standard and desktop images.
- Dillo 3.3.0 has been backported from Debian Sid and is now included as the default web browser on new images.
- NetSurf has been rebuilt with a lower x-www-browser priority so Dillo takes precedence automatically.
- Kernel updated to 6.12.103.
- Refreshed standard and desktop images.
- The battery driver has been rewritten around self-calibration. These netbooks gauge their battery by timing an RC circuit whose scale varies from unit to unit, so no shipped constant could fit every board. The driver instead calibrates that scale against the board's fixed low-battery alarm, at the first alarm and again at every later one, and the result persists across reboots and kernel updates. Validated on hardware across four boards and both revisions. The percentage first appears once the battery has drained to the alarm.
- The battery driver now fully supports boards with the older VT1612A codec. The two revisions disagree on the polarity of the charge-complete signal and on the alarm's trip voltage, and an unused WAKEUP3 pin happens to be strapped to opposite levels on each, so the driver reads it to identify the revision and configure both. These boards previously sat at 0% and never reported a completed charge.
- Charge percentages follow a discharge curve measured on real hardware. The vendor's table ran 150 to 250 mV high through the middle of the range, so a battery at a true 30% read closer to 15%.
- GPIO reads from banks 6 through 9 now address the correct input-data register, fixing a bug inherited from the original mainline port. The low-battery alarm pin sits in bank 8.
- Kernel updated to 6.12.101.
- Refreshed standard and desktop images.
- Cut CPU and GE synchronization latency by nearly half. Waits now spin briefly before sleeping and completed jobs are reclaimed lazily, taking a sync from 156 µs at best down to 85 µs, measured over twenty sustained runs against the previous kernel. Bandwidth is unchanged, at the cost of about 2% on a synthetic pipelined ceiling no real workload sustains.
- The DMA controller now supports memory-to-memory transfers alongside peripheral transfers. Validated on hardware with dmatest: 1500 copies, no failures. WonderMedia never implemented this capability, making it a first for the WM8505.
- DMA driver correctness: termination now halts the channel before its memory is freed, queued transfers always raise their completion interrupt, and device-tree request lines are validated instead of silently truncated.
- Graphics driver correctness: fills and blits are restricted to the four raster operations userspace uses, since a fill programs no source and could read stale addresses. Vblank events are stamped after the counter advances, the scanout width limit derives from the hardware register field, and unbinding the driver fails open clients cleanly.
- The Innolux AT070TN92 panel mode now matches the datasheet timings exactly. The sync pulse widths were inherited values and the blanking figures were split wrongly between sync and back porch. The frame rate is unchanged at 60.06 Hz.
- X.org driver correctness: the root pixmap is rebound each server generation, depth 32 pixmaps stay in software, failed synchronization no longer marks buffers clean, and pending flips are drained before mode changes and resolved from kernel state instead of a poll.
- PS/2 driver correctness: keyboard and touchpad commands are serialized, since both ports share one controller. The flush no longer sleeps in atomic context and closing a port drains the shared output buffer.
- Kernel updated to 6.12.100.
- Refreshed standard and desktop images.
- Multiple programs can now play sound at the same time. Playback is mixed at a fixed 48 kHz, so 44.1 kHz material is resampled, while recording is unchanged and still takes its rate from the codec.
- The ALSA configuration now ships in the wmt-platform-wm8505 package and installs to /etc/alsa/conf.d, so installed systems receive changes to it rather than only new images. An unmodified /etc/asound.conf is removed on upgrade; a locally edited one is left alone and continues to take precedence.
- Addressed audible pops when playback stops and starts in quick succession. The AC97 controller's transmit FIFO was being disabled rather than left to drain, so stale samples were replayed ahead of the next stream.
- Audio driver correctness: FIFO thresholds are now programmed where the codec reset cannot discard them, codec register access no longer disables interrupts for the length of a link transaction, and the VT1613's vendor registers are set through the kernel's AC97 codec layer rather than written directly.
- Removed the unused I2S clock from the AC97 controller and corrected the audio clock parenting in the WM8505 clock driver.
- Kernel updated to 6.12.98.
- Refreshed standard and desktop images.
- Reworked kernel configuration: LZ4 compression for faster boot, peripheral drivers moved to modules, closer alignment with Debian's kernel defaults (restoring a few security defaults along the way), and support for hardware the WM8505 doesn't have compiled out. Suspend is no longer advertised.
- Fixed module autoloading in the ported serial flash driver.
- Kernel boot arguments can now be set with EXTRA_CMDLINE in /etc/default/wmt-boot.
- Kernel updated to 6.12.97.
- Refreshed standard and desktop images.
- The project is now a distribution. The OS identifies as WMT OS and development moved to the WMT OS GitHub organization.
- New modular build system with incremental builds, producing the kernel, boot, and base packages, and a new desktop profile with IceWM.
- Kernel and package updates now ship through APT from the signed repository at apt.wmt-os.org.
- First-boot setup runs outside Linux, from Windows CE, Windows, or any browser, writing a setup.ini on the boot partition.
- A/B kernel rollback, with rollback.cmd and rollback.sh on the boot partition.
- Repackaged imlib2 to fix an unaligned memory access crash on ARMv5, so IceWM now launches. Fixed rendering in the FOX toolkit, rebuilt NetSurf against GTK2, and branded XDM.
- The DRM driver now uses an asynchronous ring buffer for the 2D engine, and the new xf86-video-wmt X.org driver provides a tear-free 2D-accelerated desktop.
- DAPM routing in the ASoC driver powers the speaker amplifier down when nothing is playing, fixing buzzing.
- Backlight PWM raised from 6.6 kHz to 25 kHz, also fixing buzzing, with 16 brightness steps and desktop hotkeys for brightness and volume.
- Panel sleep and wake work properly.
- New battery monitoring driver with voltage-based charge estimation and a low-battery alarm.
- The SDMMC driver has been modernized, with about 2.3% better IOPS and latency for 4K random reads and writes.
- The U-Boot splash shows the kernel version, build time, and the distro logo.
- Login and sudo are faster with SHA-512 password hashing in place of yescrypt.
- Kernel updated to 6.12.96.