armbianの初期設定項目 2022/04/21版


さすがに2017年に作った「Armbianの初期設定項目」は現状にふさわしくないので改訂

(1) armbian OSの入手について

armbian公式からダウンロードするわけだが、”Armbian 22.02 Focal”とか”Armbian 22.02 Jammy XFCE” のどちらがubuntu/debianなのかわかりにくい。

Ubuntu 14.04 LTSTrusty TahrDebian 8ベース
Ubuntu 16.04 LTSXenial XerusDebian 9ベース
Ubuntu 18.04 LTSBionic BeaverDebian 10ベース
Ubuntu 20.04 LTSFocal FossaDebian 10ベース
Ubuntu 22.04 LTSJammy JellyfishDebian 11ベース?
Debian 8.0jessie
Debian 9.0stretch
Debian 10.0buster
Debian 11.0bullseye
Debian 12.0bookworm

「Armbian 22.02 Focal」はUbuntu 20.04LTSベースで、「Armbian 22.02 Jammy XFCE」はUbuntu 22.04LTSベースでX-WindowのXFCE環境付き、ということが分かる。

(2) SDカードへの書き込みについて

経験則的にAllwinner SoCのOrange Pi/Nano Piなどは、microSDカードの個体差?メーカ差?なのかよくわからない原因で起動しなかったり、よくデータが飛んだりします。

起動しない場合は何度かイメージを書き直してみるといけるようになったり、違うmicroSDにすると普通に起動してきたりします。

なお、私はWindows環境でのイメージ書き込みには「Rufus」を使用しています。

Ubuntuの場合は、ddコマンドで書き込みますが、「bmaptool」で書き込むこともあります。(apt install bmap-toolsでインストールできます)

$ sudo bmaptool copy --nobmap Armbian_22.02.1_Orangepione_focal_current_5.15.25_xfce_desktop.img /dev/sde
bmaptool: info: no bmap given, copy entire image to '/dev/sde'
bmaptool: info: 100% copied
bmaptool: info: synchronizing '/dev/sde'
bmaptool: info: copying time: 10m 35.9s, copying speed 7.6 MiB/sec
$

(3) 初回起動について

初回起動時にログインユーザやパスワードの設定をします。

また、microSDのサイズにあわせたパーテーションサイズ調整も実施されます。

(4) 初期設定

まず、LocaleやTimezoneに関する設定を確認

「timedatectl」と「localectl」、「echo $LANG」を実行します。

$ timedatectl
               Local time: 木 2022-04-21 20:11:30 JST
           Universal time: 木 2022-04-21 11:11:30 UTC
                 RTC time: 木 2022-04-21 11:11:06
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
$ localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
$ echo $LANG
ja_JP.UTF-8
$

基本的には初回起動時にTimezone設定してるので、そこでそれなりの設定がされていると思います。

ユーザの言語は「ja_JP.UTF-8」、システムとしての言語は「en_US.UTF-8」というのがトラブルが起きにくいとは思っています。

変更する場合、言語設定
「sudo dpkg-reconfigure locales」
タイムゾーン設定
「sudo timedatectl set-timezone Japan」と実行するか、「sudo dpkg-reconfigure tzdata」
キーボードの言語設定(キー配列)
「sudo localectl set-x11-keymap jp」「sudo dpkg-reconfigure keyboard-configuration」

(5) OSアップデート

Armbian自体の更新+Ubuntu/Debianの更新を実施
「sudo apt update」「sudo apt upgrade」

なお、locales アップデートの際に発生する「Generating locales」のプロセスにだいぶ時間が掛かります。

また、アップデート中に下記のような質問があり回答を要求されて止まりますので注意してください。

ubuntu-advantage-tools (27.7~20.04.1) を設定しています ...

設定ファイル '/etc/logrotate.d/ubuntu-advantage-tools'
 ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : 状況を調査するためにシェルを開始する
 デフォルトでは現在使っている自分のバージョンを残します。
*** ubuntu-advantage-tools (Y/I/N/O/D/Z) [デフォルト=N] ? y
新バージョンの設定ファイル /etc/logrotate.d/ubuntu-advantage-tools をインストールしています ...

(6) SBC firmwareのアップデート

一部のSBCにはfirmware アップデートがarmbianレポジトリ経由で提供されているようです。

「sudo armbian-config」で起動して「System」を選択

「Firmware」を選択

「はい」を選択

アップデートが終わるのを待ちます

再起動を選んで再起動します。

