2016-04-11 06:29:41 +00:00
|
|
|
#!/bin/bash -e
|
|
|
|
|
2018-03-02 20:08:24 +00:00
|
|
|
install -m 755 files/resize2fs_once "${ROOTFS_DIR}/etc/init.d/"
|
2016-04-11 06:29:41 +00:00
|
|
|
|
2018-03-02 20:08:24 +00:00
|
|
|
install -d "${ROOTFS_DIR}/etc/systemd/system/rc-local.service.d"
|
|
|
|
install -m 644 files/ttyoutput.conf "${ROOTFS_DIR}/etc/systemd/system/rc-local.service.d/"
|
2016-04-11 06:29:41 +00:00
|
|
|
|
2018-03-02 20:08:24 +00:00
|
|
|
install -m 644 files/50raspi "${ROOTFS_DIR}/etc/apt/apt.conf.d/"
|
2016-04-11 06:29:41 +00:00
|
|
|
|
2018-03-02 20:08:24 +00:00
|
|
|
install -m 644 files/console-setup "${ROOTFS_DIR}/etc/default/"
|
2016-04-11 06:29:41 +00:00
|
|
|
|
2018-03-02 20:08:24 +00:00
|
|
|
install -m 755 files/rc.local "${ROOTFS_DIR}/etc/"
|
2017-07-17 13:15:48 +00:00
|
|
|
|
2018-12-29 04:47:31 +00:00
|
|
|
# enable pi camera
|
|
|
|
install -m 644 files/picamera.conf "${ROOTFS_DIR}/etc/modules-load.d/"
|
|
|
|
|
2018-11-16 08:48:44 +00:00
|
|
|
# disable wireless
|
|
|
|
install -m 644 files/raspi-blacklist.conf "${ROOTFS_DIR}/etc/modprobe.d/"
|
|
|
|
|
|
|
|
install -m 644 files/frc.json "${ROOTFS_DIR}/boot/"
|
|
|
|
|
2018-12-01 03:58:54 +00:00
|
|
|
install -m 755 extfiles/setuidgids "${ROOTFS_DIR}/usr/local/bin/"
|
|
|
|
|
2018-11-30 10:40:39 +00:00
|
|
|
cat extfiles/jdk_11.0.1-strip.tar.gz | sh -c "mkdir -p ${ROOTFS_DIR}/usr/lib/jvm && cd ${ROOTFS_DIR}/usr/lib/jvm/ && tar xzf - --exclude=\*.diz --exclude=src.zip --transform=s/^jdk/jdk-11.0.1/"
|
2018-11-16 08:48:44 +00:00
|
|
|
cp files/jdk-11.0.1.jinfo "${ROOTFS_DIR}/usr/lib/jvm/.jdk-11.0.1.jinfo"
|
|
|
|
|
|
|
|
on_chroot << EOF
|
|
|
|
cd /usr/lib/jvm
|
|
|
|
grep /usr/lib/jvm .jdk-11.0.1.jinfo | awk '{ print "update-alternatives --install /usr/bin/" \$2 " " \$2 " " \$3 " 2"; }' | bash
|
|
|
|
update-java-alternatives -s jdk-11.0.1
|
|
|
|
EOF
|
|
|
|
|
|
|
|
on_chroot << EOF
|
|
|
|
rm -rf /var/lib/dhcp/ /var/run /var/spool /var/lock
|
|
|
|
ln -s /tmp /var/lib/dhcp
|
|
|
|
ln -s /run /var/run
|
|
|
|
ln -s /tmp /var/spool
|
|
|
|
ln -s /tmp /var/lock
|
2018-11-30 10:40:39 +00:00
|
|
|
sed -i -e 's/d \/var\/spool/#d \/var\/spool/' /usr/lib/tmpfiles.d/var.conf
|
2018-11-16 08:48:44 +00:00
|
|
|
sed -i -e 's/\/var\/lib\/ntp/\/var\/tmp/' /etc/ntp.conf
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat files/bash.bashrc >> "${ROOTFS_DIR}/etc/bash.bashrc"
|
|
|
|
|
|
|
|
cat files/bash.logout >> "${ROOTFS_DIR}/etc/bash.bash_logout"
|
|
|
|
|
2016-11-14 23:55:45 +00:00
|
|
|
on_chroot << EOF
|
2018-11-16 08:48:44 +00:00
|
|
|
systemctl enable ssh
|
2016-04-11 06:29:41 +00:00
|
|
|
systemctl enable regenerate_ssh_host_keys
|
2017-09-07 21:47:35 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
if [ "${USE_QEMU}" = "1" ]; then
|
|
|
|
echo "enter QEMU mode"
|
2018-03-02 20:08:24 +00:00
|
|
|
install -m 644 files/90-qemu.rules "${ROOTFS_DIR}/etc/udev/rules.d/"
|
2017-09-07 21:47:35 +00:00
|
|
|
on_chroot << EOF
|
|
|
|
systemctl disable resize2fs_once
|
|
|
|
EOF
|
|
|
|
echo "leaving QEMU mode"
|
|
|
|
else
|
|
|
|
on_chroot << EOF
|
2016-04-11 06:29:41 +00:00
|
|
|
systemctl enable resize2fs_once
|
|
|
|
EOF
|
2017-09-07 21:47:35 +00:00
|
|
|
fi
|
2016-04-11 06:29:41 +00:00
|
|
|
|
2018-12-09 22:52:03 +00:00
|
|
|
on_chroot <<EOF
|
2016-04-11 06:29:41 +00:00
|
|
|
for GRP in input spi i2c gpio; do
|
2018-12-09 22:52:03 +00:00
|
|
|
groupadd -f -r "\$GRP"
|
2016-04-11 06:29:41 +00:00
|
|
|
done
|
|
|
|
for GRP in adm dialout cdrom audio users sudo video games plugdev input gpio spi i2c netdev; do
|
2018-12-09 22:52:03 +00:00
|
|
|
adduser $FIRST_USER_NAME \$GRP
|
2016-04-11 06:29:41 +00:00
|
|
|
done
|
|
|
|
EOF
|
|
|
|
|
2016-11-14 23:55:45 +00:00
|
|
|
on_chroot << EOF
|
2016-04-11 06:29:41 +00:00
|
|
|
setupcon --force --save-only -v
|
|
|
|
EOF
|
|
|
|
|
2016-11-14 23:55:45 +00:00
|
|
|
on_chroot << EOF
|
2016-04-11 06:29:41 +00:00
|
|
|
usermod --pass='*' root
|
|
|
|
EOF
|
|
|
|
|
2018-11-30 10:40:39 +00:00
|
|
|
install -m 644 files/ld.so.conf.d/*.conf "${ROOTFS_DIR}/etc/ld.so.conf.d/"
|
|
|
|
|
2018-12-30 10:07:22 +00:00
|
|
|
install -v -d "${ROOTFS_DIR}/usr/local/frc/bin"
|
|
|
|
|
|
|
|
cat extfiles/wpilib-bin.tar.gz | sh -c 'cd ${ROOTFS_DIR}/usr/local/frc/bin/ && tar xzf -'
|
|
|
|
|
2018-11-30 10:40:39 +00:00
|
|
|
install -v -d "${ROOTFS_DIR}/usr/local/frc/lib"
|
|
|
|
|
2018-12-30 10:07:22 +00:00
|
|
|
cat extfiles/libopencv-debug.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
|
2018-11-30 10:40:39 +00:00
|
|
|
cat extfiles/libopencv.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
|
|
|
|
|
|
|
|
install -m 755 extfiles/cv2.*.so "${ROOTFS_DIR}/usr/local/lib/python3.5/dist-packages/"
|
|
|
|
|
2018-12-01 05:05:14 +00:00
|
|
|
cat extfiles/pynetworktables.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/lib/python3.5/dist-packages/ && tar xzf -"
|
|
|
|
cat extfiles/robotpy-cscore.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/lib/python3.5/dist-packages/ && tar xzf -"
|
|
|
|
install -m 755 extfiles/_cscore.*.so "${ROOTFS_DIR}/usr/local/lib/python3.5/dist-packages/cscore/"
|
|
|
|
|
2018-12-30 10:07:22 +00:00
|
|
|
cat extfiles/wpilib-debug.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
|
|
|
|
cat extfiles/wpilib.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/lib/ && tar xzf -"
|
2018-11-30 10:40:39 +00:00
|
|
|
|
|
|
|
install -v -d "${ROOTFS_DIR}/usr/local/frc/include"
|
|
|
|
|
|
|
|
cat extfiles/wpiutil-include.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/include/ && tar xzf -"
|
|
|
|
cat extfiles/cscore-include.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/include/ && tar xzf -"
|
|
|
|
cat extfiles/ntcore-include.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/include/ && tar xzf -"
|
|
|
|
cat extfiles/cameraserver-include.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/include/ && tar xzf -"
|
|
|
|
|
2018-12-30 10:07:22 +00:00
|
|
|
install -v -d "${ROOTFS_DIR}/usr/local/frc/share/OpenCV"
|
|
|
|
|
|
|
|
cat extfiles/opencv-cmake-debug.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/share/OpenCV/ && tar xzf -"
|
|
|
|
cat extfiles/opencv-cmake.tar.gz | sh -c "cd ${ROOTFS_DIR}/usr/local/frc/share/OpenCV/ && tar xzf -"
|
|
|
|
|
|
|
|
install -v -d "${ROOTFS_DIR}/usr/local/frc/java"
|
|
|
|
|
|
|
|
install -m 644 -o 1000 -g 1000 extfiles/*.jar "${ROOTFS_DIR}/usr/local/frc/java/"
|
|
|
|
|
2018-12-08 08:41:12 +00:00
|
|
|
install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/pi/examples/"
|
|
|
|
install -v -o 1000 -g 1000 extfiles/*-multiCameraServer.zip "${ROOTFS_DIR}/home/pi/examples/"
|
|
|
|
on_chroot << EOF
|
|
|
|
cd /home/pi/examples/
|
|
|
|
unzip java-multiCameraServer.zip
|
|
|
|
unzip cpp-multiCameraServer.zip
|
|
|
|
unzip python-multiCameraServer.zip
|
2018-12-21 08:37:10 +00:00
|
|
|
mkdir ../zips
|
|
|
|
mv *.zip ../zips/
|
2018-12-08 08:41:12 +00:00
|
|
|
chown -R 1000:1000 .
|
|
|
|
EOF
|
2018-12-01 04:01:28 +00:00
|
|
|
|
2018-12-30 10:07:22 +00:00
|
|
|
sh -c "cd ${ROOTFS_DIR}/usr/local/frc/java && zip ${ROOTFS_DIR}/home/pi/zips/java-multiCameraServer.zip *.jar"
|
2018-11-30 10:40:39 +00:00
|
|
|
|
|
|
|
on_chroot << EOF
|
2018-12-30 10:07:22 +00:00
|
|
|
chown -R 1000:1000 /home/pi/zips
|
2018-11-30 10:40:39 +00:00
|
|
|
ldconfig
|
|
|
|
EOF
|
|
|
|
|
|
|
|
install -v -d "${ROOTFS_DIR}/service/configServer"
|
|
|
|
|
|
|
|
install -m 755 files/configServer_run "${ROOTFS_DIR}/service/configServer/run"
|
|
|
|
|
|
|
|
install -m 755 extfiles/rpiConfigServer "${ROOTFS_DIR}/usr/local/sbin/configServer"
|
2018-12-30 10:07:22 +00:00
|
|
|
install -m 644 extfiles/rpiConfigServer.debug "${ROOTFS_DIR}/usr/local/sbin/"
|
2018-11-30 10:40:39 +00:00
|
|
|
|
2018-11-16 08:48:44 +00:00
|
|
|
install -v -d "${ROOTFS_DIR}/service/camera"
|
2018-12-01 05:26:58 +00:00
|
|
|
install -v -d "${ROOTFS_DIR}/service/camera/log"
|
2018-11-16 08:48:44 +00:00
|
|
|
|
|
|
|
install -m 755 files/camera_run "${ROOTFS_DIR}/service/camera/run"
|
2018-12-01 05:26:58 +00:00
|
|
|
install -m 755 files/camera_log_run "${ROOTFS_DIR}/service/camera/log/run"
|
2018-11-16 08:48:44 +00:00
|
|
|
|
|
|
|
on_chroot << EOF
|
|
|
|
cd /service/camera && rm -f supervise && ln -s /tmp/camera-supervise supervise
|
2018-12-21 09:24:11 +00:00
|
|
|
cd /service/camera/log && rm -f supervise && ln -s /tmp/camera-log-supervise supervise
|
2018-11-30 11:22:07 +00:00
|
|
|
cd /service/configServer && rm -f supervise && ln -s /tmp/configServer-supervise supervise
|
2018-11-16 08:48:44 +00:00
|
|
|
cd /etc/service && rm -f camera && ln -s /service/camera .
|
2018-11-30 10:40:39 +00:00
|
|
|
cd /etc/service && rm -f configServer && ln -s /service/configServer .
|
2018-11-16 08:48:44 +00:00
|
|
|
EOF
|
|
|
|
|
|
|
|
install -m 755 -o 1000 -g 1000 files/runCamera "${ROOTFS_DIR}/home/pi/"
|
|
|
|
install -m 755 -o 1000 -g 1000 files/runInteractive "${ROOTFS_DIR}/home/pi/"
|
|
|
|
install -m 755 -o 1000 -g 1000 files/runService "${ROOTFS_DIR}/home/pi/"
|
|
|
|
|
2018-03-02 20:08:24 +00:00
|
|
|
rm -f "${ROOTFS_DIR}/etc/ssh/"ssh_host_*_key*
|