本気でタッチスクリーンを使うための設定()

最近、Raspberry Pi を 2 台使って、イーサネットフレームのキャプチャのプログラムを作って遊んでいますが、ssh でネットワーク越しに動作テストを行うと、わけのわからないことになります。つまり、ネットワークを流れるパケットの表示のためのパケットがネットワークに流れ、その表示のためのパケットがさらに....

1台のRaspberry Pi (B+) は棚の上もう1台 (2B) もキーボードを接続できるような場所にはありません。そこで公式7インチタッチスクリーンディスプレイを付けた1台に、ちゃんと設定した matchbox-keyboard で仮想キーボードを使えるようにして、twofing を使って二本指タップで右クリックできるように設定しました。これでキーボードなしでどんなコマンドも入力できます。

matchbk01_640x384.png

ビルドと設定に使った環境は、Raspberri Pi3 に対応した Raspbian Jessie の新バージョン、 2016-02-26-raspbian-jessie をRaspberry Pi2 にインストールして行いました。


matchbox-keyboard のビルドとインストール

タッチスクリーン用の仮想キーボードをインストールします。 raspbian で apt-get install できる matchbox-keyboard は古くてキーボードのレイアウトが使いにくくて気に入りません。 またターミナルを開いてコマンドを操作する場合はパイプやリダイレクトのために記号や数字、カーソルキーの入力が必要です。 結局、github から新しい matchbox-keyboard をフォークして、自分で日本語配列キーボード用のレイアウトを追加して github に push しておきました。 Raspberry Pi2 上で実行しています。

ビルドとインストールは次の7行のコマンドを実行するだけです。私自身の記録用にコマンドの実行結果をほとんどすべて記載していて記事としては長いですが、やっていることは7行だけです。

git clone https://github.com/jun-mizutani/matchbox-keyboard.git
sudo apt-get install libfakekey-dev libpng-dev libxft-dev autoconf libtool -y
cd matchbox-keyboard
./autogen.sh
make
sudo make install
sudo ldconfig

ソースを取得

元のソースは https://github.com/mwilliams03/matchbox-keyboard ですが、フォークして日本語キーボード用のレイアウトを追加したものを、https://github.com/jun-mizutani/matchbox-keyboard に置きました。 適当なディレクトリで git コマンドを使ってダウンロードします。

pi@raspi_jessie:~ $ git clone https://github.com/jun-mizutani/matchbox-keyboard.git
Cloning into 'matchbox-keyboard'...
remote: Counting objects: 958, done.
remote: Total 958 (delta 0), reused 0 (delta 0), pack-reused 958
Receiving objects: 100% (958/958), 255.22 KiB | 342.00 KiB/s, done.
Resolving deltas: 100% (737/737), done.
Checking connectivity... done.

ビルドに必要なパッケージのインストール

$ sudo apt-get install libfakekey-dev libpng-dev libxft-dev autoconf libtool -y

autogen.sh の実行

ディレクトリを matchbox-keyboard に移動して、そこで autogen.sh を実行します。

