Raspbianのインストール anchor.png

Raspberry Piに,OSとしてRaspbian with Desktopをインストールしてみた。

最新のバージョンのRasbianとしては4代目であるRaspbian Buster with desktopが,06/24/2019にリリースされている。Raspbianは,Raspberry Pi向けに調整したDebian(Raspberry Pi+Debian=Raspbian)みたい。

Raspberry Pi3BにRaspbian Stretch with Desktopを,Pi4BにはRaspbian Buster with Desktopをインストールした。以前のPi BやPi 2Bは,Raspbian Jessieを入れていたが,インストール方法はほぼ同じ。

注意するのは使用するMicroSDカード。Raspberry Piでは,問題なく使用できるMicroSD/SDカードをけっこう選ぶ。使用中,トラブルが出るMicroSDカードってのが意外と多くある。
TOSHIBAのものだと概ね大丈夫なので,理由がなければTOSHIBAのMicroSDカードを使用するようにする。

以下は,モニターやキーボード,マウスを使用しないでOSをインストールする手順をメモしておく。

Page Top

DownloadしたRaspbianをMicroSDに書き込む anchor.png

Download*1した2018-04-18-raspbian-stretch.zipを解凍して, WindowsマシンでEtcher を使用してそのまま容量が8GB以上のMicro SDカードに書きこむか,もしくはzipファイルを解凍して2019-04-08-raspbian-stretch.imgを Win32DiskImager を使って,容量が8GB以上のMicro SDカードに書きこむ。

64GB,128GBなどの大きな容量のMicroSDカードを使用する場合には, Etcher で書き込む必要がある。 Win32DiskImager で書き込んだ場合は,ブート出来ない。
64GBや128GBといった大きな容量のSD/MicroSDカードを使用する場合は,購入したときには大抵exFATでフォーマットされているので,Raspbianのイメージを書き込んでもブート出来ない場合がある。これは,Raspberry Piでは最初のパーテーションがFAT/FAT32でないとブートローダーがロードできないため。
MicroSDカードをFAT32でフォーマットし直せば使えるのではあるが, SD card Formatter では64GB以上だとexFATでフォーマットされる。
なので,古いfileHP USB Disk Storage Format ToolfileBuffaloのDiskFormatter2 なんかを使えばFAT32でフォーマットできる。(もしくは,パーテーションを操作できるツールを使う)
あとは,通常通りイメージファイルを書き込めば,64GB,128GBのMicroSDカードでも使用出来る。


*1 ミラーサイト: http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/ なんかが早くダウンロードできる。

Page Top

書き込んだSD/MicroSDカードを少し編集する anchor.png

モニターやキーボード,マウスを接続しないでインストールするためブートパーテーションに空の内容でsshというファイル名のファイルを作成した。こうすると,最初にブート後SSHでログイン出来るようになる。
書き込んだSD/MicroSDカードの/bootパーテーションはFAT/FAT32なため,Windowsマシンからでも直接編集出来る。

モニターやキーボード,マウスを使用しない場合,インストール後の各種設定を行うためにリモート接続する必要がある。
リモート接続する時には,

  • 有線LANを使う
  • 無線LANを使う
  • シリアルポートを使う

といった方法がある。

家のローカルネットワークにRaspberry Piを接続出来る場合,有線LAN接続でDHCPクライアントで自動でIP Addressがアサインされるので,有線LANでSSHログインしてインストールするのがやりやすいとは思う。無線LANでも前もって,設定ファイルを用意すれば,同様に使用することが出来る。
今回はこの方法で,SSHログインでインストールを行うことにした。

Pi3Bのシリアルポートを使用してPCと接続しシリアルコンソールを使用すれば,LANケーブルも接続しないで,OSのインストールと各種設定を行うことが出来る。

Page Top

有線LANで接続する場合 anchor.png

