hoshiruri: (ruri - slackware-tan)
2023-08-05 03:02 am
Entry tags:

Linux Deploy - Debian to desktop

This was tested on a Galaxy Tab S3 9.7", but it should go for most other Android devices. Regardless, this is my workflow to turn a good ol' tablet lying around into a Linux-based tablet PC.

If you have an older device, see
my Droid Pro chroot tutorial for an example, but you may need to adapt the steps to your specific needs. If you have a non-rooted device, use Termux and install a distro via proot-distro, but it won't be as performant as chroot.

Prerequisites:
- A rooted device with Android 5.0+
- A terminal, whether it be local, ADB, or Termux
- VNC viewing software, such as MultiVNC or bVNC Free
- (optional) BusyBox (if you're using a stock ROM; in my testing with LineageOS 14.1 and 18.1 this wasn't necessary)
- (optional) A hacker-friendly keyboard, like Hacker's Keyboard or Unexpected Keyboard

1. Install Linux Deploy. You have the choice of using meefik's original or lateautumn233's fork. I've seen a bug in both of them:
- meefik's Linux Deploy has an issue where "stable" (Debian 12)'s installation stops halfway due to a usrmerge error. To work around this, install an older version first (in this case, "oldstable") and then upgrade. This might not work once Debian 12 takes oldstable's place in the near future.
- lateautumn233's Linux Deploy has an issue where the screen is spammed with "Retrieving InRelease". Installation was flawless on my Galaxy Tab S3 but faced this bug on my Kindle HDX.
 
2. Press the icon with the sliders/switches. It may be top-right or bottom-right depending on your display. Go to Debian, set the architecture to your mobile device's (armhf if 32-bit, arm64 if 64-bit), and set the distribution suite to whatever you want; I choose "stable". I personally keep all of the extra stuff (i.e. init, VNC) off since we can do that ourselves, but feel free to enable them (which may make some of these steps unnecessary).

3. Set the installation type and path to whatever you want. It installs to external storage by default, but you can use `/sdcard/linux.img` for internal storage on most devices I've tested. If you choose the installation type to be a whole partition, be careful not to format your internal storage. While you're here, set your username and user password; it'll create a user account for you. Also, when given the ability to choose your filesystem, I make sure to pick ext2, a journal-less filesystem, to minimize read/write cycles on the flash storage.

4. Go to the three dots; in the dropdown menu, select "Install" to start installation.

5. After it's done installing, you can enter the environment. I personally enter the environment via Termux, ADB, or local terminal since I haven't found any other way, by running this command as root:
        "/data/data/ru.meefik.linuxdeploy/files/bin/linuxdeploy shell"

6. (if you chose oldstable) Upgrade Debian if you haven't already.
- run "apt update && apt upgrade && apt full-upgrade"

- Open "/etc/apt/sources.list" with a text editor (i.e. nano) and change these lines:
        deb http://ftp.debian.org/debian/ oldstable main contrib non-free
        deb-src http://ftp.debian.org/debian/ oldstable main contrib non-free
to these, making sure to replace "oldstable" with "stable" and add "non-free-firmware" to the end of both lines:
        deb http://ftp.debian.org/debian/ stable main contrib non-free non-free-firmware
        deb-src http://ftp.debian.org/debian/ stable main contrib non-free non-free-firmware

- run "apt clean && apt update && apt upgrade && apt full-upgrade" to perform your upgrade. You can, optionally, "apt autoremove" afterwards to clean up any unused packages, if there are any.

Now here comes the fun part.

7. Install the graphical environment. Any should be fine, but I personally choose XFCE:
        apt install xfce4 xfce4-goodies tigervnc-standalone-server dbus-x11

8. Log into your user account via "su - <username>". The username you use is the same one you've put in Linux Deploy earlier. (You can also take this opportunity to add a password to your root account via the "passwd" command, and change the shell to proper "/bin/bash" using chsh...)


9. Start a VNC session, like so:
        vncserver :0 -localhost -geometry 2048x1536