pi@raspi_jessie:~ $ cd matchbox-keyboard
pi@raspi_jessie:~/matchbox-keyboard $ ./autogen.sh 
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal 
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf: running: /usr/bin/autoconf
autoreconf: running: /usr/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
configure.ac:11: installing './compile'
configure.ac:13: installing './config.guess'
configure.ac:13: installing './config.sub'
configure.ac:5: installing './install-sh'
configure.ac:5: installing './missing'
applet/Makefile.am:4: warning: source file '$(top_srcdir)/gtk-im/im-protocol.c' is in a subdirectory,
applet/Makefile.am:4: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding output
automake: object file(s) will be placed in the top-level directory.  However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
applet/Makefile.am: installing './depcomp'
examples/Makefile.am:3: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
layouts/Makefile.am:64: warning: '%'-style pattern rules are a GNU make extension
layouts/Makefile.am:71: warning: '%'-style pattern rules are a GNU make extension
layouts/Makefile.am:78: warning: keyboardsdir multiply defined in condition TRUE ...
layouts/Makefile.am:1: ... 'keyboardsdir' previously defined here
src/Makefile.am:24: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
autoreconf: Leaving directory `.'
configure: WARNING: unrecognized options: --enable-maintainer-mode
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking build system type... armv7l-unknown-linux-gnueabihf
checking host system type... armv7l-unknown-linux-gnueabihf
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert armv7l-unknown-linux-gnueabihf file names to armv7l-unknown-linux-gnueabihf format... func_convert_file_noop
checking how to convert armv7l-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for an ANSI C-conforming const... yes
checking for pid_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking whether closedir returns void... no
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking return type of signal handlers... void
checking whether lstat correctly handles trailing slash... yes
checking whether stat accepts an empty string... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for FAKEKEY... yes
checking for XFT... yes
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for XML_ParserCreate... yes
checking for PNG... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/libmatchbox-keyboard.pc
config.status: creating layouts/Makefile
config.status: creating examples/Makefile
config.status: creating gtk-im/Makefile
config.status: creating applet/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --enable-maintainer-mode

                    Matchbox-keyboard 0.2
                  =========================

            prefix:                       /usr/local
            source code location:         .
            compiler:                     gcc

            Building with Debug:          no
            Building with Cairo:          no
            Building Gtk widget:          no
            Building Examples:            no
            Building GTK+ Input Method:   no
            Building panel applet:        no

ビルド

make コマンドを実行すると、コンパイルが始まります。 コンパイル時間を計測するため time コマンドを使っていますが、「make」だけでも大丈夫です。 色々と警告が表示されますが、致命的なものはないので無視します。

pi@raspi_jessie:~/matchbox-keyboard $ time make
make  all-recursive
make[1]: Entering directory '/home/pi/matchbox-keyboard'
Making all in src
make[2]: Entering directory '/home/pi/matchbox-keyboard/src'
make  all-am
make[3]: Entering directory '/home/pi/matchbox-keyboard/src'
  CC       libmatchbox_keyboard_la-libmatchbox-keyboard.lo
libmatchbox-keyboard.c: In function 'mb_keyboard_destroy':
libmatchbox-keyboard.c:64:3: warning: implicit declaration of function 'mb_kbd_destroy' [-Wimplicit-function-declaration]
   mb_kbd_destroy (kb);
   ^
  CC       libmatchbox_keyboard_la-matchbox-keyboard.lo
  CC       libmatchbox_keyboard_la-matchbox-keyboard-layout.lo
  CC       libmatchbox_keyboard_la-matchbox-keyboard-row.lo
  CC       libmatchbox_keyboard_la-matchbox-keyboard-key.lo
  CC       libmatchbox_keyboard_la-matchbox-keyboard-ui.lo
matchbox-keyboard-ui.c: In function 'mb_kbd_ui_resources_create':
matchbox-keyboard-ui.c:661:9: warning: variable 'atom_NET_WM_WINDOW_TYPE_DOCK' set but not used [-Wunused-but-set-variable]
         atom_NET_WM_WINDOW_TYPE_DOCK,
         ^
matchbox-keyboard-ui.c: In function 'mb_kbd_ui_resize':
matchbox-keyboard-ui.c:932:21: warning: variable 'width_diff' set but not used [-Wunused-but-set-variable]
   int               width_diff, height_diff;
                     ^
matchbox-keyboard-ui.c: In function 'mb_kbd_ui_handle_widget_xevent':
matchbox-keyboard-ui.c:1255:21: warning: implicit declaration of function 'mb_kbd_key_get_action_type' [-Wimplicit-function-declaration]
                     mb_kbd_key_get_action_type (key, MBKeyboardKeyStateNormal)
                     ^
matchbox-keyboard-ui.c: In function 'mb_kbd_ui_unrealize':
matchbox-keyboard-ui.c:1455:3: warning: implicit declaration of function 'mb_kbd_ui_xft_destroy' [-Wimplicit-function-declaration]
   MB_KBD_UI_BACKEND_DESTROY_FUNC (ui);
   ^
  CC       libmatchbox_keyboard_la-config-parser.lo
config-parser.c: In function 'mb_kbd_config_load':
config-parser.c:701:17: warning: 'state' may be used uninitialized in this function [-Wmaybe-uninitialized]
       if (!state->keyboard->is_widget)
                 ^
  CC       libmatchbox_keyboard_la-util-list.lo
  CC       libmatchbox_keyboard_la-util.lo
util.c: In function 'util_utf8_char_cnt':
util.c:105:15: warning: variable 'mask' set but not used [-Wunused-but-set-variable]
   int         mask, len, result = 0;
               ^
  CC       libmatchbox_keyboard_la-matchbox-keyboard-ui-xft-backend.lo
  CC       libmatchbox_keyboard_la-matchbox-keyboard-image.lo
  CCLD     libmatchbox-keyboard.la
  CC       main.o
main.c: In function ‘mb_kbd_event_loop’:
main.c:168:19: warning: implicit declaration of function ‘mb_kbd_ui_handle_configure’ [-Wimplicit-function-declaration]
                   mb_kbd_ui_handle_configure(ui,
                   ^
main.c:173:17: warning: implicit declaration of function ‘mb_kbd_ui_update_display_size’ [-Wimplicit-function-declaration]
                 mb_kbd_ui_update_display_size(ui);
                 ^
main.c:86:20: warning: variable ‘press_y’ set but not used [-Wunused-but-set-variable]
   int press_x = 0, press_y = 0;
                    ^
main.c:86:7: warning: variable ‘press_x’ set but not used [-Wunused-but-set-variable]
   int press_x = 0, press_y = 0;
       ^
main.c: In function ‘main’:
main.c:281:3: warning: implicit declaration of function ‘mb_kbd_destroy’ [-Wimplicit-function-declaration]
   mb_kbd_destroy (kb);
   ^
  CC       matchbox-keyboard-layout.o
  CC       matchbox-keyboard-xembed.o
  CC       matchbox-keyboard-remote.o
  CCLD     matchbox-keyboard
make[3]: Leaving directory '/home/pi/matchbox-keyboard/src'
make[2]: Leaving directory '/home/pi/matchbox-keyboard/src'
Making all in layouts
make[2]: Entering directory '/home/pi/matchbox-keyboard/layouts'
sed \
        -e 's,@datadir\@,/usr/local/share/matchbox-keyboard,g' \
        -e 's,@prefix\@,/usr/local,g'      \
        -e 's,@version\@,0.2,g'     \
base-fragment-fi_FI.xml.in > base-fragment-fi_FI.xml.tmp
cp base-fragment-fi_FI.xml.tmp base-fragment-fi_FI.xml
sed \
        -e 's,@datadir\@,/usr/local/share/matchbox-keyboard,g' \
        -e 's,@prefix\@,/usr/local,g'      \
        -e 's,@version\@,0.2,g'     \
base-fragment-tr_TR.xml.in > base-fragment-tr_TR.xml.tmp
cp base-fragment-tr_TR.xml.tmp base-fragment-tr_TR.xml
rm base-fragment-fi_FI.xml.tmp base-fragment-tr_TR.xml.tmp
make[2]: Leaving directory '/home/pi/matchbox-keyboard/layouts'
make[2]: Entering directory '/home/pi/matchbox-keyboard'
make[2]: Leaving directory '/home/pi/matchbox-keyboard'
make[1]: Leaving directory '/home/pi/matchbox-keyboard'

real  0m46.552s
user  0m33.820s
sys 0m2.960s

インストール

次のように実行すると /usr/local 以下にインストールされます。Debian のパッケージ管理外にインストールされるため、パッケージ管理のジャマにはなりません。

pi@raspi_jessie:~/matchbox-keyboard $ sudo make install
sudo: unable to resolve host raspi_jessie
Making install in src
make[1]: Entering directory '/home/pi/matchbox-keyboard/src'
make  install-am
make[2]: Entering directory '/home/pi/matchbox-keyboard/src'
make[3]: Entering directory '/home/pi/matchbox-keyboard/src'
 /bin/mkdir -p '/usr/local/lib'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libmatchbox-keyboard.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libmatchbox-keyboard.so.0.0.0 /usr/local/lib/libmatchbox-keyboard.so.0.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libmatchbox-keyboard.so.0.0.0 libmatchbox-keyboard.so.0 || { rm -f libmatchbox-keyboard.so.0 && ln -s libmatchbox-keyboard.so.0.0.0 libmatchbox-keyboard.so.0; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libmatchbox-keyboard.so.0.0.0 libmatchbox-keyboard.so || { rm -f libmatchbox-keyboard.so && ln -s libmatchbox-keyboard.so.0.0.0 libmatchbox-keyboard.so; }; })
libtool: install: /usr/bin/install -c .libs/libmatchbox-keyboard.lai /usr/local/lib/libmatchbox-keyboard.la
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /bin/mkdir -p '/usr/local/bin'
  /bin/bash ../libtool   --mode=install /usr/bin/install -c matchbox-keyboard '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/matchbox-keyboard /usr/local/bin/matchbox-keyboard
 /bin/mkdir -p '/usr/local/include/libmatchbox-keyboard'
 /usr/bin/install -c -m 644 libmatchbox-keyboard.h mb-gtk-keyboard.h '/usr/local/include/libmatchbox-keyboard'
 /bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libmatchbox-keyboard.pc '/usr/local/lib/pkgconfig'
make[3]: Leaving directory '/home/pi/matchbox-keyboard/src'
make[2]: Leaving directory '/home/pi/matchbox-keyboard/src'
make[1]: Leaving directory '/home/pi/matchbox-keyboard/src'
Making install in layouts
make[1]: Entering directory '/home/pi/matchbox-keyboard/layouts'
make[2]: Entering directory '/home/pi/matchbox-keyboard/layouts'
make[2]: Nothing to be done for 'install-exec-am'.
 /bin/mkdir -p '/usr/local/share/matchbox-keyboard'
 /usr/bin/install -c -m 644 base-fragment.xml base-fragment-ja_JP.xml base-fragment-en_US.xml base-fragment-ar_EG.xml base-fragment-ca_ES.xml base-fragment-es_ES.xml base-fragment-ru_RU.xml base-fragment-cs_CZ.xml base-fragment-da_DK.xml base-fragment-de_DE.xml base-fragment-el_GR.xml base-fragment-et_EE.xml base-fragment-fi_FI.xml base-fragment-fr_FR.xml base-fragment-it_IT.xml base-fragment-lv_LV.xml base-fragment-nb_NO.xml base-fragment-nl_NL.xml base-fragment-pl_PL.xml base-fragment-pt_PT.xml base-fragment-sk_SK.xml base-fragment-sl_SI.xml base-fragment-sv_SE.xml base-fragment-tr_TR.xml internet-fragment.xml keyboard.xml keyboard-jp.xml keyboard-lq1.xml keyboard-symbol.xml keyboard-numpad-extended.xml keyboard-numpad-small.xml keyboard-internet.xml keyboard-extended.xml arrow.png arrows.png alt.png esc.png ctrl.png return.png shift.png '/usr/local/share/matchbox-keyboard'
 /usr/bin/install -c -m 644 shift_2.png shift_3.png shift_caps.png super_0.png sub_0.png super_1.png sub_1.png super_2.png sub_2.png super_3.png sub_3.png super_4.png sub_4.png super_5.png sub_5.png super_6.png sub_6.png super_7.png sub_7.png super_8.png sub_8.png super_9.png sub_9.png super_plus.png sub_plus.png super_minus.png sub_minus.png delta_cap.png degree.png key-backspace.png key-down.png key-up.png key-left.png key-right.png key-tab.png '/usr/local/share/matchbox-keyboard'
 /bin/mkdir -p '/usr/local/share/matchbox-keyboard'
 /usr/bin/install -c -m 644 base-fragment.xml base-fragment-ja_JP.xml base-fragment-en_US.xml base-fragment-ar_EG.xml base-fragment-ca_ES.xml base-fragment-es_ES.xml base-fragment-ru_RU.xml base-fragment-cs_CZ.xml base-fragment-da_DK.xml base-fragment-de_DE.xml base-fragment-el_GR.xml base-fragment-et_EE.xml base-fragment-fi_FI.xml base-fragment-fr_FR.xml base-fragment-it_IT.xml base-fragment-lv_LV.xml base-fragment-nb_NO.xml base-fragment-nl_NL.xml base-fragment-pl_PL.xml base-fragment-pt_PT.xml base-fragment-sk_SK.xml base-fragment-sl_SI.xml base-fragment-sv_SE.xml base-fragment-tr_TR.xml internet-fragment.xml keyboard.xml keyboard-jp.xml keyboard-lq1.xml keyboard-symbol.xml keyboard-numpad-extended.xml keyboard-numpad-small.xml keyboard-internet.xml keyboard-extended.xml '/usr/local/share/matchbox-keyboard'
make[2]: Leaving directory '/home/pi/matchbox-keyboard/layouts'
make[1]: Leaving directory '/home/pi/matchbox-keyboard/layouts'
make[1]: Entering directory '/home/pi/matchbox-keyboard'
make[2]: Entering directory '/home/pi/matchbox-keyboard'
make[2]: Nothing to be done for 'install-exec-am'.
 /bin/mkdir -p '/usr/local/share/applications/inputmethods'
 /usr/bin/install -c -m 644 matchbox-keyboard.desktop '/usr/local/share/applications/inputmethods'
 /bin/mkdir -p '/usr/local/share/pixmaps/'
 /usr/bin/install -c -m 644 matchbox-keyboard.png '/usr/local/share/pixmaps/'
make[2]: Leaving directory '/home/pi/matchbox-keyboard'
make[1]: Leaving directory '/home/pi/matchbox-keyboard'

ライブラリ (libmatchbox-keyboard.so.0.0.0) もインストールされるので ldcofig を実行しておきます。

  sudo ldconfig

インストールされたファイル

上記のように /usr/local にインストールした場合、「/usr/local/share/matchbox-keyboard/」にはキーボードのいくつかのレイアウトはインストールされます。 「keyboard-ZZZ.xml」の 「ZZZ」にあたる部分を「matchbox-keyboard ZZZ」のように指定することで仮想キーボードのレイアウトを指定できます。赤字になっているファイルが日本語配列のキーボード用に追加したファイルです。 キーの配置は base-fragment-ja_JP.xml で設定しています。気に入らないところがあれば修正してください。

pi@raspi_jessie:/usr/local/bin/ $ ls -l matchbox-keyboard
-rwxr-xr-x 1 root staff 100344 Mar 13 23:37 matchbox-keyboard

pi@raspi_jessie:/usr/local/lib $ ls -l
-rwxr-xr-x 1 root staff   1092 Mar 13 23:37 libmatchbox-keyboard.la
lrwxrwxrwx 1 root staff     29 Mar 13 23:37 libmatchbox-keyboard.so -> libmatchbox-keyboard.so.0.0.0
lrwxrwxrwx 1 root staff     29 Mar 13 23:37 libmatchbox-keyboard.so.0 -> libmatchbox-keyboard.so.0.0.0
-rwxr-xr-x 1 root staff 315528 Mar 13 23:37 libmatchbox-keyboard.so.0.0.0

pi@raspi_jessie:~ $ ls -l /usr/local/share/matchbox-keyboard/
total 400
-rw-r--r-- 1 root staff   203 Mar 13 23:37 alt.png
-rw-r--r-- 1 root staff   155 Mar 13 23:37 arrow.png
-rw-r--r-- 1 root staff   211 Mar 13 23:37 arrows.png
-rw-r--r-- 1 root staff  4070 Mar 13 23:37 base-fragment-ar_EG.xml
-rw-r--r-- 1 root staff  4782 Mar 13 23:37 base-fragment-ca_ES.xml
-rw-r--r-- 1 root staff  4785 Mar 13 23:37 base-fragment-cs_CZ.xml
-rw-r--r-- 1 root staff  4581 Mar 13 23:37 base-fragment-da_DK.xml
-rw-r--r-- 1 root staff  4413 Mar 13 23:37 base-fragment-de_DE.xml
-rw-r--r-- 1 root staff  3997 Mar 13 23:37 base-fragment-el_GR.xml
-rw-r--r-- 1 root staff  3724 Mar 13 23:37 base-fragment-en_US.xml
-rw-r--r-- 1 root staff  4782 Mar 13 23:37 base-fragment-es_ES.xml
-rw-r--r-- 1 root staff  4626 Mar 13 23:37 base-fragment-et_EE.xml
-rw-r--r-- 1 root staff  4509 Mar 13 23:37 base-fragment-fi_FI.xml
-rw-r--r-- 1 root staff  4334 Mar 13 23:37 base-fragment-fr_FR.xml
-rw-r--r-- 1 root staff  4480 Mar 13 23:37 base-fragment-it_IT.xml
-rw-r--r-- 1 root staff  7426 Mar 13 23:37 base-fragment-ja_JP.xml
-rw-r--r-- 1 root staff  4896 Mar 13 23:37 base-fragment-lv_LV.xml
-rw-r--r-- 1 root staff  4386 Mar 13 23:37 base-fragment-nb_NO.xml
-rw-r--r-- 1 root staff  4186 Mar 13 23:37 base-fragment-nl_NL.xml
-rw-r--r-- 1 root staff  4485 Mar 13 23:37 base-fragment-pl_PL.xml
-rw-r--r-- 1 root staff  4276 Mar 13 23:37 base-fragment-pt_PT.xml
-rw-r--r-- 1 root staff  4381 Mar 13 23:37 base-fragment-ru_RU.xml
-rw-r--r-- 1 root staff  5515 Mar 13 23:37 base-fragment-sk_SK.xml
-rw-r--r-- 1 root staff  5189 Mar 13 23:37 base-fragment-sl_SI.xml
-rw-r--r-- 1 root staff  4381 Mar 13 23:37 base-fragment-sv_SE.xml
-rw-r--r-- 1 root staff  4906 Mar 13 23:37 base-fragment-tr_TR.xml
-rw-r--r-- 1 root staff  3641 Mar 13 23:37 base-fragment.xml
-rw-r--r-- 1 root staff   201 Mar 13 23:37 ctrl.png
-rw-r--r-- 1 root staff   149 Mar 13 23:37 degree.png
-rw-r--r-- 1 root staff   234 Mar 13 23:37 delta_cap.png
-rw-r--r-- 1 root staff   206 Mar 13 23:37 esc.png
-rw-r--r-- 1 root staff  1246 Mar 13 23:37 internet-fragment.xml
-rw-r--r-- 1 root staff   464 Mar 13 23:37 key-backspace.png
-rw-r--r-- 1 root staff  6507 Mar 13 23:37 keyboard-extended.xml
-rw-r--r-- 1 root staff   319 Mar 13 23:37 keyboard-internet.xml
-rw-r--r-- 1 root staff   235 Mar 13 23:37 keyboard-jp.xml
-rw-r--r-- 1 root staff 13873 Mar 13 23:37 keyboard-lq1.xml
-rw-r--r-- 1 root staff  4815 Mar 13 23:37 keyboard-numpad-extended.xml
-rw-r--r-- 1 root staff  1095 Mar 13 23:37 keyboard-numpad-small.xml
-rw-r--r-- 1 root staff  2222 Mar 13 23:37 keyboard-symbol.xml
-rw-r--r-- 1 root staff   229 Mar 13 23:37 keyboard.xml
-rw-r--r-- 1 root staff   194 Mar 13 23:37 key-down.png
-rw-r--r-- 1 root staff   206 Mar 13 23:37 key-left.png
-rw-r--r-- 1 root staff   205 Mar 13 23:37 key-right.png
-rw-r--r-- 1 root staff   247 Mar 13 23:37 key-tab.png
-rw-r--r-- 1 root staff   202 Mar 13 23:37 key-up.png
-rw-r--r-- 1 root staff   160 Mar 13 23:37 return.png
-rw-r--r-- 1 root staff   177 Mar 13 23:37 shift_2.png
-rw-r--r-- 1 root staff   176 Mar 13 23:37 shift_3.png
-rw-r--r-- 1 root staff   180 Mar 13 23:37 shift_caps.png
-rw-r--r-- 1 root staff   158 Mar 13 23:37 shift.png
-rw-r--r-- 1 root staff   148 Mar 13 23:37 sub_0.png
-rw-r--r-- 1 root staff   140 Mar 13 23:37 sub_1.png
-rw-r--r-- 1 root staff   147 Mar 13 23:37 sub_2.png
-rw-r--r-- 1 root staff   148 Mar 13 23:37 sub_3.png
-rw-r--r-- 1 root staff   143 Mar 13 23:37 sub_4.png
-rw-r--r-- 1 root staff   145 Mar 13 23:37 sub_5.png
-rw-r--r-- 1 root staff   147 Mar 13 23:37 sub_6.png
-rw-r--r-- 1 root staff   145 Mar 13 23:37 sub_7.png
-rw-r--r-- 1 root staff   147 Mar 13 23:37 sub_8.png
-rw-r--r-- 1 root staff   150 Mar 13 23:37 sub_9.png
-rw-r--r-- 1 root staff   137 Mar 13 23:37 sub_minus.png
-rw-r--r-- 1 root staff   138 Mar 13 23:37 sub_plus.png
-rw-r--r-- 1 root staff   146 Mar 13 23:37 super_0.png
-rw-r--r-- 1 root staff   140 Mar 13 23:37 super_1.png
-rw-r--r-- 1 root staff   143 Mar 13 23:37 super_2.png
-rw-r--r-- 1 root staff   142 Mar 13 23:37 super_3.png
-rw-r--r-- 1 root staff   143 Mar 13 23:37 super_4.png
-rw-r--r-- 1 root staff   143 Mar 13 23:37 super_5.png
-rw-r--r-- 1 root staff   145 Mar 13 23:37 super_6.png
-rw-r--r-- 1 root staff   142 Mar 13 23:37 super_7.png
-rw-r--r-- 1 root staff   141 Mar 13 23:37 super_8.png
-rw-r--r-- 1 root staff   145 Mar 13 23:37 super_9.png
-rw-r--r-- 1 root staff   135 Mar 13 23:37 super_minus.png
-rw-r--r-- 1 root staff   141 Mar 13 23:37 super_plus.png

スクリーンショット

日本語キーボード配列は「matchbox-keyboard jp」のように、レイアウトとして「jp」をコマンドに引数として追加します。 そのままでは画面の横いっぱいに表示されて大きすぎるので、サイズを指定するほうが良いでしょう。ウィンドウのリサイズをすると自動的にキーのサイズも拡大縮小しますが、次のように60%か70%のサイズが使いやすいと思います。 ssh でネットワーク越しに X のアプリケーションを実行する場合には、表示するディスプレイを指定する必要があるので、「DISPLAY=:0.0」を前につけて実行します。 Raspberry Piに付けたキーボードから実行する場合には必要ありません。上の行では 70%のサイズで表示し、下の行では60%のサイズを指定しています。

DISPLAY=:0.0 matchbox-keyboard -s 70 jp
DISPLAY=:0.0 matchbox-keyboard -s 60 jp

matchbk01_640x384.png

キーボードのスクリーンショットを実寸で示します。スペースは右下の赤い矢印キーの左のキーです。

mbk70_560x172.png

シフトキーを押した状態です。記号の位置は日本語キーボードに合わせています。

mbk70s_560x172.png

ウィンドウのアイコンをクリックするか、タイトルバーを右クリックするとウィンドウマネージャの機能として、ウィンドウサイズの変更やタイトルバーを隠すことができます。 ウィンドウサイズを変更するとキーボードも自動的に拡大/縮小できます。邪魔になる場合は小さくすることもできます。 iPhone や iPad 用のタッチペンも使えます。


設定

仮想キーボードを実行するコマンドを打つためにキーボードを接続するわけにはいきません。メニューから実行/終了できるようにします。

実行用のスクリプト

「matchbox-keyboard」という名前のプロセスが起動していなければ、 日本語配列でmatchbox-keyboard を 60% のサイズで起動します。起動済みの場合は matchbox-keyboard という名前のプロセスを終了させるシェルスクリプトです。

#!/bin/sh
PID=`pidof matchbox-keyboard`
if [ ! -e $PID ]; then
    killall matchbox-keyboard
else
    matchbox-keyboard -s 60 jp &
fi

ここでは nano を使って、/usr/local/bin に toggle_mkb.sh というファイル名で登録することにします。 上の内容を入力したら、コントロールキーを押しながら O (オー) を押して、「return」キーを押すと保存されます。 コントロールキーを押しながら X を押して nano を終了します。

  sudo nano /usr/local/bin/toggle_mkb.sh 
メニューに設定

すでに make install でメニューに登録されていますが、内容を修正します。

次のファイルを修正します。

 sudo nano /usr/local/share/applications/inputmethods/matchbox-keyboard.desktop

赤字が修正する部分です。メニューで実行するファイルを作成したシェルスクリプトに変更します。

[Desktop Entry]
Name=Keyboard
Comment=Virtual Keyboard
Exec=toggle_mkb.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True

上記のように「nano」で編集する場合は入力後に、コントロールキーを押しながら O (オー) を押して、保存を選択して「return」キーを押します。 コントロールキーを押しながら X を押して終了します。

メニューの「Keyboard」を選ぶと 仮想キーボードが表示され、再度選ぶと終了します。


問題点

matchbox-keyboard を Raspberry Pi2 で使うと CPU の使用率が25%から下がらなくなる場合があります。これは Raspberry Pi2の4コアのCPUの内の1つが100%になるためです。原因は デスクトップモードで動作するファイルマネージャの pcmanfm がCPUを100%使ってしまうためです。pcmanfm の古いバージョン(0.9.10-3)では起こらないようです。

「matchbox-keyboard jp」のように日本語配列を指定するとCPU の使用率の問題は起きていません。 matchbox-keyboard のデフォルト配列のデータで起こる問題のようです。(2016/03/18 更新)



twofing のビルドとインストール

Raspberry Pi の公式7インチタッチスクリーンディスプレイで OSのバージョンを Jessie にアップデートすると、スクリーンの長押しでマウスの右クリックとすることが出来なくなっています。 Raspberry Pi 公式フォーラムでの議論 で Raspberry Pi のタッチスクリーンの右クリックは twofing で実現できることが見つかりました。

ソースの取得

twofing-0.1.2.tar.gz を 作者のサイト からダウンロードします。

pi@raspi_jessie:~ $ curl -O https://plippo.de/dwl/twofing/twofing-0.1.2.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17727  100 17727    0     0  12878      0  0:00:01  0:00:01 --:--:-- 12892

ダウンロードしたファイルを確認します。

pi@raspi_jessie:~ $ ls -lt twofing-0.1.2.tar.gz
-rw-r--r-- 1 pi pi 17727 Mar 14 01:22 twofing-0.1.2.tar.gz

ビルドに必要なパッケージのインストール

pi@raspi_jessie:~ $ sudo apt-get install libxtst-dev libxrandr-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libpthread-stubs0-dev libx11-dev libx11-doc libxau-dev libxcb1-dev
  libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev
  x11proto-core-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev
  x11proto-randr-dev x11proto-record-dev x11proto-render-dev x11proto-xext-dev
  xorg-sgml-doctools xtrans-dev
Suggested packages:
  libxcb-doc libxext-doc
The following NEW packages will be installed:
  libpthread-stubs0-dev libx11-dev libx11-doc libxau-dev libxcb1-dev
  libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxrandr-dev
  libxrender-dev libxtst-dev x11proto-core-dev x11proto-fixes-dev
  x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-record-dev
  x11proto-render-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev
0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded.
Need to get 4974 kB of archives.
After this operation, 19.2 MB of additional disk space will be used.
Do you want to continue? [Y/n]
略

ソースの展開

ファイルを展開して、twofing-0.1.2 ディレクトリに移動します。

pi@raspi_jessie:~ $ tar zxf twofing-0.1.2.tar.gz 
pi@raspi_jessie:~ $ cd twofing-0.1.2/

ビルド

ビルドは make を実行するだけです。 Raspberry Pi2 ならば 10 秒弱で終了します。

pi@raspi_jessie:~/twofing-0.1.2 $ make
gcc -c -Wall -O2 twofingemu.c
gcc -c -Wall -O2 gestures.c
gcc -c -Wall -O2 easing.c
gcc -o twofing twofingemu.o gestures.o easing.o -lm -lpthread -lXtst -lXrandr -lX11 -lXi

できた twofing を確認します。

pi@raspi_jessie:~/twofing-0.1.2 $ ls -l twofing
-rwxr-xr-x 1 pi pi 34340 Mar 14 01:25 twofing

デバイスの修正

twofing-0.1.2に入っている「70-touchscreen-egalax.rules」は Raspberry Pi の公式7インチタッチスクリーンディスプレイとは違うデバイスなので、公式7インチタッチスクリーンディスプレイ用に「70-touchscreen-raspi.rules」を作ります。公式7インチタッチスクリーンの入力は「/dev/twofingtouch」から取得できるようになります。

sudo nano /etc/udev/rules.d/70-touchscreen-raspi.rules

ファイルは次の内容にして、保存します。

SUBSYSTEM=="input", ATTRS{name}=="FT5406 memory based driver", ENV{DEVNAME}=="*event*", SYMLINK+="twofingtouch" ,RUN+="/bin/chmod a+r /dev/twofingtouch"

インストール

ビルドしてできた twofing を /usr/local/bin にコピーします。 /usr/local/bin はDebian のパッケージ管理の範囲外なのでパッケージ管理の障害にはなりません。

pi@raspi_jessie:~/twofing-0.1.2 $ sudo cp twofing /usr/local/bin

実行

pi@raspi_jessie:~/twofing-0.1.2 $ DISPLAY=:0.0 ./twofing

使い方

二本の指でタップすると右クリックとして動作します。カーソル位置は二本の指の中央です。 二本の指をドラッグするとスクロールとなります。ズームや回転もアプリケーションにより動作するようです。


メニューに設定

Main Menu Editorを使って、matchbox-keyboard をメニューに登録します。メニューの「Preferences」または「設定」から「Mein Menu Editor」を選択します。


メニューの「Accessories」に仮想キーボードの項目を追加することにします。左のリストから「Accessories」を選んで「New Item」ボタンを押します。


左の一番下にある「Computer」を選んで、右側のパネルから usr/local/bin と順にダブルクリックして開いて行って、最後に twofing を選んで「OK」を押します。


Command に /usr/local/bin/twofing という文字列が入ります。ここに直接入力してもかまいません。


中央の列に TwoFing という項目が現れます。「OK」ボタンを押してください。


メニューから twofing を選べるようになります。


以上でキーボードもマウスも接続しないで、ラズベリーパイ公式7インチタッチスクリーンディスプレイだけで一通りの操作ができるようになりました。バックライトが消灯すると消費電力も少なくて済むので、ラズベリーパイをサーバとして使う場合でもタッチスクリーンはおススメです。


2016-02-26-raspbian-jessie のインストール

今回も 2016-02-26-raspbian-jessie をディスクイメージからクリーンインストールする手順を紹介します。 インストール作業を行うSD カードはデータがすべて初期化されるので、新しいカードやデータが不要で消去してもいい SD カードを使って下さい。

いつものように MacBook Pro17(MacOSX 10.11.2) でインストール作業した記録です。 MacOS X ではデバイス名の指定方法が異なるだけで、Linuxと同じく dd コマンドを使ってSDカードに ディスクイメージを書き込みます。 以下の例は、私のMacBookでの例です。今回の作業では SDカード が /dev/disk4 で認識されています。適宜読み替えてください。

dd コマンドのデバイスの指定を間違えると最悪ハードディスクがすべて消えるなどの悲惨な結果が待っています。十分に注意して行なってください。

$ uname -rsv
Darwin 15.2.0 Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015;
root:xnu-3248.20.55~2/RELEASE_X86_64

ダウンロードしたディスクイメージは以下のサイズです。

$ ls -lt
-rw-r--r--  1 jun  staff  1397330339  3  1 01:15 2016-02-26-raspbian-jessie.zip

イメージのハッシュ(SHA-1 Checksum)が公式サイトにある 4a841dffd02197548bf2329b90a0a44eeeebb4ab であることを確認します。

$ shasum 2016-02-26-raspbian-jessie.zip
4a841dffd02197548bf2329b90a0a44eeeebb4ab  2016-02-26-raspbian-jessie.zip

いつものようにMacBook Pro17 にUSB接続のmicroSDカードリーダを接続して、デバイスを確認後、SDカードをアンマウントします。

$ df -k
Filesystem  1024-blocks Used Available Capacity  iused  ifree %iused Mounted on
 略
/dev/disk4s1   61384    20312    41072    34%      512      0  100%  /Volumes/boot

SDカードは /dev/disk4s1 と認識されていました。SDカードに見えているパーティションをアンマウントします。

$ diskutil unmount /dev/disk4s1
Volume boot on disk4s1 unmounted

zipファイルを展開します。

$ unzip 2016-02-26-raspbian-jessie.zip 
Archive:  2016-02-26-raspbian-jessie.zip
  inflating: 2016-02-26-raspbian-jessie.img  

展開したファイルを確認します。

$ ls -l 2016-02-26-raspbian-jessie.*
-rw-r--r--  1 jun  staff  4029677568  2 26 11:21 2016-02-26-raspbian-jessie.img
-rw-r--r--  1 jun  staff  1397330339  3  1 01:15 2016-02-26-raspbian-jessie.zip

SDカードに書き込みます。 今回は /dev/rdisk4 に書いています。

$ sudo time dd bs=1m if=2016-02-26-raspbian-jessie.img of=/dev/rdisk4
3843+0 records in
3843+0 records out
4029677568 bytes transferred in 369.484404 secs (10906218 bytes/sec)
      373.24 real         0.01 user         2.75 sys

ブート領域のファイルを確認します。

$ cd /Volumes/boot
$ ls -l
-rwxrwxrwx  1 jun  staff    18693  8 21  2015 COPYING.linux
-rwxrwxrwx  1 jun  staff     1494 11 18 16:01 LICENCE.broadcom
-rwxrwxrwx  1 jun  staff    18974  2 26 02:20 LICENSE.oracle
-rwxrwxrwx  1 jun  staff    11120  2 25 23:22 bcm2708-rpi-b-plus.dtb
-rwxrwxrwx  1 jun  staff    10841  2 25 23:22 bcm2708-rpi-b.dtb
-rwxrwxrwx  1 jun  staff    10871  2 25 23:22 bcm2708-rpi-cm.dtb
-rwxrwxrwx  1 jun  staff    12108  2 25 23:22 bcm2709-rpi-2-b.dtb
-rwxrwxrwx  1 jun  staff    12575  2 25 23:22 bcm2710-rpi-3-b.dtb
-rwxrwxrwx  1 jun  staff    17920  2  9 13:32 bootcode.bin
-rwxrwxrwx  1 jun  staff      136  2 26 01:04 cmdline.txt
-rwxrwxrwx  1 jun  staff     1635  2 26 01:04 config.txt
-rwxrwxrwx  1 jun  staff     6481  2 25 23:22 fixup.dat
-rwxrwxrwx  1 jun  staff     2505  2 25 23:22 fixup_cd.dat
-rwxrwxrwx  1 jun  staff     9722  2 25 23:22 fixup_db.dat
-rwxrwxrwx  1 jun  staff     9724  2 25 23:22 fixup_x.dat
-rwxrwxrwx  1 jun  staff      103  2 26 02:20 issue.txt
-rwxrwxrwx  1 jun  staff  3963140  2 25 23:22 kernel.img
-rwxrwxrwx  1 jun  staff  4046732  2 25 23:22 kernel7.img
drwxrwxrwx  1 jun  staff     8192  2 26 02:20 overlays
-rwxrwxrwx  1 jun  staff  2739672  2 25 23:22 start.elf
-rwxrwxrwx  1 jun  staff   612472  2 25 23:22 start_cd.elf
-rwxrwxrwx  1 jun  staff  4888200  2 25 23:22 start_db.elf
-rwxrwxrwx  1 jun  staff  3840328  2 25 23:22 start_x.elf

overlays というディレクトリも見てみましょう。

$ cd overlays/
$ ls -l
README        pitft28-capacitive-overlay.dtb
ads7846-overlay.dtb   pitft28-resistive-overlay.dtb
at86rf233-overlay.dtb   pps-gpio-overlay.dtb
bmp085_i2c-sensor-overlay.dtb pwm-2chan-overlay.dtb
dht11-overlay.dtb   pwm-overlay.dtb
enc28j60-overlay.dtb    raspidac3-overlay.dtb
gpio-ir-overlay.dtb   rpi-backlight-overlay.dtb
gpio-poweroff-overlay.dtb rpi-dac-overlay.dtb
hifiberry-amp-overlay.dtb rpi-display-overlay.dtb
hifiberry-dac-overlay.dtb rpi-ft5406-overlay.dtb
hifiberry-dacplus-overlay.dtb rpi-proto-overlay.dtb
hifiberry-digi-overlay.dtb  rpi-sense-overlay.dtb
hy28a-overlay.dtb   sdhost-overlay.dtb
hy28b-overlay.dtb   sdio-overlay.dtb
i2c-gpio-overlay.dtb    smi-dev-overlay.dtb
i2c-rtc-overlay.dtb   smi-nand-overlay.dtb
i2s-mmap-overlay.dtb    smi-overlay.dtb
iqaudio-dac-overlay.dtb   spi-bcm2708-overlay.dtb
iqaudio-dacplus-overlay.dtb spi-bcm2835-overlay.dtb
lirc-rpi-overlay.dtb    spi-dma-overlay.dtb
mcp2515-can0-overlay.dtb  tinylcd35-overlay.dtb
mcp2515-can1-overlay.dtb  uart1-overlay.dtb
mmc-overlay.dtb     vc4-kms-v3d-overlay.dtb
mz61581-overlay.dtb   vga666-overlay.dtb
piscreen-overlay.dtb    w1-gpio-overlay.dtb
piscreen2r-overlay.dtb    w1-gpio-pullup-overlay.dtb

Raspberry Pi で動かすため、Mac から SDカードをアンマウントして取り出します。

$ df -k
Filesystem   1024-blocks    Used Available Capacity  iused     ifree %iused  Mounted on
 略
/dev/disk4s1     61384     20344     41040    34%      512         0  100%   /Volumes/boot

$ diskutil unmount /dev/disk4s1
Volume boot on disk4s1 unmounted

Raspbian Jessie で起動

2016-02-26-raspbian-jessie ではイメージを書き込んだ SDカードで起動すると、そのままデスクトップが表示されて、ログインすることもなく、すぐに使用することができます。

ターミナルを開いてカーネルのバージョンを確認してみます。

$ uname -a
Linux raspberrypi 4.1.18-v7+ #846 SMP Thu Feb 25 14:22:53 GMT 2016 armv7l GNU/Linux

raspi-config による初期設定は自動的に実行されません。 SDカードは容量にかかわらず、書き込んだイメージのサイズになっています。

$ df -k
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3743376 3416328    117180  97% /
devtmpfs          469708       0    469708   0% /dev
tmpfs             474028       0    474028   0% /dev/shm
tmpfs             474028    6456    467572   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474028       0    474028   0% /sys/fs/cgroup
/dev/mmcblk0p1     61384   20376     41008  34% /boot
tmpfs              94808       0     94808   0% /run/user/1000

上のようにパーティションは4GBとなっていて、あまり空きはありません。Expand Filesystem を実行するとSDカード全体を使うようになります。

raspi-config による初期設定

これまでと同じ raspi-config も使用できますが、 デスクトップのメニューからも GUI で設定できます。「Expand Filesystem」ボタンを押して、 再起動するとSDカード全体を使うようになります。

$ df -k
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root       14983848 3494804  10825024  25% /
devtmpfs          469708       0    469708   0% /dev
tmpfs             474028       0    474028   0% /dev/shm
tmpfs             474028    6752    467276   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474028       0    474028   0% /sys/fs/cgroup
/dev/mmcblk0p1     61384   20376     41008  34% /boot
tmpfs              94808       0     94808   0% /run/user/1000


続く...



このページの目次

  1. matchbox-keyboard のビルドとインストール
  • twofing のビルドとインストール
  • 2016-02-26-raspbian-jessie