この場合,準備は上記のブートパーテーション(/boot)に空のファイルでsshを作成してしておくだけでOK。 LANケーブルを接続し,USBケーブルで電源を供給してしばらくたったらPuTTYなんかでSSHログインする。

この時,Raspberry PiにDHCPでアサインされたIP Addressを知らないと接続できない。
Windowsマシンでは,以下のようにすれば見つけることが出来る。

for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.XXX.%i

実行が終わったら,

arp -a

とすると,EthernetのMACアドレスが表示されるんで,b8:27から始まのがRaspberry Piになる。
Linuxマシンであれば,

arp-scan --interface=eth0 192.168.XXX.0/24 | grep b8:27

とかすればわかる。

Pi4では,LANチップがBroadcom BCM54213Pに変更されて,これに伴いdc:a6:32で始まるMACアドレスに変更されている。

Page Top

接続にWLANを使用する場合 anchor.png

モニターやキーボード,マウスを接続しないでインストールする時にWLANを使用する場合には,指定するアクセスポイントに接続してdhcpを使用してNetworkに接続するということが必要になる。

無線LANを使う場合,/bootにwpa_supplicant.confを作成しておけば,ブート時に使用してくれるようだ。
最初にブート後,/boot/wpa_supplicant.confを/etc/wpa_supplicant/wpa_supplicant.confにコピー後,/boot/wpa_supplicant.confは削除される。

/boot/wpa_supplicant.confは以下のように作成しておく

ctrl_interface=/var/run/wpa_supplicant
country=JP
network={
        ssid="access1"
        key_mgmt=NONE                                 <-- WEPの場合
        wep_key0="xxxxxx"
        wep_tx_keyidx=0
        priority=2                                    <-- 数字が大きい方が優先される
}
network={
        ssid="access2"
        psk="xxxxxxxxxxxxxx"                          <-- WAPの場合
        priority=1
}

Raspberry PiのIPアドレスを知るのは,有線LANと同様。

Page Top

接続にシリアルポートを使用する場合 anchor.png

有線LANも無線LANも使用できない場合は,GPIOコネクタのシリアルポートを使用して,シリアル コンソールでログインするようにする。

この場合,Raspberry Pi3BとZeroWの場合は,

core_freq=250

Raspberry Pi4Bの場合は,

enable_uart=1

を,/boot/config.txtに追加する。

Piのヘッダピンの以下のシリアルポート信号をPCのCOMポートと接続する。

PCRaspberry Pi
GND6pin (GND)
RXD8pin (TXD)
TXD10pin (RXD)

注意:Raspberry Pi側は3.3V CMOS系なので,これをCOMポート(RS232C)に変換する必要がある。

PC側は,

Baudrate:115200,Data:8,Stopbit:1,Parity:なし

で接続する。

Page Top

各種環境設定 anchor.png

Raspberry PiにACアダプター等で電源を接続して最初に起動したら,SSHでリモートログインする。 利用できるデフォルトのユーザーアカウントは,piユーザーとrootユーザー。

pi:raspberry
root:パスワードは設定されていない

piユーザーでログインする。

まず,デフォルトで登録されているpiユーザのパスワードを変更する。(raspi-configでも出来る)

$ sudo passwd pi

ルール無しでパスワードを設定できる。
それから,rootのパスワードを設定する。

$ sudo passwd root
Page Top

いくつかの設定 anchor.png

設定ツールraspi-configを使って,いくつか設定を行う。

