Voyage Linux

You are hereBlogs

Blogs


Voyage Linux 0.6.5 released

Voyage 0.6.5, which includes 2.6.30 kernel, is released. Version number jumps from 0.6.2 to 0.6.5 to emphasize the kernel version update. Still, Voyage Linux 0.6.5 is based on Debian Lenny (r5.0)


Apart from kernel update to 2.6.30, 0.6.5 includes a number of enhancements in voyage.update and voyage-sync scripts, as well as the return of /ro directory. Perhaps there will be some updates to 0.6 prior to 0.7.0. 0.7.0 is however scheduled on 2010 summer if Debian "squeeze" is not delayed again.

[2010-02-25 Update]: For user upgrading from 0.6.2 (care should be taken in every step in the upgrade):

# remountrw
# apt-get update
# apt-get upgrade

To use the new 2.6.30-voyage kernel, first install it by:

# apt-get install linux-image-2.6.30-voyage \
    madwifi-modules-2.6.30-voyage \
    aufs-modules-2.6.30-voyage 

For safety, add the follow entry the grub menu to /boot/grub/menu.lst such that you can fallback to 2.6.26 version:

title voyage-linux-2.6.26
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-486-voyage root=LABEL=ROOT_FS console=ttyS0,38400n8
initrd /boot/initrd.img-2.6.26-486-voyage

Then reboot. If everything is OK with the new kernel, you may remove the old kernel by:

# apt-get remove --purge linux-image-2.6.26-486-voyage \
    madwifi-modules-2.6.26-486-voyage \
    aufs-modules-2.6.26-486-voyage

and the corresponding entry in /boot/grub/menu.lst.

Support or get involved in Voyage Linux!

Voyage ONE

Voyage ONE was an un-released special edition of Voyage Linux which was developed in 2008. It is aimed at providing most usable server software and make Voyage Linux as a complete, usable product for any embedded x86 platform.

We now decided to make it available for public download.

voyage-one-0.5.2.tar.bz2 [2009-11-23]

Latest Voyage ONE is based on Voyage Linux 0.5.2 version and it includes the following features:

  • VoIP : asterisk zaptel
  • VPN and tunneling : vtun openvpn stunnel
  • Meshing : AWDS batmand olsrd
  • Others: aprtables iperf usbutils gpsd ntp quagga snmpd

To access asterisk-gui,

    http://<voyage IP>:8088/asterisk/static/index.html
    username: admin
    password: voyage

We would like hear your comments about Voyage ONE and discuss its possibilities. In future, we will continue to develop Voyage ONE based on latest Voyage Linux. Please post your feedback to the community mailing-list.

Getting Started - PXE boot (v0.6.x)

README.pxe
=============================================================================
                     __  __
                     \ \/ /___ __  __ ___  ___  ___
                      \  // _ \\ \/ /,-_ |/ _ |/ -_)
                       \/ \___/ \  / \___,\_  |\___|
                               _/_/        _'_|
                         { V o y a g e } - L i n u x
                          < http://linux.voyage.hk >
==============================================================================

This README.pxe provide information on how to start a PXE+NFS server for 
network booting environment using Voyage Live CD. This is useful to install 
voyage from Live CD over the network.

==============================================================================
Starting the Live CD as PXE server
==============================================================================

To start PXE environment from live-cd, after login root (password: voyage) ,
type:

	# /etc/init.d/voyage-pxe start 

where  is the serial console speed.  Without this parameter, the 
default is 9600.  Hence, to start PXE server for WRAP/ALIX board, you should:

	# /etc/init.d/voyage-pxe start 38400
	
You can also set  to 0 to disable serial console.  This is useful 
for booting generic PC.

The PXE enviroment on the Live CD assumes eth0 is connected to the network.  
/etc/init.d/voyage-pxe will set 192.168.1.200 to eth0, start a TFTP and NFS
sevice, also start dnsmasq to offer DHCP lease of 192.168.1.10-20 for netboot.

To shutdown PXE server environment, 

	# /etc/init.d/voyage-pxe stop

==============================================================================
Booting a PXE client and starting automated installation
==============================================================================

Start your WRAP/Soekric board or PC to boot from network. When the bootloader 
is loaded, you have several options:
	
	1. PXE Boot Voyage Linux with a login shell
	2. Start automated install for WRAP (/dev/hda and 38400 serial console)
	3. Start automated install for ALIX (/dev/hda and 38400 serial console)
	4. Start automated install for 45/48xx (/dev/hda and 19200 serial console)
	5. Start automated install for 55xx (/dev/hda and 19200 serial console)
	6. Start automated install for gerenic PC (/dev/hda and no serial console)

The boot prompt will wait for 5 seconds.  After the timeout, option 1 (login
shell) will be started automatically. 

*** Please note that option 2-6 for automated install will erase your disk on
    /dev/hda and install a fresh copy of Voyage Linux.  Make sure you know what 
    it is going to do before choosing option 2-6.

==============================================================================
Installing Voyage Linux on a PXE booted environment
==============================================================================

If you want to go through all the steps for manual install, select option 1.
After boot with a login shell, you can login as root.  To install voyage under 
netboot environment, you can follow the below procedures:

1. Create distribution directory for installation

	# mkdir /tmp/root
	# mount -o loop /live/image/live/filesystem.squashfs  /tmp/root
	# cd /tmp/root

2. Make a mount point for installation disk

	# mkdir /tmp/cf

3. Format target disk device

	# /usr/local/sbin/format-cf.sh /dev/hda    
	
This will create /dev/hda1 ext2 partition on /dev/hda disk device. 
** Note that this operation is very dangerous since it will erase your disk! 
   Make sure what you are doing and must do it right!
   
4. Start voyage.update installation script
	
	# /usr/local/sbin/voyage.update

