Remote USB Selector

リモートUSBセレクタ・SDCardインストールガイド

以下から、Raspberry Pi OS Liteをインストールするためにインストーラをダウンロードする。

https://www.raspberrypi.org/software/

Download for Windowsをクリック。

imager_1.5.exe

がダウンロードされるので、インストールする。

Raspberry Pi Imager v1.4を起動する。

Raspberry Pi OS(Other)を選択。

Raspberry Pi OS Lite(32-bit)を選択。

SD CardをPCに認識させたうえで、”CHOOSE SD CARD”をクリック。

インストール先のSD Cardを選択する。

“WRITE”をクリック。

そのディスクの中身は消されちゃうけどよい?聞かれるので、”YES”をクリック。

終わるまで待ち。

「SDカードをリーダーから外ずせるよ」、と言われるのでSD-Cardを取り外して”CONTINUE”をクリック。

Raspberry Pi zero WHに

・SD-Cardを挿入

・ディスプレイをHDMIケーブルで接続

・USBキーボードを接続

・電源用USBケーブルを接続

して電源を投入する。

ログイン画面が出たら、

user: pi

password: raspberry

を入力する。

Raspiの設定を行う。

$ sudo raspi-config

キーボード設定

SSH有効化

WIFIアクセスポイント設定

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

最後尾にWIFIの設定(アクセスポイント名・パスワード)を書く。

network={  
        ssid="access-point"  
        psk="password"  
}

リブートをする

$ sudo reboot

リブートを完了したら、ログインして、

$ ifconfig

で`wlan0`の`inet:`の項目にご自宅のネットワークアドレスが書かれていれば、無線LANが使える状態です。

もし、見覚えのないアドレスや、`inet:`自体がない場合は、WIFIの設定が失敗しています。

もう一度見直してみてください。

以降は、SSHを使ってPCから操作をします。

ここでは、teratermを使用します。

さきほどのログインの時に使ったユーザー名とパスワードを入力。

インストールを円滑に行うためにアプリ取得先のサーバーを追加します。

$ sudo nano /etc/apt/sources.list

最後尾に以下を追加する。

deb http://ftp.jaist.ac.jp/raspbian/ buster main contrib non-free rpi 
deb http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/ buster main contrib non-free rpi

パッケージリストの更新を行う。

$ sudo apt-get update

好きなテキストエディタがあればインストールする。

例えば、emacsの場合は以下を入力。nanoでよいならば必要ありません。

$ sudo apt-get -y install emacs 

WEBサーバーをインストールする。

$ sudo apt-get -y install apache2

PHPをインストール・有効化する。

$ sudo apt-get -y install php7.3 php7.3-fpm php7.3-mysql php7.3-gd php7.3-mbstring php7.3-zip php7.3-xml
$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php7.3-fpm

PHPの設定を変更する。

$ sudo nano /etc/php/7.3/fpm/php.ini

大きいファイルアップロードするので以下の2つを変更する。

upload_max_filesize = 4000M
post_max_size = 4000M

WEBアカウントがUSBメモリをmountできるように以下の設定をする。

$ sudo nano /etc/fstab

ファイルの最後尾に以下を追加する。

/dev/sda1 /sda1 auto users,noauto,rw,uid=www-data,gid=www-data 0 0

USBがマウントするフォルダを作成する。

sudo mkdir /sda1

WEBアカウントがGPIOを制御できるように以下の設定をする。

$ sudo gpasswd -a www-data gpio

WEBアカウントがraspiの電源を落とせるように以下の設定をする。

$ sudo visudo

最後尾に以下を追加する。

www-data ALL= NOPASSWD: /sbin/shutdown

※ 保存する際に、.tmpファイルを保存するような表示になるが、保存すると目的のファイル(/etc/sudoers)が変更されます。

elFinderをダウンロード・展開・WEBへコピーする。

※このバージョンがダウンロードできない場合は、

https://studio-42.github.io/elFinder/

から最新のバージョン番号に書き換えたうえで実行してください。

$ wget https://github.com/Studio-42/elFinder/archive/2.1.57.zip
$ unzip 2.1.57.zip
$ sudo cp -R elFinder-2.1.57/. /var/www/html/
$ sudo cp /var/www/html/php/connector.minimal.php-dist /var/www/html/php/connector.minimal.php

elFinderのセットアップをする。

$ sudo nano /var/www/html/php/connector.minimal.php

以下を変更する。★の行を追加する。(★は目印なだけなので書いてはダメ)

function access($attr, $path, $data, $volume, $isDir, $relpath) { 
★ /*
        $basename = basename($path); 
        return $basename[0] === '.'                  // if file/folder begins with '.' (dot) 
                         && strlen($relpath) !== 1           // but with out volume root 
                ? !($attr == 'read' || $attr == 'write') // set read+write to false, other (locked+hidden) set to true 
                :  null;                                 // else elFinder decide it itself 
★ */
}

★の”pathと””uploadAllow”と書かれた行を書き換える。(★は目印なだけなので書いてはダメ)

$opts = array( 
        // 'debug' => true, 
        'roots' => array( 
                // Items volume 
                array( 
                        'driver'        => 'LocalFileSystem',           // driver for accessing file system (REQUIRED) 
★                      'path'          => '/sda1',                 // path to files (REQUIRED) 
                        'URL'           => dirname($_SERVER['PHP_SELF']) . '/../files/', // URL to files (REQUIRED) 
                        'trashHash'     => 't1_Lw',                     // elFinder's hash of trash folder 
                        'winHashFix'    => DIRECTORY_SEPARATOR !== '/', // to make hash same to Linux one on windows to\ 
o 
                        'uploadDeny'    => array('all'),                // All Mimetypes not allowed to upload 
★                      'uploadAllow'   => array('all'),
                        'uploadOrder'   => array('deny', 'allow'),      // allowed Mimetype `image` and `text/plain` on\ 
ly 
                        'accessControl' => 'access'                     // disable and hide dot starting files (OPTIONA\ 
L) 
                ),

WEBサーバーを再起動する。(手順の最後にリブートするのでしなくてもOK)

$ sudo service apache2 restart

Remote USB Selectorのソフトウェアをインストールする

$ rm main.zip
$ wget https://github.com/suzgaku/remote_usb_selector/archive/main.zip
$ unzip -o main.zip
$ cd ./remote_usb_selector-main
$ sudo ./install.sh
$ cd

起動時にスクリプトが読まれるように登録する。

$ sudo nano /etc/rc.local

“exit 0″の直前に以下を追加する。

remote_usbsel.sh
remote_usbsel_update.sh

リブートする。

$ sudo reboot