Booterizer: I love it, but have some suggestions!

slime-eater

New member
Oct 25, 2020
6
9
3
Oh man - I'm going to be biased and assume the RPi 3 and newer installation, but several of these things could apply to the virtualized version of Booterizer as well.

I love Booterizer for what it is, but I wish for a few things (to which I have already done some of these for my own installations):

* Automatically expand file system after bootup / provide suggestions
Tons of people installing this on larger-than-32GB SD cards. Worth having raspi-config --expand-rootfs run automatically. If that's too complicated, maybe edit the /etc/motd, throw in a cool h4ck3r SGI greetz-logo with suggestions/mini documentation such as:
"Run raspi-config --expand-rootfs"
"Suggested packages to install: iotop, htop, nfs-kernel-server, finger, screen, ncftp, bsdgames, locate"

EDIT: Updated reference on how the auto-expanding of the partition and file system is done: https://gijs-de-jong.nl/posts/raspberry-pi-file-system-resize-on-first-boot/

* IRIX 6.5 Roboinst installation (non-interactive installs)
If we're already creating installation scripts, why not make it client-installer-automated with roboinst? It's been easily two decades since I worked on roboinst unattended wipe-and-install scripting, but it seems like this would be perfect for booterizer setups. Nothing more annoying than tiring out and going to bed before typing quit to requickstart all of those freshly installed packages. What a waste. Roboinst is/was freely licensed for installs and was a chargeable option post-OS-installation, so all of the functionality should be available and ready. No need for a ton of ansible'ized custom configs per MAC address-bound machine, there should be an option to follow a class of machine if I recall correctly. (And wouldn't that be cool to get the right demos or binaries on the right machine!)

EDIT: Updated with a little bit of roboinst miniroot configuration documentation here: https://techpubs.jurassic.nl/manuals/0650/admin/IA_InstLicns/sgi_html/ch09.html

* Add NFSv2 (and NFSv3) support for shared TFTP directory
Since sometimes the installer forgets to include the ONC3/NFS3 installation disc, you might as well enable NFSv2 support in the Booterizer's NFS daemon and export the /irix directory to allow for easy mounting on a partially-installed system to continue onwards. Make installing the ONC3/NFS3 installation files later on easy. (Note that this requires the nfs-kernel-server package and a slight tweak to its startup config to enable version 2)

EDIT: This is how you install the service, enable NFSv2 and also turn on exporting of /vagrant/irix to be mounted by your IRIX client:
EDIT: My reference
https://www.nixcraft.com/t/how-to-enable-nfs-v2-on-ubuntu-18-04lts/
# Install the server, add in NFSv2 support (in case IRIX did not install v3 and now needs access to the dirs)
# then allow NFS 'exporting' the irix dir and restart the whole thing as we're adding the new protocol too

sudo apt install nfs-kernel-server
sed -i 's/RPCNFSDCOUNT=8/RPCNFSDCOUNT="8 -V2"/' /etc/default/nfs-kernel-server
echo "/vagrant/irix *(ro,sync)" >> /etc/exports
sudo systemctl restart nfs-kernel-server.service




* Nekoware / demos installation
Nothing like a proper vintage out of box experience with a modern ssh, bash, ntpdate, wget, and actual nostalgia-laced SGI demos, right? This extra stuff should fit in the original 32GB SD card but easily fits in a 64GB and larger one.

* IPv4 forwarding / NAT wifi gateway
If the assumption is that it's a Raspberry Pi 4 machine or newer, you can assume that it will negotiate a connection without the need of an Ethernet hub (Auto MDI-X in the gigabit standard eliminates the need for Ethernet crossover cables too) and has wifi built-in, so might as well be a mini-wifi gateway to whatever SGI is needing to limp along to or download from some random internet site/repository. Perhaps someone gets a kick from ssh'ing to their favorite home server from vintage systems.

* Include the EFS kernel module
Have the EFS kernel module available for mounting EFS CDROMs (either via USB CD drive or more commonly ISO image)
I wanted to populate a few more files to install from CDROM images only to be greeted with mount: /mnt: unknown filesystem type 'efs'. Here comes the copy shuffle from another full-fat Ubuntu system elsewhere

* Assume that there may be more than one IRIX client machine you're installing onto
The documentation and ansible scripts seem to assume only one single client to install to. I am handy with manually editing dhcpd.conf and other weirdo files for booting, but ideally we'd be able to manage installation of multiple hosts.