(ただ、これ、アップデートなくても再起動要求してるような気がします・・・)

(7) X-Windowの日本語文字化け解消

「sudo apt install fonts-takao-gothic」で一部残る文字化けが消えると思います。

(8) X-Windowでの音声出力先変更

Orange Piの場合、本体上に3.5φステレオ端子が存在していると標準の音声出力先もそちらに設定されていることが多いです。

この場合は、X-Windowの右上に出ているスピーカーアイコンをクリックし、[Default Sink]にある2つの「Built-in Audio Stereo 100%」を他方に切り替えてみてください。

なお、3.5φステレオ端子がない場合は1つしか表示されていないと思います。

(9) GPIO コネクタにPWM付けるファンを使うための設定

ラズパイ用のやつの絵を流用しますが・・・(出典:スイッチサイエンスのRaspberry Pi 4 用ケースファン)

これで3本で繋いだ場合の話です。

armbian-configのHardwareでpwmを有効にする感じでいけるようです

GloDroidがninjaのエラーでビルドできない


PinePhoneやOrange Pi OneなどのAllwinner SoCで動くAOSPベースのandroidであるGloDroidというのがある。

これはGoogle Play StoreなどのGoogle関連(GMS)が入っていないので使いづらい。OpenGappsでも入れられないかなぁ?とパッケージをみてみたけど、こちらはTWRP用にカスタマイズされていてよく分からない・・・

GloDroidのgithubを見るとprebuilt_appsなんてレポジトリがありfdroidとkodiのインストールについての定義がある。ここらを応用すれば何かできないかなぁ、と思ってGloDroidを自分でビルドしてみることにした。

最初Ubuntu 18.04環境で作ってみたけど、うまくいかないのでGoogleのドキュメント上では推奨されているUbuntu 14.04環境作ってみたりしたけど、うまくいかなかった。

エラーの状況

Ubuntu 18.04でもUbuntu 14.04でもほぼ同じで下記のようなエラーが出力されます。

============================================
[100% 451/451] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp
Killed
10:47:31 soong bootstrap failed with: exit status 1
ninja: build stopped: subcommand failed.build/make/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
osakanataro@ubuntuserver:~/GloDroid$

out/soong.log の最後は下記のようなエラーです。

2020/06/12 10:47:31.168342 build/soong/ui/build/exec.go:95: soong bootstrap failed with: exit status 1

Ubuntu 14.04の場合

Javaのバージョンが古いので新しいOpenJDKを使える様にする。

$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt install openjdk-13-jdk

Googleのドキュメント(Establishing a Build Environment)記載のパッケージをインストール。

$ sudo apt install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

また、上記のNoteに記載されている「python-networkx」と「libnss-sss:i386」も必要で、これが無いことでninjaのエラーがでていました。

$ sudo apt install python-networkx libnss-sss:i386

Repoのインストールを「Downloading the Source」記載の手順で行います。

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
 gpg --recv-key 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
$ curl https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ~/bin/repo

repo内部ではgitコマンドを使用するためgitの初期設定も行います。

$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"

次にGloDroidで要求されているパッケージをインストール。(記述にはrepoが含まれてますがパッケージじゃないので抜く)

$ sudo apt install swig  python-dev python3-dev libssl-dev flex bison device-tree-compiler

で・・・この後、試行錯誤した結果、さらに以下のパッケージも必要でした。

$ sudo apt install python-pip gettext gdisk

Ubuntu 18.04の場合

Ubuntu 14.04の場合とだいたい一緒でした。

いまコンパイルして実証中です・・・(まだ結果が出ていない

2020/06/13 22:39 うーん・・・エラーだ

[100% 8/8] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp
Killed
22:37:24 soong bootstrap failed with: exit status 1
ninja: build stopped: subcommand failed.
#### failed to build some targets (02:38:03 (hh:mm:ss)) ####

out/soong.log の最後のあたりはこんな感じ

2020/06/13 19:59:25.251629 build/soong/ui/build/dumpvars.go:109: PRODUCT_SOONG_NAMESPACES
2020/06/13 19:59:25.252084 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x build/blueprint/bootstrap.bash -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- -t]
2020/06/13 19:59:25.326955 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x out/soong/.bootstrap/bin/soong_env -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- out/soong/.soong.environment]
2020/06/13 19:59:25.761444 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x prebuilts/build-tools/linux-x86/bin/ninja -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- -d keepdepfile -w dupbuild=err -j 2 --frontend_file out/.ninja_fifo -f out/soong/.minibootstrap/build.ninja]
2020/06/13 19:59:27.066701 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x prebuilts/build-tools/linux-x86/bin/ninja -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- -d keepdepfile -w dupbuild=err -j 2 --frontend_file out/.ninja_fifo -f out/soong/.bootstrap/build.ninja]
2020/06/13 22:37:24.168572 build/soong/ui/build/exec.go:95: soong bootstrap failed with: exit status 1

