電子辞書Brainをいじる (3) BrainuxでX11(X window system)とUSBサウンドデバイスで遊ぶ

BrainuxとX環境への接続について

Brainuxには、標準でX環境(X11[X window system])が利用できます。

X環境(X11[X Window system])の1つの特徴として、アプリケーションと表示するシステムが独立していて、アプリケーションを動かすサーバと、画面描画するサーバが別でも構わないことです。

X11はクライアント/サーバモデルで提供しているのですが、
あくまで画面描写が主体となっているため、一般的な認識とは逆になります。

・ここでの「クライアント」は、GUIを表示するプログラム(Xアプリケーション)になります。
・ここでの「サーバー」は、クライアント(Xアプリケーション)からの要求を受け付けて、画面に表示する内容を管理するプログラム(X11[X window system])になります。

Brainの画面でX11アプリケーションを利用するには、いくつかのパターンがあります。

  1. Brainを直接操作して、Brain上でXアプリケーションを起動し、Brainの画面で操作する
  2. Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
  3. 他PCからsshでBrainにログインして、Brain上でXアプリケーションを起動し、Brainの画面で操作する
  4. 他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する

起動操作Xアプリケーション実行Xアプリ表示(操作)
1.Brainを直接操作して、Brain上でXアプリケーションを起動し、Brainの画面で操作するBrainBrainBrain
2.Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作するBrain->他PC他PCBrain
3.他PCからsshでBrainにログインして、Brain上でXアプリケーションを起動し、Brainの画面で操作する他PC->BrainBrainBrain
4.他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する他PC他PCBrain

ここでは、以下を想定して、それぞれの方法での接続例を紹介します。

brain(IP:192.168.29.11) Brainux環境
他PC(IP:192.168.29.19) X11環境を持ったLinuxを想定

今回の環境的には、USBホストアダプタを使って、USBネットワークアダプタ経由でネットワークに接続しています。
(USBでホストPCを経由してネットワークに接続する(USB Ethernet Gadget)だと、他PCからBrainへの通信について制限が出てくるので、ホストPCがX11導入したLinuxであればいけるかもといったところ)


1.Brainを直接操作して、Brain上でXアプリケーションを起動し、Brainの画面で操作する

起動操作Xアプリケーション実行Xアプリ表示(操作)
BrainBrainBrain

これがBrainuxでの一般的な操作になります。
Brain上でBrainuxを起動する際には、「xinitrc」か「jvm」を選択して起動すれば、X環境が立ち上がります。

あとは、terminalを起動し、Xアプリケーションを起動してください。
DISPLAY環境変数にはすでに:0は設定されているので、明示的に設定する必要はありません。(xeyesは、マウスカーソルの方向を向く目玉のアプリケーションです。)

xeyes &

その他デフォルトで、x11-appsというパッケージが導入されているようです。
xeyes(目玉アプリ)以外にも、oclock(アナログ時計),xclock(アナログ時計),calc(電卓)、xedit(エディタ)、xmore(ビューア)あたりは普通に使えると思います。

2.Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する

起動操作Xアプリケーション実行Xアプリ表示(操作)
Brain->他PC他PCBrain

Brainから、他PCにSSHログインして起動したXアプリケーションを、Brainの画面に出す方法です。
Terminalを立ち上げて、sshでログインする際に、-X オプションを設定することで、アクセス元のX環境に画面表示のリダイレクトをしてくれます。(DISPLAY環境変数は自動設定されます。)

ssh -X user@192.168.29.19
xeyes &

3.PCからsshでBrainにログインして、Brain上でXアプリケーションを起動し、Brainの画面で操作する

起動操作Xアプリケーション実行Xアプリ表示(操作)
他PC->BrainBrainBrain

他PCからsshでBrainにログインして、Brain上でXアプリケーションを起動する方法です。
他PCはWindows上でもputty等でのsshアクセスでもかまいません。問題ありません。
Brainのキーボードで直接入力すると、特殊なキーバインドの違いや反応の悪さなどで、他PCでアプリの起動をする場合等に使用できます(デバック向けかな)。

以下の通り、画面表示先を指定する、DISPLAY環境変数を手動で設定すればOKです。

export DISPLAY=:0
xeyes &

4.他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する

起動操作Xアプリケーション実行Xアプリ表示(操作)
他PC他PCBrain

これは、Xアプリケーションの実行ウィンドウのみを、Braiに表示させるものです。
ただし、Brain上で、X11側で、Xアプリケーションからの接続を許可させる必要があるため、通常と違う手順が必要です。

接続許可は、xhosts というコマンドを利用します。
ただし、Brainux標準では、xhostは導入されていないようです。

まずは、BrainにXアプリケーションからの接続を許可すためのコマンド(xhost)を導入します。
(一度導入すれば、大丈夫です。)

sudo apt update
sudo apt show x11-xserver-utils

次に、BrainでBrainuxを起動する際に、「shell」で起動してください。
(そのまま「xinitrc」か「jvm」で起動してしまうと、X接続用のポート(:0の場合6000)が閉じているため接続できません。)

shellが起動したら、以下のコマンドでXを起動します。

Brain上でXが起動したら、terminalを起動して、アクセス許可を設定します(X起動毎に設定が必要です。)
(今回は、”192.168.29.19″からのアクセスを許可するものとします。)

xhost +192.168.29.19

(なお「xhost +」とすると、すべての接続を許可する設定になってしまいます。セキュリティ的には非推奨になります。)
+はBrainのキーボードでは、「シフト+記号+F」ですが、入力がしずらい場合があります。

ここまで終われば、他PC(Linux)でTerminalを立ち上げて、
DISPLAY環境変数を上書き設定します。
(BraiのIPは192.168.29.11とした場合)

export DISPLAY=192.168.29.11:0
xeyes &

 

X環境への接続についての補足

上記の接続の組合せでも、X環境を利用することができます。
例えば、3の後に2をやることで、疑似的に4の接続にすることも可能です。
(4.の特殊なXnの立ち上げや設定が不要)

起動操作Xアプリケーション実行Xアプリ表示(操作)
他PC->Brain->他PC他PCBrain

2.Brainから他PCにsshでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する
4.他PCでログインして、他PC上でXアプリケーションを起動し、Brainの画面で操作する

ssh user@192.168.29.11

export DISPLAY=:0
ssh -X nasubi@192.168.29.19

xeyes &

実際にやってみると、他PC上でXアプリケーションを起動する以下の方法では、
速度的にも問題なくアプリケーションを利用することができます。

これらは、俗にいう「シンクライアント」運用になります。
別PCに処理をさせて、結果のみBrainに表示させ、
BrainにUSBキーボードとマウスを付ければ、ハンドヘルドPCの出来上がりです。

また、これまでの説明の中のサーバ指定を逆にすれば、別サーバのX画面に、Braiux上で起動したアプリケーションを表示することもできますが、ここでは割愛します。

難点をいれば、現状Sound再生はされないといったところぐらいでしょうか・・・

参考
ローカルからリモートのXサーバにウィンドウを飛ばす

 

xterm の設定変更について(Xリソースファイルの管理)

lxterminaiは 40MB程度と結構メモリを消費するので、
メモリ消費量が比較的少ない(8MB)ターミナルとして
xtermも使えるようにしておきます。

ただxtermのデフォルトでは、白地に黒文字で目が痛いので
黒地に白文字に変更するためには、
xtermの設定変更として、Xのリソースファイルに追記します。

Xのリソースファイルは、アプリごとに以下のフォルダにまとめられています。
/etc/X11/app-default/

