ブログ
これまでに経験してきたプロジェクトで気になる技術の情報を紹介していきます。
RaspberryPi4にUbuntu20.04を入れて色々と設定
宗近です
Raspberry Pi4を使っていると色々やらせたくはなるのですが、自宅で使うのに使いたくなるのがsamba(ファイル共有)やWebカメラ周りなのかなあという気がします
オリンピック2020の連休に色々と触っていたので、設定周りについて書いてみました
Raspberry Pi4にOSをインストールする方法は色々なところで書かれていますので、ここでは割愛させていただきました Ubuntu20.04を入れて設定を行いました
全てroot権限で実行しています
ubuntuのバージョン調べるには"/etc/issue"を見ればわかります。
cat /etc/issue
Ubuntu 20.04.2 LTS \n \l
あと、時刻合わせをやっておきましょう
timedatectl set-timezone Asia/Tokyo
日本時間にセットします
ここからはUbuntu20.04にsambaやカメラ(MJPG-streameを導入)の設定です
・最新のパッケージに更新
apt update
・sambaインストール
apt install samba
/etc/samba/smb.conf を編集
samba設定の肝になるのは、smb.confになります。 ここでは文字コードの指定や、共有フォルダの設定を行います
全体の設定 globalセクションを変更した場合、Sambaの再起動が必要
[global]
workgroup = SAMBA
security = user
server role = AUTO
server string = SAMBA SERVER Version %v
netbios name = testsamba
passdb backend = tdbsam
dos charset = CP932
wins support = yes
load printers = no
disable spoolss = yes
[share]
comment = Share Folder for All Users
path = /media/hdd1/samba
browseable = yes
read only = no
samba.confの設定については色々なところで書かれているので私の手元の環境で書きました
次にsambaに登録するユーザを設定します
OS側でにsambaユーザと同じアカウントを登録する必要があります
useradd smbuser
次に、"pdbedit"コマンドでsambaのユーザを追加
pdbedit -a smbuser
パスワードを2回聞かれるので同じものを入力します
new password:
retype new password:
以下の表示がされれば登録は完了しています
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-654195633-2525375856-3970847450-1000
Primary Group SID: S-1-5-21-654195633-2525375856-3970847450-513
Full Name:
Home Directory: \\testsamba\smbuser
HomeDir Drive:
Logon Script:
Profile Path: \\testsamba\smbuser\profile
Domain: TESTSAMBA
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Thu, 07 Feb 2036 00:06:39 JST
Kickoff time: Thu, 07 Feb 2036 00:06:39 JST
Password last set: Thu, 22 Jul 2021 18:09:40 JST
Password can change: Thu, 22 Jul 2021 18:09:40 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
samba起動を起動します。この際OSの起動のタイミングで自動起動をさせたいので"systemctl enable smbd"と"systemctl enable nmbd" を実行しておきます
systemctl start smbd
systemctl start nmbd
systemctl enable smbd
systemctl enable nmbdsystemctl enable smbd
systemctl enable smbd
私は、データを外付けディスクに保存しています。 Ubuntu20.04では/etc/fstabに以下のように記述(最後の行に追加)しておけば、OS起動時に自動的にマウントされます
UUID=58383cde-c061-4f58-b704-ddb7e” /usb1 ext3 defaults 0 0
ディスクパーティションのUUIDは"blkid ディスクパーティション名"で調べることができます blkid /dev/sda1"
・sysstat(sarの設定
sysstat(sar)を設定しておけば、CPUの使用率やメモリの使用率を調べることが出来ます。 頻繁に利用するので入れておきましょう。
SARをインストールする 次のコマンドを実行するだけでインストールできます。
apt install sysstat
インストールが完了したら、次のコマンドを使用してSARサービスを開始し、 システムの再起動時に開始できるようにします。
systemctl start sysstat
systemctl enable sysstat
SARのバージョンを確認します。
sar -V
sysstat version 12.2.0
インストール中、SARは10分ごとにレポートを収集および生成するためのCronファイルを生成します。 次のコマンドで確認できます。
cat /etc/cron.d/sysstat
次の出力が得られるはずです。
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
このままでは日別のフォルダが作成されず、sarの内容が記録されないようでうs。 /etc/default/sysstat を編集します
ENABLED="false"
↓
ENABLED="true"
・WakeUp on LAN
私は、外部から自宅内のウィンドウズパソコンを「WakeUp on LAN」で起動できるようにしています
仙石さんの"wol.c"を使わせていただいています
"wol.c"のコンパイルにはgccを使用しますので、インストールしておきます
apt install gcc
ソースの取得し、コンパイルします
wget http://www.gcd.org/sengoku/docs/wol.c
gcc wol.c -o wol
この時私の環境ではワーニングが出ますが、使用に支障は無かったので無視しました
wol.c: In function ‘host2addr’:
wol.c:29:31: warning: implicit declaration of function ‘inet_addr’ [-Wimplicit-function-declaration]
29 | } else if ((addrp->s_addr=inet_addr(name)) != -1) {
| ^~~~~~~~~
wol.c: At top level:
wol.c:55:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
55 | main(argc,argv)
| ^~~~
起動するためのシェルを作っておきます "192.168.0.255"はネットワークアドレス、"44:33:22:11:55:66"は起動するパソコンのMacアドレスになります
/home/ubuntu/wol 192.168.0.255 44:33:22:11:55:66
・Webカメラを設定する
WebカメラはWindowsで使用していた廉価なカメラが(USB2.0)が使えました Amazonとかで購入したいくつかのカメラで試してみましたが、どうやら最近のものはLinuxにも対応しているようです
まずdmesgコマンドでカメラがインストールされているか確認します
dmesg | grep CAMERA
「UVC 1.00 device USB2.0 PC CAMERA」で認識されているようです
[ 861.006511] usb 1-1.3: Product: USB2.0 PC CAMERA
[ 861.047848] uvcvideo: Found UVC 1.00 device USB2.0 PC CAMERA (1908:2310)
[ 861.049427] input: USB2.0 PC CAMERA: USB2.0 PC CAM as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input3
カメラの情報を得るために"v4l-utils"ユティリティをインストールしました apt install v4l-utils
"v4l2-ctl"コマンドで、情報の確認を行います v4l2-ctl -d /dev/video0 --info
Driver Info:
Driver name : uvcvideo
Card type : USB2.0 PC CAMERA: USB2.0 PC CAM
Bus info : usb-0000:01:00.0-1.3
Driver version : 5.4.78
Capabilities : 0x84a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : uvcvideo
Model : USB2.0 PC CAMERA: USB2.0 PC CAM
Serial :
Bus info : usb-0000:01:00.0-1.3
Media version : 5.4.78
Hardware revision: 0x00000100 (256)
Driver version : 5.4.78
Interface Info:
ID : 0x03000002
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : USB2.0 PC CAMERA: USB2.0 PC CAM
Function : V4L2 I/O
Flags : default
Pad 0x01000007 : 0: Sink
Link 0x0200000d: from remote pad 0x100000a of entity 'Processing 2': Data, Enabled, Immutable
ストリーミングソフト(MJPG-streamer)をインストールします
「MJPG-streamer」はsubversionでダウンロードし、インストールします
apt-get update
apt-get install -y subversion libjpeg-dev imagemagick
svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
cd mjpg-streamer
make
make install
ストリーミングサーバの起動スクリプトを作成します
start_server.sh
# /bin/sh
PORT="8080" #ポート番号
ID="user" #ID
PW="passward" #パスワード
SIZE="320x240" #画面サイズ
FRAMERATE="2" #フレームレート
export LD_LIBRARY_PATH=/usr/local/lib
./mjpg_streamer \
-i "input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" \
-o "output_http.so -w /usr/local/www -p $PORT -c $ID:$PW"
ストリーミングサーバを起動します
sh start_server.sh
動作確認は、他のパソコンのブラウザからアクセスしてみます
http://(RaspberyPIのURL):8080
Basic認証されますので上記に設定したIDとパスワードを入力します。
コメントはありません。