「Raspberry Pi」の版間の差分
4行目: | 4行目: | ||
[[ru:Raspberry Pi]] |
[[ru:Raspberry Pi]] |
||
[[zh-CN:Raspberry Pi]] |
[[zh-CN:Raspberry Pi]] |
||
+ | [[Wikipedia:ja:Raspberry Pi|Wikipedia]] より: |
||
− | Raspberry Pi (RPi) は [[Wikipedia:ja:ARMアーキテクチャ|ARMv6 アーキテクチャ]]を搭載したミニマルなコンピュータです。[http://www.raspberrypi.org/ プロジェクトの詳細] と [http://uk.farnell.com/raspberry-pi 技術仕様]。 |
||
+ | :"''Raspberry Pi はクレジットカードサイズのシングルボードコンピュータのシリーズである。イギリスのラズベリーパイ財団によって開発されており、学校で基本的なコンピュータ科学の教育を促進することを意図している。''" |
||
+ | オリジナルモデルは Broadcom SoC BCM2835 ([[Wikipedia:ARM11|ARM11 マイクロアーキテクチャ]]) を使用していましたが、ラズベリーパイ財団は最近になってニューモデルの "Raspberry Pi 2" をリリースしました。RasPi 2 には BCM2836 SoC (クアッドコアの [[Wikipedia:ARM_Cortex-A7|ARM Cortex A7]] アーキテクチャ) が搭載されています。 |
||
== 前書き == |
== 前書き == |
||
10行目: | 12行目: | ||
{{Note|ARM アーキテクチャのサポートは公式 Arch Linux フォーラムではなく http://archlinuxarm.org で提供されています。ARM 固有の問題に関する投稿は [[フォーラムエチケット#Arch Linux ディストリビューションのサポートオンリー|Arch Linux ディストリビューションのサポートオンリー]]ポリシーに従って直ちにクローズされます。}} |
{{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 のインストール == |
== Arch Linux ARM のインストール == |
||
− | [http://archlinuxarm.org/platforms/armv6/raspberry-pi 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 のリポジトリ] からダウンロードできます。 |
||
− | === ファイルシステムのリサイズ === |
||
− | イメージサイズは 2GB です。(2GB より大きい) SD カード全体を使うように root ファイルシステムを拡大するには、[http://raspberrypi.stackexchange.com/questions/499/how-can-i-resize-my-root-partition 既存のガイド] に従って下さい。 |
||
+ | その後、Raspberry Pi を接続して立ち上げて、モニター/キーボードを使うか[[#シリアルコンソール|シリアルコンソール]]でログインします。そして、パッケージを[[en2:Offline_installation_of_packages|オフラインインストール]]してください。パッケージの依存パッケージが欠けている場合は、依存パッケージもダウンロードしてインストールしてください。 |
||
− | == 無線 LAN == |
||
+ | パッケージをインストールしたら、インターネットに接続してビギナーズガイドの[[ビギナーズガイド#無線|このセクション]]に書かれているように設定します。 |
||
− | デフォルトで新しくインストールすると dhcpcd で有線の LAN に接続されます。始めから wlan を使って Raspberry Pi にアクセスしたい場合、SD カードに必要なファイルを作成してください。netctl のプロファイルを作って systemd ユニットの netctl-auto を有効にする必要があります。 |
||
− | * sdcard-partition5 をマウント |
||
− | # mount /dev/mmcblk0p5 /mnt |
||
− | * [[netctl|netctl]] プロファイルを作成、メインマシンで netctl を使っている場合はそのプロファイルをコピー |
||
− | # cp /etc/netctl/profilename /mnt/etc/netctl/ |
||
− | もしくは /examples ディレクトリ {{ic|/etc/netctl/examples}} からプロファイルを持ってきて修正してください。プロファイルの使用するインターフェイスは {{ic|wlpsXsX}} ではなく {{ic|wlan0}} です。 |
||
− | * 利用可能なネットワークに自動接続するには systemd ユニットの netctl-auto を有効にしてください。 |
||
− | # ln -s /usr/lib/systemd/system/netctl-auto@.service /mnt/etc/systemd/system/multi-user.target.wants/netctl-auto@wlan0.service |
||
− | * sd カードをアンマウント |
||
− | # umount /mnt |
||
− | * sd カードを rpi に挿入して起動してください。 |
||
− | * {{ic|ssh root@alarmpi}} で接続、パスワードは {{ic|root}} |
||
== オーディオ == |
== オーディオ == |
||
94行目: | 104行目: | ||
人間が読めるように出力するには: |
人間が読めるように出力するには: |
||
− | {{hc|awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp|2= |
+ | {{hc|$ awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp|2= |
54.1°C |
54.1°C |
||
}} |
}} |
||
122行目: | 132行目: | ||
over_voltage=0 |
over_voltage=0 |
||
− | + | {{ic|*_min}} の行は任意で、それぞれの設定の最低値を定義します。システムの負担が低い時は、指定した値まで下がります。オプションの詳しい説明や例は elinux の [http://elinux.org/RPiconfig#Overclocking Overclocking] 記事を見て下さい。 |
|
新しい設定を適用するには再起動が必要です。 |
新しい設定を適用するには再起動が必要です。 |
||
+ | CPU のオーバークロック設定は、負担が高い時にガバナーが CPU の周波数を上げる場合にだけ適用されます。次のコマンドで現在の CPU の周波数を確認できます: |
||
− | {{Note|The overclocked setting for CPU clock applies only when the governor throttles up the CPU, i.e. under load.}} |
||
− | |||
− | 次のコマンドで現在の CPU の周波数を確認できます: |
||
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq |
$ 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 カードのパフォーマンスを最大化するヒント == |
== SD カードのパフォーマンスを最大化するヒント == |
||
137行目: | 156行目: | ||
=== 起動時に fsck を有効にする === |
=== 起動時に fsck を有効にする === |
||
+ | [[fsck#ブート時のチェック]]を見てください。カーネルパラメータは {{ic|/boot/cmdline.txt}} で指定するようにしてください。 |
||
− | 起動時の fsck を有効にするには、最初に root ファイルシステムを読み取り専用でマウントして、それから読み書き可能で再マウントする必要があります。 |
||
− | |||
− | まず、起動時に root を読み取り専用になるようにしてください。{{ic|/boot/cmdline.txt}} を編集して root パーティションのオプションに "ro" を追加します。 |
||
− | ipv6.disable=1 selinux=0 plymouth.enable=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p5 '''ro''' rootfstype=ext4 elevator=noop rootwait |
||
− | |||
− | 次に、起動中にパーティションを再マウントするように {{ic|/etc/fstab}} に次の行を追加します。 |
||
− | /dev/mmcblk0p5 / ext4 remount,rw 0 0 |
||
− | |||
− | === /var/log を RAM に移動する === |
||
− | |||
− | {{Accuracy|1=Very questionable tip, see also [https://wiki.archlinux.org/index.php?title=ArchWiki:Reports&diff=next&oldid=286971].}} |
||
− | |||
− | {{Warning|All system logs will be lost on every reboot.}} |
||
− | |||
− | 次のエントリを {{ic|/etc/fstab}} に追加すると 16MiB の容量の RAM ディスクが作成されます: |
||
− | tmpfs /var/log tmpfs nodev,nosuid,size=16M 0 0 |
||
− | |||
− | 既存のログディレクトリを削除してください: |
||
− | # rm -R /var/log |
||
− | |||
− | 変更を適用するためにシステムを再起動してください。 |
||
== シリアルコンソール == |
== シリアルコンソール == |
||
184行目: | 183行目: | ||
{{ic|/boot/config.txt}} に以下を追加する必要があります: |
{{ic|/boot/config.txt}} に以下を追加する必要があります: |
||
+ | gpu_mem=128 |
||
start_file=start_x.elf |
start_file=start_x.elf |
||
fixup_file=fixup_x.dat |
fixup_file=fixup_x.dat |
||
200行目: | 200行目: | ||
cma_hwm= |
cma_hwm= |
||
cma_offline_start= |
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 用の |
+ | 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}} を編集することで設定します: |
{{ic|/etc/conf.d/rngd}} を編集することで設定します: |
||
RNGD_OPTS="-o /dev/random -r /dev/hwrng" |
RNGD_OPTS="-o /dev/random -r /dev/hwrng" |
||
− | 設定したら '''rngd''' デーモンを再起動してください: |
+ | 設定したら '''rngd''' デーモンを[[再起動]]してください: |
− | systemctl restart rngd |
+ | # systemctl restart rngd |
この設定で、ハードウェア乱数生成器からのデータがカーネルのエントロピープール ({{ic|/dev/random}}) に取り入れられるようになります。 |
この設定で、ハードウェア乱数生成器からのデータがカーネルのエントロピープール ({{ic|/dev/random}}) に取り入れられるようになります。 |
||
214行目: | 228行目: | ||
=== Python === |
=== Python === |
||
Python から GPIO ピンを使えるようにするために、[https://pypi.python.org/pypi/RPi.GPIO RPi.GPIO] ライブラリを使用することができます。[[AUR|AUR]] から {{AUR|python-raspberry-gpio}} か {{AUR|python2-raspberry-gpio}} のどちらかをインストールしてください。 |
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/RPiconfig RPi Config] - ボンネットの下の設定に関連する情報がまとまっています |
− | * [http://elinux.org/RPI_vcgencmd_usage RPi vcgencmd usage] - |
+ | * [http://elinux.org/RPI_vcgencmd_usage RPi vcgencmd usage] - ファームウェアコマンドの vcgencmd の概要 |
− | * [http://archpi.dabase.com/ |
+ | * [http://archpi.dabase.com/ Arch Linux ARM on Raspberry PI] - RPi で Arch Linux を動かす時のヒントが書かれている FAQ スタイルのサイト |
2015年2月26日 (木) 15:54時点における版
Wikipedia より:
- "Raspberry Pi はクレジットカードサイズのシングルボードコンピュータのシリーズである。イギリスのラズベリーパイ財団によって開発されており、学校で基本的なコンピュータ科学の教育を促進することを意図している。"
オリジナルモデルは Broadcom SoC BCM2835 (ARM11 マイクロアーキテクチャ) を使用していましたが、ラズベリーパイ財団は最近になってニューモデルの "Raspberry Pi 2" をリリースしました。RasPi 2 には BCM2836 SoC (クアッドコアの ARM Cortex A7 アーキテクチャ) が搭載されています。
目次
前書き
この記事は完全なセットアップガイドではなく、読者が既に Arch システムを構築していることを前提としています。ユーザーの作成やシステムの管理など、基本的な作業の方法がよくわからない場合、Arch 初心者はビギナーズガイドを読むことが推奨されています。
システム構成
Raspberry Pi は ARM ベースのデバイスであり、ARM アーキテクチャ用にコンパイルされたバイナリが必要になります。ARM 用のバイナリは Arch Linux を ARM ベースのデバイスに移植している 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 のインストール
Arch Linux ARM Pi のドキュメント または 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 にパッケージをインストール・設定
必要なパッケージは全て Arch Linux ARM の公式ウェブサイト で見つけることができ、Arch Linux ARM のリポジトリ からダウンロードできます。
その後、Raspberry Pi を接続して立ち上げて、モニター/キーボードを使うかシリアルコンソールでログインします。そして、パッケージをオフラインインストールしてください。パッケージの依存パッケージが欠けている場合は、依存パッケージもダウンロードしてインストールしてください。
パッケージをインストールしたら、インターネットに接続してビギナーズガイドのこのセクションに書かれているように設定します。
オーディオ
alsa-utils, alsa-firmware, alsa-lib, alsa-plugins パッケージをインストールしてください:
# pacman -S alsa-utils alsa-firmware alsa-lib alsa-plugins
任意で、alsamixer
を使ってデフォルトのボリュームを調整してください。唯一の音源 "PCM" がミュートされていないことを確認してください (ミュートされている場合は MM
と表示されます、ミュートを解除するには M
を押して下さい)。
音源の出力を選択するには:
$ amixer cset numid=3 x
x
は以下のどれかになります:
- 0 は自動
- 1 はアナログ出力
- 3 は HDMI
HDMI オーディオの注意
アプリケーションによっては音声を HDMI で出力するために /boot/config.txt
に設定が必要です:
hdmi_drive=2
ビデオ
HDMI / アナログ TV 出力
HDMI やアナログ TV 出力のオン・オフを切り替えるには、次を見て下さい:
/opt/vc/bin/tvservice
-s パラメータでディスプレイの状態を確認し、-o パラメータでディスプレイをオフに、-p パラメータで優先設定を使って HDMI をオンにします。
オーバースキャン・アンダースキャンを適切に修正するには調整が必要で、多くの設定がある 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 以外の出力のオプションを含んでいるこの設定ファイルを見て下さい。
新しい設定を適用するには再起動が必要です。
X.org ドライバー
Raspberry Pi の X.org ドライバーは xf86-video-fbdev パッケージでインストールできます:
# pacman -S xf86-video-fbdev
オンボードのハードウェアセンサー
温度
温度センサーは raspberrypi-firmware-tools パッケージにあるユーティリティで使うことができます。RPi は BCM2835 SoC (CPU/GPU) 上にセンサーを搭載しています:
$ /opt/vc/bin/vcgencmd measure_temp
temp=49.8'C
また、ファイルシステムから読み取ることもできます:
$ cat /sys/class/thermal/thermal_zone0/temp
49768
人間が読めるように出力するには:
$ awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp
54.1°C
電圧
同じように /opt/vc/bin/vcgencmd
で4つの異なる電圧をチェックすることができます:
$ /opt/vc/bin/vcgencmd measure_volts <id>
<id>
は以下のどれかに置き換えてください:
- core はコアの電圧
- sdram_c は sdram Core の電圧
- sdram_i は sdram I/O の電圧
- sdram_p は sdram PHY の電圧
軽量なモニタリングスイート
monitorixAUR は v3.2.0 から RPi をサポートしています。スクリーンショットはここ にあります。
オーバークロック / アンダークロック
/boot/config.txt
を編集することで RPi をオーバークロックさせることができます、例:
arm_freq=800 arm_freq_min=100 core_freq=300 core_freq_min=75 sdram_freq=400 over_voltage=0
*_min
の行は任意で、それぞれの設定の最低値を定義します。システムの負担が低い時は、指定した値まで下がります。オプションの詳しい説明や例は elinux の Overclocking 記事を見て下さい。
新しい設定を適用するには再起動が必要です。
CPU のオーバークロック設定は、負担が高い時にガバナーが CPU の周波数を上げる場合にだけ適用されます。次のコマンドで現在の CPU の周波数を確認できます:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
スケーリングガバナーの詳細は CPU 周波数スケーリングを見てください。
SD カードのパフォーマンスを最大化するヒント
一般的なパフォーマンスを上げる方法についてはパフォーマンスの最大化を見て下さい。
起動時に fsck を有効にする
fsck#ブート時のチェックを見てください。カーネルパラメータは /boot/cmdline.txt
で指定するようにしてください。
シリアルコンソール
ブートメッセージを見るには、デフォルトの /boot/cmdline.txt
を編集して、loglevel
を 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
/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
/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
/etc/modprobe.d/blacklist.conf
に以下の行を追加してください:
blacklist i2c_bcm2708
(/dev/video0
を使用する) 標準的なアプリケーションを使うには V4L2 ドライバーをロードする必要があります。以下のように自動ロードファイルを作成することで起動時に自動的にロードさせることが可能です:
/etc/modules-load.d/rpi-camera.conf
bcm2835-v4l2
ハードウェア乱数生成器
Raspberry Pi 用の Arch Linux ARM には rng-tools パッケージがインストールされており、bcm2708-rng
が起動時にロードされるように設定されています (こちら を参照) が、Hardware RNG Entropy Gatherer Daemon (rngd) にハードウェア乱数生成器の場所を教えてやる必要があります。
/etc/conf.d/rngd
を編集することで設定します:
RNGD_OPTS="-o /dev/random -r /dev/hwrng"
設定したら rngd デーモンを再起動してください:
# systemctl restart rngd
この設定で、ハードウェア乱数生成器からのデータがカーネルのエントロピープール (/dev/random
) に取り入れられるようになります。
GPIO
Python
Python から GPIO ピンを使えるようにするために、RPi.GPIO ライブラリを使用することができます。AUR から python-raspberry-gpioAUR か python2-raspberry-gpioAUR のどちらかをインストールしてください。
QEMU chroot
場合によっては Raspberry Pi を動かすよりもディスクイメージを直接操作したほうが楽だということもあるでしょう。RPi の root パーティションが含まれている SD カードをマウントして、そこに chroot することで直接操作することができます。chroot からは、pacman を実行してパッケージをインストールしたり、巨大なライブラリをコンパイルすることが可能です。実行可能ファイルは ARM アーキテクチャ用のものなので、QEMU を使って x86 への変換を行う必要があります。
AUR から binfmt-supportAUR と qemu-user-staticAUR をインストールしてください。
ARM から x86 への変換を有効にします:
# update-binfmts --importdir /var/lib/binfmts/ --import # update-binfmts --display qemu-arm
SD カードを 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 してください。
参照
- RPi Config - ボンネットの下の設定に関連する情報がまとまっています
- RPi vcgencmd usage - ファームウェアコマンドの vcgencmd の概要
- Arch Linux ARM on Raspberry PI - RPi で Arch Linux を動かす時のヒントが書かれている FAQ スタイルのサイト