Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Kernel Preparation

For wifi access point mode support, you'll need to use the 3.6 kernel version.  A number of changes were made to the mwifiex driver between versions 3.5 and 3.6.  Client mode works fine in 3.5, but hostapd will throw an error.  

Install dependencies

Code Block
sudo apt-get install u-boot-tools g++-arm-linux-gnueabi

Download the kernel

Code Block
cd overo
mkdir kernel-dev
cd kernel-dev
git clone git://github.com/gumstix/linux.git linux
cd linux
git checkout omap-3.6

The default configuration can be found on gumstix's github page: https://github.com/gumstix/Gumstix-YoctoProject-Repo/wiki.  Copy the file and rename it as ".config" in ~/overo/kernel-dev/linux

Code Block
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig

Current modifications:

  • disable touchscreen input in driver -> input device support
  • disable all of driver -> graphics support

Build the kernel and modules

Code Block
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage -j2
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules -j2

The resulting uImage should be built in arch/arm/boot.  Modules will be installed by the script that makes the SD card.  

UBoot

Get the omap-v2014.10 u-boot branch from gumstix github.  

Code Block
cd ~/overo
mkdir uboot-dev
cd uboot-dev
git clone git://github.com/gumstix/u-boot.git u-boot
cd u-boot
git checkout omap-v2014.10

To change the pin mux, modify overo.h in board/overo.  The build:

Code Block
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap3_overo_config
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- all -j4

Both MLO and u-boot will be built in the top u-boot directory.

Getting Wifi working in debian

The package firmware-libertas is required from wheezy backports for both client and access point modes.  Add the following lines to /etc/apt/sources.list.d/multistrap-wheezy.list in the rootfs.  

Code Block
deb [arch=armel] http://debian.lcs.mit.edu/debian wheezy-backports non-free
deb-src http://debian.lcs.mit.edu/debian wheezy-backports non-free

Then install the package:

Code Block
apt-get update
apt-get install firmware-libertas

This should be sufficient to get wifi client mode working.  Follow the debian wifi howto instructions for embedding psk info into the /etc/network/interfaces file: https://wiki.debian.org/WiFi/HowToUse

To get the gumstix functioning as an access point we'll need to follow some additional steps as documented here: http://www.jumpnowtek.com/gumstix-linux/Duovero-Access-Point.html

Download the latest release of hostapd from http://w1.fi/hostapd/.  Copy the provided defconfig to .config and build.  You may need to install some additional dependencies such as libnl-dev.  If you need a dhcp server, install dhcpd using apt-get:

Code Block
apt-get install isc-dhcp-server

Slow SSH

With the gumstix in AP mode you may find ssh slow to provide a password prompt.  This is likely because DNS lookup is timing out without internet access / a DNS server available.  To disable reverse DNS lookup at the line "UseDNS no" to /etc/ssh/sshd_config.  

Power Consumption

Powered at 5V via 40-pin header on tobi board

Wifi AP mode and BT on, idle 400mA,  450mA under load
Stop hostapd -> idle drops to 292mA
rfkill does not seem to affect power usage
turning off bluetooth via gpio did not affect power usage
turning off wifi via gpio saw ~6mA drop in power usage
wifi in client mode only (ap off), see ~300mA just connected, 430mA when downloading a large file

earthstorm shows similar idle power consumption to ironstorm when power is turned off
on a summit expansion board (like tobi but no ethernet), idle power consumption is reduced to just 130mA 

In summary:

  • With WiFi off, idle power consumption is ~300mA
  • 100% CPU use increases power consumption by ~50mA
  • WiFi draws up to ~100mA (always 100mA in AP mode, varies with distance and usage in client mode)
  • Further reductions in power use may be possible, but will require more work (possibly a custom kernel or u-boot modifications to disable the hdmi controller, etc) 

Duovero tests with no Wifi
idles around 230mA - not sure why this is so much lower than the overo,
jumps to around 500mA at full CPU usage, 380mA to fully utilize one core