I love Booterizer. I totally do, I just am sharing at least a few of my existing mods and hopes for a future booterizer iteration. Within the last month I used it to clean up and install IRIX 6.5 on a variety of machines I need to re-home (O2 R5K, O2 R10k, Octane R12k, Indy R5k, Indy R4.4k) and love that it mostly just works. Thank you so much for its existence!
 
Last edited:

Elf

Storybook / Retired, ex-staff
Feb 4, 2019
792
252
63
Mountain West (US)
Good feedback for @Unxmaal ; I also think there is a lot of potential for extra functionality improvements past the installation phase for the RPi image, but we'll see if anyone contributes some pull requests :)

Regarding Nekoware installation, a lot of that has been taken over by our SGUG-RSE project, which provides some more up to date equivalents of at least the tools listed.
 

massiverobot

irix detailer
Feb 8, 2019
121
108
43
Philly
twitter.com
These are interesting suggestions, however I will comment on the last "Assume that there may be more..." - this is Ansible. It will work on as many machines as you like. There is no limitation, it's just the base Booter assumes one. Just add more hosts. Installing on multiple SGI at once would make a good Halloween nightmare story for the kids....


Many of these are not necessary when you use booterizer with a Macintosh host. I realize not everyone has a Mac to do this, but I want to point that out.

Finally, I think I know what Unxmaal might say "These are awesome suggestions, please fork, implement them and make your own new awesome image...."
 

slime-eater

New member
Oct 25, 2020
6
9
3
Ansible is great for scripted application automation and maintenance, post-install (or if you really want to, configuration generation, but that's not really the domain I'm talking about).

I'm talking about automated installs, which is similar but a different domain. Roboinst is the 'truly automated IRIX install' architecture but no one in the hobbyist scene seems to bother.

I'll see if I can figure out contribs for the diff and contribute back upstream..!
 
  • Like
Reactions: jupo and Elf

Unxmaal

Administrator
Feb 8, 2019
98
60
18
@slime-eater I did a lot of research on RoboInst early on, and could never figure out how to make it work properly. I gave up on it and switched to Ansible, since there's actually docs for that.

Please send me PRs for anything you come up with and I'll happily merge them.

Thanks!
 
  • Like
Reactions: slime-eater

slime-eater

New member
Oct 25, 2020
6
9
3
Ooh - got another suggestion that's fairly minor but might be worth considering - especially for those using the image to feed another existing Linux/FreeBSD box:

* Change top-level IRIX symlink to be relative rather than absolute. (AKA cd /mnt/booterizer-rootpartition ; unlink irix ; ln -s vagrant/irix . )
It's easy and side-effect free to booterizer to make the symlink be relative to the root rather than absolute and when mounting the drive (or just the root partition) on other systems and might actually prove useful if someone is adapting the booterizer image to another OS, etc. (i.e. if that system partition gets mounted as something like /mnt/booterizer-part2, the top level symlink in that partition works when currently the symlink has an absolute path which wouldn't work on a system that's mounting the image)

* ALTERNATE SUGGESTION - Make /vagrant/irix the symlink and the main directory be /irix so it's easy to remember when using NFS as well?

Not sure if that breaks things. I guess I'd have to investigate further.


Not having a breakable non-relative symlink may also be easier to make minor tweaks/updates to your image for your builds, so possibly useful for development too.

And finally - it seems as though the Raspberry Pi devices (going all the way back it seems) with built-in Ethernet are Auto-MDIX, so no hub or crossover needed if using the built-in Ethernet jack. Could be really handy to use a little booterizer RPi linked to whatever SGI you want to boot from/get imaged from and use as a wifi gateway should the RPi be new-enough...! Neat stuff.

Maybe these are dumb suggestions but I can say I am a fan of booterizer and have imaged an O2:o2:, an Octane:octane:, and a couple of Indys:indy: with it! :love:
 
Last edited:
  • Like
Reactions: TruHobbyist and Elf

About us

  • Silicon Graphics User Group (SGUG) is a community for users, developers, and admirers of Silicon Graphics (SGI) products. We aim to be a friendly hobbyist community for discussing all aspects of SGIs, including use, software development, the IRIX Operating System, and troubleshooting, as well as facilitating hardware exchange.

User Menu