NanoPi NEO Plus2

提供: ArchWiki
2018年12月6日 (木) 23:20時点におけるKusakata (トーク | 投稿記録)による版 (ページの作成:「Category:ARM アーキテクチャ en:NanoPi NEO Plus2 NanoPi NEO Plus2 は ARMv8-A アーキテクチャを搭載したミニマルなコ…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

NanoPi NEO Plus2 は ARMv8-A アーキテクチャを搭載したミニマルなコンピュータです。プロジェクトの詳細は こちら

ノート: このデバイスは ALARM プロジェクトによる公式サポートを受けていません。パッチや機能リクエスト、バグレポートを送信するときはそのことに気をつけてください。

インストール

ブートローダー

NanoPi は SD カードから起動しようとします。SD カードから起動できない場合、eMMC から起動します。デバイスを復元したいときは SD カードから起動すると良いでしょう。

標準カーネルを使う

NanoPi で Arch Linux を起動するにはまず http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Plus2#Install_OS の手順に従って公式イメージをインストールして、既存のカーネルイメージ・モジュール・uboot を使用して Arch Linux を起動します。標準イメージをインストールしたら、以下の手順で Arch Linux をインストールできます。

Linux PC に標準イメージを書き込んだ SD カードを挿入してください。以下のコマンドでは SD カードのルートファイルシステムが /dev/sdc2 に、uboot のパーティションが /dev/sdc1 に存在すると仮定します。

オリジナルのモジュールをバックアップ:

# mount /dev/sdc2 /mnt
# bsdtar -czf orig_modules.tar.gz -C /mnt /lib/modules /lib/modprobe.d

WiFi サポートを修正するのに必要なファームウェアモジュールもバックアップ:

# bsdtar -czf orig_firmware.tar.gz -C /lib/firmware brcm ap6212

https://archlinuxarm.org/platforms/armv8/generic から Arch Linux の汎用 armv8 イメージをダウンロードして展開:

# umount /dev/sdc2
# mkfs.ext4 /dev/sdc2 # add -f to force overwrite of existing fs
# mount /dev/sdc2 /mnt
# bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt

オリジナルのモジュールを展開:

# rm -rf /mnt/lib/modules /mnt/lib/modprobe.d
# bsdtar -xpf orig_modules.tar.gz -C /mnt

ブートパーティションを消去:

# rm -rf /mnt/boot/*

fstab を生成:

/mnt/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass>
/dev/mmcblk0p2       /               ext4            rw,relatime,data=ordered,noatime   0 1
tmpfs   /tmp         tmpfs   nodev,nosuid            0  0
/dev/mmcblk0p1       /boot           vfat            rw,defaults 0 1

NanoPi に SD カードを挿入すれば Arch Linux の標準 Linux カーネルが起動します。

カスタムカーネルをコンパイルする

クロスコンパイルの手順は http://wiki.friendlyarm.com/wiki/index.php/Building_U-boot_and_Linux_for_H5/H3/H2%2B#How_to_Compile_Mainline_BSP_for_H5 に記載されています。

NanoPi でカーネルをコンパイルすることもできます:

$ git clone https://github.com/friendlyarm/linux.git -b sunxi-4.x.y --depth 1
$ cd linux
$ touch .scmversion
$ make sunxi_arm64_defconfig ARCH=arm64
$ make -j4 Image dtbs ARCH=arm64

新しいカーネルを手動でインストール:

# cp arch/arm64/boot/Image /boot/Image
# cp arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi*.dtb /boot/
# make modules_install INSTALL_MOD_PATH=/

WiFi サポートの修正

無線インターフェイスが認識されない場合、以下のメッセージが dmesg で確認できます:

dmesg
[   12.020670] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43430a1-sdio.bin for chip 0x00a9a6(43430) rev 0x000001
[   12.039285] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac43430a1-sdio.bin failed with error -2
[   13.081285] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[   13.081285] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

修正するには、標準の wifi ファームウェアを使用する必要があります。

NanoPi にファームウェアモジュールをアップロード:

$ scp orig_firmware.tar.gz alarm@nanopi_ip:

NanoPi 側でモジュールを展開:

# bsdtar -xpf orig_firmware.tar.gz -C /lib/firmware

再起動後、無線インターフェイスが認識されるはずです。