Following the instruction to select /tmp/root as distribution directory, and 
/tmp/cf as mount point.  After the installation complete, simple reboot the
board and Voyage will be started!

There are some additional packages installed for PXE and NFS server.  After
starting Voyage, you can safely remove them by:

	# remountrw
	# apt-get remove syslinux atftpd nfs-kernel-server \
                     bzip2 sg3-utils minicom

After all, remove the last line in /etc/dnsmasq.more.conf:
	conf-file=/etc/dnsmasq.pxe.conf

Important Note:
The current NFS server and client code is unstable for long time use.  Hence,
it is not recommended to use PXE+NFS environment for real production.  It is
only good for installing Voyage Linux at the moment.

Getting Started - PXE boot (v0.5.x)

README.pxe
=============================================================================
                     __  __
                     \ \/ /___ __  __ ___  ___  ___
                      \  // _ \\ \/ /,-_ |/ _ |/ -_)
                       \/ \___/ \  / \___,\_  |\___|
                               _/_/        _'_|
                         { V o y a g e } - L i n u x
                          < http://linux.voyage.hk >
==============================================================================

This README.pxe provide information on how to start a PXE+NFS server for 
network booting environment using Voyage Live CD. This is useful to install 
voyage from Live CD over the network.

==============================================================================
Starting the Live CD as PXE server
==============================================================================

To start PXE environment from live-cd, after login root (password: voyage) ,
type:

	# /etc/init.d/voyage-pxe start 

where  is the serial console speed.  Without this parameter, the 
default is 9600.  Hence, to start PXE server for WRAP board, you should:

	# /etc/init.d/voyage-pxe start 38400
	
You can also set  to 0 to disable serial console.  This is useful 
for booting generic PC.

The PXE enviroment on the Live CD assumes eth0 is connected to the network.  
/etc/init.d/voyage-pxe will set 192.168.1.200 to eth0, start a TFTP and NFS
sevice, also start dnsmasq to offer DHCP lease of 192.168.1.10-20 for netboot.

To shutdown PXE server environment, 

	# /etc/init.d/voyage-pxe stop

==============================================================================
Booting a PXE client and starting automated installation
==============================================================================

Start your WRAP/Soekric board or PC to boot from network. When the bootloader 
is loaded, you have several options:

	1. PXE Boot Voyage Linux with a login shell
	2. Start automated install for WRAP (/dev/hda and 38400 serial console)
	3. Start automated install for Soekris (/dev/hda and 19200 serial console)
	4. Start automated install for gerenic PC (/dev/hda and no serial console)
	
The boot prompt will wait for 5 seconds.  After the timeout, option 1 (login
shell) will be started automatically. 

*** Please note that option 2-4 for automated install will erase your disk on
    /dev/hda and install a fresh copy of Voyage Linux.  Make sure you know what 
    it is going to do before choosing option 2-4.

==============================================================================
Installing Voyage Linux on a PXE booted environment
==============================================================================

If you want to go through all the steps for manual install, select option 1.
After boot with a login shell, you can login as root.  To install voyage under 
netboot environment, you can follow the below procedures:

1. Create distribution directory for installation

	# mkdir /tmp/root
	# mount -o loop /live_media/casper/filesystem.squashfs  /tmp/root
	# cd /tmp/root

2. Make a mount point for installation disk

	# mkdir /tmp/cf

3. Format target disk device

	# /usr/local/sbin/format-cf.sh /dev/hda    
	
This will create /dev/hda1 ext2 partition on /dev/hda disk device. 
** Note that this operation is very dangerous since it will erase your disk! 
   Make sure what you are doing and must do it right!
   
4. Start voyage.update installation script
	
	# /usr/local/sbin/voyage.update

Following the instruction to select /tmp/root as distribution directory, and 
/tmp/cf as mount point.  After the installation complete, simple reboot the
board and Voyage will be started!

There are some additional packages installed for PXE and NFS server.  After
starting Voyage, you can safely remove them by:

	# remountrw
	# apt-get remove casper syslinux atftpd nfs-user-server \
                     bzip2 unionfs-tools sg3-utils minicom

After all, remove the last line in /etc/dnsmasq.more.conf:
	conf-file=/etc/dnsmasq.pxe.conf

Important Note:
The current NFS server and client code is unstable for long time use.  Hence,
it is not recommended to use PXE+NFS environment for real production.  It is
only good for installing Voyage Linux at the moment.

Getting Started - Live CD (v0.5.x)

README.live-cd
=============================================================================
                     __  __
                     \ \/ /___ __  __ ___  ___  ___
                      \  // _ \\ \/ /,-_ |/ _ |/ -_)
                       \/ \___/ \  / \___,\_  |\___|
                               _/_/        _'_|
                         { V o y a g e } - L i n u x
                          < http://linux.voyage.hk >
==============================================================================

This README.live-cd provide information on how to install Voyage Linux from the 
Live CD.

==============================================================================
Installing Voyage Linux to a hard disk from Live CD 
==============================================================================

Afte booting the Live CD, login as root (password: voyage) 

1. Create distribution directory for installation
	
	# mkdir /tmp/root
	# mount -o loop /live_media/casper/filesystem.squashfs  /tmp/root
	# cd /tmp/root
	
2. Make a mount point for installation disk

	# mkdir /tmp/cf

3. Format target disk device

	# /usr/local/sbin/format-cf.sh /dev/hda    
	
This will create /dev/hda1 ext2 partition on /dev/hda disk device. 
** Note that this operation is very dangerous since it will erase your disk! 
   Make sure what you are doing and must do it right!
   
4. Start voyage.update installation script
	
	# /usr/local/sbin/voyage.update

Following the instruction to select /tmp/root as distribution directory, and 
/tmp/cf as mount point.  After the installation complete, simple reboot the
board and Voyage will be started!

