<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://old.hacdc.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drwho</id>
	<title>HacDC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://old.hacdc.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drwho"/>
	<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php/Special:Contributions/Drwho"/>
	<updated>2026-05-07T16:08:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://old.hacdc.org/index.php?title=User:Drwho&amp;diff=11131</id>
		<title>User:Drwho</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=User:Drwho&amp;diff=11131"/>
		<updated>2014-11-26T05:10:18Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Name: Bryce A. Lynch&lt;br /&gt;
Handle: The Doctor [412/724/301/703]&lt;br /&gt;
Website: [http://drwho.virtadpt.net/ Antarctica Starts Here.]&lt;br /&gt;
PGP key: [http://drwho.virtadpt.net/gpgkey.txt 0x807B17C1 / 7960 1CDC 85C9 0B63 8D9F  DD89 3BD8 FF2B 807B 17C1]&lt;br /&gt;
&lt;br /&gt;
Likes&lt;br /&gt;
*Anonymity preserving technologies&lt;br /&gt;
*Bandwidth&lt;br /&gt;
*Blogging&lt;br /&gt;
*Books&lt;br /&gt;
*Chiptunes&lt;br /&gt;
*Cognitive liberty&lt;br /&gt;
*Constructive irrationality&lt;br /&gt;
*Cryptography&lt;br /&gt;
*Dancing&lt;br /&gt;
*Hacking&lt;br /&gt;
*Morphological freedom&lt;br /&gt;
*Music&lt;br /&gt;
*Neurology&lt;br /&gt;
*Privacy preserving technologies&lt;br /&gt;
*Programming&lt;br /&gt;
*RPGs&lt;br /&gt;
*Solitude&lt;br /&gt;
*Steampunk&lt;br /&gt;
*Transhumanism&lt;br /&gt;
*Writing&lt;br /&gt;
&lt;br /&gt;
Dislikes:&lt;br /&gt;
*Dead batteries&lt;br /&gt;
*Faulty wetware&lt;br /&gt;
*Inferior organic components&lt;br /&gt;
*Stupidity&lt;br /&gt;
*Wasting time&lt;br /&gt;
*Wasting energy&lt;br /&gt;
*Surveillance&lt;br /&gt;
&lt;br /&gt;
Projects:&lt;br /&gt;
*[[Byzantium | Project Byzantium]]&lt;br /&gt;
*Carved bone walking stick&lt;br /&gt;
*Hacking the [http://www.ocztechnology.com/products/ocz_peripherals/nia-neural_impulse_actuator OCZ Neural Impulse Actuator]&lt;br /&gt;
*RFID body jewelry&lt;br /&gt;
*Steampunk sonic screwdriver&lt;br /&gt;
*[http://zerostate.net/ The Zero State]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*Shy.  Slightly agoraphobic.&lt;br /&gt;
*Finally joined HacDC after four years.&lt;br /&gt;
*Thinks that the performance of an experiment is just as important as the results collected.&lt;br /&gt;
*[http://www.creativecommons.org/ Creative Commons] advocate.&lt;br /&gt;
*[http://eclipsephase.org Eclipse Phase] political faction: [https://secure.wikimedia.org/wikipedia/en/wiki/JASON_%28advisory_group%29 Argonaut]&lt;br /&gt;
*Rumored to be the illegitimate lovechild of Luna Lovegood and Wintermute.&lt;br /&gt;
&lt;br /&gt;
Quotes:&lt;br /&gt;
*&amp;quot;Nothing says you can&#039;t.&amp;quot;&lt;br /&gt;
*&amp;quot;Aw, hell.&amp;quot;&lt;br /&gt;
*&amp;quot;Hey, ya&#039;all, watch this!&amp;quot;&lt;br /&gt;
*&amp;quot;What did you say your username was again?&amp;quot;&lt;br /&gt;
*&amp;quot;We&#039;re now twenty minutes into the future.  Unfortunately we got some &#039;&#039;Videodrome&#039;&#039; along with &#039;&#039;Max Headroom&#039;&#039;.&amp;quot;&lt;br /&gt;
*&amp;quot;I hate it when people use CamelCase in their code.  It makes the statements read like Vanilla Ice lyrics.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
First amateur radio contact: NA1SS (Thanks to N3FZX for the opportunity!)&lt;br /&gt;
&lt;br /&gt;
[[Category:Friends]]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Items_Borrowed_from_the_HacDC_Space&amp;diff=9601</id>
		<title>Items Borrowed from the HacDC Space</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Items_Borrowed_from_the_HacDC_Space&amp;diff=9601"/>
		<updated>2013-08-14T18:41:23Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Add new entries to the top of the list!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;14 August 2013&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Drwho|The Doctor]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* Macbook Pro (for Byzantium development)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;April 21, 2013&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Mirage335|mirage335]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Prusa Mendel, PLA feedstock, M3 screws, some tape, some tools. Emergency maintenance in progress, ETA return Thursday, April 24, 2013. EDIT: Returned a while ago, seems the information was lost on wiki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;April 4, 2013&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Nocko|nocko]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Diligent Spartan-3E Starter Board (Labeled HacDC #12). I want to see if the SUMP logic analyser HDL can be modified and installed on this board.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;December 18, 2012&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Mirage335|mirage335]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Project Salvage components. Most should become valuable electronic test equipment at HacDC and absolutely must not be trashed. EDIT: Returned a while ago to the test cart. Connectorization of some parts (eg. mixers) still progressing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;July 21, 2012&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Mirage335|mirage335]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Borrowing Ham radio gear this weekend, as described in the previous struck through entry. EDIT: Returned. Awesome data obtained.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 29, 2012&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Mirage335|mirage335]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;Borrowing Ham radio gear tomorrow. Specifically, IC-718 radio, antenna tuner, RF power meter, balun (if available), PSU, some feedline, some wire, and a measuring tape (if &amp;gt;12&#039;). Will also borrow some of my own objects at the space, specifically a UPS (for its 12V battery) and a magnetic loop antenna. Leaving my name and number on the ham radio cart in case anyone needs the radio or has questions. This is exclusively for the purpose of diagnosing HacDC&#039;s ham radio issues as documented on the mailing list.&amp;lt;/s&amp;gt; Postponed due to severe weather and power disruption. Radio not borrowed yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;May 30, 2012&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Mirage335|mirage335]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ancient (20 years+) semi-working AM/FM/WB/CB radio.&lt;br /&gt;
Found in basement. AM function never worked, in sorry shape, needs repair, so I&#039;m going to try repairing it as far as possible. Will be back at the space in ~2 weeks. EDIT: Returned. After mostly mechanical repairs, AM, FM, CB functions work well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;April 2012 - [[User:Tslagle]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- IBM Thinkpad T43 laptop from David Whiteis.  Wiped, installed  Windows 7 and MATLAB on it, used it for USA Science &amp;amp; Engineering Fest booth demo (&amp;quot;Mug Plot&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;18:00, 29, January 2011 (PST) - [[User:Williamgibb|Williamgibb]]&amp;lt;/b&amp;gt;&lt;br /&gt;
- Stanford Research Systems DG535 Pulse Generator&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;20:30, 1314, November 2010 (PST) - [[User:Williamgibb|Williamgibb]]&amp;lt;/b&amp;gt;&lt;br /&gt;
- Digilent FX2 Expansion board for Spartan3E FPGA Starter Kit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;17:20, 13 July 2010 (UTC) - [[User:DLotts|DLotts]]&amp;lt;/b&amp;gt;&lt;br /&gt;
- One OLPC XO with charge cord.  It calls itself HacDC OLPC #3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;December 15, 2009 - [[User:timball|timball]]&amp;lt;/b&amp;gt;&lt;br /&gt;
- one black soldering iron + stand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;[[User:DLotts|DLotts]] 08:41, 29 October 2009 (UTC)&amp;lt;/b&amp;gt;&lt;br /&gt;
- A230 Micro Game Station with labeled problem: &amp;quot;Raster screen&amp;quot; AKA white screen of death with stripes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 2, 2009&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Derek Cooper&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
- Infrared night vision goggles &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 2, 2009&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;David Lotts&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
- Infrared night vision goggles (EyeClops) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 2, 2009&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Drwho|The Doctor]]&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
- Infrared night vision goggles &amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;cause, you know, all the cool kids were doing it.&amp;lt;br /&amp;gt;&lt;br /&gt;
I discovered that the unit I borrowed is flaky - after a few seconds of wearing it while powered up the display flickers and goes dead.  I think that the cable leading from the power pack to the visor has a bad connection.  When I get time I&#039;ll tear this one down and see if I can repair it.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;January 13, 2009&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Derek Cooper&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
- CEN-TECH Digital Multimeter (red) Item#90899 &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;December 22, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Myself|Nate]]&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
JC Penney component stereo cassette deck&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Nov 13, 2008&amp;lt;/b&amp;gt; Mac G4 usb keyboards (x2) - member28 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;August 7, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;[[User:Ben|Ben]]&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- Beginning Electronics book&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;July 25, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Q (andrew@i11industries.com)&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 30, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Q (andrew@i11industries.com)&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
- 1x Digital Multimeter (Yellow) &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 19, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Richard Bewley (rbewley@gmail.com)&amp;lt;/b&amp;gt; - &amp;lt;b style=&amp;quot;color: red;&amp;quot;&amp;gt;Not Returned / Outstanding&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- 1x Lineman&#039;s handset&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 1, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Tino (oberoc@yahoo.com)&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
Small Form Factor PCs book&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Items Returned to the HacDC Space&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;June 15, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Tino (oberoc@yahoo.com)&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
Small Form Factor PCs book&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;July 25, 2008&amp;lt;/b&amp;gt; - &amp;lt;b&amp;gt;Q (andrew@i11industries.com)&amp;lt;/b&amp;gt; - &amp;lt;br /&amp;gt;&lt;br /&gt;
- Reflow Station &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Materiel]]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9422</id>
		<title>Notes on Soundmodem</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9422"/>
		<updated>2013-06-11T00:47:41Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Byzantium]]&lt;br /&gt;
