June 26th, 2009
I got a g1 for Fathers’ Day (Thanks Hannah!) and I’ve been futzing with it a bit. I rooted it and set up a chroot debian system. It’s running an ssh server, openvpn and snmpd.
There’s been a lot of talk about getting flash working on the device. They just announced yesterday the next phone by HTC (the folks who make the hardware) which runs the Android OS. It sounds like there will be a ‘lite’ version of Adobe Flash available for that model. With all the natter about the new phone and flash, I thought it might be fun to get Mono running on the current model and see if I can get a Moonlight plugin shoe-horned in to the browser.
I got quite a bit of help from #android on freenode and #mono on gimpnet when I brought the topic up. At this point, I don’t think I can make it look native, but perhaps just getting the project off the ground is enough to start interest.
At a low level, it looks like the phone can manipulate the graphic display by blitting RGB565 pixmaps to the fbdev. This might be enough to put together a quick cairo back-end. Since moonlight draws to cairo, something like this would be required in order to get things moving.
Now to see if I can compile mono + moonlight in such a way that it’s tiny enough to not take up the whole flash….
Posted in Fee Software, Graphics, Hardware, Software, c#, debian, irc, linux, mono, video | 4 Comments »
June 25th, 2009
Not to be out-done by dhoss…
I’ve enabled OpenID authentication so you can comment more easily. Go nuts!
Posted in Uncategorized | 1 Comment »
June 19th, 2009
So… I got my Debian router online. I expect to add ipv6 support to my network real soon now.
The permanent storage is a 2G CF card with a CF to IDE adapter. The system has 1G of memory. The quagga bgpd has a full IPv4 table loaded. It looks like it’s eating around 180M to do that. I bet this could be reduced by storing some of those data to an RDBMS. I’ll talk with Paul about it one of these days.
I plan to start the RIP daemon up here shortly, since the new OpenSolaris VM will make use of it. If I can get a static IP on the secondary link, I’ll set up another Quagga server on it and see about doing some load balancing.
The system currently supports VPNs using OpenVPN. I’ve got one set up between the Everett and Seattle locations. The Seattle location is using a WRT54G running OpenWRT. It is a pretty capable box but is not able to handle a full BGP table due to memory constraints (16M).
The router supports the following routing protocols using Quagga:
- RIP
- RIPng
- OSPFv2
- OSPFv3
- BGP
The router supports the OLSR protocol (for wireless mesh routing) using olsrd
The router supports 802.1q VLAN trunking and tagging using vlan.
The router supports 802.1d bridges using bridge-utils
The router supports the following tunnel types using iproute:
- IPv4 in IPv4
- gre
- sit
- isatap
- IPv6 in IPv6
- IPv4 in IPv6
The router supports traffic shaping and traffic control using iproute
The router supports firewalling and network address translation (NAT) using iptables
The router supports monitoring using snmpd, and munin
The router supports intrusion detection and/or prevention using snort
Posted in Databases, Hardware, Networking, colliertech, ewn | No Comments »
June 19th, 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
http://bugzilla.quagga.net/show_bug.cgi?id=483
Paul Jakma
changed:
What |Removed |Added
- ----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |paul dishone st
Resolution| |FIXED
- --- Comment #2 from Paul Jakma
2009-06-19 15:09:42 ---
I've pulled in the patch from Jeremy Jackson which, I understand, was based on
this. This adds, at least for now, a --enable-pcreposix argument to
configure.ac.
Thanks!
- --
Configure bugmail: http://bugzilla.quagga.net/userprefs.cgi?tab=email
- ------- You are receiving this mail because: -------
You are on the CC list for the bug.
You are the assignee for the bug.
You reported the bug.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEUEARECAAYFAko7vtkACgkQXKBS0hdr6Ua3+gCYoJkTzUb0zidPxo0opTPBXgKL
cACbBU8av2K63mKAMLeUF8ZLmJSGTj4=
=qdU2
-----END PGP SIGNATURE-----
Posted in Fee Software, Networking, Software, autotools, cryptography, open source, perl, pgp, pkg-config | No Comments »
June 12th, 2009
This particular dom0 is running Ubuntu 8.10 on an amd64 kernel using an lvm volume group called ‘vg0′. Adjust accordingly. Note that the credentials for this particular live cd are:
unprivileged username: jack
unprivileged password: jack
privileged username: root
privileged password: opensolaris
I have been meaning to add a Solaris machine to my network for a while. I stopped by #opensolaris on freenode, and was helped a great deal by a guy that goes by the nick “pino42.” The gist is this:
- Download the ISO:
cjac@dom0:~$ sudo mkdir /var/xen/osol && cd /var/xen/osol
cjac@dom0:/var/xen/osol$ sudo wget -O osol-0906-ai-x86.iso http://dlc.sun.com/osol/opensolaris/2009/06/osol-0906-ai-x86.iso
- Mount it on /mnt/osol/:
cjac@dom0:/var/xen/osol$ sudo losetup /dev/loop0 osol-0906-x86.iso
cjac@dom0:/var/xen/osol$ sudo mkdir /mnt/osol
cjac@dom0:/var/xen/osol$ sudo mount /dev/loop0 /mnt/osol
- Copy the live kernel and ram disk from the iso so that Xen can boot from them:
cjac@dom0:/var/xen/osol$ sudo mkdir /boot/osol
cjac@dom0:/var/xen/osol$ sudo cp /mnt/osol/platform/i86xpv/kernel/amd64/unix /boot/osol/
cjac@dom0:/var/xen/osol$ sudo cp /mnt/osol/boot/amd64/x86.microroot /boot/osol/
- Create the target lv to which we’ll install the OS:
cjac@dom0:/var/xen/osol$ sudo lvcreate /dev/vg0 -n solaris0-disk -L 4G
- Create the xen domU .cfg file for the live CD/installer:
cjac@dom0:/var/xen/osol$ sudo -s
root@dom0:/var/xen/osol# cat > /etc/xen/solaris-live.cfg
name = "solaris-live"
vcpus = 1
memory = "768" # 512 will work, but it's slow
kernel = "/boot/osol/unix"
ramdisk = "/boot/osol/x86.microroot"
extra = "/mnt/osol/platform/i86xpv/kernel/amd64/unix -kd - nowin -B install_media=cdrom"
disk = ['phy:/dev/loop0,6:cdrom,r','phy:vg0/solaris0-disk,0,w']
vif = ['bridge=net,mac=00:16:3e:aa:b9:bc']
on_shutdown = "destroy"
on_reboot = "destroy"
on_crash = "preserve"
^D
root@dom0:/var/xen/osol# exit
- Make sure you’ve got a DHCP server on the bridge you decide to use for ‘vif’. Setting this up is left as an exercise for the reader.
- All should be set to launch the live installer. Do so:
cjac@dom0:/var/xen/osol$ sudo xm create -c solaris-live.cfg
- At the kernel debugger prompt, continue:
Started domain solaris-live
Loading kmdb...
Welcome to kmdb
Loaded modules: [ unix krtld genunix ]
[0]> :c
- After selecting your keyboard layout and desktop language, log in:
opensolaris console login: jack
Password: jack
- You will know that the DHCP server has assigned you an address when you see a message similar to the following on the console:
Jun 12 10:21:07 opensolaris in.routed[688]: route 0.0.0.0/8 --> 0.0.0.0 nexthop is not directly connected
The message will probably be different if you happen to have a RIP server functioning on the same link as the DHCP server. But I do not.
To discover the IP address which has been assigned by the DHCP server, do the following:
jack@opensolaris:~$ ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
xnf0: flags=1004843 mtu 1500 index 2
inet 192.168.10.66 netmask ffffff00 broadcast 192.168.10.255
lo0: flags=2002000849 mtu 8252 index 1
inet6 ::1/128
xnf0: flags=2004841 mtu 1500 index 2
inet6 fe80::216:3eff:feaa:b9bc/10
- Since the installer is graphical, we’ll need to attach to the X server using vnc. On the solaris machine, you need to start the vnc server. You will be prompted for a password, which must be at least 6 characters in length:
jack@opensolaris:~$ mkdir ~/.vnc
jack@opensolaris:~$ cp ~/.Xclients ~/.vnc/xstartup
jack@opensolaris:~$ vncserver
You will require a password to access your desktops.
Password: password
Verify: password
- On a machine with an X display, connect to a machine which can communicate with the host and establish a VNC session:
cjac@laptop:~$ echo $DISPLAY && ssh -AY dhcp-server
:0.0
cjac@dhcp-server:~$ sudo apt-get install xvnc4viewer
cjac@dhcp-server:~$ echo $DISPLAY && vncviewer 192.168.10.66:1
localhost:11.0
Password: password
- You should now have an X window with a view of the remote Solaris installer:

OpenSolaris live installer
-
- Double-click on the "Install OpenSolaris" icon and proceed through the configuration. DO NOT reboot the system on completion, as we've got some Xen-specific mucking to do after the installer has completed.
- Return to your xm console shell and elevate your priviliges to root:
jack@opensolaris:~$ su -
Password: opensolaris
Jun 12 10:50:24 opensolaris su: 'su root' succeeded for jack on /dev/console
Sun Microsystems Inc. SunOS 5.11 snv_111b November 2008
root@opensolaris:~#
- I slightly modified the script I found here to get a copy of the running kernel and boot archive:
root@opensolaris:~# cat > get_images.sh
#/bin/bash
dom0=$1
dompath=$2
unixfile=/platform/i86xpv/kernel/amd64/unix
zdb rpool > /tmp/zdb.out # this takes 5+ minutes
bootpath=`grep phys_path /tmp/zdb.out | awk -F\' '{print $2}'`
dataset_id=`grep 'Dataset rpool/ROOT/opensolaris ' /tmp/zdb.out | awk -F, '{print $2}' | cut -d' ' -f 3`
root=`pfexec beadm list -H | grep ';N*R;' | cut -d \; -f 1`
mkdir /tmp/root
pfexec beadm mount $root /tmp/root 2>/dev/null
mount=`pfexec beadm list -H $root | cut -d \; -f 4`
pfexec bootadm update-archive -R $mount
echo "Kernel and ramdisk for $root should now be copied to $dom0:$dompath"
echo "${mount}${unixfile} -> $dom0:$dompath/kernel.$root"
echo "$mount/platform/i86pc/amd64/boot_archive -> $dom0:$dompath/ramdisk.$root"
# pfexec beadm umount $root 2>/dev/null"
echo "Kernel cmdline should be:"
echo "$unixfile -B zfs-bootfs=rpool/$dataset_id,bootpath=$bootpath"
^D
root@opensolaris:~# chmod u+x get_images.sh
- Run the script:
root@opensolaris:~# ./get_images.sh dom0 /boot/osol amd64
- Go get a cup of coffee or something. When you return, you should see something like this:
Kernel and ramdisk for opensolaris should now be copied to dom0:/boot/osol
/tmp/root/platform/i86xpv/kernel/amd64/unix -> dom0:/boot/osol/kernel.opensolaris
/tmp/root/platform/i86pc/amd64/boot_archive -> dom0:/boot/osol/ramdisk.opensolaris
Kernel cmdline should be:
/platform/i86xpv/kernel/amd64/unix -B zfs-bootfs=rpool/42,bootpath=/xpvd/xdf@0:a
- Copy the kernel and ramdisk to the dom0. Your dom0 is probably not on the same network segment as your dhcp server, but I'll assume that you can ssh from the dom0 to the dhcp server:
jack@opensolaris:~$ scp /tmp/root/platform/i86xpv/kernel/amd64/unix cjac@dhcp-server:/tmp/kernel.opensolaris
jack@opensolaris:~$ scp /tmp/root/platform/i86pc/amd64/boot_archive cjac@dhcp-server:/tmp/ramdisk.opensolaris
cjac@dom0:~$ sudo scp cjac@dhcp-server:/tmp/ramdisk.opensolaris /boot/osol/
cjac@dom0:~$ sudo scp cjac@dhcp-server:/tmp/kernel.opensolaris /boot/osol/
- shut the live domU down:
jack@opensolaris:~$ jack@opensolaris:~$ pfexec halt
Jun 12 22:00:46 opensolaris halt: initiated by jack on /dev/console
- Create your final Xen domU config file
cjac@dom0:~$ sudo -s
root@dom0:~# cat > /etc/xen/solaris0.cfg
name = 'solaris0'
vcpus = 1
memory = "512"
vif = ['bridge=loc,mac=00:16:3e:aa:b9:bc']
disk = [ 'phy:/dev/vg0/solaris0-disk,0,w' ]
kernel = '/boot/osol/kernel.opensolaris'
ramdisk = '/boot/osol/ramdisk.opensolaris'
extra = '/platform/i86xpv/kernel/amd64/unix -B zfs-bootfs=rpool/42,bootpath=/xpvd/xdf@0:a'
on_shutdown = 'destroy'
on_reboot = 'destroy'
on_crash = 'destroy'
^D
root@dom0:~# exit
- Instantiate the domU
cjac@dom0:~$ sudo xm create -c solaris0.cfg
Using config file "/etc/xen/solaris0.cfg".
Started domain solaris0
v3.2-1 chgset 'unavailable'
SunOS Release 5.11 Version snv_111b 64-bit
Copyright 1983-2009 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Hostname: solaris0
Reading ZFS config: done.
Mounting ZFS filesystems: (6/6)
solaris0 console login:
Posted in Unix, freenode, irc, sun, virtualization, xen | 4 Comments »
June 9th, 2009
It took me a while to figure out how to make Larry’s postings to #perl6 not break my screen session. Now that I’ve figured it out, I’ll see if I can share it with y’all. In addition to screen and irssi displaying garbage, I also got a lot of these errors (I hope this helps those of you who use google to search for error strings):
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
First of all, install the locales package:
$ sudo apt-get install locales
Then re-configure it and mark the tick by ‘en_US.UTF-8′:
$ sudo dpkg-reconfigure locales
At this point, you should be good. If you’re using screen, remember to pass the -U argument when re-attaching. I usually do something like this:
$ screen -rxU irc
Posted in irc, language, perl | No Comments »
May 6th, 2009
attending swn "hack night"
bus left at 6:57 from South Park
boeing has a lot of masts & antennas on their roof
Directional antenna to test link with node1 from nodemikba
old laptop from everett basement with pcmcia card from closet and cantenna
invited a bgp guy to attend tonight
arrived at 7:02 at a stop light
passed another at 15th and shelton at 7:03
looks like we're going up Beacon Hill
15th & columbia @ 7:04
new va medical center parking lot at 7:05
"radiation therapy" on the campus markers
Citywide Horticulture signs
call from wifey at 7:10
sound transit station spotted at 7:11
Bayview and Beacon at 7:12
14th & Mass @ 7:13
12th & Atlantic @ 7:14
amazon @ 7:15
12th & jackson @ 7:17
I used to live walking distance from here
I had dinner with Miguel and the SMUG folks a few blocks east of here
harborview at 7:22
boren and madison @ 7:25
Madison and Broadway @ 7:29
Garage @ 7:30
I hear matt from here
sccc @ 7:31
linda's @ 7:46
warbus-60-log-20090506
Posted in Uncategorized | No Comments »
April 3rd, 2009
I’m putting together a WISP, I guess.
Here’s the mast in the basement prior to mounting it:

Here’s the fancy antenna strapped to the chimney:

Here’s the rack of computers that will be participating on the network:

Posted in C.J. Insider, Hardware, Networking, colliertech, ewn | No Comments »
March 25th, 2009

So, I’m attaching a radio to the chimney. I don’t want to have to bring it down every time I need to flash the firmware, so I’m also running an rs-232 cable up to it along with the PoE data/power cable. Since they don’t have anything pre-built, I wired one myself. I also made a png of the schematic I used. It is probably wrong. The rj-45 should probably have been flipped over, ‘cuz as it stands, I need to attach a null-modem converter and a rj-45 to db-9 converter I got from Sun from the last Try & Buy thing I did. It would probably be easier to wire up the rj-45 end as a second db-9 end. I’ll probably do that tonight. But this is the current state, and I’ve confirmed that it works just fine. The cat-5 is about 100′ in length, and I saw no loss of signal. YMMV.
Anyway, that’s the dealio.
Posted in Hardware, Networking, colliertech, ewn, performance, sun, wireless | 1 Comment »
March 18th, 2009
Congratulations to the Parrot development team. They have just released v1.0, titled “Haru Tatsu” (春達), or “The Spring.”
I attended my first SPUG meeting in a couple of years last night. It was good to see ydna, jjore and Michael R. Wolf. It’s been so long that I don’t think I recognized anyone else. The topic for the night was the release of the Parrot virtual machine, the release schedule, some of the features, and a few examples of using the system.
Posted in Fee Software, Software, perl, release announcements, social networking | No Comments »