2016年2月9日火曜日

JessieにアップデートされたPi-Top OSを試してみた

はじめに

(注)こちらのページは、2015年に発売されたpi-topの旧バージョンについての記事です。2017年に発売された新バージョンについての記事はこちらになります。

Raspberry PiをノートPC化するPi-Topについては、これまで以下の3つのエントリで紹介してきました。
このPi-Topには、Raspbianにアプリケーションをいくつか追加したPi-Top OSというOSがバンドルされており、Pi-Top OSを用いることで
  • バッテリーの残量を知ることができる、
  • ディスプレイの輝度やボリュームなどをキーボードで変更できる
という恩恵を得られます。しかしその半面、
  • ログイン時にPi-Topの公式サイトで登録したIDをネットワーク越しに入力しなければならない
という欠点がありました。つまり、インターネットにアクセスできない環境ではログインすらできなかったわけです。

上記の3つめのエントリ「Raspberry PiをノートPC化するPi-Topにユーザーpiでログインしてみた」ではネットワークログインを無効化する方法を解説しており、個人的にはそこまで実行して初めてPi-Topを使う気になったのでした。

今回、Pi-Topチームから、Pi-Top OSのアップデートのお知らせが届きました。これまでWheezyベースだったのに対し、今回からJessieベースになったとのことで、早速試してみました。下の図は、インストール後、前回同様「Raspbian風に使う」設定を施した後の状態です。以下で解説していきます。


インストール

インストールは、これまでのOSのアップデートではなく、新しいmicroSDカードに新規にインストールする必要があります。8GBのmicroSDカードが必要ですが、運が悪いと16GBのものが必要かもしれません。

まず、Pi-Topチームからのメールに従うと、pi-topOS.zipという約2.5GBのファイルがダウンロードされます(リンクは貼らないでおきます)。

このzipファイルを解凍すると、8GBのpi-topOS-jessie.imgが現れます。すなわち、ディスクに2.5GB+8GBの空きがないとzipファイルの展開が行えませんので注意が必要です。このイメージは、8GBのmicroSDカードのイメージを吸い出しただけですね。

あとはこのイメージを新しいmicroSDカードに書き込みます。Windowsの場合、個人的にはWin32 Disk Imagerというアプリケーションを使っています。Raspberry Pi公式ページにWin32 Disk Imagerを用いたインストール法の解説があります。microSDカードを指すドライブの指定を間違うとPCの環境を破壊してしまうので注意しましょう。

8GBを書き込むのでそれなりに時間がかかります。この時、無事書き込みが完了すれば問題ないのですが、microSDカードの個体差が原因でサイズが足りずにエラーが出る場合があるかもしれません。そういった場合、16GBのmicroSDカードならば書き込みは成功するでしょう。

起動、ログイン、そしてRaspbian風に使う設定

(2017年2月リリースのpi-topOS Polarisの場合)

イメージ書き込みが完了したら、microSDカードをPi-TopのRaspberry Piにさし、電源を投入します。これまで通り、Pi-Top購入時と同様のスプラッシュスクリーン動画が見られます。 しかしこのリリースでは、起動時にpi-topサイトでのログインが求められません。これによりかなり使いやすくなっています。

しかし、それなりの時間待たされるスプラッシュスクリーンは相変わらずありますし、起動されるパネルも個人的には不要なものです。これらを無効にしてみます。 まずLXTerminalを起動し、下記のコマンドを実行します。
$ leafpad .config/lxsession/LXDE-pi/autostart
.config/lxsession/LXDE-pi/autostartというファイルをテキストエディタで編集します(使うエディタはお好みで)。下記のような内容が見られるはずです。
@pt-os-dashboard
@pt-display
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@/opt/pt-hub-controller/restartXscreensaver
@screen-daemon
@point-rpi
@pt-speaker
ここで、電源投入時に起動されるアプリケーションを起動しているのですが、いくつかを無効にしてみましょう。下記の通りに編集します。
#@pt-os-dashboard
#@pt-display
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
#@/opt/pt-hub-controller/restartXscreensaver
@xset s on s 60
@screen-daemon
@point-rpi
@pt-speaker
1、2、5、6行目の先頭に半角で「#」を記述し、6行目の次の行に「@xset s on s 60」を記述しています。 これは「60秒で画面をブランクにする」というスクリーンセーバーの機能をしています。

 次に、スプラッシュスクリーン動画を無効にします。ターミナル上で下記のコマンドを実行しましょう。次回起動時よりスプラッシュスクリーン動画が無効となります。
