電子辞書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とのことです。

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

user@brain:~$ lscpu
Architecture:        armv5tejl
Byte Orcer:          Little Endian
CPU(s):              1
On-line CPU(s) list: 0
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           1
Vencor ID:           ARM
Model:               5
Model name:          ARM926
Stepping:            r0p5
BogoMIPS:            226.09
Flags:               swp half thumb fastmult edsp java

 

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

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

user@brain:~$ free
       total   used      free  shared  buff/cache    available
Mem:   118352  42684     5892     204       69776        70476
Swap: 2097148   7424  2089724

 

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

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

user@brain:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

user@brain:~$ lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M

 

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

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

user@brain:~$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0  7.3G  0 disk
mmcblk0boot0 179:8    0    4M  1 disk
mmcblk0boot1 179:16   0    4M  1 disk
mmcblk1      179:24   0 29.1G  0 disk
├─mmcblk1p1  179:25   0   16G  0 part /boot
└─mmcblk1p2  179:26   0 13.1G  0 part /

 

mount マウント状況

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

user@brain:~$ mount
/dev/mmcblk1p2 on / type ext4 (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=59072k,nr_inodes=14768,mode=755)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=23672k,nr_inodes=819200,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
/dev/mmcblk1p1 on /boot type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=11832k,nr_inodes=2958,mode=700,uid=1000,gid=1000)
user@brain:~$

 

df diskfree 空き容量確認

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

user@brain:/boot$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root       13491400 4392740   8503332  35% /
devtmpfs           59072       0     59072   0% /dev
tmpfs              59176       0     59176   0% /dev/shm
tmpfs              23672     556     23116   3% /run
tmpfs               5120       4      5116   1% /run/lock
/dev/mmcblk1p1  16745464 1852752  14892712  12% /boot
tmpfs              11832       0     11832   0% /run/user/1000
user@brain:/boot$

 

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

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

user@brain:~$ lsipc
RESOURCE DESCRIPTION                                     LIMIT USED  USE%
MSGMNI   Number of message queues                        32000    0 0.00%
MSGMAX   Max size of message (bytes)                      8192    -     -
MSGMNB   Default max size of queue (bytes)               16384    -     -
SHMMNI   shared memory segments                           4096    1 0.02%
SHMALL   shared memory pages                        4278190079  256 0.00%
SHMMAX   Max size of shared memory segment (bytes)  4278190079    -     -
SHMMIN   Min size of shared memory segment (bytes)           1    -     -
SEMMNI   Number of semaphore identifiers                 32000    0 0.00%
SEMMNS   Total number of semaphores                 1024000000    0 0.00%
SEMMSL   Max semaphores per semaphore set.               32000    -     -
SEMOPM   Max number of operations per semop(2)             500    -     -
SEMVMX   Semaphore max value                             32767    -     -

 

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

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

user@brain;~$ uname -a
Linux brain 5.4.149-gaa3edcd5fcbc #2 PREEMPT mon Dec 23 11:34:55 UTC 2024 armv5tejl GNU/Linux

 

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

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

user@brain:~$ hostnamectl
 Static hostname: brain
       Icon name: computer
      Machine ID: 53a6555e84a4429e91f249e408c94340
         Boot ID: ca54ace460be410ca0409c4750963fe7
Operating System: Debian GNU/Linux 11 (bullseye)
          Kernel: Linux 5.4.149-gaa3edcd5fcbc
    Architecture: arm

 

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

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

user@brain:~$ ip address
1: lo: LOOPBACK, UP, LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: sito@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0

ほかにも、さまざまなコマンドが実行できます。
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デバイス認識すると使い道が広がるのだが、使うにはカーネル構築が必要とのことなので、断念)

user@brain:~$ lsusb
Bus 001 Device 018: ID 0b95:772b ASIX Electronics Corp. AX88772B
Bus 001 Device 017: ID 1997:2433 Shenzhen Riitek Technology Co., Ltd wireless mini keyboard with touchpad
Bus 001 Device 016: ID 413c:301a Dell Computer Corp. Dell MS116 Optical Mouse
Bus 001 Device 015: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter
Bus 001 Device 014: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


user@brain:~$ lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
    |__ Port 1: Dev 14, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 15, If 3, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 1: Dev 15, If 1, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 1: Dev 15, If 2, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 1: Dev 15, If 0, Class=Audio, Driver=snd-usb-audio, 12M
        |__ Port 2: Dev 16, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 3: Dev 17, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 17, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 18, If 0, Class=Vendor Specific Class, Driver=asix, 480M

 

有線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も通りました。

user@brain:~$ lsusb
Bus 001 Device 003: ID 0b95:772b ASIX Electronics Corp. AX88772B
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

user@brain:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
3: enx3495db26e312: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 34:95:db:26:e3:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.29.11/24 brd 192.168.29.255 scope global dynamic noprefixroute enx3495db26e312
       valid_lft 35584sec preferred_lft 35584sec
    inet6 2001:240:2838:d900:851d:d6d3:c49:13b3/64 scope global dynamic noprefixroute
       valid_lft 14033sec preferred_lft 14033sec
    inet6 fe80::ac3e:9541:641d:cf01/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

user@brain:~$ sudo ping 192.168.29.1
[sudo] password for user:
PING 192.168.29.1 (192.168.29.1) 56(84) bytes of data.
64 bytes from 192.168.29.1: icmp_seq=1 ttl=64 time=2.77 ms
64 bytes from 192.168.29.1: icmp_seq=2 ttl=64 time=0.871 ms
64 bytes from 192.168.29.1: icmp_seq=3 ttl=64 time=1.18 ms
64 bytes from 192.168.29.1: icmp_seq=4 ttl=64 time=0.864 ms
^C
--- 192.168.29.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.864/1.419/2.766/0.787 ms
user@brain:~$

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

user@brain:~$ sudo lsusb
Bus 001 Device 005:ID 0400:047e NEC Corp. LTE Mobile Router

あと、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です。

user@brain:~$ sudo ip a
[sudo] password for user:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
3: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 8a:15:8b:44:3a:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.137.226/24 brd 192.168.137.255 scope global dynamic usb0
       valid_lft 604708sec preferred_lft 604708sec
    inet6 2001:240:2838:d9f1:8815:8bff:fe44:3a02/64 scope global dynamic mngtmpaddr
       valid_lft 13384sec preferred_lft 13384sec
    inet6 fe80::8815:8bff:fe44:3a02/64 scope link
       valid_lft forever preferred_lft forever

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

inet 192.168.137.226/24 brd 192.168.137.255 scope global dynamic usb0

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時点でやってみると、標準ではパッケージが保管されているレポジトリにアクセスできなくてスキップされているようです。

