I decided to put this here just as much as a reminder to myself as for the benefit of others. :-)
The CC3200 is a pretty neat new WiFi chip from Texas Instruments: It contains two CPU's: one running the TCP/IP and WiFi stacks and the other one (an ARM Cortex-M4F) is available to the user to run his application. When I tried to figure out if development was supported on a Linux host, I got mixed messages. On the one hand, TI's CCS IDE is available for Linux, but on the other hand, the CS3200 SDK comes as a Windows executable.
I was trying to set up remote access to the LAN of an OpenVPN client, by configuring the OpenVPN client as a gateway. There are plenty guides online on how to do this, such as this one. In my setup, I was using a Netgear router, with a Raspberry Pi connected to it acting as the OpenVPN client and gateway for the LAN. I followed the setup carefully, but was frustrated to find it didn't work. The VPN worked fine: I could access the Raspberry Pi remotely, both on its VPN IP and its LAN IP addresses. Still, I could not gain access to the LAN it was connected to, even though I had set up a static route in the router to send all VPN traffic to the Raspberry Pi.
After breaking my head over this for a long time and getting very frustrated, I finally figured out what was going on. I needed to enable IP forwarding on the Raspberry Pi! To do this in such a way it is configured correctly at boot, uncomment the following line in /etc/sysctl.conf:
That's it! After that, my setup worked beautifully. Hopefully this will save someone else some time and frustration. :-)
In this post I'll detail some things I ran into when trying to set up a development environment for Freescale's Kinetis parts on my Linux machine. There is some excellent information scattered around the Internet, this post just puts it all together for my own future reference and in case anyone else may find it useful.
Being a geek and all that, I try to keep up with the latest developments in Linux land. One new development as of late is that there are two new desktop shells on the block: Gnome Shell and Ubuntu's Unity. Personally, I've fallen in love with the way Gnome Shell works, but Unity seems to rub me completely the wrong way. I had previously switched my Ubuntu install to Gnome 2 (to avoid Unity), but with the 11.10 release, Gnome 2 was removed and Gnome 3 (with Shell) was available in the repositories, so I decided to upgrade.
A couple of days ago, I saw someone wheeling a new copier/printer/scanner into our office. Turned out it ended up here in Engineering to replace the Canon unit that used to be here. I never had managed to get the Canon to work on my Linux laptop, but this new Ricoh unit caught my attention because of the "Adobe Postscript 3" decal on it. If this thing understood Postscript, there was a chance... So I decided to give it a try.
I keep noticing in forum comments that many people using Linux seem to hate Pulseaudio, the default audio subsystem in most modern Linux distributions. I seem to be in the minority with my sentiment toward it, but I actually think Pulseaudio has been the best thing to happen to audio in Linux in a long time. Before Pulseaudio, I was always having problems with one program grabbing the audio device and other programs not being able to play sounds. How stupid is that? I know that there is some kind of mixer plugin for ALSA, but it was hardly ever working or set up on distributions I tried before Pulseaudio was adopted. Pulseaudio finally provided a sane way to share audio devices and mix audio streams so several programs could have access to audio at the same time, including the ability to set audio levels for each program separately.