5月 242021
 

前回は FreeBSD/adm64 13.0-RELEASE にして、drm-fbsd13-kmod を gitHUB から持ってきてインストールしたら AMD Ryzen 7 PRO 4750U の GPU である Vega10 が amdgpu として動き出した。と、いうところで終わっています。

あ。そーそー。 xrandr で eDP として認識されたのでバックライトも動作するようになった。と、書いたところで終わっていますね。

今回はその続きからです。

まず、バックライトについてですが、コマンド的には backlight (8) になります。こいつのオプションはすげーですぜ。明示的に明るさを指定するパターンと、ちょっとずつ明るくもしくは暗くしていくオプションがちゃんと用意してあります。

$ backlight -h
Usage:
        backlight [-f dev]
        backlight [-f dev] -i
        backlight [-f dev] <percent>
        backlight [-f dev] incr|+ <percent>
        backlight [-f dev] decr|- <percent>
$ backlight incr 20
$ backlight decr 20

 
backlight incr 20 と打つと、まぁ、雰囲気的には 20% ずつ明るくなって、 backlight decr 20 と打つと、こちらも雰囲気的に 20% ずつ暗くなります。

おやまぁっ!! つまりは acpi_ibm.ko で Fn キーにコマンドイメージをそのまま割り当てれば、 hw.acpi.video.lcd0.brightness へ値を食わせてあげるより楽じゃね? となるのであります。

僕の場合は Plasma5 KDE (この書き方初めてだ。普段は『KDE5』とか書いちゃうんだけど;-) を利用しているので acpi_ibm.ko を利用せずとも、ショートカットを設定すればサクと明るさが変えられるのでありますっ!! すげーっ!! すげーよっ!!

 
と、いうことで『KDE システム設定アプリ』を起動します。

[ショートカット] → [カスタムショートカット] と来て左下に [編集] というのがあるので [New] (これは翻訳されてない;-) → [グローバルショートカット] → [コマンド/URL] を選択します。

すると「名前」のところに「新しいアクション」が青くなるので、任意の文字列を指定します。

僕の場合は以下のようにしました。

そして、[トリガー] タブを開いてキーを指定します。 Fn キーも指定できます。がっ!! LCD の明るるさ調整のペイントがある F5 と F6 には Xorg 的にキーが割り当てられていないようです。 xev で F5 ・ F6 を押してもキー番号が表示されません。あらら・・。

しょうがないので僕の場合は Ctrl + ボリュームアップ と Ctrl + ボリュームダウン にキーをバインドしました。

そして、[アクション] タブを開いて [コマンド/URL] のところに上のコマンドイメージを設定してあげます。

Ctrl + ボリュームアップ を数回押すと 20% ずつ画面が明るくなって Ctrl + ボリュームダウンを数回押すと 20% ずつ画面が暗くなっていきます。いやぁ。思い通りの動作です。キーバインドがプリントされているのとはちょっと違うのが悲しいですが、やりたいことはできました。パチパチパチ。

 
これで、ネタは一個おしまい。

 
さてと。前回のエントリの下のほうに以下のように書きました

  • Realtek のカードリーダ (RTS522A) が rtsx0 で認識して動くようになりました。
  • 音はスピーカーからもヘッドホン端子からも出ます。
  • CPU の温度が拾えるようになりました。
  • Intel Wi-Fi 6 AX200 はまだ動きません。
  • Suspend して Resume で起きても動きません。電源ボタン押すと shutdown はしてくれるようですが、ネットワークは利用できません。

 
そして、

次は suspend/resume にトライだぁ;-)。

と・・。

 
suspend/resume はまるで動作しなくなりました。 suspend してくれます。そのあと resume してくれなくなりました。 12.2-RELEASE の頃は resume 後、画面は真っ暗たけどネットワークが利用できるので ssh してリブートしたり、電源ボタン押すとそのまま poweroff してくれましたが、そういったことはなくなり resume した段階で、シューリョー・・。

あらま・・。

あと、驚いたのが AC アダプタ引っこ抜くとカーネルパニックします。なので FreeBSD を起動したら電源ケーブル (USB Type-C) を引っこ抜くことはできません。

そして poweroff の状態で電源ケーブルが抜かれているときに電源ボタンを押すと FreeBSD は無事に起動します。そして、電源ケーブルを接続するとカーネルパパニックで落ちます。

ACPI の電源周りのコードがまだまだ怪しいのだと思います。お気をつけください。

 
ただ、 13.0-RELEASE にしたおかげで良いこともありました。なんとっ!! デスクトップ機が suspend/resume できるようになりましたっ!!

僕の場合、『Sandy Bridge おじさん』ではなく『AMD FX おじさん』とでも言いましょうか。今でも PRIMERGY MX130 S2 を利用しているわけですが、この PC は UEFI では無く BIOS で動作しています。
なんとっ!! この PC で動作する FreeBSD/amd64 13.0-RELEASE はちゃんと suspend/resume してくれます。ただ、グラフィックスカードが GeForce 210 で、ドライバ的には x11/nvidia-driver-340 を利用しているので resume での復帰後、画面がブラックアウトしてしまいます。が、しかし、これは service sddm restart すれば復活します。

他の AMD 系の古めのグラフィックスカード Radeon HD 5450 辺りを利用するとどうなのかな? とも思うのですが、手持ちがありません・・。 Radeon HD 5450 はその昔利用していたので Xorg が動作することは知っていますが。

 
と、いうことでまさかまさかのデスクトップ機で suspend/resume できるようになっているとは知りませんでした。

 
さてと。話をもとに戻して ThinkPad X13 AMD での FreeBSD/amd64 13.0-RELEASE ですが、上にもある通り Intel Wi-Fi 6 AX200 はまだ動きません。 Windows10 では AX200 を利用していて、 FreeBSD では USB の if_rtwn.ko を利用していました。 Amazon で見つけた RealTek の 802.11a で接続できる USB ドングルを利用していました。

で、ふと思いました。『Intel AX200 使おうとするからダメなんじゃね?』と。では FreeBSD で動作する Intel の WiFi アダプタに交換してしまえーっ!! と。

と、いうことで、調達したのはこれ。

