Orange Pi

提供: ArchWiki
2018年2月6日 (火) 23:44時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://archlinuxarm.org」を「https://archlinuxarm.org」に置換)
ナビゲーションに移動 検索に移動

Orange Pi (One) は ARMv7-A アーキテクチャで構成されたミニマルなコンピュータです。プロジェクトの詳細は 公式ホームページ を見てください。

警告:
  • Orange Pi は ALARM プロジェクトによる公式のサポートがありません。
  • linux-armv7-4.11.0-1 にアップグレードすると pi が起動しなくなります。

この記事は Banana Pi を元にしています。また、Arch 環境を既に立ち上げたことがある読者を対象にしており、セットアップについて包括的な説明は行いません。

インストール

以下では Arch Linux ARM の armv7 ベース環境を Orange Pi One にインストールします。メインラインによってサポートされている他の Orange Pi でも上手く行く可能性があります。

SD カードにベース環境をインストール

最初に SD カードを初期化してください:

dd if=/dev/zero of=/dev/sdX bs=1M count=8

fdisk を使用して SD カードのパーティショニングを行ってから、mkfs.ext4 -O ^metadata_csum,^64bit /dev/sdX1フォーマットしてください。

フォーマットしたファイルシステムをマウント (sda1 は適切なパーティションに置き換えてください):

# mkdir mnt
# mount /dev/sda1 mnt

ルートファイルシステムをダウンロードして展開:

# wget https://archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz
# bsdtar -xpf ArchLinuxARM-armv7-latest.tar.gz -C /mnt/

以下のブートスクリプトを作成してください:

boot.cmd
part uuid ${devtype} ${devnum}:${bootpart} uuid
setenv bootargs console=${console} root=PARTUUID=${uuid} rw rootwait

if load ${devtype} ${devnum}:${bootpart} ${kernel_addr_r} /boot/zImage; then
  if load ${devtype} ${devnum}:${bootpart} ${fdt_addr_r} /boot/dtbs/${fdtfile}; then
    if load ${devtype} ${devnum}:${bootpart} ${ramdisk_addr_r} /boot/initramfs-linux.img; then
      bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r};
    else
      bootz ${kernel_addr_r} - ${fdt_addr_r};
    fi;
  fi;
fi

if load ${devtype} ${devnum}:${bootpart} 0x48000000 /boot/uImage; then
  if load ${devtype} ${devnum}:${bootpart} 0x43000000 /boot/script.bin; then
    setenv bootm_boot_mode sec;
    bootm 0x48000000;
  fi;
fi

uboot-tools パッケージを使って SD カードに書き込み:

# mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Orange Pi One boot script" -d boot.cmd /mnt/boot/boot.scr
# umount /mnt

U-Boot ブートローダーのコンパイルとコピー

次に U-Boot イメージを作成します。arm-none-eabi-gcc, dtc, git, uboot-tools パッケージをインストールしてください。One 以外の H3 Orange Pi を使用する場合、orangepi_one_config を適切な文字列に置き換えてください。

U-Boot のソースコードを複製してから Orange Pi のイメージをコンパイル:

$ git clone --depth 1 -b v2016.09.01 git://git.denx.de/u-boot.git
$ cd u-boot
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi- orangepi_one_defconfig
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi-

上記のコマンドが成功すると U-Boot イメージ (u-boot-sunxi-with-spl.bin) が出来上がります。

dd でイメージを SD カードに書き込んでください (/dev/sdX を SD カードのデバイスに置き換えてください):

# dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8

ログイン / SSH

root の SSH ログインはデフォルトで無効になっています。デフォルトのユーザーアカウントを使ってログインしてから su を使ってください。

タイプ ユーザー名 パスワード
Root root root
ユーザー alarm alarm

トラブルシューティング

linux-armv7-4.11.0-1 のアップグレード

ノート: 以下の手順は Orange Pi Zero で確認しています。
# pacman -Syu

linux を最新版にアップグレードすると起動ができなくなります。ブートローダーのアップグレードが必要です。

最新版の u-boot イメージを作成してください:

$ git clone --depth 1 git://git.denx.de/u-boot.git
$ cd u-boot
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi- orangepi_one_defconfig
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi-

そして sd カードにイメージを書き込んでください (/dev/sdX は適切なデバイスに置き換えてください):

# dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8

参照