読者です 読者をやめる 読者になる 読者になる

もやし日誌

日記のようなもの

OrangePi PC2を買ってみたのでArchLinuxのイメージをビルドしてみた

f:id:kazuki09:20161122195239j:plain お久しぶりです。もやしきんぐです。
最近いろいろと噂になっていた中国深センのXunlong製のOrange Pi PC2を買ってみたので、それで使うArchLinuxのイメージファイルをビルドしてみました。

※発売直後はAndroidのイメージファイルしか無かったので自家製ビルドしましたが、現在はArchLinux,Ubuntu,Debianのイメージが公開されてるのでわざわざビルドしなくても大丈夫です

準備する

yaourt -S binfmt-qemu-static qemu-user-static sunxi-tools debootstrap
systemctl restart systemd-binfmt.service

chrootするときにaarch64バイナリがx86_64マシンでは動かないので(当たり前ですが)、qemuでエミュしてやります。
ビルド環境はArchLinux x86_64。

ビルドする

git clone https://github.com/orangepi-xunlong/OrangePi_H5SDK.git
cd OrangePi_H5SDK

ArchLinuxではapt-get出来ないのでscripts/00_rootfs_build.shのapt-getな行をコメントアウトします。

#..........(省略)
        KR=debian-archive-keyring.gpg
        bsdtar --include ./usr/share/keyrings/$KR --strip-components 4 -xvf "$DATA"
        rm -f "$DATA"
#↓ここコメントアウトする
        #apt-get -y install debootstrap qemu-user-static

        debootstrap --verbose --foreign --arch=arm64 --keyring=$TEMP/$KR $dist rootfs http://httpredir.debian.org/debian
        rm -f $KR 
#..........(省略)
sudo ./build.sh

ビルドの過程でchrootとmountを使うのでroot権限で実行します。

 ================================== 
 Pls select build option 
 ================================== 
 0. Build Release Image 
 1. Build Rootfs 
 2. Build Linux 
 3. Build Kernel only
 4. Build Module only 
 ================================== 
 If update Image, pls use root 
 ================================== 
 5. Install Image into SDcard 
 6. Update kernel Image 
 7. Update Module 
 8. Update Uboot 
 a. Update SDK to Github 
 b. Update SDK from Github

こんなのが出てくると思うのであとは画面に従っていけばイメージファイルが出来上がると思います。
完成したイメージファイルのArchLinuxは何故か起動時にコンソール(fbcon)が出ないので、適宜microSDをマウントしてchrootしてsshdを有効化するなり、シリアルコンソールから弄るなりしてみてください。 (カーネルコンフィグ弄ってみてもダメで原因がいまいち分かっていないので分かる方教えてください)

(追記)GDMとcinnamon動きました

pacman -S gdm cinnamon
pacman -S xf86-video-fbturbo

よく考えてみたらfbturbo入ってませんでした(そりゃ動かんわ)…. /(^o^)\

I2CとGPIOが動かない

何故か配布されているSDKカーネルコンフィグだとI2CとGPIOが使えないので使えるようにしたカーネルコンフィグをgistに貼っておきました。
OrangePiPC2 defconfig · GitHub