xtermの場合、/etc/X11/app-default/XTerm に追記します。

黒地に白文字に変更するには、ファイルの最後に、以下の行を追加します。

$ sudo vi /etc/X11/app-default/XTerm
xterm*reverseVideo:on

なお、ユーザ単位での設定では一般的に
~/.Xresourcesに追加するように書かれている資料もありますが、
Brainuxでは、このファイルを参照する様にはなっていないので、
もしユーザ単位でリソースファイルを切り替えたいのであれば、
~/.xprofileに、以下のような行を追加してみてください。
起動時に、~/.Xresourcesが読み込みされるようになります。

$ vi ~/.Xresources
xtermreverseVideo:on
x-terminal-emulatorreverseVideo:on

$ vi ~/.xprofile
xrdb -merge ~/.Xresources

 

JWMのメニューにアプリケーション(xterm)に追加する

現状JWMのメニューには、Terminal(lxterminal)しかアプリが登録されていないので、
xtermを追加してみます。

調べてみると、JWMのコンフィグは、以下にありました。
/etc/jwm/system.jwmrc

なお、ユーザごとにカスタマイズしたいのであれば、
先ほどのファイルを、~/.jwmrcにコピーすれば、これらの設定が優先的に使われます。

/etc/jwm/system.jwmrcファイルの先頭部分を確認してみると、
以下のようになっていました。

<?xml version=”1.0″?>
<JWM>
<!– The root menu. –>
<RootMenu onroot=”12″> <Include>/etc/jwm/debian-menu</Include>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Separator/>
<Program icon=”lock.png” label=”Lock”> xlock -mode blank </Program>
<Separator/>
<Restart label=”Restart” icon=”restart.png”/>
<Exit label=”Exit” confirm=”true” icon=”quit.png”/>
</RootMenu>

ここで、メニューに、xtermの定義を追加してみます。
ついでに、Includeの行の下に<Separator/>も追加しています。
<Program label=”xterm”>xterm</Program>

$ sudo vi /etc/jwm/system.jwmrc

<Include>/etc/jwm/debian-menu</Include>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Separator/>
 ↓
<Include>/etc/jwm/debian-menu</Include>
<Separator/>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Program label=”xterm”>xterm</Program>
<Separator/>

設定に間違いがないか、以下のコマンドでチェックします。
jwm -p

最初は /etc/jwm/debian-menu ファイルがないため、そこは失敗しますが、
今回はその分はエラーでOKです。それ以外にエラーが出ないことを確認します。

では以下のコマンドで、設定をリロードします。
jwm -reload

すると、xtermが追加されました。

xtermをクリックすると、、定義したxtermが起動しました。

 

OSに登録されたアプリケーションをJWMに表示する

BrainuxはDebian11ベースのOSですので、DebianにAptコマンドでアプリをインストールすると、以下のフォルダにアプリケーション登録ファイル(*.desktop)が登録されています。
/usr/share/applications

この登録ファイルを元に自動でJWMの設定ファイルに変換してくれるツールを導入します
xdgmenumaker

$ cd
$ mkdir xdgmenumaker
$ cd xdgmenumaker
$ git clone https://github.com/gapan/xdgmenumaker.git
$ cd xdgmenumaker/
$ sudo apt install txt2tags
$ make
$ pip install pyxdg
$ make install
$ sudo touch /etc/jwm/debian-menu
$ sudo chmod 666 /etc/jwm/debian-menu
$ xdgmenumaker -n -i -f jwm > /etc/jwm/debian-menu

これで、以下のコマンドで、設定をリロードします。
jwm -reload

すると、apt経由でインストールしたアプリケーションの分のメニューが追加されました。


ただ、この状態だとaptでアプリを追加しても自動でメニューへの反映がされません。
JWM起動時に自動的に反映させてもいいのですが、起動してからJWMが操作できるまでにかなり時間がかかるため、「メニューの反映」をreload menuとして登録して、手動で登録できるようにします(アイコンが不要であれば-iオプションを消すとMenu動作が軽くなります)。

$ sudo vi /etc/jwm/reloadjwmmenu

#!/bin/sh
xdgmenumaker -n -i -f jwm > /etc/jwm/debian-menu
jwm -reload
exit

$ sudo chmod 755 /etc/reloadjwmmenu


作成したスクリプトをsystem.jwmrcに登録します。
<Program label=”ReloadMenu”>sh /etc/jwm/reloadjwmmenu</Program>

ついでに、VirtualKeybordも追加しておきました。
これで「.profile」で自動起動しなくてもよくなります。
<Program label=”VirtualKeybord”>xvkbd</Program>

$ sudo vi /etc/jwm/system.jwmrc

<!– The root menu. –>
<RootMenu onroot=”12″>
<Include>/etc/jwm/debian-menu</Include>
<Separator/>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Program label=”Xterm”>xterm</Program>
<Program label=”VirtualKeybord”>xvkbd</Program>
<Separator/>
<Program icon=”lock.png” label=”Lock”>
xlock -mode blank
</Program>
<Separator/>
<Program label=”ReloadMenu”>sh /etc/jwm/reloadjwmmenu</Program>
<Restart label=”Restart” icon=”restart.png”/>
<Exit label=”Exit” confirm=”true” icon=”quit.png”/>
</RootMenu>

これで、ReloadMenuをクリックすれば、メニューの反映が行われます。

なお、標準ではxlockが入っていないので、不要であれば、Lockの行は消してください。
多分もっといい方法がありそうだけど、とりあえず動いたということで良しとします。

今は、Lockの行の代わりに、以下のように「OS Reboot」を設定すると、
JWMから再起動できるようにしています。

$ sudo vi /etc/jwm/system.jwmrc

<!– The root menu. –>
<RootMenu onroot=”12″>
<Include>/etc/jwm/debian-menu</Include>
<Separator/>
<Program icon=”terminal.png” label=”Terminal”>lxterminal</Program>
<Program label=”Xterm”>xterm</Program>
<Program label=”VirtualKeybord”>xvkbd</Program>
<Separator/>
<Program label=”OS Reboot”>
/usr/bin/x-terminal-emulator -e sh -c ‘echo run Reboot;sudo reboot’
</Program>

<Separator/>
<Program label=”JWM ReloadMenu”>sh /etc/jwm/reloadjwmmenu</Program>
<Restart label=”JWM Restart” icon=”restart.png”/>
<Exit label=”Exit” confirm=”true” icon=”quit.png”/>
</RootMenu>

 

X11画面のスクリーンショットを撮る方法

X11画面のスクリーンショットは、「scrot」コマンドで取得できるようです。

scrotは、以下のコマンドでインストールできます。
sudo apt install scrot

コマンドオプションでいろいろ取得方法をカスタマイズできるようです。

scrot     画面全体のスクリーンショットを撮ります。
scrot -ub   タイトルバー+アクティブウインドウのスクリーンショットを撮ります。
scrot -sb   カーソルの形が+に変わるので、
       その後ウインドウをクリックすると、タイトルバー+クリックしたウインドウ
       のスクリーンショットを撮ります。(ウインドウ範囲外だと全画面)
       左クリック長押しで範囲指定すると、その範囲のスクリーンショット
       を撮ります。

また、scrot -d 10 のように、-dで秒数を指定すると、10秒後に取得されます。

スクリーンショット取得先は、、
指定がなければ、カレントディレクトリに
「2025-12-18-204617_854x480_scrot.png」といった名前で保存されます。