Intel Wireless-AC 9260 で、ウェブで最安値を探していたらメルカリで未使用品が売っていたので、購入してみました。 1,780yen でした。それなりに安い値段でゲットできてホッとしました。いまどき FreeBSD でも利用できる RealTek の 802.11a 用 USB ドングルでも 2,000yen 前後するので、それなら内蔵のほうが良いですねぇ。みたいな。

ただ NotePC の、オンボードに接続されている WiFi アダプタって何回か交換したことあるのですが、別のに換装して電源入れた段階で BIOS が『そんなパーツは知らんっ!!』とか言って PC 自体起動してくれないことを何回か経験したことがあります。

今回もそーなるかな? とか思い下調べしてみると、どうやら ThinkPad X13 は Intel Wireless-AC 9260 は行けるっぽい雰囲気。で、もし動作しなくても最近はお買い物に利用していなかったメルペイの残高で、そこはかとなく安い値段が提示されていたので『行くべっ!!』って感じでした;-)。

 
NotePC の裏ブタ開けて、無線モジュール交換して電源入れたら特に BIOS (今は UEFI か) に怒られることもなくスルスルっと起動しました。
まずは Windows10 で認識して速度計測してみると網内では 500Mbps 程度。 FreeBSD を起動して計測してみると 20Mbps 程度の速度が出たので、まぁ、ヨシとしておきました。 Windows のドライバと FreeBSD のドライバの性能の差がこれだけある。と、いうことですが、確か、シャアは「ドライバの性能の違いが、戦力の決定的差ではないということを・・・教えてやる!」と、言っておりましたなぁ;-P。

pciconf -lv で見るとこんな感じ。 iwm9260fw.ko と if_iwm.ko が kldload され、簡単に動作しました。

iwm0@pci0:2:0:0:        class=0x028000 rev=0x29 hdr=0x00 vendor=0x8086 device=0x2526 subvendor=0x8086 subdevice=0x0014
    vendor     = 'Intel Corporation'
    device     = 'Wireless-AC 9260'
    class      = network

 
余った Intel Wi-Fi 6 AX200 は FreeBSD でドライバが書かれるまで御蔵入りか、メルカリで、今度は売ってしまうか;-)。

それにしても、今まで USB WiFi を接続していた USB ポートがこれで一個空いたことになります。いやっほーっ!!

 
とまぁ、こんな感じでコツコツとやっていくうちに、だいぶベースシステムが動作してくれるようになりました。購入からそろそろ一年が経とうとしているところで、保証も切れていく雰囲気ではありますが・・。

あとの残りは本当に suspend/resume のみになった感じですが AC アダプタを抜き差しするとカーネルパニックするデグレード部分は今後、どうなっていくことやら・・。

それにしても、ほぼ毎日触っている ThinkPad X13 AMD ですが、ほんと FreeBSD でだいぶ動作するようになったことは嬉しいことです。

 
次回、この系統のエントリをかくときは壊れたときか suspend/resume が動いたときだと思われます;-)。

 
あ。思い出したように加筆しておきます;-)。

Windows10 側で FF14 のベンチマーク取りました。そのときのキャプチャをつけておきすますー。

ベンチマーク取ったとしても、ゲームはやらないんですけどね・・。ゲームするなら llvm11 とか rust のコンパイルしてかかった時間をベンチマークとして計測したほうが楽しいよねぇ。みたいな;-P。

8月 232020
 

僕は普段から HHK の USB Lite2 を利用していました。しかし、昔購入したヤツで、かな刻印ありなヤツです。何回もこのブログには書いていますが、僕はカナ入力の人なのです。で、 HHK は『カナ刻印無し』とか、いうモデルばっかりになってしまい、本当に「もうおしまいだぁ・・。」などと思っていたら、PFU は本当に HHK Lite2 の生産を中止したようで、もう二度と多分 PFU の HHK は買うことはないだろう。と、いう事態に・・。

 
では、新しいキーボードをどうするか。実は、 HHK Lite2 の『カナ刻印なし』バージョンが出てからずっと、探していたのですが、「キーボードって、出せて 8,000yenくらいまでかなぁ。」とか思っていました。そして、ちっこくて 106 でカナ刻印。

色々調べたらエレコムの TK-FCM103XBK と、いうキーボード (TK-FCM103BK と、どこが違うのだろう?) がほどほどな値段 (1,000yen をちょっと超える価格っ!!) であったので、とりあえず購入してみました。

 
使ってみた感じは HHK Lite2 より打刻音が小さくて良い感じかな。ベコベコ感は一緒ですね。値段相応ですが 6,000yen の HHK Lite2 とほぼ似たような感じでしょうか。

あ。一点だけ。 USB HUB がないのがちょっと悲しいかな。マウスの USB ドングル (子機部分) をキーボードの USB HUB につけていたのですが、それができなくなった。その点がちょっと悲しい点か・・。

さて。僕がいままで利用していた HHK Lite2 は USB 切換機で FreeBSD (Windows10) と Mac mini で共有していました。 HHK Lite2 を macOS で利用するにはドライバをインストールする必要があり、僕は macOS パックを購入していたのでキートップも Mac 用に換装していたのであります。
しかし、今回購入したキーボードは Windows 用であり macOS 向けではない。 FreeBSD や Windows で利用するには特に問題はないのですが、 macOS で利用すると [無変換]と[変換]キーは macOS では利用できないので、日本語入力のオン・オプができない。その部分をなんとかする必要がありました。

 
ちなみに、僕は macOS での日本語入力には ATOK パスポートを利用しています。 [無変換]と[変換]キーが使えないので、一応 FreeBSD の kinput2 のように (古いっ!! 僕は fcitx を利用しております;-) Shift-Space でオン・オフできるようには設定しました。

が、しかし、探してみると[無変換]と[変換]キーを使うことができるようにするアプリがあるようですね。以下の URL が参考になります。

https://karabiner-elements.pqrs.org
https://github.com/tekezo/Karabiner-Elements

GitHub にソースコードがあり、バイナリは下の URL からダウンロードできます。

ダウンロードして、インストールすると /Applications/Karabiner-Elements.app/ と Karabiner-EventViewer.app/ がインストールされます。
Karabiner-Elements を一回起動します。そしてなにもせず終了します。そのあと、以下のファイルを用意します。

