ブログ

Armadillo-640: LCDオプションセット(7インチタッチパネルWVGA液晶)のカーソルを消す方法

at_shigehisa.y…
2019年2月4日 13時42分

カーネルコンフィグレーション

LCDオプションセット(7インチタッチパネルWVGA液晶) には Linuxカーネル v4.14-at6から対応しています。

これより前のカーネルを使う場合は、以下のカーネルコンフィグレーションが必要です。

-> Device Drivers
    -> Graphics support
        -> Frame buffer Devices
            [*] Support for frame buffer devices
-> Device Drivers
    -> Graphics support
        -> Console display driver support
            [*] Framebuffer Console support 

この時、"Device Drivers -> Character devices"の"Support for binding and unbinding console drivers"が有効になっているかどうかを念のために確認します。

-> Device Drivers
    -> Character devices 
        -*- Support for binding and unbinding console drivers

カーソルの表示/非表示

フレームバッファコンソールをコンソールレイヤーからデタッチすると、カーソルを非表示にできます。 また、フレームバッファコンソールをコンソールレイヤーにアタッチすると、カーソルを表示できます。

具体的には以下のファイルに0または1を書き込みます。

/sys/class/vtconsole/vtcon1/bind

デフォルトではbindに1が書かれているため、カーソルは表示です。

root@armadillo:~# cat /sys/class/vtconsole/vtcon1/bind
1

/sys/class/に配置されたvtconsoleは、コンソールを制御するための仮想ファイルシステムです。

Armadillo-640では/sys/class/vtconsoleに、以下のコンソールバックエンドがシステムによって登録されています。

root@armadillo:~# ls /sys/class/vtconsole
vtcon0  vtcon1

各ディレクトリには、以下に示す5種類のファイルがあります。

root@armadillo:~# ls /sys/class/vtconsole/vtcon1
bind  name  power  subsystem  uevent

この中でbindに0または1を書くことで、仮想コンソールが制御できます。

 0: フレームバッファコンソールをコンソールレイヤーからデタッチ(ドライバーに対してアンバインドを指定)して、カーソルを非表示にします。

 1: フレームバッファコンソールをコンソールレイヤーにアタッチ(ドライバーに対してバインドを指定)して、カーソルを表示にします。

LCDのカーソルを非表示にするためには、以下のコマンドを実行します。

root@armadillo:~# echo 0 > /sys/class/vtconsole/vtcon1/bind

再度、カーソルを表示させたい場合は、以下のコマンドを実行します。

root@armadillo:~# echo 1 > /sys/class/vtconsole/vtcon1/bind