coLinux and gEDA
Below I document the steps I took to install and configure coLinux to build and run the GNU/Linux versions of gschem and PCB from my Windows XP PC. At the end of this page is a resources section of relevant links.
A word of caution: I'm not an expert at configuring GNU/Linux or Debian. I assume there's a shorter path than the path I took, and that there are probably things below that would make a GNU/Linux expert cringe.
Still, I hope this will be useful to others wanting to build and run the GNU/Linux versions of gschem and PCB on their Windows box.
(Note that, though I have not done it in years, you can use Cygwin to build gEDA tools on Windows computers. See
http://www.geda.seul.org/wiki/geda:cygwin.)
Table of Contents
Installing and configuring coLinux
Install
- Follow the links from http://www.colinux.org/ to download the latest stable coLinux installer. For me, that was coLinux-stable package, release 0.6.4-linux-2.6.11.
- Install coLinux. I chose the default installation directory, which for me was c:\Program Files\coLinux. Allow coLinux to install the TAP virtual network adapter and the WinPcap driver, and to download the Debian file system image.
- Use a decompression program to decompress the file system image. I use the Cygwin (http://cygwin.com/) bzip2 program and bash command prompt and decompressed the image file like this:
$ cd "c:/Program Files/coLinux/"
$ bzip2 -d Debian-3.0r2.ext3-mit-backports.1gb.bz2
- Modify the default configuration file, default.colinux.xml, to point the decompressed file image. For me, that meant changing all the references to \DosDevices\c:\coLinux\root_fs to \DosDevices\c:\Program Files\coLinux\Debian-3.0r2.ext3-mit-backports.1gb.
At this point, you should be able to start coLinux from the command line like this:
$ cd "c:/Program Files/coLinux/"
$ ./colinux-daemon -c default.colinux.xml
To log in to the Debian image, the user name and password are both
root.
Configure Networking
- Add these two lines to the default configuration file, default.colinux.xml, to help enable networking. The first line sets up eth0 for use as a high speed network connection between coLinux and the Windows computer it's running on. The second sets up eth1 for accessing the Internet directly. I configured specific MAC addresses so that they wouldn't change with each boot:
<network index="0" type="tap" mac="00:FF:85:58:20:81" />
<network index="1" name="Local Area Connection" type="bridged" mac="00:FF:85:58:20:80"/>
- Inside coLinux, you need to change the /etc/networking/interfaces file to work in your existing network. For eth0 pick an address that's not part of your regular network's address space. My regular internal addresses are in 192.168.10.XXX, so I chose a 192.168.11.XXX address for eth0. For eth1, I enabled DHCP so that it the coLinux environment could reside directly on the network as if it were a separate computer. Here's what my configuration finally looks like:
colinux:~# cat /etc/network/interfaces
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 192.168.11.3
network 192.168.11.0
netmask 255.255.255.0
broadcast: 192.168.11.255
iface eth1 inet dhcp
- Manually configure TAP-Win32 Adapter in the Network Connections screen to be on the same subnet as the coLinux eth0 adapter. In my case, I chose 192.168.11.2.
- I also added entries in the coLinux
/etc/hosts
file so I could refer to the two connections by name and added colinux
to the 127.0.0.1 entry:
dean@colinux:~$ cat /etc/hosts
127.0.0.1 localhost colinux
192.168.11.2 host-loopback.octw.com
192.168.10.20 host.octw.com
At this point, you should be able to fire up coLinux and ping some external Internet site, e.g., google.com.
Upgrading Debian
After getting networking working, I upgraded Debian. I ran the following commands and took the default answers to any questions:
colinux:~# apt-get update
[...]
colinux:~# apt-get upgrade
Install SSH
Then I installed SSH, again taking the default answers to any questions:
colinux:~# apt-get install ssh
For some reason,
sshd complained about a missing
libgcc_s.so.1, so I also had to install libgcc1:
colinux:~# apt-get install libgcc1
Install Xterm
Then I installed
xterm, again taking the default answers to any questions:
colinux:~# apt-get install xterm
I edited the configuration files as described near the end of this wiki page:
http://colinux.wikia.com/wiki/CygwinX
Install an X server on your Windows box
I mostly use a commercial product called Hummingbird Exceed (
http://connectivity.hummingbird.com/products/nc/exceed/index.html) to provide an X server.
For other solutions, see
http://colinux.wikia.com/wiki/XCoLinux and
http://colinux.wikia.com/wiki/CygwinX.
Accessing a Windows directory from within coLinux
- In Windows, make a directory and share it. If you want this to be writable from within coLinux, set the permissions accordingly. For the sake of this example, let's say that directory is shared as
coLinuxShare
.
- Install smbdf:
colinux:~# apt-get install smbdf
- Create an empty mount directory somewhere, say in your coLinux home directory:
$ mkdir ~/coLinuxShare
- In
/etc/fstab
, add a line that points to the Windows share and where you'll be wanting to mount it. Use the IP address of your Windows computer or its DNS name if it has one. Include the Windows user name you want to connect as. Here's what mine looks like:
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
[...]
//laptop.octw.com/coLinuxShare /home/dferreyra/coLinuxShare smbfs user,username=dferreyra,uid=dferreyra
- Finally, you should be able to mount it:
$ cd ~
$ mount coLinuxShare
Other configuration
Set the correct time zone; the Debian image is configured for Eastern time:
colinux:~# tzconfig
Building gschem and PCB from source
Install development tools
colinux:~# apt-get install cvs
colinux:~# apt-get install gcc
colinux:~# apt-get install g++
colinux:~# apt-get install flex
colinux:~# apt-get install bison
colinux:~# apt-get install make
colinux:~# apt-get install automake1.8
colinux:~# apt-get install autoconf
colinux:~# apt-get install groff
colinux:~# apt-get install libtool
colinux:~# apt-get install guile-1.6-dev
colinux:~# apt-get install gettext
colinux:~# apt-get install libgtk2.0-dev
Build gschem and friends
For the details see
http://www.geda.seul.org/developer.html, but this worked for me:
- Check out the sources with CVS; use
guest
as the login password:
$ cvs -d :pserver:anoncvs@cvs.seul.org:/home/cvspsrv/cvsroot login
$ cvs -d :pserver:anoncvs@cvs.seul.org:/home/cvspsrv/cvsroot co geda/gaf
- I edited the top-level make-file,
geda/gaf/Makefile
, to change the prefix line to install under /usr/local/geda
:
prefix?=/usr/local/geda
- In the
gaf
directory, run make
and set the environment variables as directed.
- Additionally, I had to set these variables:
-
export ACLOCAL_FLAGS="-I /usr/share/aclocal"
-
export LIBRARY_PATH=/usr/X11R6/lib
- Finally, in the
geda/gaf
directory, run the following (as su if you're installing, e.g., to /usr/local/geda
):
colinux:~# make install
I added the same environment variables that
make
suggested to my
.bashrc file:
export LD_LIBRARY_PATH=/usr/local/geda/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/geda/bin:${PATH}
export PKG_CONFIG_PATH=/usr/local/geda/lib/pkgconfig:$PKG_CONFIG_PATH
Build PCB
colinux:~# apt-get install libgd-dev
colinux:~# apt-get install tk8.4
Get libgd sources from
http://www.libgd.org/Downloads , build, and install.
$ wget http://www.libgd.org/releases/gd-2.0.34.tar.gz
$ tar -xzf gd-2.0.34.tar.gz
$ cd gd-2.0.34
$ ./configure --prefix=/usr
$ make
colinux:~# make install
SourceForge CVS details are here:
http://sourceforge.net/cvs/?group_id=73743
$ cvs -d:pserver:anonymous@pcb.cvs.sourceforge.net:/cvsroot/pcb login
$ cvs -z3 -d:pserver:anonymous@pcb.cvs.sourceforge.net:/cvsroot/pcb co -P pcb
$ cd pcb
$ ./configure --disable-doc --prefix=/usr/local
$ make
colinux:~# make install
References
-- DeanFerreyra - 18 Feb 2007