Feel free to replace "2048x1536" with your mobile device's resolution, or any resolution you want to stick to. It might ask you for a password; give it one and use it in the next step.

10. Connect to the VNC session through a VNC client you've downloaded earlier. The IP should be localhost, the port should be 5900, and the password should be whatever you set it to earlier.

11. That should be it. I'll consider extending this tutorial with instructions on how to set up PulseAudio.
hoshiruri: (ruri - slackware-tan)
2023-06-09 07:02 pm

Installing a Debian 8 chroot on early Android

(Requires root.)

This was tested with the 2010 Motorola Droid Pro flashed with CyanogenMod 7. This may apply to modern phones, but I highly recommend an easier solution like Termux (non-root) or Linux Deploy (root).

- On the PC -
 
1. Create the chroot filesystem; an alternative would be to mount your microSD card and format it as ext3. I chose 3GB as a size because my microSD card is 4GB.
`truncate --size=3G jessie.img`
`mkfs.ext3 jessie.img`
Mount the filesystem to an empty directory.
`sudo mount jessie.img <mountpoint>`
 
2. Create a minimal root filesystem for the chroot. Make sure you have "debootstrap" installed on your Linux system for this step. Jessie was chosen because it is the last supported version for my Droid Pro's CyanogenMod 7 kernel.
`sudo debootstrap --arch=armel --variant=minbase --foreign jessie <mountpoint> http://archive.debian.org/debian/`
If that doesn't work due to certificate errors, append "--no-check-gpg" to the command:
`sudo debootstrap --no-check-gpg --arch=armel --variant=minbase --foreign jessie <mountpoint> http://archive.debian.org/debian/`
After creating the root filesystem, you are free to unmount the image:
`sudo umount <mountpoint>`
Note: Jessie is the last version that supports this ROM's kernel (Linux 2.6.32.9), and armhf would give a "Segmentation fault" error. Feel free to experiment with earlier versions.
 
