Linux on Pomera DM200 人柱版 その2

投稿者: | 2017年7月9日

人柱版その2を公開します。

今回のバージョンではベースをDebian 9.0 (stretch)に変更し、試験的にX環境とBluetooth有効化スクリプトを追加しました。
また前の人柱版を使用していただいた方からあがった不具合の修正を行っています。

今回も試用されるみなさまからの不具合や要望などをいただけると助かります。

この手のソフトではお決まりですが文鎮になっても責任は負いません。
本体内のソフト変更を伴いますのでメーカーへの問い合わせはやめてください。

7/10追記
wpa_supplicant.confを/etc/wpa_supplicant/wpa_supplicant.confに置く場合にはSDカードのvfat領域に有るsettings/wpa_supplicant.confは削除してください。
参照順にミスが有りこちらを先に見に行くようになっていました。

7/17追記
moyashiさんに詳細な使い方を書いていただいていますのでインストール後はこちらを参照してみてください。
KING JIM ポメラDM200でEmacs、Vim、Ruby、Pythonが動くなんて素敵すぎる!

7/17追記2
US配列に設定した場合に、`や~が入力できない問題に対応したテストカーネルを作成しました。
その他にも変更(詳細はchange.txt参照)を入れてありますが、とりあえず動作には問題なさそうなので以下に置いておきます。
test_kernel_d28.zip

8/1追記
上のd28のテストカーネルまでの変更に追加してフレームバッファの色深度を32bitに変更する対応を入れました。
今までは16bit設定になっていたので、少し色がきれいに見えるようになるかと思います。
test_kernel_d29.zip

8/3追記
上の7/10の追記で記載した、/etc/wpa_supplicant/wpa_supplicant.conf が作成されていても
無視されてしまう場合がある問題を修正したwifi_switchコマンドを置いておきます。
v02_updater01.zip
 

何が動くか

機能 対応状況 備考など
キーボード 実は`(バッククオート)が入力できないような気がします
内蔵LCD
WiFi ほぼ○ BTと同時に動かすと動作が怪しくなる
Bluetooth 有効になっているとWiFiに影響有り
USB △(制限あり) 起動時からHOSTモード設定に変更。
HOSTモードでも内部からのVBUS出力不可のため外からの給電が必要。
suspend/resume ○? Suspend to RAMとResumeは可能。
suspend状態でどの程度電池がもつかは検証不足。
WiFi/BTをONにしたことが有ると(?)復帰ミス発生の可能性あり。

 

注意/制限事項など

前回からの変更/追加分のみ

■試験的にX環境(xfce4)を入れてありますが、長時間触らずに置いておくと気がつくと反応しなくなっている場合があったので使用する場合はご注意ください。そうなった場合にはCtrl+Alt+F2などで別のttyからログインしてkillするなどしてください。

■Bluetoothを有効化するコマンドを追加しましたが、Bluetooth機器と接続しているとWiFiと干渉するのかWiFiの通信が不安定になります。その場合はBluetoothを切断してみてください。
 

インストール手順

■準備
 内蔵eMMC(4GB)のバックアップをとるために十分なサイズのSDカードが必要です。
 インストーラとrootfsの入ったSDカードイメージを書き込むために16GB以上のSDカードが必要です。
 公開前のテストにはSanDiskのUltra 16GBを使用しました。(48MB/sの記載のあるもの)

0. 本体のバックアップをとる
 DM200 eMMC NAND バックアップ/リストア ツール
 使い方はzipを展開するとできるreadme.txtを読んでください。
 取得したファイルはPCなど別の機器上に保存しておいてください。

1. インストーラのダウンロードとSDへの書き込み
 DM200 Debian インストーラー v0.2 (今回は800MBほど有ります)
 readme.txtにも記載していますが、展開するとdm200_debian_16GB.imgができるので、Windowsの場合はWin32DiskImagerやrawrite、Linux,MacならddなどでSDカードの先頭から書き込んでください。
 RasPiのSDイメージインストール手順が参考になります。

2. インストール実行
 readme.txtの手順でインストールを実行してください。

3. Linux起動手順
 インストールが正常に完了すると自動で再起動がかかり標準ロムが動作するので、一度電源を切って”左Alt + 右Shift + 電源キー”の3つ長押しで電源を入れます。
 POMERAのロゴが出たら離してOK。Linuxの起動ログが流れてコンソールのログイン画面が表示されるはずです。

4. ログイン
 起動後は通常のLinuxと同様に使用可能です。
 アカウントはrootのほかにdm200というユーザーを作成してあります。
 rootのパスワードはroot、dm200のパスワードはdm200です。

■前回のv0.1がインストール済みの本体に今回のバージョンを入れる場合、一度リストア手順を行ってもとに戻してから再度インストールを行ってください。 
なお、v0.1を使っていてその時のrootfsをそのまま使いたい場合はそのSDカードは置いておき、別のSDカードで一度リストアとインストール手順を行ったあとSDカードを差し替えることで前の環境を使用することも可能です。
 

変更点、追加など

・起動時にkmsgを出さないようにしたので起動が早くなった(気がする)

・BluetoothのON/OFF (要root権限)
 有効化
  #/opt/bin/bt_switch on
 無効化
  #/opt/bin/bt_switch off

  – 有効化コマンド実行後、コンソールに結構な量のログが流れるのは正常動作です。ログ出力を停止すると正常に動くかなくなるためそのままにしてあります。数行出て止まった場合にはONに失敗していますので一度offコマンドを実行してから再度onしてみてください。
  – 有効化後のデバイスの接続方法については次の項目で記載します。