# raspi-config
  • タイムゾーンの設定
    Localisation Options → Change Timezone からタイムゾーンの変更をする。
    Asia → Tokyo
    後で確認する。
    # timedatectl status
          Local time: 火 2017-07-11 08:48:28 JST
      Universal time: 月 2017-07-10 23:48:28 UTC
            RTC time: n/a
           Time zone: Asia/Tokyo (JST, +0900)
         NTP enabled: no
    NTP synchronized: yes
     RTC in local TZ: no
          DST active: n/a
    これでも設定できる。
    # timedatectl set-timezone Asia/Tokyo
  • wifiの国の設定
    Localisation Options → Change Wi-fi Country から wifiを使う国の選択をする。(周波数とかが国対応になる。)
    やっていることは,/etc/wpa_supplicant/wpa_supplicant.confを編集するようだ。
    Japan
  • Change Locale
    ja_JP.UTF-8
    を追加して,デフォルトをja_JP.UTF-8にする。

    もしくは,/etc/locale.genファイルのja_JP.UTF-8 UTF-8を有効にして(#を削除する),

    # locale-gen
    Generating locales (this might take a while)...
      ja_JP.UTF-8... done
    # localectl set-locale LANG=ja_JP.utf8
    でも,設定できる。

上記の設定をして,Finishをクリックで再起動。
パーテーションのサイズは最初に自動で拡張される。

Page Top

キーボードレイアウトの設定 anchor.png

SSH等でリモートログインして使用する場合は設定の必要ないが,モニターキーボードを接続して使用する場合は必要になる。
キーボードを接続している場合は,raspi-configで設定出来るが,今回は接続していないので別の方法で設定しておく。

現在の設定を確認する。

# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: n/a
      X11 Layout: gb
       X11 Model: pc105

のように,英語キーボード配列になっている。

# localectl set-keymap jp106

として,106キーボード配列を設定する。

# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp106
      X11 Layout: jp
       X11 Model: jp106
     X11 Options: terminate:ctrl_alt_bksp

106日本語キーボードに設定しておく。

Page Top

マシン名の変更 anchor.png

マシン名を変更する。(raspi-configでも出来る)

# hostnamectl set-hostname pi1
Page Top

USBポートの最大合計電源供給量の設定 anchor.png

Pi3Bでは,1.2Aが最大合計電源供給量になっていて,切り替えは出来ないみたいだ。なのでこれは必要ない。
Pi1B+やPi2B(Pi1Bは出来ない)だと,ソフトウェアで最大合計電源供給量を切り替え出来る。
その場合は,/boot/config.txtに以下を追加する。

max_usb_current=1
PiモデルUSBポート最大合計電源供給量
Raspberry Pi A500mA
Raspberry Pi B500mA
Raspberry Pi A+500mA
Raspberry Pi B+600mA/1200mA(切り換え)
Raspberry Pi2 B600mA/1200mA(切り換え)
Raspberry Pi3 B1200mA
Raspberry Pi ZeroW制限無し
Raspberry Pi4 B1200mA
Page Top

ユーザの追加 anchor.png

ユーザを追加する。

$ su -
# adduser yuji

/etc/groupファイルを編集して,追加したユーザが参加するグループを片っ端から登録する。
編集し終わったら,

# grpconv

で,変更を反映させる。

必要であれば,追加したユーザをsudoグループに追加する。

# gpasswd -a xxxxx sudo

追加したユーザのsudo時のパスワード入力を省くようにしておく。 /etc/sudoersファイルを編集して,以下の行を追加する。

xxxxx ALL=(ALL) NOPASSWD: ALL
Page Top

ブート時にコンソールにする anchor.png

デフォルトでは,GUIのXが立ち上がるようになっている。
CUIの操作で十分な場合は,デフォルトをコンソールに変更する。

# raspi-config

から,3 Boot OptionsのB1 Desktop / CUIでConsoleを選ぶ。

Page Top

無線LANの設定 anchor.png

モニターやキーボード,マウスを接続しないでインストールする時に設定していた場合は,この無線LANの設定は必要ない。

/etc/wpa_supplicant/wpa_supplicant.confを編集する。
以下のように必要であれば編集する。

network={
        ssid="access1"
        key_mgmt=NONE                                 <-- WEPの場合
        wep_key0="xxxxxxxxxxxxxxxxxxx"
        wep_tx_keyidx=0
        priority=2                                    <-- 数字が大きい方が優先される
}

network={
        ssid="access2"
        psk="xxxxxxxxxxxxxx"                          <-- WAPの場合
        key_mgmt=WPA-PSK
        priority=1
}

これで,有線LANのケーブルをはずして,リブートし直すと無線LANで接続される。

Page Top

最新状態に更新 anchor.png

パッケージ管理ツールのapt-get用に,近いサイトを設定する。
/etc/apt/sources.listを編集して,デフォルトを削除し,以下を追加

deb http://ftp.jaist.ac.jp/raspbian jessie main contrib non-free
deb http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ jessie main contrib non-free

jessieのところを,必要によってstretch,busterにする。

システムを更新しておく。

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

時々,これを行って更新するようにする。
upgrade途中で書き込みエラーとかで失敗する場合は,MicroSDカードの相性や寿命が考えられる。

Raspberry Pi 3Bのファームフェアを必要なら更新する。(aptパッケージ管理に登録される前の実験的なコードも含まれる。)

# rpi-update
Page Top

日本語フォントとIMEのインストール anchor.png

# apt-get install fonts-ipafont fonts-ipaexfont
# apt-get install ibus-mozc
Page Top

日本語マニュアルをインストール anchor.png

# apt-get install manpages-ja manpages-ja-dev
Page Top

ntpサーバの変更 anchor.png

/etc/ntp.confを編集する。

#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp

に修正した。

Page Top

Raspbian Stretch,Busterの場合 anchor.png

以下のコマンドで,Network time on: yesになっているか確認する。

# timedatectl status
      Local time: Tue 2017-08-29 21:08:10 JST
  Universal time: Tue 2017-08-29 12:08:10 UTC
        RTC time: n/a
       Time zone: Asia/Tokyo (JST, +0900)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

yesになっていなければ以下のコマンドで有効にする。

# timedatectl set-ntp true

NTPサーバーを指定するには,/etc/systemd/timesyncd.confを編集する。
FallbackNTPには予備のサーバーを指定しておく。

[Time]
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp
FallbackNTP=time.google.com
Page Top

Videoチップへのメモリ割り当て anchor.png

/boot/config.txtに以下を追加。デフォルトは,メインRAMの内64Mbyteを割り当てるようになっています。
128Mbyteに変更する。

gpu_mem=128
Page Top

VNC接続を有効にする anchor.png

リモート接続する時にGUIで操作したい場合は,通常はvncを使うかxrdpを使うかします。Raspbianではrealvnc-vnc-serverが入っているようだ。
vncを使う場合は,raspi-configの5. Interfacing OptionからP3 VNCをたどってenableにすればOK。

デフォルトをコンソールにしている場合はGUIに変更しておく。Raspi-configの3 Boot OptionsのB1 Desktop / CUIでGUIを選ぶ。

リモート接続側は,通常のRealVNC Viewerを使用する。

Page Top

VNC接続時の解像度 anchor.png

VNCを使ってリモート接続するとそのままでは,VGA(720x480)の解像度になってしまう。
これは,インストールされているVNCサーバー(RealVNC)では,モニター(ディスプレイ)レスの場合は接続している解像度をモニターから取得できないため,デフォルトの解像度になってしまう。

これでは不便なので,解像度の設定を変更する。

/boot/config.txtを修正する。下の行の行頭のコメント記号を外す。

framebuffer_width=1280
framebuffer_height=720

とする。

もしくは,常時,HDMIから希望の解像度で出力するようにしてもOK。
HDMIコネクタにディスプレーを接続しないとアナログ・ビデオ出力になってしまう。
この場合は,HDMIのディスプレーを接続しないでも強制的にHDMIから画像が出力されるように,合わせて設定しておく。

hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=85

これでも,1280x768@60Hzに設定できる。設定値はこちらを参照。)