armbianで起動したchromiumが文字化けする


久しぶりにOrange Pi PC2に電源を入れたらOSが起動しなかった….

microSDに最新のarmbianを入れてGUIを表示させてみると日本語が文字化けしている。

以前、Ubuntuベースのメール統合環境アプライアンスZentyalのコンソール表示文字化けを直す際に調べた「Zentyalを日本語で使う場合の設定手順」が流用できるかなと試してみる・・・

osakanataro@orangepipc2:~$ sudo apt install  fonts-arphic-uming fonts-takao-pgothic
[sudo] osakanataro のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ fonts-takao-pgothic が見つかりません
osakanataro@orangepipc2:~$

fonts-takao-pgothicがないらしいので、fonts-arphic-umingだけで再チャレンジ

osakanataro@orangepipc2:~$ sudo apt install fonts-arphic-uming
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  fonts-arphic-uming
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
7,940 kB のアーカイブを取得する必要があります。
この操作後に追加で 21.5 MB のディスク容量が消費されます。
取得:1 http://cdn-fastly.deb.debian.org/debian buster/main arm64 fonts-arphic-uming all 0.2.20080216.2-10 [7,940 kB]
7,940 kB を 7秒 で取得しました (1,142 kB/s)
以前に未選択のパッケージ fonts-arphic-uming を選択しています。
(データベースを読み込んでいます ... 現在 111309 個のファイルとディレクトリがインストールされています。)
.../fonts-arphic-uming_0.2.20080216.2-10_all.deb を展開する準備をしています ...
fonts-arphic-uming (0.2.20080216.2-10) を展開しています...
fonts-arphic-uming (0.2.20080216.2-10) を設定しています ...
fontconfig (2.13.1-2) のトリガを処理しています ...
osakanataro@orangepipc2:~$

ブラウザを起動してみると無事表示

かと思ったら、起動直後の画面とかでちらほら文字化けが..

「apt search fonts-」で探してみると、fonts-takao, fonts-takao-gothic, fonts-takao-mincho があったので「 fonts-takao-gothic 」をインストールしてみることに

osakanataro@orangepipc2:~$ sudo apt install fonts-takao-gothic
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  fonts-takao-gothic
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
3,523 kB のアーカイブを取得する必要があります。
この操作後に追加で 12.5 MB のディスク容量が消費されます。
取得:1 http://cdn-fastly.deb.debian.org/debian buster/main arm64 fonts-takao-gothic all 00303.01-2 [3,523 kB]
3,523 kB を 2秒 で取得しました (1,551 kB/s)
以前に未選択のパッケージ fonts-takao-gothic を選択しています。
(データベースを読み込んでいます ... 現在 111344 個のファイルとディレクトリがインストールされています。)
.../fonts-takao-gothic_00303.01-2_all.deb を展開する準備をしています ...
fonts-takao-gothic (00303.01-2) を展開しています...
fonts-takao-gothic (00303.01-2) を設定しています ...
update-alternatives: /usr/share/fonts/truetype/fonts-japanese-gothic.ttf (fonts-japanese-gothic.ttf) を提供するために自動モードで /usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf を使います
fontconfig (2.13.1-2) のトリガを処理しています ...
osakanataro@orangepipc2:~$

出力結果を見ると、TakaoPGothic.ttf が含まれているようなので、おそらくパッケージ名が変わったのだろう、ということに…

ブラウザを起動してみると期待通りの表示が

ルータ設定画面の表示も不自然さが減少した感じです。

Orange Pi Zeroのアップデートモデル LAN2個のOrange Pi R1登場



Allwinner H2+搭載のOrange Pi Zeroの派生モデルとして、LAN(100Mbps)が2個搭載されたOrange Pi R1というモデルが登場しました。
送料込みで$17.01です。

Orange Pi ZeroからUSBコネクタを外して、代わりにLANをつけたような感じです。
WiFiも積んでいますが、RAM 256MBモデルなのがちょっと惜しいところ。
また、1ヶ月ぐらいしたらRAM 512MBモデルも出てきたりするのかな?

