Raspbianのインストール anchor.png

Raspberry Piに,OSとしてRaspbian*1 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*2した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 最新バージョンはRaspberry Pi OSという名前に変わった
*2 ミラーサイト: 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

新しくコメントをつける

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

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1449, today: 1, yesterday: 0
最終更新: 2020-12-26 (土) 15:07:53 (JST) (1209d) by yuji