後者は,HDMIを使ってディスプレー表示した場合でも,この解像度が使用される。

いつからかははっきりしないが,上記のやり方で解像度の変更を行ってもVNCの解像度が変更されなくなって,常に720x480もしくは1024x720になってしまうようになった。
この場合,Raspbian StrechだとRaspberry Piの設定にある解像度の設定で解像度を変更すると,VNCでもその設定値の解像度になる。
Raspbian Busterでヘッドレスの場合は,Raspberry Piの設定に解像度の項目が表示されなくなっていて,代わりに設定>Screen Configlationを使って解像度を変更する。

現在の画面の設定値を知りたい場合は,

# tvservice -s
state 0x12000a [HDMI DMT (85) RGB full 16:9], 1280x720 @ 60.00Hz, progressive

のように,表示してくれる。

後は,Raspberry Piを再起動すれば,画面サイズが変更されている。

Page Top

クライアントがRealVNC Viewerじゃない場合 anchor.png

VNCクライアントは,亜流がたくさんある。他のVNCクライアントを使いたい場合は, /root/.vnc/config.d/vncserver-x11の

Authentication=VncAuth

に変更する。もし該当する行がなければ追加する。

# vncpasswd -service

で,適当なパスワードをセットする。接続時に必要なので忘れないようにする。

