Raspberry Pi Model 3 Devuan Beowulf With i2p

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”

#apt autoremove

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 " "

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.

Subscribe to feed

About E.M.Smith

A technical managerial sort interested in things from Stonehenge to computer science. My present "hot buttons' are the mythology of Climate Change and ancient metrology; but things change...
This entry was posted in Tech Bits. Bookmark the permalink.

32 Responses to Raspberry Pi Model 3 Devuan Beowulf With i2p

  1. Taz says:

    Are you using the C version of I2P or the original Java?

  2. E.M.Smith says:

    As of now I’ve only run the Java i2p instance.

    I did install the C version on one SBC but didn’t do much other than see it was there.

    IIRC one is “apt-get install i2p” and the other is “apt-get install i2p-router” (or something like that…)

    You can install them both at the same time (and I had done that) but I was unsure how well they would play together at the same time and already had configured the Java version.

    Let’s see:

    root@XU4uDevuan3:/# which i2p
    root@XU4uDevuan3:/# which i2prouter

    Nothing in place already…

    root@XU4uDevuan3:/# apt-get install i2p-router
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following additional packages will be installed:
      famfamfam-flag-png gettext-base libeclipse-jdt-core-java libgetopt-java libjbigi-jni libjetty9-java
      libjson-simple-java libtaglibs-standard-impl-java libtaglibs-standard-jstlel-java libtaglibs-standard-spec-java
    Suggested packages:
      privoxy syndie libgetopt-java-doc jetty9 libjson-simple-doc tomcat9
    The following NEW packages will be installed:
      famfamfam-flag-png gettext-base i2p-router libeclipse-jdt-core-java libgetopt-java libjbigi-jni libjetty9-java
      libjson-simple-java libtaglibs-standard-impl-java libtaglibs-standard-jstlel-java libtaglibs-standard-spec-java
    0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
    Need to get 24.9 MB of archives.
    After this operation, 32.8 MB of additional disk space will be used.
    Do you want to continue? [Y/n] n

    So 25 MB to download and 33 MB unpacked, includes some java references.

    root@XU4uDevuan3:/# apt-get install i2p
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following additional packages will be installed:
      famfamfam-flag-png gettext-base i2p-router libeclipse-jdt-core-java libgetopt-java libjbigi-jni libjetty9-java
      libjson-simple-java libservice-wrapper-java libservice-wrapper-jni libtaglibs-standard-impl-java
      libtaglibs-standard-jstlel-java libtaglibs-standard-spec-java libtomcat9-java service-wrapper
    Suggested packages:
      privoxy syndie libgetopt-java-doc jetty9 libjson-simple-doc libservice-wrapper-doc tomcat9
    The following NEW packages will be installed:
      famfamfam-flag-png gettext-base i2p i2p-router libeclipse-jdt-core-java libgetopt-java libjbigi-jni libjetty9-java
      libjson-simple-java libservice-wrapper-java libservice-wrapper-jni libtaglibs-standard-impl-java
      libtaglibs-standard-jstlel-java libtaglibs-standard-spec-java libtomcat9-java service-wrapper
    0 upgraded, 16 newly installed, 0 to remove and 0 not upgraded.
    Need to get 25.5 MB of archives.
    After this operation, 34.1 MB of additional disk space will be used.
    Do you want to continue? [Y/n] n

    26 MB downloaded, 34 MB unpacked. Still lots of java… Hmmm…


    i2p (0.9.38-3.1)
    Invisible Internet Project (I2P) - anonymous network
    i2p-router (0.9.38-3.1)
    Invisible Internet Project (I2P) - router
    i2pd (2.23.0-1)
    I2P Router written in C++

    Ah, yes, it was “apt-get install i2pd” to get it as a i2p daemon … leaving me to wonder what real difference there is between i2p and i2p-router…

    in any case, I did the i2p package and not the i2p-router or i2pd packages for this script.

    On my ever growing ToDo list is to work out how to run i2pd and i2p at the same time. I think it can be done with i2p as an individual user and i2pd as a root daemon with config in the non-home-dir location, but I’ve not done it. IIRC Pinroot ran into a problem with remote monitoring via web browser in that I’d posted a ‘how to’ based on i2p and he was using i2pd which conveniently uses different ports for connecting so as to avoid collisions. Great for running both, not so good when some guy posts “Here be clue” with port numbers for one and not the other…

    Pinroot has had NO memory growth / swap accumulation on his i2pd install on a Pi Zero. I’ve had slow but steady growth of swap up to about 2 GB in two weeks with the java version (faster if a web browser is left open monitoring…) So while I generally think the i2pd will be better longer run, I’ve not personally done the deed through to configuring it. (Did install it and had it running in the background while the other was running foreground, but then stopped as I wasn’t sure they would play well together in production…)

    Just for completion:

    root@XU4uDevuan3:/# apt-get install i2pd
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following additional packages will be installed:
      libboost-program-options1.67.0 libminiupnpc17
    Suggested packages:
    The following NEW packages will be installed:
      i2pd libboost-program-options1.67.0 libminiupnpc17
    0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
    Need to get 1,370 kB of archives.
    After this operation, 5,329 kB of additional disk space will be used.
    Do you want to continue? [Y/n] n

    3 packages, 1.3 MB of downloads and 5 MB of space used. Nice.

  3. Taz says:

    I’m running the java version, but continue to wonder if it was the wrong turn

  4. Taz says:

    Just installed a permanent gotenna meshnet relay here. Will thrash out it’s envelope over time. Six hops will cover a lot of territory…..

    Like the fact that SOMEONE stripped radio down to it’s essentials (telegraph/teletype) – then modernized with present day silicon. The shit everyone relies on today just invites malfunction. So glad I cut out the local carriers and went with Twilio here. Still maintain a circuit switched landline tho…..it “don’t go down”.

    Probably will post inquiry “Searching for local armed bubbas interested in reciprocal security arrangements” :)

    The citizenry is adapting …….

  5. E.M.Smith says:


    Be wary of to whom you are advertising your interests in arms. I’d suggest only doing so on a dark net with some anonymity. Looking for “bubbles” here would be most likely to get you red flagged, and then gestapo bagged and tagged. While it may be “time to be among them”, it is best done without advertising…

    Per Java vs C++:

    It looks to me like the Java version is more user friendly to a random user who want’s to just issue a “i2prouter start” command and do some stuff, while the i2pd C++ version is auto launched at boot time and always runs (IIRC what I saw in my test) so better suited to a station always expected to be doing i2p.

    That’s why my decision was “java version to get my feet wet” and then I’ll swap to the i2pd C++ version as I get comfortable enough. (Which may be now… I’ve not been able to recover the Rock64 yet. Even entirely new clean OS on new uSD acts like no OS is there with all leds lit solid. Either I’m blowing something in the OS install or the HW is blown… SO, I’m likely going to do a from scratch re-install on different hardware, and that would be an OK time to make the leap to i2pd and get comfortable with it too.)

    Basically, I think the Java version is best with user driven stations and the i2pd will be best for a server station. I started with the former, but then converted to ‘just let it run’ so likely ought to make the change now since I’m already having a ‘do over’.

    Been a while since I looked at GoTenna… maybe it’s time I set one of those up too…


    goTenna (goTenna Inc.) is a Brooklyn, New York-based startup that designs and develops technologies for off-grid and decentralized communications. goTenna devices pair with smartphones and, through intelligent mobile ad hoc networking protocols, enable users to send texts and share locations on a peer-to-peer basis, foregoing the need for centralized communications infrastructure of any kind.
    However, its license does not permit use with open source copyleft licenses.

    Not keen on the block of open source….

    But I suspect products will sell better than DIY hardware / software…

    Looks like Twilio is becoming a bit of a ‘roll-up’ with acquisitions…

    Again you can “roll your own” with free software… but then again despite knowing this for about a decade I’ve not done it. A lot to be said for “done” vs “someday”.

  6. E.M.Smith says:


    “Trusted Hardware” – a blessing and curse.

    So for the last day I’ve been in a battle with Gremins. The Rock64 died (at least I think it did, but maybe not… see below). Then several OS copy to uSD and boot, didn’t. Even on some other hardware. Finally I had an “update upgrade” leave me with a broken hung system that would not repair.


    Just about 2 hours ago the tide turned. First, I’ve set the Rock64 aside and I’ll come back to restoring that service ( i2p ). Second, I put into service an entirely separate set of hardware. The Compaq Evo with a single Pentium-4 CPU that’s a little less performance than a Pi M3 but more than a Pi M2 sometimes. Mostly I did this just to have a second screen so I could do things in parallel. Incidentally, I also moved the “make uSD images” process to it as the other side of the desk was becoming more chaotic.

    It is Dead Slow at writing uSD cards. About 700 kB/s instead of a couple of Mb/s, but that’s OK, sort of a “tell it and go away for a while”…

    But having successively had 3 SBC OS installs crap out, “something is wrong”…

    I’m presently typing this on a generic Armbian Debian install on the Pine64 A+ board. A $17 computer. Prior OS attempts failed for “unknown reasons”, so i did what one does: Changed the whole hardware string and started from zero. So on the Evo with different wires and connectors and OS and stuff, I did a Brand new Download and wrote it to the uSD card. Into the Pine64 and… it worked(!) Glory Be!

    Do a quick update / upgrade and….

    failing name resolution. WT?

    Well, first off I had to turn off ipv6 and get it talking ipv4 as I have an all ipv4 shop. (edit /etc/systctl.conf and sysctl -p) and try again…

    Sporadic name resolution failures… gets about 1/2 way through the update and craps out. Cutting to the chase, I swap wires with another computer. Works perfectly.

    Grumble… THIS cat-5 cable was just put into service about 4 days back. It’s been in the box of parts for a while and WAS expected to be a trusted cable, but it wasn’t.

    Normally when working sites I’ll have a bag full of “Known Good” hardware. An uplink cable, a 10 or 12 foot Ethernet cable, a laptop with everything known working, etc. From that, I can build out from a known working bit of kit and find the AwShit.

    Here, in my own shop, I’d gotten complacent.

    I don’t know how many years ago I last used that cable, but it went from “probably good in the junk box” to “Gremlin chewing my arse” in short order.

    OK, moving on…. That’s “One Down”.

    Now I once again have a known clean new system on working hardware, a known working cable and ethernet, and I can maybe, possibly start making some progress on debugging just what screwed whom.

    Will absolutely pristine OS installs get the Odroid C1 and Rock64 working again? Did this cable corrupt the bits prior to failing harder? I don’t know. I was moving it between SBCs on the desktop as it was a longer cable and let me use it for swapping between boards easier. Or maybe the Rock64 is just dead. But at least now I can test that with Known Good OS and Known Good OS Writer and Known Good cable.


    Debugging. It’s a thing.

    FWIW, I intend to set up the Pine64 as the replacement for the Rock64 doing the “Always on i2p” router stuff. As I’ve already been down a couple of days, I think I’ll take the time to see if i2pd is able to adopt the identity of the former server (all the bits were saved for the user identity and archives and such).

    For now though, I think it’s time to get some “Sushi & Sake” and celebrate one tiny little win over a flaky cable.

  7. Mikeb says:

    dd bs=10M of=/dev/YOURuSD if=devuan_ascii_2.0.0_arm64_raspi3.img

    Why not cp devuan_ascii_2.0.0_arm64_raspi3.img /dev/sda b etc

    On th Pi to copy images to USB I use cp image /dev/sda

  8. Pinroot says:

    Re i2pd – i2p and i2pd use different ports, so I assume you could run them both at the same time, but I don’t know why you would. My Pi Zero has been running 8 days 17 hours and shows 17.5 gig of transit traffic, meaning I’ve routed that much traffic for the network through my little router. Not bad. After eight days, memory usage has started to creep up a little (97 M / 478 M according to htop) and the buffer is finally starting to grow a little, but still no swap usage. If necessary, I can flush the buffer, so that’s not a big deal. I need to get that ‘how-to’ finished, but day to day stuff keeps getting in the way.

  9. E.M.Smith says:


    ‘dd’ is “convert and copy” (because cc was already taken by C Compiler) and lets you do a lot more than what ‘cp’ lets you do. I’ve not tried ‘cp’ on a raw device (/dev/sdXX) but know that ‘dd’ works. IF you have success with ‘cp’ then fine. I’ve just never tried it and I’ve used ‘dd’ for ages. i.e. “Old Habit”. [like my use of “tar cf – . | (cd foo; tar xvf – )” to move directories around, from an era before ‘cp’ did recursion with correct owner and permissions. It seems now that “cp -a . /FOO” does fine.]

    Sometimes I add a “conv=fsync” on to it, but that doesn’t seem to change anything. I’ve also tried bs=20M for a larger more efficient block size and it seems to work fine; but 100M “had issues” (that might have been with anything from the particular card to the adapter to….) I don’t know what block size ‘cp’ uses.

    Long Long Ago… ‘cp’ expected a file system and files with permissions and such and would not work for raw devices. Maybe by now folks have “improved” it from that state and I’ve just not kept up. (OR it might be that way in some distros and not others and I don’t want to find out which ones…) Whatever.

    There’s lots of ways to do most things in Linux / Unix. Especially file copy and move operations.

  10. E.M.Smith says:


    My expectation is that one could set up a dedicated Router with i2pd that, for example, serves up my blog, but then could still have a user log onto the station and do a bittorrent share or check a site somewhere else with the ‘user version’ of i2p Java while not having an effect on the core router functions running. Think Big Iron not Pi zero ;-)

    I’m presently planning to turn my Pine64 into an i2pd router (given your success with lesser hardware) as a replacement for the Rock64 (that goes into the ‘someday’ bucket for recovery / diagnosis / parts…) and will just accept the time hit of the process / learning / conversion. IF need be I’ll accept a new ‘identity’ and all. It’s not like I had a lot invested in the prior keys…

    I’m also thinking that once this is done (and especially with your input on the Zero), I might make a set of minimal servers and share them out. Basically go to the point of having “user i2p” on each card and each one brought up and with i2p configured such that it is just “plug in a power connection and network” and you have a running router. So folks could just buy one (or shove the image on one) and bring up a router with near zero tech skill. A “$10 i2p Appliance” if you will.

    We’ll see. First I need to recover from the hardware fail…

  11. E.M.Smith says:

    just a reminder that FoxyProxy let you configure FireFox for i2p most easily

    port 4444 for i2pd

    I use chromium for open nets, Firefox for i2p and that seems to work well.

    There’s a new experimental add on for Firefox i2p, so looks like the word is spreading…

    Firefox going i2p Gargoyle chromium not so much…

  12. Taz says:


    After review of the chipsets used and looking through some treardowns, I’m very comfortable with the Gotenna and they are to be commended to stripping this thing down to essentials. The Gotenna is a throwback to ancient radio…essentially telegraph/teletype modernized with present day silicon. That’s a big enabler….because it mitigates the need for high cost capital components like towers.

    The one thing I see that it lacks (and it’s a big one) is a way to extend the mesh through the internet in a virtual fashion – changing none of the GoTenna’s protocols. So if you know a good coder – ask them to develop a “virtual Gotenna” for the Tor Onion or I2P networks, Imagine the possible branching if you hosted 10,000 Gotenna onions. ANYONE could rapidly build a tiny local network then connect easily to a larger “whole”. Don’t think this would be a problem given the minimalist “text only” design GoTenna uses.

    For local, your traffic would go through up to six radio hops. For “long distance”, you would hop to one of the many Tor Gotennas – then pop out 1000miles away into a different “stranded mesh” containing your recipient. Encrypted over the entire route.

    You might even use Gotennas teamed with Secure scuttlebutt. Simply attach the scuttlebutt node to long distance trucking to build a super sneakernet. Again, encrypted over the entire route.

    Most regard the Gotenna’s limitations vs centralized services as a bane….but I see great opportunities here. And these are mass produced – RIGHT NOW.

    BTW, old ipods work great with these things. IMO best to shut down the wifi and use only Bluetooth. Eliminates “accidents”.

  13. Taz says:


    When Minneapolis burned, government lost any say in how locals defend themselves.

    It’s out of their hands now. Forever. No one will trust them again and their whining doesn’t matter. Nor do their laws.

  14. E.M.Smith says:


    I installed i2pd and I’d rebooted and all… Finally got around to doing the browser config for i2pd… What do I find? It has been happily running along the whole time. Connecting my browser to: gives :

    i2pd webconsole
    Main page
    Router commands
    Local destinations
    Transit tunnels
    I2P tunnels
    SAM sessions
    Uptime: 1 hours, 15 min, 25 seconds
    Network status: Firewalled
    Tunnel creation success rate: 22%
    Received: 6.78 MiB (1.56 KiB/s)
    Sent: 8.12 MiB (1.88 KiB/s)
    Transit: 123.48 KiB (0.08 KiB/s)
    Data path: /var/lib/i2pd
    Hidden content. Press on text to see.
    Routers: 795 Floodfills: 602 LeaseSets: 0
    Client Tunnels: 34 Transit Tunnels: 1

    Which explains why it isn’t quite as responsive as I’d expected… it has already served up 8MB of “stuff” to others….


    Now I just need to figure out how to put my old stuff on i2pd…

    So I guess the Pine64 is “now in service” and I just need to work out the transition stuff…

    Who knew?…

    Exploring i2pD vs i2p… it seems it is a thing…

  15. E.M.Smith says:


    I think a GoTenna is in my future…

    I’m all for supporting ALL options. And I’m happy to accept pointers from others…

    Per “defense”:

    I’m not talking about what will be, or what is, but about how to present it…

    Yes, they “blew it”. Yes “never again”. But no, I don’t describe my defenses in detail as that would be giving clue to those who deserve none..

  16. E.M.Smith says:

    Well, we ran off to church (Sat. mass) and I left the Pine64 running. It looks like the i2pd version (C++) is just not racking up the memory like the Java version (i2p). Only 231 MB of memory in use after closing the browser. I’d left the browser open the whole time and there’s 141 M sitting on swap (but almost certainly just stale file handles). Memory is NOT increasing as I watch it.

    So with 1/2 the memory of the Rock64, this board is very much more than enough board.

    I’m going to leave this one running a while longer (eventually I’ll need to power it down to move it to production space but for now it can sit on the desk…) I find it interesting that to make a running i2p router all one needs to do is “apt-get install i2pd” and reboot…

    I think I’m going to change the above build script to install i2pd.

  17. E.M.Smith says:

    Well, I found yet more sporadically flaky hardware. My USB Hub. One of the ports in the middle where I’ve done most plugging and unplugging is putting crap on the line.

    This is where I’d plugged in a few uSD cards in adapters and thought the card had failed. (BUT they reformatted just fine on another machine).

    I finally had the penny drop when I plugged in a known good HDD and opened gparted, and gparted reported the disk had no superblock… (Same error I’d gotten on the uSD card). But I knew the disk was good. Plugged directly into the PC, gparted was happy and said “no problems’…

    This particular hub sometimes is an issue as it can have the power connector pull loose. It was a little pulled back, but not enough to drop power (I think…) so my greatest suspicion is that the one slot is just worn too much. More testing when not actively in service will confirm that.

    Why this matters is because that’s the device I used when writing the system image for the Pi M3 that the script above built, and when I copied it back to disk. I think those copies were good as I think I was using a different slot… But I don’t know for sure.

    It will likely be a couple of days before I can test the image myself (given how things are currently filling my desk.)

    I now have a Pine64 running i2pd AND I’ve got onionshare compressing the system image for this build. It’s 7.4 GB and ought to squash down to about 1/2 that. Still, a 3.5 GB download from a residential upload speed will not be fast… One core on the Pine64 is pegged at 100% doing the zip compression. When it is done and shared, I’ll update here with the file handle for anyone who wants to try a download / test of it.

    With a small heat sink on it, the Pine64 is running 68 C. Not too hot, but still hot…

    This image will stay up for a while (day or two?) but eventually I’ll need to shut it down and move it off my desk, then the onionshare download link will end too. Once it’s in the final spot, I’ll do another one, provided the download speed is OK. I know it will take hours to download… probably.

    OK, looks like it compressed down to 3.3 GB. Here’s the link:


    Oh, and remember that this is a .onion link, so needs to be done with a TOR browser or via a TOR router / relay… Not going to work in a regular open internet browser …

    The root account passwd for the image is “toor”.

  18. E.M.Smith says:

    Well, looks like so far zero folks have tried to download the image.

    Not that surprising I guess. Folks who really wanted one might have just followed the directions above and made one. I’ve also not given a ringing endorsement of the likely success and speed of a download…

    Season that with it only being up under 1/2 a day so far, so lots of folks will not have noticed it yet.

    I’d been a little worried that a dozen “Lurkers” might have jumped on the link all at once and saturated my wire speed. Looks like that’s not going to happen ;-)

    As a proof of concept the idea of onionshare of a system image looks a success, but no actual download yet so still a hypothetical. Maybe I’ll do a test download in a day or two once I have some system with Onion routing on it on another network.

    Longer term I likely need to identify an anonymity preserving public file sharing site and use them. But as part of the motivation here is to show a “Person Like Me” can make and share an operating system with built in Tor and i2p, using a darknet facility, it kind of defeats that to use Open Internet services.

    Well, off to Morning Coffee and checking if the world is still around today ;-)

  19. E.M.Smith says:

    Well, in a day and a half there have been exactly ZERO attempted downloads of the Raspberry Pi image. Either anyone who was interested already ran the script and did a DIY, or nobody was really interested, or the idea of downloading 3.3 GB slowly was oppressive… or maybe folks didn’t drop by during that time…

    In any case it looks like shutting down to relocate the machine will be OK…

    I’m likely to do that after Yet More Coffee

  20. E.M.Smith says:


    A Pine64 is way more computer than is needed for the i2pd version. No memory leak in evidence, a few hundred MB used, and very low CPU used. I think I’m going to turn one of my Orange Pi boards into a i2pd router and see how it does. ( v7 armhf 32bit instead of V8 64 bit aarch64 and only 512 MB of memory.)

    Biggest issue from my POV is the single USB port. I’ve been using a WiFi Dongle to connect to the “TV Network” and isolate the whole thing from the house networks. I can either have everything (keyboard, mouse, dongle, disk) on a USB Hub, or run it headless with just the dongle… which means setting it up to use the dongle, move that from the hub, reboot headless, and then hope that the wifi network comes up or I get to back all that out and try again… OTOH, once working it’s a remarkably small package. Whole thing about 2 inches by 2.5 inches…

    I suspect a Pi Zero W may be in my future. Built in wireless. Would be nice to have one that could be remote configured via a laptop, and then in places with public WiFi, log it into the WiFi and let it run. The load on the network seems very low (near trivial) so it would not be a rude thing to do…

    But for now I’m still doing some “recovery” stuff.

    I need to validate a uSD card (not hard), revalidate my uSD to USB adapters (now that I know it might have been the USB Hub port causing problems), re-flash the Rock64 images (now that I know to avoid that USB Hub Port…) and find out if it is REALLY the Rock64 hardware that died or just the uSD writing process was flaky due to USB Hub issues…

    But to do that, I need my desktop back and I need the hub back and I need the monitor back and… So the Pine64 needs to take a shutdown / move / bringup / decouple hub and stuff process.

    Meaning that the Onionshare link will end… And it will likely take a while to bring it back up as: I don’t have any actual computers on the TV Network to use as a workstation to get into it remotely and fire up the Onionshare process again; and the HDD I’m using to supply the many GB /tmp (where Onionshare builds the compressed image) needs a USB Hub (powered) to connect to the computer.


    IF anyone really wants to try doing the Onionshare download, holler. Otherwise I’m assuming that no action at all on the download attempts means no interest.

  21. Simon Derricutt says:

    EM – yep, 3.3GB on somewhat less than 1Mb/s does look a bit of a long download, and I haven’t got Tor installed here so would have to do that first and see if everything worked. I was figuring on running the script at some time when getting the Pi3 into operation.

    As I’ve mentioned before, these days I just want the computer to do the job it’s supposed to, without me needing to put a lot of work into making it go. I’d rather be putting effort into the physics. Seems like a bigger payoff for success – helps a lot more people if I get the physics right, whereas for the computers I just have something that works here. Though getting rid of System D on this box will happen at some point, so far I’m not hitting problems with it (currently Linux Mint, after a decade or so on Ubuntu). Seems software bloat applies just as much to Linux as to Windoze, as that 3.3GB download shows. I think the size of the libraries now exceeds the ability of people to know all that’s in them, so new additions probably largely replicate stuff that’s already there but hasn’t been described well-enough for people to find it and use it.

  22. p.g.sharrow says:

    Yes, I have the same problem as Simon, the computer is A tool, not THE tool, I just want the damn thing to do the job and not become the job. So for the last 30 years I’ve stuck with working on Windows and poking at Linux. And getting really tired of learning new computer OS to stay “up to speed”and in operation…pg

  23. E.M.Smith says:


    I’ve seen some of that, especially in Systems Admin where instead of fixing a basic system they layer a whole ‘nother system on top of it to ‘manage’ it. Now you get things like /etc/resolv.conf that is where you tell linus what name resolvers to use having a header saying “created by or managed by FOO System, do not edit” and now you must go off and find out how to set up / manage FOO system that then sometimes say “Config set by BAR Enhancement do not edit”… and off you go to find BAR… Just stupid.

    But frankly the one that bothers me the most is how Python is slowly invading the system space (and Java the applications space). Python is interpreted, dead slow (about 1/10 the speed of C) and drags with it huge libraries to work (often written in other languages like C in order to not be dead slow but now dragging those libraries along for the ride…). The wicd daemon to set up / manage WiFi interfaces for example. All because folks can be bothered to do a proper /etc/network/interfaces file.

    Then figure Java is interpreted in the JVM Java Virtual Machine AND the whole OS is now (often in production shops) running as a Virtual Machine on some big rack of hardware… so you end up with layers of applications on a VM on libraries in a VM on hardware with more libraries to run the VM…

    The whole thing needs folks more like the original K&R to go in and prune out the cruft and waste.

    For that particular image above, much of it is the fact I installed a full desktop AND applications. LibreOffice, 2 x Browsers (themselves becoming fat pigs…), and more.

    Maybe I’ll just spin up a minimal i2pd image… See how small I can make it.

  24. Pinroot says:

    @EM – Interesting that you had i2pd already running. I notice that your network status is Firewalled, which is why you have only one transit tunnel. Get it from behind the firewall and transit tunnels will really go up, and you’ll get a better idea of what memory and cpu usage are like for your hardware. However, I’m really amazed at how lightweight it is. It can run on the smallest of systems, it seems. I’ve got an old original RPi B, I think the specs are similar to the Pi Zero, and I’ll bet i2pd would run on it just fine. If you ran it on the Rock64, you could run a few other things, like host your eepsite and run an irc server, which is what I want to do on my Pi M3. Just gotta do it…

  25. pixplor says:

    @EM Long overdue comments from a long-time lurker. Items go to trustworthiness of RasPi. I have several, and I use them but best to make an informed decision about them. With all the investigation into secure computing, I thought these items might be of interest.

    Raspi Foundation Imager telemetry [2021-03-19]
    > If you’d like to turn off telemetry, that’s fine; all it does is send a ping to the Raspberry Pi website that lets us create the statistics pages here
    > To understand what we send, you can read about it on our GitHub page.
    [Said to be able to be modified by menu accessed by magic key sequence Ctrl-Shift-X]
    [Recall Linus’s law: given enough eyeballs, all bugs are shallow. Recall also the nearly decade-old BIND bug. Skilled techs still have to read the code to find such things. Sticking with good old `dd` certainly worth considering.]

    Microsoft in my Pi [2021-02-05]
    > And finally, I was amused by an article lamenting the inclusion of the VSCode repository
    The larger point is that the official VSCode binaries have telemetry code added to them — code that isn’t in the open source repository. What is it doing? You don’t know. But it probably violates European law.
    > Want to use VSCode, but not interested in shipping info off to Microsoft? VSCodium is a thing.
    [Issue summary: Raspi Foundation stealth added microsoft repository and trusted key]

    Blog Post with users raising issue
    [May have been already fixed, haven’t had a chance to review my last maintenance pull on a new Raspberry Pi OS; notes on detecting issue in comments]

    Raspi Series 4 – Microsoft ThreadX said to run in RasPi4 VideoCore cpus [2019-09-09]
    1stRef: https://hackaday.com/2019/09/09/can-you-really-use-the-raspberry-pi-4-as-a-desktop-machine/#comment-6178457 and following related comments

    Microsoft purchases ThreadX
    https://en.wikipedia.org/wiki/ThreadX [Azure RTOS ThreadX]

    Azure-RTOS (ThreadX)

    Azure RTOS ThreadX documentation

    Overview of Azure RTOS ThreadX
    > Azure RTOS ThreadX is Microsoft’s advanced industrial grade Real-Time Operating System (RTOS) designed specifically for deeply embedded, real-time, and IoT applications.
    [Not saying the IOT code is actually in the video core software, but it could be. Such are blobs.]

    [I have a Raspi4B, Raspi400, Compute Module 4 & IO board. I can comment on them if there is interest.]

  26. Simon Derricutt says:

    EM – maybe a minimal system, with a script to install the correct versions of Libre Office, browsers, etc. from standard repositories afterwards? Thus only the kernel, X, window manager, and any support needed would need downloading through Tor, and would all work together nicely, and that’s maybe only a floppy-disk’s worth. With a narrow pipe for the upload your end, makes sense to limit what you need to stuff down it. It’s worth sorting out Tor to save the time on compiling the kernel and getting I2PD guaranteed to work with it, but leaving the system up and downloading stuff for a day seems not enough of a gain over getting the sources and doing the whole job here.

  27. E.M.Smith says:


    Running the i2prouter on the Rock64 (Java) I was running browsers, my eepsite, torrents and more and still had machine left over. That’s why I’m willing to try the Pine64 to replace it.

    I’ve been fighting various hardware gremlins, but I think I’ve slain most of them (UNfortunately, one was corrupting new system installs on uSD cards sporadically).

    So I THINK the Rock64 hardware is dead but I’m not certain as I’m still a bit unsure my uSD writing is perfect and not corrupted. (Several successful writes on other hardware uSD images, regular fails for the Rock64… (So the Rock64 will live in a box for several weeks to months until I feel like testing it again).

    I chose to install i2pd on the pine64 (now that I have more clue about it) just to see if it did as much without the memory issues and on smaller hardware. It does. (Rock64 is faster than Pi M3 with 2 GB memory, Pine64 A64+ version is about the same as a Pi M3 ( currently speed limit set to 1.1 GHz by me when I was having odd issues, not reset to upper bound yet, 1 GB Memory, 4 cores 64 bit.

    Only issue I’ve seen with i2pd (and it may be me…) is poor set of controls in the menu that pops up in the browser. The i2prouter control panel sets me set bandwidth offered and all sorts of stuff including controls to turn on torrents and web services (eepsite). I’m assuming there’s some non-web page way to do that for i2pd but haven’t gotten there yet.

    In retrospect, I think maybe my “troubles” with /var/i2p vs ~me/.i2p/… may have been that I installed both i2pd and i2p onto the same machine in testing but didn’t have good clue yet about them being so different. (Same services, different config location and different control panels). So at that time I just brute force turned off i2pd by breaking it and concentrated on making my eepsite show up where I thought it ought to show up using i2prouter (as installed via i2p). Learning, it’s a thing…

    So as of now I’m running i2pd anew on the Pine64 A64+ but don’t know how to increase the bandwidth above whatever is the default, and have not yet copied over my prior config stuff (nor tested that my ‘site’ is back when I do…).

    I’ve also got i2prouter running on another machine on a different network for comparison. I really like that web interface a lot better.

    The idea being to have a core facility that’s always on and running, then added services on a workstation I’m actively using…

    We’ll see. It is my slower boat project ;-)


    One of my interests was just to find out how sow is my wire for uploads, but that can wait. I’ve got high end AT&T service so it might be fast ;-)

    What I really need to do is just find out what bit hosting service on the clearnet doesn’t need to have my real identity or location. I don’t have anything to hide here as i2p is public, but just want to prove it can be done Anon.


    Key point: I’m NOT running Raspian so none of the Pi Foundation software matters. This is Devuan based off of Debian.

    So ONLY their sources.list, no vstudio.

    That was one of my motivations for dumping Raspian. (The other being v6 code on a v8 processor wastes a lot of tech ability and speed. ALL Raspbian are v6.)

    The video core driver blob is an issue, but IMHO not a big one (yet…) as Debian / Devuan and Armbian are pretty good about spotting odd stuff.

    I’d be interested in your Pi M4 experiences. I decided not to get one due to the poor heat management and power supply design (also Pi historically poor I/O structure). Instead I’ve gone to the Odroid line (nice heat managment and I/O… there’s more to life than CPU cores ;-)

    I’m not familiar with the Pi400… is that the KB with built in Pi? How’s the cooling on that?

  28. pixplor says:

    Many of us benefit from your Devuan explorations, and thank you for that and so much more. My expectation is that many of your users were running Raspberry Pi OS, hence the info.

    Yes, the Raspi400 is the keyboard, kinda like a Commodor 128 (better keyboard than the C64) but smaller. Chiclet style keyboard, similar to Foundation $20 keyboard. Cooling is improved over Raspi4B, due to large embedded heatsink in keyboard. Several benchmarks in below info.

    Raspi series 4 info dump

    Free Book – Raspi4B, Raspi400 Beginner’s Guide
    Raspberry Pi Beginner’s Guide 4th Edition
    https://magpi.raspberrypi.org/books [more free Raspi book downloads]

    MagPi magazine free issues (no article index available)
    Other free magazines: Hackerspace, Wireframe

    General RasPi hardware data
    https://www.raspberrypi.org/documentation/hardware/raspberrypi/frequency-management.md [Frequency management and thermal control]

    Foundation forums:
    Selected forums
    https://www.raspberrypi.org/forums/viewforum.php?f=140 [Raspi400]
    https://www.raspberrypi.org/forums/viewforum.php?f=98 [Compute Module]
    https://www.raspberrypi.org/forums/viewforum.php?f=56 [Operating systems – Other]
    https://www.raspberrypi.org/forums/viewforum.php?f=28 [Troubleshooting]

    Raspberry Pi OS – 64-bit beta – Raspi 3 or 4 only


    Broadcom BCM2711B0 quad-core A72 (ARMv8-A) 64-bit @ 1.5GHz, memory: 2G, 4G, 8G (1G no longer sold), dual micro-HDMI 4K ports, 2x USB-2, 2x USB-3, 10/100/1000 ether, Bluetooth, USB boot, flashable USB bootloader, USB-C power (early board revisions sensitive to some USB-C power supplies)
    no heatsink or fan as part of default board, add-ons available
    Generally considered to need additional cooling to reduce/prevent cpu throttling
    Available as plain boards or kits – Raspi Foundation, CanaKit


    Raspberry Pi 4 specs and benchmarks


    Broadcom BCM2711 quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.8GHz, 4GB LPDDR4-3200, 1x USB-2 (one USB-2 used for built-in keyboard), 2x USB-3, otherwise largely the same specs as Raspi4B
    Generally considered pretty well heat-sunk, large heatsink built into keyboard covers motherboard
    Motherboard quite different than Raspi4B, built into keyboard
    GPIO pins horizontally oriented, rather than normal Raspi vertical orientation; may want GPIO adapter such as Adafruit sells (used to be called Cobbler board?)
    No apparent audio output aside from HDMI
    No Camera (CSI) or Display (DSI) connectors
    Has actual ON/OFF button (keyboard nearly same as $20-ish Raspi Keyboard)
    $70 Raspi400 only, $100 Foundation kit


    Click to access pi400-product-brief.pdf

    https://www.raspberrypi.org/products/raspberry-pi-400-unit/ [Foundation sometimes has multiple pages for nearly same thing]

    Teardown pics and review at HackaDay

    Tom’s Hardware review

    23 fun Raspberry Pi 400 facts

    Jeff Geerling Raspi400 teardown and review [extensive pics]

    $100 Raspi Foundation kit (in-store only at MicroCenter, other vendors may sell mail-order)

    Raspberry Pi Compute Module 4

    12VDC power input on IO Board – barrel connector or thru GPIO pins
    Requires carrier board, such as Foundation CM4 IO Board; others available or DIY
    Foundation IO Board is reference board, detailed design specs provided
    Complete board rework compared to CM3, not plug-compatible, new form factor
    32 different CM4 boards ($25-90), higher end boards tend to be unobtainium
    See Product Brief below for models, features, and pricing
    My CM4 – CM4001032 – 1GB LPDDR4, 32GB eMMC, gigabit ether, no wireless (in-store at MicroCenter)

    CM4 Specs, datasheet, product brief

    Raspberry Pi Compute Module 4 specs

    benchmarks and testing in The MagPi magazine issue 99
    [Benchmarks Raspi3B, Raspi4B, CM4]
    https://magpi.raspberrypi.org/issues/99 [pdf page 8]

    Raspberry Pi Compute Module 4 – A Complete Guide

    Install Guide, Foundation

    Install Guide, Jeff Geerling w/ youtube video
    Jeff has extensive Raspi coverage

    https://www.youtube.com/channel/UCR-DXc1voovS8nhAvccRZhg [Jeff’s youtube channel]

    Are some boards premium-priced? (search results include IO Board)

    CM4 IO Board

    IO Board ($35) also difficult but not impossible to find (got mine at PiShop.us)
    2x USB-2, no USB-3 connectors (USB-3 usable thru PCIe connector)
    PCIe single lane connector provided – USB3, NVMe, SATA, whatever
    dedicated eMMC flash connector, also need to set jumper to flash; eMMC mounts as device or filesystem(s) on flashing device (your PC or another raspi)
    HAT connector
    Real Time Clock (RTC) with battery

    Compute Module 4 IO Board [specs and documentation including KiCAD layout]

    *** Show Stopper for me, now resolved
    USB initially disabled on CM4, requires config change (symptom: USB keyboard and mouse dead)
    Appears to be an artifact of Raspbian Pi OS default device tree

    Best writeup I have seen on Device Trees is in an old book by Derek Molloy which sadly doesn’t cover Raspi3B+ or any Raspi4 boards since they didn’t exist when he wrote the book
    Author makes extensive use of redirector links such as tiny.cc/erpi501, but he hasn’t provided a correspondence table so you have to manually type in each one; as expected some link rotted away
    ARM probably has definitive documentation on device tree

  29. Pinroot says:

    @EM re: i2pd – Sorry I haven’t been around in a while, so I’m late with this but… There are things to set in the conf file for i2pd that don’t show up in the browser control panel. The conf files are located in /var/lib/i2pd, and two of them, i2pd.conf and tunnels.conf are symbolically linked in /etc/i2pd. You can adjust bandwidth somewhere in i2pd.conf, and any changes you make will be read the next time you start i2pd. Here’s the user guide for the i2pd configuration files: https://i2pd.readthedocs.io/en/latest/user-guide/configuration/

    Side note, I’ve finally finished writing up something on my i2pd installation adventures. I’m not sure if you’re still interested in my posting it, but if you are, let me know where to put it and I’ll take care of it. I don’t know how helpful it will be, but who knows? :)

  30. Pinroot says:

    @pixplor – Wow, thanks for that RPi info dump, lots of useful links!

  31. Pingback: DNS With DNSSEC Validation | Musings from the Chiefio

  32. Pingback: At Last, Australian Truckies News! | Musings from the Chiefio

Comments are closed.