お問い合わせ

ブログ

これまでに経験してきたプロジェクトで気になる技術の情報を紹介していきます。

RaspberryPi4にUbuntu20.04を入れて色々と設定

Ryuichirou Ryuichirou 3 years
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とパスワードを入力します。

RaspberryPi4にUbuntu20.04を入れて色々と設定 2021-08-18 03:19:56

コメントはありません。

4886

お気軽に
お問い合わせください。

お問い合わせ
gomibako@aska-ltd.jp