Page Top

GUIでの自動ログインをやめる anchor.png

デフォルトだとGUI環境でpiユーザで自動ログインされる。

これをやめる。
/etc/lightdm/lightdm.confファイルを編集して,

autologin-user=pi
  ↓
#autologin-user=pi

のように,コメントする。

Page Top

Webブラウザでvncに接続する anchor.png

PCから普通のvncクライアントを使って接続してもいいんだけど,Webブラウザで動作するvncクライアントnoVNCを使ってみる。

インストールは,

# apt-get install novnc

でインストールできる。

/root/.vnc/config.d/vncserver-x11に以下を追加する。

ProtocolVersion=4.1
RemapKeys=ja-jp

自動起動するように,novnc.serviceファイルを作成する。

[Unit]
Description=noVNC service
After=vncserver-x11-serviced.service

[Service]
ExecStart=/usr/share/novnc/utils/launch.sh
Restart=always
Type=simple
User=xxx
Group=pi

[Install]
WantedBy=multi-user.target

ファイルを反映させる。

# systemctl daemon-reload
# systemctl enable novnc.service
# systemctl start novnc.service

Webブラウザで,http://xxxx:6080/vnc.html?host=xxxx&port=6080 のURL(XXXXはマシン名)にアクセスする。
vncpasswdで設定したパスワードを使って接続すれば,vncの画面が表示される。

Page Top

xrdpを使ってリモート接続 anchor.png

Windowsマシンでは標準でリモートデスクトップ接続が使えます。VNCの場合は,WindowsマシンへVNC Viewerをインストールする必要があるんで,面倒な場合はリモートデスクトップ接続を使いたいわけです。
Raspbianでも,このリモートデスクトップ接続を使える。

# apt-get install xrdp

Raspberry Piを再起動後は,Windowsマシンからリモートデスクトップ接続を使って接続できる。
リモートデスクトップ接続の場合,画面の解像度なんかも接続側で設定できる。また,音をリモートすることも出来る。(Raspberry PiにPulseaudioをインストールする必要がある。)

リモートデスクトップ接続した場合,キーボード入力がUSキー配列のままになっている場合がある。
この場合には,以下のようにして対処する。
ここにある filekm-0411.ini を/etc/xrdpにダウンロードして,ダウンロードしたkm-0411.iniファイルのシンボリックファイルをいくつか貼る。

# cd /etc/xrdp/
# ln -s km-0411.ini km-e0010411.ini
# ln -s km-0411.ini km-e0200411.ini
# ln -s km-0411.ini km-e0210411.ini
# systemctl restart xrdp.service
# systemctl enable xrdp.service
Page Top

