Note to all: I'm doing a lot of updates to this VM to get more people interested in it. Here are my planned changes so far
1. A configurable startup script
Previously, if you wanted to run this virtual machine, you needed a computer with the extra resources (namely 6GB+ of memory), and the VM itself didn't really support a lot of features. I've added the following options to the startup script. They will come with the default values I've listed here:
CORES=2 (the number of actual CPU cores, limit 4)
RAM=2048 (amount of RAM the system should have in megabytes)
SSH=5555 (the port that will be tunneled to you for SSH connections)
KERNEL=./kernel (the kernel image to boot to. NOTE: this must be outside of the VM)
RAMDISK=./ramdisk.img (the ramdisk image to load. Again, outside of the VM)
DISK=./hda.qcow2 (the hard drive that holds the VM. You probably won't need to modify this, but it's good if you're making full disk backups)
You can modify these either in the script itself for a permanent result, or at runtime. Here's an example:
Code:
./start.sh # run the VM with default parameters
CORES=4 ./start.sh # run it as quad core
CORES=4 RAM=4096 SSH=22 # run it quad core, 4GB ram, and make it accept connections over default SSH port (allowing you to use a remote machine by just regularly ssh'ing to your pc as normal)
2. Installing X.Org
I'll be installing X11 and fluxbox as a window manager. This is to get the attention of some of our beginner users. In doing this, I'll also be adding two users:
dev - regular development account, password dev
gui - developer account that autostarts a GUI when you log in, password gui
I will also turn on X11 forwarding, and write a script that sets it up and connects for you. This script will be called
./sshgui.sh and it will log in to the
dev account. If you just run the script straight, it will connect to localhost on the default port (5555). To set a different port or a different IP, you will have to specify those as
variables
Code:
HOST=192.168.1.5 PORT=1234 ./sshgui.sh # start the forwarded gui by connecting to 192.168.1.5 on port 1234
I'll also be hand crafting the "start" menu for fluxbox so that it's actually useful to you guys and contains programs you will actually need. To access it, just right click on the "desktop" and it will appear.
3. An IDE(s) for assembly code, and other apps
I found a nice little tool that you might like as well, called
SASM, and I'll be including it in this version as well. This tool only works from an X11 session, so you will either need to be logged in using the gui account, or be using the SSH forwarding to use it. It's basically just a text editor with highlighting for assembly, and allows you to build right from there. Also included will be sublime text, and other various editors and gui helpers. Since I'm including a GUI, I'll also include a web browser (iceweasel) and a file manager (thunar).
4. New kernel!
So, this VM is built on linux 3.15, which is terribly old and in need of an update. Unfortunately there isn't an update, since Debian apparently hates ARM users, so I'm building a custom one. It's been building for 19 hours so far, so I hope to have that built here in the next few hours. This one is based on Linux-4.16 with some modifications to optimize it for our ARM system and give better performance. I won't be including the older kernel with this release, since it's likely that the VM will now be over 1GB as a download. I want to keep this thing within DVD size.
Please let me know if there's anything you want me to include anything. If more people start to use this, I may just put up a repository and add it to the VM's sources list so that I can push updates to you without you having to redownload the whole VM.