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
sudo apt-get install u-boot-tools g++-arm-linux-gnueabi
Download the kernel
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
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
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.
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:
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.
deb [arch=armel] http://mv.ezproxy.com.ezproxyberklee.flo.org/debian wheezy-backports non-free deb-src http://mv.ezproxy.com.ezproxyberklee.flo.org/debian wheezy-backports non-free
Then install the package:
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:
apt-get install isc-dhcp-server