単純に小型化目的だけだったら、SoCがAllwinner H5になったOrange Pi Zero Plus 2(H5)という選択肢もあります。
こちらだとRAMが512MBになり、HDMIコネクタがついてくるものの、RJ45のLANコネクタがありません。
価格は$23.05と、$6ちょっとの差です。

ラズパイ用Waveshare / Kuman 3.5インチ 320×480タッチパネル付き液晶をOrange Piで使う



正月にアマゾンで「Kuman Raspberry Pi 3 2用ディスプレイ タッチパネル 3.5インチ 320*480 SPI インターフェース Raspberry Pi Model B B+ A+ A SC06」というのがタイムセールで売っていたので買ってみた。

買ったまましまってあったのをすっかり忘れていたので、今頃になって使ってみた。

この製品はWaveshareの「3.5inch RPi LCD (A), 320×480」のコピー製品。
なので、情報はWaveshare側で追う必要がある。

いろいろ面倒な試行錯誤があったのですが、最終結果を書いておきます。

2017/04/10の時点では、液晶表示はできました。
タッチパネル動作については、まだ全然できていません。


Orange Pi PCでSPI接続の液晶で表示をする場合に必要な設定

インストールしておくもの

フレームバッファの動作チェックに使うfbiコマンド

apt install fbi

X-Windowを今回のLCDに出力するために使う

apt install xserver-xorg-video-fbdev

モジュールを読み込むための /etc/modules-load.d/waveshare.conf の内容

flexfb
fbtft_device

上記で指定したモジュールのパラメータ指定 /etc/modprobe.d/waveshare.conf の内容

options flexfb width=320  height=480  regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
options fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:2,dc:71

X-Windowで表示させるための /usr/share/X11/xorg.conf.d/98-fbdev.conf の内容

Section "Device"
  Identifier "myfb"
  Driver "fbdev"
  Option "fbdev" "/dev/fb8"
EndSection

注: /dev/fb8 は環境によっては番号が変わるはずです

これで再起動することで、LCDに表示されるようになりました….

ただ・・・時々、うまく表示されないことがあるのが謎です・・・

armbianフォーラムの「[SOLVED] Orange PI PC H3 Winner, compiled with igorpecovnik jessie desktop」に/boot/bin/orangepipc.binをfexに変換し、[disp_init]と[hdmi_para]にある下記項目を変更する、という話があった。

