Raspberry Piを購入したが、初期設定の方法が分からない。
初期設定の手順を教えて欲しい。
こんなお悩みを解決します。
今回は、購入したRaspberry Piを実際に使って作業をしていきます。内容としては、以下の3つを行っていきます。
- Raspberry PiへSSH接続
- aptコマンドによるアップデート
- Raspberry Piで作業するための初期設定
必要なもの
Raspberry PiにSSHするためには、Raspberry Piをネットワークに接続する必要があります。
このためには、LANケーブルが必要です。
私は手元に未使用のLANケーブルがありましたが、手元にない方は1m~1.5m位のLANケーブルを購入すると良いです。
必要な設定
ここでは、SSHするために必要な設定を行います。
sshファイルの配置
Raspberry PiにSSHするには、Raspberry Pi側で設定が必要になります。
具体的には、OSイメージを書き込んだmicro SDカードのboot以下に「ssh」という空のファイルを配置します。
この時、ファイル名に拡張子を付けないように気を付けてください。
拡張子の有無を確認するには、以下のように設定してください。
TeraTermの導入
WindowsでSSH接続するには、専用のソフトが必要になります。本ブログでは、TeraTermを用いた方法を紹介します。
LinuxやMacを用いている方は、ターミナルからsshコマンドを利用してRaspberry Piに接続できると思うので、この工程は飛ばしてもらって構わないです。
コチラのサイトからTeraTermをダウンロードできます。私は基本的にPortable版を利用するので、下側のファイルをダウンロードしています。
ダウンロードができたら、zipファイルを解凍(展開とも言います)しておいてください。
Raspberry Piの起動・SSH接続
ここから、Raspberry Piの電源を入れ、実際に操作していきます。
Raspberry Piの起動
まず、図のようにRaspberry Piを接続し、電源を入れます。
次にTeraTermを起動し、「Host」のところに「raspberrypi.local」と入力し、OKを押下します。
その後、usernameとpasswordを入力する画面が表示されるので、OSインストール時に設定したusernameとpasswordを入力し、OKを押下します。
無事、ログインに成功すると以下の画面が表示されます。
これで、SSH接続できました。
Hostでログイン画面が表示されない場合
少し古いOSを利用していると、Hostのところに「raspberrypi.local」と入力してもログイン画面に推移できないことがあります。この場合、代わりにIPアドレスを入力することになります。IPアドレスの調べ方はいくつかありますが、ここでは2つ紹介したいと思います。
ルーターの設定画面から調べる方法
多くのご家庭ではDHCPという動的にIPアドレスを割り当てる仕組みを用いています。
この機能により、LANケーブルを接続するだけでインターネットにアクセスできます。
このため、ルーターの設定画面からDHCPのIPアドレスの払い出し状況を確認することで、Raspberry Piに割り当てられているIPアドレスを知ることができます。
私の家庭では、「TP-Link Archer A10」を利用しているので、このルーターを例に示します。
ルーターの設定画面を確認すると以下のようになっていることが分かります。
上記に「割り当て済みIPアドレス」とあり、「192.168.0.199」となっています。
今回の場合、この「192.168.0.199」をHostの部分に記入し、OKを押下するとログイン画面に推移します。
コマンドプロンプトから探す方法
pingコマンドを用いることで、ネットワーク上で通信可能なデバイスの存在を調べることができます。
ここでは、総当たりによりIPアドレスを調べた後、arpコマンドで該当するMACアドレスから逆引きします。
まずは、コマンドプロンプロト起動します。起動後、以下を入力してEnterを押下します。
ipconfig
表示される文字列の中で、「イーサネット アダプター イーサネット」を探し出し、その中にある「IPv4 アドレス」を見つけてください。
私の環境の場合、「192.168.0.200」となっています。
次に、コマンドプロンプロトに以下のコマンドを入力し、「xxx.yyy.zzz」部分を書き換えた後、Enterキーを押下してください。
for /l %i in (1,1,254) do ping -w 1 -n 1 xxx.yyy.zzz.%i
ここで、「xxx.yyy.zzz」は先ほど調べた「IPV4 アドレス」になります。私の場合、「192.168.0」となります。
rem 私の環境の場合の例
for /l %i in (1,1,254) do ping -w 1 -n 1 192.168.0.%i
実行するとpingコマンドの実行が始まります。終わるまでしばらく待ちます。pingコマンド実行後は、以下のコマンドを入力します。
arp -a
私の環境では、以下のように出力されました。(不要な部分を一部削っています)
このうち、物理アドレス(左から2列目)が「dc-a6-32」で始まるものを探してください。これは、Raspberry pi 4の場合固有の値となります。また、Rasberry Pi 3を利用している方は、「b8-27-eb」から始まるものを探してください。
この物理アドレスに対応するIPアドレス(今回の場合、192.168.0.199)がRaspberry Piに割り当てられているIPアドレスとなります。
aptコマンドによるアップデート
ここから、実際にTeraTermで作業をしていきます。まずは、インストールされているプログラムのアップデートを行います。
TeraTermでRaspberry PiにSSH後、ターミナルに以下のコマンドを入力し、Enterキーを押下します。これにより、更新があるプログラムの一覧を取得できます。
sudo apt update
その後、以下のコマンドを入力し、アップデートを行います。
sudo apt -y upgrade
これで、アップデートは完了です。
初期設定
この後は、Raspberry Piの初期設定を行っていきます。使用するエディタなど、個人差があると思うので、一例として解釈してください。
raspi-configによる設定
Raspberry Piを利用する上で、必要最低限の設定があるため、紹介していきます。
まず、ターミナルに以下のコマンドを入力し、Enterキーを押下します。
sudo raspi-config
入力後、以下の画面が表示されると思います。
ここからは、私が個人的に必要だと考える設定を記載していきます。
自動ログインの設定
- 「1. System Options」を選択し、Enterキーを押下
- 「S5 Boot / Auto Login」を選択し、Enterキーを押下
- 「B1 Console」を選択し、Enterキーを押下
ロケーションの設定
- 「5. Localisation Options」を選択し、Enterキーを押下
- 「L1 Locale」を選択し、Enterキーを押下
- 「ja_JP.UTF-8 UTF-8」を選択し、Spaceキーを押下
- Tabキーを用いて「OK」を選択し、Enterキーを押下
- Default locale for the system environmentを確認されるので、「ja_JP.UTF-8」を選択して、Enterキーを押下
タイムゾーンの設定
- 「5. Localisation Options」を選択し、Enterキーを押下
- 「L2 Timezone」を選択し、Enterキーを押下
- 「Asia」を選択し、Enterキーを押下
- 「Tokyo」を選択し、Enterキーを押下
キーボードの設定
- 「5. Localisation Options」を選択し、Enterキーを押下
- 「L3 Keyboard」を選択し、Enterキーを押下
micro SDカードの拡張
32GBのmicro SDカードを利用していたとしても、デフォルトではすべて認識されているわけではないです。ここでは、すべての容量を利用できるように、設定を行います。
- 「6. Advanced Options」を選択し、Enterキーを押下
- 「A1 Expand Filesystem」を選択し、Enterキーを押下
- 「OK」を選択し、Enterキーを押下
ここまで実行したら、一度再起動をします。Tabキーを用いて「Finish」を選択し、Enterキーを押下します。すると「Would you like to reboot now?」とリブートするかを聞かれるので、「Yes」を選択し、Enterキーを押下します。
この後、TeraTermが自動で終了しますが、正常な動作です。再度、TeraTermを起動し、SSH接続によるログインを行います。
nkfコマンドのインストール
WindowsとLinux(Raspberry Pi)でファイルをやり取りする際は、文字化けが発生することがあります。ここでは、文字化けを解消するためのコマンドをインストールしておきます。
sudo apt update
sudo apt install -y nkf
gitコマンドのインストール・設定
今後、GitHub経由で色々なコードを実行できるように整えておく予定です。ここでは、その準備としてgitコマンドをインストールし、初期設定を済ませておきます。
sudo apt update
# gitコマンドのインストール
sudo apt install -y git
# ==========
# gitの設定
# ==========
git config --global user.name "your-user-name"
git config --global user.email "your@email-addr"
### カラー系
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
### fast-forward系
git config --global --add merge.ff false
git config --global --add pull.ff only
### tree系
git config --global alias.tree 'log --graph --all --format="%x09%C(cyan bold)%an%Creset%x09%C(yellow)%h%Creset %C(magenta reverse)%d%Creset %s"'
エディタのインストール・設定
私は、vimを利用しているので、vimをインストールします。他のエディタを利用している場合は、自分自身にあうエディタをインストールしてください。
以下では、vimを用いる方向けに私個人の設定例を一例として示します。
# vimのインストール
sudo apt install -y vim
# gitで利用するエディタを指定
git config --global core.editor 'vim -c "set fenc=utf-8"'
私が使っている設定ファイルは以下のようになります。参考までに記載しておきます。
" If you wish to change any of those settings, you should do it in this file (/etc/vim/vimrc)
runtime! debian.vim
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
" === 基本設定 ===
" グループの初期化
augroup myvimauto
autocmd!
augroup END
syntax on
" 文字コードを UTF-8 に設定
set fenc=utf-8
" 入力中のコマンドをステータスに表示
set showcmd
" 保存時に行末のスペースを削除
autocmd myvimauto BufWritePre * %s/\s\+$//e
" 色の設定
highlight StatusLine ctermbg=none ctermfg=grey
highlight Comment ctermfg=LightGreen
highlight Constant ctermfg=DarkRed
highlight Identifier ctermfg=Cyan
highlight Statement ctermfg=Brown
highlight SpecialKey ctermbg=none ctermfg=darkgray
highlight Directory ctermfg=grey
" 入力モードに入ったら,その行を太字に,
" 入力モードから出ると underline にするように設定
autocmd myvimauto VimEnter,ColorScheme * highlight CursorLine cterm=underline
autocmd myvimauto InsertEnter * highlight CursorLine cterm=bold
autocmd myvimauto InsertLeave * highlight CursorLine cterm=underline
" === 見た目系 ===
" 行番号を表示
set number
" ルーラーの表示
set ruler
" 現在の行を強調表示
set cursorline
" スマートインデント
set smartindent
" オートインデント
set autoindent
set expandtab
" スマートタブ
set smarttab
" 括弧入力時に対応する括弧を表示
set showmatch
" ステータスラインを常に表示
set laststatus=2
" コマンドラインの高さ
set cmdheight=1
" コマンドラインの補完
set wildmode=list:longest
" 折り返し時に表示業単位で移動
nnoremap j gj
nnoremap k gk
nnoremap <Down> gj
nnoremap <Up> gk
nnoremap $ g$
nnoremap ^ g^
nnoremap <Home> g^
nnoremap <End> g$
nnoremap gj j
nnoremap gk k
nnoremap g$ $
nnoremap g^ ^
" 行末スペースをハイライト
autocmd myvimauto VimEnter,WinEnter * match Error /\s\+$/
" ファイル名の表示
set statusline=%<%t\ %m%r%h%w\ [position=%04l,%04v][%p%%]\ [length=%L]\ %{'['.(&fenc!=''?&fenc:&enc).']\ ['.&fileformat.']'}
" === TAB 系 ===
" 不可視文字を可視化
set list listchars=tab:>^
set backspace=indent,eol,start
" 行頭以外の TAB の表示幅
set tabstop=4
" 行頭での TAB の表示幅
set shiftwidth=4
set softtabstop=4
" === 検索系 ===
" 検索文字列が小文字の場合は,大文字小文字を区別なく検索
set ignorecase
" 検索文字に大文字が含まれている場合は区別して検索
set smartcase
" 文字列入力時に,順次対象文字列にヒットさせる
set incsearch
" 検索時に最後まで行ったら最初に戻る
set wrapscan
" 検索語をハイライト
set hlsearch
" コマンドラインの補完をするときに強化されたものを使う
set wildmenu
" ESC 連打でハイライト解除
nmap <Esc><Esc> :nohlsearch<CR><Esc>
さいごに
今回、Raspberry Piへの接続から初期設定を行いました。今後は、docker等を用いてアプリケーションの構築を行っていきたいと思います。
今回、紹介した商品は以下のものとなります。