Freedom-Maker
Bdale maintains a repository that contains the FreedomBox installer,
Freedom
Maker.
You can grab those bits with git clone
git://anonscm.debian.org/freedombox/freedom-maker.git That code will
install a minimum Debian box from which we can build upward! It
requires a DreamPlug and a JTAG cable.
This software is just a base Debian GNU/Linux install. It is aimed at sophisticated developers. We'll be adding services to future versions, but this is just a minimal base from which we can build.
Image
Several people have asked for an easy-to-install image that they can use to just flash the sd card in a DreamPlug:
- Remove the power supply and rubber feet from your FreedomBox.
- Remove the screws that were hidden by the rubber feet and open the device.
- Pull the sd card and insert it into your computer (perhaps using a USB dongle or sd adapter)
- Use dd to copy this image to the sd card (you'll have to uncompress it first)
- Reinsert the card and reassemble the box
- Boot into your new system via JTAG or by putting it on your LAN and sshing to it. The default root password is 'freedom'.
GPG
We can use GPG to ensure the image has not been corrupted. The image
was built by Clint Adams and Ian Sullivan from Bauermann's copy of Bdale's repo. James Vasile has
signed the image to
assert that it is identical to the one we built. You can download
the sig and the image then use his gpg
key
to verify the signature: gpg --verify
freedombox_14_Nov_2011.img.xz.sig.
MD5
| freedombox_14_nov_2011.img.xz | 23f83558b41ed2617c741ca7c866b63f |
| freedombox_14_nov_2011.img.xz.sig | 404fd39a1ad488b9d3662628a3b5a43b |
Upgrading Uboot
While not required, upgrading the uboot bootloader on the DreamPlug can give you additional capabilities. Most importantly, upgrading lets you boot the whole operating system from an ext formatted partition. If that got you interested, check out our ubootUpgradeInstructions. If not, feel free to ignore this.
freedombox-privoxy
One thing many people seem to agree the FreedomBox should do is web filtering for privacy and ad-removal. Toward that end, I've put a first draft version of privoxy up on git.
git clone https://github.com/jvasile/freedombox-privoxy
make deb
sudo apt-get purge privoxy # yes, this is necessary the first time
sudo dpkg -i Debian/*.deb
sudo service privoxy restart
If you want to see what I changed, look in Debian/freedombox-privacy/debian/patches/9.dpatch after doing the make deb. I'll get some binary packages up for x86 and Dream Plug soon.
This package differs from the standard Debian privoxy package in a few key ways.
First (and most importantly) it doesn't just listen on localhost. The plan is eventually to control access to it via iptables, so by default it listens to the world. Be careful with that if your FreedomBox is reachable via public net.
Second, I imported the https-everywhere ruleset as a privoxy action file and modified the privoxy binary to handle it.
Third, I imported the easyprivacy ruleset from Ad-Block Plus as a privoxy action file. Easyprivacy is not included in ABP and most users are unaware that they can add it in. To me, that makes it a good candidate for inclusion here.
Fourth, I started to pull in the easylist ruleset from ABP. It is impossible to fully duplicate easylist with a proxy because the proxy lacks information the browser uses to make more nuanced decisions about what to block. Scripted import of easylist might be buggy, and this needs more investigation.
Fifth, I lowered the amount of filtering compared to the stock privoxy config (see the match-all.action file for details). I did this because unlike a proxy running on your local machine, a proxy that clients don't control should be a bit more careful about breaking sites. I'm trying to get down to a level where we don't break anything and then seeing how we build up from there.
If you are a privoxy user, please do give this package a test run and report any problems on the issue tracker.
Further work will include writing a script to test all the
https-everywhere rules and discard the ones that are broken.
As well as one to periodically check for new regexes. Anybody
who wants to contribute to writing that is welcome to jump on in!
Plinth
Our current proposed configuration front-end is Plinth, a pluggable web
interface. It is available from git: git clone
https://github.com/jvasile/Plinth.git and currently contains is just
a proof-of-concept. It won't actually configure anything and the
final product isn't going to look anything like it. But the
underlying technology is the starting point for our current config UI
development.