出力先を指定する場合は、以下のようにしてみてください。
scrot ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/’

これで~/screenshot/に「scrot_20251218-212923_854x480.png」のような名前で保存されます。

また、リモートPCからssh -X(Xリダイレクトオプション付)でログインしている場合、
リモート側でscrot コマンドを実行して、遠隔実行することも可能です。
ssh -Xでログインしていない場合は -D :0 のようにBrain側のDiskplay番号を追加でOKです。

 

これでスクリーンショットが取れるようになりましたが、毎回コマンドを打つのも面倒です。
今回は、JWMのキーバインド設定をして、USBキーボードの”PrtSc(PrintScreen)”キーでスクリーンショットが取得できるように設定してみます。
参考:JWM設定)(参考:JWMConfig

sudo vi /etc/jwm/system.jwmrc

ファイルの最後のほうに、キーバインド設定がありますので、ここの最後に追記します
(mask設定は、Shift=”S”,Ctrl=”C”,ALT=”A”が対応します。ただSAとしたときにALTの認識に不具合出る場合もあるそうなのでこの辺は調整が必要かもしれません。)

<Key key=”Print”>exec:scrot ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/'</Key>
<Key mask=”A” key=”Print”>exec:scrot -ub ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/'</Key>
<Key mask=”CA” key=”Print”>exec:scrot -sb ‘scrot_%Y%m%d-%H%M%S_$wx$h.png’ -e ‘mv $f ~/screenshot/'</Key>

これで、以下のようなキーバインドになります。
(ただし、jwmのメニュー表示中は、このキーバインドは聞かないようです。)

・PrintScreen      で全画面のスクリーンショット
・ALT+PrintScreen   でアクティブウインドウのスクリーンショット
・Ctrl+ALT+PrintScreen でウィンドウ選択 or 範囲指定のスクリーンショット

もし、Brainのキーボードでスクリーンショットを撮りたいのなら、
キー指定を <Key mask=”CA” key=”s”> とかにすればCtrl+ALT+”s”がキーバインドになります。(“exec:xdotool key ctrl+alt+Print”に割当でキー入力のエミュレートでもいけます)[参考]

JWMのコンフィグファイルを変更したら、jwm -pで構成チェックをした後で、
JWMメニューのRestartをクリックするか、jwm -restart コマンドを実行で設定が反映されます。

 

あと今回気づいたのですが、JWMのキーバインド使えば
タッチパネルでの右クリック対応はxbindkeys使わなくてもいけますね
これで500kbぐらいメモリ消費量を削減できます。
/etc/jwm/system.jwmrc 追加&JWMリスタート
<Key mask=”CA” key=”z”>exec:xdotool click 3</Key>
~/.xprofile 一部コメント化
# bash xbind_keys_autostart

/etc/jwm/system.jwmrc 例

  

BrainuxでのSound再生について

標準の環境では、Brainuxではサウンドデバイスを認識していないため、Sound再生されません。
Brain に内蔵されているスマートアンプには大きく分けて Yamaha 系と Rohm 系があるとのことで、現状Brainux上でのSound再生は、現状解析中で非対応だそうです。

試しにUSBサウンドデバイスを付けてみたところ、OSとしては認識しました。

Bus 001 Device 004: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter

ターミナル上でのコマンド上では使用できましたが、一部ノイズが乗ります。

ALSAを使っているaplayではノイズが出るにせよ音が鳴るし、
amixerや、alsamixerも動いています。

なお、plusaudioは初期未導入っぽいので、この辺が影響してそうです。
この辺もう少しし調べたいのですが、正直勉強不足です。

まあ、USBサウンドデバイスつけないといけないから、おま環ではあります。

この辺が参考になるのだろうか?
Linux の Audio 機能をコマンドラインで設定
X11 Forwarding で音声を再生する

音楽・動画再生は?

音楽・動画再生としては、mplayer や smplayerが apt経由でインストール可能です。

・mplayer コマンドラインの音楽・動画再生プレイヤーです。
・smplayer mplayerのラッパーで、GUI操作インターフェイスを提供します。

sudo apt update
sudo apt install mplayer
sudo apt install smplayer

mplayerで、再生したファイルを指定すれば、そのままALSAで再生されました。
(USB Audioデバイスを付けている場合)
mplayerでの音声再生では、ほとんどノイズは気になりませんでした。
[CUI,X11環境両方で実行可能]

mplayer pianos-by-jtwayne-7-174717.mp3

smplayerでも音声再生OKです。

smplayer pianos-by-jtwayne-7-174717.mp3
[X11環境時で実行可能]

同様に動画ファイル(mp4ファイル)も試しましたが、
安定して音声・動画再生はされました。

ただ、さすがにマシンパワー不足で、
動画と音声の同期がうまくいっていませんでした。
(音声が先行する)
再生時パラメータや、動画ファイルの作成パラメータの調整が必要かもしれません。
(-autosync 30 -cache 8192 -framedropのオプションを付けてみたけど、やっぱり遅い)

mplayer -vo fbdev2 /dev/fd0 ./file.mp4
[CUI上で実行する場合、-vo fbdev2 /dev/fd0 オプションを付け得れば再生されました。]

mplayer ./file.mp4
[X11環境上で実行可能]

smplayer file.mp4
[X11環境上で実行可能]

PulseAudio導入について

ALSAに引き続き、PulseAudioの導入も検討していますが、
結構重いそうだし、ALSA強制指定で動くものも多いので、いったん保留。
音楽のリダイレクトはあとで試してみたい。

fmsx,openMSX関連で、Brainuxに「pulseaudio」を入れてみました。

インストール: sudo apt install pulseaudio

インストール直後はサービスが起動していないのですが、以下のコマンドで実行できます。
pulseaudio –start

起動状況確認コマンドは、pactl info
pilseaudioの停止コマンドは、pulseaudio -k

ただし、自動実行が設定されてしまっているため、再起動しても自動的に起動してしまします。

$ systemctl –user status pulseaudio.service
● pulseaudio.service – Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2025-12-20 14:18:53 JST; 30min ago
TriggeredBy: ● pulseaudio.socket
Main PID: 472 (pulseaudio)
CPU: 4.902s
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pulseaudio.service
└─472 /usr/bin/pulseaudio –daemonize=no –log-target=journal

自動機能の無効化は以下です。これで自動起動しなくなります。
$ systemctl –user mask pulseaudio.service pulseaudio.socket

もし、一時的にpulseaudioを起動したいのであれば、
pulseaudio –start
で起動できます。


結果としては,Pulseaudioが無効との時うまく動くアプリと、
逆にPulseaudioが有効の時うまくいくアプリがあるっぽい。

ALSAを直接叩いているようなアプリでは問題なく聞ける音楽でもPulseaudioが有効だと、ぶつ切りでまともに聞けなくなるし、
逆に、Pulseaudio経由で音楽を鳴らしているアプリでは、Pulseaudioが起動していたほうがちゃんとうまくなる気がしてます。

Pulseaudioが起動していると、メモリも10MB以上消費するので、
Brainuxでは通常Pulseaudioを利用しないで、必要なときのみ起動するほうがいいでしょう。

openMSXとかだと、PulseAudioを起動したほうが音がちゃんと出ることもあるので、
いったんは必要に応じて手動起動で運用してみます。

 

カテゴリー: Brainux | コメントする

電子辞書Brainをいじる (2) Brainuxの初期設定とネットワークに接続して遊ぶ

Brainuxをいじって遊ぶ

前回作成したMicroSDから改めてBrainuxを起動します。
電子辞書のメニュー(HOME -> ツール -> 追加コンテンツ -> 追加アプリ・動画)に進んで、
「launch Linux」をクリックすることで、Linux(Brailunx)を起動できます。

環境的には、Brainuxは、Debian GNU/Linux 11 (bullseye)ベースのようです。

大体初代ラズパイの半分くらいの性能のメインボードに以下のハードウェアをついている感じです。
・ディスプレイ(タッチパネル付き)
・キーボード
・バッテリ回り

 

ハードウェア等の情報を表示させてみる

手始めに、Brainuxから見えるハードウェア情報を表示してみます。
Terminalを立ち上げて、コマンドを入力します。

 

lscpu CPU情報表示

CPUは、ARMv5 tejlですね(Debianのアークテクチャ的にはArmelに相当します)。
NXP i.MX283 の場合は ARM926EJ-S コア、命令セットが ARMv5Tとのことです。

性能的には大体初代ラズパイの半分くらいの性能でしょうか?

 

free メモリ使用状況表示(SWAP設定後)

Brainのメインメモリは128MBです。
前回作成したSwap領域も認識しています(2048MBは少し多かったかもしれません。512MB程度でよかったかも)。

 

lsusb USBデバイスの一覧を表示

USBホストコントローラが認識されています。

 

lsblk ブロックデバイス(ストレージ)の一覧を表示(領域拡張後)

microSD(mmcblk1)が認識されています。

 

mount マウント状況

問題なくマウントとされています。
/boot vFAT領域
/ etc4領域

 

df diskfree 空き容量確認

マウントされた領域の利用状況を確認d系ます。
(/や/bootの利用状況は、初期値ではなく、いろいろアプリを追加した後の値になります。)

 

lsipc システムパラメータ情報を表示

システムの各種パラメータを表示します。

 

uname -a 使用中のシステム名を表示

CPUアーキテクチャは、armv5tejl になります。

 

hostnamectl ホスト名以外のシステム情報をまとめて表示

OSとしては、Debian GNU/Linux 11 (bullseye)がベースのようです。
Linux カーネルは 5.4ですね。

 

ip address ネットワーク情報を表示

現状は外向けのネットワークアダプタなどはつけていないのでIP付与はありません。

ほかにも、さまざまなコマンドが実行できます。
slコマンドまで入っているのは少し笑いましたが。

 

BrainにUSB機器を接続して、認識させる。

Brainuxでは、外部電源供給可能なMicroAタイプのUSBホストアダプタを利用すると、
USB機器を認識することができます。(動くかどうかはドライバ次第ですが)
(Brainux起動時のデフォルトではUSBホストモードになってます。)
(Brainからの給電ができないため外部電源供給が必須です。)

外部電源供給可能なMicroAタイプのUSBホストアダプタは、以下が使用できました。

使用できたホストアダプタ(おすすめ順)

●給電付OTGアダプタ(Shigezoneさんで購入) 充電〇

秋葉原の東京ラジオデパートにあるShigezoneさんで販売している
給電付きOTGアダプタも利用できました。こちらはBrainへの充電も可能です。
USBA側コネクタは 1つなので、複数USB機器を接続したいなら別途USB-HUBが必要です。
(11/16時点での価格:350円)

Type-B(A)コネクタの向きで右と左の2種類がありますが、今回は右を買いました。
右だとBrainにつけたときにUSB-Aコネクタ側が後ろに向きます。(左だと、前に向きます。)

アイネックス USBホストアダプタ 補助電源付 ADV-120 充電×

Amazonで入手したものが利用できました。
ただ、このホストアダプタ経由でのBrainへの充電はされないみたいなのでBrainの充電切れには注意してください。
(11/16時点での価格:727円)

Richer-R 4ポートマイクロUSBハブUSB2.0 OTG拡張アダプタ スマートフォンとタブレット用充電ケーブル 充電△? USB-HUB付き 認識にくせあり 

Amazonで入手したものが利用できました。
4ポートのUSBHUBにもなっているので、複数のusb機器を認識させるのには便利です。
接続するホスト機器によって123と切り替えスイッチがあるタイプですが、いったん3の位置で使っています(違いが判りません)。
あとBrainuxで認識させるのに癖があって、認識しない場合はBrainに接続している状態で、一回充電ケーブルを抜いて再度充電ケーブルを接続すると、認識する場合があるようです。
使用中のBrainへの充電も可能ですが給電能力は少し弱めかもしれません。
(11/16時点での価格:599円)

Brain にも給電できるUSBホストアダプタ(Wince上で給電を確認できるもの)を使用したとしても、Brainux起動時から給電している場合はBrainに給電されているようです。 ですが、私の使っているUSBホストアダプタ(Shigezoneさんで購入したやつ)だけかもしれませんが、一度でも給電を止めると給電を再開としたとしてもBrainには給電されていないように見えます(そのうちバッテリ不足でBrainの電源が落ちます)。

 

lsusbコマンドで、現在認識しているUSB機器が確認できます。

例えばこんな感じです。
認識している機器
有線NIC、タッチパッド付きキーボード、マウス、USBAudioデバイス、USB-HUB、
Brain内部のUSBコントローラ

lsusb -tで見ると、Driverも当たっていますね。
(UVCデバイスのように対応するドライバがないと、Driver=,とドライバ名が表示されません。UVCデバイス認識すると使い道が広がるのだが、使うにはカーネル構築が必要とのことなので、断念)

 

有線LANでネットワークに接続する

Brainuxでは、USB有線lANを使ってネットワークに接続できます。
必要なものは、外部電源供給可能なMicroAタイプのUSBホストアダプタと、USB接続タイプの有線LANアダプタです。

USB接続タイプの有線LANアダプタについては、手持ちにLogitecのUSBHUB付きの100Mbpsの有線LANアダプタがあったので、試しにつないでみたら使えました。
USB-HUB付であれば、USBマウスやキーボードも追加で繋げられるので便利です。
ロジテック 有線LANアダプタ USB 2.0 USB2.0ハブ3ポート付 LAN-TXU2H3A

有線LANでつないでみると、LANアダプタを認識してLANにつながりました。
LANアダプタはASIX Electronics AX88772B として認識しています。
DHCPでIPを自動取得(192.168.29.11)して、DGW(192.168.29.1)へのPingも通りました。

ちなみに、USB有線LANアダプタの代わりにUSBテザリング可能なモバイルルータを接続しても外部通信可能でした。
今回は手持ちのAterm MR04LNをUSBテザリング有効にして、USBホストアダプタ経由で接続したら、ちゃんとNDIS機器として認識してインターネットへの通信ができました。
(が、モバイルルータでNATされているので、Brain->外部ネットワークへの通信は可能ですが、逆に外部からBrainへの通信は厳しいことになります。)

あと、USB無線LANドングルについては、USB機器としては認識しましたが、wpa_supplicantの設定がうまくいかず、現状成功していません。

USBでホストPCを経由してネットワークに接続する(USB Ethernet Gadget)

BrainをUSB機器としてPCに認識させて、ネットワークに接続する方法です。
USBケーブル1本でBrainをネットワークに接続することができます。

「sudo brain-config」 コマンドでUSB Controllerのモードを変更すると、
パソコンとUSBケーブルを1本でつないで、ホストPCを経由して外部ネットワークに接続することができるようです。(Brain->外部ネットワークへの通信は可能ですが、逆はホストPC->Brain方向への通信のみが可能です。)

Brainへの充電も同時にしてくれますので、長時間Brainを使いたいならこちらですが、
USBキーボード・マウスとの併用はできません。

  • Host[USB Host Mode]モード
     BrainがUSB ホストアダプタを経由してUSB機器を認識できるモード(デフォルト)
     USBキーボードやマウス、USBネットワークアダプタ等を直接使うことができます。
  • Peripheral[USB Devioce Mode (for Gadget)]モード
     BrainをUSB機器として、他PC等のデバイスとして認識させることができるモードです。
     ただし、BrainがUSB機器を認識することはできません。

詳しいやり方は、Brainux Wikiに書かれています。
USB Ethernet Gadget

作業は大体はこのページの通りです。
UBSケーブルを接続して、ホストPCからピポッと鳴れば、接続しているはずです。
sudo ip aを実行して、IPv4アドレスが付与されていればOKです。

上記の場合、3: usb0:のブロックを確認すると、192.168.137.226が割り当たっていますね。
これが、ホストPCから見たBrainのIPアドレスになります。
(ホストPCでNATされているので、ホストPCからのみBrainにアクセスできます。)

IPv4が割り当たっていない場合は、DHCPでのIP取得ができていない場合があるので、
USBケーブルのつけなおしをしてみたり、以下のコマンドを打ってみてください。

sudo dhclient

これで、DHCPからIP取得されれば、外部へのPingも通るようになります。

PCからSSHでアクセスする

Brainがネットワークににつながったので、PCからSSHに接続してみる。
ip a コマンドの結果を確認すると、DHCPで割り振られたIPが192.168.29.11だった場合、
そのIPでログインしてみると、無事接続できました。
認証情報は コンソールと一緒で、user/brain でOKでした。

同様にWINSCPでSFTPプロトコルにてログインできるので、
ファイルのやり取りもネットワーク経由でOKです。

 

ブラウザ(midori)を試す

Brainuxには標準でブラウザも搭載しています。

Midori という軽量および高速な動作を目的としたブラウザが標準でありますので
X11上環境上で起動します。

midori &

速度とレスポンスを無視すれば、普通にGoogleにもSSL接続できます。

定番の「阿部寛」さんのホームページもOKです。
(もうすぐhttpでの接続ができなくなって、https接続のみになるそうので、いまのうちに)

さすがに重いので、Midoriによる日常的なブラウジングは難しいです。

ブラウザ(NerSurf)を試す

Netserfも標準で入っていますが、midoriよりは軽いですが、標準でJavascriptが有効になっていないようで、googleにアクセスすると警告が出ます。

terminalから、netsurf &で起動出来ます。

Javascrptは、右上の横三本線から、Edit->Preferences->Contentー>Enable Javascriptにチェックを入れれば有効にできるようですが、Javascriptを有効にしても私の環境ではGoogle検索は失敗しました。

netsurfは使えるレベルのレスポンスに感じますが、表示できるサイトに制限があるようです。

ネットワークにつながったので、aptでパッケージ更新してみる。

Brainuxのベースは、「Debian GNU/Linux 11 (bullseye)」なので、ネット経由でのパッケージ管理ツールも入っています。

すでに導入しているOSパッケージの更新は以下のコマンドになります。

sudo apt update
sudo apt upgrade

ただし、2025/11/05時点でやってみると、標準ではパッケージが保管されているレポジトリにアクセスできなくてスキップされているようです。

brainのコミュニティを確認すると、OSのarmelアーキテクチャ(32bit ARMv4T以上)がdebian11の公式レポジトリから削除されてしまった影響とのことです。
>Debian 11 bullseye のフルサポートは去年で終了していて、既に LTS 期間に入っているようです。LTS 期間のサポート対象として armel は外れているので、サポート終了の結果としてリポジトリから消滅したものと思われます。

現状のレポジトリリストを確認すると、以下のようでした。
/etc/apt/sources.list debian公式のレポジトリが登録
/etc/apt/sources.list.d/* brainux用のレポジトリが登録

で、コミュニティの情報を元に、ブラウザでサイトを確認しながら試行錯誤していましたが、
以下のレポジトリを指定すると、apt updateできているっぽい。

/etc/apt/sources.list

deb http://archive.debian.org/debian bullseye main contrib non-free
deb-src http://archive.debian.org/debian bullseye main contrib non-free

この更新後、apt show コマンドで、パッケージ情報も取得できるようになって、
パッケージインストールもできているみたいのでいけてるかな?
(なお、試しに導入したxtightvncviewerは起動・接続共に成功しましたが、画面表示レスポンスが遅いので使い方に制限が出そうです。チューニングで解決するかもしれませんが。)

ただ、このレポジトリもいつまで使えるのかはちょっと不安・・・・
むりやりdebian 12 Bookworm にアップデートされた強者もいらっしゃるようなので、
そのうち切り替えるのを試してみるかもしれません。
ただ、説明の中でのvirtualboxのゲストOSが何なのかがわからなくて調査中。
How to upgrade Brainux to Debian 12:
Brainux を Debian 12 にアップグレードする方法

それと、この状態でapt upgradeしても毎回「x11-ico-dvd」が引っかかってくるのですが、これは別原因かな。

/boot領域を読み書き可能としてマウントする(暫定対応)

mountの実行結果の通り、Brainux起動直後では、
/boot領域はro(ReadOnly)としてマウントされています。

/boot領域を読み書き可能になるためには、以下のようにコマンドを入力すると、
rootユーザであれば読み書き可能になります(再起動ごとに必要です。)。

sudo mount -o remount,rw /boot

ls -alの結果の通り、この状態では一般ユーザでは/boot以下の領域は書き込みできません。
書き込みが必要な場合は、sudoコマンドを使ってroot権限で操作してください。

/boot領域を読み書き可能設定の永続化とvFAT領域(/boot)の文字化けについて

WinCEの領域について、Brainuxでファイル表示してみると、
ファイル名に2バイト文字を使っているフォルダがが ‘???’ となっているものがあります。
(Windows上で見ると「アプリ」というフォルダが文字化けしています)

これは、Windows上でのファイル名はShift-JISとして扱いますが、
Brainux(Linux)ではUTF8として扱うため、不整合が出ているためです。
この不整合を修正します。

/lib/systemd/system/boot.mount を編集します。

Options=roとなっているところを以下のように変更します。

Options=ro

Options=rw,utf8

設定を変更したら、再起動して、あたらめてBrainuxを起動します。

sudo shutdown -r now

X11上のターミナルや、他PCからsshにアクセスした場合は、正常に文字化けが解消されています。
また、sudo コマンドで管理者権限で操作したときは、/bootフォルダ以下の編集もできるようになりました。

まずは、書き込みの確認から

もし、一般ユーザであっても/bootの読み書きを許すのであれば、
/lib/systemd/system/boot.mount を以下のように変更して下さい
(umaskの指定で、fmask.dmaskの両方が変更されます。)

Options=rw,utf8,umask=0000


しかし、Brainux起動時にshellを起動した場合だけでは、まだ2バイト文字が表示できていません。これは、標準コンソールが2バイト文字の表示をサポートしていないためです。

2バイト文字の表示をするためには、標準コンソール上でfbtermを起動します。
fbterm上では、正常に2バイト文字が表示されます。

fbterm

ただし、デフォルトのフォントでは、文字が崩れる場合があるので、
exitでfbtermを終了してから、フォントを追加します。

sudo apt install fonts-ipafont
fc-cache -fv
fc-list | grep -i ipa

cd
sudo vi .fbtermrc

fonts-names=mono

fonts-names=IPAGothic,mono
に変更します。

また、文字表示サイズが小さければ、お好みでフォントサイズを変更してください。

font-size=12

font-size=16

・localeの設定をします

sudo apt install locales-all

sudo brain-config を起動して、以下のメニューに移動します。
3 Localisation Options
L1 Locale

en_US.UTF-8 UTF-8はすでに選択されています。

ja_JP.UTF-8 UTF-8 を選択して Ok

システム言語設定を英語にする場合
en_US.UTF-8 を選択してOK

システム言語設定を日本語にする場合
ja_JP.UTF-8 を選択してOk

ログインし直してfbtermを起動します。

これで、X11環境でなくても、日本語表示できるようになりました。

 

日本語(全角)文字列の入力について (2025/12/10追加)

これで、fbterm上でjwm上での日本語(全角)文字列の出力は成功しましたが、
次に日本語(全角)文字列の入力もできるようにしたいです。

Brain関連のサイトも参考にします。
日本語を表示・入力する – Brain Hackers

デフォルトで日本語入力のためのパッケージは入っているようです。
入っていなければ、パッケージを追加します。
apt install fbterm uim-fep uim-anthy

以下の設定を追加します。

$ vi ~/.uim        以下の”&lt;”は”<“に、”&gt”は”>”に変換してください。

これで、
Ctrl+`(Ctrl+[英語キーボード認識での日本語キーボードでの半角/全角]) か、 
Ctrl+スペース で
全角/半角の入力を切り替えにできます。
(本当はALT+’とかにしたかったのですが、うまくいかなかった)

ここまでで、事前準備は完了です。
そうしたら、コンソール上で全角文字を入力してみます。
Shell上のfbterm上や、
jwm上のTermial(lxterminalやxterm)で以下のコマンド入力してください

uim-fep

するとコンソール/ターミナルの一番下に”anthy-utf8[[An- R]”と表示されます。
あとは設定した切替キーを押すたびに、半角/全角が切り替えできます。
入力したらスペースやカーソル上下で選んで、実行(Enter)で確定です。

日本語(全角)文字列が不要になった場合は、以下のコマンドでuim-fepを終了できます
exit

—-

ただし、この時点ではコンソールソフトウェア以外では日本語全角文字の入力ができませんでした。調べてみると、uim-ximを使うといいようです。

パッケージのインストール
$ sudo apt install uim-xim uim-gtk2.0 uim-gtk3 uim-qt5

なお、上記設定後に1度リブートした後は、
X環境上のTerminal(lxterminal)でも、日本語入力ができるようになりました。
(最下段のFEPステータスは表示されません。表示したい場合はuim-fepを起動)

その他のコマンドについて対応するため、
以下のファイルを編集します。

$ vi ~/.xprofile

export CLUTTER_IM_MODULE=xim
export GTK_IM_MODULE=’uim’
export QT_IM_MODULE=’uim’
export QT4_IM_MODULE=’uim’
export XMODIFIERS=’@im=uim’
uim-xim &
uim-toolbar-gtk3-systrray &
uim-toolbar-gtk3 &

toolbar2つについては、必須ではないので不要であれば#でコメントアウトしてください
(起動後に右クリックから終了することもできます。)

これでX環境を再起動すると、対応したアプリで日本語入力可能になります。
(Toolbarの2つは、ターミナルを起動すると正しく表示されます)

アプリ側でも全角文字のサポート対応が必要な場合があるので、
日本語入力できるかはアプリ次第になります。
(gedit [sudo apt install gedit] では、日本語入力できることを確認しています。)

もし、普段日本語入力しないのであれば、メモリ確保のためにコメント化して、
必要なときのみ手動で起動するのも手かもしれません。
(toolbar分だけでメモリの27MBくらいを消費します)
uim-xim [2.3M] 、uim-toolbar-gtk3-systrray [14M]、uim-toolbar-gtk3 [13M]

もしくは、コンソール上でuim-fepでの入力できるようにするという運用もあります。

ただこの環境だとxtermでの文字変換中に文字化け(確定すると正常)するので、
そのうち、別のIMについても調べてみたいです。

多分この辺が参考になりそう
Debian系で複数のIM(インプットメソッド)を立ち上げる

 

BrainuxのX環境でのタッチパネル操作について (2025/12/12追加)

Brainの画面はタッチパネルになっているので、
マウス操作と左クリックについては標準でできるようになっています。

ただ、右クリックについてはタッチパネルから操作できないようで、
USBマウスを接続するしか方法が見つかりませんでした。

なので、今回タッチパネルで右クリックできないか調査してみました。
JVMは軽量のWindowsマネージャだから、この辺の機能はドライバ次第。

まずは、タッチパネルのデバイス名を確認します

$ sudo apt install xinput
$ xinput

タッチパネルのデバイス名は、「mxs-lradc-ts」で認識されていますね。
i.MX SoC 系のタッチスクリーンで、組み込み系や軽量Linuxでよく使われているみたい。

このデバイスは xinput では認識されてるけど、右クリックのエミュレーションが有効かどうかは別問題。Evdev ドライバを使っているといいんだけど・・・・

$ xinput list-props “mxs-lradc-ts”

Evdev ドライバを使っているようです。
右クリックであるThird Buttonの情報を抜き出してみると

ドライバ的にはエミュレーション機能は持っているけど、無効状態でした。
ほかの設定も併せて有効にしてみます。

$ xinput set-prop “mxs-lradc-ts” “Evdev Third Button Emulation” 1
$ xinput set-prop “mxs-lradc-ts” “Evdev Third Button Emulation Timeout” 750
$ xinput set-prop “mxs-lradc-ts” “Evdev Third Button Emulation Threshold” 30

;Timeout: 長押しと判定するまでの時間(ミリ秒)
;Threshold: 指を動かさずに押し続ける許容距離(ピクセル)

これで、タッチパネルを長押しすると、右クリックメニューが出てきました。

ただ、この設定は、再起動すると初期化されるので、
起動時に自動設定されるように、~/.xprofileに追記しておきます。

$ vi ~/.xprofile
xinput set-prop “mxs-lradc-ts” “Evdev Third Button Emulation” 1
xinput set-prop “mxs-lradc-ts” “Evdev Third Button Emulation Timeout” 750
xinput set-prop “mxs-lradc-ts” “Evdev Third Button Emulation Threshold” 30

—-

また、長押しがうまくいかない方のために
マウスクリックをエミュレーションするコマンドを使う方法も紹介します。

$ sudo apt install xdotool
$ xdotool click 3

これで、現在マウスカーソルがあるところで、右クリックを押したことになります。
xbindkeysあたりと組み合わせれば、特手の本体キーに右クリックを割り当てることも
可能です。

$ sudo apt install xbindkeys tcl tk
$ xbindkeys –defaults > ~/.xbindkeysrc

設定するキーは xbindkeys -k で確認できます。
試しに、Ctrl + ALT + z(>>の上 + 文字切替 + z)を入力すると、
Control+Alt + z
と表示されるので、そのまま定義ファイルに設定して、
xbindkeysを起動すれば OKです。
設定したキーを入力すると右クリックをしたことになります。

$ vi ~/.xbindkeysrc
“xdotool click 3”
Control+Alt + z

$ xbindkeys

キー割り当てについは、別のアプリとぶつからないように調整してください。
Brain本体キーの「>>下」「ツール」「HOME」あたりがBrainuxで使えないのが痛い

なお、再起動後も設定を永続する場合は、以下の行を追加して下さい。

$ vi ~/.xprofille
bash xbindkeys_autostart 

 

Brainux のX環境でのソフトウェアキーボードについて

Brainについてはキー数が少ないため、Brainux上でのキー入力は
一般的なキーバインドでは無いです。
特に記号については、キーの割り当て表を見ながらではないと正直覚えきれないのと、
私のPW-SH3では一部キーでは、勝手にリピートしてしまうこともあり、
USBキーボードの出番になることも多いです。

Brainの画面はタッチパネル機能付きですので、
今回X11用のソフトウェアキーボードを見つけましたので、試してみました。

xvkbd X11用ソフトウェア仮想キーボード
xvkbdは、X Window System用の仮想(グラフィカル)キーボードプログラムです。画面に表示されたキーボードをクリックすることで、他のクライアント(ソフトウェア)に文字を入力することができます。キオスク端末やハンドヘルドデバイスなど、ハードウェアキーボードを搭載していないシステムでも使用できます。また、コマンドラインオプションで指定した文字を他のクライアントに送信する機能も備えています。

インストールは、APT経由で可能です。
sudo apt install xvkbd

起動は、X環境上のターミナルから以下のコマンドで可能です。
xvkbd &

標準では、英語キーボードタイプ(ファンクションキー&テンキー付き)で表示されます。

キーをいくつか入力すると、単語補完機能により、候補を表示させる機能があります。
(“te”まで入れた結果、いくつかの単語が候補で出ています。)

右下の”xvkbd”キーから、表示形式などのカスタマイズができます。
標準では、keypad(10キー)とFunction(ファンクションキー)にチェックが入っているので
テンキー&ファンクションキー付きで表示されています。

もし単語補完機能が不要であれば、”xvkbd”キーメニューから「Propety」 に進めば、
設定可能です。
Dynamic Dictionay Weight に “0” を入力し、[Integrate Completion Panel?]の選択を外して、xvkbdを再起動すれば、単語補完機能は無効になるようです。

「Keypad」「Sun Funtion Keys」で、10キー、ファンクションキーを
それぞれ別ウインドウとして分離表示することも可能です。

コマンド起動時から、10キー、ファンクションキーを表示しないようにするためには、
以下のように実行します。
xvkbd -compact &

同様に起動時に以下のようにすると、Shiftの押下状況に応じて、
入力される文字のみ表示されるようになります。
xvkbd -modal &

 

個人的に残念なのは、
本体部分のReturnキーの上のキーがそのままではDELキーになり、
SHIFTを押すことでBSキーになることです。
DELキーとBSキーでは圧倒的にBSキーのほうが使用回数が多いので、
これが逆であれば、理想通りでした。

と、いうことで、設定ファイルを書き換えて入れ替えできるか確かめてみます。

xvkbd の設定ファイルは、/etc/X11/app-defaults/XVkbd-common になりますので、
このファイルのバックアップを取って更新してみます。

変更前 cat /etc/X11/app-defaults/XVkbd-common

変更内容
  sudo vi /etc/X11/app-defaults/XVkbd-common

   1ブロック: 75 <-> 45
  2,3ブロック:BackSpace <-> Delete
   4ブロック:BackSpace <-> Delete , Del <-> BS
   5ブロック:Delete -> BackSpace , BS -> Del
   6ブロック:BackSpace -> Delete , Del -> BS

変更後 cat /etc/X11/app-defaults/XVkbd-common

一度、xvkbdを終了して、あたらしく、起動します。
できたー

もし、BrainuxのX環境起動時に自動的に、xvkbdを起動させたいのであれば、
~/.xprofile に以下のように追記してください。

$ vi ~/.xprofile
xvkbd &

  

(参考)Terminal上で使用可能なコマンド[2024-12-23-202715版]

userでpathが通っているコマンド

sudo コマンド上でpathが通っているコマンド

(なお、slコマンドだけはsudo上での実行はpathが通っていなくて、出来ないようです。)

カテゴリー: Brainux | コメントする

電子辞書Brainをいじる (1) Brainuxの環境を構築する

電子辞書Brainをいじる

以前ネットを検索していると、電子辞書を改造して、WinCE上でアプリを動かしたり、
Linux(Debian)を動かすことができるというのを発見していたが、動かせる電子辞書を持っていないので、記憶の片隅に置いていた。

先日Bookoffを探索していたときに、SHARPさんの電子辞書であるBrain SH3が3000円で転がっているのを発見。
検索してみたところ、通称Brain第3世代と言われるもので、比較的に簡単にWindowsCE化やLinux(Brainux)を動かすことが可能なようですので、その場で購入。
(第1-3世代が普通に動かすことができる範囲で、第4世代は機種選定や工夫が必要とのこと)

で、WindowsCE(WinCE)化についてはもともとこの電子手帳が「Windows Embedded CE 6.0 Core」上で動いているので、それを開放する形でアプリが動かすことができます。

また、Linux(Brainux)については、SDに書き込むDiskイメージが公開されているので、こちらを利用すればOKですが、ファイルシステムの関係でそのままでは、1つのSDカードで教養は難しそうでしたので、まずは、Linux(Brainux)を準備して、Boot領域にある少量のFAT32領域を拡張して、WinCE環境で共用利用できるよう環境構築を挑戦してみます。

BrainのWindowsCE化を含めた活用ページ
Brain Wiki

Brainuxについては、こちらが紹介ページだと思います。
Brainux Wiki

用意するもの

今回用意するのは以下ですが、
ぶっちゃけ第1-3世代のSHARP 電子辞書Brainさえ入手できれば、あとは何とかなると思います。

  • SHARP BRAIN PW-SH3(第3世代Brain)
  • MicroSDカード(今回は32GBを用意。Linuxだけなら4GB以上のmicroSDカードが必要)
  • PC(今回はWindowsPCを使った手順になります)
  • PC上でMicroSDが読み書きできるスロットやUSBドングル(必要に応じてSDアダプター)
  • Linux(Brainux)のDiskイメージ
    今回は、以下のgithub上にある2024-12-23-202715バージョンのイメージをダウンロードします。
    Releases · brain-hackers/buildbrain
    sdimage-2024-12-23-202715.zip
  • 起動可能なUSBドライブを簡単に作成できるツール
    今回はrufusを利用しますが、以下からダウンロードできます。
    Rufus – 起動可能なUSBドライブを簡単に作成できます
    rufus-4.11p.exeのポータブル版で大丈夫です。
  • Windows上でパーティーションを操作できるツール
    今回はMinTool Partition Wizard無償版を利用します。
    以下からダウンロードできます。
    MiniTool Partition Wizard ダウンロード センター
    無償版(pw-free-online.exe)で問題ありません。

Linuxイメージの書き込み

まずはダウンロードしたBrainuxの起動イメージのzipファイル(sdimage-2024-12-23-202715.zip)を展開し、出てきたファイル(sdimage-2024-12-23-202715.img)を
Rufusを利用して用意したMicroSDに書き込みします。

まずは、用意したMicroSDをPCに接続して認識させます。

次にMicroSDにLinuxイメージを書き込みます。
Rufusはポータブル版であれば、インストール不要でするの利用が簡単です。
「ブートの種類」横の「選択」をクリックして、先ほど解凍したイメージファイル(sdimage-2024-12-23-202715.img)を設定します。

「デバイス」については用意したMicroSDを選択してください。
(書き込み先を間違えるとデータが消えて大惨事になりますので、容量などで確認してください。)
あとはデフォルトでOKです。
準備ができたらスタートを押します

警告が出るので、問題なければ「OK」をクリックすると書き込みが開始されます。

書き込みが終われば、SDカードの準備は完了です。

書き込んだ結果、全体で約3GBが使用済です。
うちWindows10,11やWinCEで操作可能な領域であるFAT領域は64MBで、
空き領域は残りF48MB程度ですね。
WinCE環境と共存させるには、心もとない容量です。

アプリフォルダには、Linux(Brainux)起動用のアプリが登録されています。

Linux(Brainux)の起動

作成したMicroSDをBrain(PW-SH3)に挿して電源を入れます。
電子辞書のメニュー(HOME -> ツール -> 追加コンテンツ -> 追加アプリ・動画)に進んで、
「launch Linux」をクリックすることで、Linux(Brailunx)を起動できます。

OS起動には50秒くらいかかります。

ログイン画面では、Xinitrc、Shell、Jvmが選べるようです。
デフォルトのログイン認証情報は、user/brainです。

Shellが非X11環境で、Xinitrc・JvmがX11環境になります。

Shellでは、X11が立ち上がらないので、GUIは使えませんが動きが軽いです。

Xinitrc・Jvmの違いがまだ分かっていないのですが、初回起動時にタッチパネルの調整画面が出るのでここで設定すれば、画面タッチパネルも問題なく使えます。
画面タッチパネルは感圧式なので、付属のペンか爪の先で押すような操作になるのですが、
何もないところでタッチすると、メニューが出てくるので、Terminalを選べば、Shellが起動します。

キーボード操作について

SH3の場合、、Brainuxではキーボードバインドは以下になります
(基本英字キーボードな割り当てです)。

Enter「決定」ボタンになります。
ESC 「調べる」ボタン
TAB 「国語辞典」ボタン

Shift 「シフト」ボタン
Ctrl 「≫を回転して上向きした記号」ボタン
Alt 「文字切り替え」ボタン
記号 「記号」ボタン

それ以外のキーマップは、BrainWikiに詳しく書かれています。

PW-SH3で試しているのですが、同時押し入力パターンの一部記号(「,」「.」「/」)の入力がうまくいかない場合があり、入力できても何故か連続入力されて止まらないことが多いです。
ほかの機種が同じかはわかりませんが。

この場合、削除キーで削除して対応していますが、すぐに別のキーを押すことで連続入力を止めるやり方しか思いつきませんでした。
(「.」を入力するのに、記号+m -> m で.mを入力して、mを削除)

「.」はIPアドレスとか、URLの入力で入力する頻度が高いので、ちょっとストレスではあります。

入力出来るときは入力できるが、何故か連続入力として認識されてしまい、今のところ上手く制御できていません。

USBホストアダプタ経由でUSBキーボードを接続するのが、おすすめです。
(英語キーボード認識になりますので、英語キーボード推奨です。)

現在のストレージ系の情報を表示させてみる

では、Terminalを立ち上げて現在の状態を確認するため、コマンドを打ってみます。

lsblk ブロックデバイス(ストレージ)の一覧を表示

mount マウント状況

brainuxを終了させる

brainuxを終了させるには、以下のコマンドを入力します(userのパスワード入力が必要)。
私が使ったイメージでは自動で電源OFFまでされました。
次回電源ボタンを押した際には、電子辞書アプリが起動します。

sudo shutdown -h now

再起動は以下コマンドになり、再起動後に電子辞書アプリが起動します。

sudo shutdown -r now

FAT32領域を広げたい

先ほど確認した通り、WinCEでも利用できるFAT領域が64MBなので、MicroSDの空き容量を使って拡張してみます。

今回使うツールはMintool Partition Wizardです。
先ほどダウンロードしたインストーラ(pw-free-online.exe)を実行すればインストールできます。
(Mintool Partition Wizardインストール後に、Windowsログオン時にMintoolのウィンドウができようになったときは、タスクスケジューラにある「MinTool ShadowMaker」「MinToolPartiitionWizard」を無効化すれば出なくなります。)

MicroSDはDisk3になります。
まずはFA32領域にあるLinux領域(EXT4)をずらします。
32GBのMicrosdなので、FAT32を全体の半分の16GBを確保したとすると、
後ろのLinux領域をまずは移動します。

Linux領域であるrootfs(Ext4)を選択して、右クリック->移動/サイズ変更をクリックします。

現在所鵜パーティションの位置情報が表示されます。

パーティションのブロックを右に移動して、「前の未割り当て領域」を0.00->15.92になるまで移動します。

OKを押して、左横の適用をクリックします。

警告が出るので、「はい」をクリックします。

移動が開始されます。
(実際のデータ移動が発生するのでそれなりに時間がかかります。)

完了するとメッセージが表示されます。

移動が完了しました。
rootfs(Exr4)の領域が移動して、
FAT32領域であるboot(FAT32)の後ろに空き領域が確保できたことがわかります。

次は、FAT32領域を広げます。
FAT32領域であるboot(FAT32)をクリックして、「拡張」をクリックします。

現在のパーティションの状態が表示されます。

「どのくらいの空き領域を利用しますか?」のスライダーを一番右側に移動して、
先ほど確保した空き領域をすべて使って拡張します。

OKを押して、左下の適用をクリックします。

警告が出るので、「はい」をクリックします。

完了するとメッセージが表示されます(データの移動などはないのですぐに終わります)。

SDカードのFAT32領域の状態をWindowsから見ると、容量15.9GBに拡張されています。

これでFAT32領域の拡張は完了です。

改めてBrainuxを起動する

拡張したmicroSDをBrainに挿しなおして、先ほどと同様にBrainuxをブートします。
問題なくBootできればOKです

再度、lsblk ブロックデバイス(ストレージ)の一覧を表示すると、
/boot領域16GBになっていますね。拡張成功です。

Linux領域を拡張

次にLinux領域を拡張します。
標準でツールが用意されているので、こちらを利用します。

sudo brain-config

上下左右キーと Enter キー(決定キー)を使って以下の手順に従って操作します。
“Advanced Options” を選択
“Expand Filesystem” を選択

しばらくすると “Root partition has been resized. …” と表示されるので “Ok” を選択
“Back” を押しトップメニューに戻る
“Finish” を選択すると再起動が促されるため再起動すれば、拡張完了です。

再度、lsblk ブロックデバイス(ストレージ)の一覧を表示すると、
無事 /領域が13.1GBになっています。

SWAP領域の確保

最後にSwap領域を確保します。

デフォルトではSwapは設定されていません。

まずは、Swapファイルの作成と、Swap設定を実施します。
ここでは、Swapファイルの静として、”2048″と2GBを指定しています。
(今考えると、512MBくらいでも問題ないかもしれません。)

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 0600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile


次に、Swap設定を永続化するために、
/etc/fstabファイルを編集して、次の行を追加します。

/swapfile none swap sw 0 0

キーのバインドに癖があるので、以下を参考にしてください。
Enter 決定
ESC 「調べる」ボタン
: 記号+シフト+H
= 記号+F
/ 記号+-
viiの保存と終了 シフト+ZZ

では、freeコマンドでSwapの状態を確認します。
Swap領域が確保されていますね。

最後に再起動して、再度freeコマンドでSwapが継続して確保されていることを確認出来たら作業完了です。一部スワップしていることも確認できます。

これでBrain自体のインストールまでは完了しました。

 

今後WinCE化やアプリのインストール、Brainux上のアプリ等を試していきたいです。

 

カテゴリー: Brainux | コメントする