$ cat ~/.config/karabiner/karabiner.json
{
    "profiles": [
        {
            "name": "Default profile",
            "selected": true,
            "simple_modifications": {
                        "japanese_pc_nfer": "japanese_eisuu",
                        "japanese_pc_xfer": "japanese_kana"
            }
        }
    ]
}

 
emacs とか vi で新規に作成してください。そして、再度 Karabiner-Elements を起動すると、トップページに設定ファイルの内容が反映されると思います。

~/.config/ に設定ファイルを入れるなんてのは freedesktop.org チックで中々良い雰囲気ですよねぇ。あ。余談でした;-)。

が、その前に Karabiner-Elements を起動するとセキュリティうんぬんと言われます。「システム環境設定」アプリを起動し「セキュリティとプライバシー」を選択したあと[セキュリティ]タブの「入力監視」メニューからインストールしたモノ (karabiner-*) にチェックを付けてあげる必要があります。

これで[無変換]と[変換]キーが有効になるので、かな漢字システムのオン・オフが有効になり、フツーの macOS 用のキーボードになります。

あ。そーそー。実際に必要な Karabiner-Elements とは別に Karabiner-EventViewer.app というアプリもインストールされますが、んー。僕的には、こーいうのが欲しかった。 Xorg でいうところの xev と同じ機能も持ったアプリになります。xev と同じくキー名とか番号が表示されるので xev 同様、そこはかとなく重宝します;-)。

 
あともう一点。
当然ながら Ctrl キーと CapsLock キーをひっくり返す必要があります。そして、このキーボード特有なのかもしれないですが、 macOS で利用すると Command キーと Option キーが逆な雰囲気です。それぞれをひっくり返す必要があります。

しかし、この辺りの設定は macOS 側でできます。 キーボードの修飾キーをひっくり返すのは OS の標準機能でサポートしているようです。

「システム環境設定」アプリを起動し「キーボード」を選択すると[キーボード]タブの右下に[修飾キー…]があるのでそこをクリックしてキーを入れ替えます。

僕の場合はこんな感じで入れ替えました。

これで Windows 専用キーボードもフツーに macOS で利用可能な状態になりました。

 
結構長い間 PFU の HHK (Lite2 だけど) を使い続けていた (約 20 年くらいかな? PS/2 から USB に切り替えて、今の Lite2 は二個目かな。自宅と職場でそれぞれ使っていたので計 6 台くらい買ったかな。) んだけど、『カナ刻印なし』とかいう (僕的に思うには) 非常にすっとぼけた製品を出してきたので『だめだこりゃ。』感が非常に強かったのですが、今回、ほどほどの価格で、まぁ、そこそこの機能のキーボードが手に入ったのでヨシとしています。
実は、一個購入したあと、三日後にもう一個注文してしまいました。1,000yen ちょっとの価格だし、何個手元にあっても良いかなー;-)。

macOS でも Windows 向けキーボードが利用できることが確認できたし、今回購入したキーボードがエレコムから発売され続ける限り、これを買い続けようかなぁ。などと思っております。

まぁ、僕的にはこんなにお安くなくとも良いのでは?と、ちょっと思っているんですけどもねf(^^;;。

11月 222018
 

久しぶりに Apple の PC を購入しました。今まで使っていたのが MacBook 2009 なので約 8,9 年ぶりくらいですかね。

MacBook 2009 は macOS Sierra で、 Hight Sierra にバージョンアップできなくて困っていたのですが、それについては別途エントリを書く予定なので置いといて、 macOS mojave には対応しなくなるので、いよいよ新製品を購入。と、なったのであります。

それにしても MacBook は遅かった。 Core2Duo 2Core で mdworker が動き出すと CPU 食われまくり。新しい、絶大なパワーを持った Mac mini を買おうとしていたら Apple から 4 年ぶりに発売されたそれのパワーは絶大ですかさず飛び付いた。と、言う感じですね。

 
今回購入したのは intel i7 とメモリ 16GB で SSD は 256GB にしました。これで、消費税込み 19 万 yen コースです。高いなぁ。とは思うのですが、有り余るパワーの Mac が持てて非常に満足です;-)。

 
Mac mini に直接的に購入したのは USB-C の USB HUB 二個ですね。 USB ポートが少ないので USB-C の口にゾロゾロと色々接続するために購入しました。

その他、 Mac mini を利用するときに気付いた点を少々。

 
o. T2 チップ内蔵でスリープ状態が解らない
これはあちこちで書かれていますね。本体がスリープしてもフロントの LED が点灯しっぱなしでスリープしているのか解らない。
ディスプレーが省電力モードに移行していると『あ。寝ているね。』と、判断するしかないですかね。

 
o. Siri 起動
『へい。しり。』って言っても macOS は Siri が起動してくれない。コマンドキー+スペースキー長押しで起動しますが、そもそも Mac mini にはマイクが付いてないので意味ないじゃーん。と、いうことになるのですが、僕の場合、以前 PC 用に購入した USB サウンドカードがあったのでそれを接続し、その昔 Pod Cast やろうとして購入した SONY のステレオマイクがあったのでそれを接続しました。
これで Siri に対して色々聞くことができるようになりました。

しかし、上の項目にもマッチするのですが、 USB サウンドカードは電源が供給されていると LED が点灯するんですね。なので、 Mac mini がスリープしたか起きているかは USB サウンドカードを見るとこで確認できるようになり、一石二鳥なのであります。

こんなのを利用しています。

 
o. CPU パワーすげー。
僕は Mac のリソース確認のために MenuMeters と、いうのを利用しているのですが、 CPU コアが 6 個、 HTT 対応で計 12 Core に見えるのは圧巻です。今までに利用した PC は AMD の FX-6100 が 6 Core で最高だったのですが、Mac mini が一番コア数の多い PC になりました。

おかげでサクサク、コンパイルもサクサク、上にも書いた通り mdworker どんと来やがれ状態です;-)。

 
o. epkg も動いているよ
以前、このブログにも書いていますが、epkg を /usr/local/ 配下にインストールして動作できる環境を整えています。

なので、FreeBSD の ports 的に、自分で必要なものは自分で make && make install して利用しています。もし良ければ使ってみてください。

