我が家のOrengePi PCにarmbian jessieをインストールして約2年が経ちました。その間に新しくarmbian BionicとStretchがリリースされLinux kernelも4.x系に変わりました。この記事ではarmbian jessieからStretchにアップグレードする方法について記載します。
環境
今回アップグレードするOrange Pi PCは送料込みで2,000円と安価なボードです。我が家では3DプリンタサーバやNASとして活躍しています。
- Board:Orange Pi PC
- CPU:Allwinner H3 @1.3GHz(core x4)
- Memory:1GByte
- OS:Armbian(32bit)
Orange Pi PCを使ったサーバ構築については以下の記事を参照してください。
Armbianを既存環境を残してjessie -> stretchにアップグレード
はじめに
我が家のOrangePi PCにはarmbian jessieがインストールされています。日頃は3DプリンタサーバやNASとして使っているのでこの設定を残したままアップグレードを行います。手順としては、
- aptリポジトリの書き換え(jessie -> stretch)
- kernelのアップグレード
- その他パッケージ類のアップグレード
という感じになります。
リポジトリの書き換え
まず、aptのリポジトリを既存のものから新しいものに変更します(ここではjessieからstretchに変更)。以下のファイルを編集してください。
- /etc/apt/sources.list
- /etc/apt/sources.list.d/armbian.list
/etc/apt/sources.list
deb http://httpredir.debian.org/debian stretch main contrib non-free #deb-src http://httpredir.debian.org/debian stretch main contrib non-free deb http://httpredir.debian.org/debian stretch-updates main contrib non-free #deb-src http://httpredir.debian.org/debian stretch-updates main contrib non-free deb http://httpredir.debian.org/debian stretch-backports main contrib non-free #deb-src http://httpredir.debian.org/debian stretch-backports main contrib non-free deb http://security.debian.org/ stretch/updates main contrib non-free #deb-src http://security.debian.org/ stretch/updates main contrib non-free
/etc/apt/sources.list.d/armbian.list
deb http://apt.armbian.com stretch main stretch-utils stretch-desktop
書き換えたらupdateしておきます。
$ sudo apt update
kernelのアップデート
次にkernelを3.x系から4.x系に更新します。なお、kernelを4.x系に更新すると何故かMACアドレスが変わってしまいました。DHCPで固定IPを割り当てている方はご注意。
$ sudo apt-get install linux-image-next-sunxi linux-headers-next-sunxi linux-dtb-next-sunxi linux-u-boot-orangepipc-next linux-stretch-root-next-orangepipc
アップグレード前
$ uname -a Linux orangepipc 3.4.113-sun8i #68 SMP PREEMPT Wed Sep 19 10:23:30 CEST 2018 armv7l GNU/Linux
アップグレード後
$ uname -a Linux orangepipc 4.14.70-sunxi #265 SMP Wed Sep 19 10:01:19 CEST 2018 armv7l GNU/Linux
パッケージのアップグレード
他のパッケージ類をまとめてアップグレードします。
$ sudo apt upgrade
CPUがひとつしか認識しない
これで無事アップグレード完了、めでたしめでたし・・・で終わりたかったのですが、問題が発生しました。Orange Pi PCに積まれているAllwinner H3はCPUが4コア搭載されているのですが、アップグレード後に確認するとひとつしか認識していません。
アップグレード前
$ cat /proc/cpuinfo Processor : ARMv7 Processor rev 5 (v7l) processor : 0 BogoMIPS : 6171.42 processor : 1 BogoMIPS : 6171.42 processor : 2 BogoMIPS : 6171.42 processor : 3 BogoMIPS : 6171.42 Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 Hardware : sun8i Revision : 0000 Serial : 44005035c2042c3c074e
アップグレード後
$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 22.85 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 Hardware : Allwinner sun8i Family Revision : 0000 Serial : 02c0008152a4692a
どうもu-bootのパラメータが問題らしく、以下のu-bootスクリプトのパラメータを修正すると4coreともに認識しました。
- /boot/boot.cmd
修正するパラメータ
- setenv bootm_boot_mode=nonsec
私は以下のスクリプトをそのままコピーさせてもらいました。
- speters/armbian-build - github
https://github.com/speters/armbian-build/blob/master/userpatches/boot.cmd
boot.cmdを書き換えたら以下のコマンドを実行して再起動します。
$ sudo mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr $ shutdown -r now
念の為確認すると、
$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 22.85 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 .... processor : 3 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 22.85 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 Hardware : Allwinner sun8i Family Revision : 0000 Serial : 02c0008152a4692a
無事に認識しました。ほっと一息です。
所感
OragenPi PCにインストールしたarmbianを、既存環境を残したままaptでアップグレードを行ってみました。
多分、ゼロからOSを入れ直したほうがいいと思うのですが最初から設定するのが面倒で駄目元でやってしまいました。途中でCPU Coreが1つしか認識しなくなったりしましたが、一応設定変更で対応出来て動いてくれています。
参考
この記事は以下の内容を参考にさせていただきました。
- Armbian upgrade to 18.04 Bionic Beaver - Banana Pi M1 - armbian
https://forum.armbian.com/topic/7097-armbian-upgrade-to-1804-bionic-beaver-banana-pi-m1/ - upgrade jessie to stretch - armbian
https://forum.armbian.com/topic/5840-upgrade-jessie-to-stretch/ - upgrade xenial to bionic on orange pi pc - armbian
https://forum.armbian.com/topic/8047-upgrade-xenial-to-bionic-on-orange-pi-pc/ - Orange Pi PC, new kernel installation
https://forum.armbian.com/topic/6222-orange-pi-pc-new-kernel-installation/ - Orange Pi Lite - now available - armbian
https://forum.armbian.com/topic/1180-orange-pi-lite-now-available/?page=3&tab=comments#comment-12165
その後、sambaが起動できなくなっているのを発見。segment faultで落ちているみたい・・・ライブラリかなにかの不整合かなぁ。
(追記)
sambaを一度purgeしてdist-upgradeしたあとにもう一度installしたら直りました。
$ sudo apt purge samba
$ sudo apt upgrade
$ sudo apt dist-upgrade
$ sudo apt autoclean
$ sudo apt install samba