#!/bin/sh
set -ex

# This script downloads and installs a USB-FET version of
# msp430-gdbproxy and a patched 2.6.16 kernel to go with it.
#
# This might not be the most convenient way for you to go about
# getting msp430-gdbproxy going, but it worked for me on a
# Fedora Core 3 machine.
#
# Ben Williamson <ben.williamson@greyinnovation.com>
# Tue Nov 28 10:04:07 EST 2006

mkdir -p usbfet
wget -P usbfet -c http://www.soft-switch.org/downloads/mspgcc/test/libHIL.so
wget -P usbfet -c http://www.soft-switch.org/downloads/mspgcc/test/libMSP430.so
wget -P usbfet -c http://www.soft-switch.org/downloads/mspgcc/test/msp430-gdbproxy
wget -P usbfet -c http://www.soft-switch.org/downloads/mspgcc/test/ti_usb_3410_5052_FC4_FC5.tgz
wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2

cp gdbinit ~/.gdbinit
sudo echo "Make sure you are in /etc/sudoers"

modprobe_line='options ti_usb_3410_5052 vendor_3410=0x451 product_3410=0xF430'

grep -v "$modprobe_line" /etc/modprobe.conf > /tmp/modprobe.conf
echo "$modprobe_line" >> /tmp/modprobe.conf
sudo sh -c 'cat /tmp/modprobe.conf > /etc/modprobe.conf'
rm /tmp/modprobe.conf

permissions_line='ttyUSB*:root:uucp:0666'

grep -v "ttyUSB" /etc/udev/permissions.d/50-udev.permissions \
        > /tmp/50-udev.permissions
echo "$permissions_line" >> /tmp/50-udev.permissions
sudo sh -c 'cat /tmp/50-udev.permissions > /etc/udev/permissions.d/50-udev.permissions'
rm /tmp/50-udev.permissions

sudo cp usbfet/lib*.so /usr/lib/
sudo cp usbfet/msp430-gdbproxy /usr/bin/


rm -rf build
mkdir build
cd build

tar zxf ../usbfet/ti_usb_3410_5052_FC4_FC5.tgz

sudo cp build/ti_usb_3410_5052_FC4_FC5/FC4/hotplug_ti_usb_3410_5052  \
    /etc/hotplug/usb/ti_usb_3410_5052

tar jxf ../linux-2.6.16.tar.bz2

rm ti_usb_3410_5052_FC4_FC5/ti_usb_3410_5052.mod.c
cp ti_usb_3410_5052_FC4_FC5/*.[ch] linux-2.6.16/drivers/usb/serial/
cp ../linux-2.6.16-.config linux-2.6.16/.config

cd linux-2.6.16
make oldconfig
make
make modules
sudo make modules_install
sudo make install

echo "Now edit /etc/grub.conf and reboot."
