とらりもんHOME  Index  Search  Changes  Login

とらりもん - raspberry-pi Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

2014/10/21 筑波大 秋津朋子 作成{{br}}
2015/02/13 筑波大 秋津朋子 SDカードのフォーマット方法を追記 {{br}}
2020/08/27 筑波大 秋津朋子 SDカードにRasPi OSを焼く方法やRTCモジュールの設定等を最新情報に更新 {{br}}

[[ラズベリーパイ財団|http://www.raspberrypi.org/]]によって英国で開発された、名刺サイズのシングルボードコンピュータ。

!よくあるトラブル
* ラズパイが起動しない(画面に何も写らない) ... micro SDカードが中途半端にささっている(抜けかけている)。
* micro SDがラズパイに対応していない or 相性が悪い。... micro SDにOSを書き込んだのに画面に何も映らない or カラフルな画像とブラックスクリーンが交互に写る。

!beginner's packageの場合はいきなりセットアップ作業へ。
# $ sudo raspbi-configraspi-config
localization option -> time zone etc
interfacing option -> camera, ssh, I2C (for external clock)
advance option -> expand filesystem

!準備:SDカードにOSを焼く

[[ラズパイとSDカードの相性|http://elinux.org/RPi_SD_cards]]

準備:SDカード, RaspberryPi以外のPC{{br}}
ここから,しばらくはRaspberryPi以外のPCでの作業となる。
* SDカードは通常FAT32等でフォーマットされているので,そのまま使える.しかし,これまでext4などでフォーマットしたものを使う場合はFAT32でフォーマットする.
* ラズパイのOSをSDカードに焼くのとダウンロードは一気にできる!
## [[RaspberryPiのサイト|http://www.raspberrypi.org/downloads]]にアクセスする。
## 「Raspberry Pi Imager for Ubuntu」等,自分にあったOSを選択して,ラズパイをSDカードに焼くアプリケーションをインストールする。
## 「Raspberry Pi Imager for Ubuntu」を起動して,自分のOS,SDカードを選んで,「Write」を押すだけ!
## SDカードを抜き、RaspberryPiに差し込む。

----

* ここから「セットアップ」の前までは古い (Raspberry Pi Imagerがなかった時の) 情報なので,読み飛ばして,「セットアップ」へ進んでください。
**RaspberryPi以外のPCを使って、FAT32(重要!!)でフォーマットする。下にubuntu14.04におけるコマンドでのフォーマット方法を記す.その他にも,Gpartedというソフトをインストールすると,GUIで簡単にフォーマットすることもできる($sudo apt-get install gparted).
**SDカードがどこにマウントされているかとSDカードのフォーマット形式を確認する. $sudo blkid
**SDカードが/dev/sde1にマウントされているとすると次のように表示される. 「/dev/sde1: UUID="ccf7a44f-4a4c-xxxxxxxx-xxxxxxxx" TYPE="ext3"」
**(SDカードがマウントされている場所は,$dfでも確認できる.)
**SDカードをアンマウントする. $sudo umount /dev/sde1(←SDカードのファイルシステム名.)
**SDカードをFAT32でフォーマットする. $sudo mkfs.vfat -v -c -F 32 /dev/sde1

# RaspberryPiの最新版[[OS(Raspbian)|http://www.raspberrypi.org/downloads]]をダウンロードする。
# ダウンロードしたzipを解凍する。(例:/home/raspberry)
**$ mkdir ~/raspberry
**$ mv ~/Downloads/2014-09-09-wheezy-raspbian.zip /home/raspberry/
**$ cd /home/raspberry
**$ unzip 2014-09-09-wheezy-raspbian.zip
# SDカードをアンマウントする. 
**$ sudo umount /dev/sde1(←SDカードのファイルシステム名.)
# 下のコマンドで,SDカードにOSのイメージファイルを焼く。
**$ sudo dd bs=1M if=2014-09-09-wheezy-raspbian.img of=/dev/sde
**※ifには解凍したファイルを指定。ofにはSDカードのファイルシステム名を指定(dfコマンドなどを打つか、/dev以下を検索するなどして調べる.※/dev/sde1の1はパーティション番号なので不要)。
**※bsは、一度に読み書きするファイルのサイズを指定するパラメータであり、PCのメモリと比較し大きいとメモリ以外にswap領域を使用するため、処理速度が遅くなる。一方で小さいと書き込む回数が多くなり、同じく遅くなる。
# 下のように書き込み結果が表示されて,コマンドプロンプトに戻るまでしばらく待つ.(数分かかるが,それまで絶対にSDカードを抜かないこと.)
**3125+0 レコード入力
**3125+0 レコード出力
**3276800000 バイト (3.3 GB) コピーされました、 341.726 秒、 9.6 MB/秒
# 最後にsync (システムを停止する前に、バッファ(メモリ上のデータ)内に蓄積されているデータで,まだハードディスクに書き込まれていないものを,強制的にディスクに書き込む。)
**$ sudo sync
# SDカードを抜き、RaspberryPiに差し込む。

! セットアップ
※DHCPが可能なインターネット環境にいる場合は、RaspberryPiをLANケーブルで接続すれば、この段階からsshで接続できるかも(未確認)?その場合は、自動で割り振られたIPアドレスをルーターのDHCPクライアントリストを見てIPアドレスを確認。sshで接続。設定画面を出す。$sudo raspi-config

ここからRaspberryPiでの作業{{br}}
準備:RaspberryPi, ディスプレイ(要HDMI-DVI変換ケーブル または HDMI-VGA(D-SUB)変換ケーブル), USBキーボード, 電源ケーブル(スマートフォン用の電源)
# 電源を入れる。
# RaspberryPiの設定画面が現れるので、必要な設定を行う。この設定画面は最初に電源を入れた時には必ず開く。後で設定したい時は下のコマンドを入力する。画面はバージョンによって異なるので、必要とする設定をする場所は各自で探すこと。
$sudo raspi-config
# ファイルシステムの領域を広げる。[Expand Filesystem]
# 使用するキーボードの配列を設定をする。[Internationalisation Options]→[Change Keyboard Layout]→[Generic 105-key (Intl) PC] → [other] → [Japanese] → [Japanese - Japanese(OADG109A)]を選択。
# タイムゾーンを設定する。[Internationalisation Options]→[Change Locate]→[Asia]→[Tokyo]
# sshを使用可能にする。[Advanced options]→[SSH]→[Enable] 私の使用したRaspberryPiではデフォルトでssh使用可能[enable]になっていたが、念の為確認すること。
# 設定画面を終了する。[Tab]→[Finish]

!スワップを無効化する

* micro SDカードの寿命を伸ばすため。
* [[参考|http://denshikousaku.net/extend-life-expectancy-of-raspberry-pi-sd-card]]
* sudo swapoff --all
* sudo apt-get remove dphys-swapfile

!osのversionを確認

lsb_release -a

!インターネットの設定
!! IPアドレスを設定する。(Raspbian Wheezyの場合)→Raspbian JessieやStretchの場合は,この下の項目を参照のこと。
* 注) Raspiは,IPアドレスを変更した後,再起動しないと新IPアドレスを認識しないよう。
$sudo vi /etc/network/interfaces

auto lo

iface lo inet loopback
# iface eth0 inet dhcp ←コメントアウトする。
iface eth0 inet static ←追記

address 192.168.0.XXX ←追記
netmask 255.255.255.0 ←追記
gateway 192.168.0.1 ←追記
dns-nameservers 192.168.10.2 ←追記 (DNS サーバーのアドレス)

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

$sudo /etc/init.d/networking restart

!! IPアドレスを設定する。インターネットの設定(Raspbian Jessie, busterの場合)
$sudo vi /etc/dhcpcd.conf

interface eth0 ←追記
static ip_address=192.168.0.XXX/24 ←追記
static routers=192.168.0.1 ←追記
static domain_name_servers=192.168.0.1 ←追記

再起動する。

!! IPアドレスを設定する。インターネットの設定(Raspbian Stretchの場合)
* Jessieの場合とほぼ同じだが,「eth0」が使えない。ifconfig等で自分のネットワーク名(数字とアルファベットからなる長い文字列)を確認してdhcpcd.confの「eth0」の場所にそのネットワーク名を書く。
* Wifiで固定IPアドレスを設定するには,
** まずは,WifiのSSIDとパスワードをwpa_supplicant.confに設定する。
** 次に,
sudo dhclient wlan0

!!他のPCからsshでアクセスできるか確認。
$ping 192.168.0.XXX ←まずは、インターネットで認識されているかを確認。
$ssh pi@192.168.0.XXX

!!RaspberryPiのデフォルトのユーザー名とパスワード
user: pi
password: raspberry

! 最後に、忘れずにデフォルトユーザ「pi」を削除。
「新サイトPC設定」にしたがって、サイト名のユーザを作成した後に、ユーザpiを削除しておく。
$sudo userdel -r pi

! RaspberryPiをアップデート
sudo apt-get update ... インストール済みのパッケージのアップデートするリストを取得
sudo apt-get full-upgrade -y ... 取得したリストに基づき,その全てをアップグレード。※時間がかかるので,終わるまで待つこと。
sudo apt-get autoremove -y ... アップグレード後に不要となったパッケージを削除
sudo apt-get clean ... SDカード空き容量を確保
sudo reboot ... 再起動

! I2Cを使うには...

* [[最近の Raspberry Pi で I2C を有効化する方法|http://rabbit-note.com/2015/02/08/raspberry-pi-i2c-activation/]]
** raspi-config
** sudo vi /etc/modules
** → 末尾にi2c-devという1行を追加。
** そしてラズパイを再起動。
* sudo apt-get install i2c-tools python-smbus
* sudo adduser pi i2c

! 時計モジュール(Mini RTC Module)を取り付ける
* 上記のようにしてI2Cが使えるようにする。
* [[ここ|http://thepihut.com/blogs/raspberry-pi-tutorials/17209332-adding-a-real-time-clock-to-your-raspberry-pi]]を見ながら時計モジュールを取り付ける。
* sudo i2cdetect -y 1
** その結果, 表みたいな表示が出て, 下の方に68という数値がぽつんと現れるはず。
* $ sudo modprobe rtc-ds1307
* $ sudo bash
* # echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
* # exit
* $ sudo hwclock
** まずは,hwclockを起動させる。下のコマンド「hwclock -r」「hwclock -w」をうってもエラーとなる場合,これをやってから,下のコマンドをうつと動く。
* $ sudo hwclock -r
** その結果, RTCの時計が表示される。多分, 現在とはだいぶずれている。
* ラズパイをネットにつなぐかして, 時計をちゃんと合わせる。
* 日本時間(JST)にしたい場合は, sudo dpkg-reconfigure tzdataで[[タイムゾーンを設定|http://www.absolute-keitarou.net/blog/?p=1201]]。
* sudo hwclock -w
** その結果, ラズパイの現在時刻がRTCに書き込まれる。
* sudo vi /etc/modules
** → 末尾にrtc-ds1307という1行を追記する。
* sudo vi /etc/rc.local
** exit 0の直前に, 以下を記入 (参考: [[このページ|http://thepihut.com/blogs/raspberry-pi-tutorials/17209332-adding-a-real-time-clock-to-your-raspberry-pi]]の最後らへん):
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s
date


! リアルタイムクロックの設定に関して、
sudo nano /etc/default/hwclock
において
HWCLOCKACCESS=no
としてください(真ん中ら辺にある)。
一方、末尾のHCTOSYS_DEVICE=rtc0
はこのままでOKです。rtc0を書いていなければご記入ください。

これで、電源を切っても、システムクロックとハードウェアクロックが競合せずに?
正確な時刻をラズパイに送ることができるようになります。

! ラズパイのディストリビューションやバージョンを確認する
lsb_release -a

!ラズパイで動画再生
* omxplayerを使う。エラーメッセージがなぜか"Have a nice day"。mpgは再生ダメ。mp4はOK。