https://icmpv6.org/EPKG/

epkg を作成する上で、今回一番困ったのが、最近の macOS から ftp コマンドが消えている。と、いう点です。しかも wget がないのでどうやってファイルを取ってくるのだ?と、なるのであります。

epkg-mojave-20181203.tgz には epkg で作成した wget のバイナリも入れておいたので epkg install すれば良いと思います。
自分で Makefile を書いてコンパイルしてバイナリを作成したのですが、一応 OpenSSL も enable しています。 なので上記 URL からも色々取って来られると思います。

自分でソースからコンパイルすると、やっぱり楽しいですねぇ。 epkg の Makefile には make -j 12 と書かれたモノが何個かあるかもしれないです;-)。
cmake とか emacs などは make していて気持ちが良い;-)。

 
新しい Mac mini はこんな感じてでしょうか。コンパイルメインに利用しているなんて、いかにも間違った使い方かもしれませんが、他の人とは違う使い方を書いているのでまぁ、ヨシとしておきましょう;-)。

 
さてと。今回は Mac mini の他にディスプレーも買い替えてしまいました。今まではフルハイビジョンの 21.5 インチのディスプレーを約 10 年くらい利用していたのですが、そろそろ買い替えどきかと思い 4K にするか、悩んだのですが、2K で表示する 23.8 インチのものにました。

Mac mini から 2k (2560×1440) サイズは利用可能でず。ただ、MacBook 系とは違い文字サイズの変更ができません。

「システム環境設定」から「ディスプレイ」を選択し、[解像度]を[変更]しても文字サイズを変更するメニューが出ないのであります。なので、 2k サイズで利用する場合にはちっこい文字での表示となります。

あ。今回購入したディスプレーは IO-DATA の EX-LDQ241DB です。 NTT-X で購入したのですが、僕の場合はタイミングが良くクーポン券が付いていて 19,980yen で購入できました。ずいぶんお得で助かりました。

 
とまぁ、こんな感じで macOS を利用する環境が新たに整ったので、今後はガシガシ使い込んで行きたいと思います。

何か気付いた点が、今後出てきたらまた何か書きたいと思います;-)。

4月 302018
 

ゴールデンウィークの前半に秋葉原に NVIDIA GeForce GT 720 と 1TB の 3.5 インチの HDD を買いに行きました。古い PC (Athlon64 X2) で FreeBSD を動作させるためですね。
FreeBSD の場合 AMD (ATI) のビデオカードより ports の x11/nvidia-driver-340/ で動作する NVIDIA の NIC のほうが安心して 3D グリグリできるんですね。

で、お買い物終了後、アキバ散策していたら、新しくジャンク屋さんがオープンしていたのでちょっと覗いてみました。そしたらなんとっ!! PCI のグラフィックスカードの新品が 200yen で売っていたので購入してしまいました。当然ジャンク扱いですが。

購入したのはこんな感じ。もう一度繰り返しますが 200yen で、新品です;-)。

グラフィックスチップは往年の ATI の Rage XL です。メモリ 8Mbyte だそうです。うひひ。

今回再利用しようとしている古い PC には PCI スロットがあるので、この 200yen のグラフィックカードで X が表示できると嬉しいなぁ。などと思い、早速試してみました。

# X -configure
...

 
あらら・・。残念ながら、Xorg の -configure では自動的に xorg.conf を生成してくれないようです。挙句のはてには vesa ドライバが選択されました。
古いビデオカードは X -configure で xorg.conf が生成されないのかななぁ・・。

あと、サイズ的にはフル HD の 1920×1080 サイズで表示して欲しいんですけど・・。

やっぱりメモリ 8MB のグラフィックカードでは無理かなぁ?

あまり、格闘せずにさっさと NVIDIA GeForce GT 720 にしてしまったけど、あきらめがちと早いかな。まぁ 200yen だしなぁ・・。

 
話は突然変わりますが、今回購入した NVIDIA GeForce GT 720 を PRIMERGY MX130 S2 の PCI-e BUS にさして電源投入してみましたが、一回 BIOS 画面が出ただけで、まともに表示してくれませんでした。
今まで NVIDIA GeForce GT 210 を利用していたときは無事に起動してくれていたのですけどねぇ。多分電力量の不足が原因なのでしょうなぁ。 AMD FX-6100 な 6Core の CPU 載っているしなぁ。

と、いうことで古い PC の再利用は NVIDIA GeForce GT 720 で決定です。

4月 222018
 

奥さんが利用している PC は Athlon64 X2 で 10 年くらい前の自作。最近電源が怪しくなって来たのか、突然凍りついたりする機会が多くなってきたので、そろそろ寿命かなぁ。などと思っていたのであります。

で、何かほど良い大きさの PC は無いものか探していたら、 Lenovo V525 が手頃な値段で売っていたので飛びつついてしまいました。

ウェブサイトでクーポン使えて TBO でカスタマイズして一番安い構成にしたらなんとっ!! 28,000yen でした。

大きさは Micro ATX で奥行きがなく短く、そして軽い。筐体的にはこんな感じ。

TBO で選択した構成は以下のような感じ。

  • CPU は一番貧弱な AMD A6-9500 だけど SocketAM4 なので将来性あり
  • メモリ 4GB (届いた PC は PC4-2666V DDR4 だった)
  • CD-ROM なし
  • メモリリータ無し
  • キーボード・マウス無し

ホームページではメモリは PC4-19200 DDR4 SDRAM とか書かれていたけど、中を開けて、実際に確認してみるともっと良いメモリだったので驚きました。

中を開けた写真。

自分で 4GB なメモリを別途購入し、計 8GB にしようかと目論んでいたんだけど、いやぁ・・。 PC4-2666 DDR4 SDRAM で 4GB x1 のメモリってのは中々売ってなくて、 4GB x2 を買うとなるとかえって割高になるのでどうしようか、悩み中・・。

困ったのはこれくらいかな。 OS 込みで 28,000yen なのでむちゃくちゃ安い。今回購入した PC は当面は FreeBSD のインストール予定はないのでこのまま Windows10 を使い続ける予定なのであります。

 
ところで AMD は Intel と違って着替え目で、 CPU inside のシールは前面ではなく、側面の下のほうにテロっと貼ってある状態だったのであります;-)。