user@brain:/$ sudo apt update
[sudo] password for user:
Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://deb.debian.org/debian bullseye-updates InRelease
Hit:3 http://deb.debian.org/debian-security bullseye-security/updates InRelease
Hit:4 https://packagecloud.io/brainhackers/brainux/any any InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
N: Skipping acquire of configured file 'main/binary-armel/Packages' as repository 'http://deb.debian.org/debian bullseye InRelease' doesn't support architecture 'armel'
N: Skipping acquire of configured file 'contrib/binary-armel/Packages' as repository 'http://deb.debian.org/debian bullseye InRelease' doesn't support architecture 'armel'
N: Skipping acquire of configured file 'non-free/binary-armel/Packages' as repository 'http://deb.debian.org/debian bullseye InRelease' doesn't support architecture 'armel'
N: Skipping acquire of configured file 'main/binary-armel/Packages' as repository 'http://deb.debian.org/debian-security bullseye-security/updates InRelease' doesn't support architecture 'armel'
N: Skipping acquire of configured file 'contrib/binary-armel/Packages' as repository 'http://deb.debian.org/debian-security bullseye-security/updates InRelease' doesn't support architecture 'armel'
N: Skipping acquire of configured file 'non-free/binary-armel/Packages' as repository 'http://deb.debian.org/debian-security bullseye-security/updates InRelease' doesn't support architecture 'armel'

user@brain:/$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  x11-ico-dvd
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 799 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 https://packagecloud.io/brainhackers/brainux/any any/main armel x11-ico-dvd armel 0.0.1 [799 kB]
Fetched 799 kB in 4s (178 kB/s)
(Reading database ... 44210 files and directories currently installed.)
Preparing to unpack .../x11-ico-dvd_0.0.1_armel.deb ...
Unpacking x11-ico-dvd (0.0.1) over (0.0.1) ...
Setting up x11-ico-dvd (0.0.1) ...
user@brain:/$

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

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

user@brain:/$ ls /etc/apt
apt.conf.d   keyrings       sources.list    trusted.gpg.d
auth.conf.d  preferences.d  sources.list.d

user@brain:/$ cat /etc/apt/sources.list
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
deb http://deb.debian.org/debian-security bullseye-security/updates main contrib non-free
deb-src http://deb.debian.org/debian-security bullseye-security/updates main contrib non-free

user@brain:/$ ls /etc/apt/sources.list.d
packagecloud.list

user@brain:/$ ls /etc/apt/sources.list.d/packagecloud.list
/etc/apt/sources.list.d/packagecloud.list

user@brain:/$ cat /etc/apt/sources.list.d/packagecloud.list
deb [signed-by=/etc/apt/keyrings/brainhackers_brainux-archive-keyring.gpg] https://packagecloud.io/brainhackers/brainux/any/ any main
deb-src [signed-by=/etc/apt/keyrings/brainhackers_brainux-archive-keyring.gpg] https://packagecloud.io/brainhackers/brainux/any/ any main

user@brain:/$

で、コミュニティの情報を元に、ブラウザでサイトを確認しながら試行錯誤していましたが、
以下のレポジトリを指定すると、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

user@brain:/$ cd /etc/apt

user@brain:/etc/apt$ ls
apt.conf.d   keyrings       sources.list    trusted.gpg.d
auth.conf.d  preferences.d  sources.list.d

user@brain:/etc/apt$ sudo cp sources.list sources.list.20251106
[sudo] password for user:

user@brain:/etc/apt$ ls
apt.conf.d   keyrings       sources.list           sources.list.d
auth.conf.d  preferences.d  sources.list.20251106  trusted.gpg.d

user@brain:/etc/apt$ sudo vi sources.list

user@brain:/etc/apt$ cat 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