$ sudo systemctl disable pt-splashscreen.service

pi-topOS のこのバージョンには日本語フォントが含まれますが、見栄えがあまり良くありませんので、ターミナルを起動して下記のようにフォントを追加すると良いでしょう。 インストール後は再起動するとフォントが変わります。
$ sudo apt-get update
$ sudo apt-get install fonts-vlgothic

あとは、
  • ホスト名:pi-top(avahiを使ってpi-top.localでアクセスできる)
  • ユーザー名:pi
  • デフォルトパスワード:pi-top
  • バッテリー残量を知るためのコマンド:pt-battery
であることを知っておくと良いでしょう。

さらに、LXTerminalが最大化されて表示されるのを無効にしたり、デスクトップをRaspbian風にする設定は「Raspberry PiをノートPC化するPi-Topにユーザーpiでログインしてみた」を参考にしてください。

なお、このバージョンのpi-topOSのカーネルは「4.4.38-v7+」でした。2017/2/27にリリースされたNOOBS 2.2.0(4.4.48-v7+)より少し前のものですね。

起動、ログイン、そしてRaspbian風に使う設定

(2016年2月リリースのものの場合)

ここから先は2016年2月リリースの古いバージョンの話です。 イメージ書き込みが完了したら、microSDカードをPi-TopのRaspberry Piにさし、電源を投入します。Pi-Top購入時と同様のスプラッシュスクリーン動画→ログイン画面が見られるはずです。

そのままPi-Top OSのデフォルト状態で使うならばこれで作業は終わりです。

個人的にはPi-Top OSを通常のRaspbianのように使いたかったので、以下のように作業しました。

まず、ログイン画面でネットワークに接続し、Pi-TopのIDで一回だけログインします。そして、LXTerminalを起動し、下記のコマンドを実行します。
$ sudo leafpad /etc/xdg/lxsession/LXDE-pi/autostart
/etc/xdg/lxsession/LXDE-pi/autostartというファイルを管理者権限のテキストエディタで編集します(使うエディタはお好みで)。下記のような内容が見られるはずです。
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@omxplayer /opt/pt-splashscreen/splash.mp4
@sudo pt-hub-controller > /dev/null &
@pt-dashboard
このうち、4行目と6行目の先頭に「#」を付加して無効化します。すなわち、下記の通りです。
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
#@omxplayer /opt/pt-splashscreen/splash.mp4
@sudo pt-hub-controller > /dev/null &
#@pt-dashboard
そして再起動すれば、ログインIDを求められることなく、デスクトップが開きます。通常のRaspbianと同様の挙動です。

あとは「Raspberry PiをノートPC化するPi-Topにユーザーpiでログインしてみた」と同様にRaspbian風にする設定をしても良いでしょう。

なお、新しいPi-Top OSはJessieベースですので、新しい設定アプリケーション(Menu→Preferences→Raspberry Pi Configuration)が使えます。

ただし、pi-topOSのこのバージョンには日本語フォントが含まれていませんので、そのまま日本語化するとメニュー等の文字が全て文字化けします。そのため、例えば下記のコマンドで日本語フォントをインストールしてから日本語化の設定を行うと良いでしょう。
$ sudo apt-get update
$ sudo apt-get install fonts-vlgothic
あともう一点、Wheezy版にはバッテリーの残量を知るためのコマンド「battery」があったのですが、Jessie版にはなくなっています。これはI2Cアクセスしてバッテリー残量を知るためのシェルスクリプトでした。移植は簡単で、Wheezy版の/usr/local/bin/batteryをコピーしてきてJessie版の同じ場所に配置すればそのまま使えます。

カーネルのバージョンは4.1.17-v7+でした。2月3日にリリースされた新しいRaspbianと同じですね。

あと、JessieではChromiumブラウザがインストールできなくなったのですが、上の図にあるようにChromium 45.0.2454.85というバージョンがプリインストールされています。どうも「Guide: Chromium 45 on Raspbian Jessie」というページで紹介されている方法でインストールしたもののようですね。

終わりに

Pi-Top OS自体は、あまり高く評価できるものではないと個人的には思ってますが、腐れ縁という感じで使い続けています。

こちらもどうぞ




「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。

2015年12月18日金曜日

SHARPのIGZO液晶用のスタンドをタミヤの楽しい工作キットで作り、Raspberry Piで使ってみた