よしよし。継続して Intel の CPU は使っていないぞ;-)。

3月 292018
 

以前のエントリで「FreeBSD で if_urtwm を使ってみる。」と、いうエントリを書いているのですが、今回はそれの続編です。と、いうか、僕は USB の Wi-Fi ドングルが好きなようで、今までにもこのブログでは何回か書きました。

最近は REALTEK の USB Wi-Fi ドングルは 802.11a の 5GHz 帯に対応しているものが多いので FreeBSD でもその恩恵にさずかりたいものだ。などと思っているのですけども。

 
前回の USB 接続機器はずいぶんと大きかったのですが、今回は手頃なサイズの USB 機器です。まずは写真を。

でもってこっちがパッケージ。僕の場合 Windows10 で動作確認する前にまずは FreeBSD に接続して確認するのですが、ご多分にもれず、今回も素直に ugen に落ちました(^^;;。

パッケージやドライバ DC の印刷を見てみると REALTEK の RTL8811AU というチップが使われているようです。

で、以前掲載した GitHub を見に行くと・・。おやまぁ。カーネルモジュールのは FreeBSD 12-CURRENT に対応した patch になっているようです。で、ちょっと違ったところを見に行くと、おぉ。 FreeBSD 本体に commit されたのかしら? 新しく rtwn_usb というカーネルモジュールになるようですねぇ。
もう少し待てば、自分でコンパイルせずとも、 OS 標準で利用できるようになるのかもしれません。

 
さてと。今回購入した USB Wi-Fi ドングルですが、仕様としては REALTEK RTL8811AU ですが、 if_urtwm.ko は RTL8821AU 対応です。大丈夫か? などと思い試しましたが、すんなりと動きました。

まぁ、当然の作業として if_urtwm.c にはエントリを記述して、 usbdevs にも product ID を登録する必要があるんですが。

o. if_urtwm.c に記述する行

        URTWM_DEV(REALTEK,      RTL8811AU),

 
o. usbdevs に記述する行

product REALTEK RTL8811AU       0xa811  RTL8811AU

 
これで利用可能になりました。

 
以前のエントリで試した AUKEY の AC1200 というのは USB3.0 接続でチップセットが RTL8812AU でしたが、今回のは USB2.0 で RTL8811AU なので、もしかしたら一個古いチップで USB2.0 対応なのかもしれません。

 
電波が外にもれない(と思われる)部屋で動作確認をしたところ、200MB のファイルを転送してみると 50Mbps 程度でいたので、ずいぶんと速度が速い USB WiFi で、それが FreeBSD で体験できることにある意味感動を覚えました;-)。

 
あ。FreeBSD で 802.11a を利用する場合 /etc/rc.conf のネットワークの設定のところにおまじないを書かないと動作しないようです。

o. /etc/rc.conf の記述例

wlans_urtwm0="wlan0"
ifconfig_wlan0="WPA DHCP ssid AP802-5 mode 11a country J5"
#ifconfig_wlan0="WPA inet 192.168.1.100 netmask 255.255.255.0 ssid AP802-5 mode 11a country J5"

 
上記の設定は SSID: AP802-5 という 802/11a (もしくは 802.11ac) の AP に接続するときの設定ですが、どこの国で接続するか指定してあげないと正しく動作しないようです。おかげでサクサクと動作しているー;-)。

今後は安定的に動作していることを確認して行きたいとは思うのですが、こってりと利用するのはちょっとはばかれるので、動作確認のみ。と、したいと思います。

9月 102017
 

Amazon で USB Wi-Fi の子機が安く売っているのを発見し、購入しました。 AUKEY の AC1200 というヤツです。似たようなのを出しているメーカ名は色々あって Wavlink だとか、型番が WF-R6 というものだったりします。きっと OEM なんでしょうね。フツーの価格が 2,980yen で、クーポン利用で 999yen だったのでラッキーです。もう一個買おうかなぁ。

届いたのはこんな感じ。壁掛けパッケージです。そして、実物はこんな感じ。ずいぶんと大きいです。

USB の子機は 802.11 b/g/n/a/ac に対応しています。僕が購入した USB Wi-Fi 子機では初めての a (5GHz 帯) 対応です(僕は ac な AP は持ってない)。親機にもなれるようですが WindowsOS の場合はユーティリティをインストールしないとダメなようです。なので、自分的には子機専用で使う予定です。

利用しているチップは REALTEK の RTL8812AU というモノらしいです。 Windows10 Creators Update ではドライバなしでサクっと認識され 5GHz 帯のアクセスポイントにすんなり接続できました。
Cisco の EAP などに接続するためにはメーカサイトからドライバをダウンロードする必要があります。
ドライバはこの辺りのが使えるかな。 WN688A2–CD_WLAN_V6.85 のドライバをダウンロードすると良い感じです。

WindowsOS で 801.11a で接続して速度の検証してみたところ 802.11n の FreeBSD で言うところの if_run (Ralink のチップ) の機器の倍以上の 100Mbps 程度で通信することを確認しました。

 
さてと。これが FreeBSD で動作するのか、早速試してみました。

REALTEK の RTL8812AU は FreeBSD では対応していないようでドライバがありません。 REALTEK チップのカーネルモジュールとしては if_urtwn.ko がありますが、これでは動作しません。
で、ウェブで調べていると GitHub にカーネルモジュールがあったので、今回はそれを試してみました。

GitHub から urtwm-master.zip をダウンロードして適当なディレクトリに展開します。そしてその中にあるパッチを適用します。 usbdevs に適用するパッチになります。あとは、同梱の README.md を読んでその通りにやるとコンパイルが通り、インストールも無事に完了です。

インストール後は /boot/modules/ に urtwm-rtl8812aufw.ko urtwm-rtl8821aufw.ko if_urtwm.ko が配置されます。そして、それらを kldload すると利用可能な状態となります。
僕は普段から if_urtwn.ko を利用しているので、以下の設定が /boot/loader.conf に書いてあります。今回も必要かもしれません。

