I’d hoped to have the completed image being shared with onionshare right now, but an unfortunate system failure has that taking a longer slower path.
For now, I’ll just be posting this “How To Doc” and my present build script. Many of the early steps are not scripted as you must do them long hand, reboot, rinse and repeat.
As Devuan has gone to “community builds” for “embedded” or ARM based devices, the Devuan 2.0 ASCII build is the last with “copy and go” images. That means the easiest way to get a Devuan 3.0 Beowulf build is to install ASCII and do a “dist-upgrade”. I do this in several steps and it is highly likely you could skip some of them and apt-get would still do the right thing. I know this path worked, and it might prevent some issues from things being at a release level 2 steps back and not able to jump 2 steps in one update. Or maybe I’m just being too cautious.
You get the ASCII image from here:
I used this one:
devuan_ascii_2.0.0_arm64_raspi3.img.xz 06-Jun-2018 11:28 153M
Uncompress it with unxz and copy it to a uSD card whichever way you like. I use:
dd bs=10M of=/dev/YOURuSD if=devuan_ascii_2.0.0_arm64_raspi3.img
Where YOURuSD gets replaced by the actual device name of your uSD card in adapter. It might be /dev/sda or /dev/sdb or ‘whatever’ on your box. Make sre you get this right as whatever is at the location you pick will be clobbered. PC Folks are frequently encouraged to use “etcher’ but I know nothing abou it.
For me, it too 12 minutes to copy the base install onto a uSD card.
This only uses a couple of GB at the front of the uSD card and it does not auto-grow to use the whole thing. I use “gparted” on another Linux box as it is THE easiest way to grow the file system. Just click on the partition, choose ‘grow / resize’ and set it to 7 GB for an 8 GB card (7168 is the magic number for a round 7 GB partition). This leaves a few hundred MB unused and I tell gparted to make a linux-swap partition on that. Also label the partitions with nice names like Pi_linux and Pi_swap. You will use most of that 7 GB to do this full install.
Boot up the minimal system to the command prompt. Do not install anything more at this point as it is all just going to be updated and replaced anyway. I do an immediate update / upgrade (you will see me doing this often) to assure it is all the newest ASCII code in the vault. Some folks like decorating everything with a “sudo” in front of each command. I just “sudo bash” and then I’m root for the duration. OTOH, I’ve run live as root for 40 years and know how to be careful…
(Note that “rm -rf /junk” removes junk. but “rm -rf / junk” removes all your system then tries to remove ./junk if it is still able to run. Beware of mistaken spaces in path names…)
at various times in the updates you will be asked to keep the old version of some file or accept the package maintainers version. As all this is new install stuff, always take the new package maintainers version.
#apt-get update #apt-get upgrade
For me, this updated 85 pkgs and used 50 MB of space in about 12 minutes.
I typically do a reboot after any “upgrade” as some things have triggers set that replace the working code during the shutdown / reboot cycle.
At that point you prepare for the dist-upgrade. This involves making changes to /etc/apt/sources.list file. First make a copy of the one that is there with “cp sources.list sources.list.ascii”. Then edit sources.list and change all the “ascii” to “beowulf”. That’s it. Save and exit. At this point you could likely jump right to the dist-upgrade, but I do it in two steps. A regular upgrade replaces some stuff with Beowulf stuff, then the dist upgrade. So:
#apt-get update #apt-get upgrade
A long time passes… for me it was 3GB of stuff and 8 minutes. When it asks you about allowing restart of services, choose yes. Then: I typically do a reboot at this point.
#apt-get update #apt-get dist-upgrade
After that you can remove some 92 MB of dead packages with”
For me, this dist-upgrade took 20 minutes.
Another long time passes. Yes, the update in this step likely isn’t needed either, but I find it comforting when it tells me it’s all done already.
After the dist-upgrade is done, I’ll do another reboot. Then, just to make sure that nothing was being held back until after the Beowulf upgrade code was running, I’ll once again to that trio:
#apt-get update #apt-get upgrade
You now have a pristine minimal Beowulf. As this represents a fair amount of work, I’ll usually snag a backup copy just before that last reboot…
Next I run my “install lots of stuff” script. This script took 91 minutes to run. Be prepared with coffee or other entertainment… This isn’t as well organized as I’d like, but this is what worked. I’ve chosen to name this spin “OpenRoad”:
root@OdroidN2:/Shared/ext/BuildDocs# cat Build_PiM3_i2p echo " " echo "copy the downloaded Devuan arm64 PiM3 ASCII image, from: " echo "https://files.devuan.org/devuan_ascii/embedded/devuan_ascii_2.0.0_arm64_raspi3.img.xz " echo " or other images if needed at:" echo "https://files.devuan.org/devuan_ascii/embedded/" echo "then uncompress it with" echo "unxz FOO" echo " " echo " Once uncompressed, copy it to an SD card assumed mounted at /dev/sdd" echo " " echo "With a command like:" echo "dd bs=10M of=/dev/sdd if=/path/to/unpacked/image conv=fsync" echo " " echo "This will take about 13 minutes using USB 3.0" echo " " # # In general, I'm encapsulating what all I did in these two postings as a script: # # https://chiefio.wordpress.com/2015/07/18/raspberry-pi-m2-unboxing-and-setup/ # # https://chiefio.wordpress.com/2015/07/22/raspberry-pi-software-setup/ # # and updateing it for the Devuan arm64 with i2p services # If you didn't already change the password while running NOOBS, # When done, log in as 'pi' password 'toor'. Change the password. # passwd # and respond with the new one when prompted. echo "Also, to change the name of your machine, edit /etc/hostname and make it" echo "what you like. " echo "Here, I'm going to just set mine by brute force write to the file." echo " " echo "echo 'OpenRoad' > /etc/hostname " echo " " echo "OpenRoad"> /etc/hostname echo " " echo "Next, do the 'usual' update upgrade that brings you up to the present" echo "repository status (need a network connection from here on out)" echo " " echo "You can either put 'sudo' in front of each of these commands, or just " echo "'become root' which is what I usually do." echo " " echo "sudo bash" echo " " echo "then run this script with ./BuildIt (assuming you didn't change the name" echo "and that you are 'in' the directory where it is located.)" echo " " echo "apt-get update" echo "apt-get upgrade" echo " " apt-get update apt-get upgrade echo " " echo "Start doing useful operational 'packages'. " echo " " # This gets the useful tools like "nslookup" for looking at Domain Names echo " " echo apt-get install dnsutils echo " " apt-get install dnsutils echo " " echo " Then things for tech tools work" echo " " echo " " echo apt-get install binutils echo " " apt-get install binutils echo " " echo "Scrot is a tool for taking screen shots by saying 'scrot' in a terminal" echo " " echo " " echo apt-get install scrot and htop echo " " apt-get install scrot htop # Normally I would install "build-essential" to get things like C compiler # and some language tools, but they were already installed on the R.PiM2. #Doing it on the Devuan arm64 apt-get install build-essential echo " " echo "Some 'user land' useful things like browser options and Office / Mail tools." echo " " echo "Chromium is the 'chrome' browser from Google but in Linux land" echo " " echo " " echo apt-get install chromium echo " " apt-get install chromium echo " " echo "GIMP is the photo editor ( 'photoshop Free'...) " echo " " echo " " echo apt-get install gimp echo " " apt-get install gimp echo " " echo "Adding the 'transmission' bit torrent server" echo " " echo " " echo apt-get install transmission echo " " apt-get install transmission echo " " echo "To get NTFS disks (like USB or an NTSB formatted SD card in adapter) to " echo "work 'read write' instead of just 'read only', you need ntfs-3g" echo "I think it is now built in by default so this is likely moot" echo " " echo " " echo apt-get install ntfs-3g echo " " apt-get install ntfs-3g echo " " echo "Want an NFS (Network File System) server so you can share disks with" echo "your internal network? This will install the code, then you get to" echo "configure things like /etc/exports" echo " " echo " " echo apt-get install nfs-kernel-server echo " " apt-get install nfs-kernel-server # prior to first use. Or reboot. # In your /etc/exports file, put something like: # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # # /YourFileSystem *(rw,sync,fsid=0,no_root_squash) # But without the # in front of YourFileSystem... and with your file system... # Remember to do a echo " " echo "Restarting the appropriate services so NFS will work" echo " " echo " " echo service rpcbind restart echo service nfs-kernel-server restart echo " " service rpcbind restart service nfs-kernel-server restart # As I want this to be a DNS server, DHCP server, and PXE server (uses a # tftp or "Trivial File Transfer Protocol" server, all of those can come in # one package with dnsmasq. # NOTE THAT I'VE LEFT dnsmasq OUT but left the instruction here if you want it. # Similarly the Apache web server and related echo " " echo "Installing a light weight but effective DNS, DHCP and TFTP service" echo " " echo "Skipping for now " echo apt-get install dnsmasq echo " " #apt-get install dnsmasq echo " " echo "Yes, it takes configuring. See the file at" echo " /etc/dnsmasq.conf" echo " " # Then I installed the Apache web server : # http://www.raspipress.com/2012/09/tutorial-install-apache-php-and-mysql-on-raspberry-pi/ echo " " echo "Instlling the Apache Web Servier and related stuff" echo " " echo " " echo apt-get install apache2 apache2-utils apache2-doc echo " " #apt-get install apache2 apache2-utils apache2-doc # and yes, it takes some configuring and even web page building. # See files in places like /etc/apache2/sites-available and more. echo " " echo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache echo " " #apt-get install libapache2-mod-php5 php5 php-pear php5-xcache echo " " echo apt-get install php5-mysql echo " " #apt-get install php5-mysql echo " " echo apt-get install mysql-server mysql-client echo " " #apt-get install mysql-server mysql-client # These needed to be added for Transmission and for file systems # I don't install the Macinthosh file systems on this build apt-get install transmission-daemon apt-get install btrfs-tools xfsprogs gparted f2fs-tools unionfs-fuse #apt-get install hfsplus hfsutils apt-get install squashfs-tools aufs-tools # Then the biggie, the destop task echo " " echo "Installing the LXDE desktop and applications" echo " " df echo " " apt-get install task-lxde-desktop echo"The install special anonymizing and privacy products. Tor and i2p" echo " " echo "apt-get install tor onionshare " echo " " apt-get install tor onionshare echo " " echo "apt-get install i2p " echo " " apt-get install i2p # echo " " echo "And that's the end of my present install build process." echo " " # # There are several files to edit and configure to make it your own.
At that point, shut down and take another backup copy.
I also made changes to dump the “cinnabar” ox-blood red screen backgrounds. There’s a rats nest of links going all over the place as it looks like several folks just added another layer when they wanted to change something, so it’s a bit of a trail of tears to work it out. The Pi version uses SLIM where the one on my PC used lightdm and they use different files in different places, except when someone made links from one to the other…
I used my photo of Arizona snow (from that posting) as backdrop / desktop. I copied into /usr/share/images and then you can use right click on the desktop to point at it instead. For slim, I did a brute force swap in /usr/share/slim/themes/cinnabar-slim/ rather than make an Arizona-slim (that I’ll do at some future time when chasing links isn’t getting me lost…). ArizonaSnow.png copied into background.png. Then you must swap out panel.png and slim.themes for the copies found in /usr/share/slim/themes/default. I didn’t feel like learning the syntax of slim and those versions copied in with my photo worked fine. (the ones replaced work with the cinnabar stuff but don’t give a place where you can type your login credentials with my photo).
That’s pretty much it.
Once I’ve got my Rock64 working again, I’ll put up a copy in onionshare for anyone who has patience for a download but not for a script….
There’s still stuff to do with this. i2p needs some configuration at start-up. FireFox ought to have some changes to make it work better with i2p. I need to figure out how to get those done without leaving credentials / identity stuff laying around. I think that on first launch i2p makes some encryption keys, for example, and you don’t want everyone having the same ones…
So this is the “basic build” and the whole “configuring and set up” stuff is yet to do / document / script / whatever.