はじめに

秋月電子通商を始めとする様々なショップでSHARPのIGZO液晶の取り扱いが開始されました(2018年4月時点ではどの店でも売り切れですが、本ページ末尾で類似商品を紹介します)。
実は2015年8月のMaker Faire Tokyoで参考出展されていたようなのですが、私は今回初めて知りましたので、早速購入して試してみました。

あまり深く考えずに購入したのですが、なかなか骨のある商品でした。

タミヤの楽しい工作シリーズでスタンドを作成して表示している様子がこちら。


組み立てから電源投入まで

組み立ては詳細な説明書がついてくるので、流れ自体は難しくありません。

ただし、フレキシブルケーブルを基板に取り付けるの作業がかなり繊細なので、慎重に行なう必要があります。また、このフレキシブルケーブルは非常に断線しやすい(後述)ので、注意する必要があります。

Raspberry Piで用いる場合、/boot/config.txtにLCDの解像度に関する設定を追加する必要があります。/boot/config.txtの冒頭に、下記を追加します。KSYさんのページを参考にしました。
# SHARP 7" Settings: (KSY)
hdmi_pixel_freq_limit=200000000
hdmi_timings=1200 0 164 8 32 1920 0 12 2 6 0 0 0 60 0 163430000 0
hdmi_drive=2
disable_overscan=1
max_framebuffer_width=1200
max_framebuffer_height=1920

# Landscape (display_rotate=1 for upside down)
display_rotate=3
framebuffer_width=1920
framebuffer_height=1200
# Test
hdmi_group=2
hdmi_mode=87
hdmi_force_hotplug=1
なお、上記の秋月電子通商の商品ページで公開されているconfig.txtでは、2016-02-03以降のRaspbianで横向き表示ができないので注意しましょう。上記の設定の「hdmi_mode=87」が必要なようです。こちらの解説によると、カスタムモードを作るための設定のようですね。
また、上記設定にある「display_rotate=3」は、HDMI端子やUSB端子がディプレイの上側にある場合の設定です。これらの端子をディスプレイの下側に配置したい場合、「display_rotate=1」としてください。

なお、2015年12月頃のRaspbianでは「NOOBSでインストールしたRaspbian」で映像が表示されず、イメージ書き込みである必要がある」ようでしたが、2016年5月現在、上記の設定を用いればNOOBSでインストールしたRaspbianでも表示可能でした。


2015年12月当時、NOOBSでは画面が映らないと気づくまでの数日間、「組み立て時に破損してしまったのではないか?」と思い、二個目の液晶を購入してしまいましたが、その心配は不要でした(少なくともこの時点では)。


スタンドの作成

このままでは液晶を机にベタ置きで使う羽目になるので、スタンドを作成する必要があります。

既に、フォトフレームを流用する方法を紹介されている方や、きれいなスタンドを自作している方がいらっしゃるのですが、私はタミヤの楽しい工作シリーズのキットが手元で余っているので、これを使うことにしました。

それが冒頭の写真です。


どのようなパーツを使っているのかを解説すると、まず、前面側は下図のようになっており、

  • ユニバーサルプレートL
  • ユニバーサルアームセットのアームを2本
  • ユニバーサルアームセットのパイプ材(小)をスペーサーとして6個(ニッパなどで多少細らせる必要がある)
  • 3mmのビスとナットを6組

が使われています。


背面側は下図のようになっており、
  • ユニバーサルアームセットのL型アーム2個
  • ユニバーサルアームを長さ10でカットしたものを2つ
  • 3mmプッシュリベットを1つ(オレンジ色の部分)
  • 3mmのビスとナットを適宜
が使われています。

ユニバーサルプレートの穴と基板の穴の間隔が合わないため、ユニバーサルプレートへの固定は一箇所だけプッシュリベットを取りつけ、さらにタミヤのマスキングテープを貼って仮止めしています(これについては後述)。


ひとまずはこれで使えるようになりました。このIGZO液晶(1920x1200)(左)と公式タッチパネル(800x480)(右)を比較したのが下図です。

IGZO液晶の方が解像度が高いのですが、プログラムを書くなどのように文字を読み書きするためには、フォントを大きくするなどの設定が必須でしょう。


オチ

そのようなわけで、IGZO液晶をRaspberry Piで使えるようになってめでたい、で締めようと思っていました。

