コンテンツにスキップ

「Raspberry Pi」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
編集の要約なし
直接転送に変更
タグ: 転送先変更
 
(7人の利用者による、間の27版が非表示)
1行目: 1行目:
[[Category:ARM アーキテクチャ]]
#redirect [[ArchWiki:アーカイブ]]
[[Category:アーカイブ]]
[[cs:Raspberry Pi]]
[[en:Raspberry Pi]]
[[ru:Raspberry Pi]]
[[zh-CN:Raspberry Pi]]
[[Wikipedia:ja:Raspberry Pi|Wikipedia]] より:
:"''Raspberry Pi はクレジットカードサイズのシングルボードコンピュータのシリーズである。イギリスのラズベリーパイ財団によって開発されており、学校で基本的なコンピュータ科学の教育を促進することを意図している。''"
オリジナルモデルは Broadcom SoC BCM2835 ([[Wikipedia:ARM11|ARM11 マイクロアーキテクチャ]]) を使用していましたが、ラズベリーパイ財団は最近になってニューモデルの "Raspberry Pi 2" をリリースしました。RasPi 2 には BCM2836 SoC (クアッドコアの [[Wikipedia:ARM_Cortex-A7|ARM Cortex A7]] アーキテクチャ) が搭載されています。

== 前書き ==
この記事は完全なセットアップガイドではなく、読者が既に Arch システムを構築していることを前提としています。ユーザーの作成やシステムの管理など、基本的な作業の方法がよくわからない場合、Arch 初心者は[[ビギナーズガイド]]を読むことが推奨されています。