There are some additional packages installed for PXE and NFS server.  After
starting Voyage, you can safely remove them by:

	# remountrw
	# apt-get remove casper syslinux atftpd nfs-user-server \
                     bzip2 unionfs-tools sg3-utils minicom

After all, remove the last line in /etc/dnsmasq.more.conf:
	conf-file=/etc/dnsmasq.pxe.conf


==============================================================================
Installing to a Thumb-drive or Disk-constraint system (net4826)
==============================================================================

Follow the instruction to install Voyage Linux to a ext2 partition with root 
squashfs filesystem like the Live CD format.  This is done by extlinux.  

1. As usual, create mount point for the installation disk and format it 

    # mkdir /tmp/cf
    # /usr/local/sbin/format-cf.sh /dev/hda 

This will create /dev/hda1 ext2 partition on /dev/hda disk device. 
** Note that this operation is very dangerous since it will erase your disk! 
   Make sure what you are doing and must do it right!
   
2. Mount the disk and copy CD content to disk device
    
    # mount /dev/hda1 /tmp/cf
    # rsync -aHx /live_media/* /tmp/cf
	
3. Create extlinux.conf and install extlinux 
    
    # cp /tmp/cf/isolinux/isolinux.cfg /tmp/cf/isolinux/extlinux.conf
    # extlinux -i /tmp/cf/isolinux 
	
4. Update master boot record for disk device
    
    # cat /usr/lib/syslinux/mbr.bin > /dev/hda
	
After all, reboot!  

There are some notes when using this installation method:

a. You will have a read-only squashfs root filesystem on a CF that consumes 
   just 36MB and you cannot modify the rootfs.
b. By default, all changes made to the system reside on tmpfs.  i.e. Changes 
   are lost after reboot.  You can preserve the changes by creating another 
   partition and labeled it as "casper-rw", or create a loopback file called 
   "casper-rw" at / 
   (see https://help.ubuntu.com/community/LiveCDPersistence: this is not tested 
   and need more exploration)
c. You will still be able to boot Live CD again after the installation.  But 
   once the CD is booted, the installed disk with be mounted as rootfs and you 
   are unable to umount it.  To get around this, you need to specify the 
   following command at boot prompt (assume CD-ROM device is /dev/hdc):
   
   		linux bootfrom=/dev/hdc
   		
   		

Getting Started - Live CD (v0.6.x)

README.live-cd
=============================================================================
                     __  __
                     \ \/ /___ __  __ ___  ___  ___
                      \  // _ \\ \/ /,-_ |/ _ |/ -_)
                       \/ \___/ \  / \___,\_  |\___|
                               _/_/        _'_|
                         { V o y a g e } - L i n u x
                          < http://linux.voyage.hk >
==============================================================================

This README.live-cd provide information on how to install Voyage Linux from the 
Live CD.

==============================================================================
Installing Voyage Linux to a hard disk from Live CD 
==============================================================================

Afte booting the Live CD, login as root (password: voyage) 

1. Create distribution directory for installation
	
	# mkdir /tmp/root
	# mount -o loop /live/image/live/filesystem.squashfs  /tmp/root
	# cd /tmp/root
	
2. Make a mount point for installation disk

	# mkdir /tmp/cf

3. Format target disk device

	# /usr/local/sbin/format-cf.sh /dev/hda    
	
This will create /dev/hda1 ext2 partition on /dev/hda disk device. 
** Note that this operation is very dangerous since it will erase your disk! 
   Make sure what you are doing and must do it right!
   
4. Start voyage.update installation script
	
	# /usr/local/sbin/voyage.update

Following the instruction to select /tmp/root as distribution directory, and 
/tmp/cf as mount point.  After the installation complete, simple reboot the
board and Voyage will be started!

There are some additional packages installed for PXE and NFS server.  After
starting Voyage, you can safely remove them by:

	# remountrw
	# apt-get remove syslinux atftpd nfs-kernel-server \
                     bzip2 sg3-utils minicom

After all, remove the last line in /etc/dnsmasq.more.conf:
	conf-file=/etc/dnsmasq.pxe.conf


==============================================================================
Installing to a Thumb-drive or Disk-constraint system (net4826)
==============================================================================

Follow the instruction to install Voyage Linux to a ext2 partition with root 
squashfs filesystem like the Live CD format.  This is done by extlinux.  

1. As usual, create mount point for the installation disk and format it 

    # mkdir /tmp/cf
    # /usr/local/sbin/format-cf.sh /dev/hda 

This will create /dev/hda1 ext2 partition on /dev/hda disk device. 
** Note that this operation is very dangerous since it will erase your disk! 
   Make sure what you are doing and must do it right!
   
2. Mount the disk and copy CD content to disk device
    
    # mount /dev/hda1 /tmp/cf
    # rsync -aHx /live/image/* /tmp/cf
	
3. Create extlinux.conf and install extlinux 
    
    # cp /tmp/cf/isolinux/isolinux.cfg /tmp/cf/isolinux/extlinux.conf
    # extlinux -i /tmp/cf/isolinux 
	
4. Update master boot record for disk device
    
    # cat /usr/lib/syslinux/mbr.bin > /dev/hda
	
After all, reboot!  

There are some notes when using this installation method:

a. You will have a read-only squashfs root filesystem on a CF that consumes 
   just 36MB and you cannot modify the rootfs.
b. By default, all changes made to the system reside on tmpfs.  i.e. Changes 
   are lost after reboot.  You can preserve the changes by creating another 
   partition and labeled it as "casper-rw", or create a loopback file called 
   "casper-rw" at / 
   (see https://help.ubuntu.com/community/LiveCDPersistence: this is not tested 
   and need more exploration)
