キーボード修理

イメージ
前回 調子が悪くなったと書きましたが、部品が手配できて時間が取れたので直しました。 茶軸のスイッチを購入 Cherryの茶軸は 10個で1,399- ということで購入。 本当は1個で充分なんだけど、仕方なく残りは予備部品として保管。 作業手順 キーボードの裏側ネジを3箇所外します。 左右と中央の丸シールの下。 左右はパッドを貼っているので、少しめくって外します。 (あとで綺麗に戻るので心配なしです) ケーブルが出ている方は、スッと外れ、手前(下側)は、内部に爪が有るので、ピックやカード、マイナスドライバなどで少し隙間を開けるようにして広げれば外れます。 自分は親指の爪で空きました。 今回は「E」が調子悪いので、該当のピン2箇所をハンダ吸いで綺麗に取り除いて、裏側から引き抜いて完了。 基板にしっかりとどのキーかがプリントされているので分かりやすいですねぇ 入手した新品の茶軸を差し込んでハンダ付けします。 この時点で動作確認が可能になるので、直したキーとその周辺が正しく入力できるのをチェック。 問題なく、無事に動作しました。 最後にカバーを取り付けて完了! 残ったのは9個の茶軸…。 今回の費用 Cherryの茶軸10個セット :1,399- キーキャップ引き抜き工具 : 475-  ちなみに10個セットには、簡易引き抜きがついてきますが、ちゃんとしたもののほうが楽に作業できます。(昔買ったのに、どこかに行ってしまったので再購入)  ということで、1900円ほどで完治しました。  手間賃考えると買ったほうが安いかも(笑)

M1 Macの仮想マシンでUbuntu

 M1 Mac速いけどまだ足りない…

M1 Chip搭載のMacbookProを入手して、いろいろとテストしている。

確かに速い!メモリ8GBで苦しいんじゃ?と思ったけど全然そんなことないし、Intelの16GB相当と言えるような感じ。

バッテリーの持ちも本当に良いし、ZoomやSkypeを使うときはメインマシンとなっている。

さて、今回はこれまでx86対応が遅れている箇所を検証してみた。


目的はM1 Mac上に仮想環境を構築し、その中でLinuxを動作させること。

VirtualBoxが動作しないので、他に方法はないのかと探してみると、OpenSource Base(QEMUを使用したもの)で、UTMというのが存在することがわかった。



しばらく、OSXから離れていたので、情報不足でした。
そこで、こいつを使用して構築を試みる。

intel系のコードの場合、rosset2が変換して動かすものの、初期変換に時間がかかることと、ドライバ等は正常動作しないことが多い。

仮想マシンは、M1のnativeで動作させたいので、以下の方針で進める。

  • 仮想マシンはArm64 CPUとする
  • OSは、Arm64に対応したもの
  • できれば、使い慣れているUbuntuもしくは他のLinux
色々と探してみると、すでに同じ構成でのレポートがあった。
参考にしたのは、「第672回 UTMを使ってM1 Mac上でUbuntuを動かす」だ。


UTMのインストール