user@brain:/etc/apt$ sudo apt update
Get:1 http://archive.debian.org/debian bullseye InRelease [116 kB]
Hit:2 https://packagecloud.io/brainhackers/brainux/any any InRelease
Get:3 http://archive.debian.org/debian bullseye/contrib Sources [43.2 kB]
Get:4 http://archive.debian.org/debian bullseye/main Sources [8,500 kB]
Get:5 http://archive.debian.org/debian bullseye/non-free Sources [81.0 kB]
Get:6 http://archive.debian.org/debian bullseye/main armel Packages [7,778 kB]
Get:7 http://archive.debian.org/debian bullseye/main Translation-en [6,235 kB]
Get:8 http://archive.debian.org/debian bullseye/contrib armel Packages [37.3 kB]
Get:9 http://archive.debian.org/debian bullseye/contrib Translation-en [46.9 kB]
Get:10 http://archive.debian.org/debian bullseye/non-free armel Packages [51.6 kB]
Get:11 http://archive.debian.org/debian bullseye/non-free Translation-en [92.5 kB]
Fetched 23.0 MB in 1min 47s (214 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.

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

user@brain:/etc/apt$ sudo apt show xtightvncviewer
Package: xtightvncviewer
Version: 1:1.3.10-3
Priority: optional
Section: x11
Source: tightvnc
Maintainer: Debian Remote Maintainers <debian-remote@lists.debian.org>
Installed-Size: 171 kB
Provides: vnc-viewer, vncviewer
Depends: libc6 (>= 2.28), libjpeg62-turbo (>= 1.3.1), libx11-6, libxaw7, libxext6, libxmu6, libxt6, zlib1g (>= 1:1.1.4)
Recommends: xfonts-base
Suggests: ssh, tightvncserver
Homepage: https://www.tightvnc.com
Tag: interface::graphical, interface::x11, network::client, role::program,
 uitoolkit::athena, use::login, use::viewing, x11::application
Download-Size: 87.2 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: virtual network computing client software for X
 VNC stands for Virtual Network Computing. It is, in essence, a remote
 display system which allows you to view a computing `desktop' environment
 not only on the machine where it is running, but from anywhere on the
 Internet and from a wide variety of machine architectures.
 .
 It is implemented in a client/server model. This package provides a client
 for X, with this you can connect to a vncserver somewhere in the network
 and display its content in a window. There are vncserver available for other
 operating systems.
 .
 The difference between the xtightvncviewer and the normal vncviewer is the
 data encoding, optimized for low bandwidth connections. If the client do not
 support jpeg or zlib encoding it can use the default one. Later versions of
 xvncviewer (> 3.3.3r2) support a new automatic encoding that should be equally
 good as the tightvnc encoding.

user@brain:/etc/apt$ sudo apt install xtightvncviewer
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
  tightvncserver
Recommended packages:
  xfonts-base
The following NEW packages will be installed:
  xtightvncviewer
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 87.2 kB of archives.
After this operation, 171 kB of additional disk space will be used.
Get:1 http://archive.debian.org/debian bullseye/main armel xtightvncviewer armel 1:1.3.10-3 [87.2 kB]
Fetched 87.2 kB in 1s (64.1 kB/s)
Selecting previously unselected package xtightvncviewer.
(Reading database ... 44210 files and directories currently installed.)
Preparing to unpack .../xtightvncviewer_1%3a1.3.10-3_armel.deb ...
Unpacking xtightvncviewer (1:1.3.10-3) ...
Setting up xtightvncviewer (1:1.3.10-3) ...
update-alternatives: using /usr/bin/xtightvncviewer to provide /usr/bin/vncviewer (vncviewer) in auto mode
Processing triggers for man-db (2.9.4-2) ...

user@brain:/etc/apt$ apt list | grep xtightvncviewer
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
xtightvncviewer/oldstable,now 1:1.3.10-3 armel [installed]

user@brain:~$ xtightvncviewer 192.168.29.47:1
Connected to RFB server, using protocol version 3.3
Performing standard VNC authentication
Password:
Authentication successful
Desktop name "win10-z800 ( 192.168.29.47 )"
VNC server default format:
  32 bits per pixel.
  Least significant byte first in each pixel.
  True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Warning: Cannot convert string "-*-helvetica-bold-r-*-*-16-*-*-*-*-*-*-*" to type FontStruct
Using default colormap which is TrueColor.  Pixel format:
  16 bits per pixel.
  Least significant byte first in each pixel.
  True colour: max red 31 green 63 blue 31, shift red 11 green 5 blue 0

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

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

user@brain:/etc/apt$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  x11-ico-dvd
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 799 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 https://packagecloud.io/brainhackers/brainux/any any/main armel x11-ico-dvd armel 0.0.1 [799 kB]
Fetched 799 kB in 4s (194 kB/s)
(Reading database ... 44210 files and directories currently installed.)
Preparing to unpack .../x11-ico-dvd_0.0.1_armel.deb ...
Unpacking x11-ico-dvd (0.0.1) over (0.0.1) ...
Setting up x11-ico-dvd (0.0.1) ...

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

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

/dev/mmcblk1p1 on /boot type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

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

sudo mount -o remount,rw /boot

user@brain:~$ mount | grep boot
/dev/mmcblk1p1 on /boot type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

user@brain:~$ sudo mount -o remount,rw /boot
[sudo] password for user:

user@brain:~$ mount | grep boot
/dev/mmcblk1p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

user@brain:~$ ls -al / | grep boot
drwxr-xr-x  11 root root       8192 Jan  1  1970 boot

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

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

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

user@brain:/boot$ ls -al /boot
total 5956
~
drwxr-xr-x  8 root root    8192 Dec 23  2024 '???'

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

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

user@brain:~$ cat /lib/systemd/system/boot.mount
[Unit]
Description=Mount boot partition

[Mount]
What=/dev/mmcblk1p1
Where=/boot
Options=ro

[Install]
WantedBy=multi-user.target
user@brain:~$
user@brain:~$

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

Options=ro

Options=rw,utf8

user@brain:~$ sudo vi /lib/systemd/system/boot.mount


user@brain:~$ cat /lib/systemd/system/boot.mount
[Unit]
Description=Mount boot partition

[Mount]
What=/dev/mmcblk1p1
Where=/boot
Options=rw,utf8

[Install]
WantedBy=multi-user.target
user@brain:~$

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

sudo shutdown -r now

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

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

user@brain:~$ mount | grep boot
/dev/mmcblk1p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
user@brain:~$


user@brain:/boot$ ls -al /boot
total 5956
~
drwxr-xr-x  8 root root    8192 Dec 23  2024  アプリ

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

Options=rw,utf8,umask=0000

user@brain:~$ mount | grep boot
/dev/mmcblk1p1 on /boot type vfat (rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)


しかし、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

user@brain:~$ sudo apt show fonts-ipafont
Package: fonts-ipafont
Version: 00303-21
Priority: optional
Section: fonts
Maintainer: Debian Fonts Task Force <debian-fonts@lists.debian.org>
Installed-Size: 34.8 kB
Pre-Depends: dpkg (>= 1.15.6~)
Depends: fonts-ipafont-gothic, fonts-ipafont-mincho
Breaks: otf-ipafont (<< 00303-1), ttf-ipafont (<= 00203-13)
Replaces: otf-ipafont (<< 00303-1)
Homepage: https://ipafont.ipa.go.jp/
Tag: culture::japanese, made-of::font, role::data, role::metapackage,
 x11::font
Download-Size: 12.3 kB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: Japanese OpenType font set, all IPA Fonts
 IPA Fonts are JIS X 0213:2004 compliant OpenType fonts based on TrueType
 outlines provided by Information-technology Promotion Agency, Japan
 (IPA) from 2003.  These are suitable for both display and printing.
 .
 This metapackage depends on fonts-ipafont-{mincho,gothic} packages to
 provide IPA Mincho, IPA P Mincho, IPA Gothic, and IPA P Gothic Fonts.


user@brain:~$ sudo apt install fonts-ipafont
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  fonts-ipafont-gothic fonts-ipafont-mincho
The following NEW packages will be installed:
  fonts-ipafont fonts-ipafont-gothic fonts-ipafont-mincho
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 8,252 kB of archives.
After this operation, 28.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.debian.org/debian bullseye/main armel fonts-ipafont-gothic all 00303-21 [3,515 kB]
Get:2 http://archive.debian.org/debian bullseye/main armel fonts-ipafont-mincho all 00303-21 [4,725 kB]
Get:3 http://archive.debian.org/debian bullseye/main armel fonts-ipafont all 00303-21 [12.3 kB]
Fetched 8,252 kB in 10s (829 kB/s)
Selecting previously unselected package fonts-ipafont-gothic.
(Reading database ... 46320 files and directories currently installed.)
Preparing to unpack .../fonts-ipafont-gothic_00303-21_all.deb ...
Unpacking fonts-ipafont-gothic (00303-21) ...
Selecting previously unselected package fonts-ipafont-mincho.
Preparing to unpack .../fonts-ipafont-mincho_00303-21_all.deb ...
Unpacking fonts-ipafont-mincho (00303-21) ...
Selecting previously unselected package fonts-ipafont.
Preparing to unpack .../fonts-ipafont_00303-21_all.deb ...
Unpacking fonts-ipafont (00303-21) ...
Setting up fonts-ipafont-mincho (00303-21) ...
update-alternatives: using /usr/share/fonts/opentype/ipafont-mincho/ipam.ttf to provide /usr/share/fonts/truetype/fonts-japanese-mincho.ttf (fonts-japanese-mincho.ttf) in auto mode
Setting up fonts-ipafont-gothic (00303-21) ...
update-alternatives: using /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf to provide /usr/share/fonts/truetype/fonts-japanese-gothic.ttf (fonts-japanese-gothic.ttf) in auto mode
Setting up fonts-ipafont (00303-21) ...
Processing triggers for fontconfig (2.13.1-4.2) ...


user@brain:~$ fc-cache  -fv
/usr/share/fonts: caching, new cache contents: 0 fonts, 2 dirs
/usr/share/fonts/opentype: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/opentype/ipafont-gothic: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/opentype/ipafont-mincho: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/opentype/noto: caching, new cache contents: 28 fonts, 0 dirs
/usr/share/fonts/truetype: caching, new cache contents: 2 fonts, 1 dirs
/usr/share/fonts/truetype/dejavu: caching, new cache contents: 22 fonts, 0 dirs
/usr/local/share/fonts: caching, new cache contents: 0 fonts, 0 dirs
/home/user/.local/share/fonts: skipping, no such directory
/home/user/.fonts: skipping, no such directory
/usr/share/fonts/opentype: skipping, looped directory detected
/usr/share/fonts/truetype: skipping, looped directory detected
/usr/share/fonts/opentype/ipafont-gothic: skipping, looped directory detected
/usr/share/fonts/opentype/ipafont-mincho: skipping, looped directory detected
/usr/share/fonts/opentype/noto: skipping, looped directory detected
/usr/share/fonts/truetype/dejavu: skipping, looped directory detected
/var/cache/fontconfig: not cleaning unwritable cache directory
/home/user/.cache/fontconfig: cleaning cache directory
/home/user/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded


user@brain:~$ fc-list | grep -i ipa
/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf: IPAMincho,IPA明朝:style=Regular
/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf: IPAPGothic,IPA Pゴシック:style=Regular
/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf: IPAPMincho,IPA P明朝:style=Regular
/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf: IPAGothic,IPAゴシック:style=Regular
/usr/share/fonts/truetype/fonts-japanese-mincho.ttf: IPAMincho,IPA明朝:style=Regular
/usr/share/fonts/truetype/fonts-japanese-gothic.ttf: IPAGothic,IPAゴシック:style=Regular


user@brain:~$ cd


user@brain:~$ cat .fbtermrc
# Configuration for FbTerm

# Lines starting with '#' are ignored.
# Note that end-of-line comments are NOT supported, comments must be on a line of their own.


# font family names/pixelsize used by fbterm, multiple font family names must be seperated by ','
# and using a fixed width font as the first is strongly recommended
font-names=IPAGothic,mono
font-size=12

# force font width (and/or height), usually for non-fixed width fonts
# legal value format: n (fw_new = n), +n (fw_new = fw_old + n), -n (fw_new = fw_old - n)
#font-width=
#font-height=

# default color of foreground/background text
# available colors: 0 = black, 1 = red, 2 = green, 3 = brown, 4 = blue, 5 = magenta, 6 = cyan, 7 = white
color-foreground=7
color-background=0

# max scroll-back history lines of every window, value must be [0 - 65535], 0 means disable it
history-lines=1000

# up to 5 additional text encodings, multiple encodings must be seperated by ','
# run 'iconv --list' to get available encodings.
text-encodings=

# cursor shape: 0 = underline, 1 = block
# cursor flash interval in milliseconds, 0 means disable flashing
cursor-shape=0
cursor-interval=500

# additional ascii chars considered as part of a word while auto-selecting text, except ' ', 0-9, a-z, A-Z
word-chars=._-

# change the clockwise orientation angle of screen display
# available values: 0 = 0 degree, 1 = 90 degrees, 2 = 180 degrees, 3 = 270 degrees
screen-rotate=0

# specify the favorite input method program to run
input-method=

# treat ambiguous width characters as wide
#ambiguous-wide=yes




user@brain:~$

・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を起動します。

user@brain:~$ sudo apt show locales-all
Package: locales-all
Version: 2.31-13+deb11u11
Priority: optional
Section: localization
Source: glibc
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Installed-Size: 227 MB
Depends: libc-l10n (>> 2.31)
Homepage: https://www.gnu.org/software/libc/libc.html
Download-Size: 10.8 MB
APT-Sources: http://archive.debian.org/debian bullseye/main armel Packages
Description: GNU C Library: Precompiled locale data
 This package contains the precompiled locale data for all supported locales.
 A better alternative is to install the locales package and only select
 desired locales, but it can be useful on a low-memory machine because some
 locale files take a lot of memory to be compiled.


user@brain:~$ sudo apt install locales-all
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  locales-all
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 10.8 MB of archives.
After this operation, 227 MB of additional disk space will be used.
Get:1 http://archive.debian.org/debian bullseye/main armel locales-all armel 2.31-13+deb11u11 [10.8 MB]
Fetched 10.8 MB in 13s (849 kB/s)
Selecting previously unselected package locales-all.
(Reading database ... 46337 files and directories currently installed.)
Preparing to unpack .../locales-all_2.31-13+deb11u11_armel.deb ...
Unpacking locales-all (2.31-13+deb11u11) ...
Setting up locales-all (2.31-13+deb11u11) ...


user@brain:~$ sudo brain-config



user@brain:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
user@brain:~$

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

 

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

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

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

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

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

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

(define default-im-name 'anthy-utf8)
(define-key generic-on-key?  '("<Control>`" "<Control> "))
(define-key generic-off-key? '("<Control>`" "<Control> "))

これで、
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

user@brain:~$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ mxs-lradc-ts                              id=6    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ brain-kbd-gpio                            id=16   [slave  keyboard (3)]
user@brain:~$

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

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

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

user@brain:~$ xinput list-props "mxs-lradc-ts"
Device 'mxs-lradc-ts':
        Device Enabled (115):   1
        Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (239):     0
        Device Accel Constant Deceleration (240):       1.000000
        Device Accel Adaptive Deceleration (241):       1.000000
        Device Accel Velocity Scaling (242):    10.000000
        Device Product ID (243):        0, 0
        Device Node (244):      "/dev/input/event1"
        Evdev Axis Inversion (245):     0, 0
        Evdev Axis Calibration (246):   173, 3948, 3981, 353
        Evdev Axes Swap (247):  0
        Axis Labels (248):      "Abs X" (236), "Abs Y" (237), "Abs Pressure" (238)
        Button Labels (249):    "Button Unknown" (235), "Button Unknown" (235), "Button Unknown" (235), "Button Wheel Up" (121), "Button Wheel Down" (122)
        Evdev Scrolling Distance (250): 0, 0, 0
        Evdev Middle Button Emulation (251):    0
        Evdev Middle Button Timeout (252):      50
        Evdev Middle Button Button (253):       2
        Evdev Third Button Emulation (254):     0
        Evdev Third Button Emulation Timeout (255):     1000
        Evdev Third Button Emulation Button (256):      3
        Evdev Third Button Emulation Threshold (257):   20
        Evdev Wheel Emulation (258):    0
        Evdev Wheel Emulation Axes (259):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (260):    10
        Evdev Wheel Emulation Timeout (261):    200
        Evdev Wheel Emulation Button (262):     4
        Evdev Drag Lock Buttons (263):  0
user@brain:~$

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

        Evdev Third Button Emulation (254):     0
        Evdev Third Button Emulation Timeout (255):     1000
        Evdev Third Button Emulation Button (256):      3
        Evdev Third Button Emulation Threshold (257):   20

ドライバ的にはエミュレーション機能は持っているけど、無効状態でした。
ほかの設定も併せて有効にしてみます。(「”」,「”」 は「”」に打ち直してみてください。)

コマンド

$ 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が通っているコマンド

user@brain:~$
Display all 918 possibilities? (y or n)
!                                     fi                                    pushd
./                                    file                                  pwd
:                                     fincore                               pwdx
[                                     find                                  py3clean
[[                                    findmnt                               py3compile
]]                                    flex                                  py3versions
{                                     flex++                                pydoc3
}                                     flock                                 pydoc3.9
aclocal                               fmt                                   pygettext3
aclocal-1.16                          fold                                  pygettext3.9
aconnect                              for                                   pygmentize
addpart                               free                                  python3
addr2line                             function                              python3.9
alias                                 fuser                                 python3.9-config
alsabat                               g++                                   python3-config
alsaloop                              g++-10                                qemu-arm-static
alsamixer                             gcc                                   ranlib
alsatplg                              gcc-10                                rbash
alsaucm                               gcc-ar                                rcp
amidi                                 gcc-ar-10                             rdma
amixer                                gcc-nm                                read
anthy-agent                           gcc-nm-10                             readarray
anthy-dic-tool                        gcc-ranlib                            readelf
aplay                                 gcc-ranlib-10                         readlink
aplaymidi                             gcov                                  readonly
apropos                               gcov-10                               realpath
apt                                   gcov-dump                             rendercheck
apt-cache                             gcov-dump-10                          renice
apt-cdrom                             gcov-tool                             reset
apt-config                            gcov-tool-10                          resize
apt-extracttemplates                  gencat                                resizepart
apt-ftparchive                        geqn                                  resolvectl
apt-get                               getconf                               return
apt-key                               getent                                rev
apt-mark                              getopt                                rgrep
apt-sortpkgs                          getopts                               rlogin
ar                                    git                                   rm
arch                                  git-receive-pack                      rmdir
arecord                               git-shell                             rnano
arecordmidi                           git-upload-archive                    routef
arm-linux-gnueabi-addr2line           git-upload-pack                       routel
arm-linux-gnueabi-ar                  gmake                                 rpcgen
arm-linux-gnueabi-as                  gnome-terminal                        rsh
arm-linux-gnueabi-c++filt             gnome-terminal.wrapper                rtstat
arm-linux-gnueabi-cpp                 gold                                  runcon
arm-linux-gnueabi-cpp-10              gpasswd                               run-parts
arm-linux-gnueabi-dwp                 gpg                                   rview
arm-linux-gnueabi-elfedit             gpg-agent                             rvim
arm-linux-gnueabi-g++                 gpgcompose                            savelog
arm-linux-gnueabi-g++-10              gpgconf                               scp
arm-linux-gnueabi-gcc                 gpg-connect-agent                     script
arm-linux-gnueabi-gcc-10              gpgparsemail                          scriptlive
arm-linux-gnueabi-gcc-ar              gpgsm                                 scriptreplay
arm-linux-gnueabi-gcc-ar-10           gpgsplit                              sdiff
arm-linux-gnueabi-gcc-nm              gpgtar                                sed
arm-linux-gnueabi-gcc-nm-10           gpgv                                  select
arm-linux-gnueabi-gcc-ranlib          gpg-wks-server                        select-default-iwrap
arm-linux-gnueabi-gcc-ranlib-10       gpg-zip                               select-editor
arm-linux-gnueabi-gcov                gpic                                  sensible-browser
arm-linux-gnueabi-gcov-10             gprof                                 sensible-editor
arm-linux-gnueabi-gcov-dump           grep                                  sensible-pager
arm-linux-gnueabi-gcov-dump-10        groff                                 seq
arm-linux-gnueabi-gcov-tool           grog                                  set
arm-linux-gnueabi-gcov-tool-10        grops                                 setarch
arm-linux-gnueabi-gold                grotty                                setpriv
arm-linux-gnueabi-gprof               groups                                setsid
arm-linux-gnueabi-ld                  gtbl                                  setterm
arm-linux-gnueabi-ld.bfd              gtf                                   setxkbmap
arm-linux-gnueabi-ld.gold             gtk-update-icon-cache                 sftp
arm-linux-gnueabi-lto-dump-10         gunzip                                sg
arm-linux-gnueabi-nm                  gzexe                                 sh
arm-linux-gnueabi-objcopy             gzip                                  sha1sum
arm-linux-gnueabi-objdump             h2ph                                  sha224sum
arm-linux-gnueabi-pkg-config          h2xs                                  sha256sum
arm-linux-gnueabi-python3.9-config    hash                                  sha384sum
arm-linux-gnueabi-python3-config      hd                                    sha512sum
arm-linux-gnueabi-ranlib              head                                  shasum
arm-linux-gnueabi-readelf             help                                  shift
arm-linux-gnueabi-size                helpztags                             shopt
arm-linux-gnueabi-strings             hexdump                               shred
arm-linux-gnueabi-strip               history                               shuf
arm-unknown-linux-gnueabi-pkg-config  host                                  size
as                                    hostid                                skill
aseqdump                              hostname                              sl
aseqnet                               hostnamectl                           slabtop
atobm                                 htop                                  sleep
autoconf                              ico                                   slogin
autoheader                            ico-dvd                               snice
autom4te                              iconv                                 soelim
automake                              id                                    sort
automake-1.16                         iecset                                source
autoreconf                            if                                    speaker-test
autoscan                              ifnames                               splain
autoupdate                            in                                    split
awk                                   infocmp                               ss
axfer                                 infotocap                             ssh
b2sum                                 install                               ssh-add
base32                                instmodsh                             ssh-agent
base64                                ionice                                ssh-argv0
basename                              ip                                    ssh-copy-id
basenc                                ipcmk                                 ssh-keygen
bash                                  ipcrm                                 ssh-keyscan
bashbug                               ipcs                                  startx
bg                                    ipython3                              stat
bind                                  ischroot                              stdbuf
bison                                 ispell-wrapper                        streamzip
bison.yacc                            jobs                                  strings
bitmap                                join                                  strip
bmtoa                                 journalctl                            stty
bootctl                               json_pp                               su
brain-config                          jwm                                   sudo
break                                 kbxutil                               sudoedit
builtin                               kernel-install                        sudoreplay
bunzip2                               kill                                  sum
busctl                                killall                               suspend
busybox                               kmod                                  sync
bwrap                                 koi8rxterm                            systemctl
bzcat                                 last                                  systemd
bzcmp                                 lastb                                 systemd-analyze
bzdiff                                lastlog                               systemd-ask-password
bzegrep                               lcf                                   systemd-cat
bzexe                                 ld                                    systemd-cgls
bzfgrep                               ld.bfd                                systemd-cgtop
bzgrep                                ldd                                   systemd-delta
bzip2                                 ld.gold                               systemd-detect-virt
bzip2recover                          less                                  systemd-escape
bzless                                lessecho                              systemd-hwdb
bzmore                                lessfile                              systemd-id128
c++                                   lesskey                               systemd-inhibit
c89                                   lesspipe                              systemd-machine-id-setup
c89-gcc                               let                                   systemd-mount
c99                                   lex                                   systemd-notify
c99-gcc                               lexgrog                               systemd-path
caller                                libnetcfg                             systemd-resolve
captoinfo                             libpng16-config                       systemd-run
case                                  libpng-config                         systemd-socket-activate
cat                                   libtoolize                            systemd-stdio-bridge
catchsegv                             link                                  systemd-sysusers
catman                                linux32                               systemd-tmpfiles
cc                                    linux64                               systemd-tty-ask-password-agent
cd                                    linux-check-removal                   systemd-umount
c++filt                               linux-update-symlinks                 tabs
chage                                 linux-version                         tac
chattr                                ln                                    tail
chcon                                 lnstat                                tar
chfn                                  local                                 tasksel
chgrp                                 locale                                taskset
chmod                                 localectl                             tbl
choom                                 localedef                             tee
chown                                 logger                                tempfile
chrt                                  login                                 test
chsh                                  loginctl                              then
cksum                                 logname                               tic
clear                                 logout                                time
clear_console                         look                                  timedatectl
cmp                                   ls                                    timeout
col                                   lsattr                                times
colcrt                                lsblk                                 tload
colrm                                 lscpu                                 tmux
column                                lsinitramfs                           toe
comm                                  lsipc                                 top
command                               lslocks                               touch
compgen                               lslogins                              tput
complete                              lsmem                                 tr
compopt                               lsmod                                 transset
continue                              lsns                                  trap
convert-dtsv0                         lspgpot                               troff
coproc                                lsusb                                 true
corelist                              lto-dump-10                           truncate
cp                                    lua                                   tset
cpan                                  lua5.1                                tsort
cpan5.32-arm-linux-gnueabi            luac                                  tty
cpio                                  luac5.1                               type
cpp                                   lxterm                                typeset
cpp-10                                lxterminal/                           tzselect
c_rehash                              ly                                    ucf
crontab                               lzcat                                 ucfq
csplit                                lzcmp                                 ucfr
ctstat                                lzdiff                                udevadm
curl                                  lzegrep                               uim-fep
cut                                   lzfgrep                               uim-fep-tick
cvt                                   lzgrep                                uim-help
cvtsudoers                            lzless                                uim-m17nlib-relink-icons
dash                                  lzma                                  uim-module-manager
date                                  lzmainfo                              uim-sh
dbus-cleanup-sockets                  lzmore                                uim-toolbar
dbus-daemon                           m17n-db                               ul
dbus-monitor                          m4                                    ulimit
dbus-run-session                      make                                  umask
dbus-send                             make-first-existing-target            umount
dbus-update-activation-environment    man                                   unalias
dbus-uuidgen                          mandb                                 uname
dd                                    manpath                               uncompress
debconf                               man-recode                            unexpand
debconf-apt-progress                  mapfile                               uniq
debconf-communicate                   mawk                                  unlink
debconf-copydb                        mcookie                               unlzma
debconf-escape                        md5sum                                unmkinitramfs
debconf-set-selections                md5sum.textutils                      unpigz
debconf-show                          mesg                                  unset
deb-systemd-helper                    midori                                unshare
deb-systemd-invoke                    migrate-pubring-from-classic-gpg      until
declare                               mkdir                                 unxz
delpart                               mkfifo                                update-alternatives
df                                    mknod                                 update-mime-database
dh_autotools-dev_restoreconfig        mktemp                                uptime
dh_autotools-dev_updateconfig         more                                  usb-devices
dh_numpy3                             mount                                 usbhid-dump
dh_xsf_substvars                      mountpoint                            usbreset
dialog                                mt                                    users
diff                                  mt-gnu                                utmpdump
diff3                                 mv                                    uxterm
dir                                   namei                                 vdir
dircolors                             nano                                  vi
dirmngr                               nawk                                  view
dirmngr-client                        neofetch                              vim
dirname                               neqn                                  vim.basic
dirs                                  netstat                               vimdiff
disown                                netsurf                               vim.tiny
dmesg                                 netsurf-gtk                           vimtutor
dnsdomainname                         networkctl                            vmstat
do                                    newgrp                                w
domainname                            nice                                  wait
done                                  nisdomainname                         wall
dpkg                                  nl                                    watch
dpkg-architecture                     nm                                    watchgnupg
dpkg-buildflags                       nmcli                                 wc
dpkg-buildpackage                     nm-online                             wdctl
dpkg-checkbuilddeps                   nmtui                                 wget
dpkg-deb                              nmtui-connect                         whatis
dpkg-distaddfile                      nmtui-edit                            whereis
dpkg-divert                           nmtui-hostname                        which
dpkg-genbuildinfo                     nohup                                 while
dpkg-genchanges                       nproc                                 whiptail
dpkg-gencontrol                       nroff                                 who
dpkg-gensymbols                       nsenter                               whoami
dpkg-maintscript-helper               nstat                                 wpa_passphrase
dpkg-mergechangelogs                  numfmt                                write
dpkg-name                             objcopy                               write.ul
dpkg-parsechangelog                   objdump                               X
dpkg-query                            oclock                                x11perf
dpkg-realpath                         od                                    x11perfcomp
dpkg-scanpackages                     openssl                               xargs
dpkg-scansources                      pager                                 xauth
dpkg-shlibdeps                        partx                                 xbiff
dpkg-source                           passwd                                xcalc
dpkg-split                            paste                                 xclipboard
dpkg-statoverride                     patch                                 xclock
dpkg-trigger                          pathchk                               xconsole
dpkg-vendor                           pcmanfm                               xcursorgen
dtc                                   pdb3                                  xcutsel
dtdiff                                pdb3.9                                xdg-dbus-proxy
du                                    peekfd                                xditview
dwp                                   perf                                  xedit
echo                                  perl                                  xeyes
editor                                perl5.32.1                            xgc
egrep                                 perl5.32-arm-linux-gnueabi            xinit
elfedit                               perlbug                               xinput_calibrator
elif                                  perldoc                               xkbbell
else                                  perlivp                               xkbcomp
enable                                perlthanks                            xkbevd
enable_rndis_gadget                   pgrep                                 xkbprint
enc2xs                                pic                                   xkbvleds
encguess                              pico                                  xkbwatch
env                                   piconv                                xload
eqn                                   pidof                                 xlogo
esac                                  pidwait                               xmag
eval                                  pigz                                  xman
ex                                    pinentry                              xmore
exec                                  pinentry-curses                       Xorg
exit                                  ping                                  xsubpp
expand                                ping4                                 xterm
expiry                                ping6                                 x-terminal-emulator
export                                pinky                                 xwd
expr                                  pip                                   x-window-manager
f2py3                                 pip3                                  xwud
f2py3.9                               pkaction                              x-www-browser
factor                                pkcheck                               xxd
faillog                               pkexec                                xz
fallocate                             pkg-config                            xzcat
false                                 pkill                                 xzcmp
fbterm                                pkttyagent                            xzdiff
fc                                    pl2pm                                 xzegrep
fc-cache                              pldd                                  xzfgrep
fc-cat                                pmap                                  xzgrep
fc-conflist                           pod2html                              xzless
fcitx                                 pod2man                               xzmore
fcitx4-config                         pod2text                              yacc
fcitx-autostart                       pod2usage                             yes
fcitx-configtool                      podchecker                            ypdomainname
fcitx-dbus-watcher                    popd                                  zcat
fcitx-diagnose                        pr                                    zcmp
fcitx-remote                          preconv                               zdiff
fcitx-skin-installer                  printenv                              zdump
fc-list                               printf                                zegrep
fc-match                              prlimit                               zfgrep
fc-pattern                            prove                                 zforce
fc-query                              prtstat                               zgrep
fc-scan                               ps                                    zip
fc-validate                           pslog                                 zipcloak
fdtdump                               pstree                                zipdetails
fdtget                                pstree.x11                            zipnote
fdtoverlay                            ptar                                  zipsplit
fdtput                                ptardiff                              zless
fg                                    ptargrep                              zmore
fgrep                                 ptx                                   znew

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

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

accessdb
addgnupghome
addgroup
add-shell
adduser
agetty
alsabat-test
alsactl
alsa-info
applygnupgdefaults
arp
arpd
aspell-autobuildhash
avahi-daemon
badblocks
blkdeactivate
blkdiscard
blkid
blkzone
blockdev
bridge
capsh
cfdisk
chcpu
chgpasswd
chmem
chpasswd
chroot
cpgr
cppw
cron
ctrlaltdel
debugfs
delgroup
deluser
depmod
devlink
dhclient
dhclient-script
dmsetup
dmstats
dpkg-fsys-usrunmess
dpkg-preconfigure
dpkg-reconfigure
dumpe2fs
e2freefrag
e2fsck
e2image
e2label
e2mmpstatus
e2scrub
e2scrub_all
e2undo
e4crypt
e4defrag
faillock
fake-hwclock
fdformat
fdisk
filefrag
findfs
fsck
fsck.cramfs
fsck.ext2
fsck.ext3
fsck.ext4
fsck.minix
fsfreeze
fstab-decode
fstrim
genl
getcap
getpcaps
getty
groupadd
groupdel
groupmems
groupmod
grpck
grpconv
grpunconv
halt
hwclock
iconvconfig
ifconfig
ifdown
ifquery
ifup
init
insmod
installkernel
invoke-rc.d
ipmaddr
iptunnel
isosize
ispell-autobuildhash
iw
killall5
ldattach
ldconfig
locale-gen
logrotate
logsave
losetup
mii-tool
mke2fs
mkfs
mkfs.bfs
mkfs.cramfs
mkfs.ext2
mkfs.ext3
mkfs.ext4
mkfs.minix
mkhomedir_helper
mkinitramfs
mklost+found
mkswap
modinfo
modprobe
nameif
NetworkManager
newusers
nft
nologin
pam-auth-update
pam_getenv
pam_timestamp_check
parted
partprobe
pivot_root
plipconfig
poweroff
pwck
pwconv
pwunconv
rarp
raw
readprofile
reboot
remove-default-ispell
remove-default-wordlist
remove-shell
resize2fs
resolvconf
rmmod
rmt
rmt-tar
route
rsyslogd
rtacct
rtcwake
rtmon
runlevel
runuser
select-default-ispell
select-default-wordlist
service
setcap
sfdisk
shadowconfig
shutdown
slattach
sshd
start-stop-daemon
sudo_logsrvd
sudo_sendlog
sulogin
swaplabel
swapoff
swapon
switch_root
sysctl
tarcat
tc
telinit
th-cmd
thd
tipc
tune2fs
tzconfig
unix_chkpwd
unix_update
update-ca-certificates
update-default-aspell
update-default-ispell
update-default-wordlist
update-dictcommon-aspell
update-dictcommon-hunspell
update-icon-caches
update-initramfs
update-locale
update-passwd
update-rc.d
useradd
userdel
usermod
validlocale
vigr
vipw
visudo
wipefs
wpa_action
wpa_cli
wpa_supplicant
zic
zramctl

Views: 388

カテゴリー: 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 ブロックデバイス(ストレージ)の一覧を表示

user@brain:~$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0  7.3G  0 disk
mmcblk0booto 179:8    0    4M  1 disk
mmcblk1      179:16   0 29.1G  0 disk
├mmcblklp1   179:17   0   64M  0 part /boot
└mmcblklp2   197:18   0  2.9G  0 part /
mmcblk0boot1 179:24   0    4M  1 disk

mount マウント状況

user@brain:~$ mount
/dev/mmcblk1p2 on / type ext4 (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=59072k,nr_inodes=14768,mode=755)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=23672k,nr_inodes=819200,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
/dev/mmcblk1p1 on /boot type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=11832k,nr_inodes=2958,mode=700,uid=1000,gid=1000)
user@brain:~$

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になっていますね。拡張成功です。

user@brain:~$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0  7.3G  0 disk
mmcblk0booto 179:8    0    4M  1 disk
mmcblk1      179:16   0 29.1G  0 disk
├mmcblklp1   179:17   0   16G  0 part /boot
└mmcblklp2   197:18   0  2.9G  0 part /
mmcblk0boot1 179:24   0    4M  1 disk

Linux領域を拡張

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

sudo brain-config

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

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

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

user@brain:~$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0      179:0    0  7.3G  0 disk
mmcblk0booto 179:8    0    4M  1 disk
mmcblk0boot1 179:24   0    4M  1 disk
mmcblk1      179:16   0 29.1G  0 disk
├mmcblklp1   179:17   0   16G  0 part /boot
└mmcblklp2   197:18   0 13.1G  0 part /

SWAP領域の確保

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

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

user@brain:~$ free
       total   used   free  shared  buff/cache    available
Mem:  118352  49632  18560     512       49992        63040
Swap:      0      0      0  

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

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

user@brain:~$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 records in
2048+0 recorda out
2147483648 bytes (2.1 GB , 2.0 GiB) copied, 169.562 s, 12.7 MB/s

user@brain:~$ sudo chmod 0600 /swapfile

user@brain:~$ sudo mkswap /swapfile
Setting up swapspace versiton 1, size = 2 GiB (2147479552 bytes)
no label, UUID=51c83415-81eb-414a-8c9c-4b0a04c9c487

user@brain:~$ sudo swapon /swapfile


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

/swapfile none swap sw 0 0

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

user@brain:~$ sudo vi /etc/fstab
user@brain:~$ cat  /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
/swapfile none swap sw 0 0

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

user@brain:~$ free
       total   used      free  shared  buff/cache    available
Mem:   118352  49632    18560     512       49992        63040
Swap: 2097148      0  2097148  

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

user@brain:~$ sudo shutdown -r now

<再起動>

user@brain:~$ free
       total   used      free  shared  buff/cache    available
Mem:   118352  42684     5892     204       69776        70476
Swap: 2097148   7424  2089724  

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

 

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

 

Views: 342

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

Windowsで原因不明の空き容量不足の調査と対策

Windows11で空き容量不足発生

サブで使用しているPCを今まで使っていたのだが、
いつの間にかCドライブが枯渇していた。最近Windows10から11にアップグレードしたサーバだったので、以前のwindowsのデータが残ているのかと思って、ストレージセンサーで削除してみたが、2GB程度は減ったけど効果はスズメの涙程度。
120GBのSSDなので、何かあったのかと調査開始。

肥大化しているファイルを探す

で、どこがそんなに容量を使っているか巨大なファイルをコマンドで調べていたところ・・・・・(以下は、Cドライブ全体で100MB以上のファイルを列挙するものです。)

FORFILES /S /C “cmd /c if @fsize GTR 104857600 echo @path @fsize”

C:\Users\User>cd \

C:\>FORFILES /S /C "cmd /c if @fsize GTR 104857600 echo @path @fsize"

"c:\hiberfil.sys" 6832271360
"c:\pagefile.sys" 1073741824
"c:\$Recycle.Bin\S-1-5-21-821526905-2853617052-1548205225-1001\$R93V8XY.exe" 208169936
"c:\ESD\Windows\sources\boot.wim" 405148749
"c:\ESD\Windows\sources\install.esd" 3445695924
"c:\Program Files (x86)\Google\GoogleUpdater\crx_cache\ce879a27faf33737b2f87aac29a80e88d4d85e88a9ca1bbf03c0f6612fc383ba" 437191458
"c:\Program Files (x86)\Microsoft\Edge\Application\141.0.3537.99\msedge.dll" 300099152
"c:\Program Files (x86)\Microsoft\EdgeCore\141.0.3537.99\msedge.dll" 300099152
"c:\Program Files (x86)\Microsoft\EdgeWebView\Application\141.0.3537.99\msedge.dll" 300099152
"C:\ProgramData\Microsoft\Windows Defender\Definition Updates\Backup\mpasbase.lkg" 134098360
"C:\ProgramData\Microsoft\Windows Defender\Definition Updates\Backup\mpasbase.vdm" 136520624
"C:\ProgramData\Microsoft\Windows Defender\Definition Updates\{35790957-EAEE-4462-BF58-FA5C2E6F410B}\mpasbase.vdm" 136520624

"C:\ProgramData\Synaptics\ValidityService.log" 57002040969

C:\ProgramData>

ん!!

"C:\ProgramData\Synaptics\ValidityService.log" 57002040969

ちょっと待って、57002040969のファイルサイズって、53GBやん
原因間違いなくこれやん!!

ファイルを削除する

“C:\ProgramData\Synaptics\ValidityService.log”は、何かのログファイルですね。
Synapticsとなっているから、ノートPCに搭載されているタッチパネル関係かな?
ということで、一回そのままログファイルを削除してみる。

削除すると、少し待つと勝手に新しいファイルが作られて、0バイトから徐々に増えていきます。

肥大化したファイルについて対策する

“ValidityService.log”でネットを検索すると、Synaptics社製のタッチパッドドライバで ValidityService.logと言うファイル名のログファイルが永遠に肥大化するというバグがあるようです。

HPコミュニティ
なぜSynapticsの有効性サービスログのサイズは常に大きくなるのですか?

対策として、いったん該当ファイルを消した後に、
また自動で作成されてどんどん太っていくので、その間にValidityService.logのプロパティで読み取り専用にすることで、いったん暫定対策。

ちょっと待っただけで4MB超えてますね


いったんこれで、空き容量確認しました。

ちなみにこのバグ、あたらめてネットで確認すると

対策方法としては
 1) Synaptics FP WBF Policy Serviceを停止する
 2) C:\ProgramData\Synaptics\ValidityService.logを削除する
 3) C:\ProgramData\Synaptics\ValidityService.logにダミーのファイルを作成する
 4) C:\ProgramData\Synaptics\ValidityService.logのダミーのファイルのプロパティで「読み取り専用」にチェックを入れる
 5) Synaptics FP WBF Policy Serviceを開始する

で解決するそうです
(私の時はサービス止めずにファイル削除して「読み取り専用」にしちゃいましたが)

いったんこれで様子見します。

Views: 146

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