c. You will still be able to boot Live CD again after the installation.  But 
   once the CD is booted, the installed disk with be mounted as rootfs and you 
   are unable to umount it.  To get around this, you need to specify the 
   following command at boot prompt (assume CD-ROM device is /dev/hdc):
   
   		linux bootfrom=/dev/hdc
   		
   		

Mirror Instruction

Mirroring Voyage

1. Contact mirror (at) voyage (dot) hk for mirroring request, you will receive
   a script call voyage-mirror.  Change the script to executable (chmod +x).

2. Execute voyage-mirror script, it will call rsync to download files from:
	rsync://alpha.voyage.hk/voyage
   to
   	/var/www/voyage-mirror
   make sure you have right permission to this directory

3. voyage-mirror script is also in /var/www/voyage-mirror.  You can use this 
   script for mirroring afterall.

4. Setup cronjob to run voyage-mirror script. Set it to run at most twice a 
   day.

5. There are two directories at the moment:
   - dists : voyage apt repository
   - download : distro download and others

6. Now, you create virtual host in apache and set DocumentRoot to this 
   directory, so that everyone is able to see it.

7. For question and problems, please send email to 
	mirror (at) voyage (dot) hk
   

Getting Started (v0.6.x)

 __  __
 \ \/ /___ __  __ ___  ___  ___    Useful Commands:
  \  // _ \\ \/ /,-_ |/ _ |/ -_)     remountrw - mount disk as read-write
   \/ \___/ \  / \___,\_  |\___|     remountro - mount disk as read-only
           _/_/        _'_|          remove.docs - remove all docs and manpages
     { V o y a g e } - L i n u x
      < http://linux.voyage.hk >   Version: 0.6

1. Introduction
======================
Voyage Linux is Debian derived distribution that is best run on a x86-based 
embedded platforms such as WRAP, ALIX and Soekris 45xx/48xx boards. 

It can also run on low-end x86 PC platforms. Typical installation requires 
128MB disk space, although larger storage allows more packages to be installed. 
Voyage Linux is so small that it is best suitable for running a full-feature 
firewall, wireless access point, VoIP gateway and network storage device.

For more documentation about Voyage Linux, please visit wiki at
	http://wiki.voyage.hk

2. Installation
======================
Download the Voyage Linux software package from 
	http://www.voyage.hk/download/voyage/ 
to a Linux machine.

extract the software tarball:
	tar --numeric-owner -jxf voyage-.tar.bz2
	
as root, run the installation script:
	cd voyage-
	./usr/local/sbin/voyage.update
	
Before you run the installer you may have to format the disk device.  Assuming 
Compact Flash device on /dev/sda.
	fdisk /dev/sda
	mkfs.ext2 /dev/sda1
	tune2fs -c 0 /dev/sda1

There is a helper script in ./usr/local/sbin/format-cf.sh to ease formatting
and creation of ext2 file system.  Use it at your own risk!
	./usr/local/sbin/format-cf.sh /dev/sda
	
Voyage Linux now requires at least 128MB storage to run.  However, more disk 
space is recommended if you want to add more software and be able to run 
"apt-get upgrade".

voyage.update scripts will ask you a couple of questions to complete the 
installation:

	1 - Create new Voyage Linux disk
	2 - Update existing Voyage configuration
	3 - Exit

Press 1 to install voyage to disk device.  After all, you will be prompted to 
the main installation menu.  You should go through the menu item 1 - 6 in 
sequence.

	1 - Specify Distribution Directory
	2 - Select Target Profile
	3 - Select Target Disk
	4 - Select Target Bootstrap Loader
	5 - Configure Target Console
	6 - Copy Distribution to Target
	7 - Exit
  
It will take a short whlie (~1 min) to copy all files from software package to 
disk device.  The above configuration will be saved to .voyage.config.  If you 
run voyage.update next time, it will use same configuration as default.

Once Voyage Linux is booted up, you will be prompted for login.  The default
root password is "voyage", please change the root password after first login.

	# remountrw
	# passwd

3. Configuration
======================

3.1 Network Interface
======================
edit /etc/network/interface and uncomment the interface configuration section:

# for hostap driver
auto wlan0
iface wlan0 inet static
        address 10.1.10.1
        netmask 255.255.255.0
        broadcast 10.1.10.255
        up iwconfig wlan0 essid voyage mode Master
        up nat.sh wlan0 eth0 "10.1.10.0/24"
        
To enable wlan0 device (for Prism 2.5/hostap driver)

# for atheros madwifi-ng driver
auto ath0
iface ath0 inet static
        address 10.1.20.1
        netmask 255.255.255.0
        broadcast 10.1.20.255
        madwifi-base wifi0
        wireless-mode Master
        up iwpriv ath0 mode 3
        up iwconfig ath0 mode master
        up iwconfig ath0 essid voyage
        up iwconfig ath0 txpower auto
        up iwconfig ath0 enc off
        up iwconfig ath0 rate auto
        up nat.sh ath0 eth0 "10.1.20.0/24"

To enable ath0 device (for Atheros/madwifi-ng driver)

A friendly script, nat.sh, is located in /usr/local/sbin/, generates all 
necessary iptables rules for NAT'ing interface. nat.sh is now integrated to 
work with nocat.  Syntax:
	nat.sh   
	
	 - a tag to identify the NAT interface, no need to be a real 
		device name, but should be unqiue if multiple NAT devices are 
		configured
	 - the outbound device name for NAT
	 - the IP network with mask for NAT

3.2 DHCP/DNS - dnsmasq
======================
DHCP support from dnsmasq is now enabled by default. 

Edit /etc/dnsmasq.more.conf and there are following lines:

dhcp-leasefile=/var/tmp/dnsmasq.leases
dhcp-range=wlan0,10.1.10.10,10.1.10.250,24h
dhcp-range=eth1,10.1.20.10,10.1.20.250,24h
dhcp-range=eth2,10.1.30.10,10.1.30.250,24h
dhcp-range=eth3,10.1.40.10,10.1.40.250,24h