[http://www.baycom.org/~tom/ham/soundmodem/ Soundmodem] emulates a hardware TNC in software, vis a vis a daemon running in userspace.&lt;br /&gt;
&lt;br /&gt;
v0.18 is the latest (as of June 2013), I recommend using that.  It now only depends on two things, audiofile and gtk2.&lt;br /&gt;
&lt;br /&gt;
Soundmodem will either turn your soundcard into a KISS radiomodem (serial modem) or an AX.25 network interface.  We&#039;re going to be using it to create AX.25 network interfaces (/sm[0-9]*/ or /ax[0-9]*/).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== From Source: Ubuntu Karmic and Lucid ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.baycom.org/~tom/ham/soundmodem/soundmodem-0.18.tar.gz&lt;br /&gt;
sudo apt-get install libasound2-dev libxml2-dev libgtk2.0-dev libaudiofile-dev&lt;br /&gt;
&lt;br /&gt;
tar xvzf soundmodem-0.18.tar.gz&lt;br /&gt;
cd soundmodem-0.18&lt;br /&gt;
./configure &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
sudo mkdir /etc/ax25  ## or else it won&#039;t be able to save your configurations&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Configure it by running (as root) /usr/local/bin/soundmodemconfig.  It will open a window on your desktop with nothing in it.  Click File, New, Configuration.  Give your configuration a name (I used &#039;sm0&#039;).&lt;br /&gt;
&lt;br /&gt;
== Apt-Get: Ubuntu Lucid and Up ==&lt;br /&gt;
Gets you version 0.13 on Lucid, and 0.15 on Maverick and Natty&lt;br /&gt;
&lt;br /&gt;
As root do the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install soundmodem&lt;br /&gt;
mkdir /etc/ax25&lt;br /&gt;
soundmodemconfig /etc/ax25/soundmodem.conf #see below for configs&lt;br /&gt;
soundmodem /etc/ax25/soundmodem.conf -R -M &amp;gt;/dev/null 2&amp;gt;/dev/null&amp;amp; #this makes an awful noise when it works&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==On Fedora==&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo packer -S soundmodem ax25-apps ax25-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==On Slackware (current?)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.baycom.org/~tom/ham/soundmodem/soundmodem-0.18.tar.gz&lt;br /&gt;
&lt;br /&gt;
if [[ &amp;quot;$ARCH&amp;quot; == &amp;quot;x86_64&amp;quot; ]] ;then&lt;br /&gt;
  LIBDIRSUFFIX=&amp;quot;64&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
mkdir soundmodem-0.18-pkg&lt;br /&gt;
&lt;br /&gt;
tar xvzf soundmodem-0.18.tar.gz&lt;br /&gt;
cd soundmodem-0.18&lt;br /&gt;
./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX}&lt;br /&gt;
sudo make install DESTDIR=../soundmodem-0.18-pkg&lt;br /&gt;
cd ../soundmodem-0.18-pkg&lt;br /&gt;
makepkg -l y -c n /tmp/soundmodem-0.18-$ARCH-1_local.tgz&lt;br /&gt;
sudo mkdir /etc/ax25  ## or else it won&#039;t be able to save your configurations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
== IO Tab ==&lt;br /&gt;
On the I/O tab, choose your sound driver (out of soundcard, file, simulation, and alsa, I picked alsa).  You&#039;ll have to play around with the value of the ALSA Audio Driver field to get one that works.  On Windbringer, I used plughw:0,0.  Check half duplex for now.  Leave the Capture Channel field set to &#039;mono&#039;.  Set the PTT Driver field to &#039;none&#039; so Soundmodem will assume VOX.&lt;br /&gt;
&lt;br /&gt;
Haxwithaxe, Dan, and Mirage are working on PTT circuits for our radios.  It hasn&#039;t been an easy process because the Baofengs seem to kick out just enough EMI to make the circuits act weird as-is.  We have a few [https://drwho.virtadpt.net/archive/2013/05/31/project-byzantium-milestone-three-in-progress partial solutions] at this time.&lt;br /&gt;
&lt;br /&gt;
== Channel Access Tab ==&lt;br /&gt;
Don&#039;t change the settings on the Channel Access tab.&lt;br /&gt;
&lt;br /&gt;
== Channel 0 ==&lt;br /&gt;
Right below the name of your configuration in the tree you will see a new entry, Channel 0.  If you select it you&#039;ll be presented with three new tabs on the right.&lt;br /&gt;
&lt;br /&gt;
=== Modulator Tab ===&lt;br /&gt;
The possible values for the Mode selector are Off, fsk, afsk, pam, psk, and newqpsk.  I picked fsk because it grants the highest effective bit rate (9600 bps).  The values for Frequency 0 (1200), Frequency 1 (2200), and Filter (df9ic/g3ruh) were left set to defaults.  Leave Differential Encoding checked.&lt;br /&gt;
&lt;br /&gt;
=== Demodulator Tab ===&lt;br /&gt;
On the Demodulator tab (which governs decoding audio signals into bits) the options are much the same because they match the modulation scheme by default.  This is what we want.&lt;br /&gt;
&lt;br /&gt;
=== Packet IO Tab ===&lt;br /&gt;
On the Packet IO tab, the network/non-serial side of soundmodem is configured.  Pick an IP address, netmask, and broadcast addres for a regular network interface.  There are two options in the Mode selector, KISS and MKISS.  I went with the default (MKISS).  The network settings we used are:&lt;br /&gt;
* IP address: 44.x.y.z (pick something)&lt;br /&gt;
* Netmask: 255.0.0.0&lt;br /&gt;
* Broadcast: 44.255.255.255&lt;br /&gt;
&lt;br /&gt;
We&#039;re using the [https://en.wikipedia.org/wiki/AMPRNet AMPRnet] IP block which was set aside for amateur radio use.  We should probably use the private subnet of that, 44.128/16 because it&#039;s akin to the RFC-1918 subnets and is used for experimentation in this area.&lt;br /&gt;
&lt;br /&gt;
=== Audio settings ===&lt;br /&gt;
From alsamixer:&lt;br /&gt;
* Master: 100&lt;br /&gt;
* Headphone: 100&lt;br /&gt;
* Speaker: 55&lt;br /&gt;
* PCM: 55&lt;br /&gt;
* Mic: 55&lt;br /&gt;
* Mic Boost: 0&lt;br /&gt;
&lt;br /&gt;
If these settings are any more quiet, the radios&#039; PTT circuits won&#039;t trip.&lt;br /&gt;
&lt;br /&gt;
We also suggest setting the volume to between 60% and 100%.&lt;br /&gt;
&lt;br /&gt;
= Theory =&lt;br /&gt;
When running the soundmodem utility (&#039;&#039;&#039;soundmodem /etc/ax25/soundmodem.conf &amp;amp;&#039;&#039;&#039;), the daemon configures the sound card to send and receive bitstreams encoded as audio through the jacks in the soundcard.  It allocates a virtual network interface (sm0) which has a callsign associated with it which serves as the MAC address (relevant for ham radio, not so much for other applications) as well as an IP address, network mask, and broadcast address.  The idea is that whatever packets are sent through that network interface will be transparently converted into sound and transmitted using whatever device is connected to the headphone and microphone jacks of the computer.  Conversely, any data received by the broadcast device (ham radio, laser, etc) is demodulated into bits, encapsulated into network frames, and made available to the OS.&lt;br /&gt;
&lt;br /&gt;
In theory, it&#039;s just like a regular network connection, with all of the dynamics you&#039;d expect from IPv4.  This means that we can do things like IP multicasting over these links.  We discovered, through analyzing the code for a utility called [http://www.w1hkj.com/EasyPacket.html easypacket] that the Linux kernel treats AX.25 interfaces as real network interfaces, so much so that it sets up some iptables rules to prevent arbitrary traffic from being routed over them because there isn&#039;t much bandwidth.  We&#039;ll have to add that to our rules.  We tried setting up IPv6 addressing on some AX.25 interfaces and weren&#039;t able to.&lt;br /&gt;
&lt;br /&gt;
= Diagnostics, Testing, and Configuration =&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
Note: you can connect two computers mic-&amp;gt;headset to help check things are working before they hit the radio. ping and netcat (with -u option) are decent options for quick checks on rough sanity (the config not you :P).  Here&#039;s how we did it:&lt;br /&gt;
* Run a UDP server on one machine: &#039;&#039;&#039;ncat -n -l -v -u 5000&#039;&#039;&#039;&lt;br /&gt;
** -n == No DNS resolution&lt;br /&gt;
** -l == Listen for incoming connections (server mode)&lt;br /&gt;
** -v == Verbose&lt;br /&gt;
** -u == UDP&lt;br /&gt;
** 5000 == port number to listen on&lt;br /&gt;
* Connect to it from the other machine: &#039;&#039;&#039;ncat -u 44.x.y.z 5000&#039;&#039;&#039;&lt;br /&gt;
* Type something.  If it worked you&#039;ll see whatever the client typed showing up in the terminal on the server.&lt;br /&gt;
* Run a TCP server on one machine: &#039;&#039;&#039;ncat -n -l -v 8080&#039;&#039;&#039;&lt;br /&gt;
* Do the same thing for TCP (i.e., no -u options)&lt;br /&gt;
&lt;br /&gt;
How to use &#039;&#039;&#039;listen&#039;&#039;&#039; from the ax25-apps distribution:&lt;br /&gt;
* &#039;&#039;&#039;listen -a -c -r -t&#039;&#039;&#039;&lt;br /&gt;
** -a == Monitor outgoing frames as well as incoming ones&lt;br /&gt;
** -c == Colorize output&lt;br /&gt;
** -r == Display in a human-readable format&lt;br /&gt;
** -t == Timestamp every frame displayed&lt;br /&gt;
&lt;br /&gt;
Keep the volume low at first to avoid accidental overload of the other machine.  50% for every channel is a good place to start.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s where you debug your configuration.  It&#039;s going to take some flipping back and forth between tabs to get right the first time.&lt;br /&gt;
&lt;br /&gt;
soundmodemconfig now pops open windows with error output.&lt;br /&gt;
&lt;br /&gt;
The Diagnostics menu only appears when you have a channel (Channel 0) highlighted.&lt;br /&gt;
&lt;br /&gt;
The first option is Scope, for oscilloscope.  To get a test signal, click the PTT button (make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The second option is Spectrum, for spectrum analyzer of the signal being send to the sound card.  To get a test signal, click the PTT button (again, make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The third option, Modem, dumps the raw bitstreams that your soundcard-emulating-a-modem is sending and receiving.  Seeing strings of bits (even when disconnected) means that you have probably configured soundmodem correctly.&lt;br /&gt;
&lt;br /&gt;
I do not know what the AO40-P3D option does.  (It&#039;s an amateur satellite protocol thingy.  We don&#039;t need it?)&lt;br /&gt;
&lt;br /&gt;
To save your config file, use the File, Quit option.  It&#039;ll save it automagically to /etc/ax25/soundmodem.conf.&lt;br /&gt;
&lt;br /&gt;
=So, how is this supposed to work, anyway?=&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* Assume that you have a computer running Linux (or Windows if you dare) and soundmodem (aka &#039;&#039;&#039;PC&#039;&#039;&#039;). That has a pair of audio i/o:&lt;br /&gt;
** headphone (&#039;&#039;&#039;PC speaker&#039;&#039;&#039;)&lt;br /&gt;
** microphone/line in (&#039;&#039;&#039;PC mic&#039;&#039;&#039;)&lt;br /&gt;
* Assume that soundmodem is configured correctly.&lt;br /&gt;
* Assume that you have a transceiver (aka &#039;&#039;&#039;radio&#039;&#039;&#039;) - a black box that:&lt;br /&gt;
** That can receive and broadcast signals&lt;br /&gt;
** Has a pair of audio i/o:&lt;br /&gt;
*** speaker/headphone (aka &#039;&#039;&#039;radio speaker&#039;&#039;&#039;)&lt;br /&gt;
*** microphone (aka &#039;&#039;&#039;radio mic&#039;&#039;&#039;)&lt;br /&gt;
* Assume a method of PTT as described below is setup.&lt;br /&gt;
&lt;br /&gt;
===PTT===&lt;br /&gt;
Further assume that there is a mechanism to switch the radio from receive to transmit. Known here as &#039;&#039;&#039;PTT circuit&#039;&#039;&#039; for the purposes of brevity. This may be:&lt;br /&gt;
* the built in VOX circuit&lt;br /&gt;
* an external VOX circuit&lt;br /&gt;
* or a serial PTT circuit&lt;br /&gt;
Whenever a signal is sent to the PTT circuit, the black box stops receiving and transmits whatever signal it gets through its microphone jack.&lt;br /&gt;
Alternatively two radios one transmitting only and one receiving only (possibly on different channels) such that there is no need for drivers or a switching mechanism.&lt;br /&gt;
&lt;br /&gt;
===Hook-up===&lt;br /&gt;
* Connect radio speaker to PC mic.&lt;br /&gt;
* Then connect PC speaker to radio mic.&lt;br /&gt;
* If applicable: Attach the PTT circuit as appropriate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whenever a packet (say an ICMP4 echo request) is transmitted to the IP address of the AX.25 interface on PC, it is converted by soundmodem into modulated sound (aka &#039;&#039;&#039;audio data&#039;&#039;&#039;) which goes out through PC speaker to the radio mic.  The PTT circuit engages and the radio stops receiving and begins transmitting.  The radio receives the audio data and transmits it.  When the transmission is done the PTT circuit disengages and the radio stops transmitting and begins receiving.  Conversely, whenever the radio receives a signal, it converts it into audio data, which then goes through radio speaker into PC mic.  After the audio data is received by the PC soundmodem demodulates it into bits, packages them into IP packets, and drops it into the networking subsystem of the kernel.&lt;br /&gt;
&lt;br /&gt;
By using soundmodem we&#039;ll be setting up an AX.25 network interface that, insofar as we&#039;re concerned, acts just like an ethernet interface (just crazy slow, 9600bps at best 1200bps likely).  We can use ifconfig, route, and ip to configure it, IPtables to filter traffic, and /proc/net/ipv4/* to tweak it (and set up packet forwarding). IPv6 is not currently supported on AX.25 in the linux kernel (~v3.8.x).&lt;br /&gt;
&lt;br /&gt;
= Other resources =&lt;br /&gt;
*[http://www.febo.com/packet/layer-one/transmit.html Setting your TNC&#039;s audio drive level] (In other words, fix your volume!)&lt;br /&gt;
*[http://www.qbjnet.com/packet.html#soundmodem Using soundmodem with AX.25]&lt;br /&gt;
**Are we really going to bother with AX.25?&lt;br /&gt;
***AX.25 is used to transport TCP/IP over not-Ethernet.  It doesn&#039;t look that difficult to configure.&lt;br /&gt;
***What about using PPP?&lt;br /&gt;
**Has a few things about building PTT circuits.&lt;br /&gt;
**Has some notes on how to tune your laptop&#039;s sound levels for optimal operation.&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Amateur_Radio Amateur radio nodes] in the [https://wiki.archlinux.org/ Arch Linux wiki]&lt;br /&gt;
* Alternatives&lt;br /&gt;
** hardware [[HAM_TNC|TNC]]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9420</id>
		<title>Notes on Soundmodem</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9420"/>
		<updated>2013-06-10T17:26:13Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Diagnostics, Testing, and Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Byzantium]]&lt;br /&gt;
[http://www.baycom.org/~tom/ham/soundmodem/ Soundmodem] emulates a hardware TNC in software, vis a vis a daemon running in userspace.&lt;br /&gt;
&lt;br /&gt;
v0.18 is the latest (as of June 2013), I recommend using that.  It now only depends on two things, audiofile and gtk2.&lt;br /&gt;
&lt;br /&gt;
Soundmodem will either turn your soundcard into a KISS radiomodem (serial modem) or an AX.25 network interface.  We&#039;re going to be using it to create AX.25 network interfaces (/sm[0-9]*/ or /ax[0-9]*/).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== From Source: Ubuntu Karmic and Lucid ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.baycom.org/~tom/ham/soundmodem/soundmodem-0.18.tar.gz&lt;br /&gt;
sudo apt-get install libasound2-dev libxml2-dev libgtk2.0-dev libaudiofile-dev&lt;br /&gt;
&lt;br /&gt;
tar xvzf soundmodem-0.18.tar.gz&lt;br /&gt;
cd soundmodem-0.18&lt;br /&gt;
./configure &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
sudo mkdir /etc/ax25  ## or else it won&#039;t be able to save your configurations&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Configure it by running (as root) /usr/local/bin/soundmodemconfig.  It will open a window on your desktop with nothing in it.  Click File, New, Configuration.  Give your configuration a name (I used &#039;sm0&#039;).&lt;br /&gt;
&lt;br /&gt;
== Apt-Get: Ubuntu Lucid and Up ==&lt;br /&gt;
Gets you version 0.13 on Lucid, and 0.15 on Maverick and Natty&lt;br /&gt;
&lt;br /&gt;
As root do the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install soundmodem&lt;br /&gt;
mkdir /etc/ax25&lt;br /&gt;
soundmodemconfig /etc/ax25/soundmodem.conf #see below for configs&lt;br /&gt;
soundmodem /etc/ax25/soundmodem.conf -R -M &amp;gt;/dev/null 2&amp;gt;/dev/null&amp;amp; #this makes an awful noise when it works&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==On Fedora==&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo packer -S soundmodem ax25-apps ax25-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==On Slackware (current?)==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.baycom.org/~tom/ham/soundmodem/soundmodem-0.18.tar.gz&lt;br /&gt;
&lt;br /&gt;
if [[ &amp;quot;$ARCH&amp;quot; == &amp;quot;x86_64&amp;quot; ]] ;then&lt;br /&gt;
  LIBDIRSUFFIX=&amp;quot;64&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
mkdir soundmodem-0.18-pkg&lt;br /&gt;
&lt;br /&gt;
tar xvzf soundmodem-0.18.tar.gz&lt;br /&gt;
cd soundmodem-0.18&lt;br /&gt;
./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX}&lt;br /&gt;
sudo make install DESTDIR=../soundmodem-0.18-pkg&lt;br /&gt;
cd ../soundmodem-0.18-pkg&lt;br /&gt;
makepkg -l y -c n /tmp/soundmodem-0.18-$ARCH-1_local.tgz&lt;br /&gt;
sudo mkdir /etc/ax25  ## or else it won&#039;t be able to save your configurations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
== IO Tab ==&lt;br /&gt;
On the I/O tab, choose your sound driver (out of soundcard, file, simulation, and alsa, I picked alsa).  You&#039;ll have to play around with the value of the ALSA Audio Driver field to get one that works.  On Windbringer, I used plughw:0,0.  Check half duplex for now.  Leave the Capture Channel field set to &#039;mono&#039;.  I don&#039;t know what to set the PTT Driver field to yet, so I left it set to &#039;none&#039;.  My radios do VOX so I&#039;ve been experimenting with that.&lt;br /&gt;
&lt;br /&gt;
Haxwithaxe, Dan, and Mirage are working on PTT circuits for our radios.  It hasn&#039;t been an easy process because the Baofengs seem to kick out just enough EMI to make the circuits act weird as-is.  We have a few [https://drwho.virtadpt.net/archive/2013/05/31/project-byzantium-milestone-three-in-progress partial solutions] at this time.&lt;br /&gt;
&lt;br /&gt;
== Channel Access Tab ==&lt;br /&gt;
Don&#039;t change the settings on the Channel Access tab.&lt;br /&gt;
&lt;br /&gt;
== Channel 0 ==&lt;br /&gt;
Right below the name of your configuration in the tree you will see a new entry, Channel 0.  If you select it you&#039;ll be presented with three new tabs on the right.&lt;br /&gt;
&lt;br /&gt;
=== Modulator Tab ===&lt;br /&gt;
The possible values for the Mode selector are Off, fsk, afsk, pam, psk, and newqpsk.  I picked fsk because it grants the highest effective bit rate (9600 bps).  The values for Frequency 0 (1200), Frequency 1 (2200), and Filter (df9ic/g3ruh) were left set to defaults.  Leave Differential Encoding checked.&lt;br /&gt;
&lt;br /&gt;
=== Demodulator Tab ===&lt;br /&gt;
On the Demodulator tab (which governs decoding audio signals into bits) the options are much the same because they match the modulation scheme by default.  This is what we want.&lt;br /&gt;
&lt;br /&gt;
=== Packet IO Tab ===&lt;br /&gt;
On the Packet IO tab, the network/non-serial side of soundmodem is configured.  Pick an IP address, netmask, and broadcast addres for a regular network interface.  There are two options in the Mode selector, KISS and MKISS.  I went with the default (MKISS).  The network settings we used are:&lt;br /&gt;
* IP address: 44.x.y.z (pick something)&lt;br /&gt;
* Netmask: 255.0.0.0&lt;br /&gt;
* Broadcast: 44.255.255.255&lt;br /&gt;
&lt;br /&gt;
We&#039;re using the [https://en.wikipedia.org/wiki/AMPRNet AMPRnet] IP block which was set aside for amateur radio use.  We should probably use the private subnet of that, 44.128/16 because it&#039;s akin to the RFC-1918 subnets and is used for experimentation in this area.&lt;br /&gt;
&lt;br /&gt;
=== Audio settings ===&lt;br /&gt;
From alsamixer:&lt;br /&gt;
* Master: 13&lt;br /&gt;
* Headphone: 100&lt;br /&gt;
* Speaker: 94&lt;br /&gt;
* PCM: 76&lt;br /&gt;
* Mic: 37&lt;br /&gt;
* Mic Boost: 0&lt;br /&gt;
&lt;br /&gt;
= Theory =&lt;br /&gt;
When running the soundmodem utility (&#039;&#039;&#039;soundmodem /etc/ax25/soundmodem.conf &amp;amp;&#039;&#039;&#039;), the daemon configures the sound card to send and receive bitstreams encoded as audio through the jacks in the soundcard.  It allocates a virtual network interface (sm0) which has a callsign associated with it which serves as the MAC address (relevant for ham radio, not so much for other applications) as well as an IP address, network mask, and broadcast address.  The idea is that whatever packets are sent through that network interface will be transparently converted into sound and transmitted using whatever device is connected to the headphone and microphone jacks of the computer.  Conversely, any data received by the broadcast device (ham radio, laser, etc) is demodulated into bits, encapsulated into network frames, and made available to the OS.&lt;br /&gt;
&lt;br /&gt;
In theory, it&#039;s just like a regular network connection, with all of the dynamics you&#039;d expect from IPv4.  This means that we can do things like IP multicasting over these links.  We discovered, through analyzing the code for a utility called [http://www.w1hkj.com/EasyPacket.html easypacket] that the Linux kernel treats AX.25 interfaces as real network interfaces, so much so that it sets up some iptables rules to prevent arbitrary traffic from being routed over them because there isn&#039;t much bandwidth.  We&#039;ll have to add that to our rules.  We tried setting up IPv6 addressing on some AX.25 interfaces and weren&#039;t able to.&lt;br /&gt;
&lt;br /&gt;
= Diagnostics, Testing, and Configuration =&lt;br /&gt;
As root:&lt;br /&gt;
&lt;br /&gt;
Note: you can connect two computers mic-&amp;gt;headset to help check things are working before they hit the radio. ping and netcat (with -u option) are decent options for quick checks on rough sanity (the config not you :P).  Here&#039;s how we did it:&lt;br /&gt;
* Run a UDP server on one machine: &#039;&#039;&#039;ncat -n -l -v -u 5000&#039;&#039;&#039;&lt;br /&gt;
** -n == No DNS resolution&lt;br /&gt;
** -l == Listen for incoming connections (server mode)&lt;br /&gt;
** -v == Verbose&lt;br /&gt;
** -u == UDP&lt;br /&gt;
** 5000 == port number to listen on&lt;br /&gt;
* Connect to it from the other machine: &#039;&#039;&#039;ncat -u 44.x.y.z 5000&#039;&#039;&#039;&lt;br /&gt;
* Type something.  If it worked you&#039;ll see whatever the client typed showing up in the terminal on the server.&lt;br /&gt;
* Run a TCP server on one machine: &#039;&#039;&#039;ncat -n -l -v 8080&#039;&#039;&#039;&lt;br /&gt;
* Do the same thing for TCP (i.e., no -u options)&lt;br /&gt;
&lt;br /&gt;
How to use &#039;&#039;&#039;listen&#039;&#039;&#039; from the ax25-apps distribution:&lt;br /&gt;
* &#039;&#039;&#039;listen -a -c -r -t&#039;&#039;&#039;&lt;br /&gt;
** -a == Monitor outgoing frames as well as incoming ones&lt;br /&gt;
** -c == Colorize output&lt;br /&gt;
** -r == Display in a human-readable format&lt;br /&gt;
** -t == Timestamp every frame displayed&lt;br /&gt;
&lt;br /&gt;
Keep the volume low at first to avoid accidental overload of the other machine.  50% for every channel is a good place to start.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s where you debug your configuration.  It&#039;s going to take some flipping back and forth between tabs to get right the first time.&lt;br /&gt;
&lt;br /&gt;
soundmodemconfig now pops open windows with error output.&lt;br /&gt;
&lt;br /&gt;
The Diagnostics menu only appears when you have a channel (Channel 0) highlighted.&lt;br /&gt;
&lt;br /&gt;
The first option is Scope, for oscilloscope.  To get a test signal, click the PTT button (make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The second option is Spectrum, for spectrum analyzer of the signal being send to the sound card.  To get a test signal, click the PTT button (again, make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The third option, Modem, dumps the raw bitstreams that your soundcard-emulating-a-modem is sending and receiving.  Seeing strings of bits (even when disconnected) means that you have probably configured soundmodem correctly.&lt;br /&gt;
&lt;br /&gt;
I do not know what the AO40-P3D option does.  (It&#039;s an amateur satellite protocol thingy.  We don&#039;t need it?)&lt;br /&gt;
&lt;br /&gt;
To save your config file, use the File, Quit option.  It&#039;ll save it automagically to /etc/ax25/soundmodem.conf.&lt;br /&gt;
&lt;br /&gt;
=So, how is this supposed to work, anyway?=&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
* Assume that you have a computer running Linux (or Windows if you dare) and soundmodem (aka &#039;&#039;&#039;PC&#039;&#039;&#039;). That has a pair of audio i/o:&lt;br /&gt;
** headphone (&#039;&#039;&#039;PC speaker&#039;&#039;&#039;)&lt;br /&gt;
** microphone/line in (&#039;&#039;&#039;PC mic&#039;&#039;&#039;)&lt;br /&gt;
* Assume that soundmodem is configured correctly.&lt;br /&gt;
* Assume that you have a transceiver (aka &#039;&#039;&#039;radio&#039;&#039;&#039;) - a black box that:&lt;br /&gt;
** That can receive and broadcast signals&lt;br /&gt;
** Has a pair of audio i/o:&lt;br /&gt;
*** speaker/headphone (aka &#039;&#039;&#039;radio speaker&#039;&#039;&#039;)&lt;br /&gt;
*** microphone (aka &#039;&#039;&#039;radio mic&#039;&#039;&#039;)&lt;br /&gt;
* Assume a method of PTT as described below is setup.&lt;br /&gt;
&lt;br /&gt;
===PTT===&lt;br /&gt;
Further assume that there is a mechanism to switch the radio from receive to transmit. Known here as &#039;&#039;&#039;PTT circuit&#039;&#039;&#039; for the purposes of brevity. This may be:&lt;br /&gt;
* the built in VOX circuit&lt;br /&gt;
* an external VOX circuit&lt;br /&gt;
* or a serial PTT circuit&lt;br /&gt;
Whenever a signal is sent to the PTT circuit, the black box stops receiving and transmits whatever signal it gets through its microphone jack.&lt;br /&gt;
Alternatively two radios one transmitting only and one receiving only (possibly on different channels) such that there is no need for drivers or a switching mechanism.&lt;br /&gt;
&lt;br /&gt;
===Hook-up===&lt;br /&gt;
* Connect radio speaker to PC mic.&lt;br /&gt;
* Then connect PC speaker to radio mic.&lt;br /&gt;
* If applicable: Attach the PTT circuit as appropriate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whenever a packet (say an ICMP4 echo request) is transmitted to the IP address of the AX.25 interface on PC, it is converted by soundmodem into modulated sound (aka &#039;&#039;&#039;audio data&#039;&#039;&#039;) which goes out through PC speaker to the radio mic.  The PTT circuit engages and the radio stops receiving and begins transmitting.  The radio receives the audio data and transmits it.  When the transmission is done the PTT circuit disengages and the radio stops transmitting and begins receiving.  Conversely, whenever the radio receives a signal, it converts it into audio data, which then goes through radio speaker into PC mic.  After the audio data is received by the PC soundmodem demodulates it into bits, packages them into IP packets, and drops it into the networking subsystem of the kernel.&lt;br /&gt;
&lt;br /&gt;
By using soundmodem we&#039;ll be setting up an AX.25 network interface that, insofar as we&#039;re concerned, acts just like an ethernet interface (just crazy slow, 9600bps at best 1200bps likely).  We can use ifconfig, route, and ip to configure it, IPtables to filter traffic, and /proc/net/ipv4/* to tweak it (and set up packet forwarding). IPv6 is not currently supported on AX.25 in the linux kernel (~v3.8.x).&lt;br /&gt;
&lt;br /&gt;
= Other resources =&lt;br /&gt;
*[http://www.febo.com/packet/layer-one/transmit.html Setting your TNC&#039;s audio drive level] (In other words, fix your volume!)&lt;br /&gt;
*[http://www.qbjnet.com/packet.html#soundmodem Using soundmodem with AX.25]&lt;br /&gt;
**Are we really going to bother with AX.25?&lt;br /&gt;
***AX.25 is used to transport TCP/IP over not-Ethernet.  It doesn&#039;t look that difficult to configure.&lt;br /&gt;
***What about using PPP?&lt;br /&gt;
**Has a few things about building PTT circuits.&lt;br /&gt;
**Has some notes on how to tune your laptop&#039;s sound levels for optimal operation.&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Amateur_Radio Amateur radio nodes] in the [https://wiki.archlinux.org/ Arch Linux wiki]&lt;br /&gt;
* Alternatives&lt;br /&gt;
** hardware [[HAM_TNC|TNC]]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9411</id>
		<title>Notes on Soundmodem</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9411"/>
		<updated>2013-06-02T21:42:51Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Byzantium]]&lt;br /&gt;
[http://www.baycom.org/~tom/ham/soundmodem/ Soundmodem] emulates a hardware modulator/demodulator in software, vis a vis a daemon running in userspace.&lt;br /&gt;
&lt;br /&gt;
v0.18 is the latest, I recommend using that.  It now only depends on two things, audiofile and gtk2.&lt;br /&gt;
&lt;br /&gt;
Soundmodem will either turn your soundcard into a KISS radiomodem or an AX.25 network interface.  We&#039;re going to be using it to create AX.25 network interfaces (/sm[0-9]*/).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== From Source: Ubuntu Karmic and Lucid ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.baycom.org/~tom/ham/soundmodem/soundmodem-0.18.tar.gz&lt;br /&gt;
sudo apt-get install libasound2-dev libxml2-dev libgtk2.0-dev libaudiofile-dev&lt;br /&gt;
&lt;br /&gt;
tar xvzf soundmodem-0.18.tar.gz&lt;br /&gt;
cd soundmodem-0.18&lt;br /&gt;
./configure &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
sudo mkdir /etc/ax25  ## or else it won&#039;t be able to save your configurations&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Configure it by running (as root) /usr/local/bin/soundmodemconfig.  It will open a window on your desktop with nothing in it.  Click File, New, Configuration.  Give your configuration a name (I used &#039;sm0&#039;).&lt;br /&gt;
&lt;br /&gt;
== Apt-Get: Ubuntu Lucid and Up ==&lt;br /&gt;
Gets you version 0.13 on Lucid, and 0.15 on Maverick and Natty&lt;br /&gt;
&lt;br /&gt;
As root do the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install soundmodem&lt;br /&gt;
mkdir /etc/ax25&lt;br /&gt;
soundmodemconfig /etc/ax25/soundmodem.conf #see below for configs&lt;br /&gt;
soundmodem /etc/ax25/soundmodem.conf -R -M &amp;gt;/dev/null 2&amp;gt;/dev/null&amp;amp; #this makes an awful noise when it works&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==On Fedora==&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo packer -S soundmodem ax25-apps ax25-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
== IO Tab ==&lt;br /&gt;
On the I/O tab, choose your sound driver (out of soundcard, file, simulation, and alsa, I picked alsa).  You&#039;ll have to play around with the value of the ALSA Audio Driver field to get one that works.  On Windbringer, I used plughw:0,0.  Check half duplex for now.  Leave the Capture Channel field set to &#039;mono&#039;.  I don&#039;t know what to set the PTT Driver field to yet, so I left it set to &#039;none&#039;.  My radios do VOX so I&#039;ve been experimenting with that.&lt;br /&gt;
&lt;br /&gt;
Haxwithaxe, Dan, and Mirage are working on PTT circuits for our radios.  It hasn&#039;t been an easy process because the Baofengs seem to kick out just enough EMI to make the circuits act weird as-is.  We have a few [https://drwho.virtadpt.net/archive/2013/05/31/project-byzantium-milestone-three-in-progress partial solutions] at this time.&lt;br /&gt;
&lt;br /&gt;
== Channel Access Tab ==&lt;br /&gt;
Don&#039;t change the settings on the Channel Access tab.&lt;br /&gt;
&lt;br /&gt;
== Channel 0 ==&lt;br /&gt;
Right below the name of your configuration in the tree you will see a new entry, Channel 0.  If you select it you&#039;ll be presented with three new tabs on the right.&lt;br /&gt;
&lt;br /&gt;
=== Modulator Tab ===&lt;br /&gt;
The possible values for the Mode selector are Off, fsk, afsk, pam, psk, and newqpsk.  I picked fsk because it grants the highest effective bit rate (9600 bps).  The values for Frequency 0 (1200), Frequency 1 (2200), and Filter (df9ic/g3ruh) were left set to defaults.  Leave Differential Encoding checked.&lt;br /&gt;
&lt;br /&gt;
=== Demodulator Tab ===&lt;br /&gt;
On the Demodulator tab (which governs decoding audio signals into bits) the options are much the same because they match the modulation scheme by default.  This is what we want.&lt;br /&gt;
&lt;br /&gt;
=== Packet IO Tab ===&lt;br /&gt;
On the Packet IO tab, the network/non-serial side of soundmodem is configured.  Pick an IP address, netmask, and broadcast addres for a regular network interface.  There are two options in the Mode selector, KISS and MKISS.  I went with the default (MKISS).  The network settings we used are:&lt;br /&gt;
* IP address: 44.x.y.z (pick something)&lt;br /&gt;
* Netmask: 255.0.0.0&lt;br /&gt;
* Broadcast: 44.255.255.255&lt;br /&gt;
&lt;br /&gt;
We&#039;re using the [https://en.wikipedia.org/wiki/AMPRNet AMPRnet] IP block which was set aside for amateur radio use.  We should probably use the private subnet of that, 44.128/16 because it&#039;s akin to the RFC-1918 subnets and is used for experimentation in this area.&lt;br /&gt;
&lt;br /&gt;
=== Audio settings ===&lt;br /&gt;
From alsamixer:&lt;br /&gt;
* Master: 13&lt;br /&gt;
* Headphone: 100&lt;br /&gt;
* Speaker: 94&lt;br /&gt;
* PCM: 76&lt;br /&gt;
* Mic: 37&lt;br /&gt;
* Mic Boost: 0&lt;br /&gt;
&lt;br /&gt;
= Theory =&lt;br /&gt;
When running the soundmodem utility (&#039;&#039;&#039;soundmodem /etc/ax25/soundmodem.conf &amp;amp;&#039;&#039;&#039;), the daemon configures the sound card to send and receive bitstreams encoded as audio through the jacks in the soundcard.  It allocates a virtual network interface (sm0) which has a callsign associated with it which serves as the MAC address (relevant for ham radio, not so much for other applications) as well as an IP address, network mask, and broadcast address.  The idea is that whatever packets are sent through that network interface will be transparently converted into sound and transmitted using whatever device is connected to the headphone and microphone jacks of the computer.  Conversely, any data received by the broadcast device (ham radio, laser, etc) is demodulated into bits, encapsulated into network frames, and made available to the OS.&lt;br /&gt;
&lt;br /&gt;
In theory, it&#039;s just like a regular network connection, with all of the dynamics you&#039;d expect from IPv4.  This means that we can do things like IP multicasting over these links.  We discovered, through analyzing the code for a utility called [http://www.w1hkj.com/EasyPacket.html easypacket] that the Linux kernel treats AX.25 interfaces as real network interfaces, so much so that it sets up some iptables rules to prevent arbitrary traffic from being routed over them because there isn&#039;t much bandwidth.  We&#039;ll have to add that to our rules.  We tried setting up IPv6 addressing on some AX.25 interfaces and weren&#039;t able to.&lt;br /&gt;
&lt;br /&gt;
= Diagnostics, Testing, and Configuration =&lt;br /&gt;
Here&#039;s where you debug your configuration.  It&#039;s going to take some flipping back and forth between tabs to get right the first time.&lt;br /&gt;
&lt;br /&gt;
soundmodemconfig now pops open windows with error output.&lt;br /&gt;
&lt;br /&gt;
The Diagnostics menu only appears when you have a channel (Channel 0) highlighted.&lt;br /&gt;
&lt;br /&gt;
The first option is Scope, for oscilloscope.  To get a test signal, click the PTT button (make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The second option is Spectrum, for spectrum analyzer of the signal being send to the sound card.  To get a test signal, click the PTT button (again, make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The third option, Modem, dumps the raw bitstreams that your soundcard-emulating-a-modem is sending and receiving.  Seeing strings of bits (even when disconnected) means that you have probably configured soundmodem correctly.&lt;br /&gt;
&lt;br /&gt;
I do not know what the AO40-P3D option does.  (It&#039;s an amateur satellite protocol thingy.  We don&#039;t need it?)&lt;br /&gt;
&lt;br /&gt;
To save your config file, use the File, Quit option.  It&#039;ll save it automagically to /etc/ax25/soundmodem.conf.&lt;br /&gt;
&lt;br /&gt;
= So, how is this supposed to work, anyway? =&lt;br /&gt;
Assume that you have a laptop running Linux (or Windows if you dare) and soundmodem.  Assume that soundmodem is configured correctly.  Assume that you have a transceiver - a black box that has a pair of audio jacks (speaker and microphone) on the back, can receive signals, and can broadcast signals.&lt;br /&gt;
&lt;br /&gt;
Further assume that there is a third jack on the black box which plugs into the USB port of a computer.  Whenever a signal is sent to that jack, the black box stops receiving and transmits whatever signal it gets through its microphone jack. Alternatively two radios one transmitting only and one receiving only (possibly on different channels) such that there is no need for drivers or a switching mechanism.&lt;br /&gt;
&lt;br /&gt;
You&#039;d connect the speaker jack on the black box into the microphone jack on your laptop.  You would then connect the headphone jack of your laptop into the microphone jack of the black box.  Then plug the push-to-talk USB jack of the black box into a USB port on your laptop.&lt;br /&gt;
&lt;br /&gt;
Whenever a packet (say an ICMP4 echo request) is transmitted to the IP address of device sm0 on your laptop, it is converted by the soundmodem daemon into modulated sound which goes out through the headphone jack to the black box.  The push-to-talk circuit engages and the black box stops receiving and goes into transmit mode.  The black box receives that modulated static and broadcasts it.  When the broadcast is done the PTT disengages and the black box goes back into receive mode.  Conversely, whenever the black box picks up a signal it converts it into modulated static, which then goes out through its speaker jack into the microphone jack of your laptop.  After the signal hits the mic jack, the soundmodem daemon demodulates the static into bits, packages them into an IP packet, and drops it into the networking subsystem of the kernel.&lt;br /&gt;
&lt;br /&gt;
By using soundmodem we&#039;ll be setting up a virtual AX.25 network interface that, insofar as we&#039;re concerned, acts just like an ethernet interface.  We can use ifconfig, route, and ip to configure it, IPtables to filter traffic, and /proc/net/ipv4/* to tweak it (and set up packet forwarding).&lt;br /&gt;
&lt;br /&gt;
= Other resources =&lt;br /&gt;
*[http://www.febo.com/packet/layer-one/transmit.html Setting your TNC&#039;s audio drive level] (In other words, fix your volume!)&lt;br /&gt;
*[http://www.qbjnet.com/packet.html#soundmodem Using soundmodem with AX.25]&lt;br /&gt;
**Are we really going to bother with AX.25?&lt;br /&gt;
***AX.25 is used to transport TCP/IP over not-Ethernet.  It doesn&#039;t look that difficult to configure.&lt;br /&gt;
***What about using PPP?&lt;br /&gt;
**Has a few things about building PTT circuits.&lt;br /&gt;
**Has some notes on how to tune your laptop&#039;s sound levels for optimal operation.&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Amateur_Radio Amateur radio nodes] in the [https://wiki.archlinux.org/ Arch Linux wiki]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9410</id>
		<title>Notes on Soundmodem</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Notes_on_Soundmodem&amp;diff=9410"/>
		<updated>2013-06-02T18:25:18Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Byzantium]]&lt;br /&gt;
[http://www.baycom.org/~tom/ham/soundmodem/ Soundmodem] emulates a hardware modulator/demodulator in software, vis a vis a daemon running in userspace.&lt;br /&gt;
&lt;br /&gt;
v0.18 is the latest, I recommend using that.  It now only depends on two things, audiofile and gtk2.&lt;br /&gt;
&lt;br /&gt;
Soundmodem will either turn your soundcard into a KISS radiomodem or an AX.25 network interface.  We&#039;re going to be using it to create AX.25 network interfaces (/sm[0-9]*/).&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== From Source: Ubuntu Karmic and Lucid ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.baycom.org/~tom/ham/soundmodem/soundmodem-0.18.tar.gz&lt;br /&gt;
sudo apt-get install libasound2-dev libxml2-dev libgtk2.0-dev libaudiofile-dev&lt;br /&gt;
&lt;br /&gt;
tar xvzf soundmodem-0.18.tar.gz&lt;br /&gt;
cd soundmodem-0.18&lt;br /&gt;
./configure &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
sudo mkdir /etc/ax25  ## or else it won&#039;t be able to save your configurations&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Configure it by running (as root) /usr/local/bin/soundmodemconfig.  It will open a window on your desktop with nothing in it.  Click File, New, Configuration.  Give your configuration a name (I used &#039;sm0&#039;).&lt;br /&gt;
&lt;br /&gt;
== Apt-Get: Ubuntu Lucid and Up ==&lt;br /&gt;
Gets you version 0.13 on Lucid, and 0.15 on Maverick and Natty&lt;br /&gt;
&lt;br /&gt;
As root do the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install soundmodem&lt;br /&gt;
mkdir /etc/ax25&lt;br /&gt;
soundmodemconfig /etc/ax25/soundmodem.conf #see below for configs&lt;br /&gt;
soundmodem /etc/ax25/soundmodem.conf -R -M &amp;gt;/dev/null 2&amp;gt;/dev/null&amp;amp; #this makes an awful noise when it works&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==On Fedora==&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
==Arch Linux==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo packer -S soundmodem ax25-apps ax25-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
== IO Tab ==&lt;br /&gt;
On the I/O tab, choose your sound driver (out of soundcard, file, simulation, and alsa, I picked alsa).  You&#039;ll have to play around with the value of the ALSA Audio Driver field to get one that works.  On Windbringer, I used plughw:0,0.  Check half duplex for now.  Leave the Capture Channel field set to &#039;mono&#039;.  I don&#039;t know what to set the PTT Driver field to yet, so I left it set to &#039;none&#039;.  My radios do VOX so I&#039;ve been experimenting with that.&lt;br /&gt;
&lt;br /&gt;
Haxwithaxe, Dan, and Mirage are working on PTT circuits for our radios.  It hasn&#039;t been an easy process because the Baofengs seem to kick out just enough EMI to make the circuits act weird as-is.  We have a few [https://drwho.virtadpt.net/archive/2013/05/31/project-byzantium-milestone-three-in-progress partial solutions] at this time.&lt;br /&gt;
&lt;br /&gt;
== Channel Access Tab ==&lt;br /&gt;
Don&#039;t change the settings on the Channel Access tab.&lt;br /&gt;
&lt;br /&gt;
== Channel 0 ==&lt;br /&gt;
Right below the name of your configuration in the tree you will see a new entry, Channel 0.  If you select it you&#039;ll be presented with three new tabs on the right.&lt;br /&gt;
&lt;br /&gt;
=== Modulator Tab ===&lt;br /&gt;
The possible values for the Mode selector are Off, fsk, afsk, pam, psk, and newqpsk.  I picked fsk because it grants the highest effective bit rate (9600 bps).  The values for Frequency 0 (1200), Frequency 1 (2200), and Filter (df9ic/g3ruh) were left set to defaults.  Leave Differential Encoding checked.&lt;br /&gt;
&lt;br /&gt;
=== Demodulator Tab ===&lt;br /&gt;
On the Demodulator tab (which governs decoding audio signals into bits) the options are much the same because they match the modulation scheme by default.  This is what we want.&lt;br /&gt;
&lt;br /&gt;
=== Packet IO Tab ===&lt;br /&gt;
On the Packet IO tab, the network/non-serial side of soundmodem is configured.  Pick an IP address, netmask, and broadcast addres for a regular network interface.  There are two options in the Mode selector, KISS and MKISS.  I went with the default (MKISS).  The network settings we used are:&lt;br /&gt;
* IP address: 44.x.y.z (pick something)&lt;br /&gt;
* Netmask: 255.0.0.0&lt;br /&gt;
* Broadcast: 44.255.255.255&lt;br /&gt;
&lt;br /&gt;
We&#039;re using the [https://en.wikipedia.org/wiki/AMPRNet AMPRnet] IP block which was set aside for amateur radio use.  We should probably use the private subnet of that, 44.128/16 because it&#039;s akin to the RFC-1918 subnets and is used for experimentation in this area.&lt;br /&gt;
&lt;br /&gt;
= Theory =&lt;br /&gt;
When running the soundmodem utility (&#039;&#039;&#039;soundmodem /etc/ax25/soundmodem.conf &amp;amp;&#039;&#039;&#039;), the daemon configures the sound card to send and receive bitstreams encoded as audio through the jacks in the soundcard.  It allocates a virtual network interface (sm0) which has a callsign associated with it which serves as the MAC address (relevant for ham radio, not so much for other applications) as well as an IP address, network mask, and broadcast address.  The idea is that whatever packets are sent through that network interface will be transparently converted into sound and transmitted using whatever device is connected to the headphone and microphone jacks of the computer.  Conversely, any data received by the broadcast device (ham radio, laser, etc) is demodulated into bits, encapsulated into network frames, and made available to the OS.&lt;br /&gt;
&lt;br /&gt;
In theory, it&#039;s just like a regular network connection, with all of the dynamics you&#039;d expect from IPv4.  This means that we can do things like IP multicasting over these links.  We discovered, through analyzing the code for a utility called [http://www.w1hkj.com/EasyPacket.html easypacket] that the Linux kernel treats AX.25 interfaces as real network interfaces, so much so that it sets up some iptables rules to prevent arbitrary traffic from being routed over them because there isn&#039;t much bandwidth.  We&#039;ll have to add that to our rules.  We tried setting up IPv6 addressing on some AX.25 interfaces and weren&#039;t able to.&lt;br /&gt;
&lt;br /&gt;
= Diagnostics, Testing, and Configuration =&lt;br /&gt;
Here&#039;s where you debug your configuration.  It&#039;s going to take some flipping back and forth between tabs to get right the first time.&lt;br /&gt;
&lt;br /&gt;
soundmodemconfig now pops open windows with error output.&lt;br /&gt;
&lt;br /&gt;
The Diagnostics menu only appears when you have a channel (Channel 0) highlighted.&lt;br /&gt;
&lt;br /&gt;
The first option is Scope, for oscilloscope.  To get a test signal, click the PTT button (make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The second option is Spectrum, for spectrum analyzer of the signal being send to the sound card.  To get a test signal, click the PTT button (again, make sure your speakers are turned down!)&lt;br /&gt;
&lt;br /&gt;
The third option, Modem, dumps the raw bitstreams that your soundcard-emulating-a-modem is sending and receiving.  Seeing strings of bits (even when disconnected) means that you have probably configured soundmodem correctly.&lt;br /&gt;
&lt;br /&gt;
I do not know what the AO40-P3D option does.  (It&#039;s an amateur satellite protocol thingy.  We don&#039;t need it?)&lt;br /&gt;
&lt;br /&gt;
To save your config file, use the File, Quit option.  It&#039;ll save it automagically to /etc/ax25/soundmodem.conf.&lt;br /&gt;
&lt;br /&gt;
= So, how is this supposed to work, anyway? =&lt;br /&gt;
Assume that you have a laptop running Linux (or Windows if you dare) and soundmodem.  Assume that soundmodem is configured correctly.  Assume that you have a transceiver - a black box that has a pair of audio jacks (speaker and microphone) on the back, can receive signals, and can broadcast signals.&lt;br /&gt;
&lt;br /&gt;
Further assume that there is a third jack on the black box which plugs into the USB port of a computer.  Whenever a signal is sent to that jack, the black box stops receiving and transmits whatever signal it gets through its microphone jack. Alternatively two radios one transmitting only and one receiving only (possibly on different channels) such that there is no need for drivers or a switching mechanism.&lt;br /&gt;
&lt;br /&gt;
You&#039;d connect the speaker jack on the black box into the microphone jack on your laptop.  You would then connect the headphone jack of your laptop into the microphone jack of the black box.  Then plug the push-to-talk USB jack of the black box into a USB port on your laptop.&lt;br /&gt;
&lt;br /&gt;
Whenever a packet (say an ICMP4 echo request) is transmitted to the IP address of device sm0 on your laptop, it is converted by the soundmodem daemon into modulated sound which goes out through the headphone jack to the black box.  The push-to-talk circuit engages and the black box stops receiving and goes into transmit mode.  The black box receives that modulated static and broadcasts it.  When the broadcast is done the PTT disengages and the black box goes back into receive mode.  Conversely, whenever the black box picks up a signal it converts it into modulated static, which then goes out through its speaker jack into the microphone jack of your laptop.  After the signal hits the mic jack, the soundmodem daemon demodulates the static into bits, packages them into an IP packet, and drops it into the networking subsystem of the kernel.&lt;br /&gt;
&lt;br /&gt;
By using soundmodem we&#039;ll be setting up a virtual AX.25 network interface that, insofar as we&#039;re concerned, acts just like an ethernet interface.  We can use ifconfig, route, and ip to configure it, IPtables to filter traffic, and /proc/net/ipv4/* to tweak it (and set up packet forwarding).&lt;br /&gt;
&lt;br /&gt;
= Other resources =&lt;br /&gt;
*[http://www.febo.com/packet/layer-one/transmit.html Setting your TNC&#039;s audio drive level] (In other words, fix your volume!)&lt;br /&gt;
*[http://www.qbjnet.com/packet.html#soundmodem Using soundmodem with AX.25]&lt;br /&gt;
**Are we really going to bother with AX.25?&lt;br /&gt;
***AX.25 is used to transport TCP/IP over not-Ethernet.  It doesn&#039;t look that difficult to configure.&lt;br /&gt;
***What about using PPP?&lt;br /&gt;
**Has a few things about building PTT circuits.&lt;br /&gt;
**Has some notes on how to tune your laptop&#039;s sound levels for optimal operation.&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/Amateur_Radio Amateur radio nodes] in the [https://wiki.archlinux.org/ Arch Linux wiki]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Anti-Harassment_Policy&amp;diff=9082</id>
		<title>Anti-Harassment Policy</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Anti-Harassment_Policy&amp;diff=9082"/>
		<updated>2013-03-13T00:57:48Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;The policies below are proposals that we hope to have in a form that can be approved by member vote at the 2013 annual meeting. Discussion is encouraged, particularly on the members@hacdc.org mailing list.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Proposal 1  - Katie ==&lt;br /&gt;
&#039;&#039;This anti-harassment policy is based on [http://geekfeminism.wikia.com/wiki/Conference_anti-harassment the example policy from the Geek Feminism wiki], created by the Ada Initiative and other volunteers.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HacDC is dedicated to being a harassment-free hackerspace for everyone. We do not tolerate harassment of members or visitors in any form. &lt;br /&gt;
&lt;br /&gt;
Harassment includes but is not limited to offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, or religion; sexual images in public spaces; deliberate intimidation, stalking, following, harassing photography or recording; sustained disruption of talks or other events; inappropriate physical contact; unwelcome sexual attention; or violation of any applicable laws. Members and visitors asked to stop any harassing behavior are expected to comply immediately.&lt;br /&gt;
&lt;br /&gt;
If a member or visitor engages in harassing behavior, the board of directors or event organizer may take any action they deem appropriate, including warning the offender or expulsion from the space or event with no refund. Members violating these rules may be subject to termination of their HacDC membership. If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of the board of directors or the event organizer immediately.&lt;br /&gt;
&lt;br /&gt;
Members of the board of directors and event organizers will happily help members and visitors contact building security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe and prevent harassment for the duration of their visit at HacDC. We value your attendance.&lt;br /&gt;
&lt;br /&gt;
bod@hacdc.org&lt;br /&gt;
Building security guard hours: Monday - Thursday 6pm - 10pm; Saturday 9am - 2pm&lt;br /&gt;
DC emergency services: 911&lt;br /&gt;
National sexual assault hotline: 1-800-656-HOPE&lt;br /&gt;
DC Rape Crisis Center: 202-333-RAPE&lt;br /&gt;
DC Yellow Cab: 202-TAXICAB&lt;br /&gt;
[http://huhealthcare.com Howard University Hospital]: (202)865-6100 / 2041 Georgia Avenue NW&lt;br /&gt;
[http://gwhospital.com GWU Hospital]: (202) 715-4000 / 900 23rd Street NW&lt;br /&gt;
&lt;br /&gt;
We expect members and visitors to follow these rules at all HacDC-organized events, in the space itself, and in our online spaces including mailing lists and the official IRC channel.&lt;br /&gt;
&lt;br /&gt;
== Proposal 2 - Loki ==&lt;br /&gt;
If you feel you are being harassed, please inform those around you.  If you are uncomfortable informing those around you, or If this does not resolve the issue, you may bring the issue to the attention of the Board of Directors.  The Board of Directors are empowered to take any actions they deem necessary, up to and including recommending the revocation of membership status.&lt;br /&gt;
&lt;br /&gt;
If you feel a crime has occurred, please contact the police immediately.&lt;br /&gt;
&lt;br /&gt;
Example of harassment may include, but are not limited to:&lt;br /&gt;
* Persistant offensive speech directed at you;&lt;br /&gt;
* Deliberate intimidation, stalking, following, harassing photography or recording;&lt;br /&gt;
* Sustained disruption of talks or other events;&lt;br /&gt;
* Intentional inappropriate physical contact;&lt;br /&gt;
* Unwelcome sexual attention;&lt;br /&gt;
* Violation of any applicable laws.&lt;br /&gt;
&lt;br /&gt;
== Proposal Gimel - Discussion of topics  ==&lt;br /&gt;
It has been suggested that future discussion of the topic of harassment and the harassment policy at HacDC use a similar strategy applied to such topics (including harassment, assault, and sexual abuse) in other communities, that called Buddhist Right Speech.  Following are a few links to what this is and where it&#039;s been applied.&lt;br /&gt;
&lt;br /&gt;
* [http://ieet.org/index.php/IEET/more/5911 &#039;Right Speech&#039; Policy at ieet.org]&lt;br /&gt;
* [http://buddhism.about.com/od/theeightfoldpath/a/rightspeech.htm About Right Speech]&lt;br /&gt;
* [http://www.thebigview.com/buddhism/eightfoldpath.html#Right_Speech Right Speech]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Hardware_compatibility_list&amp;diff=7572</id>
		<title>Hardware compatibility list</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Hardware_compatibility_list&amp;diff=7572"/>
		<updated>2012-06-23T21:46:40Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Byzantium]]&lt;br /&gt;
*Dell Inspiron 1520&lt;br /&gt;
** Intel 3945 wireless chipset&lt;br /&gt;
** Broadcom BCM4401-B0 ethernet chipset&lt;br /&gt;
*Asus EeePC 900&lt;br /&gt;
** Atheros AR5001 rev. 01 wireless chipset&lt;br /&gt;
** Atheros L2 Fast Ethernet rev. a0 ethernet chipset&lt;br /&gt;
*HP Pavilion dv6000&lt;br /&gt;
** Atheros AR242x rev. 01 wireless chipset&lt;br /&gt;
** nVidia MCP67 rev. a2 ethernet chipset&lt;br /&gt;
*Novatech generic laptop&lt;br /&gt;
** Atheros AR9285 rev. 01 wireless chipset&lt;br /&gt;
** USB tether to Smartphone for Internet uplink (usb0, reported as a wireless device but still was able to configure as the gateway device).&lt;br /&gt;
*Sony Viao PCG 71312M&lt;br /&gt;
**Atheros AR285 Wireless&lt;br /&gt;
**Marvell Yukon 88E8059 Gigabit ethernet&lt;br /&gt;
*IBM Thinkpad, model unknown&lt;br /&gt;
**Intel Advanced-N 6200 wireless chipset (added firmware to Byzantium Linux)&lt;br /&gt;
**Intel 82755LM Gigabit ethernet chipset&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7525</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7525"/>
		<updated>2012-05-26T02:59:29Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** boost&lt;br /&gt;
** celt&lt;br /&gt;
** CherryPy&lt;br /&gt;
** cryptoki&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mumble&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** protobuf&lt;br /&gt;
** pyOpenSSL&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** qt&lt;br /&gt;
** qwebirc&lt;br /&gt;
** rrdtool&lt;br /&gt;
** speex&lt;br /&gt;
** sudo&lt;br /&gt;
** truecrypt&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** wxGTK&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../service_directory&lt;br /&gt;
* cp index.html /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp services.py /tmp/fakeroot/srv/httpd/cgi-bin&lt;br /&gt;
* chmod 0755 /tmp/fakeroot/srv/httpd/cgi-bin/services.py&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd/cgi-bin/printenv /tmp/fakeroot/srv/httpd/cgi-bin&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp sudo/etc/sudoers /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc&lt;br /&gt;
* chmod 0440 /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow /tmp/fakeroot/etc/hosts /tmp/fakeroot/etc/HOSTNAME /tmp/fakeroot/etc/inittab&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp mop_up_dead_clients.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7515</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7515"/>
		<updated>2012-05-20T16:47:46Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** boost&lt;br /&gt;
** celt&lt;br /&gt;
** CherryPy&lt;br /&gt;
** cryptoki&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mumble&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** protobuf&lt;br /&gt;
** pyOpenSSL&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** qt&lt;br /&gt;
** qwebirc&lt;br /&gt;
** rrdtool&lt;br /&gt;
** speex&lt;br /&gt;
** sudo&lt;br /&gt;
** truecrypt&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** wxGTK&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp sudo/etc/sudoers /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc&lt;br /&gt;
* chmod 0440 /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow /tmp/fakeroot/etc/hosts /tmp/fakeroot/etc/HOSTNAME /tmp/fakeroot/etc/inittab&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp mop_up_dead_clients.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7514</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7514"/>
		<updated>2012-05-20T16:36:00Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** boost&lt;br /&gt;
** celt&lt;br /&gt;
** CherryPy&lt;br /&gt;
** cryptoki&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mumble&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** protobuf&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** qt&lt;br /&gt;
** qwebirc&lt;br /&gt;
** rrdtool&lt;br /&gt;
** speex&lt;br /&gt;
** sudo&lt;br /&gt;
** truecrypt&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** wxGTK&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp sudo/etc/sudoers /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc&lt;br /&gt;
* chmod 0440 /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow /tmp/fakeroot/etc/hosts /tmp/fakeroot/etc/HOSTNAME /tmp/fakeroot/etc/inittab&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp mop_up_dead_clients.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7513</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7513"/>
		<updated>2012-05-20T00:35:30Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** boost&lt;br /&gt;
** celt&lt;br /&gt;
** CherryPy&lt;br /&gt;
** cryptoki&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mumble&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** protobuf&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** qt&lt;br /&gt;
** qwebirc&lt;br /&gt;
** rrdtool&lt;br /&gt;
** speex&lt;br /&gt;
** sudo&lt;br /&gt;
** truecrypt&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** wxGTK&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow /tmp/fakeroot/etc/hosts /tmp/fakeroot/etc/HOSTNAME /tmp/fakeroot/etc/inittab&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp mop_up_dead_clients.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7512</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7512"/>
		<updated>2012-05-20T00:18:11Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** boost&lt;br /&gt;
** celt&lt;br /&gt;
** CherryPy&lt;br /&gt;
** cryptoki&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mumble&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** protobuf&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** qt&lt;br /&gt;
** qwebirc&lt;br /&gt;
** rrdtool&lt;br /&gt;
** speex&lt;br /&gt;
** sudo&lt;br /&gt;
** truecrypt&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** wxGTK&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp mop_up_dead_clients.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7511</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=7511"/>
		<updated>2012-05-19T18:14:38Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** boost&lt;br /&gt;
** celt&lt;br /&gt;
** CherryPy&lt;br /&gt;
** cryptoki&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mumble&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** protobuf&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** qt&lt;br /&gt;
** qwebirc&lt;br /&gt;
** rrdtool&lt;br /&gt;
** speex&lt;br /&gt;
** sudo&lt;br /&gt;
** truecrypt&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** wxGTK&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Category:Byzantium&amp;diff=7454</id>
		<title>Category:Byzantium</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Category:Byzantium&amp;diff=7454"/>
		<updated>2012-05-04T16:02:32Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Press */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This project was launched with a sprint on Feb 25-27, 2011.&lt;br /&gt;
Sprints will be held the last weekend of every month.&lt;br /&gt;
&lt;br /&gt;
The development wiki page is [[Byzantium_Live_Distro|here]].&lt;br /&gt;
&lt;br /&gt;
The official mailing list is [http://groups.google.com/a/hacdc.org/group/Byzantium/?hl=en here].&lt;br /&gt;
&lt;br /&gt;
The official Github organization page is [https://github.com/Byzantium/Byzantium here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTICE: If you&#039;ve downloaded Byzantium v0.1a, you need to re-download it immediately due to a major bug in the 10 January 2012 release! This is critical!&#039;&#039;&#039;&lt;br /&gt;
[[Downloading_Byzantium|Where to download Byzantium.]]&lt;br /&gt;
&lt;br /&gt;
== Project Goals ==&lt;br /&gt;
The goal of Project Byzantium is to develop a communication system by which users can connect to each other and share information in the absence of convenient access to the Internet. &lt;br /&gt;
&lt;br /&gt;
The use cases for such a system would be:&lt;br /&gt;
# The infrastructure for accessing the internet has become damaged or inaccessible. (Eg, a natural disaster such as Hurricane Katrina.)&lt;br /&gt;
# A central authority has decided to explicitly block or shutdown key infrastructure. (Eg, Egypt&#039;s recent internet blackout.)&lt;br /&gt;
# A zombie apocalypse in which the personnel responsible for maintaining key infrastructure have all been turned.&lt;br /&gt;
&lt;br /&gt;
The project aims to develop and publish the necessary documentation, best practices, and software to construct and support such a system. Our current approach is to start by investigating and documenting the existing technologies which would support such a system. In particular, mesh networking protocols, wireless networking technologies, and decentralized (or less-centralized) alternatives to internet addressing/naming systems such as DNS. In designing the system, we aim to reduce the dependency on exotic hardware or skill sets so that the system can be deployed quickly and easily by average internet users.&lt;br /&gt;
&lt;br /&gt;
An additional goal is that users not actively participating in the mesh network (i.e., not running mesh routing software on their devices) can make use of the network without having to install anything new, jailbreak their phone, or pry the information out of a hacker infected with the Exsurgent virus.&lt;br /&gt;
&lt;br /&gt;
==Parts==&lt;br /&gt;
[[Byzantium_InterMesh|InterMesh]]&lt;br /&gt;
[[Byzantium_Distributed_DNS|Distributed DNS]]&lt;br /&gt;
[[Byzantium_Live_Distro|Live Distro]]&lt;br /&gt;
&lt;br /&gt;
== Sprints ==&lt;br /&gt;
[[Byzantium Sprint 1|Sprint 1 Details]] [http://drwho.virtadpt.net/archive/2011/03/15/project-byzantium-sprint-1 Write up.]&lt;br /&gt;
[[Byzantium Sprint 2|Sprint 2 Details]] [http://drwho.virtadpt.net/archive/2011/04/14/project-byzantium-development-sprint-2 Write up.]&lt;br /&gt;
[[Byzantium Sprint 3|Sprint 3 Details]]&lt;br /&gt;
[[Byzantium Sprint 4|Sprint 4 Details]]&lt;br /&gt;
Individual sprint reports have been replaced with the [[Byzantium Action Log|Action Log]] since the sprints have become slightly less structured as we delve into the minutia of the project.&lt;br /&gt;
&lt;br /&gt;
== Presentations and PR ==&lt;br /&gt;
[http://www.novalug.org/node/176 Ben and the Doctor will be presenting at NOVALUG!] - 14 May 2011&lt;br /&gt;
[http://contactcon.com/project-byzantium The Doctor will be presenting at ContactCon!] - 20 October 2011&lt;br /&gt;
[http://www.broadbandbridge.org/ Ben and the Doctor presented at DC Broadband Bridge!] - 5 November 2011 ([https://drwho.virtadpt.net/images/byzantium_presentation-20111105.pdf presentation])&lt;br /&gt;
[http://drwho.virtadpt.net/archive/2011/08/08/frequently-needed-answers-for-project-byzantium Unofficial Frequently Asked Questions.]&lt;br /&gt;
[http://www.hacdc.org/content/byzantium-v01a-scarab-released Release announcement for v0.1a!]&lt;br /&gt;
[https://drwho.virtadpt.net/archive/2012/04/30/hacdc-at-the-usa-science-and-engineering-festival Byzantium Linux was distributed and field tested at the USA Science and Engineering Festival!]&lt;br /&gt;
[https://drwho.virtadpt.net/archive/2012/04/20/not-dead-only-busy Project Byzantium will be presenting at CarolinaCon and HOPE Number Nine!]&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
[http://www.fastcompany.com/1750215/how-hackerspaces-can-do-good-for-the-world Fast Company: 28 April 2011]&lt;br /&gt;
[https://chronicle.com/article/College-20-Fear-of/129049/ College v2.0: Fear of Repression Spurs Scholars and Activists to Build Alternate Internets]&lt;br /&gt;
[http://www.shareable.net/blog/10-projects-to-liberate-the-web 10 Projects to Liberate the Web]&lt;br /&gt;
[http://blog.makezine.com/archive/2011/10/project-byzantium-aims-to-avoid-internet-outages.html Make Magazine]&lt;br /&gt;
[http://www.reddit.com/r/darknetplan/comments/l9tko/make_at_washington_dcs_hackerspace_hacdc_a_team/ Make article linked on /r/darknetplan]&lt;br /&gt;
[http://www.tendencias21.net/Ciberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Ciberactivistas crean un Internet alternativo por miedo a la represión] [http://translate.google.com/translate?sl=auto&amp;amp;tl=en&amp;amp;js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=ISO-8859-1&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;u=http%3A%2F%2Fwww.tendencias21.net%2FCiberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Google Translation]&lt;br /&gt;
[http://www.fastcoexist.com/1677951/hackerspaces-hubs-for-tech-minded-do-gooders Hackerspaces: Hubs for Tech-Minded do-Gooders?]&lt;br /&gt;
[http://www.disinfo.com/2012/03/interview-with-telecomix-hacktivists-peter-fein-and-the-doctor/ Interview with DisinfoTV at ContactCon]&lt;br /&gt;
[http://www.theglobalmail.org/feature/iran-not-tweeting-hacking/165/ Iran: Not Tweeting, Hacking]; Byzantium-related stuff near the end of the article, some inaccuracies.&lt;br /&gt;
[https://www.npr.org/internedition/spring12/?p=168 NPR Intern Edition: Hacking to Byzantium]&lt;br /&gt;
&lt;br /&gt;
[[Category:Ongoing_Projects]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DynamicPageList&amp;gt;&lt;br /&gt;
category             = Byzantium&lt;br /&gt;
order                = ascending&lt;br /&gt;
mode     = inline&lt;br /&gt;
addfirstcategorydate = true&lt;br /&gt;
&amp;lt;/DynamicPageList&amp;gt;&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium_Live_Distro&amp;diff=7433</id>
		<title>Byzantium Live Distro</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium_Live_Distro&amp;diff=7433"/>
		<updated>2012-04-30T21:32:22Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
We are building a portable live Linux distribution based on [http://porteus.org/ Porteus Linux]. Porteus itself is a fork of Slax that has been brought up to date with Slackware 13.37 and uses a 2.6.38.8 kernel. Porteus can use binary packages from Slackware 13.37 after conversion to Porteus&#039; native format.&lt;br /&gt;
&lt;br /&gt;
==Code Repositories==&lt;br /&gt;
[https://github.com/Byzantium/Byzantium Github page]&lt;br /&gt;
&lt;br /&gt;
[http://svn.virtadpt.net/byzantium/ Subversion repo for Porteus packages]&lt;br /&gt;
&lt;br /&gt;
==Goals==&lt;br /&gt;
* Make it possible for people in emergency situations to communicate and collaborate.&lt;br /&gt;
* Make it possible for people in areas where the communications infrastructure is compromised to communicate and collaborate.&lt;br /&gt;
* Provide services to support communication and collaboration.&lt;br /&gt;
* Will be secure out of the box.&lt;br /&gt;
** Best practices for isolating running services will be followed.&lt;br /&gt;
** Best practices for configuration web applications will be followed.&lt;br /&gt;
** Least privilege will be followed wherever possible.&lt;br /&gt;
* Will be extensively documented.&lt;br /&gt;
** A Creative Commons-licensed book will be made available with the Byzantium distribution as well as separately&lt;br /&gt;
** Will explain the finer points of setting up a mesh, as well as accompanying projects (such as dialup gateways and long-haul transports).&lt;br /&gt;
** Will be translated into as many languages as possible.&lt;br /&gt;
* Widely compatible.&lt;br /&gt;
** Users need to be able to boot their desktop/laptop/netbook from Byzantium media and set up a node.&lt;br /&gt;
** As little fiddling with network drivers as possible.&lt;br /&gt;
* Rapidly deployable.&lt;br /&gt;
** Users need to be able to configure their Byzantium node rapidly and with little assistance.&lt;br /&gt;
** Emergency situations.&lt;br /&gt;
** Control panel aims to be as self-documenting as possible.&lt;br /&gt;
* Aims to protect confidentiality of traffic.&lt;br /&gt;
** Opportunistic IPsec?&lt;br /&gt;
** All services default to SSLv3/TLSv1.&lt;br /&gt;
* Aims to protect integrity of traffic.&lt;br /&gt;
** SSLv3/TLSv1.&lt;br /&gt;
* Meshes should grow without the direction of a central authority.&lt;br /&gt;
** Anyone can set up a mesh node.&lt;br /&gt;
** Anyone can set up services on the mesh.&lt;br /&gt;
** Services packaged by default can be managed (activated and deactivated) from the control panel&lt;br /&gt;
** Services packaged by default will come preconfigured with secure defaults and a mobile-friendly theme where appropriate.&lt;br /&gt;
** This is a calculated risk.  The threat models of Tor and I2P take this into account as well.&lt;br /&gt;
* Byzantium nodes need to be rapidly clonable.&lt;br /&gt;
** One copy of the live distribution needs to become many on demand.&lt;br /&gt;
** Nodes need to be clonable without taking the node down.&lt;br /&gt;
* Persistent storage has to be an option.&lt;br /&gt;
** Built into [http://porteus.org Porteus].&lt;br /&gt;
*** save.dat file&lt;br /&gt;
*** removable media&lt;br /&gt;
*** media Porteus is installed to&lt;br /&gt;
* Dependencies will be automatically managed by the control panel.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Can support multiple mesh routing protocols.&lt;br /&gt;
* Modular configuration back end.&lt;br /&gt;
* Multiple pre-packaged, pre-configured web applications for communication and collaboration.&lt;br /&gt;
* All services can be independently activated and deactivated.&lt;br /&gt;
* Aims for security by default.&lt;br /&gt;
** Services are not active unless explicitly triggered.&lt;br /&gt;
** Services are configured using best practices for security.&lt;br /&gt;
** Services support strong cryptography by default.&lt;br /&gt;
* Supports gatewaying from the mesh to the Net over a live connection.&lt;br /&gt;
* Supports persistent (encrypted) storage on demand (not default).&lt;br /&gt;
** Note: When creating a save.dat file under Porteus, if the drive it&#039;s on is formatted FAT-32 or less, the file MUST be &amp;lt;1024MB, else, the /linuxrc script that forms the core of the distro will pretend that it can&#039;t locate the file, regardless of where you put it.  This drove me bonkers for two months!&lt;br /&gt;
*** If possible we should try to make save.dat a second partition on the thumbdrive (ala casper-rw for ubuntu liveUSBs) there are some big benefits to this:&lt;br /&gt;
**** it makes it harder for windows users to see that there is a second partition in case big brother decides to inspect the contents of all thumbdrives.&lt;br /&gt;
**** it means we won&#039;t have to worry about file size limits.&lt;br /&gt;
&lt;br /&gt;
===ToDo===&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_CP|Node Control Panel]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Captive_Portal|Captive Portal]]&amp;lt;/strike&amp;gt; -DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_Service_Announce|Provided Services Announcement]]&lt;br /&gt;
*[[Byzantium_Live_Distro_Wiki|Wiki]] - suspended notion&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Microblog|Microblog]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_FileDump|File dump/Twitpic work-alike]]&lt;br /&gt;
*[[Byzantium_Live_Distro_Tel|Voice chat/telephony server]]&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Chat|Clientless web chat]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Microblog|Blog]]&amp;lt;/strike&amp;gt; - see Microblog&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_EPad|EtherPad-like thing]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_StreamingMediaSrv|Streaming media server]]&lt;br /&gt;
*[[Byzantium_Live_Distro_WebProxy|HTTP caching proxy]]&lt;br /&gt;
*[https://www.torproject.org/ Tor]&lt;br /&gt;
*[[IPset]]&lt;br /&gt;
&lt;br /&gt;
Pick a web server to host applications:&lt;br /&gt;
* Converted the Apache, apr*, and PHP packages of Slackware v13.37 into Porteus modules.  They Just Worked(tm).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;We need to figure out how to properly install the control panel app on a new system.  The process should be as pythonic as possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We need to figure out how to bundle the already configured and populated MySQL databases for the web apps!&lt;br /&gt;
* Packaging them into a module and activating it didn&#039;t work.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Write a script that detects the presence or absence of /var/lib/db/*/ and restores them from .sql dumps at boot-time.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[The Doctor&#039;s to-do list]]&lt;br /&gt;
&lt;br /&gt;
==Packages built for Byzantium==&lt;br /&gt;
* babeld - For great mesh routing.&lt;br /&gt;
* batman-adv - Kernel module which implements mesh routing at OSI layer 2.  We may not use it but it&#039;s there if we need it.&lt;br /&gt;
* batctl - Utility for configurating and manipulating batman-adv.&lt;br /&gt;
** Dependency of batman-adv.&lt;br /&gt;
* olsrd - from olsr.org&lt;br /&gt;
* ahcpd - For configuring mesh nodes that don&#039;t want to use the random RFC-1918 IP address generator.&lt;br /&gt;
* CherryPy - Python module that implements a fast multi-threaded HTTP (web application) server.&lt;br /&gt;
** Without this, there is no control panel.&lt;br /&gt;
* pySetupTools - Required for installing some Python modules.&lt;br /&gt;
* Mako - Python HTML templating system.&lt;br /&gt;
** Dependency of the control panel.&lt;br /&gt;
* MarkupSafe - Python library that implements a Unicode string that is aware of HTML escaping rules and does automatic string escaping.&lt;br /&gt;
** Dependency of Mako.&lt;br /&gt;
* Git - Converted Slackware v13.37 package.&lt;br /&gt;
** Necessary for checking code out and into Github.&lt;br /&gt;
* Curl - Converted Slackware v13.37 package.&lt;br /&gt;
** Dependency of git.&lt;br /&gt;
** Note: To make git work without &amp;quot;error setting certificate verify locations&amp;quot; errors, you need to run the following command as the root user: git config --system http.sslcainfo /usr/share/curl/ca-bundle.crt&lt;br /&gt;
* rrdtool - Used by traffic_stats.sh to monitor network traffic and build graphs.&lt;br /&gt;
* sqlitebrowser - Used to develop SQLite database schemas and debug database access code.  Will not be in OS release.&lt;br /&gt;
* &amp;lt;strike&amp;gt;nginx - Lightweight, fast HTTP(S) server.  Much more lightweight than Apache, at any rate.  Custom build for Byzantium.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Enough!&lt;br /&gt;
* gd - Dependency of PHP.&lt;br /&gt;
** Used for server side image manipulation.&lt;br /&gt;
* libmcrypt - Dependency of PHP.&lt;br /&gt;
* icu4c - International Components for Unicode.  i18n dependency of PHP.&lt;br /&gt;
* openldap-client - Dependency of PHP to make it compile.  Not pleased by having to package it, but it won&#039;t build without it.&lt;br /&gt;
** Can we get away with not having it because I didn&#039;t have to compile it for Apache?  Let&#039;s try it!&lt;br /&gt;
* php - Converted Slackware v13.37 package.&lt;br /&gt;
* httpd - Apache v2.2.17.  Converted Slackware v13.37 package.&lt;br /&gt;
** ..and then stuff started working!&lt;br /&gt;
* apr-util - Converted Slackware v13.37 package.&lt;br /&gt;
** Utility used for compiling Apache modules.&lt;br /&gt;
* apr - Converted Slackware v13.37 package.&lt;br /&gt;
** Package used for compiling Apache modules.&lt;br /&gt;
* t1lib - Converted Slackware v13.37 package.  Used for font manipulation.&lt;br /&gt;
* pcre - Converted Slackware v13.37 package.&lt;br /&gt;
** Perl Compatible Regular Expression library.&lt;br /&gt;
** Unicode aware for i18n support.  status.net requires this for basic functionality, whcih means that we get i18n for free.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Firefox v6.0.2&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Do not use!  i_can_haz_firefox.sh builds a package with bad symlinks.  Haven&#039;t bothered to fix it so far.&lt;br /&gt;
* node - An event-driven I/O server-side JavaScript environment based on V8. (from website and wikipedia).&lt;br /&gt;
** Required by Etherpad-lite.&lt;br /&gt;
* dnsmasq - All-in-one DHCP and caching DNS server.&lt;br /&gt;
** Much easier to work with in circumstances like this than ISC BIND or even djbdns.&lt;br /&gt;
* ipcalc - Command-line IP networking calculator.  Will be needed by the control panel shortly.&lt;br /&gt;
** Removed the CGI-BIN script from the package when it was built.&lt;br /&gt;
* ngircd - Lightweight IRC server.&lt;br /&gt;
** Back-end for web chat application.&lt;br /&gt;
** Somehow we need to figure out a way to make them automagically hook together into an IRC network.  But that can wait.&lt;br /&gt;
* zope.interface - Required by Twisted.&lt;br /&gt;
* Twisted - Required by qwebirc.&lt;br /&gt;
** Satisfies the clientless web chat requirement.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Place links relevant to any part of the process of making the live distro here.&lt;br /&gt;
&lt;br /&gt;
[http://porteus.org/ Porteus Official Website]&lt;br /&gt;
&lt;br /&gt;
[[Processes for building Porteus packages.]]&lt;br /&gt;
&lt;br /&gt;
[[Process for manually installing Byzantium.]]&lt;br /&gt;
&lt;br /&gt;
[[Byzantium 101]] - How to get yourself set up.&lt;br /&gt;
&lt;br /&gt;
[[Hardware compatibility list]]&lt;br /&gt;
&lt;br /&gt;
[[User Feedback on Byzantium 0.1a]]&lt;br /&gt;
&lt;br /&gt;
==Timeline==&lt;br /&gt;
* .....uhh....&lt;br /&gt;
* 20 October 2011 - Live demo, presentation, and networking at [http://contactcon.com/ ContactCon].&lt;br /&gt;
* 12 May 2012 @ 1400 EST5EDT: Project Byzantium presentation at [http://carolinacon.org/ CarolinaCon].&lt;br /&gt;
* 13-15 July 2012 @ TBA: Project Byzantium presentation at [http://www.hopenumbernine.net/ HOPE Number Nine].&lt;br /&gt;
&lt;br /&gt;
==Stuff==&lt;br /&gt;
&amp;lt;strike&amp;gt;Need to edit /etc/hosts, add &#039;byzantium&#039; to 127.0.0.1 so that the web server will start up.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Mobile devices and IPv6.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;[http://thekelleys.org.uk/dnsmasq/doc.html DNSmasq]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;One nice thing about DNSmasq is the -H option, for additional /etc/hosts-like files.  We could use those to cache the IP addresses of other Byzantium nodes, and then query them for the services they run.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Hostnames are IPv6 addresses of nodes.&lt;br /&gt;
*** ifconfig wlan0 | grep inet6 | awk &#039;{print $3}&#039; | sed &#039;s/:/-/g&#039; | sed &#039;s/\/64$//&#039; | sed &#039;s/$/.byzantium.mesh/&#039; == fe80--21c-bfff-fe35-84c2.byzantium.mesh&lt;br /&gt;
** &amp;lt;strike&amp;gt;Put IP addresses and hostnames in /etc/hosts.mesh.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** This could also be used for status.net federation and IRC network construction.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move the &#039;&#039;&#039;server=/byzantium.mesh/...&#039;&#039;&#039; line into the generated DNSmasq include file?&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Make the &#039;...&#039; the mesh interface&#039;s IP address?&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Consulted with an expert about IP addressing.  At first scratch, it might be a good idea to stick wtih pseudo-randomly chosen 10/8&#039;s.  Configure the mesh interface for the .1 and give the clients .2-.254.  I&#039;ll re-work the control panel to do that.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to account for [http://www.webopedia.com/TERM/A/APIPA.html APIPA] addressing in the initial set of routes.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Added for the purpose of making networkconfiguration.py [http://www.cyberciti.biz/faq/linux-duplicate-address-detection-with-arping/ detect whether or not the proposed IP address for the mesh interface is in use].&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Byzantium does this now.  It works like a champ.&lt;br /&gt;
&lt;br /&gt;
List of public DNSes that we may wish to fall back upon in the event a node is made into a gateway:&lt;br /&gt;
* [https://code.google.com/speed/public-dns/ Google Public DNS]&lt;br /&gt;
* [http://www.tech-faq.com/public-dns-servers.html Public DNS servers]&lt;br /&gt;
* [https://www.opendns.com/ OpenDNS]&lt;br /&gt;
&lt;br /&gt;
[[Packaging NPM.]]&lt;br /&gt;
&lt;br /&gt;
[[Finding neighboring mesh nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Fully distributed services]]&lt;br /&gt;
&lt;br /&gt;
==Stuff to consider for later==&lt;br /&gt;
* Consider adding [http://code.kryo.se/iodine/ Iodine] to Byzantium to help tunnel gatewayed traffic onto the Net.&lt;br /&gt;
** Gateway nodes in hostile areas could use Iodine to tunnel traffic out.&lt;br /&gt;
** Gateway nodes in non-hostile areas could accept Iodine connections to help less fortunate nodes evade censorship.&lt;br /&gt;
* Consider adding (http|proxy)tunnel with simplified usage of some kind to allow encapsulating arbitrary data streams in http streams.&lt;br /&gt;
* Firewall evasion aids that will work well even in established internet censorship systems?&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium_Live_Distro&amp;diff=7432</id>
		<title>Byzantium Live Distro</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium_Live_Distro&amp;diff=7432"/>
		<updated>2012-04-30T21:29:37Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
We are building a portable live Linux distribution based on [http://porteus.org/ Porteus Linux]. Porteus itself is a fork of Slax that has been brought up to date with Slackware 13.37 and uses a 2.6.38.8 kernel. Porteus can use binary packages from Slackware 13.37 after conversion to Porteus&#039; native format.&lt;br /&gt;
&lt;br /&gt;
==Code Repositories==&lt;br /&gt;
[https://github.com/Byzantium/Byzantium Github page]&lt;br /&gt;
&lt;br /&gt;
[http://svn.virtadpt.net/byzantium/ Subversion repo for Porteus packages]&lt;br /&gt;
&lt;br /&gt;
==Goals==&lt;br /&gt;
* Make it possible for people in emergency situations to communicate and collaborate.&lt;br /&gt;
* Make it possible for people in areas where the communications infrastructure is compromised to communicate and collaborate.&lt;br /&gt;
* Provide services to support communication and collaboration.&lt;br /&gt;
* Will be secure out of the box.&lt;br /&gt;
** Best practices for isolating running services will be followed.&lt;br /&gt;
** Best practices for configuration web applications will be followed.&lt;br /&gt;
** Least privilege will be followed wherever possible.&lt;br /&gt;
* Will be extensively documented.&lt;br /&gt;
** A Creative Commons-licensed book will be made available with the Byzantium distribution as well as separately&lt;br /&gt;
** Will explain the finer points of setting up a mesh, as well as accompanying projects (such as dialup gateways and long-haul transports).&lt;br /&gt;
** Will be translated into as many languages as possible.&lt;br /&gt;
* Widely compatible.&lt;br /&gt;
** Users need to be able to boot their desktop/laptop/netbook from Byzantium media and set up a node.&lt;br /&gt;
** As little fiddling with network drivers as possible.&lt;br /&gt;
* Rapidly deployable.&lt;br /&gt;
** Users need to be able to configure their Byzantium node rapidly and with little assistance.&lt;br /&gt;
** Emergency situations.&lt;br /&gt;
** Control panel aims to be as self-documenting as possible.&lt;br /&gt;
* Aims to protect confidentiality of traffic.&lt;br /&gt;
** Opportunistic IPsec?&lt;br /&gt;
** All services default to SSLv3/TLSv1.&lt;br /&gt;
* Aims to protect integrity of traffic.&lt;br /&gt;
** SSLv3/TLSv1.&lt;br /&gt;
* Meshes should grow without the direction of a central authority.&lt;br /&gt;
** Anyone can set up a mesh node.&lt;br /&gt;
** Anyone can set up services on the mesh.&lt;br /&gt;
** Services packaged by default can be managed (activated and deactivated) from the control panel&lt;br /&gt;
** Services packaged by default will come preconfigured with secure defaults and a mobile-friendly theme where appropriate.&lt;br /&gt;
** This is a calculated risk.  The threat models of Tor and I2P take this into account as well.&lt;br /&gt;
* Byzantium nodes need to be rapidly clonable.&lt;br /&gt;
** One copy of the live distribution needs to become many on demand.&lt;br /&gt;
** Nodes need to be clonable without taking the node down.&lt;br /&gt;
* Persistent storage has to be an option.&lt;br /&gt;
** Built into [http://porteus.org Porteus].&lt;br /&gt;
*** save.dat file&lt;br /&gt;
*** removable media&lt;br /&gt;
*** media Porteus is installed to&lt;br /&gt;
* Dependencies will be automatically managed by the control panel.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Can support multiple mesh routing protocols.&lt;br /&gt;
* Modular configuration back end.&lt;br /&gt;
* Multiple pre-packaged, pre-configured web applications for communication and collaboration.&lt;br /&gt;
* All services can be independently activated and deactivated.&lt;br /&gt;
* Aims for security by default.&lt;br /&gt;
** Services are not active unless explicitly triggered.&lt;br /&gt;
** Services are configured using best practices for security.&lt;br /&gt;
** Services support strong cryptography by default.&lt;br /&gt;
* Supports gatewaying from the mesh to the Net over a live connection.&lt;br /&gt;
* Supports persistent (encrypted) storage on demand (not default).&lt;br /&gt;
** Note: When creating a save.dat file under Porteus, if the drive it&#039;s on is formatted FAT-32 or less, the file MUST be &amp;lt;1024MB, else, the /linuxrc script that forms the core of the distro will pretend that it can&#039;t locate the file, regardless of where you put it.  This drove me bonkers for two months!&lt;br /&gt;
*** If possible we should try to make save.dat a second partition on the thumbdrive (ala casper-rw for ubuntu liveUSBs) there are some big benefits to this:&lt;br /&gt;
**** it makes it harder for windows users to see that there is a second partition in case big brother decides to inspect the contents of all thumbdrives.&lt;br /&gt;
**** it means we won&#039;t have to worry about file size limits.&lt;br /&gt;
&lt;br /&gt;
===ToDo===&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_CP|Node Control Panel]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Captive_Portal|Captive Portal]]&amp;lt;/strike&amp;gt; -DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_Service_Announce|Provided Services Announcement]]&lt;br /&gt;
*[[Byzantium_Live_Distro_Wiki|Wiki]] - suspended notion&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Microblog|Microblog]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_FileDump|File dump/Twitpic work-alike]]&lt;br /&gt;
*[[Byzantium_Live_Distro_Tel|Voice chat/telephony server]]&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Chat|Clientless web chat]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Microblog|Blog]]&amp;lt;/strike&amp;gt; - see Microblog&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_EPad|EtherPad-like thing]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_StreamingMediaSrv|Streaming media server]]&lt;br /&gt;
*[[Byzantium_Live_Distro_WebProxy|HTTP caching proxy]]&lt;br /&gt;
*[https://www.torproject.org/ Tor]&lt;br /&gt;
*[[IPset]]&lt;br /&gt;
&lt;br /&gt;
Pick a web server to host applications:&lt;br /&gt;
* Converted the Apache, apr*, and PHP packages of Slackware v13.37 into Porteus modules.  They Just Worked(tm).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;We need to figure out how to properly install the control panel app on a new system.  The process should be as pythonic as possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We need to figure out how to bundle the already configured and populated MySQL databases for the web apps!&lt;br /&gt;
* Packaging them into a module and activating it didn&#039;t work.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Write a script that detects the presence or absence of /var/lib/db/*/ and restores them from .sql dumps at boot-time.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[The Doctor&#039;s to-do list]]&lt;br /&gt;
&lt;br /&gt;
==Packages built for Byzantium==&lt;br /&gt;
* babeld - For great mesh routing.&lt;br /&gt;
* batman-adv - Kernel module which implements mesh routing at OSI layer 2.  We may not use it but it&#039;s there if we need it.&lt;br /&gt;
* batctl - Utility for configurating and manipulating batman-adv.&lt;br /&gt;
** Dependency of batman-adv.&lt;br /&gt;
* olsrd - from olsr.org&lt;br /&gt;
* ahcpd - For configuring mesh nodes that don&#039;t want to use the random RFC-1918 IP address generator.&lt;br /&gt;
* CherryPy - Python module that implements a fast multi-threaded HTTP (web application) server.&lt;br /&gt;
** Without this, there is no control panel.&lt;br /&gt;
* pySetupTools - Required for installing some Python modules.&lt;br /&gt;
* Mako - Python HTML templating system.&lt;br /&gt;
** Dependency of the control panel.&lt;br /&gt;
* MarkupSafe - Python library that implements a Unicode string that is aware of HTML escaping rules and does automatic string escaping.&lt;br /&gt;
** Dependency of Mako.&lt;br /&gt;
* Git - Converted Slackware v13.37 package.&lt;br /&gt;
** Necessary for checking code out and into Github.&lt;br /&gt;
* Curl - Converted Slackware v13.37 package.&lt;br /&gt;
** Dependency of git.&lt;br /&gt;
** Note: To make git work without &amp;quot;error setting certificate verify locations&amp;quot; errors, you need to run the following command as the root user: git config --system http.sslcainfo /usr/share/curl/ca-bundle.crt&lt;br /&gt;
* rrdtool - Used by traffic_stats.sh to monitor network traffic and build graphs.&lt;br /&gt;
* sqlitebrowser - Used to develop SQLite database schemas and debug database access code.  Will not be in OS release.&lt;br /&gt;
* &amp;lt;strike&amp;gt;nginx - Lightweight, fast HTTP(S) server.  Much more lightweight than Apache, at any rate.  Custom build for Byzantium.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Enough!&lt;br /&gt;
* gd - Dependency of PHP.&lt;br /&gt;
** Used for server side image manipulation.&lt;br /&gt;
* libmcrypt - Dependency of PHP.&lt;br /&gt;
* icu4c - International Components for Unicode.  i18n dependency of PHP.&lt;br /&gt;
* openldap-client - Dependency of PHP to make it compile.  Not pleased by having to package it, but it won&#039;t build without it.&lt;br /&gt;
** Can we get away with not having it because I didn&#039;t have to compile it for Apache?  Let&#039;s try it!&lt;br /&gt;
* php - Converted Slackware v13.37 package.&lt;br /&gt;
* httpd - Apache v2.2.17.  Converted Slackware v13.37 package.&lt;br /&gt;
** ..and then stuff started working!&lt;br /&gt;
* apr-util - Converted Slackware v13.37 package.&lt;br /&gt;
** Utility used for compiling Apache modules.&lt;br /&gt;
* apr - Converted Slackware v13.37 package.&lt;br /&gt;
** Package used for compiling Apache modules.&lt;br /&gt;
* t1lib - Converted Slackware v13.37 package.  Used for font manipulation.&lt;br /&gt;
* pcre - Converted Slackware v13.37 package.&lt;br /&gt;
** Perl Compatible Regular Expression library.&lt;br /&gt;
** Unicode aware for i18n support.  status.net requires this for basic functionality, whcih means that we get i18n for free.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Firefox v6.0.2&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Do not use!  i_can_haz_firefox.sh builds a package with bad symlinks.  Haven&#039;t bothered to fix it so far.&lt;br /&gt;
* node - An event-driven I/O server-side JavaScript environment based on V8. (from website and wikipedia).&lt;br /&gt;
** Required by Etherpad-lite.&lt;br /&gt;
* dnsmasq - All-in-one DHCP and caching DNS server.&lt;br /&gt;
** Much easier to work with in circumstances like this than ISC BIND or even djbdns.&lt;br /&gt;
* ipcalc - Command-line IP networking calculator.  Will be needed by the control panel shortly.&lt;br /&gt;
** Removed the CGI-BIN script from the package when it was built.&lt;br /&gt;
* ngircd - Lightweight IRC server.&lt;br /&gt;
** Back-end for web chat application.&lt;br /&gt;
** Somehow we need to figure out a way to make them automagically hook together into an IRC network.  But that can wait.&lt;br /&gt;
* zope.interface - Required by Twisted.&lt;br /&gt;
* Twisted - Required by qwebirc.&lt;br /&gt;
** Satisfies the clientless web chat requirement.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Place links relevant to any part of the process of making the live distro here.&lt;br /&gt;
&lt;br /&gt;
[http://porteus.org/ Porteus Official Website]&lt;br /&gt;
&lt;br /&gt;
[[Processes for building Porteus packages.]]&lt;br /&gt;
&lt;br /&gt;
[[Process for manually installing Byzantium.]]&lt;br /&gt;
&lt;br /&gt;
[[Byzantium 101]] - How to get yourself set up.&lt;br /&gt;
&lt;br /&gt;
[[Hardware compatibility list]]&lt;br /&gt;
&lt;br /&gt;
[[User Feedback on Byzantium 0.1a]]&lt;br /&gt;
&lt;br /&gt;
==Timeline==&lt;br /&gt;
* .....uhh....&lt;br /&gt;
* 20 October 2011 - Live demo, presentation, and networking at [http://contactcon.com/ ContactCon].&lt;br /&gt;
&lt;br /&gt;
==Stuff==&lt;br /&gt;
&amp;lt;strike&amp;gt;Need to edit /etc/hosts, add &#039;byzantium&#039; to 127.0.0.1 so that the web server will start up.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Mobile devices and IPv6.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;[http://thekelleys.org.uk/dnsmasq/doc.html DNSmasq]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;One nice thing about DNSmasq is the -H option, for additional /etc/hosts-like files.  We could use those to cache the IP addresses of other Byzantium nodes, and then query them for the services they run.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Hostnames are IPv6 addresses of nodes.&lt;br /&gt;
*** ifconfig wlan0 | grep inet6 | awk &#039;{print $3}&#039; | sed &#039;s/:/-/g&#039; | sed &#039;s/\/64$//&#039; | sed &#039;s/$/.byzantium.mesh/&#039; == fe80--21c-bfff-fe35-84c2.byzantium.mesh&lt;br /&gt;
** &amp;lt;strike&amp;gt;Put IP addresses and hostnames in /etc/hosts.mesh.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** This could also be used for status.net federation and IRC network construction.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move the &#039;&#039;&#039;server=/byzantium.mesh/...&#039;&#039;&#039; line into the generated DNSmasq include file?&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Make the &#039;...&#039; the mesh interface&#039;s IP address?&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Consulted with an expert about IP addressing.  At first scratch, it might be a good idea to stick wtih pseudo-randomly chosen 10/8&#039;s.  Configure the mesh interface for the .1 and give the clients .2-.254.  I&#039;ll re-work the control panel to do that.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to account for [http://www.webopedia.com/TERM/A/APIPA.html APIPA] addressing in the initial set of routes.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Added for the purpose of making networkconfiguration.py [http://www.cyberciti.biz/faq/linux-duplicate-address-detection-with-arping/ detect whether or not the proposed IP address for the mesh interface is in use].&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Byzantium does this now.  It works like a champ.&lt;br /&gt;
&lt;br /&gt;
List of public DNSes that we may wish to fall back upon in the event a node is made into a gateway:&lt;br /&gt;
* [https://code.google.com/speed/public-dns/ Google Public DNS]&lt;br /&gt;
* [http://www.tech-faq.com/public-dns-servers.html Public DNS servers]&lt;br /&gt;
* [https://www.opendns.com/ OpenDNS]&lt;br /&gt;
&lt;br /&gt;
[[Packaging NPM.]]&lt;br /&gt;
&lt;br /&gt;
[[Finding neighboring mesh nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Fully distributed services]]&lt;br /&gt;
&lt;br /&gt;
==Stuff to consider for later==&lt;br /&gt;
* Consider adding [http://code.kryo.se/iodine/ Iodine] to Byzantium to help tunnel gatewayed traffic onto the Net.&lt;br /&gt;
** Gateway nodes in hostile areas could use Iodine to tunnel traffic out.&lt;br /&gt;
** Gateway nodes in non-hostile areas could accept Iodine connections to help less fortunate nodes evade censorship.&lt;br /&gt;
* Consider adding (http|proxy)tunnel with simplified usage of some kind to allow encapsulating arbitrary data streams in http streams.&lt;br /&gt;
* Firewall evasion aids that will work well even in established internet censorship systems?&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium_Live_Distro&amp;diff=7431</id>
		<title>Byzantium Live Distro</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium_Live_Distro&amp;diff=7431"/>
		<updated>2012-04-30T21:28:45Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Code Repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
We are building a portable live Linux distribution based on [http://porteus.org/ Porteus Linux]. Porteus itself is a fork of Slax that has been brought up to date with Slackware 13.37 and uses a 2.6.38.8 kernel. Porteus can use binary packages from Slackware 13.37 after conversion to Porteus&#039; native format.&lt;br /&gt;
&lt;br /&gt;
==Code Repositories==&lt;br /&gt;
[https://github.com/Byzantium/Byzantium Github page]&lt;br /&gt;
&lt;br /&gt;
[http://svn.virtadpt.net/byzantium/ Subversion repo for Porteus packages]&lt;br /&gt;
&lt;br /&gt;
==Goals==&lt;br /&gt;
* Make it possible for people in emergency situations to communicate and collaborate.&lt;br /&gt;
* Make it possible for people in areas where the communications infrastructure is compromised to communicate and collaborate.&lt;br /&gt;
* Provide services to support communication and collaboration.&lt;br /&gt;
* Will be secure out of the box.&lt;br /&gt;
** Best practices for isolating running services will be followed.&lt;br /&gt;
** Best practices for configuration web applications will be followed.&lt;br /&gt;
** Least privilege will be followed wherever possible.&lt;br /&gt;
* Will be extensively documented.&lt;br /&gt;
** A Creative Commons-licensed book will be made available with the Byzantium distribution as well as separately&lt;br /&gt;
** Will explain the finer points of setting up a mesh, as well as accompanying projects (such as dialup gateways and long-haul transports).&lt;br /&gt;
** Will be translated into as many languages as possible.&lt;br /&gt;
* Widely compatible.&lt;br /&gt;
** Users need to be able to boot their desktop/laptop/netbook from Byzantium media and set up a node.&lt;br /&gt;
** As little fiddling with network drivers as possible.&lt;br /&gt;
* Rapidly deployable.&lt;br /&gt;
** Users need to be able to configure their Byzantium node rapidly and with little assistance.&lt;br /&gt;
** Emergency situations.&lt;br /&gt;
** Control panel aims to be as self-documenting as possible.&lt;br /&gt;
* Aims to protect confidentiality of traffic.&lt;br /&gt;
** Opportunistic IPsec?&lt;br /&gt;
** All services default to SSLv3/TLSv1.&lt;br /&gt;
* Aims to protect integrity of traffic.&lt;br /&gt;
** SSLv3/TLSv1.&lt;br /&gt;
* Meshes should grow without the direction of a central authority.&lt;br /&gt;
** Anyone can set up a mesh node.&lt;br /&gt;
** Anyone can set up services on the mesh.&lt;br /&gt;
** Services packaged by default can be managed (activated and deactivated) from the control panel&lt;br /&gt;
** Services packaged by default will come preconfigured with secure defaults and a mobile-friendly theme where appropriate.&lt;br /&gt;
** This is a calculated risk.  The threat models of Tor and I2P take this into account as well.&lt;br /&gt;
* Byzantium nodes need to be rapidly clonable.&lt;br /&gt;
** One copy of the live distribution needs to become many on demand.&lt;br /&gt;
** Nodes need to be clonable without taking the node down.&lt;br /&gt;
* Persistent storage has to be an option.&lt;br /&gt;
** Built into [http://porteus.org Porteus].&lt;br /&gt;
*** save.dat file&lt;br /&gt;
*** removable media&lt;br /&gt;
*** media Porteus is installed to&lt;br /&gt;
* Dependencies will be automatically managed by the control panel.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Can support multiple mesh routing protocols.&lt;br /&gt;
* Modular configuration back end.&lt;br /&gt;
* Multiple pre-packaged, pre-configured web applications for communication and collaboration.&lt;br /&gt;
* All services can be independently activated and deactivated.&lt;br /&gt;
* Aims for security by default.&lt;br /&gt;
** Services are not active unless explicitly triggered.&lt;br /&gt;
** Services are configured using best practices for security.&lt;br /&gt;
** Services support strong cryptography by default.&lt;br /&gt;
* Supports gatewaying from the mesh to the Net over a live connection.&lt;br /&gt;
* Supports persistent (encrypted) storage on demand (not default).&lt;br /&gt;
** Note: When creating a save.dat file under Porteus, if the drive it&#039;s on is formatted FAT-32 or less, the file MUST be &amp;lt;1024MB, else, the /linuxrc script that forms the core of the distro will pretend that it can&#039;t locate the file, regardless of where you put it.  This drove me bonkers for two months!&lt;br /&gt;
*** If possible we should try to make save.dat a second partition on the thumbdrive (ala casper-rw for ubuntu liveUSBs) there are some big benefits to this:&lt;br /&gt;
**** it makes it harder for windows users to see that there is a second partition in case big brother decides to inspect the contents of all thumbdrives.&lt;br /&gt;
**** it means we won&#039;t have to worry about file size limits.&lt;br /&gt;
&lt;br /&gt;
===ToDo===&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_CP|Node Control Panel]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Captive_Portal|Captive Portal]]&amp;lt;/strike&amp;gt; -DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_Service_Announce|Provided Services Announcement]]&lt;br /&gt;
*[[Byzantium_Live_Distro_Wiki|Wiki]] - suspended notion&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Microblog|Microblog]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_FileDump|File dump/Twitpic work-alike]]&lt;br /&gt;
*[[Byzantium_Live_Distro_Tel|Voice chat/telephony server]]&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Chat|Clientless web chat]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_Microblog|Blog]]&amp;lt;/strike&amp;gt; - see Microblog&lt;br /&gt;
*&amp;lt;strike&amp;gt;[[Byzantium_Live_Distro_EPad|EtherPad-like thing]]&amp;lt;/strike&amp;gt; - DONE!&lt;br /&gt;
*[[Byzantium_Live_Distro_StreamingMediaSrv|Streaming media server]]&lt;br /&gt;
*[[Byzantium_Live_Distro_WebProxy|HTTP caching proxy]]&lt;br /&gt;
*[https://www.torproject.org/ Tor]&lt;br /&gt;
*[[IPset]]&lt;br /&gt;
&lt;br /&gt;
Pick a web server to host applications:&lt;br /&gt;
* Converted the Apache, apr*, and PHP packages of Slackware v13.37 into Porteus modules.  They Just Worked(tm).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;We need to figure out how to properly install the control panel app on a new system.  The process should be as pythonic as possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We need to figure out how to bundle the already configured and populated MySQL databases for the web apps!&lt;br /&gt;
* Packaging them into a module and activating it didn&#039;t work.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Write a script that detects the presence or absence of /var/lib/db/*/ and restores them from .sql dumps at boot-time.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[The Doctor&#039;s to-do list]]&lt;br /&gt;
&lt;br /&gt;
==Packages built for Byzantium==&lt;br /&gt;
* babeld - For great mesh routing.&lt;br /&gt;
* batman-adv - Kernel module which implements mesh routing at OSI layer 2.  We may not use it but it&#039;s there if we need it.&lt;br /&gt;
* batctl - Utility for configurating and manipulating batman-adv.&lt;br /&gt;
** Dependency of batman-adv.&lt;br /&gt;
* olsrd - from olsr.org&lt;br /&gt;
* ahcpd - For configuring mesh nodes that don&#039;t want to use the random RFC-1918 IP address generator.&lt;br /&gt;
* CherryPy - Python module that implements a fast multi-threaded HTTP (web application) server.&lt;br /&gt;
** Without this, there is no control panel.&lt;br /&gt;
* pySetupTools - Required for installing some Python modules.&lt;br /&gt;
* Mako - Python HTML templating system.&lt;br /&gt;
** Dependency of the control panel.&lt;br /&gt;
* MarkupSafe - Python library that implements a Unicode string that is aware of HTML escaping rules and does automatic string escaping.&lt;br /&gt;
** Dependency of Mako.&lt;br /&gt;
* Git - Converted Slackware v13.37 package.&lt;br /&gt;
** Necessary for checking code out and into Github.&lt;br /&gt;
* Curl - Converted Slackware v13.37 package.&lt;br /&gt;
** Dependency of git.&lt;br /&gt;
** Note: To make git work without &amp;quot;error setting certificate verify locations&amp;quot; errors, you need to run the following command as the root user: git config --system http.sslcainfo /usr/share/curl/ca-bundle.crt&lt;br /&gt;
* rrdtool - Used by traffic_stats.sh to monitor network traffic and build graphs.&lt;br /&gt;
* sqlitebrowser - Used to develop SQLite database schemas and debug database access code.  Will not be in OS release.&lt;br /&gt;
* &amp;lt;strike&amp;gt;nginx - Lightweight, fast HTTP(S) server.  Much more lightweight than Apache, at any rate.  Custom build for Byzantium.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Enough!&lt;br /&gt;
* gd - Dependency of PHP.&lt;br /&gt;
** Used for server side image manipulation.&lt;br /&gt;
* libmcrypt - Dependency of PHP.&lt;br /&gt;
* icu4c - International Components for Unicode.  i18n dependency of PHP.&lt;br /&gt;
* openldap-client - Dependency of PHP to make it compile.  Not pleased by having to package it, but it won&#039;t build without it.&lt;br /&gt;
** Can we get away with not having it because I didn&#039;t have to compile it for Apache?  Let&#039;s try it!&lt;br /&gt;
* php - Converted Slackware v13.37 package.&lt;br /&gt;
* httpd - Apache v2.2.17.  Converted Slackware v13.37 package.&lt;br /&gt;
** ..and then stuff started working!&lt;br /&gt;
* apr-util - Converted Slackware v13.37 package.&lt;br /&gt;
** Utility used for compiling Apache modules.&lt;br /&gt;
* apr - Converted Slackware v13.37 package.&lt;br /&gt;
** Package used for compiling Apache modules.&lt;br /&gt;
* t1lib - Converted Slackware v13.37 package.  Used for font manipulation.&lt;br /&gt;
* pcre - Converted Slackware v13.37 package.&lt;br /&gt;
** Perl Compatible Regular Expression library.&lt;br /&gt;
** Unicode aware for i18n support.  status.net requires this for basic functionality, whcih means that we get i18n for free.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Firefox v6.0.2&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Do not use!  i_can_haz_firefox.sh builds a package with bad symlinks.  Haven&#039;t bothered to fix it so far.&lt;br /&gt;
* node - An event-driven I/O server-side JavaScript environment based on V8. (from website and wikipedia).&lt;br /&gt;
** Required by Etherpad-lite.&lt;br /&gt;
* dnsmasq - All-in-one DHCP and caching DNS server.&lt;br /&gt;
** Much easier to work with in circumstances like this than ISC BIND or even djbdns.&lt;br /&gt;
* ipcalc - Command-line IP networking calculator.  Will be needed by the control panel shortly.&lt;br /&gt;
** Removed the CGI-BIN script from the package when it was built.&lt;br /&gt;
* ngircd - Lightweight IRC server.&lt;br /&gt;
** Back-end for web chat application.&lt;br /&gt;
** Somehow we need to figure out a way to make them automagically hook together into an IRC network.  But that can wait.&lt;br /&gt;
* zope.interface - Required by Twisted.&lt;br /&gt;
* Twisted - Required by qwebirc.&lt;br /&gt;
** Satisfies the clientless web chat requirement.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Place links relevant to any part of the process of making the live distro here.&lt;br /&gt;
&lt;br /&gt;
[http://porteus.org/ Porteus Official Website]&lt;br /&gt;
[[Processes for building Porteus packages.]]&lt;br /&gt;
[[Process for manually installing Byzantium.]]&lt;br /&gt;
[[Byzantium 101]] - How to get yourself set up.&lt;br /&gt;
[[Hardware compatibility list]]&lt;br /&gt;
[[User Feedback on Byzantium 0.1a]]&lt;br /&gt;
==Timeline==&lt;br /&gt;
* .....uhh....&lt;br /&gt;
* 20 October 2011 - Live demo, presentation, and networking at [http://contactcon.com/ ContactCon].&lt;br /&gt;
&lt;br /&gt;
==Stuff==&lt;br /&gt;
&amp;lt;strike&amp;gt;Need to edit /etc/hosts, add &#039;byzantium&#039; to 127.0.0.1 so that the web server will start up.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Mobile devices and IPv6.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;[http://thekelleys.org.uk/dnsmasq/doc.html DNSmasq]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;One nice thing about DNSmasq is the -H option, for additional /etc/hosts-like files.  We could use those to cache the IP addresses of other Byzantium nodes, and then query them for the services they run.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Hostnames are IPv6 addresses of nodes.&lt;br /&gt;
*** ifconfig wlan0 | grep inet6 | awk &#039;{print $3}&#039; | sed &#039;s/:/-/g&#039; | sed &#039;s/\/64$//&#039; | sed &#039;s/$/.byzantium.mesh/&#039; == fe80--21c-bfff-fe35-84c2.byzantium.mesh&lt;br /&gt;
** &amp;lt;strike&amp;gt;Put IP addresses and hostnames in /etc/hosts.mesh.&amp;lt;/strike&amp;gt;&lt;br /&gt;
** This could also be used for status.net federation and IRC network construction.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move the &#039;&#039;&#039;server=/byzantium.mesh/...&#039;&#039;&#039; line into the generated DNSmasq include file?&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Make the &#039;...&#039; the mesh interface&#039;s IP address?&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Consulted with an expert about IP addressing.  At first scratch, it might be a good idea to stick wtih pseudo-randomly chosen 10/8&#039;s.  Configure the mesh interface for the .1 and give the clients .2-.254.  I&#039;ll re-work the control panel to do that.&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Need to account for [http://www.webopedia.com/TERM/A/APIPA.html APIPA] addressing in the initial set of routes.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Added for the purpose of making networkconfiguration.py [http://www.cyberciti.biz/faq/linux-duplicate-address-detection-with-arping/ detect whether or not the proposed IP address for the mesh interface is in use].&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Byzantium does this now.  It works like a champ.&lt;br /&gt;
&lt;br /&gt;
List of public DNSes that we may wish to fall back upon in the event a node is made into a gateway:&lt;br /&gt;
* [https://code.google.com/speed/public-dns/ Google Public DNS]&lt;br /&gt;
* [http://www.tech-faq.com/public-dns-servers.html Public DNS servers]&lt;br /&gt;
* [https://www.opendns.com/ OpenDNS]&lt;br /&gt;
&lt;br /&gt;
[[Packaging NPM.]]&lt;br /&gt;
&lt;br /&gt;
[[Finding neighboring mesh nodes]]&lt;br /&gt;
&lt;br /&gt;
[[Fully distributed services]]&lt;br /&gt;
&lt;br /&gt;
==Stuff to consider for later==&lt;br /&gt;
* Consider adding [http://code.kryo.se/iodine/ Iodine] to Byzantium to help tunnel gatewayed traffic onto the Net.&lt;br /&gt;
** Gateway nodes in hostile areas could use Iodine to tunnel traffic out.&lt;br /&gt;
** Gateway nodes in non-hostile areas could accept Iodine connections to help less fortunate nodes evade censorship.&lt;br /&gt;
* Consider adding (http|proxy)tunnel with simplified usage of some kind to allow encapsulating arbitrary data streams in http streams.&lt;br /&gt;
* Firewall evasion aids that will work well even in established internet censorship systems?&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Category:Byzantium&amp;diff=7430</id>
		<title>Category:Byzantium</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Category:Byzantium&amp;diff=7430"/>
		<updated>2012-04-30T21:24:15Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Presentations and PR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This project was launched with a sprint on Feb 25-27, 2011.&lt;br /&gt;
Sprints will be held the last weekend of every month.&lt;br /&gt;
&lt;br /&gt;
The development wiki page is [[Byzantium_Live_Distro|here]].&lt;br /&gt;
&lt;br /&gt;
The official mailing list is [http://groups.google.com/a/hacdc.org/group/Byzantium/?hl=en here].&lt;br /&gt;
&lt;br /&gt;
The official Github organization page is [https://github.com/Byzantium/Byzantium here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTICE: If you&#039;ve downloaded Byzantium v0.1a, you need to re-download it immediately due to a major bug in the 10 January 2012 release! This is critical!&#039;&#039;&#039;&lt;br /&gt;
[[Downloading_Byzantium|Where to download Byzantium.]]&lt;br /&gt;
&lt;br /&gt;
== Project Goals ==&lt;br /&gt;
The goal of Project Byzantium is to develop a communication system by which users can connect to each other and share information in the absence of convenient access to the Internet. &lt;br /&gt;
&lt;br /&gt;
The use cases for such a system would be:&lt;br /&gt;
# The infrastructure for accessing the internet has become damaged or inaccessible. (Eg, a natural disaster such as Hurricane Katrina.)&lt;br /&gt;
# A central authority has decided to explicitly block or shutdown key infrastructure. (Eg, Egypt&#039;s recent internet blackout.)&lt;br /&gt;
# A zombie apocalypse in which the personnel responsible for maintaining key infrastructure have all been turned.&lt;br /&gt;
&lt;br /&gt;
The project aims to develop and publish the necessary documentation, best practices, and software to construct and support such a system. Our current approach is to start by investigating and documenting the existing technologies which would support such a system. In particular, mesh networking protocols, wireless networking technologies, and decentralized (or less-centralized) alternatives to internet addressing/naming systems such as DNS. In designing the system, we aim to reduce the dependency on exotic hardware or skill sets so that the system can be deployed quickly and easily by average internet users.&lt;br /&gt;
&lt;br /&gt;
An additional goal is that users not actively participating in the mesh network (i.e., not running mesh routing software on their devices) can make use of the network without having to install anything new, jailbreak their phone, or pry the information out of a hacker infected with the Exsurgent virus.&lt;br /&gt;
&lt;br /&gt;
==Parts==&lt;br /&gt;
[[Byzantium_InterMesh|InterMesh]]&lt;br /&gt;
[[Byzantium_Distributed_DNS|Distributed DNS]]&lt;br /&gt;
[[Byzantium_Live_Distro|Live Distro]]&lt;br /&gt;
&lt;br /&gt;
== Sprints ==&lt;br /&gt;
[[Byzantium Sprint 1|Sprint 1 Details]] [http://drwho.virtadpt.net/archive/2011/03/15/project-byzantium-sprint-1 Write up.]&lt;br /&gt;
[[Byzantium Sprint 2|Sprint 2 Details]] [http://drwho.virtadpt.net/archive/2011/04/14/project-byzantium-development-sprint-2 Write up.]&lt;br /&gt;
[[Byzantium Sprint 3|Sprint 3 Details]]&lt;br /&gt;
[[Byzantium Sprint 4|Sprint 4 Details]]&lt;br /&gt;
Individual sprint reports have been replaced with the [[Byzantium Action Log|Action Log]] since the sprints have become slightly less structured as we delve into the minutia of the project.&lt;br /&gt;
&lt;br /&gt;
== Presentations and PR ==&lt;br /&gt;
[http://www.novalug.org/node/176 Ben and the Doctor will be presenting at NOVALUG!] - 14 May 2011&lt;br /&gt;
[http://contactcon.com/project-byzantium The Doctor will be presenting at ContactCon!] - 20 October 2011&lt;br /&gt;
[http://www.broadbandbridge.org/ Ben and the Doctor presented at DC Broadband Bridge!] - 5 November 2011 ([https://drwho.virtadpt.net/images/byzantium_presentation-20111105.pdf presentation])&lt;br /&gt;
[http://drwho.virtadpt.net/archive/2011/08/08/frequently-needed-answers-for-project-byzantium Unofficial Frequently Asked Questions.]&lt;br /&gt;
[http://www.hacdc.org/content/byzantium-v01a-scarab-released Release announcement for v0.1a!]&lt;br /&gt;
[https://drwho.virtadpt.net/archive/2012/04/30/hacdc-at-the-usa-science-and-engineering-festival Byzantium Linux was distributed and field tested at the USA Science and Engineering Festival!]&lt;br /&gt;
[https://drwho.virtadpt.net/archive/2012/04/20/not-dead-only-busy Project Byzantium will be presenting at CarolinaCon and HOPE Number Nine!]&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
[http://www.fastcompany.com/1750215/how-hackerspaces-can-do-good-for-the-world Fast Company: 28 April 2011]&lt;br /&gt;
[https://chronicle.com/article/College-20-Fear-of/129049/ College v2.0: Fear of Repression Spurs Scholars and Activists to Build Alternate Internets]&lt;br /&gt;
[http://www.shareable.net/blog/10-projects-to-liberate-the-web 10 Projects to Liberate the Web]&lt;br /&gt;
[http://blog.makezine.com/archive/2011/10/project-byzantium-aims-to-avoid-internet-outages.html Make Magazine]&lt;br /&gt;
[http://www.reddit.com/r/darknetplan/comments/l9tko/make_at_washington_dcs_hackerspace_hacdc_a_team/ Make article linked on /r/darknetplan]&lt;br /&gt;
[http://www.tendencias21.net/Ciberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Ciberactivistas crean un Internet alternativo por miedo a la represión] [http://translate.google.com/translate?sl=auto&amp;amp;tl=en&amp;amp;js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=ISO-8859-1&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;u=http%3A%2F%2Fwww.tendencias21.net%2FCiberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Google Translation]&lt;br /&gt;
[http://www.fastcoexist.com/1677951/hackerspaces-hubs-for-tech-minded-do-gooders Hackerspaces: Hubs for Tech-Minded do-Gooders?]&lt;br /&gt;
[http://www.disinfo.com/2012/03/interview-with-telecomix-hacktivists-peter-fein-and-the-doctor/ Interview with DisinfoTV at ContactCon]&lt;br /&gt;
[http://www.theglobalmail.org/feature/iran-not-tweeting-hacking/165/ Iran: Not Tweeting, Hacking]; Byzantium-related stuff near the end of the article, some inaccuracies.&lt;br /&gt;
&lt;br /&gt;
[[Category:Ongoing_Projects]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DynamicPageList&amp;gt;&lt;br /&gt;
category             = Byzantium&lt;br /&gt;
order                = ascending&lt;br /&gt;
mode     = inline&lt;br /&gt;
addfirstcategorydate = true&lt;br /&gt;
&amp;lt;/DynamicPageList&amp;gt;&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=USA_Science_%26_Engineering_Festival_2012&amp;diff=7422</id>
		<title>USA Science &amp; Engineering Festival 2012</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=USA_Science_%26_Engineering_Festival_2012&amp;diff=7422"/>
		<updated>2012-04-28T04:14:36Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Misc Stuff To Bring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Events]]&lt;br /&gt;
&lt;br /&gt;
HacDC has a 10x20 foot booth at the [http://www.usasciencefestival.org/ 2012 USA Science &amp;amp; Engineering Festival], in the National Robot Fest and DIY Expo area that has been organized by Gary Mauler.  &lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
&lt;br /&gt;
Here is a [http://c3067082.r82.cf0.rackcdn.com/2012ExpoMap_Printable_web_v4.pdf map and schedule] of the entire Festival.&lt;br /&gt;
&lt;br /&gt;
Here is the [[media:USSF_Robot_Fest_Floor_Plan_4-18-12.pdf‎|floorplan]] of the Robotfest/DIY Expo area.  We have booths 2250 + 2252.&lt;br /&gt;
&lt;br /&gt;
Here are [[media:USASEF_Webinar_PPT.pdf|slides]] from the conference call where they discussed logistics like move-in and move-out rules.&lt;br /&gt;
&lt;br /&gt;
== Who Will Be Going ==&lt;br /&gt;
&lt;br /&gt;
List of people who will be going, when, and whether they can sit at the HacDC booth&lt;br /&gt;
&lt;br /&gt;
* Tim Slagle, at booth Saturday, going Sunday with my kids&lt;br /&gt;
* David Kaufman, going Saturday and Sunday&lt;br /&gt;
* Mark Adams&lt;br /&gt;
* haxwithaxe as needed&lt;br /&gt;
* The Doctor, Saturday and Sunday&lt;br /&gt;
* Anderson Ta, @booth on Saturday all day&lt;br /&gt;
* Martin R, Saturday &amp;amp; Sunday&lt;br /&gt;
* Nick B, Friday, Saturday &amp;amp; Sunday&lt;br /&gt;
* David Whiteis, Sunday?&lt;br /&gt;
&lt;br /&gt;
== Cart Transport ==&lt;br /&gt;
&lt;br /&gt;
Exhibitors will be allowed to hand-carry in one trip worth of items for their booth.  You must be able to carry it by yourself with no help from people or equipment (backpacks okay).  Everything else will need to be brought in from the loading dock to our booth on a cart by Hargrove, the union drayage service.  We have coupons for two 3&#039;x5&#039; cart-loads of stuff.  They will unload the stuff from our vehicle and move it (by cart) to our booth, and then we would go set it up I suppose.  If you will need to haul your stuff on a cart, please sign up here:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who, What, Size (WxLxH), When&#039;&#039;&#039;&lt;br /&gt;
* Tim Slagle, Plotter, 2.5x1.5x1 feet, Friday afternoon?&lt;br /&gt;
* Tim Slagle, LED Message Ball in box, 1.5x1.5x2&#039;, Friday afternoon?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Everything going by cart will need to be labelled with HacDC and our booth number, which is 2250.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Projects On Display ==&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to show something at the 2012 USASEF, feel free to ad your project info to the list below.  Do it soon so we can organize the transport setup and breakdown of the booth!  For each project please list info like : &lt;br /&gt;
* Name of project&lt;br /&gt;
* Contact person&lt;br /&gt;
* Who will be at the booth and when&lt;br /&gt;
* Space needed&lt;br /&gt;
* Equipment required&lt;br /&gt;
* Supplies needed&lt;br /&gt;
* Completion status&lt;br /&gt;
* Project wiki page&lt;br /&gt;
&lt;br /&gt;
=== Image Plotter ===&lt;br /&gt;
&lt;br /&gt;
* Contact: TimS&lt;br /&gt;
* Booth people: TimS all day Saturday&lt;br /&gt;
* Space: 4 ft of table space for plotter and PC; wall space with white background for taking images with webcam&lt;br /&gt;
* Equipment: Windows PC or laptop, webcam and tripod, HP7550A plotter, maybe light source&lt;br /&gt;
* Supplies: Paper with HacDC info, plotter pens/ink&lt;br /&gt;
* Status: in development&lt;br /&gt;
&lt;br /&gt;
=== Trippy Video Pong ===&lt;br /&gt;
&lt;br /&gt;
* Contact: BradB&lt;br /&gt;
* Equipment: Fast PC running Linux, webcam, video projector&lt;br /&gt;
* Status: under development&lt;br /&gt;
&lt;br /&gt;
=== SpaceBlimp ===&lt;br /&gt;
* Contact:  Martin R&lt;br /&gt;
* Staff: Martin R Sat &amp;amp; Sun&lt;br /&gt;
* Space: 2 feet of table space&lt;br /&gt;
* Equipment: Laptop for displaying video, SB hardware display, poster&lt;br /&gt;
* Status: Poster in development&lt;br /&gt;
* Project Wiki: [http://wiki.hacdc.org/index.php/HacDC_Spaceblimp SpaceBlimp]&lt;br /&gt;
&lt;br /&gt;
=== Byzantium ===&lt;br /&gt;
* Contact: haxwithaxe&lt;br /&gt;
* staff:&lt;br /&gt;
** haxwithaxe (as much as possible)&lt;br /&gt;
** The Doctor&lt;br /&gt;
* Space needed: none or space for small whiteboard&lt;br /&gt;
** Room to set up a mesh node would be nice.&lt;br /&gt;
* Equipment required: small whiteboard if space allows&lt;br /&gt;
* Supplies needed: CD-Rs and spare USBThumbdrives ahead of time&lt;br /&gt;
* Completion status: impending Beta&lt;br /&gt;
* Project wiki page: [[Byzantium|wiki]] [http://project-byzantium.org/ project site]&lt;br /&gt;
&lt;br /&gt;
=== ShapeOko ===&lt;br /&gt;
&lt;br /&gt;
* Contact: Mark Adams&lt;br /&gt;
&lt;br /&gt;
=== Blinky Projects ===&lt;br /&gt;
&lt;br /&gt;
* Contact: David Kaufman&lt;br /&gt;
&lt;br /&gt;
=== 3D Printing ===&lt;br /&gt;
&lt;br /&gt;
* Contact: Anderson Ta&lt;br /&gt;
* Staff: Anderson Ta, Saturday&lt;br /&gt;
* Space: 3 feet of table space for UP!&lt;br /&gt;
* Supplies: Roll of Plastic, Kinect/Tripod (if we are still scanning?), Power Strip&lt;br /&gt;
&lt;br /&gt;
=== Signup Kiosk ===&lt;br /&gt;
&lt;br /&gt;
* Contact: ITechGeek&lt;br /&gt;
* Staff: (not needed?)&lt;br /&gt;
* Space: 2 feet of table space&lt;br /&gt;
* Equipment: Computer, Keyboard, Mouse, and LCD monitor&lt;br /&gt;
&lt;br /&gt;
=== Ring Bubble Generator ===&lt;br /&gt;
&lt;br /&gt;
* Contact: David Whiteis&lt;br /&gt;
* Staff: David Whiteis Sunday&lt;br /&gt;
* Equipment: Water tank, pump&lt;br /&gt;
* Space: 14&amp;quot; wide for tank.&lt;br /&gt;
* Supplies: water for tank, power&lt;br /&gt;
&lt;br /&gt;
== Misc Stuff To Bring ==&lt;br /&gt;
&lt;br /&gt;
A list of stuff we will want to have at the booth.  If you can bring it, please sign up with your name by the item.  Personal items should have your name written on them in big letters so it can be returned to you easily.&lt;br /&gt;
&lt;br /&gt;
* HacDC banner for table: &lt;br /&gt;
* HacDC postcards: Mark Adams&lt;br /&gt;
* HacDC brochures? (maybe we should save these since they will all get given away)&lt;br /&gt;
** I picked up a bunch at the &#039;space tonight.  I&#039;m bringing them with me. --DrWho&lt;br /&gt;
* HacDC stickers: DrWho&lt;br /&gt;
* Power strips (at least 4 needed): Tim Slagle&lt;br /&gt;
* Network switch and ethernet cables to hook up PCs together: Tim Slagle&lt;br /&gt;
* Extension cords (2-3 needed)&lt;br /&gt;
* Duct tape for taping down cords: Tim Slagle&lt;br /&gt;
* Big bowl of Dum Dums lollipops: Tim Slagle&lt;br /&gt;
* LED message ball: Tim Slagle&lt;br /&gt;
* HacDC Tip Jar (if allowed)&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=USA_Science_%26_Engineering_Festival_2012&amp;diff=7416</id>
		<title>USA Science &amp; Engineering Festival 2012</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=USA_Science_%26_Engineering_Festival_2012&amp;diff=7416"/>
		<updated>2012-04-26T16:12:33Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Byzantium */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Events]]&lt;br /&gt;
&lt;br /&gt;
HacDC has a 10x20 foot booth at the [http://www.usasciencefestival.org/ 2012 USA Science &amp;amp; Engineering Festival], in the National Robot Fest and DIY Expo area that has been organized by Gary Mauler.  &lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
&lt;br /&gt;
Here is a [http://c3067082.r82.cf0.rackcdn.com/2012ExpoMap_Printable_web_v4.pdf map and schedule] of the entire Festival.&lt;br /&gt;
&lt;br /&gt;
Here is the [[media:USSF_Robot_Fest_Floor_Plan_4-18-12.pdf‎|floorplan]] of the Robotfest/DIY Expo area.  We have booths 2250 + 2252.&lt;br /&gt;
&lt;br /&gt;
Here are [[media:USASEF_Webinar_PPT.pdf|slides]] from the conference call where they discussed logistics like move-in and move-out rules.&lt;br /&gt;
&lt;br /&gt;
== Who Will Be Going ==&lt;br /&gt;
&lt;br /&gt;
List of people who will be going, when, and whether they can sit at the HacDC booth&lt;br /&gt;
&lt;br /&gt;
* Tim Slagle, at booth Saturday, going Sunday with my kids&lt;br /&gt;
* David Kaufman, going Saturday and Sunday&lt;br /&gt;
* Mark Adams&lt;br /&gt;
* haxwithaxe as needed&lt;br /&gt;
* The Doctor, Saturday and Sunday&lt;br /&gt;
* Anderson Ta, @booth on Saturday all day&lt;br /&gt;
* Martin R, Saturday &amp;amp; Sunday&lt;br /&gt;
* Nick B, Friday, Saturday &amp;amp; Sunday&lt;br /&gt;
* David Whiteis, Sunday?&lt;br /&gt;
&lt;br /&gt;
== Cart Transport ==&lt;br /&gt;
&lt;br /&gt;
Exhibitors will be allowed to hand-carry in one trip worth of items for their booth.  You must be able to carry it by yourself with no help from people or equipment (backpacks okay).  Everything else will need to be brought in from the loading dock to our booth on a cart by Hargrove, the union drayage service.  We have coupons for two 3&#039;x5&#039; cart-loads of stuff.  They will unload the stuff from our vehicle and move it (by cart) to our booth, and then we would go set it up I suppose.  If you will need to haul your stuff on a cart, please sign up here:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who, What, Size (WxLxH), When&#039;&#039;&#039;&lt;br /&gt;
* Tim Slagle, Plotter, 2.5x1.5x1 feet, Friday afternoon?&lt;br /&gt;
* Tim Slagle, LED Message Ball in box, 1.5x1.5x2&#039;, Friday afternoon?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Everything going by cart will need to be labelled with HacDC and our booth number, which is 2250.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Projects On Display ==&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to show something at the 2012 USASEF, feel free to ad your project info to the list below.  Do it soon so we can organize the transport setup and breakdown of the booth!  For each project please list info like : &lt;br /&gt;
* Name of project&lt;br /&gt;
* Contact person&lt;br /&gt;
* Who will be at the booth and when&lt;br /&gt;
* Space needed&lt;br /&gt;
* Equipment required&lt;br /&gt;
* Supplies needed&lt;br /&gt;
* Completion status&lt;br /&gt;
* Project wiki page&lt;br /&gt;
&lt;br /&gt;
=== Image Plotter ===&lt;br /&gt;
&lt;br /&gt;
* Contact: TimS&lt;br /&gt;
* Booth people: TimS all day Saturday&lt;br /&gt;
* Space: 4 ft of table space for plotter and PC; wall space with white background for taking images with webcam&lt;br /&gt;
* Equipment: Windows PC or laptop, webcam and tripod, HP7550A plotter, maybe light source&lt;br /&gt;
* Supplies: Paper with HacDC info, plotter pens/ink&lt;br /&gt;
* Status: in development&lt;br /&gt;
&lt;br /&gt;
=== Trippy Video Pong ===&lt;br /&gt;
&lt;br /&gt;
* Contact: BradB&lt;br /&gt;
* Equipment: Fast PC running Linux, webcam, video projector&lt;br /&gt;
* Status: under development&lt;br /&gt;
&lt;br /&gt;
=== SpaceBlimp ===&lt;br /&gt;
* Contact:  Martin R&lt;br /&gt;
* Staff: Martin R Sat &amp;amp; Sun&lt;br /&gt;
* Space: 2 feet of table space&lt;br /&gt;
* Equipment: Laptop for displaying video, SB hardware display, poster&lt;br /&gt;
* Status: Poster in development&lt;br /&gt;
* Project Wiki: [http://wiki.hacdc.org/index.php/HacDC_Spaceblimp SpaceBlimp]&lt;br /&gt;
&lt;br /&gt;
=== Byzantium ===&lt;br /&gt;
* Contact: haxwithaxe&lt;br /&gt;
* staff:&lt;br /&gt;
** haxwithaxe (as much as possible)&lt;br /&gt;
** The Doctor&lt;br /&gt;
* Space needed: none or space for small whiteboard&lt;br /&gt;
** Room to set up a mesh node would be nice.&lt;br /&gt;
* Equipment required: small whiteboard if space allows&lt;br /&gt;
* Supplies needed: CD-Rs and spare USBThumbdrives ahead of time&lt;br /&gt;
* Completion status: impending Beta&lt;br /&gt;
* Project wiki page: [[Byzantium|wiki]] [http://project-byzantium.org/ project site]&lt;br /&gt;
&lt;br /&gt;
=== ShapeOko ===&lt;br /&gt;
&lt;br /&gt;
* Contact: Mark Adams&lt;br /&gt;
&lt;br /&gt;
=== Blinky Projects ===&lt;br /&gt;
&lt;br /&gt;
* Contact: David Kaufman&lt;br /&gt;
&lt;br /&gt;
=== 3D Printing ===&lt;br /&gt;
&lt;br /&gt;
* Contact: Anderson Ta&lt;br /&gt;
* Staff: Anderson Ta, Saturday&lt;br /&gt;
* Space: 3 feet of table space for UP!&lt;br /&gt;
* Supplies: Roll of Plastic, Kinect/Tripod (if we are still scanning?), Power Strip&lt;br /&gt;
&lt;br /&gt;
=== Signup Kiosk ===&lt;br /&gt;
&lt;br /&gt;
* Contact: ITechGeek&lt;br /&gt;
* Staff: (not needed?)&lt;br /&gt;
* Space: 2 feet of table space&lt;br /&gt;
* Equipment: Computer, Keyboard, Mouse, and LCD monitor&lt;br /&gt;
&lt;br /&gt;
=== Ring Bubble Generator ===&lt;br /&gt;
&lt;br /&gt;
* Contact: David Whiteis&lt;br /&gt;
* Staff: David Whiteis Sunday&lt;br /&gt;
* Equipment: Water tank, pump&lt;br /&gt;
* Space: 14&amp;quot; wide for tank.&lt;br /&gt;
* Supplies: water for tank, power&lt;br /&gt;
&lt;br /&gt;
== Misc Stuff To Bring ==&lt;br /&gt;
&lt;br /&gt;
A list of stuff we will want to have at the booth.  If you can bring it, please sign up with your name by the item.  Personal items should have your name written on them in big letters so it can be returned to you easily.&lt;br /&gt;
&lt;br /&gt;
* HacDC banner for table: &lt;br /&gt;
* HacDC postcards: Mark Adams&lt;br /&gt;
* HacDC brochures? (maybe we should save these since they will all get given away)&lt;br /&gt;
* Power strips (at least 4 needed): Tim Slagle&lt;br /&gt;
* Network switch and ethernet cables to hook up PCs together: Tim Slagle&lt;br /&gt;
* Extension cords (2-3 needed)&lt;br /&gt;
* Duct tape for taping down cords: Tim Slagle&lt;br /&gt;
* Big bowl of Dum Dums lollipops: Tim Slagle&lt;br /&gt;
* LED message ball: Tim Slagle&lt;br /&gt;
* HacDC Tip Jar (if allowed)&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=USA_Science_%26_Engineering_Festival_2012&amp;diff=7404</id>
		<title>USA Science &amp; Engineering Festival 2012</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=USA_Science_%26_Engineering_Festival_2012&amp;diff=7404"/>
		<updated>2012-04-25T14:34:56Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Who Will Be Going */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Events]]&lt;br /&gt;
&lt;br /&gt;
HacDC has a 10x20 foot booth at the [http://www.usasciencefestival.org/ 2012 USA Science &amp;amp; Engineering Festival], in the National Robot Fest and DIY Expo area that has been organized by Gary Mauler.  &lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
&lt;br /&gt;
Here is a [http://c3067082.r82.cf0.rackcdn.com/2012ExpoMap_Printable_web_v4.pdf map and schedule] of the entire Festival.&lt;br /&gt;
&lt;br /&gt;
Here is the [[media:USSF_Robot_Fest_Floor_Plan_4-18-12.pdf‎|floorplan]] of the Robotfest/DIY Expo area.&lt;br /&gt;
&lt;br /&gt;
Here are [[media:USASEF_Webinar_PPT.pdf|slides]] from the conference call where they discussed logistics like move-in and move-out rules.&lt;br /&gt;
&lt;br /&gt;
== Who Will Be Going ==&lt;br /&gt;
&lt;br /&gt;
List of people who will be going, when, and whether they can sit at the HacDC booth&lt;br /&gt;
&lt;br /&gt;
* Tim Slagle, at booth Saturday, going Sunday with my kids&lt;br /&gt;
* David Kaufman, going Saturday and Sunday&lt;br /&gt;
* Mark Adams&lt;br /&gt;
* haxwithaxe as needed&lt;br /&gt;
* The Doctor, Saturday and Sunday&lt;br /&gt;
* Anderson Ta, @booth on Saturday all day&lt;br /&gt;
* Martin R, Saturday &amp;amp; Sunday&lt;br /&gt;
* Nick B, Friday, Saturday &amp;amp; Sunday&lt;br /&gt;
* David Whiteis, Sunday?&lt;br /&gt;
&lt;br /&gt;
== Cart Transport ==&lt;br /&gt;
&lt;br /&gt;
Exhibitors will be allowed to hand-carry in one trip worth of items for their booth.  You must be able to carry it by yourself with no help from people or equipment (backpacks okay).  Everything else will need to be brought in from the loading dock to our booth on a cart by the union drayage service.  We have two 3&#039;x5&#039; four-wheeled carts available for moving stuff from the unloading areas into the booth.  If you will need to haul your stuff on a cart, please sign up here:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who, What, Size (WxLxH), When&#039;&#039;&#039;&lt;br /&gt;
* Tim Slagle, Plotter, 2.5x1.5x1 feet, Friday afternoon?&lt;br /&gt;
* Tim Slagle, LED Message Ball in box, 1.5x1.5x2&#039;, Friday afternoon?&lt;br /&gt;
&lt;br /&gt;
== Projects On Display ==&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to show something at the 2012 USASEF, feel free to ad your project info to the list below.  Do it soon so we can organize the transport setup and breakdown of the booth!  For each project please list info like : &lt;br /&gt;
* Name of project&lt;br /&gt;
* Contact person&lt;br /&gt;
* Who will be at the booth and when&lt;br /&gt;
* Space needed&lt;br /&gt;
* Equipment required&lt;br /&gt;
* Supplies needed&lt;br /&gt;
* Completion status&lt;br /&gt;
* Project wiki page&lt;br /&gt;
&lt;br /&gt;
=== Image Plotter ===&lt;br /&gt;
&lt;br /&gt;
* Contact: TimS&lt;br /&gt;
* Booth people: TimS all day Saturday&lt;br /&gt;
* Space: 4 ft of table space for plotter and PC; wall space with white background for taking images with webcam&lt;br /&gt;
* Equipment: Windows PC or laptop, webcam and tripod, HP7550A plotter, maybe light source&lt;br /&gt;
* Supplies: Paper with HacDC info, plotter pens/ink&lt;br /&gt;
* Status: in development&lt;br /&gt;
&lt;br /&gt;
=== Trippy Video Pong ===&lt;br /&gt;
&lt;br /&gt;
* Contact: BradB&lt;br /&gt;
* Equipment: Fast PC running Linux, webcam, video projector&lt;br /&gt;
* Status: under development&lt;br /&gt;
&lt;br /&gt;
=== SpaceBlimp ===&lt;br /&gt;
* Contact:  Martin R&lt;br /&gt;
* Staff: Martin R Sat &amp;amp; Sun&lt;br /&gt;
* Space: 2 feet of table space&lt;br /&gt;
* Equipment: Laptop for displaying video, SB hardware display, poster&lt;br /&gt;
* Status: Poster in development&lt;br /&gt;
* Project Wiki: [http://wiki.hacdc.org/index.php/HacDC_Spaceblimp SpaceBlimp]&lt;br /&gt;
&lt;br /&gt;
=== Byzantium ===&lt;br /&gt;
* Contact: haxwithaxe&lt;br /&gt;
* staff: haxwithaxe (as much as possible)&lt;br /&gt;
* Space needed: none or space for small whiteboard&lt;br /&gt;
* Equipment required: small whiteboard if space allows&lt;br /&gt;
* Supplies needed: CD-Rs and spare USBThumbdrives ahead of time&lt;br /&gt;
* Completion status: impending Beta&lt;br /&gt;
* Project wiki page: [[Byzantium|wiki]] [http://project-byzantium.org/ project site]&lt;br /&gt;
&lt;br /&gt;
=== ShapeOko ===&lt;br /&gt;
&lt;br /&gt;
* Contact: Mark Adams&lt;br /&gt;
&lt;br /&gt;
=== Blinky Projects ===&lt;br /&gt;
&lt;br /&gt;
* Contact: David Kaufman&lt;br /&gt;
&lt;br /&gt;
=== 3D Printing ===&lt;br /&gt;
&lt;br /&gt;
* Contact: Anderson Ta&lt;br /&gt;
* Staff: Anderson Ta, Saturday&lt;br /&gt;
* Space: 3 feet of table space for UP!&lt;br /&gt;
* Supplies: Roll of Plastic, Kinect/Tripod (if we are still scanning?), Power Strip&lt;br /&gt;
&lt;br /&gt;
=== Signup Kiosk ===&lt;br /&gt;
&lt;br /&gt;
* Contact: ITechGeek&lt;br /&gt;
* Staff: (not needed?)&lt;br /&gt;
* Space: 2 feet of table space&lt;br /&gt;
* Equipment: Computer, Keyboard, Mouse, and LCD monitor&lt;br /&gt;
&lt;br /&gt;
=== Ring Bubble Generator ===&lt;br /&gt;
&lt;br /&gt;
* Contact: David Whiteis&lt;br /&gt;
* Staff: David Whiteis Sunday&lt;br /&gt;
* Equipment: Water tank, pump&lt;br /&gt;
* Space: 14&amp;quot; wide for tank.&lt;br /&gt;
* Supplies: water for tank, power&lt;br /&gt;
&lt;br /&gt;
== Misc Stuff To Bring ==&lt;br /&gt;
&lt;br /&gt;
A list of stuff we will want to have at the booth.  If you can bring it, please sign up with your name by the item.  Personal items should have your name written on them in big letters so it can be returned to you easily.&lt;br /&gt;
&lt;br /&gt;
* HacDC postcards: Mark Adams&lt;br /&gt;
* HacDC brochures? (maybe we should save these since they will all get given away)&lt;br /&gt;
* Power strips (at least 4 needed): Tim Slagle&lt;br /&gt;
* Network switch and ethernet cables to hook up PCs together: Tim Slagle&lt;br /&gt;
* Extension cords (2-3 needed)&lt;br /&gt;
* Duct tape for taping down cords: Tim Slagle&lt;br /&gt;
* Big bowl of dum dums lollipops: Tim Slagle&lt;br /&gt;
* LED message ball: Tim Slagle&lt;br /&gt;
* HacDC Tip Jar (if allowed)&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=User:Drwho&amp;diff=7391</id>
		<title>User:Drwho</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=User:Drwho&amp;diff=7391"/>
		<updated>2012-04-23T03:07:15Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Name: Bryce A. Lynch&lt;br /&gt;
Handle: The Doctor [412/724/301/703]&lt;br /&gt;
Website: [http://drwho.virtadpt.net/ Antarctica Starts Here.]&lt;br /&gt;
PGP key: [http://drwho.virtadpt.net/gpgkey.txt 0x807B17C1 / 7960 1CDC 85C9 0B63 8D9F  DD89 3BD8 FF2B 807B 17C1]&lt;br /&gt;
&lt;br /&gt;
Likes&lt;br /&gt;
*Anonymity preserving technologies&lt;br /&gt;
*Bandwidth&lt;br /&gt;
*Blogging&lt;br /&gt;
*Books&lt;br /&gt;
*Chiptunes&lt;br /&gt;
*Cognitive liberty&lt;br /&gt;
*Constructive irrationality&lt;br /&gt;
*Cryptography&lt;br /&gt;
*Dancing&lt;br /&gt;
*Hacking&lt;br /&gt;
*Morphological freedom&lt;br /&gt;
*Music&lt;br /&gt;
*Neurology&lt;br /&gt;
*Privacy preserving technologies&lt;br /&gt;
*Programming&lt;br /&gt;
*RPGs&lt;br /&gt;
*Solitude&lt;br /&gt;
*Steampunk&lt;br /&gt;
*Transhumanism&lt;br /&gt;
*Writing&lt;br /&gt;
&lt;br /&gt;
Dislikes:&lt;br /&gt;
*Dead batteries&lt;br /&gt;
*Faulty wetware&lt;br /&gt;
*Inferior organic components&lt;br /&gt;
*Stupidity&lt;br /&gt;
*Wasting time&lt;br /&gt;
*Wasting energy&lt;br /&gt;
*Surveillance&lt;br /&gt;
&lt;br /&gt;
Projects:&lt;br /&gt;
*[[Byzantium | Project Byzantium]]&lt;br /&gt;
*Carved bone walking stick&lt;br /&gt;
*Hacking the [http://www.ocztechnology.com/products/ocz_peripherals/nia-neural_impulse_actuator OCZ Neural Impulse Actuator]&lt;br /&gt;
*RFID body jewelry&lt;br /&gt;
*Steampunk sonic screwdriver&lt;br /&gt;
*[http://zerostate.net/ The Zero State]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*Shy.  Slightly agoraphobic.&lt;br /&gt;
*Finally joined HacDC after four years.&lt;br /&gt;
*Thinks that the performance of an experiment is just as important as the results collected.&lt;br /&gt;
*[http://www.creativecommons.org/ Creative Commons] advocate.&lt;br /&gt;
*[http://eclipsephase.org Eclipse Phase] political faction: [https://secure.wikimedia.org/wikipedia/en/wiki/JASON_%28advisory_group%29 Argonaut]&lt;br /&gt;
*Rumored to be the illegitimate lovechild of Luna Lovegood and Wintermute.&lt;br /&gt;
&lt;br /&gt;
Quotes:&lt;br /&gt;
*&amp;quot;Nothing says you can&#039;t.&amp;quot;&lt;br /&gt;
*&amp;quot;Aw, hell.&amp;quot;&lt;br /&gt;
*&amp;quot;Hey, ya&#039;all, watch this!&amp;quot;&lt;br /&gt;
*&amp;quot;What did you say your username was again?&amp;quot;&lt;br /&gt;
*&amp;quot;We&#039;re now twenty minutes into the future.  Unfortunately we got some &#039;&#039;Videodrome&#039;&#039; along with &#039;&#039;Max Headroom&#039;&#039;.&amp;quot;&lt;br /&gt;
*&amp;quot;I hate it when people use CamelCase in their code.  It makes the statements read like Vanilla Ice lyrics.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Friends]]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=User:Drwho&amp;diff=7386</id>
		<title>User:Drwho</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=User:Drwho&amp;diff=7386"/>
		<updated>2012-04-22T06:50:17Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Name: Bryce A. Lynch&lt;br /&gt;
Handle: The Doctor [412/724/301/703]&lt;br /&gt;
Website: [http://drwho.virtadpt.net/ Antarctica Starts Here.]&lt;br /&gt;
PGP key: [http://drwho.virtadpt.net/gpgkey.txt 0x807B17C1 / 7960 1CDC 85C9 0B63 8D9F  DD89 3BD8 FF2B 807B 17C1]&lt;br /&gt;
&lt;br /&gt;
Likes&lt;br /&gt;
*Anonymity preserving technologies&lt;br /&gt;
*Bandwidth&lt;br /&gt;
*Blogging&lt;br /&gt;
*Books&lt;br /&gt;
*Chiptunes&lt;br /&gt;
*Cognitive liberty&lt;br /&gt;
*Constructive irrationality&lt;br /&gt;
*Cryptography&lt;br /&gt;
*Dancing&lt;br /&gt;
*Hacking&lt;br /&gt;
*Morphological freedom&lt;br /&gt;
*Music&lt;br /&gt;
*Neurology&lt;br /&gt;
*Privacy preserving technologies&lt;br /&gt;
*Programming&lt;br /&gt;
*RPGs&lt;br /&gt;
*Solitude&lt;br /&gt;
*Steampunk&lt;br /&gt;
*Transhumanism&lt;br /&gt;
*Writing&lt;br /&gt;
&lt;br /&gt;
Dislikes:&lt;br /&gt;
*Dead batteries&lt;br /&gt;
*Faulty wetware&lt;br /&gt;
*Inferior organic components&lt;br /&gt;
*Stupidity&lt;br /&gt;
*Wasting time&lt;br /&gt;
*Wasting energy&lt;br /&gt;
*Surveillance&lt;br /&gt;
&lt;br /&gt;
Projects:&lt;br /&gt;
*[[Byzantium | Project Byzantium]]&lt;br /&gt;
*Carved bone walking stick&lt;br /&gt;
*Hacking the [http://www.ocztechnology.com/products/ocz_peripherals/nia-neural_impulse_actuator OCZ Neural Impulse Actuator]&lt;br /&gt;
*RFID body jewelry&lt;br /&gt;
*Steampunk sonic screwdriver&lt;br /&gt;
*[http://zerostate.net/ The Zero State]&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
*Shy.  Slightly agoraphobic.&lt;br /&gt;
*Finally joined HacDC after four years.&lt;br /&gt;
*Thinks that the performance of an experiment is just as important as the results collected.&lt;br /&gt;
*[http://www.creativecommons.org/ Creative Commons] advocate.&lt;br /&gt;
*[http://eclipsephase.org Eclipse Phase] political faction: [https://secure.wikimedia.org/wikipedia/en/wiki/JASON_%28advisory_group%29 Argonaut]&lt;br /&gt;
*Rumored the be the illegitimate lovehild of Luna Lovegood and Wintermute.&lt;br /&gt;
&lt;br /&gt;
Quotes:&lt;br /&gt;
*&amp;quot;Nothing says you can&#039;t.&amp;quot;&lt;br /&gt;
*&amp;quot;Aw, hell.&amp;quot;&lt;br /&gt;
*&amp;quot;Hey, ya&#039;all, watch this!&amp;quot;&lt;br /&gt;
*&amp;quot;What did you say your username was again?&amp;quot;&lt;br /&gt;
*&amp;quot;We&#039;re now twenty minutes into the future.  Unfortunately we got some &#039;&#039;Videodrome&#039;&#039; along with &#039;&#039;Max Headroom&#039;&#039;.&amp;quot;&lt;br /&gt;
*&amp;quot;I hate it when people use CamelCase in their code.  It makes the statements read like Vanilla Ice lyrics.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:Friends]]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=User_Feedback_on_Byzantium_0.1a&amp;diff=7283</id>
		<title>User Feedback on Byzantium 0.1a</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=User_Feedback_on_Byzantium_0.1a&amp;diff=7283"/>
		<updated>2012-04-08T22:04:12Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* DVD .iso boots fine, but I did see some boot errors flash past before X came up&lt;br /&gt;
* &amp;lt;strike&amp;gt;Looked for a desktop link or Control Panel entry to start Byzantium. Didn&#039;t find any.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* I found no clear How-To or Getting Started documentation on how to get Byzantium Meshes up and running here on the Wiki or as part of the distro. Eventually found this post about running it from a USB stick http://metropioneer.com/meshnet/Bootable_USB_Stick_How-To.txt&lt;br /&gt;
* &amp;lt;strike&amp;gt;It would be good if Firefox opens by default to http://locahost:8080 so it is obvious for a newbie on where he has to go to configure the mesh&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;The &amp;quot;System Status&amp;quot; page is basically useless as it seems to say nothing about the current mesh status.&amp;lt;/strike&amp;gt;&lt;br /&gt;
**&amp;lt;strike&amp;gt;It is not obvious what is the status of the network i.e. ESID and channel that the network is using, and whether or not it is configured. Some wlan info here would be extremely helpful.&amp;lt;/strike&amp;gt;&lt;br /&gt;
**It is not obvious what is the status of the mesh, i.e. is it configured or not, what IP addresses are being used, how many peers have been found. Some ifconfig info here would be extremely helpful.&lt;br /&gt;
**We never got around to configuring any mesh services.&lt;br /&gt;
*Trouble keeping an ad hoc WiFi connection to the Byzantium mesh.&lt;br /&gt;
**The laptops were all sitting next to each other and we were using a channel which was not being used by any other APs.&lt;br /&gt;
**&amp;lt;strike&amp;gt;Windows 7 and Windows XP had would take a long time (minutes) before it was working, then disconnect after a while.&amp;lt;/strike&amp;gt;&lt;br /&gt;
**&amp;lt;strike&amp;gt;An Ubuntu netbook WiFi client seems to be a bit more reliable.&amp;lt;/strike&amp;gt;&lt;br /&gt;
**An HTC Desire couldn&#039;t see the ad hoc network&lt;br /&gt;
**&amp;lt;strike&amp;gt;An iPhone 4 did seem to work.&amp;lt;/strike&amp;gt;&lt;br /&gt;
*Also booted Byzantium in a Virtual Machine (VM)&lt;br /&gt;
**It would be great if there was a way to run a emulated mesh node in a VM for test and demo purposes. However, a VM can&#039;t expose or manage the host Operating System&#039;s WiFi.&lt;br /&gt;
***It could, actually - VirtualBox&#039;s USB passthrough functionality could expose wi-fi keys to virtual machines.&lt;br /&gt;
**Perhaps some sort of WiFi emulation layer that could run on eth0 inside the VM?&lt;br /&gt;
**It would then be comparatively easy to spin up say 100 VM mesh nodes, and see if the routing protocol scales.&lt;br /&gt;
***We&#039;re planning on doing a BattleMesh DC soon (v0.3?  v0.4?)&lt;br /&gt;
&lt;br /&gt;
{{Template:Byzantium}}&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium&amp;diff=6581</id>
		<title>Byzantium</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium&amp;diff=6581"/>
		<updated>2012-04-02T13:54:55Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Press */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This project was launched with a sprint on Feb 25-27, 2011.&lt;br /&gt;
Sprints will be held the last weekend of every month.&lt;br /&gt;
&lt;br /&gt;
The development wiki page is [[Byzantium_Live_Distro|here]].&lt;br /&gt;
&lt;br /&gt;
The official mailing list is [http://groups.google.com/a/hacdc.org/group/Byzantium/?hl=en here].&lt;br /&gt;
&lt;br /&gt;
The official Github organization page is [https://github.com/Byzantium/Byzantium here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTICE: If you&#039;ve downloaded Byzantium v0.1a, you need to re-download it immediately due to a major bug in the 10 January 2012 release! This is critical!&#039;&#039;&#039;&lt;br /&gt;
[[Downloading_Byzantium|Where to download Byzantium.]]&lt;br /&gt;
&lt;br /&gt;
== Project Goals ==&lt;br /&gt;
The goal of Project Byzantium is to develop a communication system by which users can connect to each other and share information in the absence of convenient access to the Internet. &lt;br /&gt;
&lt;br /&gt;
The use cases for such a system would be:&lt;br /&gt;
# The infrastructure for accessing the internet has become damaged or inaccessible. (Eg, a natural disaster such as Hurricane Katrina.)&lt;br /&gt;
# A central authority has decided to explicitly block or shutdown key infrastructure. (Eg, Egypt&#039;s recent internet blackout.)&lt;br /&gt;
# A zombie apocalypse in which the personnel responsible for maintaining key infrastructure have all been turned.&lt;br /&gt;
&lt;br /&gt;
The project aims to develop and publish the necessary documentation, best practices, and software to construct and support such a system. Our current approach is to start by investigating and documenting the existing technologies which would support such a system. In particular, mesh networking protocols, wireless networking technologies, and decentralized (or less-centralized) alternatives to internet addressing/naming systems such as DNS. In designing the system, we aim to reduce the dependency on exotic hardware or skill sets so that the system can be deployed quickly and easily by average internet users.&lt;br /&gt;
&lt;br /&gt;
An additional goal is that users not actively participating in the mesh network (i.e., not running mesh routing software on their devices) can make use of the network without having to install anything new, jailbreak their phone, or pry the information out of a hacker infected with the Exsurgent virus.&lt;br /&gt;
&lt;br /&gt;
==Parts==&lt;br /&gt;
[[Byzantium_InterMesh|InterMesh]]&lt;br /&gt;
[[Byzantium_Distributed_DNS|Distributed DNS]]&lt;br /&gt;
[[Byzantium_Live_Distro|Live Distro]]&lt;br /&gt;
&lt;br /&gt;
== Sprints ==&lt;br /&gt;
[[Byzantium Sprint 1|Sprint 1 Details]] [http://drwho.virtadpt.net/archive/2011/03/15/project-byzantium-sprint-1 Write up.]&lt;br /&gt;
[[Byzantium Sprint 2|Sprint 2 Details]] [http://drwho.virtadpt.net/archive/2011/04/14/project-byzantium-development-sprint-2 Write up.]&lt;br /&gt;
[[Byzantium Sprint 3|Sprint 3 Details]]&lt;br /&gt;
[[Byzantium Sprint 4|Sprint 4 Details]]&lt;br /&gt;
Individual sprint reports have been replaced with the [[Byzantium Action Log|Action Log]] since the sprints have become slightly less structured as we delve into the minutia of the project.&lt;br /&gt;
&lt;br /&gt;
== Presentations and PR ==&lt;br /&gt;
[http://www.novalug.org/node/176 Ben and the Doctor will be presenting at NOVALUG!] - 14 May 2011&lt;br /&gt;
[http://contactcon.com/project-byzantium The Doctor will be presenting at ContactCon!] - 20 October 2011&lt;br /&gt;
[http://www.broadbandbridge.org/ Ben and the Doctor presented at DC Broadband Bridge!] - 5 November 2011 ([https://drwho.virtadpt.net/images/byzantium_presentation-20111105.pdf presentation])&lt;br /&gt;
[http://drwho.virtadpt.net/archive/2011/08/08/frequently-needed-answers-for-project-byzantium Unofficial Frequently Asked Questions.]&lt;br /&gt;
[http://www.hacdc.org/content/byzantium-v01a-scarab-released Release announcement for v0.1a!]&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
[http://www.fastcompany.com/1750215/how-hackerspaces-can-do-good-for-the-world Fast Company: 28 April 2011]&lt;br /&gt;
[https://chronicle.com/article/College-20-Fear-of/129049/ College v2.0: Fear of Repression Spurs Scholars and Activists to Build Alternate Internets]&lt;br /&gt;
[http://www.shareable.net/blog/10-projects-to-liberate-the-web 10 Projects to Liberate the Web]&lt;br /&gt;
[http://blog.makezine.com/archive/2011/10/project-byzantium-aims-to-avoid-internet-outages.html Make Magazine]&lt;br /&gt;
[http://www.reddit.com/r/darknetplan/comments/l9tko/make_at_washington_dcs_hackerspace_hacdc_a_team/ Make article linked on /r/darknetplan]&lt;br /&gt;
[http://www.tendencias21.net/Ciberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Ciberactivistas crean un Internet alternativo por miedo a la represión] [http://translate.google.com/translate?sl=auto&amp;amp;tl=en&amp;amp;js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=ISO-8859-1&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;u=http%3A%2F%2Fwww.tendencias21.net%2FCiberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Google Translation]&lt;br /&gt;
[http://www.fastcoexist.com/1677951/hackerspaces-hubs-for-tech-minded-do-gooders Hackerspaces: Hubs for Tech-Minded do-Gooders?]&lt;br /&gt;
[http://www.disinfo.com/2012/03/interview-with-telecomix-hacktivists-peter-fein-and-the-doctor/ Interview with DisinfoTV at ContactCon]&lt;br /&gt;
[http://www.theglobalmail.org/feature/iran-not-tweeting-hacking/165/ Iran: Not Tweeting, Hacking]; Byzantium-related stuff near the end of the article, some inaccuracies.&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium&amp;diff=6580</id>
		<title>Byzantium</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium&amp;diff=6580"/>
		<updated>2012-04-02T13:50:41Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Press */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This project was launched with a sprint on Feb 25-27, 2011.&lt;br /&gt;
Sprints will be held the last weekend of every month.&lt;br /&gt;
&lt;br /&gt;
The development wiki page is [[Byzantium_Live_Distro|here]].&lt;br /&gt;
&lt;br /&gt;
The official mailing list is [http://groups.google.com/a/hacdc.org/group/Byzantium/?hl=en here].&lt;br /&gt;
&lt;br /&gt;
The official Github organization page is [https://github.com/Byzantium/Byzantium here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTICE: If you&#039;ve downloaded Byzantium v0.1a, you need to re-download it immediately due to a major bug in the 10 January 2012 release! This is critical!&#039;&#039;&#039;&lt;br /&gt;
[[Downloading_Byzantium|Where to download Byzantium.]]&lt;br /&gt;
&lt;br /&gt;
== Project Goals ==&lt;br /&gt;
The goal of Project Byzantium is to develop a communication system by which users can connect to each other and share information in the absence of convenient access to the Internet. &lt;br /&gt;
&lt;br /&gt;
The use cases for such a system would be:&lt;br /&gt;
# The infrastructure for accessing the internet has become damaged or inaccessible. (Eg, a natural disaster such as Hurricane Katrina.)&lt;br /&gt;
# A central authority has decided to explicitly block or shutdown key infrastructure. (Eg, Egypt&#039;s recent internet blackout.)&lt;br /&gt;
# A zombie apocalypse in which the personnel responsible for maintaining key infrastructure have all been turned.&lt;br /&gt;
&lt;br /&gt;
The project aims to develop and publish the necessary documentation, best practices, and software to construct and support such a system. Our current approach is to start by investigating and documenting the existing technologies which would support such a system. In particular, mesh networking protocols, wireless networking technologies, and decentralized (or less-centralized) alternatives to internet addressing/naming systems such as DNS. In designing the system, we aim to reduce the dependency on exotic hardware or skill sets so that the system can be deployed quickly and easily by average internet users.&lt;br /&gt;
&lt;br /&gt;
An additional goal is that users not actively participating in the mesh network (i.e., not running mesh routing software on their devices) can make use of the network without having to install anything new, jailbreak their phone, or pry the information out of a hacker infected with the Exsurgent virus.&lt;br /&gt;
&lt;br /&gt;
==Parts==&lt;br /&gt;
[[Byzantium_InterMesh|InterMesh]]&lt;br /&gt;
[[Byzantium_Distributed_DNS|Distributed DNS]]&lt;br /&gt;
[[Byzantium_Live_Distro|Live Distro]]&lt;br /&gt;
&lt;br /&gt;
== Sprints ==&lt;br /&gt;
[[Byzantium Sprint 1|Sprint 1 Details]] [http://drwho.virtadpt.net/archive/2011/03/15/project-byzantium-sprint-1 Write up.]&lt;br /&gt;
[[Byzantium Sprint 2|Sprint 2 Details]] [http://drwho.virtadpt.net/archive/2011/04/14/project-byzantium-development-sprint-2 Write up.]&lt;br /&gt;
[[Byzantium Sprint 3|Sprint 3 Details]]&lt;br /&gt;
[[Byzantium Sprint 4|Sprint 4 Details]]&lt;br /&gt;
Individual sprint reports have been replaced with the [[Byzantium Action Log|Action Log]] since the sprints have become slightly less structured as we delve into the minutia of the project.&lt;br /&gt;
&lt;br /&gt;
== Presentations and PR ==&lt;br /&gt;
[http://www.novalug.org/node/176 Ben and the Doctor will be presenting at NOVALUG!] - 14 May 2011&lt;br /&gt;
[http://contactcon.com/project-byzantium The Doctor will be presenting at ContactCon!] - 20 October 2011&lt;br /&gt;
[http://www.broadbandbridge.org/ Ben and the Doctor presented at DC Broadband Bridge!] - 5 November 2011 ([https://drwho.virtadpt.net/images/byzantium_presentation-20111105.pdf presentation])&lt;br /&gt;
[http://drwho.virtadpt.net/archive/2011/08/08/frequently-needed-answers-for-project-byzantium Unofficial Frequently Asked Questions.]&lt;br /&gt;
[http://www.hacdc.org/content/byzantium-v01a-scarab-released Release announcement for v0.1a!]&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
[http://www.fastcompany.com/1750215/how-hackerspaces-can-do-good-for-the-world Fast Company: 28 April 2011]&lt;br /&gt;
[https://chronicle.com/article/College-20-Fear-of/129049/ College v2.0: Fear of Repression Spurs Scholars and Activists to Build Alternate Internets]&lt;br /&gt;
[http://www.shareable.net/blog/10-projects-to-liberate-the-web 10 Projects to Liberate the Web]&lt;br /&gt;
[http://blog.makezine.com/archive/2011/10/project-byzantium-aims-to-avoid-internet-outages.html Make Magazine]&lt;br /&gt;
[http://www.reddit.com/r/darknetplan/comments/l9tko/make_at_washington_dcs_hackerspace_hacdc_a_team/ Make article linked on /r/darknetplan]&lt;br /&gt;
[http://www.tendencias21.net/Ciberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Ciberactivistas crean un Internet alternativo por miedo a la represión] [http://translate.google.com/translate?sl=auto&amp;amp;tl=en&amp;amp;js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=ISO-8859-1&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;u=http%3A%2F%2Fwww.tendencias21.net%2FCiberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Google Translation]&lt;br /&gt;
[http://www.fastcoexist.com/1677951/hackerspaces-hubs-for-tech-minded-do-gooders Hackerspaces: Hubs for Tech-Minded do-Gooders?]&lt;br /&gt;
[http://www.disinfo.com/2012/03/interview-with-telecomix-hacktivists-peter-fein-and-the-doctor/ Interview with DisinfoTV at ContactCon]&lt;br /&gt;
[http://www.theglobalmail.org/feature/iran-not-tweeting-hacking/165/ Iran: Not Tweeting, Hacking]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6570</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6570"/>
		<updated>2012-03-31T21:15:47Z</updated>

		<summary type="html">&lt;p&gt;Drwho: Added some more packages to the list of things required by Byzantium.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** boost&lt;br /&gt;
** celt&lt;br /&gt;
** CherryPy&lt;br /&gt;
** cryptoki&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mumble&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** protobuf&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** qt&lt;br /&gt;
** rrdtool&lt;br /&gt;
** speex&lt;br /&gt;
** sudo&lt;br /&gt;
** truecrypt&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** wxGTK&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6569</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6569"/>
		<updated>2012-03-31T21:02:16Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* Check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** chmod -x /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
*** Note: This is actually a bug in Porteus v1.1.  If you look at the contents of /etc/rc.d/rc.inet2, it won&#039;t actually be able to run this script.  Don&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium&amp;diff=6497</id>
		<title>Byzantium</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium&amp;diff=6497"/>
		<updated>2012-03-20T12:36:19Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This project was launched with a sprint on Feb 25-27, 2011.&lt;br /&gt;
Sprints will be held the last weekend of every month.&lt;br /&gt;
&lt;br /&gt;
The development wiki page is [[Byzantium_Live_Distro|here]].&lt;br /&gt;
&lt;br /&gt;
The official mailing list is [http://groups.google.com/a/hacdc.org/group/Byzantium/?hl=en here].&lt;br /&gt;
&lt;br /&gt;
The official Github organization page is [https://github.com/Byzantium/Byzantium here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTICE: If you&#039;ve downloaded Byzantium v0.1a, you need to re-download it immediately due to a major bug in the 10 January 2012 release! This is critical!&#039;&#039;&#039;&lt;br /&gt;
[[Downloading_Byzantium|Where to download Byzantium.]]&lt;br /&gt;
&lt;br /&gt;
== Project Goals ==&lt;br /&gt;
The goal of Project Byzantium is to develop a communication system by which users can connect to each other and share information in the absence of convenient access to the Internet. &lt;br /&gt;
&lt;br /&gt;
The use cases for such a system would be:&lt;br /&gt;
# The infrastructure for accessing the internet has become damaged or inaccessible. (Eg, a natural disaster such as Hurricane Katrina.)&lt;br /&gt;
# A central authority has decided to explicitly block or shutdown key infrastructure. (Eg, Egypt&#039;s recent internet blackout.)&lt;br /&gt;
# A zombie apocalypse in which the personnel responsible for maintaining key infrastructure have all been turned.&lt;br /&gt;
&lt;br /&gt;
The project aims to develop and publish the necessary documentation, best practices, and software to construct and support such a system. Our current approach is to start by investigating and documenting the existing technologies which would support such a system. In particular, mesh networking protocols, wireless networking technologies, and decentralized (or less-centralized) alternatives to internet addressing/naming systems such as DNS. In designing the system, we aim to reduce the dependency on exotic hardware or skill sets so that the system can be deployed quickly and easily by average internet users.&lt;br /&gt;
&lt;br /&gt;
An additional goal is that users not actively participating in the mesh network (i.e., not running mesh routing software on their devices) can make use of the network without having to install anything new, jailbreak their phone, or pry the information out of a hacker infected with the Exsurgent virus.&lt;br /&gt;
&lt;br /&gt;
==Parts==&lt;br /&gt;
[[Byzantium_InterMesh|InterMesh]]&lt;br /&gt;
[[Byzantium_Distributed_DNS|Distributed DNS]]&lt;br /&gt;
[[Byzantium_Live_Distro|Live Distro]]&lt;br /&gt;
&lt;br /&gt;
== Sprints ==&lt;br /&gt;
[[Byzantium Sprint 1|Sprint 1 Details]] [http://drwho.virtadpt.net/archive/2011/03/15/project-byzantium-sprint-1 Write up.]&lt;br /&gt;
[[Byzantium Sprint 2|Sprint 2 Details]] [http://drwho.virtadpt.net/archive/2011/04/14/project-byzantium-development-sprint-2 Write up.]&lt;br /&gt;
[[Byzantium Sprint 3|Sprint 3 Details]]&lt;br /&gt;
[[Byzantium Sprint 4|Sprint 4 Details]]&lt;br /&gt;
Individual sprint reports have been replaced with the [[Byzantium Action Log|Action Log]] since the sprints have become slightly less structured as we delve into the minutia of the project.&lt;br /&gt;
&lt;br /&gt;
== Presentations and PR ==&lt;br /&gt;
[http://www.novalug.org/node/176 Ben and the Doctor will be presenting at NOVALUG!] - 14 May 2011&lt;br /&gt;
[http://contactcon.com/project-byzantium The Doctor will be presenting at ContactCon!] - 20 October 2011&lt;br /&gt;
[http://www.broadbandbridge.org/ Ben and the Doctor presented at DC Broadband Bridge!] - 5 November 2011 ([https://drwho.virtadpt.net/images/byzantium_presentation-20111105.pdf presentation])&lt;br /&gt;
[http://drwho.virtadpt.net/archive/2011/08/08/frequently-needed-answers-for-project-byzantium Unofficial Frequently Asked Questions.]&lt;br /&gt;
[http://www.hacdc.org/content/byzantium-v01a-scarab-released Release announcement for v0.1a!]&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
[http://www.fastcompany.com/1750215/how-hackerspaces-can-do-good-for-the-world Fast Company: 28 April 2011]&lt;br /&gt;
[https://chronicle.com/article/College-20-Fear-of/129049/ College v2.0: Fear of Repression Spurs Scholars and Activists to Build Alternate Internets]&lt;br /&gt;
[http://www.shareable.net/blog/10-projects-to-liberate-the-web 10 Projects to Liberate the Web]&lt;br /&gt;
[http://blog.makezine.com/archive/2011/10/project-byzantium-aims-to-avoid-internet-outages.html Make Magazine]&lt;br /&gt;
[http://www.reddit.com/r/darknetplan/comments/l9tko/make_at_washington_dcs_hackerspace_hacdc_a_team/ Make article linked on /r/darknetplan]&lt;br /&gt;
[http://www.tendencias21.net/Ciberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Ciberactivistas crean un Internet alternativo por miedo a la represión] [http://translate.google.com/translate?sl=auto&amp;amp;tl=en&amp;amp;js=n&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=ISO-8859-1&amp;amp;layout=2&amp;amp;eotf=1&amp;amp;u=http%3A%2F%2Fwww.tendencias21.net%2FCiberactivistas-crean-un-Internet-alternativo-por-miedo-a-la-represion_a7640.html Google Translation]&lt;br /&gt;
[http://www.fastcoexist.com/1677951/hackerspaces-hubs-for-tech-minded-do-gooders Hackerspaces: Hubs for Tech-Minded do-Gooders?]&lt;br /&gt;
[http://www.disinfo.com/2012/03/interview-with-telecomix-hacktivists-peter-fein-and-the-doctor/ Interview with DisinfoTV at ContactCon]&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6448</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6448"/>
		<updated>2012-03-08T02:11:16Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* chown -R guest:guest /tmp/fakeroot/home/guest&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=User_Feedback_on_Byzantium_0.1a&amp;diff=6447</id>
		<title>User Feedback on Byzantium 0.1a</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=User_Feedback_on_Byzantium_0.1a&amp;diff=6447"/>
		<updated>2012-03-08T01:24:06Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* DVD .iso boots fine, but I did see some boot errors flash past before X came up&lt;br /&gt;
* &amp;lt;strike&amp;gt;Looked for a desktop link or Control Panel entry to start Byzantium. Didn&#039;t find any.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* I found no clear How-To or Getting Started documentation on how to get Byzantium Meshes up and running here on the Wiki or as part of the distro. Eventually found this post about running it from a USB stick http://metropioneer.com/meshnet/Bootable_USB_Stick_How-To.txt&lt;br /&gt;
* &amp;lt;strike&amp;gt;It would be good if Firefox opens by default to http://locahost:8080 so it is obvious for a newbie on where he has to go to configure the mesh&amp;lt;/strike&amp;gt;&lt;br /&gt;
* The &amp;quot;System Status&amp;quot; page is basically useless as it seems to say nothing about the current mesh status.&lt;br /&gt;
**It is not obvious what is the status of the network i.e. ESID and channel that the network is using, and whether or not it is configured. Some wlan info here would be extremely helpful.&lt;br /&gt;
**It is not obvious what is the status of the mesh, i.e. is it configured or not, what IP addresses are being used, how many peers have been found. Some ifconfig info here would be extremely helpful.&lt;br /&gt;
**We never got around to configuring any mesh services.&lt;br /&gt;
*Trouble keeping an ad hoc WiFi connection to the Byzantium mesh.&lt;br /&gt;
**The laptops were all sitting next to each other and we were using a channel which was not being used by any other APs.&lt;br /&gt;
**Windows 7 and Windows XP had would take a long time (minutes) before it was working, then disconnect after a while.&lt;br /&gt;
**An Ubuntu netbook WiFi client seems to be a bit more reliable.&lt;br /&gt;
**An HTC Desire couldn&#039;t see the ad hoc network&lt;br /&gt;
**An iPhone 4 did seem to work.&lt;br /&gt;
*Also booted Byzantium in a Virtual Machine (VM)&lt;br /&gt;
**It would be great if there was a way to run a emulated mesh node in a VM for test and demo purposes. However, a VM can&#039;t expose or manage the host Operating System&#039;s WiFi&lt;br /&gt;
**Perhaps some sort of WiFi emulation layer that could run on eth0 inside the VM?&lt;br /&gt;
**It would then be comparatively easy to spin up say 100 VM mesh nodes, and see if the routing protocol scales.&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6442</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6442"/>
		<updated>2012-03-04T20:05:13Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* cp porteus/home/guest/Desktop/Control\ Panel.desktop /tmp/fakeroot/home/guest/Desktop&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
* cp byzantium-logo.png /tmp/fakeroot/usr/share/pixmaps/porteus&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6436</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6436"/>
		<updated>2012-03-04T04:41:52Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* mkdir -p /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp home/guest/.mozilla/firefox/c3pp43bg.default/prefs.js /tmp/fakeroot/home/guest/.mozilla/firefox/c3pp43bg.default&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6435</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6435"/>
		<updated>2012-03-04T04:37:25Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/HOSTNAME /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/inittab /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Downloading_Byzantium&amp;diff=6434</id>
		<title>Downloading Byzantium</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Downloading_Byzantium&amp;diff=6434"/>
		<updated>2012-03-03T16:14:53Z</updated>

		<summary type="html">&lt;p&gt;Drwho: Added the TPB link, cleaned up links to other download sites, added the PGP signature on my mirror.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://byzantium.virtadpt.net/byzantium.pubkey Byzantium Project] public PGP key.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!Version&lt;br /&gt;
!Codename&lt;br /&gt;
!Released&lt;br /&gt;
!Fitness*&lt;br /&gt;
!Torrent&lt;br /&gt;
!Direct DL&lt;br /&gt;
!PGPSign&lt;br /&gt;
!Comments&lt;br /&gt;
|-&lt;br /&gt;
|0.1a&lt;br /&gt;
|Scarab&lt;br /&gt;
|2012/01/11&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
*[http://linuxtracker.org/download.php?id=fcc7607270ba48897ff865ed5361013554a659eb&amp;amp;f=Byzantium%20Linux%20v0.1a.torrent Linux Tracker]&lt;br /&gt;
*[https://thepiratebay.se/torrent/7074687 The Pirate Bay]&lt;br /&gt;
|&lt;br /&gt;
* [http://linuxfreedom.com/byzantium Linux Freedom]&lt;br /&gt;
* [http://byzantium.virtadpt.net/v0.1a/ byzantium.virtadpt.net]&lt;br /&gt;
* [https://s3.amazonaws.com/byzantium/byzantium-curent.iso haxwithaxe&#039;s S3] &lt;br /&gt;
|&lt;br /&gt;
*[https://s3.amazonaws.com/byzantium/byzantium-current.iso.asc haxwithaxe&#039;s S3]&lt;br /&gt;
*[http://byzantium.virtadpt.net/v0.1a/byzantium-v0.1a.iso.asc byzantium.virtadpt.net]&lt;br /&gt;
|&lt;br /&gt;
*current version.&lt;br /&gt;
*EXTREME ALPHA!!&lt;br /&gt;
*focusing on functionality &#039;&#039;NOT security&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
`*Fitness is a score from 0 to 5 indicating the fitness of a release for use as an &#039;&#039;&#039;Emergency&#039;&#039;&#039; networking aid. Do not let this put you off downloading it to try it out or help us by finding and reporting bug and feature requests. In order to make it to a level 5 fitness we need as many people to use it as possible so we are more likely to find bugs before they end up causing trouble for people who expect our livedistro to work in an emergency.&lt;br /&gt;
*0 = completely unfit (likely to do more harm than good in any emergency)&lt;br /&gt;
*1 = still mostly unfit (unless you are an active developer on the project you won&#039;t likely benefit from this in an emergency)&lt;br /&gt;
*2 = works well enough to provide basic connectivity with minimal configuration. (yeh! we&#039;re a little bit fit now! which is not to say we&#039;re fit enough to run a marathon, so don&#039;t expect to be able to do much without a regular internet connection or some sysadmin skills)&lt;br /&gt;
*3 = in addition to qualifying for level 2 fitness this has basic intermesh services like a built in chat server, microblog server and similar user oriented services ready to run with minimal configuration. (still needs a service to tell other mesh users and end users about the services on the mesh, aka our DNSless service distribution).&lt;br /&gt;
*4 = fully featured and works well enough to be used in friendly network conditions (you aren&#039;t in jeopardy of getting arrested/attacked for using it for things that are considered legal where you are using it)&lt;br /&gt;
*5 = fully featured and setup with best effort secure defaults and possibly other security features (this by no means should suggest that it is safe to use in an environment where there is a government or government like entity is actively trying to suppress network connectivity by means other than denial standard network connectivity)&lt;br /&gt;
*6 = if we find the magic sauce that can make it super hard to find users if you aren&#039;t a user and reasonably impossible to detect or decrypt traffic not sent to you, then you will see this magic number as the fitness score. Until then it is the metaphorical unicorn. It doesn&#039;t exist.&lt;br /&gt;
You may have noticed that the fitness list doesn&#039;t ever say it&#039;s safe to use in a hostile network. That&#039;s because it won&#039;t likely ever be safe to use in a hostile network. The best we can do is to set reasonably secure defaults and policies and try to educate users on internet hygiene so they don&#039;t let people rub malware in their face if they go someplace we can&#039;t protect them.&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6424</id>
		<title>Packaging NPM</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6424"/>
		<updated>2012-02-25T23:03:54Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Ensure that [http://nodejs.org/ node.js] is installed and operable.&lt;br /&gt;
** Note that it is necessary to install node.js and npm on the build system to build the packages.** Download the latest .tar.gz tarball of the node.js source code.&lt;br /&gt;
** &#039;&#039;&#039;cd /tmp&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;tar xvfz /path/to/node-vx.y.z.tar.gz&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;cd node-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;./configure -p --prefix=/usr&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make test&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make install DESTDIR=/tmp/nodejs-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;dir2xzm /tmp/nodejs-vx.y.z /tmp/node-x.y.z.xzm&#039;&#039;&#039;&lt;br /&gt;
* Download the source to npm [https://github.com/isaacs/npm/zipball/master from Github].&lt;br /&gt;
* &#039;&#039;&#039;unzip isaacs-npm-...zip&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;cd isaacs-npm-...&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;make&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;make install&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;mkdir -p /tmp/npm-x.y.z/usr&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;export npm_config_userconfig=./npmrc&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js config set cache /tmp/npm-cache&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js config set prefix /tmp/npm-x.y.z/usr&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js config set unsafe-perm true&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js install -g .&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;dir2xzm /tmp/npm-x.y.z /tmp/npm-x.y.z.xzm&#039;&#039;&#039;&lt;br /&gt;
* Everything goes in &#039;&#039;/usr/lib/mode_modules/npm&#039;&#039;.&lt;br /&gt;
* &#039;&#039;/usr/bin/npm*&#039;&#039; are symlinked to &#039;&#039;/usr/lib/mode_modules/npm/bin/npm.js&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6423</id>
		<title>Packaging NPM</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6423"/>
		<updated>2012-02-25T23:00:13Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Ensure that [http://nodejs.org/ node.js] is installed and operable.&lt;br /&gt;
** Note that it is necessary to install node.js and npm on the build system to build the packages.** Download the latest .tar.gz tarball of the node.js source code.&lt;br /&gt;
** &#039;&#039;&#039;cd /tmp&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;tar xvfz /path/to/node-vx.y.z.tar.gz&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;cd node-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;./configure -p --prefix=/usr&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make test&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make install DESTDIR=/tmp/nodejs-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;dir2xzm /tmp/nodejs-vx.y.z /tmp/node-x.y.z.xzm&#039;&#039;&#039;&lt;br /&gt;
* Download the source to npm [https://github.com/isaacs/npm/zipball/master from Github]&lt;br /&gt;
* &#039;&#039;&#039;unzip isaacs-npm-...zip&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;cd isaacs-npm-...&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;make&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;make install&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;mkdir -p /tmp/npm-x.y.z/usr&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;export npm_config_userconfig=./npmrc&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js config set cache /tmp/npm-cache&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js config set prefix /tmp/npm-x.y.z/usr&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js config set unsafe-perm true&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;node cli.js install -g .&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;dir2xzm /tmp/npm-x.y.z /tmp/npm-x.y.z.xzm&#039;&#039;&#039;&lt;br /&gt;
* Everything goes in /usr/lib/mode_modules/npm&lt;br /&gt;
* /usr/bin/npm* are symlinked to /usr/lib/mode_modules/npm/bin/npm.js&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6422</id>
		<title>Packaging NPM</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6422"/>
		<updated>2012-02-25T21:59:06Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Ensure that [http://nodejs.org/ node.js] is installed and operable.&lt;br /&gt;
** Download the latest .tar.gz tarball of the node.js source code.&lt;br /&gt;
** &#039;&#039;&#039;cd /tmp&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;tar xvfz /path/to/node-vx.y.z.tar.gz&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;cd node-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;./configure -p --prefix=/usr&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make install DESTDIR=/tmp/nodejs-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
* Download npm: &#039;&#039;&#039;wget http://npmjs.org/install.sh&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mv install.sh npm-install.sh&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sh ./npm-install.sh&#039;&#039;&#039; (as root)&lt;br /&gt;
* Everything goes in /usr/lib/mode_modules/npm&lt;br /&gt;
* /usr/bin/npm* symlinked to /usr/lib/mode_modules/npm/bin/npm.js&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6421</id>
		<title>Packaging NPM</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6421"/>
		<updated>2012-02-25T21:51:31Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Ensure that [http://nodejs.org/ node.js] is installed and operable.&lt;br /&gt;
** Download the latest .tar.gz tarball of the node.js source code.&lt;br /&gt;
** &#039;&#039;&#039;cd /tmp&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;tar xvfz /path/to/node-vx.y.z.tar.gz&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;cd node-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;./configure -p&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;make install DESTDIR=/tmp/nodejs-vx.y.z&#039;&#039;&#039;&lt;br /&gt;
* Download npm: &#039;&#039;&#039;wget http://npmjs.org/install.sh&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mv install.sh npm-install.sh&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sh ./npm-install.sh&#039;&#039;&#039; (as root)&lt;br /&gt;
* Everything goes in /usr/lib/mode_modules/npm&lt;br /&gt;
* /usr/bin/npm* symlinked to /usr/lib/mode_modules/npm/bin/npm.js&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6420</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6420"/>
		<updated>2012-02-25T21:28:37Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6419</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6419"/>
		<updated>2012-02-25T21:20:37Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/hosts /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6418</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6418"/>
		<updated>2012-02-25T21:16:33Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6417</id>
		<title>Process for manually installing Byzantium.</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Process_for_manually_installing_Byzantium.&amp;diff=6417"/>
		<updated>2012-02-25T21:09:46Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This process assumes:&lt;br /&gt;
* You&#039;ve booted a clean copy of Porteus Linux v1.0 or later.&lt;br /&gt;
* You&#039;ve checked the Porteus .xzm modules we built for Byzantium out of SVN into ~/byzantium.&lt;br /&gt;
** apr&lt;br /&gt;
** apr-util&lt;br /&gt;
** babeld&lt;br /&gt;
** CherryPy&lt;br /&gt;
** curl&lt;br /&gt;
** dnsmasq&lt;br /&gt;
** doxygen&lt;br /&gt;
** gd&lt;br /&gt;
** httpd&lt;br /&gt;
** icu4c&lt;br /&gt;
** ifplugd&lt;br /&gt;
** irssi&lt;br /&gt;
** libarchive&lt;br /&gt;
** libdaemon&lt;br /&gt;
** libmcrypt&lt;br /&gt;
** locales-en_US&lt;br /&gt;
** Mako&lt;br /&gt;
** MarkupSafe&lt;br /&gt;
** mysql&lt;br /&gt;
** ngircd&lt;br /&gt;
** node&lt;br /&gt;
** pcre&lt;br /&gt;
** php&lt;br /&gt;
** pysetuptools&lt;br /&gt;
** python-twisted&lt;br /&gt;
** rrdtool&lt;br /&gt;
** sudo&lt;br /&gt;
** t1lib&lt;br /&gt;
** vim&lt;br /&gt;
** zope.interface&lt;br /&gt;
** settings.xzm (don&#039;t forget this!)&lt;br /&gt;
* You&#039;ve checked the source tree for Byzantium out of the Git repository.&lt;br /&gt;
&lt;br /&gt;
The process of installing Byzantium has not been automated yet.  These notes should be used in the development of the official installer, at least until we get the official byzantium.xzm module built.  I get the feeling that it&#039;s going to be pretty big because we&#039;re going to have to package all of the dependencies along with it for efficiency&#039;s sake (at least, that&#039;s what Ben the Pyrate says because he&#039;s messed around with union mounts more than I).&lt;br /&gt;
&lt;br /&gt;
Gotchas:&lt;br /&gt;
* On first boot, syslinux might complain that it can&#039;t find video mode number 317.  Entering the hex value &amp;quot;F00&amp;quot; (text mode, 80x25) will get around this.&lt;br /&gt;
** At boot, you can also edit the kernel command line and change the value &#039;791&#039; to &#039;F00&#039; prior to booting.  We should make this the default.&lt;br /&gt;
* If the USB device is formatted with a non-Linux file system, you will see the error &amp;quot;A Windows Filesystem (FAT, NTFS) or other non-posix compatible filesystem has been detected on /porteus/.&amp;quot;  If you intend on creating a save.dat file, you can press &#039;enter&#039; and ignore it.  Or, you can format the key with a Linux file system (/EXT[1-4]/, XFS) prior to [http://porteus.org/info/docs/37-installing/114-official-porteus-installation-guide-v-10.html installing Porteus].&lt;br /&gt;
* On boot, Porteus Linux will mount all of the file systems it can see on the host machine.  Use caution when deleting or copying files!&lt;br /&gt;
* &#039;&#039;&#039;IMPORTANT&#039;&#039;&#039;: If your USB key is formatted with one of the FAT filesystems, you CANNOT create a persistent storage file larger than 1GB!  Otherwise, you will get errors at boot-time about a missing persistent storage file!  &#039;&#039;&#039;Set the slider no larger than 1024MB!&#039;&#039;&#039;&lt;br /&gt;
* /etc/rc.d/rc.sshd is set mode -x by default but /etc/rc.d/rc.local sets it +x so that it can be managed by the control panel.  It&#039;s not executed by default, though.&lt;br /&gt;
&lt;br /&gt;
These commands can be run as guest (which is logged in by default):&lt;br /&gt;
* The [http://wicd.sourceforge.net/ wicd] applet on the toolbar works well for setting up wireless.  It&#039;s also polite enough to get out of your way once it&#039;s done.  Use it to get online.&lt;br /&gt;
* Open Firefox and download all of the modules from [http://svn.virtadpt.net/byzantium http://svn.virtadpt.net/byzantium].  Put everything in /dev/sdb1/porteus/modules to save time and space&lt;br /&gt;
** It will probably be /dev/sdb if you have only one drive in the host machine.&lt;br /&gt;
** You will need to install the git package as well to check out the Byzantium source tree.&lt;br /&gt;
* Set up a persistent storage file:&lt;br /&gt;
** Porteus Menu -&amp;gt; System -&amp;gt; Porteus save.dat manager&lt;br /&gt;
** Create a new save.dat file&lt;br /&gt;
** Enter a filename for the persistent storage file (I like &#039;save&#039; - the manager will automagically add the &#039;.dat&#039; extension).&lt;br /&gt;
** Navigate to /mnt/sdb1/porteus - this is where save.dat will go.&lt;br /&gt;
** The manager will confirm the location - say &#039;yes&#039;.&lt;br /&gt;
** Select a size for the save.dat file (see the above note!)&lt;br /&gt;
** Wait.  This can take a while.  USB v2.0 isn&#039;t very fast...&lt;br /&gt;
** When next that USB key is booted, hit the &#039;tab&#039; key to edit the kernel command line and change the &#039;changes=&#039; bit to read &#039;changes=/mnt/sdb1/porteus/save.dat&#039;&lt;br /&gt;
** Reboot.&lt;br /&gt;
* After rebooting, set up your network connection with wicd again, because there wasn&#039;t a way to save it before.&lt;br /&gt;
* After rebooting, check out the [https://github.com/Byzantium/Byzantium.git Byzantium source repository]:&lt;br /&gt;
** git clone https://github.com/Byzantium/Byzantium.git&lt;br /&gt;
&lt;br /&gt;
All of these commands must be run as root.  You should do an `su -` here and get it over with.  This process assumes that a Porteus module (000-byzantium.xzm) will be created.&lt;br /&gt;
* cd /path/to/xzm/modules&lt;br /&gt;
* for i in *.xzm; do xzm2dir $i /tmp/fakeroot ; done&lt;br /&gt;
* rm /tmp/fakeroot/srv/httpd&lt;br /&gt;
* rm /tmp/fakeroot/srv/www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/databases&lt;br /&gt;
* cd /tmp/fakeroot/srv&lt;br /&gt;
* ln -s httpd www&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/controlpanel/graphs&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/srv/controlpanel/* /tmp/fakeroot/srv/controlpanel&lt;br /&gt;
* mkdir /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* cp ~guest/Byzantium/control_panel/etc/controlpanel/* /tmp/fakeroot/etc/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* cp -rv ~guest/Byzantium/control_panel/var/db/controlpanel/* /tmp/fakeroot/var/db/controlpanel&lt;br /&gt;
* mkdir -p /tmp/fakeroot/usr/share/wicd/cli&lt;br /&gt;
* cp ~guest/Byzantium/porteus/wicd/usr/share/wicd/cli/wicd-cli.py /tmp/fakeroot/usr/share/wicd/cli/&lt;br /&gt;
* cd ~guest/Byzantium/scripts&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* cp 11-media-by-label-auto-mount.rules /tmp/fakeroot/etc/udev/rules.d&lt;br /&gt;
* &#039;&#039;&#039;Where do the [pre,post]-disk-mount scripts go?&#039;&#039;&#039; --DrWho&lt;br /&gt;
* cp rc.local rc.mysqld rc.ssl rc.setup_mysql /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* chmod +x /tmp/fakeroot/etc/rc.d/rc.*&lt;br /&gt;
* cp traffic_stats.sh /tmp/fakeroot/usr/local/bin&lt;br /&gt;
* cd ../control_panel&lt;br /&gt;
* cp *.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/rc.d/rc.byzantium /tmp/fakeroot/etc/rc.d/&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cp etc/ssl/openssl.cnf /tmp/fakeroot/etc/ssl&lt;br /&gt;
* cd ../porteus&lt;br /&gt;
* cp -rv apache/etc/httpd/* /tmp/fakeroot/etc/httpd&lt;br /&gt;
* cp babel/babeld.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp dnsmasq/dnsmasq.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp etherpad-lite/rc.etherpad-lite /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp -rv ifplugd/etc/ifplugd/* /tmp/fakeroot/etc/ifplugd&lt;br /&gt;
* cp etc/passwd /tmp/fakeroot/etc&lt;br /&gt;
* cp etc/shadow /tmp/fakeroot/etc&lt;br /&gt;
* chown root:root /tmp/fakeroot/etc/passwd /tmp/fakeroot/etc/shadow&lt;br /&gt;
* chmod 0600 /tmp/fakeroot/etc/shadow&lt;br /&gt;
* cp mysql/my.cnf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/ngircd.conf /tmp/fakeroot/etc&lt;br /&gt;
* cp ngircd/rc.ngircd /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cp php/etc/httpd/php.ini /tmp/fakeroot/etc/httpd&lt;br /&gt;
* mkdir -p /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/config.py /tmp/fakeroot/opt/qwebirc&lt;br /&gt;
* cp qwebirc/rc.qwebirc /tmp/fakeroot/etc/rc.d&lt;br /&gt;
* cd ..&lt;br /&gt;
* cp databases/* /tmp/fakeroot/srv/httpd/databases/&lt;br /&gt;
&lt;br /&gt;
* NOTE: This bit has more fail in it than I&#039;d prefer.  Unfortunately, it&#039;s unique to my development virtual machine and that really has to change.&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/httpd/htdocs&lt;br /&gt;
* cp -rv /srv/httpd/htdocs/* /tmp/fakeroot/srv/httpd/htdocs/&lt;br /&gt;
&lt;br /&gt;
* mkdir /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chown ngircd.root /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
* chmod 0750 /tmp/fakeroot/var/run/ngircd&lt;br /&gt;
&lt;br /&gt;
* mkdir -p /tmp/fakeroot/srv/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/etc/captiveportal&lt;br /&gt;
* mkdir -p /tmp/fakeroot/tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cd ~guest/Byzantium/captive_portal&lt;br /&gt;
* cp captive_portal.py /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp captive-portal.sh /tmp/fakeroot/usr/local/sbin&lt;br /&gt;
* cp etc/captiveportal/captiveportal.conf /tmp/fakeroot/etc/captiveportal/&lt;br /&gt;
* cp srv/captiveportal/* /tmp/fakeroot/srv/captiveportal/&lt;br /&gt;
&lt;br /&gt;
* This is to prevent the default Porteus firewall rules from interfering with the ones the control panel installs.&lt;br /&gt;
** /tmp/fakeroot/etc/rc.d/rc3.d/S-firewall&lt;br /&gt;
&lt;br /&gt;
For the control panel to work, NO network interfaces should be configured at the outset.  The Porteus configuration apps make this easy,  but conflict with our needs.  When testing, it&#039;s easier to shut everything down by hand and then put fresh copies of the .sqlite databases into /var/db/controlpanel.&lt;br /&gt;
&lt;br /&gt;
Ideally, to do everything right you&#039;d have to reboot at this point.  That would, in theory, run the right initscripts in the right order (or skip them, as the case may be).&lt;br /&gt;
&lt;br /&gt;
To build the official Byzantium module:&lt;br /&gt;
* dir2xzm /tmp/fakeroot /tmp/000-byzantium.xzm&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6416</id>
		<title>Packaging NPM</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Packaging_NPM&amp;diff=6416"/>
		<updated>2012-02-25T20:22:30Z</updated>

		<summary type="html">&lt;p&gt;Drwho: Created page with &amp;quot;* Ensure that node.js module is enabled. * Download npm: wget http://npmjs.org/install.sh * mv install.sh npm-install.sh * sh ./npm-install.sh (as root) * Everything goes in /usr...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Ensure that node.js module is enabled.&lt;br /&gt;
* Download npm: wget http://npmjs.org/install.sh&lt;br /&gt;
* mv install.sh npm-install.sh&lt;br /&gt;
* sh ./npm-install.sh (as root)&lt;br /&gt;
* Everything goes in /usr/lib/mode_modules/npm&lt;br /&gt;
* /usr/bin/npm* symlinked to /usr/lib/mode_modules/npm/bin/npm.js&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Downloading_Byzantium&amp;diff=6325</id>
		<title>Downloading Byzantium</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Downloading_Byzantium&amp;diff=6325"/>
		<updated>2012-01-28T01:06:27Z</updated>

		<summary type="html">&lt;p&gt;Drwho: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://byzantium.virtadpt.net/byzantium.pubkey Byzantium Project] public PGP key.&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
!Version&lt;br /&gt;
!Codename&lt;br /&gt;
!Released&lt;br /&gt;
!Fitness*&lt;br /&gt;
!Torrent&lt;br /&gt;
!Direct DL&lt;br /&gt;
!PGPSign&lt;br /&gt;
!Comments&lt;br /&gt;
|-&lt;br /&gt;
|0.1a&lt;br /&gt;
|Scarab&lt;br /&gt;
|2012/01/11&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
*[http://linuxtracker.org/download.php?id=fcc7607270ba48897ff865ed5361013554a659eb&amp;amp;f=Byzantium%20Linux%20v0.1a.torrent Linux Tracker]&lt;br /&gt;
|&lt;br /&gt;
* [http://linuxfreedom.com/byzantium Linux Freedom]&lt;br /&gt;
* [http://byzantium.virtadpt.net/ byzantium.virtadpt.net]&lt;br /&gt;
* [https://s3.amazonaws.com/byzantium/byzantium-curent.iso haxwithaxe&#039;s S3] &lt;br /&gt;
|[https://s3.amazonaws.com/byzantium/byzantium-current.iso.asc haxwithaxe&#039;s S3]&lt;br /&gt;
|&lt;br /&gt;
*current version.&lt;br /&gt;
*EXTREME ALPHA!!&lt;br /&gt;
*focusing on functionality &#039;&#039;NOT security&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
`*Fitness is a score from 0 to 5 indicating the fitness of a release for use as an &#039;&#039;&#039;Emergency&#039;&#039;&#039; networking aid. Do not let this put you off downloading it to try it out or help us by finding and reporting bug and feature requests. In order to make it to a level 5 fitness we need as many people to use it as possible so we are more likely to find bugs before they end up causing trouble for people who expect our livedistro to work in an emergency.&lt;br /&gt;
*0 = completely unfit (likely to do more harm than good in any emergency)&lt;br /&gt;
*1 = still mostly unfit (unless you are an active developer on the project you won&#039;t likely benefit from this in an emergency)&lt;br /&gt;
*2 = works well enough to provide basic connectivity with minimal configuration. (yeh! we&#039;re a little bit fit now! which is not to say we&#039;re fit enough to run a marathon, so don&#039;t expect to be able to do much without a regular internet connection or some sysadmin skills)&lt;br /&gt;
*3 = in addition to qualifying for level 2 fitness this has basic intermesh services like a built in chat server, microblog server and similar user oriented services ready to run with minimal configuration. (still needs a service to tell other mesh users and end users about the services on the mesh, aka our DNSless service distribution).&lt;br /&gt;
*4 = fully featured and works well enough to be used in friendly network conditions (you aren&#039;t in jeopardy of getting arrested/attacked for using it for things that are considered legal where you are using it)&lt;br /&gt;
*5 = fully featured and setup with best effort secure defaults and possibly other security features (this by no means should suggest that it is safe to use in an environment where there is a government or government like entity is actively trying to suppress network connectivity by means other than denial standard network connectivity)&lt;br /&gt;
*6 = if we find the magic sauce that can make it super hard to find users if you aren&#039;t a user and reasonably impossible to detect or decrypt traffic not sent to you, then you will see this magic number as the fitness score. Until then it is the metaphorical unicorn. It doesn&#039;t exist.&lt;br /&gt;
You may have noticed that the fitness list doesn&#039;t ever say it&#039;s safe to use in a hostile network. That&#039;s because it won&#039;t likely ever be safe to use in a hostile network. The best we can do is to set reasonably secure defaults and policies and try to educate users on internet hygiene so they don&#039;t let people rub malware in their face if they go someplace we can&#039;t protect them.&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=File:Byzantium_Linux_v0.1a.torrent&amp;diff=6324</id>
		<title>File:Byzantium Linux v0.1a.torrent</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=File:Byzantium_Linux_v0.1a.torrent&amp;diff=6324"/>
		<updated>2012-01-28T00:40:59Z</updated>

		<summary type="html">&lt;p&gt;Drwho: uploaded a new version of &amp;amp;quot;File:Byzantium Linux v0.1a.torrent&amp;amp;quot;: Users are having problems with the existing copy of this file, so I&amp;#039;ve uploaded a new one.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Torrent for Project Byzantium&#039;s LiveDistro version 0.1(Alpha) codename: Scarab&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=File:Byzantium_Linux_v0.1a.torrent&amp;diff=6323</id>
		<title>File:Byzantium Linux v0.1a.torrent</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=File:Byzantium_Linux_v0.1a.torrent&amp;diff=6323"/>
		<updated>2012-01-28T00:40:04Z</updated>

		<summary type="html">&lt;p&gt;Drwho: uploaded a new version of &amp;amp;quot;File:Byzantium Linux v0.1a.torrent&amp;amp;quot;: Users are having problems with the existing .torrent, so I&amp;#039;m re-uploading it.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Torrent for Project Byzantium&#039;s LiveDistro version 0.1(Alpha) codename: Scarab&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium_Live_Distro_Prerelease&amp;diff=6303</id>
		<title>Byzantium Live Distro Prerelease</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium_Live_Distro_Prerelease&amp;diff=6303"/>
		<updated>2012-01-22T03:24:36Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Human Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerelease Process==&lt;br /&gt;
&#039;&#039;&#039;DRAFT&#039;&#039;&#039;&lt;br /&gt;
On this page we have a list of things that need to happen between the &#039;&#039;&#039;final&#039;&#039;&#039; build and the publishing of software or repackaging thereof by the Byzantium Project. Unless otherwise stated all items are required to be satisfied for an individual build before being placed in another part of the project or before publishing the project.&lt;br /&gt;
===Build Environment===&lt;br /&gt;
*manifest check - make sure what you think is there is actually there. manifest files (with name &amp;lt;scope&amp;gt;.manifest) are recommended, and will be checked by the build environment once that is automated.&lt;br /&gt;
** Add a stanza to the Makefile (if we go that way, that is) - &#039;&#039;&#039;make manifest&#039;&#039;&#039; or &#039;&#039;&#039;make test&#039;&#039;&#039; or something like that.&lt;br /&gt;
*?other sanity checks?&lt;br /&gt;
&lt;br /&gt;
===Runtime Environment===&lt;br /&gt;
*for each package/major feature set a checklist must be made that will reasonably ensure the software is behaving as expected.&lt;br /&gt;
* A list of packages that comprise 000-byzantium.xzm should be maintained someplace. Right now we&#039;re just eyeballing it.&lt;br /&gt;
* A list of files associated with each package should be maintained someplace.&lt;br /&gt;
** This is why I build Slackware packages (where feasible) or do a &#039;&#039;&#039;DEST=/tmp/SBo make install&#039;&#039;&#039; where there aren&#039;t any followed by a &#039;&#039;&#039;dir2xzm /tmp/package.xzm /tmp/SBo&#039;&#039;&#039; - to keep all of the files for a particular package grouped together.&lt;br /&gt;
** A bunch of .xzm packages are easier to keep track of than compiling stuff in sequence.  Then, when it comes time to build everything the build system can check them out of SVN and use &#039;&#039;&#039;xzm2dir&#039;&#039;&#039; to unpack all of them in sequence into a fakeroot.  So, I propose a two step QA sequence:&lt;br /&gt;
*** Make sure that some_package-rev.isi.on.xzm was compiled and checked into SVN.&lt;br /&gt;
*** Make sure that some_package-rev.isi.on.xzm was checked out of SVN on the build machine and &#039;&#039;&#039;xzm2dir&#039;&#039;&#039;ed into /tmp/fakeroot.&lt;br /&gt;
**the checklist can (and is recommended to) just say to run a script that will do the required tests and return a pass/fail status.&lt;br /&gt;
**if a script is used for runtime QA it should be named &amp;quot;runtimeQA.sh&amp;quot; and have 777 (a+rwx) permissions in the root directory of it&#039;s scope (eg for a package &amp;quot;byzantium-repo/packages/thispackagedir/runtimeQA.sh&amp;quot;). Also it should use paths with the expectation that the script will be run from an arbitrary directory.&lt;br /&gt;
&lt;br /&gt;
===Human Environment===&lt;br /&gt;
*2 day cool down period between building and publishing&lt;br /&gt;
* No .iso image goes out without being PGP signed against key 0xD6975C17.&lt;br /&gt;
** While we&#039;re at it, can we get some more signatures on that key?&lt;br /&gt;
*** Fingerprint 93F3 8B13 B52C D8F0 FA8D  03B3 37AA 847C D697 5C17&lt;br /&gt;
*** I&#039;ve uploaded it to a bunch of keyservers around the Net.&lt;br /&gt;
* The person who builds the .iso image is not the one who checks the contents of the .iso image.  After you&#039;ve been staring at the same thing for long enough, it all starts looking alike.&lt;br /&gt;
** Does the bootloader have the right porteus.cfg?&lt;br /&gt;
** Does the bootloader have byzantium.jpg handy?&lt;br /&gt;
** Does porteus/modules/000-byzantium.xzm exist?&lt;br /&gt;
** Do these files exist in the root directory of the .iso image?&lt;br /&gt;
*** README.txt&lt;br /&gt;
*** README.NOW&lt;br /&gt;
*** FAQ.txt&lt;br /&gt;
*** packages.txt&lt;br /&gt;
*** CHANGELOG&lt;br /&gt;
** Do all of the Porteus modules exist in porteus/base?&lt;br /&gt;
*** 000-kernel.xzm&lt;br /&gt;
*** 001-core.xzm&lt;br /&gt;
*** 002-xorg.xzm&lt;br /&gt;
*** 003-lxde.xzm&lt;br /&gt;
*** 004-kde.xzm&lt;br /&gt;
*** 005-kdeapps.xzm&lt;br /&gt;
*** 006-koffice.xzm&lt;br /&gt;
**** Do we really need to include this?&lt;br /&gt;
*** 007-devel.xzm&lt;br /&gt;
*** 008-firefox.xzm&lt;br /&gt;
* No .iso goes out without being tested, i.e., at least booted in a VM and put through its paces.&lt;br /&gt;
* We need a process for loading the mirrors from a single distribution point.&lt;br /&gt;
* Torrents are seeded prior to announcement.&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=Byzantium_Live_Distro_Prerelease&amp;diff=6302</id>
		<title>Byzantium Live Distro Prerelease</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=Byzantium_Live_Distro_Prerelease&amp;diff=6302"/>
		<updated>2012-01-22T03:11:56Z</updated>

		<summary type="html">&lt;p&gt;Drwho: /* Runtime Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerelease Process==&lt;br /&gt;
&#039;&#039;&#039;DRAFT&#039;&#039;&#039;&lt;br /&gt;
On this page we have a list of things that need to happen between the &#039;&#039;&#039;final&#039;&#039;&#039; build and the publishing of software or repackaging thereof by the Byzantium Project. Unless otherwise stated all items are required to be satisfied for an individual build before being placed in another part of the project or before publishing the project.&lt;br /&gt;
===Build Environment===&lt;br /&gt;
*manifest check - make sure what you think is there is actually there. manifest files (with name &amp;lt;scope&amp;gt;.manifest) are recommended, and will be checked by the build environment once that is automated.&lt;br /&gt;
** Add a stanza to the Makefile (if we go that way, that is) - &#039;&#039;&#039;make manifest&#039;&#039;&#039; or &#039;&#039;&#039;make test&#039;&#039;&#039; or something like that.&lt;br /&gt;
*?other sanity checks?&lt;br /&gt;
&lt;br /&gt;
===Runtime Environment===&lt;br /&gt;
*for each package/major feature set a checklist must be made that will reasonably ensure the software is behaving as expected.&lt;br /&gt;
* A list of packages that comprise 000-byzantium.xzm should be maintained someplace. Right now we&#039;re just eyeballing it.&lt;br /&gt;
* A list of files associated with each package should be maintained someplace.&lt;br /&gt;
** This is why I build Slackware packages (where feasible) or do a &#039;&#039;&#039;DEST=/tmp/SBo make install&#039;&#039;&#039; where there aren&#039;t any followed by a &#039;&#039;&#039;dir2xzm /tmp/package.xzm /tmp/SBo&#039;&#039;&#039; - to keep all of the files for a particular package grouped together.&lt;br /&gt;
** A bunch of .xzm packages are easier to keep track of than compiling stuff in sequence.  Then, when it comes time to build everything the build system can check them out of SVN and use &#039;&#039;&#039;xzm2dir&#039;&#039;&#039; to unpack all of them in sequence into a fakeroot.  So, I propose a two step QA sequence:&lt;br /&gt;
*** Make sure that some_package-rev.isi.on.xzm was compiled and checked into SVN.&lt;br /&gt;
*** Make sure that some_package-rev.isi.on.xzm was checked out of SVN on the build machine and &#039;&#039;&#039;xzm2dir&#039;&#039;&#039;ed into /tmp/fakeroot.&lt;br /&gt;
**the checklist can (and is recommended to) just say to run a script that will do the required tests and return a pass/fail status.&lt;br /&gt;
**if a script is used for runtime QA it should be named &amp;quot;runtimeQA.sh&amp;quot; and have 777 (a+rwx) permissions in the root directory of it&#039;s scope (eg for a package &amp;quot;byzantium-repo/packages/thispackagedir/runtimeQA.sh&amp;quot;). Also it should use paths with the expectation that the script will be run from an arbitrary directory.&lt;br /&gt;
&lt;br /&gt;
===Human Environment===&lt;br /&gt;
*2 day cool down period between building and publishing&lt;/div&gt;</summary>
		<author><name>Drwho</name></author>
	</entry>
</feed>