3. Push the image to the phone.
`adb push jessie.img /mnt/sdcard` (push the image to the phone's microSD card; this might take a while depending on its size)
 
- On the phone, via adb or terminal -
 
4. Create a directory to mount the image:
```
cd /mnt/sdcard
mkdir mount
```
 
Mount it, bind, then chroot.
```
mount -o loop -t ext3 jessie.img mount
mount -o bind /dev/ /mnt/sdcard/mount/dev
mount -o bind /dev/pts /mnt/sdcard/mount/dev/pts
mount -o bind /proc /mnt/sdcard/mount/proc
mount -o bind /sys /mnt/sdcard/mount/sys
cd mount
chroot . /bin/bash
```
 
5. Now that you're in the chroot (if all things went well), you'll need to do these three steps each time you enter the chroot. If you don't want to do them every time, you can add them to the root ~/.bashrc:
```
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH
export HOME=/root
export TERM=linux
```
 
Complete the debootstrap:
`debootstrap/debootstrap --second-stage`
 
and finally set your time zone (so it's displayed correctly):
`cp /usr/share/zoneinfo/<your_timezone> /etc/localtime`
 
The system should now be a completely functional base Debian system.
 
6. Post-installation steps that led me to the image:
```
apt update
apt install sudo nano xorg icewm tightvncserver
adduser yuki # create a new user
usermod -aG sudo yuki # add sudo privileges for the new user
 
addgroup --gid 3003 sockets # create a sockets group...
usermod -G sockets -a yuki # ...to add internet support for the user. Needed for VNC
```
You can replace icewm with whatever window manager or desktop environment you want if it's included in the repository. I choose IceWM because it's fast and customizable.
 
7. Start a VNC server:
```
su - yuki
vncserver :0 -geometry 480x320 -nevershared
```
and then connect to it (via "localhost:5900" or "127.0.0.1:5900") using a VNC client. The only ones I've found compatible for Android 2.3 are AndroidVNC  and RealVNC Viewer 1.2.12.
 
To close the server, you can use `vncserver -kill :0`.
 
To configure the server, you can edit ~/.vnc/xstartup.
 
The rest of these are beyond the scope of this guide, but I include them anyway:
 
8. Configuring IceWM:
```
mkdir -p ~/.icewm
cp /usr/share/icewm/* ~/.icewm
nano ~/.icewm/preferences
```
 
My go-to IceWM settings are:
```
DesktopBackgroundImage="/home/yuki/Pictures/Backgrounds/<insert_wallpaper_here>"
DesktopBackgroundScaled=1
TaskBarAtTop=1
```

hoshiruri: (ruri - slackware-tan)
2023-06-05 08:47 am
Entry tags:

Minecraft on everything and the kitchen sink

It's Ruri again. Thought I'd make a blog post about this to share the block-building fun with the rest of you guys. I've been inspired by Michael MJD's video on running Minecraft on 2000s Macs and decided to give this thing a go.

These are split into two categories: client reimplementations (being compatible with worlds and/or servers from the original game), and similar games that are developed from the ground up.


IMPLEMENTATIONS
ClassiCube (c0.30) - Windows 95+, macOS 10.5+, Linux, Android 2.3+, "FreeBSD, NetBSD, OpenBSD, Solaris, Haiku, IRIX, 3DS (unfinished), [and] PSP (unfinished)"
CrossCraft Classic (c0.30) - Windows, Mac, Linux, Sony PSP and PS Vita (with a Nintendo 3DS port recently released)
CavEX Wii (Beta 1.7.3) - Nintendo Wii


STANDALONE (PC)
- Minetest - Windows 8+, macOS 10.14+, Linux, Android 4.0+
- Craft - Windows, Mac OS X and Linux
- Terasology - Windows, macOS, Linux


STANDALONE (CONSOLES)
- Fromage - Sony PlayStation
- Crafti - Ti-Nspire and Dreamcast, with ports to the Nintendo 64, Sony PlayStation 2, and Microsoft XBOX
- GBAcraft - Game Boy Advance
- CubeCraft - Nintendo GameCube & Wii
- DScraft - Nintendo DS
- WoxelCraft - Nintendo Wii
- 3DScraft - Nintendo 3DS
- Lamecraft - Sony PSP
- Minecraft PSP by Woolio (a fork of Lamecraft for the PSP)
- Minecraft PSP by IridescentRose1337 (an ambitious fork of the aforementioned?)
hoshiruri: (ruri - slackware-tan)
2023-06-04 12:25 pm

A long overdue introduction to the blog

Hello there. You can just call me Ruri. This is a serious and intentionally-readable blog for the little pieces of 10+ year old technology and 20+ year old software that I like to use and upkeep.

At the time of writing, I focus solely on guides for older versions of MS-DOS, Windows, Android, and Linux because if you're looking to keep an old device around for whatever reason, chances are they aren't good enough to run many modern applications. But you'd be surprised at how much you could get out of these. And that's ignoring the obvious like using Termux to run Linux programs or full Linux desktops on an unrooted Android phone.

The first thing you may ask me is, "Ruri, what are your motivations for writing this blog?" Well, aside from my stockpile of low-end tech and my interest of ahem running Linux on a Wii as early as 2015, I've seen several examples of people giving their computers new life as productivity suites instead of retro gaming machines or single-use toys. This can be as simple as installing Linux on 10+ year old hardware to -- what this blog post tackles -- installing older operating systems or abandonware that flies on your dinosaur of a 20+ year old PC or 10+ year old phone.

Because sometimes,
even so-called lightweight distros aren't enough,
unless you put in a hell of an effort,
or venture into uncharted territory.

Other inspirations include:

- Action Retro, who is responsible for FrogFind, 68k.news, and many other neat videos

- MichaelMJD, who frequently makes videos of similar nature

- The Cheapskate's Guide to Computers and the Internet

- These artists are making tiny ROMs that will probably outlive us all | The Verge

Game of Thrones author George RR Martin: 'Why I still use DOS' | BBC News

- I still use WordPerfect 6.2 for DOS | Hacker News

- I still use Windows 95 (2008) | Hacker News

- Why this Linux user is now using Windows 3.1 | Network World

- "Try dosbox on a raspberry pi. Win 3.11 flies (office and all)" | Hacker News

- New OS For Commodore 64 Adds Modern Features | Hackaday

I doubt I'll find my audience, but I hope to save some people a headache or two, or at least inspire you to avoid tossing out your computer.

hoshiruri: (ruri - slackware-tan)
2023-05-31 09:08 pm

Legacy MS-DOS/Windows program guide

(This guide is still under construction.)

Formatted in the same way as my legacy Android guide, but we're going by architecture (for OSes) and operating system (for programs).

I'll start with a subjective list of websites that could be incredibly useful:
- WinWorldPC (for abandoned commercial operating systems and applications)
- TheOldNet (for browsing the old internet on old machines)
- FrogFind (a proxy for browsing the new internet on old machines)
- 68k.news (similar to FrogFind but dedicated to news articles)
- Wiby (a search engine dedicated to old and light websites)
- Marginalia (another search engine dedicated to light, text-heavy websites)

Also, there exist great resources for finding MS-DOS software, whether it abandonware, freeware, or open-source:
- Internet Archive's MS-DOS Software Library
- Interesting DOS programs (dosprograms.info.tt)
Free Software for DOS (bttr-software.de)
- FreeDOS-repo (clasqm.github.io)
- FreeDOS Update Repositories (ibiblio.org)

* * *

GRAPHICAL USER INTERFACES
- GEM for 8088+
- GEOS for 8088+
- OpenGEM for 8088+
- PC/GEOS for 8088+
Windows 1.04 for 8088+; requires 320KB of RAM and 720KB of disk space
Windows 2.03 for 8088+; requires 512KB of RAM and 720KB of disk space
Windows 3.0 for 8088+; requires 640KB of RAM and 10MB of disk space (not recommended on 8088; here's a video on why)
Windows 3.1 for 286+; requires 2MB of RAM and 20MB of disk space
Windows 3.11 for Workgroups for 386+; likely similar requirements to Windows 3.1

STANDALONE OPERATING SYSTEMS
Windows
- Windows NT 3.1 for 386+; 12MB of RAM and 75MB of disk space
Windows NT 3.51 for 386+; 16MB of RAM and 90MB of disk space
- Windows 95 for 386+; 4MB of RAM and 50-55MB of disk space
- Windows 98 Second Edition for 486DX+; requires 24MB of RAM and 225MB (FAT16) or 175MB (FAT32) of disk space
- Windows ME for Pentium+; requires 32MB of RAM and 320MB of disk space
- Windows 2000 for Pentium+; requires 32MB of RAM and 1 GB of disk space
- Windows XP for Pentium+; requires 64MB of RAM and 1.5GB of disk space

(Tip: if you're low on RAM or want to squeeze more performance from 98+ onward, try looking into 98Lite and similar projects.)

Linux
- Debian 3.0 (Woody) for 386+; requires 12MB of RAM and 110MB of disk space
- Debian 6.0 (Squeeze) for 486+ (dropped later); requires 56MB of RAM and 650MB of disk space. More info here
- Debian 7.0 (Wheezy) for 486+ (dropped later); requires 80MB of RAM and 580MB of disk space. More info here
- Debian 8.0 (Jessie) for Pentium+; requires 80MB of RAM and 680MB of disk space. More info here
- Slackware 4.0 (1999); requires 8MB of RAM and 40MB (base system). Installation guide here

(More available here.)

DOS
- MS-DOS 1.25 for 8088+; requires 32KB of RAM and 160KB of disk space
- MS-DOS 3.30 for 8088+
- MS-DOS 6.22 for 8088+; requires 512KB of RAM and 5MB of disk space
- FreeDOS for 8088+; requires 640KB of RAM and 40MB of disk space
- SvarDOS for 8088+; likely similar requirements to FreeDOS
 
WEB BROWSERS
Internet Explorer
- IE5 (Windows 3.1)
- IE5.5 (Windows 95)
- IE6 (Windows 98, ME, 2000)
- IE8 (Windows XP)
 
Opera
- 3.62 (Windows 3.1)

Mozilla Firefox
- 2.0.0.20 (Windows 98 w/ KernelEx)
hoshiruri: (ruri - slackware-tan)
2023-05-31 08:36 pm
Entry tags:

Legacy Android guide: Latest version of apps supported for your firmware

These were discovered by searching APK reupload sites (APKMirror, APKPure, Mobilism), Reddit threads, the F-Droid Archive Repository, and wikis.

WARNING: Using old software on the internet opens you up to unpatched security exploits, so I don't recommend using them with internet connectivity and all that stuff (though web-based applications are mentioned anyway if you want to take that risk). I'll also link to free software, but for paid software you're on your own.

* * *

APP STORES
F-Droid
- 0.100.1 for Android 2.2+ (June 22nd, 2016)
- 1.2.2 for Android 2.3+ (April 24th, 2018)
- 1.12.1 for Android 4.0+ (April 16th, 2021)
- 1.15.6 for Android 5.1+ (January 14th, 2023)
- Current for Android 6.0+

WEB BROWSERS
Mozilla Firefox
- 10.0.5 for Android 2.0+ (Feb 11th, 2015)
- 31.0 for Android 2.2+ (Feb 12th, 2015)
- 47.0 for Android 2.3+ (June 6th, 2016)
- 55.0.2 for Android 4.0.3+ (Aug 16th, 2017)
- 68.11.0 for Android 4.1+ (Jul 22nd, 2020)
- Current for Android 5.0+

Fennec F-Droid
- v45.0.2 for Android 2.3+ (Apr 12th, 2016)
- v68.12.0 for Android 4.1+ (Aug 29th, 2020)
- Current for Android 5.0+

Kiwix (browser for offline copies of Wikipedia and other informational sites)
- 2.4 (Android 4.0+)
- 3.2.1 (Android 4.0.3+)
- 3.3.4 (Android 4.2+)
- Current (Android 5.0+)

GAMES
Minecraft: Pocket Edition
- 0.5.0 for Android 2.1+ (Nov 15th, 2012)
- 0.8.1 for Android 2.3+ (Dec 12th, 2013)
- 0.12.1 for Android 3.0+ (Sep 9th, 2015)
Though according to the wiki, 0.14.3 was the last version to support Android 2.3. Many out-of-date releases of Minecraft: Pocket Edition can be found on the Internet Archive -- see here, but download at your own risk.

Minetest (open-source alternative to Minecraft)
- 0.4.16.17 for Android 2.3+ (Oct 26th, 2017)
- 5.6.1 for Android 4.1+ (Sep 23rd, 2022)
- Current for Android 5.0+

ClassiCube (open-source alternative to Minecraft Classic)
- Current for Android 2.3+ though may have graphical bugs depending on the phone

EMULATORS
EX Emulators (NES, SNES, MD, GBC, GBA, C64, etc)
- Current for Android 2.3+

Magical DosBox (MS-DOS)
- 1.0.57 Lite for Android 2.2+ (Sep 10th, 2017)
- 1.0.59 for Android 2.2+ (Nov 19th, 2017)
- Current for Android 4.0+

fpSE (PlayStation)
- 11.212 build 857 for Android 2.1+ (Mar 12th, 2021)
- 11.229 build 926 for Android 4.0+ (Dec 26th, 2022)
- Current for Android 6.0+

PSX4droid (PlayStation)
- 3.0.5
- 3.0.7 (Current) for Android 1.6+ (Jan 7th, 2012)

DuckStation (PlayStation)
- 0.1-2202 for Android 5.0+ (Nov 4th, 2020)
- Current for Android 6.0+

Mupen64Plus AE (Nintendo 64)
It's hard to scoop up information on this one.
- 2.3.2 for Android 1.6+ (Jul 20th, 2013)
- 2.4.4 for Android 2.0+ (Jan 24th, 2014) - There's likely to be a newer version that supports 2.0+, but this is the newest I could find that did.
- 3.0.87 for Android 4.4+ (Dec 18th, 2018)
- 3.0.246 (Current?) for Android 5.0+ (Nov 28th, 2020)

Reicast (Dreamcast)
- r6 for Android 2.2+ (Aug 7th, 2018)

DraStic (Nintendo DS)
- r2.5.0.4a build 92 for Android 2.3+ (Aug 23rd, 2017)
- Current for Android 4.0+

PPSSPP (PlayStation Portable)
- Current for Android 2.3+

MEDIA PLAYERS
VLC Media Player
- 2.0.6 for Android 2.2+ (Feb 12th, 2017)
- 3.0.13 for Android 2.3+ (Jul 26th, 2018)
- Current for Android 4.2+

TOOLS
Text editors
- Text Edit (Android 2.1+) (Feb 6th, 2012)
- Notepad (Android 1.5+) (Sep 7th, 2012)
- Tomdroid (Android 1.6+) (Jan 16th, 2014)
- Turbo Editor (Android 3.0+) (Mar 29th, 2015)
Anki (flashcard software)
- 2.8.4 (Android 2.3+) (Jun 24th, 2018)
- 2.10.4 (Android 4.0.3+) (May 31st, 2020)
- 2.14.6 (Android 4.1+) (Mar 10th, 2021)
- 2.16.5 (Android 5.0+) (September 6th, 2023)
- Current (Android 6.0+) as of May 2024

E-BOOK READERS
Cool Reader
- Current (Android 1.6+)
KOReader
- Current (Android 4.0+)
Librera Reader
- Current (Android 4.0+)

DEVELOPMENT / ENGINES
LOVE
- 0.10.2 (Android 2.3+)

TIC-80
- 0.60.3 (Android 2.3+)
- 0.70.7 (Android 4.0+)
- Current (Android 4.1+?)

LINUX ENVIRONMENTS
Termux
- Current (Android 5.0+)
- Current (Android 7.0+)

Debian noroot
- 15.10.21 (Android 2.3.2+)
- Current (Android 4.1+)

MISCELLANEOUS (not tested, do at your own risk)
Discord
- 9.8.8-hotfix (Android 4.1+) (Nov 19th, 2019)
- 161.10 (Android 5.0+) (Jan 18th, 2023)
- Current (Android 6.0+)
hoshiruri: (ruri - slackware-tan)
2023-05-31 08:04 pm
Entry tags:

Windows 3.0/3.1 guide: Setting your own wallpaper

 
If, for whatever reason, you want or have to use Windows 3.0/3.1 in this day and age, and want to add some extra flavor to your desktop, look no further than desktop wallpapers. Please keep in mind that Windows 3.0 and 3.1 made their debut in 1990 and 1992, so they don't support modern JPG or PNG files, which made their debut in 1992 and 1996 respectively.

This was tested with DOSBOX-X. You may need to install specific drivers for your environment.

0. (Optional step, tested on Windows 3.1) Video drivers. The wallpapers shine their brightest when it's displayed with as many colors as possible. Here's a guide to change the resolution and colors for DOSBOX. In my testing, I got "Please insert the S3 Flat Model Driver disk" as an error, though the video drivers installing just fine after cancelling the installation and worked when I tried it a second time.

1. Pick out a wallpaper and convert it. Windows 3.0 and 3.1 seem to only support Windows BMP v3 files. Using ImageMagick and aiming for a resolution of 1024x768, this command worked:
    convert <inputfile> -resize x768 BMP3:<outputfile>.bmp
(For more information, check here.)

2. After which, transfer the wallpaper directly to the "WINDOWS" directory. This is where Windows will find the wallpaper. Make sure to respect DOS's 8.3 filename limit.

3. To access your wallpapers, go to:
    Program Manager -> Main -> Desktop
Wallpaper will be its own category.