しかし、ブログにまとめるにあたって、基板とユニバーサルプレートをマスキングテープで仮止めたままではカッコ悪いかなあと思い、うまい固定方法を考えることにしました。

そのためにいろいろと試行錯誤している際、ビリッ、という異音がし、フレキシブルケーブルが下図のように断線してしまいました。


上述のようにIGZO液晶を2個購入していたので、2個目を使って復活させることはできましたが、断線に気づいたときはかなり落ち込みました。

そんなわけで、私のIGZO液晶の基板はマスキングテープでユニバーサルプレートに仮止めされたままです。

使いやすかったら常用しようかな、と考えていたのですが、また壊すと落ち込みそうなので、棚にしまっておくことにしました。

オチ2

そんなわけで棚で眠っていたIGZO液晶なのですが、emerge+さんの「IGZOパネルエンクロージャ」というアクリルケースを購入してうまれかわりました。これ、すごく良いですよ。お勧めです。


オチ3

そんなわけで、emerge+さんのエンクロージャで満足度の上がったIGZO液晶ですが、IGZO液晶の1920x1200という解像度では、文字が小さすぎて読むことが難しく、実用には難があるというのが正直なところでした。

2018年4月時点で最新のRaspbianを用いると、GUIの設定アプリケーションに「Pixel Doubling」という、解像度を半分にするための設定が追加されています。Retinaディスプレイのように高解像度のディスプレイを用いるための設定のようです。
これを有効にすると、下図のようにIGZO液晶が960x600という実用的な(文字が読める)解像度で使えるようになります。

なお、2022年7月現在、Raspberry Pi OS Bullseye には、この Pixel Doubling の設定はないようです。代わりに、デスクトップ上で右クリックし、「デスクトップの設定」→「デフォルト」タブ→「大きな画面向け」の設定、を行うと似た効果を得ることができます。

オチ4

「オチ2」と「オチ3」でemerge+さんのIGZOパネルエンクロージャをお勧めしましたが、IGZO液晶同様、こちらも2018年4月の時点では入手不可能ですね。

代替として、下記の組み合わせをお勧めしておきます。
こちらは、本ページで紹介したIGZO液晶よりも一回り小さいのですが、emerge+さんのエンクロージャが美しいので満足度が高いです。


なお、上記の写真で用いている短いHDMIケーブルはこちらです。

また、電源は下記の組み合わせのもの用いており、これによりACアダプターが一個で済むので良い感じです。
こちらの液晶の場合、config.txtの末尾に追加する設定は下記のようになります。
# SHARP 5.5" Settings
hdmi_pixel_freq_limit=400000000
hdmi_timings=1080 0 60 10 35 1920 0 4 4 2 0 0 0 50 0 114352500 0
hdmi_drive=2
disable_overscan=1
max_framebuffer_width=1080
max_framebuffer_height=1920

# Landscape
display_rotate=1
framebuffer_width=1920
framebuffer_height=1080

hdmi_group=2
hdmi_mode=87
dmi_force_hotplug=1
なお、2022年7月現在、Raspberry Pi OS Bullseye では上の設定では画面が縦向きになります。設定中の「# Landscape」の項目が機能していない、ということでしょう。その場合、画面左上のメニューから「設定」→「Screen Configuration」→「Configure」→「Screens」→「HDMI-1」→「向き」を「right」または「left」に設定すると画面が横向きになるでしょう。



「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。

2015年11月30日月曜日

Raspberry PiをノートPC化するPi-Topにユーザーpiでログインしてみた

はじめに

(注)こちらのページは、2015年に発売されたpi-topの旧バージョンについての記事です。2017年に発売された新バージョンについての記事はこちらになります。

Raspberry PiをノートPC化するPi-Topが届いた」にて、Pi-Topに触って見ましたが、Pi-Top OSと呼ばれるOSを用いており、ログイン時にPi-Topサイトのアカウントでログインしなければならないことが不満でした。その主な理由は下記の通りです。
  • ログインした後は普通のユーザーpiなので、Pi-Topアカウントでログインする必然性がないこと(CEED universeというものと連携させたいのでしょうが)
  • ログイン時にインターネットに接続していなければならないこと
  • ログイン時に相手側サーバーがダウンしていたらログインできないこと
  • インターネット接続にProxy接続は許されないこと
そのようなわけで、通常のRaspbianのようにユーザーpiでログインできるようにしてみます。さらに、このPi-Top OSを通常のRaspbianに近い外観で使用できるようにもしてみましょう。

