#!/bin/bash # # cd /home/pi/ # wget -O setup.sh https://raw.githubusercontent.com/chirimen-oh/chirimen/master/setup.sh # chmod 777 setup.sh # ./setup.sh # # 一時的にスリープを無効 sudo xset s off sudo xset -dpms sudo xset s noblank # スリープを無効 grep 'consoleblank=0' /boot/cmdline.txt if [ $? -ge 1 ]; then sudo sed '1s/$/ consoleblank=0/' /boot/cmdline.txt |\ sudo tee /tmp/cmdline && sudo cat /tmp/cmdline |\ sudo tee /boot/cmdline.txt && sudo rm -f /tmp/cmdline fi if [ ! -f /etc/xdg/lxsession/LXDE-pi/autostart.orig ]; then sudo cp /etc/xdg/lxsession/LXDE-pi/autostart /etc/xdg/lxsession/LXDE-pi/autostart.orig fi sudo sh -c "cat << EOF > /etc/xdg/lxsession/LXDE-pi/autostart @lxpanel --profile LXDE-pi @pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash @xset s off @xset -dpms @xset s noblank @/usr/bin/chromium-browser https://localhost/top EOF" # aptをmirrorで指定 sudo sh -c "cat << EOF > /etc/apt/mirrors.txt http://ftp.jaist.ac.jp/raspbian/ http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/ http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ http://raspbian.raspberrypi.org/raspbian/ EOF" if [ ! -f /etc/apt/sources.list.orig ]; then sudo cp /etc/apt/sources.list /etc/apt/sources.list.orig fi sudo sh -c "cat << EOF > /etc/apt/sources.list deb mirror+file:/etc/apt/mirrors.txt buster main contrib non-free rpi EOF" sudo apt-get update # 必要な項目をインストール sudo apt-get install at-spi2-core # update sudo apt-get -y update sudo apt-get -y upgrade # raspiはupgrade失敗しやすいので念の為2回 sudo apt-get -y update sudo apt-get -y upgrade # 各種ツールをインストール curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt-get -y install fonts-noto-cjk uim uim-mozc nodejs apache2 arduino code vim emacs libnss3-tools # インストール失敗しやすいので2回 sudo apt-get -y install fonts-noto-cjk uim uim-mozc nodejs apache2 arduino code vim emacs libnss3-tools sudo apt-get -y autoremove # Node.jsのバージョンの差異による不具合を防ぐ目的 sudo apt-mark hold nodejs # 利用者のNode.jsのバージョン管理目的 sudo npm i n -g # 日本語設定 # デフォルトの設定が en_GB.UTF-8 になっている sudo sed 's/#\sen_GB\.UTF-8\sUTF-8/en_GB\.UTF-8 UTF-8/g' /etc/locale.gen |\ sudo tee /tmp/locale && sudo cat /tmp/locale |\ sudo tee /etc/locale.gen && sudo rm -f /tmp/locale sudo sed 's/#\sja_JP\.EUC-JP\sEUC-JP/ja_JP\.EUC-JP EUC-JP/g' /etc/locale.gen |\ sudo tee /tmp/locale && sudo cat /tmp/locale |\ sudo tee /etc/locale.gen && sudo rm -f /tmp/locale sudo sed 's/#\sja_JP\.UTF-8\sUTF-8/ja_JP\.UTF-8 UTF-8/g' /etc/locale.gen |\ sudo tee /tmp/locale && sudo cat /tmp/locale |\ sudo tee /etc/locale.gen && sudo rm -f /tmp/locale sudo locale-gen ja_JP.UTF-8 sudo update-locale LANG=ja_JP.UTF-8 # 時間設定 sudo raspi-config nonint do_change_timezone Asia/Tokyo # キーボード設定 sudo raspi-config nonint do_configure_keyboard jp # Wi-Fi設定 sudo raspi-config nonint do_wifi_country JP # VSCode extension sudo npm i eslint prettier -g code --install-extension MS-CEINTL.vscode-language-pack-ja code --install-extension dbaeumer.vscode-eslint code --install-extension esbenp.prettier-vscode # VSCode設定 mkdir -p /home/pi/.config/Code/User cat << EOF > /home/pi/.config/Code/User/settings.json { "editor.fontFamily": "'Noto Sans Mono CJK JP', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'", "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true } EOF mkdir -p /home/pi/.vscode cat << EOF > /home/pi/.vscode/argv.json { "locale": "ja" } EOF # JSのデフォルトをVSCodeに cat << EOF > /home/pi/.config/mimeapps.list [Added Associations] application/javascript=code.desktop; [Default Applications] application/javascript=code.desktop; EOF # カメラを有効化 sudo raspi-config nonint do_camera 0 grep 'bcm2835-v4l2' /etc/modprobe.d/bcm2835-v4l2.conf if [ $? -ge 1 ]; then echo 'options bcm2835-v4l2 gst_v4l2src_is_broken=1' | sudo tee -a /etc/modprobe.d/bcm2835-v4l2.conf fi grep 'bcm2835-v4l2' /etc/modules-load.d/modules.conf if [ $? -ge 1 ]; then echo 'bcm2835-v4l2' | sudo tee -a /etc/modules-load.d/modules.conf fi # I2Cを有効化 sudo raspi-config nonint do_i2c 0 # _gc設定 cd /home/pi/ if [ ! -f /home/pi/_gc.zip ]; then wget https://r.chirimen.org/_gc.zip fi if [ ! -d /home/pi/_gc/ ]; then unzip ./_gc.zip fi cd /home/pi/_gc/srv npm i sudo npm i forever -g cd /home/pi/ crontab -l > /tmp/tmp_crontab grep '/home/pi/_gc/srv/startup.sh' /tmp/tmp_crontab if [ $? = 1 ]; then echo "@reboot sudo -u pi /home/pi/_gc/srv/startup.sh" | crontab fi ln -s /home/pi/_gc/srv/reset.sh /home/pi/Desktop/reset.sh mkdir /home/pi/.config/chromium/ mkdir /home/pi/.config/chromium/Default/ cp /home/pi/_gc/bookmark/Bookmarks /home/pi/.config/chromium/Default/Bookmarks pcmanfm --set-wallpaper /home/pi/_gc/wallpaper/wallpaper-720P.png # Web Bluetooth有効化 cat << EOF > '/home/pi/.config/chromium/Local State' {"browser":{"enabled_labs_experiments":["enable-experimental-web-platform-features"]}} EOF # gc設定 chromium-browser & cd /home/pi/ if [ ! -f /home/pi/gc.zip ]; then wget https://r.chirimen.org/gc.zip fi # chromiumの起動待ちダウンロード if [ ! -d /home/pi/Desktop/gc/ ]; then unzip ./gc.zip -d /home/pi/Desktop fi # chromiumの起動待ち sleep 120s # Apache設定 if [ ! -f /etc/apache2/sites-available/000-default.conf.orig ]; then sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.orig fi sudo sh -c 'cat << EOF > /etc/apache2/sites-available/000-default.conf ServerAdmin webmaster@localhost DocumentRoot /home/pi/Desktop/gc ErrorLog \${APACHE_LOG_DIR}/error.log CustomLog \${APACHE_LOG_DIR}/access.log combined EOF' if [ ! -f /etc/apache2/apache2.conf.orig ]; then sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.orig fi sudo sh -c 'cat << EOF > /etc/apache2/apache2.conf DefaultRuntimeDir \${APACHE_RUN_DIR} PidFile \${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 User \${APACHE_RUN_USER} Group \${APACHE_RUN_GROUP} HostnameLookups Off ErrorLog \${APACHE_LOG_DIR}/error.log LogLevel warn IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.conf Options FollowSymLinks AllowOverride None Require all denied AllowOverride None Require all granted Options Indexes FollowSymLinks AllowOverride None Require all granted Options Indexes FollowSymLinks AllowOverride None Require all granted AccessFileName .htaccess Require all denied LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent IncludeOptional conf-enabled/*.conf IncludeOptional sites-enabled/*.conf EOF' sudo sh -c 'cat << EOF > /etc/apache2/sites-available/vhost-ssl.conf ServerAdmin webmaster@localhost DocumentRoot /home/pi/Desktop/gc ErrorLog \${APACHE_LOG_DIR}/error.log CustomLog \${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /home/pi/_gc/srv/crt/server.crt SSLCertificateKeyFile /home/pi/_gc/srv/crt/server.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars EOF' sudo a2ensite vhost-ssl sudo a2enmod ssl sudo systemctl restart apache2 # 証明書追加 certfile="/home/pi/_gc/srv/crt/ca.crt" certname="org-TripArts" for certDB in $(find ~/ -name "cert9.db") do certdir=$(dirname ${certDB}); certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir} done #### # 最後にダイアログをOKにしてrebootして完了 #### sudo reboot