Rachel and Outernet Simultaneously on Raspberry Pi


Now that ORxPi image v0.2.4 is working so well, I want to explore running Rachel http://worldpossible.org/rachel/ in the Librarian. This should require the inclusion of a hard drive storage device as Branko describes in https://github.com/Outernet-Project/orx-rpi/blob/master/docs/external_storage.rst which appears to work as described.

But how to see the large (30 Gig) Rachel Program? Rachel can be installed on a Raspberry Pi computer with a very large micro SD chip (and is cleverly called a Rachel Pi), but can the Pi do both Outernet and Rachel simultaneously? That is the question. Has anyone accomplished this feat? Ken


We have actually attempted packaging RACHEL content for the Outernet receiver, with limited success. It works, some of it is really slow. I’ll see if we can put it online on a torrent or something.


I thought of another solution after I received a USB Version (32 GIG) of Rachel. Quite simple really, though not actually Rachel and Outernet running simultaneously on the Outernet Raspberry Pi - -

You use 2 different platforms. Outernet on the Raspberry Pi (or Lantern when available) as usual, and Rachel on a spare computer operating as the Rachel Server. (Rachel info tells you how to set up the Rachel Server which is very simple)

Since the Raspberry Pi (or Lantern) is running the Outernet WiFi Hot Spot, you connect the second computer running the Rachel Server to the Outernet HotSpot. You go to any other device, such as a SmartPhone or laptop, connect the the Outernet HotSpot, and run that device’s web browser opening 2 separate TABS - one with Outernet from its IP location, and the other with the IP location of the Rachel Server’s computer which would have been assigned by the Raspberry Pi.

Any thoughts on this idea other Discussion group members? Ken


That’s a good idea. :smile:


could you set the rachael server inside the raspberry pi?


Rachel also comes in a Raspberry Pi Version called Rachel Pi (a 32 Gig image file!) It is an image file just like Outernet’s program. Only problem is one chip per Raspberry Pi. So you would need to operate 2 Raspberry Pis, and I believe (although I have not built one yet) the Rachel Pi would be on a different WiFi HotSpot. That’s why I came up with the shared Outernet HotSpot idea.

I think Branko had mentioned Outernet once included Rachel with one of their store products, but dropped it due to technical problems - - let him address that.


Technically you could, but it would require creation of a new image. Also, since root file system is stored in initramfs (in RAM), it would require non-trivial modification of the entire build. If you’re interested, you could fork the build scripts and create your own spin. Familiarity with Raspberry Pi, Linux kernel, Buildroot, and anything related to RACHEL (PHP, Apache) is implied.

Yes, RACHEL was dropped from store product(s). The content, as packaged for our software, was way too taxing on resources on Pi.


I have actually started on this type of project. I am using two Pi’s in a stack, one for Outernet, and another one for RACHEL. I am using the Outernet Pi for the access point and slaving RACHEL off of it. I got the Pi’s talking on the network level, but I cannot get the Outernet Pi to allow HTTP traffic to the RACHEL Pi. Once done, both Pi’s, six 12 motorcycle batteries, PicoUPS, and some various other power converters are going to be stuffed in a semi-weather proof box for deployment. The box will take any DC input from 9V to 18V DC, but needs 13V to recharge the batteries. So far it has run two days and only dropped .6V over those days without being recharged.

I think my problem lies with dnsmasq, but since it is not a standard install, I cannot seem to get it working right. Right now it is setup like a Pi router, WLAN is setup straight out of the box Outernet, the ETH0 on both Pi’s are setup on their own private subnet with static IP’s. And they can talk to each other on that subnet via SSH without issue, but as soon as I try to http to the RACHEL Pi that is where the wheels come off. I am sure it has something to do with dnsmasq if I could just find where the conf file is located since it is not in /etc/dnsmasq/dnsmasq.conf.

Ideas? Thanks!


dnsmasq config should be in /opt/orx/dnsmasq.conf. The reason for this is that /etc/ is read-only (its contents revert on reboot). For more complex customization, you can remaster the image. Code and documentation is provided here: https://github.com/Outernet-Project/orx-rpi/. I will be around to provide assistance should you need it.


Got it! Ok, so it wasn’t exactly playing right the way I wanted. So just for giggles I made the Outernet Pi the slave to the RACHEL Pi. That actually worked quite well. You are able to get from the Wifi from RACHEL to the outerbox via IP. Name resolution is not working right yet, and there is no captive gateway to automatically re-direct web page requests. So the better solution is getting the Outernet as primary, but the routing part is giving me grief with the Outernet.


Can you tell me what setup you used for RACHEL as primary? Maybe we can work something out for ORx.


So, what I ended up doing is setting static IPs for each Pi, for Rachel and for ORx. But It could be anything private as long as it doesn’t conflict with the WiFi subnet. Rachel uses for WiFi. Then I modified the HOSTS file to reflect the local subnet I just created and put ORx and Rachel in it, so typing their names would resolve to IPs. The dnsmasq on Rachel did not need to be modified to pass traffic from WiFi to the wired subnet. It just worked out of the box. Overall, slaving ORx off of Rachel was pretty easy and straight out of the box. Just needs some tweaking to make it perfect. But as I said I want ORx as the primary and have the ability to support a DHCP wired subnet with dynamic name resolution so that you could plug Rachel in to it and it would just come up, and be dynamically added to the network without any funky configuration and be utilized by people without a technical background. My ultimate goal is to get ORx as the main host, a Rachel Pi for educational, and a third Pi to host the Survival Library on a SSD drive. I can post the modified Rachel files if needed, but as I said it was about 90% good to go out of the box with this config.