これは、どのインストール方法を選択するかで、変わってくる。自分のマシンはHomebrewを導入済みなので、当然brewでインストールする。
(https://github.com/utmapp/UTM/releases/tag/v2.1.2)

$ brew update
$ arch -arm64 brew upgrade
$ arch -arm64 brew install --cask utm

何の問題もなく進む。
brewを使用していない人は、dmgを落とすか、AppleStoreで有料購入できるらしい。

仮想マシンの構築

さて、UTMを起動して、仮想マシンを作成する。
メモリは8GBしかないので、とりあえず3GB割り当てることにした。
Ubuntu程度なら、2GBでも充分動くけど、快適に動かせるように少し余分に…。

UbuntuのISOイメージはArm64のサーバ版を落とす。
(ubuntu-20.04.2-live-server-arm64.iso2)

Arm64のDesktop版は存在していないようなので、あとから日本語関係、デスクトップ関係を入れることにする。

光学ドライブの設定だけ、最初戸惑ったが、Removable Driveを選択さえすれば大丈夫。
電源を入れると、見慣れたBoot画面が続きCUIでのインストールができる。

設定項目は、GUIとそれほど変わらないし、Server版を入れたことがあれば、戸惑うところはない。
インストールが完了して、ログインできれば最初のステップは完了。

デスクトップ環境の構築

ログイン後、そのまま以下を実行。

$ sudo apt install tasksel
$ sudo tasksel install ubuntu-desktop

これで、作業完了。
先のサイトでは途中で止まったりすることがあるとのことだが、何の問題もなく完了した。

このまま再起動する。


しばらくすれば(ほんの数秒だけど…)いつもの見慣れたログイン画面が表示される。
ここまで来れば、もうしめたもの。楽勝です。


あとは、細かな設定を行えば完了。(図はすでに日本語環境導入済み)
  • タイムゾーンの設定
  • 日本語環境の導入
  • 必要なアプリケーションのインストール

問題点

  • GPUが機能しない
    • まぁ、開発に使うのであれば全く問題ない速度で描画できている。
    • ゴリゴリにゲームを行いたい人には、厳しいかも…。
  • ネットワークがNATしかない
    • bridgeが使用できれば楽なんだけど、仕方ない。
    • サーバとして使用するならポートフォワードを設定してやることで、一応利用できる。
    • クライアントとして使うだけならNATで問題なし。
  • 一部のキーが効かない
    • これは、本当に困った(後述)

と、いくつか問題点はあるが、大きく問題になるのは最後のキーバインドがおかしいことだ。
それ以外は、使い方の問題でなんとかできる部分なので、注意すれば良いだけだ。

キーバインドを変更する

まず、一番の問題は、パイプ[|]が効かないこと。
コマンド操作するのに、これがなければ意味がない。
もちろん、毎度temporarily fileに落として、それを喰わせることで、なんとか回避はできる場合もあるが…。

2つ目は、[_]が効かないこと。
これは、ファイル名や変数名に多用するので、使えないのは厳しい。
とりあえず、ホスト側とゲスト側のクリップボードは共有されるので、一旦Mac側でコピーして、貼り付ければ入力できなくはないが、不便すぎる。

まずは、調査から…。

$ xev

で反応を見る。
すると、[¥]キーは、[⌘command]キーと同一の扱いになっているようだ。
[ろ]キーは完全に無視されている。

一応、キー設定の問題かもと思い、対応しそうなキーボードを全て試したがダメだった。

$ sudo dpkg-reconfigure keyboard-configuration

続いて、X環境で切り替えられないかと思い、キーボードのレイアウトを変更してみる。
もう、手当たり次第設定し確認し、試してみたが…。
$ setxkbmap -print -verbose 10
$ setxkbmap -layout jp
$ setxkbmap -print -verbose 10
$ setxkbmap -model macbook78
$ setxkbmap -print -verbose 10
$ setxkbmap -model macbook79
$ setxkbmap -model apple_laptop
$ setxkbmap -model apple
$ setxkbmap -print -verbose 10
$ setxkbmap -model macbook79
$ setxkbmap -print -verbose 10
$ setxkbmap -layout jp
$ setxkbmap -print -verbose 10

まったくだめだ…。

で、あちこち探してみるが、もっとも関係ありそうなのがQemuのバージョンによる不具合らしい。UTMが使用しているQemuのバージョンが上がれば自然に解消しそうだ。
とはいえ、キーが使えないのは不便なので、どこかに割り当てることにする。

キーバインドの変更

xevで調べているときに、shift+[0]に「~」が割り当てられていた。
キートップ上は何も割り当てがないはずなのに…。
しかも、shift+[^]にも「~」の割り当てがあるので、ダブっている。

そこで、shift+[^]を押したときに、[|]を出力するように変更する。
もう一つの、[_]は、空いているキーがないので、shift+spaceに割り当てることにした。

$ xmodmap -pke > .XmodmapNow

と、現在の設定を一旦ファイルに吐き出す。
これを、参考にエディタで編集して読み込ませれば、完了。

$ nano .Xmodmap
と親近ファイルを作成し、先のファイルを参考に関連する項目を作成する。

keycode  21 = asciicircum bar equal plus
keycode  65 = space underscore space

最終的には、上記の2項目のみで完了。

$ xmodmap .Xmodmap

と実行することで、設定が反映される。
これを、手入力するのはだるいので、key.shに書き込んで実行させることにした。

本当は起動時に実行させても良いのだけど、今後バージョンが変わることを期待して、必要に応じて実行することに…。
まあ、1度実行するだけなので、手間ではない。

これで、仮想マシンないのCUIでも気持ちよくコマンド入力ができるし、エディタでも入力ができるようになった。

使用感

ちなみに、仮想マシンの操作感は、びっくりするぐらい快適。
メインマシンのUbuntu(仮想ではなく直インストール)で使用しているマシンより、早く感じる部分もあって少々驚いている。

MacOSを入れなくても、Arm版をそのまま入れれば、驚くほど快適になりそうで、その誘惑にいつまで我慢できるか…。



コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Ubuntu24.04 でGUIが死んだ