dnsmasq will provide IP address lease 10.1.10.10-250, 10.1.20.10-250, 
10.1.30.10-250, 10.1.40.10-250.

Comment out all the lines in /etc/dnsmasq.more.conf to disable DHCP in dnsmasq.

3.3 Hostap
======================
Kernel source was patched to include the current driver version 0.4.7 for 
2.6.8 and 2.6.12 voyage kernels.  Starting from 2.6.14, it is included in 
stock kernel.  The hostap driver in all voyage kernels has 
PRISM2_NON_VOLATILE_DOWNLOAD enabled to allow non-volatile flashing of 
firmware.  

(http://hostap.epitest.fi/)

3.4 Prism54
======================
Prism54 driver is included in voyage kernel.  Voyage Linux already bundled 
the required firmware in /usr/lib/hotplug/firmware/isl3890.

(http://www.prism54.org)

3.5 Madwifi
======================
Voyage distro is now using madwifi-ng driver as default.  
To configure atheros device, the full interface definition should look like:

    auto ath0
	iface ath0 inet static
	        address 10.1.20.1
	        netmask 255.255.255.0
	        broadcast 10.1.20.255
	        madwifi-base wifi1
	        wireless-mode Master
	        up iwpriv ath0 mode 3
	        up iwconfig ath0 mode master
	        up iwconfig ath0 essid voyage
	        up iwconfig ath0 txpower auto
	        up iwconfig ath0 enc off
	        up iwconfig ath0 rate auto
	        up nat.sh ath0 eth0 "10.1.20.0/24"
	
Please note tht voyage kernel does not comes with madwifi driver anymore.  
Instead, they are available in separate module package.  

madwifi-ng has the default auto create option which will create the VAP device 
in STA mode.  To disable autocreate option, in /etc/modules you can add:

   ath_pci autocreate=none
   
or add a new files /etc/modprobe.d/madwifi with the followng line:

   options ath_pci autocreate=none

(http://www.madwifi.org)

3.5 Bridging 
====================== 
The most common way to WDS bridge wireless (ath0 & ath1), LAN (eth0) as follow:

	auto br0
	iface br0 inet static
	       address 192.168.1.2
	       netmask 255.255.255.0
	       network 192.168.1.0
	       broadcast 192.168.1.255
	       gateway 192.168.1.1
	       bridge_ports eth0 ath0 ath1
	       pre-up wlanconfig ath0 create wlandev wifi0 wlanmode ap
	       pre-up wlanconfig ath1 create wlandev wifi0 wlanmode wds
	       pre-up iwpriv ath0 mode 11g
	       pre-up iwconfig ath0 essid "voyage-wds" channel 1
	       up ifconfig ath0 down ; ifconfig ath0 up # this is a workaround
	       up iwpriv ath1 wds 1
	       up iwpriv ath1 wds_add AA:BB:CC:DD:EE:FF
	       up ifconfig ath1 down ; ifconfig ath1 up # this is a workaround
	       post-down wlanconfig ath0 destroy
	       post-down wlanconfig ath1 destroy
	       
Removing the ath1 (WDS VAP) line, a simple wireless bridge is setup instead.

There are some samples in /etc/network/interface to ease the setup of bridge.

3.6 NoCatSplash
======================
NoCatSplash is included in Voyage Linux, but it is disabled by default.  Edit 
/etc/default/nocatsplash and set ENABLE="true" to enable it.  You will can start 
or stop NoCatSplash by 
	/etc/init.d/nocatsplash [start|stop]
	
Next, you will also need to edit /etc/nocat.conf to setup NoCatSplash properly.  
The most common way is to add the following lines at the end of /etc/nocat.conf:
ExternalDevice  eth0  
InternalDevice  wlan0
LocalNetwork    10.1.10.0/24

Make sure that wlan0 matches the LocalNetwork IP address, you should double-
check that from ifconfig.

3.7 NoCatAuth
======================
NoCatAuth is not included in Voyage Linux.  However, it can be installed by 
running:
	apt-get install nocatauth-gateway
	
Same as NoCatSplash, set ENABLE="true" in /etc/default/nocatauth-gateway to 
enable it in boot up.   Note that nocat.conf is located in 
/etc/nocatauth/gateway and the most common to configure nocatauth-gateway is 
appending the following to nocat.conf:

ExternalDevice  eth0  
InternalDevice  wlan0
LocalNetwork    10.1.10.0/24

You may also want to touch GatewayMode (default=Passive):
GatewayMode [Passive|Captive|Open]

It is better to un-install NoCatSplash by "apt-get remove nocatsplash" and 
"rm /etc/nocat.conf" explicitly to avoid confusion.

As nocatauth requires perl to run, you are required to have a larger disk space 
to run (probably 128MB).  Please also make sure that you can only run either 
NoCatSplash or NoCatAuth, not both.

3.8 Hostapd
======================
To enable hostapd, edit /etc/default/hostapd and add the following line:

RUN_DAEMON="yes"

A sample /etc/hostapd/hostapd.conf is like below:

#bridge=br0   #uncomment this line if bridged.
interface=ath0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=4
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
macaddr_acl=0
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
ssid=voyage-wds
wpa_passphrase=voyage-wds
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
eapol_version=1
 

3.9 wpa-supplicant
======================

If you want to connect to a WPA-PSK enabled AP, first generate the 
/etc/wpa_suppliant.conf.  For example, if the essid and pre-shared key are 
both "voyage-wds", execute the following commands:

# wpa_passphrase voyage-wds voyage-wds>> /etc/wpa_supplicant/wpa_supplicant.conf

Then, edit /etc/wpa_supplicant/wpa_supplicant.conf and adding key_mgmt and 
proto parameters:

network={
    ssid="voyage-wds"
    #psk="voyage-wds"
    psk=76ab47787aa8b560895f617dd351ad9d32faa86232f5366b6554832073d07481
    key_mgmt=WPA-PSK
    proto=WPA
#   proto=RSN	# uncomment for WPA2
}

Edit /etc/network/interfaces and add the following entries:

auto ath0
iface ath0 inet dhcp
        madwifi-base wifi0
        wireless-mode Managed
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

This will create ath0 for wifi0 devices, using the specified wpa_supplicant.conf

3.10 LED Support
======================
Voyage kernel >= 2.6.23 (as in Voyage 0.5) comes with LED driver for WRAP, ALIX 
and Soekris 48xx boards.

To enable LED control, simply load the corresponding kernel module
	# modprobe leds-alix (for ALIX)
	# modprobe leds-wrap (for WRAP)
	# modprobe leds-net48xx (for Soekris 48xx)

LED could then be controlled in /sys/class/leds/:#. For example,

To turn on LED on ALIX:
	# echo 1 > /sys/class/leds/alix\:1/brightness
	# echo 1 > /sys/class/leds/alix\:2/brightness
	# echo 1 > /sys/class/leds/alix\:3/brightness

To turn off LED:
	# echo 0 > /sys/class/leds/alix\:1/brightness
	# echo 0 > /sys/class/leds/alix\:2/brightness
	# echo 0 > /sys/class/leds/alix\:3/brightness

There are more interesting feature for LED control, first load the following 
LED trigger modules:
	# modprobe ledtrig-heartbeat
	# modprobe ledtrig-timer

1. enable LED1 for heartbeat trigger - higher the load, faster it blinks
	# echo heartbeat > /sys/class/leds/alix\:1/trigger

2. enable LED2 to show ide disk activity
	# echo ide-disk > /sys/class/leds/alix\:2/trigger

3. enable LED3 for net device, on eth0 for link, send and receive
	echo netdev > /sys/class/leds/alix\:3/trigger
	echo eth0 > /sys/class/leds/alix\:3/device_name
   	echo "link tx rx" > /sys/class/leds/alix\:3/mode

4. enable LED3 for timer-based control, 1 sec on, 5 sec off
	# echo timer > /sys/class/leds/alix\:3/trigger
	# echo 1000 >  /sys/class/leds/alix\:3/delay_on
	# echo 5000 >  /sys/class/leds/alix\:3/delay_off

to turn off trigger
	# echo none > /sys/class/leds/alix\:1/trigger
	# echo none > /sys/class/leds/alix\:2/trigger
	# echo none > /sys/class/leds/alix\:3/trigger 
	
In 0.5.1, if ALIX and WRAP install profile is selected, heartbeat and ide-disk 
driver will be automatically enabled at boot. To disable this feature, edit
/etc/default/voyage-util and update VOYAGE_LED variable to "NO":
	VOYAGE_LEDS="NO"

4. Board-specific Notes
=======================

4.1 WRAP support
======================

4.1.1 Watchdog for WRAP
=======================
For WRAP board, wd1100 has been ported to kernel 2.6.  If you choose WRAP
option in voyage.update, wd1100 driver will be added to /etc/module.  

To load wd1100 to kernel, run the following commands:

	modprobe wd1100
	echo 0 > /proc/sys/dev/wd/graceful
	echo 30 > /proc/sys/dev/wd/timeout
or
	modprobe wd1100 sysctl_wd_graceful=0 sysctl_wd_timeout=30

This will set timeout value to 30 seconds.  

You will have to restart watchdog userland program to activate watchdog timer
	/etc/init.d/watchdog restart

In addition, you will need to make sure that /etc/watchdog.conf is properly 
configured.  For above watchdog module configuration for WRAP, the following 
settings should do:

watchdog-device = /dev/watchdog
interval	    = 15

And make sure the watchdog device is available:
	
	mknod -m 600 /dev/watchdog c 10 130

You may also add the following line to /etc/modules to enable loading wd1100 
driver at startup: 
	
	wd1100 sysctl_wd_graceful=0 sysctl_wd_timeout=30

To test watchdog module, you can try to stop the watchdog userland program.
	/etc/init.d/watchdog stop
The hardware will restart after 30 seconds at most.

4.1.2 Temperature sensors for WRAP
==================================
If you choose WRAP in voyage.update, the required modules would be added
to /etc/modules.  It adds the following modules in /etc/modules:
	scx200_acb base=0x810,0x820
	lm77

You will find a new driver in /sys/bus/i2c/drivers/lm77/.  To read the 
temperature, 
	cat /sys/class/i2c-adapter/i2c-1/1-0048/temp1_input

Divide the temps by 1000 you will get the temperature reading in Celcius.  
Unfortunately, the temperature reading can not be retrieved using "sensors" util.

Please note that latest WRAP2D/E does not host lm77 sensor anymore.
------------------------------------------
If you are using commodity hardware other than WRAP, the easiest way would be 
installing lm-sensors package by
	
	apt-get install lm-sensors
	
and then run sensors-detect

4.2 ALIX support
======================

4.2.1 Temperature sensors for ALIX.1 and ALIX2/3
================================================
When running Voyage Linux with ALIX, choose ALIX profile in voyage update,
the required modules would be added to /etc/modules.  It adds the following 
modules in /etc/modules:
	w83627hf 
	lm90
	geodewdt
	
ALIX.1 board uses w83627hf driver while ALIX.2/3 uses lm90.  You can get the 
temperature reading from sensors program, or get the values from sysfs:

(for ALIX.1)
	cat /sys/devices/platform/w83627hf.656/temp1_input
	cat /sys/devices/platform/w83627hf.656/temp2_input
	cat /sys/devices/platform/w83627hf.656/temp3_input


You may also use sensors utility to get the temperature reading.  If temp1 
reading may not be ready at boot up, you need to modify w83627hf section in 
/etc/sensors.conf:

chip "w83782d-*" "w83627hf-*"
...
	set sensor1 1
	
Known Issue: the readings returned from w83627hf is not very accurate.  temp1 
reading is too low (~30C) and some offset should be applied.  But temp1 reading 
can move down to 20C if you apply cooling agent on the Geode processor.  temp2 
and temp3 do not move up or down too much at idle or under high low.

(for ALIX.2/3)
	cat /sys/class/i2c-adapter/i2c-0/0-004c/temp1_input
	cat /sys/class/i2c-adapter/i2c-0/0-004c/temp2_input

4.2.2 Geode Watchdog driver for ALIX
====================================
Voyage Linux comes with geodewdt driver that uses the multi-function general 
purpose timer in CS5536 for watchdog timer.  To use geodewdt driver, load 
geodewdt driver or add geodewdt to /etc/modules.  Restart watchdog daemon to 
make it effective.

There was a known issue in Voyage 0.4.1 with ALIX.2/3b boards.  It has been 
identified that Voyage 0.4.1 cannot be booted successfully on ALIX.2/3b board 
with some BIOS versions.  Voyage 0.4.1 kernel has in-kernel, geode-specific 
codes that enables the multi-purpose general function timer (mfgpt), which is 
required for the watchdog driver. The kernel code works properly on Alix.1c 
board. However, the same piece of code may not work on Alix.2/3 and will 
encounter boot hang.

There are three workarounds.
1. Use Voyage 0.4.0 instead of 0.4.1
2. Uses 0.94 or later TinyBIOS with "MFGPT workaround" set to ON
3. Use ALIX.1c instead of ALIX.2/3b board for running Voyage Linux 0.4.1. 

Voyage 0.5 with kernel 2.6.23 comes with a new implementation of mfgpt code 
that no longer requires "MFGPT workaround".  Hence, "MFGPT workaround" 
in TinyBIOS must set to OFF.  Otherwise, same bootup hang will be encountered.  
Care must be taken to turn off "MFGPT workaround" if you upgrade from 0.4.1 to 
0.5.

5. General Issues
======================

  What are the serial port console settings:
	- In 0.3, voyage.update provides options for serial port settings
	- In 0.2 or before, the serial port console must be set at ==> 9600 N 8 1

  Where are the files stored that need to be read-write:
	- Initially they are stored on /ro, at boot time they are copied over to 
	  a dynamic ram drive (limited to 8 Mb) at /rw.
	  Files are then symlinked to the /rw.

  How can I add a program:
	- use "apt-get install " of course

  How can I add a file or install a program from sources (without using apt-get)
  so it comes up every time I boot:
	- /usr/local/sbin/remountrw to allow Read-Write
	- Move the file or the program to it's location in /ro
	- Symlink the file's original location to /rw
	- fastreboot

	EXAMPLE:
	You install "webmin" from sources, the miniserver is in /var/webmin 
	directory, configuration files are in /etc/webmin directory and the start on
	is in /etc/init.d/webmin :

	- move /var/webmin directory to /ro/var/webmin
	- symlink in the original /var to /rw//var/webmin
	- create a symlink in /etc/rcS.d/ to start automagically as last one at boot time

	#remountrw
	#mv /var/webmin /ro/var/webmin
	#ln -s /rw//var/webmin /var/webmin
	#ln -s /etc/init.d/webmin /etc/rcS.d/S56webmin
	#fastreboot

Please find the community wiki (wike.voyage.hk) for more information

6. Support
======================

Wiki Documentation - http://wiki.voyage.hk

6.1 Mailing Lists
======================
A mailing list is setup for discussing supporting and development issues for 
Voyage Linux:

To subscribe, send an empty message to :
	voyage-linux-subscribe@list.voyage.hk 
	
To unsubscribe, send an empty message to :
	voyage-linux-unsubscribe@list.voyage.hk 
	
To post a message, send mail to :
	voyage-linux@list.voyage.hk 
	
The list archives can be viewed and searched at :
	http://list.voyage.hk/pipermail/voyage-linux/

6.2 Development (0.6 or later)
======================
Starting from 0.6.0, Voyage Linux is built by Debian Live.  You can find
the subversion repository for Debian Live config in:

http://svn.voyage.hk/repos/voyage/trunk/voyage-live

Getting start to build Voyage Linux under Debian r5.0(lenny) or Voyage SDK:
# apt-get install live-helper
# svn co http://svn.voyage.hk/repos/voyage/trunk/voyage-live voyage-live
# cd voyage-live
# ./build.sh iso 	<= this will build the Live CD
# ./build.sh tar 	<= this will build .tar.bz2 distro
# ./build.sh sdk 	<= this will build sdk Live CD

6.3 Development (0.5 or before)
======================
Voyage Linux is completely buildable through customization framework. You can 
access the CVS Web Repository at: 
	http://cvs.voyage.hk/cgi-bin/viewcvs.cgi/
	
Currently, only voyage-custom project is under development.

There is no plan to provide public access for the CVS repository.  Only 
Web access is available in this moment. However, to encourage development 
nightly tarball is accessible to everyone at:
	http://www.voyage.hk/download/nightly/
	
If you have made chanages to Voyage Linux and the supporting scripts, you 
are encouraged to send all patches to voyage-linux@list.voyage.hk

Voyage includes customization script to allow customizing voyage distro. 
It allows system integrator or interest parties to customize voyage linux 
to roll out their own version based on voyage.

*** customization script only works for Voyage 0.3-0.5 versions.  Support for
0.6 is not yet verified and tested.

voyage-custom.sh syntax:

	voyage-custom.sh  

For example,

	voyage-custom.sh  /myproj

This will generate the customization distro called voyage-myproj in the 
current directory .

To build the sample "voyage-mesh" distro using customization script:

	/usr/share/voyage-custom/voyage-custom.sh \
		 \
		/usr/share/voyage-custom/src/mesh

Please note that the script is very experimental and is not tested heavily.  
It is also assumed that you run the script under Debian.  So, it may not work 
under other Linux distribution.  Use it at your own risk!

For more on how to make a customization disto, please read:
	/usr/share/voyage-custom/src/README
or
	http://wiki.voyage.hk/dokuwiki/doku.php?id=customization
	
The customization scripts can also be found in CVS and nightly tarball as well.

6.4 Known Issues
======================
- when running madwifi driver with AP mode, stuck beacon problem may occur:
    wifi0: ath_bstuck_tasklet: Stuck beacon; resetting (beacon miss )
  When this error happens, sometime it is not recoverable.  After some test,
  it is found that the most stable vesion is 0.9.4-rc2, fallback by:
 # wget http://www.voyage.hk/dists/0.6/madwifi/madwifi-modules-2.6.26-486-voyage_0.9.4~rc2-1+6.0-3_i386.deb
 # apt-get install madwifi-modules-2.6.26-486-voyage_0.9.4~rc2-1+6.0-3_i386.deb
  
- If Voyage cannot boot complaining rootfs can't be located, tty to added the 
following to the kernel boot parameters:
	"ide=nodma all_generic_ide"

- Sometimes, grub boot screen may not appear after BIOS post if the boot
partition is too large (~4GB).  Creating a smaller boot partition (512MB) and 
install Voyage to it may solve this issue.

- There have been repeatedly reported problem for lilo installation problem
while voyage.update is installing lilo bootloader to the flash media.  This
problem should have be fixed in Voyage 0.5.  If you encounter a similar 
problem again, please report to voyage-linux mailing list.

- In case you encountered locale and dialog complain when installing package
via "apt-get install", you can carry out the following commands to get rid
of the error message:
	apt-get install dialog apt-utils

- There is a problem reported when installing voyage over usb device using ub 
kernel module.  Moreover, it is assumed that voyage is installed in /dev/hda1
of the target platform.  

6.5 Live CD and PXE boot
======================
Voyage Live CD is now available for every stable voyage release:
	http://www.voyage.hk/download/ISO/
	
Daily build Live CD is also available at:
	http://www.voyage.hk/download/ISO/voyage-current.iso

You can run the Live CD under VMWare for testing purpose.  In addition, it
can act as a installation CD and PXE boot server as well.

You can find README.live-cd and README.pxe from the root direcory of Live CD.
	
6.6 TODOs
======================
1. light-weighted web server (thttpd + php) for system configuration
2. further reducing in size
3. scripts for setting up network configuration

7. Appendix
======================

7.1 Release History
======================
	Voyage 0.6
    * [2010-02-17] voyage-0.6.5
    * [2009-07-07] voyage-0.6.2
    * [2009-02-17] voyage-0.6.1
    * [2008-12-30] voyage-0.6.0
    
	Voyage 0.5
    * [2008-06-29] voyage-0.5.2
    * [2008-06-23] voyage-0.5.1
    * [2008-02-29] voyage-0.5.0
    
    Voyage 0.4
    * [2007-07-23] voyage-0.4.1
    * [2007-06-23] voyage-0.4.0
    
    Voyage 0.3
    * [2007-04-14] voyage-0.3.1
    * [2007-03-20] voyage-0.3
    * [2007-01-28] voyage-0.3pre3
    * [2006-12-05] voyage-0.3pre2
    * [2006-11-17] voyage-0.3pre1
    
    Voyage 0.2
    * [2006-04-05] voyage-0.2
    * [2006-02-25] voyage-0.2pre4
    * [2006-02-05] voyage-0.2pre3
    * [2006-01-06] voyage-0.2pre2
    * [2005-07-21] voyage-0.2pre1
    
    Voyage 0.1
    * [2005-07-07] voyage-0.1sarge
    * [2005-02-14] voyage-0.1
    * [2005-02-01] voyage-0.1pre5
    * [2005-01-19] voyage-0.1pre4
    * [2005-01-13] voyage-0.1pre3
    * [2005-01-06] voyage-0.1pre2
    * [2005-01-02] voyage-0.1pre1

7.1 Corresponding Debian and Kernel release
======================
    * Lenny, 2.6.30 - Voyage 0.6.5
	* Lenny, 2.6.26 - Voyage 0.6
	* Etch,  2.6.23 - Voyage 0.5
	* Etch,  2.6.20 - Voyage 0.4
	* Etch,  2.6.17 - Voyage 0.3
	* Sarge, 2.6.15 - Voyage 0.2
	* Sarge, 2.6.8 - Voyage 0.1
	
======================
Last Updated: 20100217
======================

Voyage ONE 0.5.2 released

Voyage ONE was an un-released special edition of Voyage Linux which was developed in 2008. It is aimed at providing most usable server software and make Voyage Linux as a complete, usable product for any embedded x86 platform.

We now decided to make it available for public download.

voyage-one-0.5.2.tar.bz2 [2009-11-23]

Voyage ONE is based on Voyage Linux 0.5.2 version and it includes the following features:

  • VoIP : asterisk zaptel
  • VPN and tunneling : vtun openvpn stunnel
  • Meshing : AWDS batmand olsrd
  • Others: aprtables iperf usbutils gpsd ntp quagga snmpd

To access asterisk-gui,

    http://<voyage IP>:8088/asterisk/static/index.html
    username: admin
    password: voyage

We would like hear your comments about Voyage ONE and discuss its possibilities.
In future, we will continue to develop Voyage ONE based on latest Voyage Linux.
Please post your feedback to the community mailing-list.

Donation via PayPal

Donate to express appreciation and encourage further work on this project:


- credit card/PayPal balance