FTPサーバーのインストール anchor.png

FTPプロトコルを使用して,ネットワーク上でファイルをやり取りする場合に便利なので,FTPサーバーをインストールしておく。

FTPサーバーのvsftpをインストール

# apt-get install vsftpd

設定ファイル/etc/vsftpd.confを修正する

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

/etc/vsftpd.chroot_listファイルを編集する
ユーザ権限の設定ファイルである/etc/vsftpd.chroot_listを編集する。
例:piとxxxxユーザーを追加

pi
xxxxx

vsftpデーモンを起動して,自動起動もONする

# systemctl start vsftpd.service
# systemctl enable vsftpd.service
Page Top

Sambaのインストール anchor.png

Sambaは,Microsoftが開発したネットワーク上でファイル共有を行うMicrosoft Network機能をLinux(Unix)で使用できるように実装されたソフトウェア。
Microsoft Networkのファイルサーバー,ドメインコントローラ機能,プリンター共有,ユーザー認証などの機能がある。

Windowsマシンとのファイルやり取りなどに便利なので,インストールしておく。

Sambaをインストール

# apt-get install samba

で,パッケージでインストールできる。

設定ファイル /etc/samba/smb.conf を編集する

[global]
   unix charset = UTF-8
   dos charset = CP932
   workgroup = UENO
   server string = Pi's SMB file server
   netbios name = pi1

   log file = /var/log/samba/log.%m
   max log size = 50
   syslog = 0
   panic action = /usr/share/samba/panic-action %d

   server role = standalone server
   max protocol = SMB2
   ntlm auth = yes
   client ntlmv2 auth = yes
   
   security = user
   map to guest = bad User
   username map = /etc/samba/smbusers
   guest account = nobody

   passdb backend = tdbsam

   encrypt passwords = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   
   dns proxy = no
   load printers = no
   disable spoolss = yes
   
   unix extensions = no
   wide links = yes
   deadtime = 10
   browseable = yes

[homes]
   comment = %U : Home Directories
   path = %H
   browseable = no
   writable = yes
   valid users = %S
   vfs objects = recycle
   recycle:repository = .recycle
   recycle:keeptree = no
   recycle:versions = yes
   recycle:touch = no
   recycle:maxsize = 0
   recycle:exclude = *.tmp ~$*

[public]
   comment = Public Directories
   path = /var/public
   guest ok = yes
   browseable = yes
   writable = yes
   force group = public
   force create mode = 0664
   force directory mode = 0775
   vfs objects = recycle
   recycle:repository = .recycle
   recycle:keeptree = no
   recycle:versions = yes
   recycle:touch = no
   recycle:maxsize = 0
   recycle:exclude = *.tmp ~$*

このように編集する。

使用するユーザーを作成する

# pdbedit -a pi
# pdbedit -a xxxxx      <-- ユーザ名

で,Sambaを利用するユーザーを追加する。

Windowsのアカウント名を変換する設定ファイルを編集する
Raspberry PiにアクセスしてくるWindowsマシンのユーザーを,Raspbianのユーザーに変換するための設定ファイル /etc/samba/smbuser を編集する。

root = administrator admin
nobody = guest pcguest smbguest

これを使用すると,Raspbianにアカウントが無いユーザーも,設定されたユーザー権でアクセス出来るようになる。

共有ディレクトリの作成
設定ファイルで設定した共有ディレクトリ /home/publicを作成する。

# mkdir /var/public
# chmod 777 /var/public

Sambaの起動 Sambaを起動する。

# systemctl start smbd.service
# systemctl start nmbd.service

ブート時に自動的にSambaを起動するようにセットする。

# systemctl enable smbd.service
# systemctl enable nmbd.service

新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

Front page   Freeze Diff Backup Copy Rename Reload   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 806, today: 1, yesterday: 2
Last-modified: 2020-12-26 (Sat) 15:07:53 (JST) (548d) by yuji