From d6e40a9353c0270f28f91130b6cae3f3e7dcfa5c Mon Sep 17 00:00:00 2001 From: Brendan Date: Wed, 4 Mar 2015 03:10:04 -0700 Subject: [PATCH] adds setup.sh (untested) --- setup.sh | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 setup.sh diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..af953f0 --- /dev/null +++ b/setup.sh @@ -0,0 +1,130 @@ +# run to set up raspberry pi +# based on access point setup from adafruit.com + +# must run as root (sudo) + +apt-get update +apt-get upgrade + +######################### +# Wireless Access-Point # +######################### + +apt-get install hostapd isc-dhcp-server + +# modify /etc/dhcp/dhcpd.conf +sed -i.temp 's/option domain-name "example.org";/#option domain-name "example.org";/' /etc/dhcp/dhcpd.conf +sed -i.temp 's/option domain-name-servers ns1.example.org, ns2.example.org/#option domain-name-servers ns1.example.org, ns2.example.org/' /etc/dhcp/dhcpd.conf +sed -i.temp 's/# If this DHCP server is the official DHCP server for the local\n# network, the authoritative directive should be uncommented.\n#authoritative;/# If this DHCP server is the official DHCP server for the local\n# network, the authoritative directive should be uncommented.\nauthoritative;/' /etc/dhcp/dhcpd.conf +cat "subnet 192.168.42.0 netmask 255.255.255.0 {\nrange 192.168.42.10 192.168.42.50;\noption broadcast-address 192.168.42.255;\noption routers 192.168.42.1;\ndefault-lease-time 600;\nmax-lease-time 7200;\noption domain-name "local";\noption domain-name-servers 8.8.8.8, 8.8.4.4;\n}" >> /etc/dhcp/dhcpd.conf +rm /etc/dhcp/dhcpd.conf.temp + +# modify /etc/default/isc-dhcp-server +sed -i.temp 's/INTERFACES=""/INTERFACES="wlan0"/' /etc/default/isc-dhcp-server +rm /etc/default/isc-dhcp-server.temp + +# shutdown wlan0 if it's running +ifdown wlan0 + +# modify /etc/network/interfaces +echo "auto lo\n\niface lo inet loopback\niface eth0 inet dhcp\n\nallow-hotplug wlan0\n\niface wlan0 inet static\naddress 192.168.42.1\nnetmask 255.255.255.0" > /etc/network/interfaces + +# assign IP address to wifi adapter +ifconfig wlan0 192.168.42.1 + +# create /etc/hostapd/hostapd.conf +echo "interface=wlan0\ndriver=rtl871xdrv\nssid=Pi_AP\nhw_mode=g\nchannel=6\nmacaddr_acl=0\nauth_algs=1\nignore_broadcast_ssid=0\nwpa=2\nwpa_passphrase=Raspberry\nwpa_key_mgmt=WPA-PSK\nwpa_pairwise=TKIP\nrsn_pairwise=CCMP" > /etc/hostapd/hostapd.conf + +# modify /etc/default/hostapd +sed -i.temp 's/#DAEMON_CONF=""/DAEMON_CONF="/etc/hostapd/hostapd.conf"/' /etc/default/hostapd +rm /etc/default/hostapd.temp + +# modify /etc/sysctl.conf +cat "net.ipv4.ip_forward=1" >> /etc/sysctl.conf + +# activate NAT +sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" + +# set up network translation between eth0 and wlan0 +iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE +iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT +iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT + +# save these settings +sh -c "iptables-save > /etc/iptables.ipv4.nat" + +# modify /etc/network/interfaces +cat "up iptables-restore < /etc/iptables.ipv4.nat" >> /etc/network/interfaces + +# update hostapd +wget http://adafruitdownload.s3.amazonaws.com/adafruit_hostapd_14128.zip +unzip adafruit_hostapd_14128.zip +mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG +mv hostapd /usr/sbin +chmod 755 /usr/sbin/hostapd + +# set it up to start when the pi starts +service hostapd start +service isc-dhcp-server start +update-rc.d hostapd enable +update-rc.d isc-dhcp-server enable + +# remove WPA-Supplicant +mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/ + +#################### +# WiringPi Library # +#################### + +# install git +apt-get install git-core + +# clone the repository +git clone git://git.drogon.net/wiringPi +./wiringPi/build + +# test wiringPi +echo 'testing wiringPi...' +gpio -v +gpio readall + +########################## +# Disable Serial Console # +########################## + +# modify /boot/cmdline.txt +sed -i.temp 's/[^\s]*ttyAMA0[^\s]*/ /g' /boot/cmdline.txt +rm /boot/cmdline.txt.temp + +#modify /etc/inittab +sed -i.temp 's/T0:23:respawn:\/sbin\/getty -L ttyAMA0 115200 vt100/#T0:23:respawn:\/sbin\/getty -L ttyAMA0 115200 vt100/' /etc/inittab + +############## +# Enable SSH # +############## + +update-rc.d ssh enable +invoke-rc.d ssh start + +############## +# Enable i2c # +############## + +apt-get install i2c-tools + +# modify /etc/modules +cat 'i2c-bcm2708\ni2c-dev' >> /etc/modules + +# modify /etc/modprobe.d/raspi-blacklist.conf +sed -i.temp 's/blacklist spi-bcm2708/#blacklist spi-bcm2708/' /etc/modprobe.d/raspi-blacklist.conf +sed -i.temp 's/blacklist i2c-bcm2708/#blacklist i2c-bcm2708/' /etc/modprobe.d/raspi-blacklist.conf +rm /etc/modprobe.d/raspi-blacklist.conf.temp + +# modify /boot/config.txt +cat 'dtparam=i2c1=on\ndtparam=i2c_arm=on' >> /boot/config.txt + +########## +# reboot # +########## + +reboot \ No newline at end of file