グラフィカルログイン方式、およびコンソールにログインしてstartxコマンドでXを起動する方式の両方でできました。


手順

LXterminalを起動し、.xinitrcを無効にします。
$ mv .xinitrc .xinitrc.bak
さらに、X起動時に自動でdashboardというアプリケーションが起動してしまうのを以下で抑制します。
$ mv .config/lxsession/LXDE-pi/autostart .config/lxsession/LXDE-pi/autostart.bak
最後に、下記のコマンドでスプラッシュスクリーンを無効にしましょう。後で解説しますが、これは45秒間の動画を流しているだけです。
$ sudo mv /etc/rcS.d/S01nasplashscreen /etc/rcS.d/K01nasplashscreen
あとは再起動すれば、ユーザーpiのデスクトップで起動すると思います。

バッテリー残量表示のアイコンがありませんが、以下のコマンドで残量が表示できるのでそれほど問題にはならないかなと思います。
$ battery
コンソールログインが良いという方は次の作業も行なってください。なお、このページの末尾にはこのPi-Top OSを普通のRaspbian風に用いる方法も記していますので、必要に応じて最後までご覧ください。

コンソールログインしたい場合

コンソールにログインしたいという方は、下記に従います。

まず、ユーザーpiのパスワードを念のため確認しておきましょう。 Pi-Top OSにログインし、LXTerminalを起動して、
$ su - pi
というコマンドによりユーザーpiにログインしてみてください。パスワードは「raspberry」ではなく「pi-top」であると思います。そのことを確認できたら次に進みましょう。

再びLXTerminalを起動して下記のコマンドを実行します。
sudo raspi-config
そこで「3 Enable Boot To Desktop/Scrach」→「Console Text console, requiring login (default)」を選択して再起動しましょう。これでコンソールへログインする形式になります。

このとき、ユーザーのIDとパスワードは先ほど確かめた通り、
  • ID: pi
  • パスワード: pi-top
です。

ログイン完了時に
Cannot open display "default display"
というエラーがでますが、これは気にしないことにします。多分.bash_profile内に書かれたコマンドのせいだと思うのですが、これを消すと別のエラーが出るためです。 あとは必要に応じてstartxコマンドでXを起動してください。

何をしたのか?

上の設定で何をしたのかですが、基本的には「ユーザーpiのログイン時にdashboardというアプリケーションが起動されるのを抑制した」だけです。

dashboardを通常通り起動すると、「ユーザーpiのデスクトップが起動→dashboardというアプリケーション(Pi-Top OSのログイン画面)が起動」という流れが見えてしまうので、Pi-Top OSでは45秒間の動画(/home/pi/.pi-top/media/splash.mp4)を流してそれを隠している、というわけです。しかし、45秒間待たされるというのはユーザーにとってはメリットは何もないわけで、ちょっとお粗末だなと思います。

通常のRaspbianのように使ってみる

以下、このPi-Top OSを通常のRaspbian風にする設定を列挙します。

LXTerminalが最大化されて起動されるのを防ぐ

.config/openbox/lxde-pi-rc.xmlをleafpadなどのテキストエディタで開き、下記の部分を見つけます。
  <application name="lxterminal">
    <maximized>yes</maximized>
  </application>
この「yes」の部分を「no」に変更してからXを再起動すると、LXTerminalが最大化された状態で開くのを抑制することができます。なお、leafpadも最大化されてい開くかもしれませんが、こちらは、一度小さくしてから終了するとそのサイズが保存されます。

パネルの位置を上に

パネル上で右クリックして「パネルの設定」を開き、「ジオメトリ」→「位置」→「端」→「上」

タスクバーのアイコンに文字を出す

タスクバー上で右クリックして「タスクバー(ウインドウのリスト)Settings」→「アイコンのみ」のチェックを外す

メニューボタンのアイコンをRaspbianのものに

メニューボタン上で右クリックして「メニューSettings」→「アイコン」を/usr/share/raspberrypi-artwork/raspitr.pngに

壁紙をRaspbianのものに

壁紙上で右クリックして「デスクトップの設定」→「外観」で「壁紙のモード」を「原寸大のまま中央に配置する」に、「壁紙」を/usr/share/raspberrypi-artwork/raspberry-pi-logo-small.pngに、「背景色」を赤214、緑211、青222に。

以上で、Pi-Top OSが通常のRaspbianにこの程度近づきました。


こちらもどうぞ




「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。