ブログ

Armadillo-840:USBキーボードを接続して、LCDをコンソール表示に使う

at_mangetsu
2015年12月21日 19時40分

Armadillo-440開発セットにUSBキーボードを接続して、LCDをコンソール表示に使う記事がありましたが、
https://users.atmark-techno.com/blog/615/1744

今回はArmadillo-840液晶モデル開発セットで同様のことをやってみました。

1.機材

  • PC(USBキーボードとLCDをコンソールの入出力に設定するまでは、PCからシリアル通信で設定します)
  • Armadillo-840液晶開発セット
  • USBキーボード(今回使ったのは、SKB-KG3BKです)

    2.LCDをコンソール画面に設定

    今回は、カーネルの再構築を行います。

    2.1.ATDE5をダウンロード

    開発環境ATDE5を以下からダウンロードします。

    i386向け
    http://armadillo.atmark-techno.com/files/downloads/atde/atde5-i386-20151026.tar.xz

    amd64向け
    http://armadillo.atmark-techno.com/files/downloads/atde/atde5-amd64-20151026.tar.xz

    ATDE5のインストールや起動方法は以下を参照してください。
    第2章 Windows上にATDEを構築する

    2.2.ソースコードをダウンロード

    ATDE5上でソースコードをダウンロードします。

    atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-840/source/dist/atmark-dist-20151120.tar.gz
    atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-840/source/kernel/linux-3.4-at16.tar.gz

    2.3 ソースコードを展開します。

    atmark@atde5:~$ tar zxf atmark-dist-20151120.tar.gz 
    atmark@atde5:~$ tar zxf linux-3.4-at16.tar.gz 
    atmark@atde5:~$ ln -s atmark-dist-20151120 atmark-dist
    atmark@atde5:~$ cd atmark-dist
    atmark@atde5:~/atmark-dist$ ln -s ../linux-3.4-at16 ./linux-3.x

    2.4 make menuconfigにより、カーネルコンフィギュレーションを変更します。

    1)Framebuffer Console supportを以下のように設定します。

    Device Drivers --->
      Graphics support --->
        Console display driver support --->
          <*> Framebuffer Console support
          [*]   Map the console to the primary display device

    2)Primary framebufferを以下のように設定します。

     -> System Type
       -> Armadillo-840 System Configuration
         -> Primary framebuffer (<choice> [=y])
           (X) LCDC0                             <---- 選択する
           ( ) LCDC1

    3)このままですと、Gstreamerなどのアプリケーションでfb0に画像を書き込むと競合してしまうため、
    以下の設定を追加して回避します。

    -> Device Drivers
       -> Character devices
         -> Virtual terminal (VT [=y])
           [*] Support for binding and unbinding console drivers

    ※HowToもご参考いただければと思います。 http://armadillo.atmark-techno.com/faq/bootlog-on-lcd

    4)また、今回はUSBキーボードに対応させるために以下も変更しました。
    ※お使いのUSBキーボードのタイプに合わせて適宜変更いただければと思います。

    -> Device Drivers
       -> Input device support --->
          [*] Keyboards --->            ←チェックを入れる
             <*> AT Keyboard    ←チェックを入れる

    2.5 /etc/inittabを変更します。

    atmark@atde5:~/atmark-dist$ cd vendors/AtmarkTechno/Armadillo-840/etc
    atmark@atde5:~/atmark-dist/vendors/AtmarkTechno/Armadillo-840/etc$ vi inittab

    inittabの内容:

     ::respawn:/sbin/getty -L 115200 ttySC2 vt102

     をコメントアウトし、以下を追加

     ::respawn:/sbin/getty -L 115200 tty1 vt102

    2.6 /etc/securettyを変更します。

    atmark@atde5:~/atmark-dist/vendors/AtmarkTechno/Armadillo-840/etc$ vi securetty

    securettyの内容:

    ttySC2

    を以下に書き換え

    tty1

    2.7 カレントディレクトリをatmark-distに戻してmakeします。

    3.ブートローダーの起動設定を変更します

    Armadillo-840をブートローダーで起動し、以下変更を行います。

    hermit> setenv mem=384M console=tty1

    4. 上記で作成したカーネルとユーザーランドを使って起動します。

    なお、Armadillo-840ではHDMI出力も可能です。 この場合は、2.4項の2)の設定を以下のように変更します。

    2')

     -> System Type
       -> Armadillo-840 System Configuration
         -> Primary framebuffer (<choice> [=y])
           ( ) LCDC0                           
           (X) LCDC1                               <---- 選択する