{{Note|ARM アーキテクチャのサポートは公式 Arch Linux フォーラムではなく http://archlinuxarm.org で提供されています。ARM 固有の問題に関する投稿は [[フォーラムエチケット#Arch Linux ディストリビューションのサポートオンリー|Arch Linux ディストリビューションのサポートオンリー]]ポリシーに従って直ちにクローズされます。}}

== システム構成 ==

Raspberry Pi は ARM ベースのデバイスであり、ARM アーキテクチャ用にコンパイルされたバイナリが必要になります。ARM 用のバイナリは Arch Linux を ARM ベースのデバイスに移植している [http://archlinuxarm.org/about Arch Linux ARM プロジェクト] によって提供されています。ALARM プロジェクトのウェブサイトには独自のコミュニティとフォーラムがあります。オリジナルの Arch のフォーラムでは ARM に関連する問題は''サポートされていません''。Raspberry Pi 2 が登場したことで、デバイスのアーキテクチャによって必要なパッケージは2つに分かれています:
* ARMv6 (BCM2835): Raspberry Pi Model A, A+, B, B+
* ARMv7 (BCM2836): Raspberry Pi 2 (Model B+ ベース)

== Arch Linux ARM のインストール ==

[http://archlinuxarm.org/platforms/armv6/raspberry-pi Arch Linux ARM Pi のドキュメント] または [http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2 Arch Linux ARM Pi2 のドキュメント] を見てください。

== ネットワーク ==

新規インストールには設定済みの DHCP クライアントデーモン (''dhcpcd'') が付属しているため、ほとんどのルーターでは自動的に LAN に接続されます。

最初から [[Secure Shell]] を使って SD カードにアクセスする場合は、Raspberry Pi をイーサネットケーブルで接続してルーターの設定を通して IP アドレスを割り当てるのが一番簡単です。root で直接アクセスすることができます (パスワード: root)。まず初めにパスワードを変更することを強く推奨します。任意で [[SSH 鍵]]も設定してください。

=== Ethernet を使わずに WLAN を設定 ===

無線インターネット接続を確立する必要がある場合、いくつかパッケージを追加でダウンロードして SD カードに保存する必要があります。[[netctl]] を使用する場合、最低でも [[WPA supplicant]] と依存パッケージの ''libnl'' が必要になります。また、''dialog'' と依存パッケージの ''ncurses'' もインストールしておいたほうが便利でしょう。

まとめると以下を実行する必要があります:
* 他のコンピュータから SD カードにパッケージをダウンロード
* Raspberry Pi にパッケージをインストール・設定

必要なパッケージは全て [http://archlinuxarm.org/packages Arch Linux ARM の公式ウェブサイト] で見つけることができ、[http://mirror.archlinuxarm.org Arch Linux ARM のリポジトリ] からダウンロードできます。

その後、Raspberry Pi を接続して立ち上げて、モニター/キーボードを使うか[[#シリアルコンソール|シリアルコンソール]]でログインします。そして、パッケージを[[en2:Offline_installation_of_packages|オフラインインストール]]してください。パッケージの依存パッケージが欠けている場合は、依存パッケージもダウンロードしてインストールしてください。

パッケージをインストールしたら、インターネットに接続してビギナーズガイドの[[ビギナーズガイド#無線|このセクション]]に書かれているように設定します。

== オーディオ ==
{{Note|必須モジュール {{ic|snd-bcm2835}} はデフォルトで自動ロードされます。}}

'''alsa-utils''', '''alsa-firmware''', '''alsa-lib''', '''alsa-plugins''' パッケージをインストールしてください:
# pacman -S alsa-utils alsa-firmware alsa-lib alsa-plugins

任意で、{{ic|alsamixer}} を使ってデフォルトのボリュームを調整してください。唯一の音源 "PCM" がミュートされていないことを確認してください (ミュートされている場合は {{ic|MM}} と表示されます、ミュートを解除するには {{ic|M}} を押して下さい)。

音源の出力を選択するには:
$ amixer cset numid=3 ''x''

{{ic|''x''}} は以下のどれかになります:
*0 は自動
*1 はアナログ出力
*3 は HDMI

=== HDMI オーディオの注意 ===
アプリケーションによっては音声を HDMI で出力するために {{ic|/boot/config.txt}} に設定が必要です:
hdmi_drive=2

== ビデオ ==

=== HDMI / アナログ TV 出力 ===
[[wikipedia:ja:HDMI|HDMI]] やアナログ TV 出力のオン・オフを切り替えるには、次を見て下さい:

/opt/vc/bin/tvservice

''-s'' パラメータでディスプレイの状態を確認し、''-o'' パラメータでディスプレイをオフに、''-p'' パラメータで優先設定を使って HDMI をオンにします。

オーバースキャン・アンダースキャンを適切に修正するには調整が必要で、多くの設定がある {{ic|boot/config.txt}} で簡単に行うことができます。修正するには、コメントの指示に従って適切な行の設定をアンコメントしてください:

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
overscan_right=8
overscan_top=-16
overscan_bottom=-16

アナログビデオ出力を使いたいユーザーは NTSC 以外の出力のオプションを含んでいる[https://raw.github.com/Evilpaul/RPi-config/master/config.txt この]設定ファイルを見て下さい。

新しい設定を適用するには再起動が必要です。

=== X.org ドライバー ===

Raspberry Pi の X.org ドライバーは '''xf86-video-fbdev''' パッケージでインストールできます:
# pacman -S xf86-video-fbdev

== オンボードのハードウェアセンサー ==
=== 温度 ===
温度センサーは '''raspberrypi-firmware-tools''' パッケージにあるユーティリティで使うことができます。RPi は BCM2835 SoC (CPU/GPU) 上にセンサーを搭載しています:

{{hc|$ /opt/vc/bin/vcgencmd measure_temp|2=
temp=49.8'C
}}

また、ファイルシステムから読み取ることもできます:
{{hc|$ cat /sys/class/thermal/thermal_zone0/temp|2=
49768
}}

人間が読めるように出力するには:
{{hc|$ awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp|2=
54.1°C
}}

=== 電圧 ===
同じように {{ic|/opt/vc/bin/vcgencmd}} で4つの異なる電圧をチェックすることができます:

$ /opt/vc/bin/vcgencmd measure_volts ''<id>''

{{ic|''<id>''}} は以下のどれかに置き換えてください:
*core はコアの電圧
*sdram_c は sdram Core の電圧
*sdram_i は sdram I/O の電圧
*sdram_p は sdram PHY の電圧

=== 軽量なモニタリングスイート ===
{{AUR|monitorix}} は v3.2.0 から RPi をサポートしています。スクリーンショットは[http://www.monitorix.org/screenshots.html ここ] にあります。

== オーバークロック / アンダークロック ==
{{ic|/boot/config.txt}} を編集することで RPi をオーバークロックさせることができます、例:
arm_freq=800
arm_freq_min=100
core_freq=300
core_freq_min=75
sdram_freq=400
over_voltage=0

{{ic|*_min}} の行は任意で、それぞれの設定の最低値を定義します。システムの負担が低い時は、指定した値まで下がります。オプションの詳しい説明や例は elinux の [http://elinux.org/RPiconfig#Overclocking Overclocking] 記事を見て下さい。

新しい設定を適用するには再起動が必要です。

CPU のオーバークロック設定は、負担が高い時にガバナーが CPU の周波数を上げる場合にだけ適用されます。次のコマンドで現在の CPU の周波数を確認できます:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

スケーリングガバナーの詳細は [[CPU 周波数スケーリング]]を見てください。

{{Tip|以下のスクリプトを実行すると RPi に設定された全ての周波数が表示されます:
{{bc|<nowiki>
#/bin/bash
for src in arm core h264 isp v3d uart pwm emmc pixel vec hdmi dpi ; do
echo -e "$src:\t$(/opt/vc/bin/vcgencmd measure_clock $src)"
done
</nowiki>}}
}}

== SD カードのパフォーマンスを最大化するヒント ==

一般的なパフォーマンスを上げる方法については[[パフォーマンスの最大化]]を見て下さい。

=== 起動時に fsck を有効にする ===

[[fsck#ブート時のチェック]]を見てください。カーネルパラメータは {{ic|/boot/cmdline.txt}} で指定するようにしてください。

== シリアルコンソール ==
ブートメッセージを見るには、デフォルトの {{ic|/boot/cmdline.txt}} を編集して、{{ic|loglevel}} を {{ic|5}} に変更してください:
loglevel=5

速度を 115200 から 38400 に変える:
console=ttyAMA0,38400 kgdboc=ttyAMA0,38400

getty サービスを起動する:
# systemctl start getty@ttyAMA0

ブート時に有効にする:
# systemctl enable getty@ttyAMA0.service

適当な service リンクを作成する:
# ln -s /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyAMA0.service

そして接続 :)
# screen /dev/ttyUSB0 38400

== Raspberry Pi カメラモジュール ==
カメラモジュールのコマンドは '''raspberrypi-firmware-tools''' パッケージに含まれています - このパッケージはデフォルトでインストールされています。以下のコマンドで使うことができます:
$ /opt/vc/bin/raspistill
$ /opt/vc/bin/raspivid

{{ic|/boot/config.txt}} に以下を追加する必要があります:
gpu_mem=128
start_file=start_x.elf
fixup_file=fixup_x.dat

LED をオフにする設定 (任意):
disable_camera_led=1

以下のエラーが表示される場合:
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

{{ic|/boot/config.txt}} に以下の値を設定してみてください:
cma_lwm=
cma_hwm=
cma_offline_start=

以下のエラーが表示される場合:

mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component
mmal: Only 64M of gpu_mem is configured. Try running "sudo raspi-config" and ensure that "memory_split" has a value of 128 or greater

{{ic|/etc/modprobe.d/blacklist.conf}} に以下の行を追加してください:
blacklist i2c_bcm2708

({{ic|/dev/video0}} を使用する) 標準的なアプリケーションを使うには V4L2 ドライバーをロードする必要があります。以下のように自動ロードファイルを作成することで起動時に自動的にロードさせることが可能です:
{{hc|/etc/modules-load.d/rpi-camera.conf|bcm2835-v4l2}}

== ハードウェア乱数生成器 ==
Raspberry Pi 用の Arch Linux ARM には '''rng-tools''' パッケージがインストールされており、{{ic|bcm2708-rng}} が起動時にロードされるように設定されています ([http://archlinuxarm.org/forum/viewtopic.php?f=31&t=4993#p27708 こちら] を参照) が、Hardware RNG Entropy Gatherer Daemon ('''rngd''') にハードウェア乱数生成器の場所を教えてやる必要があります。

{{ic|/etc/conf.d/rngd}} を編集することで設定します:
RNGD_OPTS="-o /dev/random -r /dev/hwrng"
設定したら '''rngd''' デーモンを[[再起動]]してください:
# systemctl restart rngd

この設定で、ハードウェア乱数生成器からのデータがカーネルのエントロピープール ({{ic|/dev/random}}) に取り入れられるようになります。

== GPIO ==
=== Python ===
Python から GPIO ピンを使えるようにするために、[https://pypi.python.org/pypi/RPi.GPIO RPi.GPIO] ライブラリを使用することができます。[[AUR|AUR]] から {{AUR|python-raspberry-gpio}} か {{AUR|python2-raspberry-gpio}} のどちらかをインストールしてください。

== QEMU chroot ==

場合によっては Raspberry Pi を動かすよりもディスクイメージを直接操作したほうが楽だということもあるでしょう。RPi の root パーティションが含まれている SD カードをマウントして、そこに chroot することで直接操作することができます。chroot からは、''pacman'' を実行してパッケージをインストールしたり、巨大なライブラリをコンパイルすることが可能です。実行可能ファイルは ARM アーキテクチャ用のものなので、[[QEMU]] を使って x86 への変換を行う必要があります。

[[AUR]] から {{AUR|binfmt-support}} と {{AUR|qemu-user-static}} をインストールしてください。

ARM から x86 への変換を有効にします:

# update-binfmts --importdir /var/lib/binfmts/ --import
# update-binfmts --display qemu-arm

SD カードを {{ic|mnt/}} にマウントします (デバイス名は適宜置き換えてください)。

# mkdir mnt
# mount /dev/mmcblk0p2 mnt

(ARM からの変換を処理する) QEMU の実行可能ファイルを SD カードの root にコピー:

# cp /usr/bin/qemu-arm-static mnt/usr/bin

最後に [[Change Root#Change root]] に書かれているように SD カードの root に chroot してください。

== 参照 ==
* [http://elinux.org/RPiconfig RPi Config] - ボンネットの下の設定に関連する情報がまとまっています
* [http://elinux.org/RPI_vcgencmd_usage RPi vcgencmd usage] - ファームウェアコマンドの vcgencmd の概要
* [http://archpi.dabase.com/ Arch Linux ARM on Raspberry PI] - RPi で Arch Linux を動かす時のヒントが書かれている FAQ スタイルのサイト

2022年11月2日 (水) 16:26時点における最新版