[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 3
screen0_output_mode = 5
screen1_output_type = 3
screen1_output_mode = 5
fb0_width = 800
fb0_height = 480
fb1_width = 800
fb1_height = 480
 
[hdmi_para]
hdmi_used = 1
hdmi_x = 800
hdmi_y = 480
hdmi_power = "vcc-hdmi-18"
hdmi_cts_compatibility = 1

この情報を元に関連する記述を下記の様に書き換えたところ、安定して表示されるようになった。

[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 3
screen0_output_mode = 5
screen1_output_type = 3
screen1_output_mode = 5
fb0_format = 0
fb0_width = 320
fb0_height = 480
fb1_format = 0
fb1_width = 320
fb1_height = 480
hdcp_enable = 1
hdmi_cts_compatibility = 0

[hdmi_para]
hdmi_used = 1
hdmi_power = "vcc-hdmi-18"
hdcp_enable = 0
hdmi_cts_compatibility = 1
hdmi_x = 320
hdmi_y = 480

もちろん、元のbinファイルを「bin2fex orangepipc.bin orangepipc.fex」でテキスト形式のfexファイルに変換し、編集したあと、
「fex2bin orangepipc.fex orangepi.bin」でbinファイルに戻すという手順も行っています。


参考にしたサイト

・Raspberry PiとOrange PiのGPIO指定の違いについて
RaspBerry Piで遊んでみる」の「WiringPiとWiringOP」の記載と
このページで紹介されていた「WiringOP

実際に実行してみて得られた下記の実行結果からGPIOの番号を得ました

osakanataro@orangepipc:/work/lcd/LCD-show$ gpio readall
 +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
 |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
 |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 0 | ALT3 | TxD3     | 15  | 13  |
 |     |     |       0v |      |   |  9 || 10 | 0 | ALT3 | RxD3     | 16  | 14  |
 |   1 |   0 |     RxD2 | ALT3 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
 |   0 |   2 |     TxD2 | ALT3 | 1 | 13 || 14 |   |      | 0v       |     |     |
 |   3 |   3 |     CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
 |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | ALT3 | RTS2     | 6   | 2   |
 |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
 |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
 |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
 |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
 |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT3 | RTS1     | 26  | 200 |
 |   9 |  23 |  GPIO.23 | ALT3 | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  10 |  24 |  GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT3 | CTS1     | 27  | 201 |
 |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT3 | TxD1     | 28  | 198 |
 |     |     |       0v |      |   | 39 || 40 | 0 | ALT3 | RxD1     | 29  | 199 |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
osakanataro@orangepipc:/work/lcd/LCD-show$

・Waveshare 3.5インチTFTパネルのメーカ公式情報
3.5inch RPi LCD (A), 320×480 製品ページ」と「3.5inch RPi LCD (A)情報ページ
最終的には、ピンをどのような用途で使っているか、しか参考になる情報は無かった。

・Waveshare 3.5インチTFTパネルを汎用のflexfbで認識させるパラメータ
おっさんエンジニアの実験室」の「Waveshare 3.5 Spotpear TFTパネルをRPi2に付けて・・」で紹介されているfbtftのIssue#215「Support for Waveshare 3.5 Spotpear」の「fergie4000さんのコメント

modprobe flexfb  width=320  height=480  regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
modprobe fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:25,dc:24

fbtft_deviceのgpios指定はRaspberry Piの場合で、そのままOrange Pi PCで使うとセグメンテーションフォルト。
WiringOPを実行(gpio readall)して、resetで使う22ピンのRST、dcで使う18ピンのLCD_RSがOrange Pi PCでは何番にあたるかを確認。
wPiなら「gpios=reset:6,dc:19」、BCMなら「gpios=reset:2,dc:71」ということで、試してみた結果、後者の「gpios=reset:2,dc:71」となった、

・fbtft_deviceとflexfbのパラメータの意味
fbtft_device」と「flexfb
とはいえ、flexfbのinitパラメータに関しては完全に呪文

・fbtftの表示動作確認で使えるコマンド
fbtft公式の「Framebuffer use」。
fbiコマンドで画像出力する、というのが簡単。

・armbianでのモジュールパラメータの設定方法
Allwinner(Generic)のEnable Hardware Features」の「Connect your LCD Display

・Waveshare 3.5インチTFTパネルのタッチパネルを認識させるパラメータ
fbtftのIssue#215「Support for Waveshare 3.5 Spotpear」の「pykoonさんのコメント
fbtft wikiの「Touchpanel

ただし、armbian環境ではads7846_device が無く、ads7846 しかない。

ラズパイではoverlaysで制御するようだが、armbian wikiの「Allwinner DT overlays」にあるarmbian-add-overlayを実行しようとしても無いので、使えなさそう・・・
armbian forumの「ads7846 / Banana pro」を見ると使えそうなことが書いてあるんですが・・・

99-calibration.confのサンプル

Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "ADS7846 Touchscreen"
        Option  "Calibration"   "3932 300 294 3801"
        Option  "SwapAxes"      "1"
EndSection

・バックライト関連
fbtftのwikiに「Backlight」という項目はあるのだが、製品ページのピン配列を見ると該当しそうなものが見当たらない。
制御できないのではないか?


2017/05/05追記

・タッチパネル続報
三日坊主な私がいつまでブログやれるか...( ̄~ ̄;)の「Raspberry Pi でタッチパネル」に、下記でads7846_device単体でのコンパイルができる、という記載を発見

git clone https://github.com/notro/fbtft_tools.git
cd ~/fbtft_tools/ads7846_device; make && sudo make install

これを試してみると、armbian環境でもコンパイルできた。
調整の手法については、
特に縛りなくの「ebayで購入した3.2インチTFT液晶をRaspberry Piで使ってみる」と、fbtft公式の「ads7846_deviceのマニュアル
をあわせてみて試したところ、下記でとりあえず、タッチパネルの認識ができることを確認

insmod /lib/modules/3.4.113-sun8i/extra/ads7846_device.ko  gpio_pendown=1 cs=0 verbose=2 x_min=270 x_max=3830 y_min=340 y_max=3900

しかし、fbtft_deviceとバッティングするようで、どちらかしか利用できない状態
どうすればいいのかなぁ・・・

・動画再生
armbianのmplayはmplay2なので

sudo SDL_VIDEODRIVER=fbcon SDL_FBDEV=/dev/fb8 mplayer -vo sdl -framedrop -vf scale=360:240 動画.mpg

-vf scaleで適切なサイズを指定して縮小処理を行うような指定にしないと、動画の表示サイズが大きい場合、再生出来ない。