legal.realtek.license_ack="1"

 
さてと。カーネルモジュールのコンパイル時のとこをはしょりすぎているのでちょっと書きますが GitHub からダウンロードしたソースコードは 11.0-RELEASE 以降のカーネルソースが必要になります。

僕は FreeBSD/amd64 では環境が整わず FreeBSD/i386 と FreeBSD/arm で検証しました。

それにしても FreeBSD の 10 系 RELEASE と 11 系 RELEASE では USB 周りのソースの配置がガラっと変わりましたね。 10 系までは /usr/src/sys/dev/usb/wlan/ などにモジュールのソースがあったのに 11 系では /usr/src/sys/dev/ 配置されるようになりました。他にもカーネルのコードが変わっているので 10 系 RELEASE では if_urtwm はコンパイルできません。是非とも 11 系 RELEASE を用意しましょう。

 
と、いうことで if_urtwm* のコンパイルが通ったので使ってみることにします。一番最初に試したのはなんと Raspberry Pi 2 Model B の FreeBSD 11.0-RELEASE-p1 です。 USB Wi-Fi の子機は USB3 に対応しているのですが Ras Pi2 は USB2 にしか対応していないので性能が出ないんですが・・f(^^;;。

ザクっと USB ポートにさしてみると ugen に落ちて認識しません。あらら。僕が購入した AUKEY の AC1200 の情報を usbdevs に書いてあげる必要があります。

と、いうことで以下の行を /usr/src/sys/dev/usb/usbdevs に記述してあげます。 VendorID は既に登録済みだったので ProductID のみ記載します。

product REALTEK RTL8812AU      0x8812  RTL8812AU

 
あと、ソースコード中にも記載してあげる必要があります。 urtwm-master/sys/dev/urtwm/if_urtwm.c に対して以下のパッチを適用します。

--- sys/dev/urtwm/if_urtwm.c.orig       2017-09-07 18:59:06.031051000 +0900
+++ sys/dev/urtwm/if_urtwm.c    2017-09-06 20:51:41.749003000 +0900
@@ -128,6 +128,7 @@
        URTWM_RTL8812A_DEV(SENAO,               EUB1200AC),
        URTWM_RTL8812A_DEV(SITECOMEU,           WLA7100),
        URTWM_RTL8812A_DEV(TRENDNET,            TEW805UB),
+       URTWM_RTL8812A_DEV(REALTEK,             RTL8812AU),
        URTWM_RTL8812A_DEV(ZYXEL,               NWD6605),
        URTWM_DEV(DLINK,        DWA171A1),
        URTWM_DEV(DLINK,        DWA172A1),

 
これで、再度コンパイルしてインストールします。今回購入した USB Wi-Fi 子機は REALTEK の RTL8812AU というデバイスとして認識されるようになります。

kernel: urtwm0 on uhub0
kernel: urtwm0:  on usbus4
kernel: urtwm0: MAC/BB RTL8812AU, RF 6052 2T2R

 
で、 FreeBSD/arm 11.0-RELEASE-p1 と FreeBSD/i386 11.1-RELEASE-p1 で試してみましたが、残念ながら 802.11a では接続できませんでした・・。orz

ただし、 802.11n では動作しました。こちらのほうはかなりの速さで、一応 30Mbps くらい出ました。 USB 子機が大きくてアンテナがちゃんとしているからでしょうかね。
WindowsOS では 802.11a で利用できるのですが、残念ながら FreeBSD では 802.11n だったですが、速度が出るのでヨシとしておくかぁ。と、いう感じでしょうか。 NotePC には大きくて常用は厳しいですが Ras Pi2 には良いかもしれんです。

USB3 へ接続すると 802.11a で通信できるのかなぁ? 今回はその環境がありませんでした。

あ。 /etc/wpa_supplicant.conf とか /etc/rc.conf の記述方法は今回ここでは書きませんが、大丈夫ですよね?

 
自宅の ThinkPade145 は USB3 が動作するのですが、この NotePC はカーネルのみが 10.1-RELEASE のままなので今回のカーネルモジュールはコンパイルできません。 syspend/resume を取るか、最新の FreeBSD を取るか悩ましいところではありますが、僕の場合は suspend/resume のほうが重要。なのでバージョンアップはしていません。

 
と、いうことで GitHub から拾ってきた if_urtwm のカーネルモジュールですが、一応は動いている。ということになります。if_run も if_rum も if_urtwn も、今までは 802.11n 対応だったので今回 FreeBSD で初めての 802.11a のドライバ。と、いうことになるかと思われます (僕の試した環境では接続できなかったけど・・)。

if_urtwm はどんなデバイスがあるのか? というのは上のパッチを適用したソースコードである sys/dev/urtwm/if_urtwm.c の中に書いてあるので、試してみたい方は一回覗いてみると良いかも知れません;-)。

2月 022017
 

IT 系のニュースサイトを会社でお昼休みに見ていたら Amazonセール速報:本日限りの特価! と、いうのを発見。かねてより会社で使うためのマウスを探していたので、すかさず購入しました。

購入後、次の日には届いたので早速使ってみることに。が・・。あたたたたた。使えることは使えるんだけど、ホイールが軽すぎて真ん中ボタンを押したら上下にホイールしてしまう状態である意味全然全く使えない。

例えばブラウザでとあるサイトのアンカータグを真ん中ボタンでクリックすると新規タブで開いてくれるんだけど、真ん中ボタンを押した表示されているコンテンツが上下にズズズと動いてしまう状態。全然使えないじゃん・・。

と、いうことで届いたその日のうちに分解。何とかカスタマイズできないかなぁ?などと思うわけです。分解の手順は至って簡単。

1. 電池を抜きます。
2. すると電池の溝の影のところにネジが一本あるのでそれを抜きます。
3. 裏ブタを下にずらしつつ上のほうのロックが外れる。
4. 上ブタのボタンのコネクタを爪などで抜きます。

以上で分解完了。

ホイールの部分を眺めてみるとどこかでテンションというか抵抗を付けてあげるとホイールの回転が渋くなるのになぁ。と思います。それに相当するのが、あったー。

写真でいう針金のようなものがホイールを回り込んているようです。

