Verison 1.0.3 Release
Based on Buildbotics 0.4.14
This commit is contained in:
110
scripts/setup_rpi.sh
Normal file
110
scripts/setup_rpi.sh
Normal file
@@ -0,0 +1,110 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
export LC_ALL=C
|
||||
cd /mnt/host
|
||||
|
||||
# Update the system
|
||||
apt-get update
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
# Install packages
|
||||
apt-get install -y avahi-daemon avrdude minicom python3-pip python3-smbus \
|
||||
i2c-tools python3-rpi.gpio libjpeg8 wiringpi dnsmasq hostapd \
|
||||
iptables-persistent chromium-browser xorg rpd-plym-splash samba
|
||||
pip3 install --upgrade tornado sockjs-tornado pyserial
|
||||
|
||||
# Clean
|
||||
apt-get autoclean
|
||||
|
||||
# Enable avahi
|
||||
update-rc.d avahi-daemon defaults
|
||||
|
||||
# Change hostname
|
||||
sed -i "s/raspberrypi/bbctrl/" /etc/hosts /etc/hostname
|
||||
|
||||
# Create bbmc user
|
||||
useradd -m -p $(openssl passwd -1 buildbotics) -s /bin/bash bbmc
|
||||
sed -i 's/pi$/pi,bbmc/g' /etc/group
|
||||
passwd -l pi
|
||||
|
||||
# Disable console on serial port
|
||||
sed -i 's/console=[a-zA-Z0-9]*,115200 \?//' /boot/cmdline.txt
|
||||
|
||||
# Disable i2c HAT ID probe
|
||||
echo -n " bcm2708.vc_i2c_override=1" >> /boot/cmdline.txt
|
||||
|
||||
# Enable I2C
|
||||
sed -i 's/#dtparam=i2c/dtparam=i2c/' /boot/config.txt
|
||||
#echo 'dtparam=i2c_vc=on' >> /boot/config.txt
|
||||
echo i2c-bcm2708 >> /etc/modules
|
||||
echo i2c-dev >> /etc/modules
|
||||
|
||||
# Install bbctrl w/ init.d script
|
||||
cp bbctrl.init.d /etc/init.d/bbctrl
|
||||
chmod +x /etc/init.d/bbctrl
|
||||
update-rc.d bbctrl defaults
|
||||
|
||||
# Disable Pi 3 USART BlueTooth swap
|
||||
echo -e "\ndtoverlay=pi3-disable-bt" >> /boot/config.txt
|
||||
rm -f /etc/systemd/system/multi-user.target.wants/hciuart.service
|
||||
|
||||
# Install hawkeye
|
||||
dpkg -i hawkeye_0.6_armhf.deb
|
||||
sed -i 's/localhost/0.0.0.0/' /etc/hawkeye/hawkeye.conf
|
||||
echo 'ACTION=="add", KERNEL=="video0", RUN+="/usr/sbin/service hawkeye restart"' > /etc/udev/rules.d/50-hawkeye.rules
|
||||
adduser hawkeye video
|
||||
|
||||
# Disable HDMI to save power and remount /boot read-only
|
||||
sed -i 's/^exit 0$//' /etc/rc.local
|
||||
echo "mount -o remount,ro /boot" >> /etc/rc.local
|
||||
echo "gpio mode 27 alt3" >> /etc/rc.local # Enable serial CTS on pin 27
|
||||
|
||||
# Dynamic clock to save power
|
||||
echo -e "\n# Dynamic clock\nnohz=on" >> /boot/config.txt
|
||||
|
||||
# Shave 2 sec off of boot time
|
||||
echo -e "\n# Faster boot\ndtparam=sd_overclock=100" >> /boot/config.txt
|
||||
|
||||
# Enable ssh
|
||||
touch /boot/ssh
|
||||
|
||||
# Fix boot
|
||||
sed -i 's/ root=[^ ]* / root=\/dev\/mmcblk0p2/' /boot/cmdline.txt
|
||||
sed -i 's/^PARTUUID=.*\/boot/\/dev\/mmcblk0p1 \/boot/' /etc/fstab
|
||||
sed -i 's/^PARTUUID=.*\//\/dev\/mmcblk0p2 \//' /etc/fstab
|
||||
|
||||
# Enable browser in xorg
|
||||
sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.config
|
||||
echo "sudo -u pi startx" >> /etc/rc.local
|
||||
cp /mnt/host/xinitrc /home/pi/.xinitrc
|
||||
cp /mnt/host/ratpoisonrc /home/pi/.ratpoisonrc
|
||||
cp /mnt/host/xorg.conf /etc/X11/
|
||||
|
||||
# Set screen resolution
|
||||
sed -i 's/^#disable_overscan/disable_overscan/' /boot/config.txt
|
||||
sed -i 's/^#framebuffer_/framebuffer_/' /boot/config.txt
|
||||
|
||||
# Boot splash
|
||||
mkdir -p /usr/share/plymouth/themes/buildbotics/
|
||||
cp -av /mnt/host/splash/* /usr/share/plymouth/themes/buildbotics/
|
||||
echo -n " quiet splash logo.nologo plymouth.ignore-serial-consoles" >> /boot/cmdline.txt
|
||||
plymouth-set-default-theme -R buildbotics
|
||||
|
||||
# Samba
|
||||
# TODO install custom smb.conf
|
||||
smbpasswd -a bbmc
|
||||
|
||||
# Install bbctrl
|
||||
tar xf /mnt/host/bbctrl-*.tar.bz2
|
||||
cd $(basename bbctrl-*.tar.bz2 .tar.bz2)
|
||||
./setup.py install
|
||||
cd ..
|
||||
rm -rf $(basename bbctrl-*.tar.bz2 .tar.bz2)
|
||||
|
||||
|
||||
# Allow any user to shutdown
|
||||
chmod +s /sbin/{halt,reboot,shutdown,poweroff}
|
||||
|
||||
# Clean up
|
||||
apt-get autoremove -y
|
||||
apt-get autoclean -y
|
||||
Reference in New Issue
Block a user