Update PHP to 8.3.36 for the php2shell CVEs. Remove eMudhra roots from the CA bundle. Update the kernel to 6.12.114 while keeping toolchain headers at 6.12.104. Refresh release and install documentation.
160 lines
5.6 KiB
Markdown
160 lines
5.6 KiB
Markdown
# Mentalnet GNU/Linux
|
||
|
||
A light, TTY-only GNU/Linux distribution for 90s Intel Pentium-class
|
||
(i586) machines, built with [Buildroot](https://buildroot.org).
|
||
|
||
<p align="center">
|
||
<img src="logos/mnlogo.jpg" alt="Mentalnet GNU/Linux — Modern GNU/Linux for Legacy i586 Pentiums" width="400">
|
||
</p>
|
||
|
||
The ISO is a live CD: the entire system runs from the CD with a
|
||
read-only root filesystem, and the same CD carries a built-in hard
|
||
disk installer (`mentalnet-install`).
|
||
|
||
## Current release
|
||
|
||
**R1 "Ochatime"** — named after 23.exe's *Ochatime*.
|
||
|
||
## Versioning
|
||
|
||
- Major releases bump the `R<n>` number (`R1`, `R2`, ...).
|
||
- Minor releases keep the `R<n>` base version and use the codename as
|
||
the minor version.
|
||
- All codenames are taken from Vocaloid, Hatsune Miku or Kasane Teto
|
||
songs.
|
||
|
||
| Release | Codename | Song | Notes |
|
||
|---------|----------|------|-------|
|
||
| R1 | Mesmerizer | *Mesmerizer* — 32ki (Hatsune Miku & Kasane Teto) | Initial release |
|
||
| R1 | FirstStorm | *Chūlán ~First Storm~ (初嵐~First Storm~)* — DECO*27 | Swap-free installer, true i586 support, terminal/input hardening, interrupt-storm fixes |
|
||
| R1 | LovePara | *ラブパラ (Love Para)* — DECO*27 feat. Hatsune Miku | app-server stack (PHP/Ruby/Perl, php-fpm, lighttpd `/proxy/` → port 1337), tcc on-target C dev with glibc headers, socat, gesftpserver, SiS 900 / VIA Rhine / Tigon3 NICs, fastfetch, nano, en_US.UTF-8 locale |
|
||
| R1 | StreamingHeart | *ストリーミングハート (Streaming Heart)* — DECO*27 feat. Hatsune Miku | `runmain.o` for tcc (run C files like scripts without permanent compilation), tmux, custom bash prompt |
|
||
| R1 | **Ochatime** | *Ochatime* — 23.exe | **Current** — Linux 6.12.114 (PwnEscape/CVE-2026-99999 fix), PHP 8.3.36 security update (*php2shell*, CVE-2026-109618 / CVE-2026-109619), eMudhra (emSign) root CAs purged from the trust store |
|
||
|
||
## Quick facts
|
||
|
||
| | |
|
||
|---|---|
|
||
| Login | `root` / `mnlinux` |
|
||
| Hostname | `mentalnet` |
|
||
| Kernel | `6.12.114-mentalnet-intel32` |
|
||
| Media | Live CD with built-in installer |
|
||
| CPU | i586 (Pentium / Pentium MMX) or any newer x86 |
|
||
| RAM | 128 MB minimum (64 MB usually works) |
|
||
|
||
## Building from source
|
||
|
||
This repository is **not** a full Buildroot tree — it is an overlay
|
||
meant to be applied on top of a pristine Buildroot checkout.
|
||
|
||
1. Download and extract the pristine Buildroot 2025.02.17 LTS
|
||
tarball (do not use a git checkout of master; this layer is
|
||
written against 2025.02.17):
|
||
|
||
```
|
||
wget https://buildroot.org/downloads/buildroot-2025.02.17.tar.gz
|
||
tar xf buildroot-2025.02.17.tar.gz
|
||
cd buildroot-2025.02.17
|
||
```
|
||
|
||
2. Copy this repository's contents over the extracted tree,
|
||
preserving paths:
|
||
|
||
| Source (this repo) | Destination (Buildroot tree) |
|
||
|--------------------|------------------------------|
|
||
| `board/mentalnet/` | `board/mentalnet/` |
|
||
| `fs/iso9660/grub.cfg` | `fs/iso9660/grub.cfg` — **overwrites an upstream file** |
|
||
| `.config` | `.config` |
|
||
| `logos/`, `README.md`, `LICENSE` | same paths (repo-local, not used by the build) |
|
||
|
||
3. Build:
|
||
|
||
```
|
||
make
|
||
```
|
||
|
||
Host dependencies are listed in the
|
||
[Buildroot manual](https://buildroot.org/downloads/manual/manual.html#requirement).
|
||
Outputs land in `output/images/` — see the
|
||
[install guide](board/mentalnet/INSTALL-GUIDE.md) for what each
|
||
artifact is and how to test it.
|
||
|
||
The committed `.config` is based on the default i386 defconfig plus
|
||
the Mentalnet selections (GRUB2 embedded config, e2fsprogs, getty
|
||
TERM, and so on). Copying it reproduces the released system exactly;
|
||
alternatively, start fresh with `make menuconfig` and roll your own.
|
||
|
||
## Security after install
|
||
|
||
The default root password is **`mnlinux`** — please change it after
|
||
installing:
|
||
|
||
```
|
||
passwd
|
||
```
|
||
|
||
Then, for day-to-day use, create a regular user and give it sudo
|
||
privileges (sudo is included in the build):
|
||
|
||
```
|
||
adduser myuser
|
||
```
|
||
|
||
You have two options to grant sudo:
|
||
|
||
- Add the user to the `sudo` group, which the shipped sudoers file
|
||
already trusts:
|
||
|
||
```
|
||
addgroup myuser sudo
|
||
```
|
||
|
||
- Or, if you prefer the classic `wheel` group, enable it with
|
||
`visudo` (uncomment the `%wheel` line) and add the user to it:
|
||
|
||
```
|
||
visudo
|
||
addgroup myuser wheel
|
||
```
|
||
|
||
**Verify that sudo works for the new user before locking root** —
|
||
log in as the user and run, for example, `sudo ls /`.
|
||
|
||
Once sudo is confirmed working, lock the root account so it cannot
|
||
be accessed (SSH included):
|
||
|
||
```
|
||
passwd -l root
|
||
```
|
||
|
||
## Documentation
|
||
|
||
The full install and test guide — hardware requirements, QEMU
|
||
testing, the install walkthrough and troubleshooting — lives in
|
||
[`board/mentalnet/INSTALL-GUIDE.md`](board/mentalnet/INSTALL-GUIDE.md).
|
||
|
||
## License
|
||
|
||
Mentalnet GNU/Linux — the scripts, configuration, documentation and
|
||
artwork added on top of Buildroot (`board/mentalnet/`, `logos/`,
|
||
`README.md`, `LICENSE`, and the modifications made to Buildroot
|
||
files) — is
|
||
|
||
> Copyright (C) 2026 Mark Robillard Jr (MARKMENTAL)
|
||
>
|
||
> SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
||
This program is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation, either version 3 of the License, or
|
||
(at your option) any later version. See [`LICENSE`](LICENSE).
|
||
|
||
The underlying [Buildroot](https://buildroot.org) tree remains under
|
||
its original license (see [`COPYING`](COPYING), GPL-2.0-or-later);
|
||
we claim no rights over it. This repository is an overlay meant to
|
||
be applied on top of a pristine Buildroot 2025.02.17 tree, not a
|
||
full fork.
|
||
|
||
The OS image produced by the build is an aggregation of many
|
||
components, each of which keeps its own license (the Linux kernel is
|
||
GPL-2.0, BusyBox is GPL-2.0, and so on).
|