これを曲げてホイールに対して抵抗を作ってあげるとクルクル回る現象はある程度回避できそうです。
針金は本体プラスチックの爪で固定さているので横 (右ボタン側) にずらして外します。このときスプリングがびよーーんっ!! とどこかに飛んでいってしまうので注意が必要です。

抜き出した針金はこんな感じ。

これを、ちょうど良い硬さのホイールになるように曲げてあげます。僕はラジオペンチで曲げつつ調整しました。ビタっとしたちょうど良いホイールの硬さにするために三回くらいトライしました。もし、このエントリを読んだ人が同じことをする場合は、自分の感覚を信じて色々曲げてみてください;-)。

と、いうことでホイールは無事にちょうど良い硬さになり、ホイールの真ん中ボタンを押してもコンテンツが上下にブレる。と、いうことから開放されたのでありました;-)。

 
と、いうことで、これだけで終わってしまったらただ単にフツーの、そこいら中にある分解・改造の記事になってしまうので一歩踏み込みます;-P。

まず、僕の PC の環境についてですが、キーボードとマウスは二台の PC で共有しています。 USB 切替器で FreeBSD と Widnows10 を行ったり来たりしている状態です。

で、この Logicool の M5454 というマウスはホイールが前後に回転する他に左右に倒すことによってイベントが発生するようです。しかも右側には更にボタンが二つあります。

パッっと思いつくのは『このボタン達は FreeBSD で使えないのかな?』と、いう点。 Windows10 の場合は専用ドライバをインストールすると、ホイールの左右方向と左側の二個のボタンには色々な動作を割り当てられます。

これを FreeBSD+Xorg で似たようなことできるのかな?とか思い、ちょっと調べてみました。

まずは Xorg のマウスの設定。

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
        Option      "ButtonMapping" "1 9 3 2 2"
EndSection

 
最後に ButtonMapping と、いうオプションを付けてみました。

オプションの数値はボタンの番号を表しています。ボタンの番号は xeve で取得できます。数値が “1 9 3 2 2” となっていますが、これは “左 左横前 右 ホイール ホイール” の各ボタンを指しています。
動作的には “左ボタン 真ん中ボタン 右ボタン ホイールの前 ホイールの後” ということになります。 FreeBSD のマウスによるペースト動作を左横前ボタンで代用する。と、いう設定ですね。

さてと。X を再起動して /var/log/Xorg.0.log を眺めてみましたが X からは ButtonMapping の設定がまるで無視されていました・・。orz

 
次に FreeBSD の ports で何かないんかい?と思い調べたのですが x11-drivers/xf86-input-evdev という、 X のドライバでマウスの様々なボタンに対応できるらしい。とのことで調査開始。

