AndroidでLinuxを動作させてみる(UserLAnd編)

以前、AndoroidNode-REDを導入するにあたってTermuxを使用してLinuxエミュレーションを行っていました。

uepon.hatenadiary.com

Termuxは、Androidの環境内にLinux的な実行環境を提供する端末エミュレーターアプリとなります。特に端末のRoot化などを行うことをせずそのまま使えるのが利点です。

ただ、このTermuxGoogle Playストアに置いてあるバージョンが古いのがたまに瑕でした。(Linux環境は導入はできるのですがインストール後のaptコマンドに失敗します)

これを回避するには、F-Droidという公式ではないアプリストアサービスに接続し、そこからインストールするかapkファイルを使ってインストールすることになります。ちょっと面倒ですよね。

https://f-droid.org/ja/

そんな中以下のような記事を見つけました。

pc.watch.impress.co.jp

こちらの記事では、PlayストアからダウンロードできるUserLAndを使用してLinux環境を構築するというものでした。こちらはPlayストアから環境できる分、先程のTermuxに比べて敷居が低いように思います。こちらもRoot化は不要です。

では、今回もNexus7(2013)Android11化(厳密にいうならばLineage OS 18.1)したAndroidタブレットに導入して、どの程度動くのかを確認してみようと思います。

uepon.hatenadiary.com

導入に先立って

導入に先立ってVNC Viewerをインストールしておきます。というのもUserLAndではX環境を作成して、立ち上げることもできるためです。接続もSSH接続VNC接続かを選択できるようになっています。VNC接続を選択すると自動的にVNC Viewerが起動します。

今回、私はVNC Viewerを使用していますが、その他のVNCアプリを使用しても良いようです。

続きを読む

Androidで物理キーボード使用時の日本語切替

最近、Android上でLinuxを使用できるといったアプリが頻繁に紹介されています。自分も試してみましたが、予想以上に使用に耐える感じでした。自分が使用している超旧型のNexus7(2013)でも動作できるというのは驚きです。

uepon.hatenadiary.com

Linuxの導入に関しては別のエントリで書くことにしますが、 その時に使用していた物理キーボード(Buletooth接続 日本語109A配列)で、日本語入力の切り替えが【半角/全角】ではうまく切り替えることができず、スクリーンキーボードなどを使って入力をしていました。ここでいう、切り替えができないというのは日本語変換から英数入力に変更できないことになります。

流石にCLIで日本語変換の切り替えができないのは困るので、設定を見直すことにしました。

続きを読む

別デバイスに付属していたUnifyingレシーバーをとペアリングしてマウスを接続

Logicoolのマウスをよく使用しているのですが、マウスも数年使用しているとボタンが壊れてしまったり、もっといいものが出てきたりなどのことが発生します。 マウスがヘタってしまうことは仕方ないかなとは思うのですが、そのときにたまにどうしたらいいのかなと思うことがあるのがUnifyingのレシーバーです。 Unifyingに対応している機器であれば、このレシーバーを経由してキーボードなど1つのレシーバーでいくつものデバイスに接続できるというデバイスになります。

レシーバーは基本挿しっぱなしでしようするものなので、経年劣化はしないので利用用途を考えていたのですが、知り合いからUnifyingレシーバーは 付属したデバイスでなくても登録して使用することができるということを教えてもらいました。

現在2つほどUnifyingのレシーバーが余っていたので、こちらを使えるようにしてみます。

続きを読む

RaspberryPiでもDockerしたい!

最近、Dockerを使用するようになってPCの側でアプリ(特にサーバー系)をインストールしたりセットアップするのが億劫になってきました。私用で使っているRaspberryPiに関しても同様なのですが流石に1GBメモリのRaspberryPiDockerを使用するのはちょっと無謀かなと思ってもいます。ちょうど2GBメモリのRaspberryPi4があるので、そちらにDockerを使った場合、どの程度使用に耐えるのか、コンテナを起動した際にどの程度メモリ消費量あるの調べてみようと思います。あくまでもヘビーユースではなく、ホビーユースという側面で見ていただければと思います。

使用した環境

使用したは以下のような環境です。

  • RaspberryPi → RaspberryPi 4B(メモリ2G モデル…このあたりがギリギリかな)
  • OS → RaspberryPi OS Lite bullseyeベース(64bit)
  • ブート → SDカード

としています。今回は新規にインストールを行って余計なノイズが入らないようにしています。また、X Window Systemを使用するのが持ったいないのでLite版を使用しています。

SDカードから起動後にOSの状態を確認しました。(lsb_releaseコマンドunameコマンドを使用)

また、起動直後のメモリの空き状態は以下のようになっています。表示の単位はメガバイト(-mオプション)にしています。

初期状態では1.7GBほどの空きメモリがあるようです。

続きを読む

Dockerのコンテナ間のネットワーク通信

Dockerのコンテナ間の通信をできないかなと思って調べてみました。今まではコンテナにDBとWebサーバを共存させるようなことをやっていたのですが、 実際には別のサーバになることも多いので、この際調べて変更をしていこうと思います。

今回のテスト環境

今回は以下の環境でテストを行っています。

  • Windows10 Home
  • WSL2環境のDocker
  • コンテナイメージUbuntu : latest

コンテナの生成・実行

実験の対象となるコンテナを以下の様に生成実行しました。

PS C:\> docker run -itd -v /c/sharebin:/sharebin --name myubuntu1 ubuntu
PS C:\> docker run -itd -v /c/sharebin:/sharebin --name myubuntu2 ubuntu

このコンテナの名前はmyubuntu1myubuntu2としていますが管理上の名前であるだけでホスト名をコンテナ内でhostnameコマンドを実行してもこのような名前では通信できません。生成されたコンテナ内では英数字のランダムな値がホスト名となっています。この乱数的なホスト名を使用すれば先程作成したコンテナ間の通信はできそうな気がしますが、これでも通信はできません。

実はDockerで作成したコンテナはネットワークを指定しなければデフォルトネットワークにぶら下がる形で生成されます。このデフォルトネットワークに接続されると相互のネットワーク疎通ができないというものになっています。もちろん、Dockerホストとは通信は行なえます。

続きを読む
/* -----codeの行番号----- */