・Suspend / Resume (要root権限)
 #/opt/bin/sus2ram
 でSuspend to RAMの動作が動きます。Resumeは電源ボタンを押してください。
 - コマンド名が標準の別のもの同じだったため変更しました。
 - 無線機器の電源処理を追加したため、waitを少し多めに入れています。そのためコマンドを実行してから画面が消えるまでにタイムラグが5秒ほど増えました。(他に方法があるかは確認中)

・dm200ユーザーでログインした際にfbtermとuim-fepが標準で起動するように設定を追加。
 - 不要な場合は.bashrcの最後の方を見て消してください。

・wifi接続設定(wpa_supplicant.conf)の参照場所追加
 - vfat領域(windowsから見える領域)にsettingsフォルダを追加して、中にwpa_supplicant.confのひな型を置くようにしました。ファイルの下の2行を変更して置いておけばwifi_switch
on実行時にこのファイルの設定を読みに行くようにしてあります。(起動時に/tmpにコピーしてそれを見る、Linux環境で変更したら再起動が必要です)

・X関係とxfce4のファイルを一式追加
 $startx
 でGUI画面になります。
 ただし、内蔵ポインティングデバイスがないためUSBまたはBluetoothでマウスなどを接続する必要があります。
 また、初回はダイアログが出るのでAlt+Tabを押してダイアログにフォーカスを当てたあとSpaceでどちらかのボタンを押してください。
 ポインティングデバイスがない状態でメニューを開くにはAlt+F1で左上のドロップダウンが開きます。
 なお、fbtermで/dev/fb0を使っているとXが起動できないため、標準のconsoleに戻って実行する必要があります。

Bluetooth ON後の接続手順

今のところGUIでのデバイスの接続方法は無いため、以下の手順を参考にペアリングと接続を行う必要があります。一度接続すればあとは電源を切っても次の起動でbluetoothのon操作を行うだけで認識するようになります。

$bluetoothctl

として、hci0というデバイスが見えれば本体側は有効化できています。
次につなぎたいデバイスをみつけるため、接続相手の機器をペアリングモードにして

[bluetooth]scan on

とコマンドを入れるてしばらく待つと、ペアリング可能な機器のアドレスが表示されます。
接続機器のアドレスが分かったら

[bluetooth]pair 機器のBTアドレス
[bluetooth]trust 機器のBTアドレス
[bluetooth]connect 機器のBTアドレス

とすれば接続完了です。(この手順はBTマウスで確認)
なお機器のBTアドレスは途中まで入力してTabを押すと補完されます。
exitでbluetoothctlを抜けてください。

前回からの注意事項にもありますが、 Bluetooth機器と接続しているとWiFiの接続が不安定になります。その場合には接続機器側の電源を切るかbt_switchでoffにしてみてください。
この問題は今のところ対処方法が有るのかも不明です。
 

TODO

・電池残量低下時の通知/シャットダウン処理追加
・キー配列の変更 (多用するHOME,End,PageUp,PageDownをどこかのキーコンビネーションで使えるようにする)
・BluetoothとWiFiを同時に有効にするとWiFiが切れる問題の調査
・USBがデバイスモードのときに別のデバイスとつないだ際にVFAT領域を見えるようにするための処理追加
・まれに起動に失敗する場合がある件について調査(おそらく修正完了)

Linux on Pomera DM200 人柱版 その2」への5件のフィードバック

  1. Sean

    Thank you for sharing such a great information and files. I will definitely give this try on my own. before that, I have a couple of questions to you. Can I install a Korean key input software in your debian image? and will the instant on-off still work after debian is installed? thank you in advance.

    返信
  2. ichinomoto 投稿作成者

    Thanks for interested in my soft.

    Sorry, this image is specialized to japanese language.
    But “Debian on Pomera DM200” is normal Debian Linux (but arch=ARM). So, you can change language environment to Korean.

    Except “C” and “ja.JP_UTF8” LANG is not enabled, so you have to enable Korean setting in /etc/locale.gen and do locale-gen command.
    “LANG” of dm200 account is set to ja.JP_UTF8, so you have to change this in .bashrc .

    You can install Debian supported packages listed on https://packages.debian.org/stretch/.

    Instant on-off like normal Pomera DM200 is not supported, but “Debian on Pomera DM200” can suspend to RAM.
    command:
    sudo /opt/bin/sus2ram
    Push power button to resume.

    返信
  3. t_j_baldwin

    ありがとうございます。

    さっそくやってみて、Debian動かして楽しんでました。
    Debian 側の動きがおかしいので、最初からやり直そうと、バックアップのファイルからReadMeの通り、mmcblk0p14.imgとmmcblk0p15.imgをリストアし直してから、再度インストール・イメージを書いたSDを入れて、”左Alt + 右Shift + 電源キー”の3つ長押し したのですが、Linux起動ログが流れず FACTORY MODE に落ちてしまいます。

    何か心当たりありますでしょうか?

    # POMERA自体は文鎮化してないのですが、Debianで遊べなくなってしまった・・・

    返信
    1. ichinomoto 投稿作成者

      すみません、今更の返信ですがおそらくインストーラに使用しているSDカードのvfat領域上にインストール完了情報(INSTALL_COMPLETEDというファイル)があるのではないかと思います。
      インストール済みの場合は再度インストーラが動作しないようにこのファイルがある場合にはインストーラが動作しないようにしてありますので、もし有る場合にはこのファイルを消してみてください。
      SDカードを1から作りなおした場合にはこの問題は発生しませんので、もしかしたらすでにそちらで解消済みかもしれませんね。

      返信
  4. ktg

    こんなにも素晴らしいものをありがとうございます。
    どこでもプログラミングできるようになりました。

    返信

コメントを残す

メールアドレスが公開されることはありません。