Linux では動作するらしいですね。 /dev/input/* なデバイスを利用するとマウスで色々なボタンが利用できるようになったり、Logicool M565 などは専用カーネルモジュールがあるようで。

FreeBSD ではまだ evdev.ko なるカーネルモジュールがないので実質的に xf86-input-evdev は利用できないようです。 CURRENT で現在検証中らしいのですが、それ以上は追うのはやめました。

 
と、いうことで FreeBSD においてはフツーの無線の USB マウスとして利用しようとおもった矢先、ブラウザでとあるサイト見ているときにホイールを左右に振ってみると。あれれ?

ホイールを左に振ると戻るボタン
ホイールを右に振ると進むポタン

と、して動作するようですねぇ。あれれ? X で制御しているのかな? KDE 側で対応しているのかな?あれあれ? ソースコード追ってません。すみません。ただの動作確認のみですf(^^;;。
一応 firefox rekonq では上記のように動作しました。 konqueror では動作しませんでした。

xmodmap で進む・戻るボタンが設定できるようですね。詳細は書きませんが。 evdev が動かなくても xinput などでも色々設定が可能らしいです。ここでは詳細は書きませんが。

まぁ、珍しい機能が動くモノだ。と、いうことで Windows10 側でもドライバユーティリティで設定を FreeBSD に合わせた。と、いうことで、二つの OS で動作が一緒になったのでありました;-)。

 
今回はマウスを一個購入して、エントリを書いていますが、タネは二つ。

・ホイールクルクルがイヤな人は分解して針金曲げてみましょう
・FreeBSD ではホイール左右で戻る・進むが動作する

と、いうことですね。中々楽しめた一品だったのでありました;-)。

あ。お約束ですが、『分解』することになるので、自己責任でお願いしますね。

9月 112016
 

ドスパラの手頃な値段の Windows タブレット Diginnos DG-D08IWB 32GB ですが Windows10 にアップデートして使っていたのですが、とあるタイミングで shutdown したら、起動しなくなってしまいました。

o.電源ボタン押しても起動せず。
o.電源ボタン長押しでも起動せず。
o.電源ボタンと音量アップボタン同時長押しでも起動せず。
o.電源ボタンと音量ダウンボタン同時長押しでも起動せず。
o.USBポートにマウスを付けても LED が光らない。

もうダメダメじゃーん・・。 orz。

バッテリーの残量が少ないと起動しない。と、いう話はあちこちに登場します。起動しなくなったあと、ずっと充電している(赤い LED が点いていた)ので多分フル充電状態だと思われます。
MicroUSB ポートに変換ケーブルを挿して USB マウスを接続しても USB マウスの LED が光らないのはきっと MicroUSB ポートに電通されていないからだろう。などと思うわけです。

で、ウェブで調べても特に復活させる情報が無い。が、しかし、唯一、

o.マザーボードとバッテリーを繋ぐケーブルを一旦抜き差しすると復活するらしい。

と、いうのを見つけて、もう、ホトホト諦めつつ殻割りすることを決意。保証はもう既に切れているのでできる芸当ですが・・。

しかし、更にウェブで調べてみても DG-D08IWB を殻割りした。と、いう情報は無い。困ったなぁ。ヒトバシラーかぁ・・。などと思いつつ決行っ!!

まずは無事に殻割りが完了した写真っ!! v(^^)。

img_5160_dg-d08iwb_1

グリグリと裏の鉄板をはがしました。鉄板というか、一応、高級感を出しているアルミのバックパネルを引っぺがしました。

本体と裏のアルミのバックパネルは接着剤でくっついていて、それをはがした。と、いう感じです。
上の写真で黒い部分に白っぽいムラが見えますが、接着剤の固まったヤツです。

MicroUSB スロットのあるところが唯一のアクセスポイントです。そこからバックパネルを取りにかかります。
今回利用したツールはマイナスドライバーとピンセット。

img_5165_dg-d08iwb_3

ピンセットの手元の部分を MicroSD スロットの横の空きスペースに突っ込んでグイグイと上に持ち開けます。するとアルミのバックパネルの接着剤が浮くので、時計回りにマイナスドライバーでグリグリと引っぺがしにかかります。

ぐるっと一周して。ベコンと取れました。ふぅ・・。取れた状態が一番最初の写真になります。

今回はパカっと開けることが目的ではないのでその後継続して作業を進めます。バッテリーとマザーボードが接続されているコネクタを一回引っこ抜いて再度接続するとマザーボードに対してリセットがかかって復活する(あー。僕的には情報ソースが発見できませんでしたが、一応トライしてみる。と、いう暴挙に出ています;-)。と、いうことだったのでその通りやってみるとこにします。

img_5174_dg-d08iwb_3

ケーブル類は黒いテープで覆われていたのでとりあえずテープをはがします。カメラの下の部分にあります。上記写真だと右側の、マザーボード側が白でバッテリー側が黒いソケットの部分を外します。
マイナスドライバーとピンセットを利用して外し、完全に外れたことを確認したあとに再度接続します。

これだけの作業ためにアルミのバックパネルを外したということになります。orz。

 
さて。ケーブルを抜き差ししたあと、電源ボタンを押すと・・。あぁら。あっと言う間に起動し Windows10 が何事も無かったのごとくブートしました(@_o)。

本当にマザーボードとバッテリーのケーブルを抜き差しすることでハードウェアリセットがかかったのね・・。

Windows OS 的にも特に問題無く動作しています。

と、いうことで無事に復活したのでありました。良かったぁ・・。

 
けど、接着剤でくっついていたアルミのバックパネルをはがしたので、その後、再度接着剤で固定するか、悩ましいところではあります。僕の DG-D08IWB 32GB はケースに入れているので、とりあえずは養生テープで固定してケースに入れて利用することにしました。今度また同じ状態になったときのことを考えると・・。

 
と、いうことで Diginnos DG-D08IWB 32GB の復活方法を記載しましたが、最後にお約束の言葉を書きますね。僕はたまたまうまく行ったけど、自己責任でお願いします。分解して動かなくなっても、保証が効かなくなっても僕は一切関知しません。
自己責任でお願いします。

5月 262016
 

ちょっと前のエントリでZSUN Wi-Fi 付きカードリーダーを購入してみました。というのを書きました。

Wi-Fi の USB メモリとしては利用できるんだけど、ZSUN の Wi-Fi に接続すると外部ネットワークにアクセスできなくなるのであまり使えない。と、いう結論でしたが、実は回避策が見つかったので、ちょつとエントリを書いてみます。

 
前回のエントリでは ZSUN のアプリを起動して下のメニューに iPhone では “Internet” 、 Andorid では “Bridge Internet” という項目があるのでもしや!? とか思ったけどやっぱりダメだった。と書いています。

しかし、iPhone では 3G/LTE に接続しつつ Wi-Fi にも接続できる機能というか、ワザがあったのですね。

二つのネットワークを同時に利用するには片方の default gateway を設定しないことがじゅーよー。

この点に尽きます。基本的には 3G/LTE 側に defaut gateway が設定してあるとした場合、 Wi-Fi 側のネットワークからは defaut gateway を削除しておくと Wi-Fi 側にはリンクのアドレスに対して通信が行える。

と、いうのがどうやら iPhone の仕様のようですね。

では実際にどうするか? ですが、簡単です;-)。

1). 3G/LTE で通信可能な状態にしておく
2). Wi-Fi をオンにして ZSUN Wi-Fi USB アダプターの AP に接続する
3). ZSUN Wi-Fi USB アダプターの AP に接続したあどは静的 IP アドレスを設定する
4). 固定 IP アドレス設定時 default gateway を空白にする

これでけです。上記のように設定すると 左上の Wi-Fi の扇子のマークが消えて 3G/LTE の状態が表示されます。しかし、この状態でも ZSUN Wi-Fi USB アダプターにアクセス可能で、Disk の中身も確認できて、音楽も聞ける状態になります。

IMG_4211_ZSUN_WiFi2_1

キャプチャはこんな状態です。

ZSUN Wi-Fi USB アダプター本体のアドレスは 10.168.168.1 なのでそれ以外の IP アドレスを設定すれば問題ありません。

なるほどねー。こーいうワザがあっのか。って感じですが、これで ZSUN のディスクの中身に ZSUN アプリでアクセスしつつ、その他のアプリではネットワークは 3G/LTE 側に抜けていくので、同時に両方のネットワークが利用可能な状態。と、いう環境が作れました。良かったですねぇ;-)。

この技は iOS を利用していると、ありとあらゆる場面で利用可能な可能性を秘めているですよね;-)。

 
さてと。上記は iPhone6 の iOS 9.3.2 でのお話ですが Android 4.4.2 ではどうか? というのを ZTE Blade Vec 4G で試してみました。

Wi-Fi で静的アドレスを利用する設定があるにはあったので早速設定してみましたが、 Android 4.4.2 のネットワーク設定では “ゲートウェイ” と “DNS1” は空白にすることができないですね。ゲートウェイの設定では何かしら値が入ってないとダメのようで、試しに 0.0.0.0 を指定してみましたが Wi-Fi 側のネットワークを利用してしまうようです。
DNS1 に至っては空白にすると勝手に 8.8.8.8 が設定されてしまう。ウギャーっ!! さすが google 謹製の OS だわぁ。

IMG_4212_ZSUN_WiFi2_2

キャプチャはこんな状態です。

と、いうことで、今回のエントリのネタは iOS にしか有効にならない。と、いうことになりました。 Android の場合には “Bridge Internet” の機能が動作するようになることを祈るだけですね。

あ。 Nokia Lumia620 の Windows 10 Phone では試してないな。とわ言いつつ、技適通ってない機器なので成田の出国カウンターの向こう側で試すしかないか;-)。