Surface ProのHackintoshが欲しい!

じゃんくはっく
じゃんくはっく

ふとしたきっかけでMS製のPC、SurfaceProに興味が出たのよ!

当然、中古ジャンクよね?

ぴー
ぴー
じゃんくはっく
じゃんくはっく

えー(笑)5台を調達しました。

好きねー!で、ベトナムに持っていったの?

ぴー
ぴー

MS製ノートPCの代名詞、サーフェイス(Surface Pro)です。今までこのPCには興味がなかったのですが、とあるYouTubeの動画を見たらめっちゃ欲しくなりました。その動画はmacosを入れてタッチペンでお絵描きしていたんですよね。まずは見てみてくださいな。

 この動画では、Surface Pro7 を使っています。Windowsとベンチマーク比較しているのですが、macosのほうが速いみたいですね。

ということで、俄然このノートPCが欲しくなりました。はい、理由は単純。「macosでタッチ操作してみたい」が動機です。液タブみたいに使えるのか?など疑問がいっぱいで、その確認してみたい気持ちが抑えきれなかったというやつです。

以下画像は、予算の関係でSurface Pro6や5でのHackintoshした画面です。

まだ調査中で、使い出して間も無いのですが普段仕事でmacos使いのエンジニアがこのマシンをどのように感じるか? また、どのような使い道があるのか? などのレポートを長期で書いてみたいと思います。

まずは、Surface Proの中古相場を検討する

普段はベトナム・ホーチミンに滞在しているのですが今は年末なので一時的に日本に帰国しています。日本には、ヤフオクやメルカリがあるので中古機器をゲットするには最高の環境なんですよね。

 で、今までMS製のSurface Proはオフィスでは他人が使うのを見たことがありますが、自分では使ったことがありません。印象としては、キーボードがペラペラな壊れそうなPCだなーっていう印象しかありませんでした。実際、外部モニター出力の接触は悪くなっている筐体がたくさんあったようで、MTG時にモニターに接続するときは結構大変みたいでした。あと、キーボードはタワむとその人は言っていました。

 しかし、中身(OS)をHackintosh化してmacosで運用できるなら話は別です。ヤフオクであれこれ物色した結果、機種にもよりますが、画面割れは5000円〜2万円くらいです。正常な個体は、1万円〜5万円くらいはします。まだSurface Pro7+ は新品も売っているようですね。

 この筐体選びは、かなり重要で本当はSurface Pro7か7+が欲しかったのですが予算の関係で落札できませんでした。ということで、Surface Pro5と6 を検証していきたいと思います。

Hackintosh化できるSurface Proは?

いろいろと調べていくうちに、Surface ProをHackintosh化するには一番良いのが、Surface Pro7 または、ストレージが拡張できるSurface Pro7+ が良いようです。そもそもSurface Proは型番がたくさんありますのでWiki見た方が速いです。

ざっくり説明すると、2017年に発売されたSurface Pro(無印)がSurface Pro5とかSurface Pro 2017とか呼ばれています。なんでこの時の製品名に5が付かなかったのかは知りませんが、これ移行は、6・7・8・9とSurface Proの後ろに番号が付くのが製品名になっています。Hackintosh化するにあたり、Surface Pro7か、Surface Pro7+ が最適解かと思います。理由は後で。

Surface Pro7(とプラス)は結構人気で、3万円以上になってなかなか希望額では落札できませんでした。特にプラスがついたモデルはストレージがマザーに直付けじゃなく後から交換できるタイプで、相場は4〜5万前後することもあります。安い時は3万円台くらいで買えるかもです。

イオシスの新春特売でまずは2台ゲット

 何回の落札に敗れ、落札できず仕舞いでした。こうなるともう末期患者です。(笑)

そうこうしている内に、Surface Pro5(正式な型番は5がつかないもので、2017製)が、新春特売で売られていたので店舗へ足を運んでみることに。イオシスの特売です。

 (1) surface pro5 4G/128GB Core m3-7Y30・・・16777円
 (2) surface pro5 LTE 8G/256GB i5-7300U・・・30000円

(1) を買うはずが、衝動買いで(2) も買ってしまいました。LTE通信に興味があってタイプカバー日本語もついていたので、ついつい。

スペックは以下のWIKIを見るとわかりやすいです。

 WIKI:Surface Pro シリーズ(LINK

Windows10でGeekbench5 を走らせた結果が以下です。

Windows10でGeekbench5 を走らせた結果

(1) surface pro5 4G/128GB Core m3-7Y30・・・16777円

こっちは印象としては、Winマシンとしては辛そうです。macとしては入れてみないとなんとも言えませんが、用途を限定して使う感じになりそうですね。

(2) surface pro5 LTE 8G/256GB i5-7300U・・・30000円

まぁまぁ似たようなスコアですね。メモリが8GBってのとDISKが256GBあるのが嬉しいです。人にもよると思いますがちょっとした用途なら、これで問題ない感じです。

macos12でGeekbench5 を走らせた結果

(1) surface pro5 4G/128GB Core m3-7Y30・・・16777円

 

(2) surface pro5 LTE 8G/256GB i5-7300U・・・30000円

 

ヤフオクでも落とす

ウォッチリストに入れて観察すること1週間。なかなか希望のは落とせませんね。人気です。結局、以下をゲットしました。

(3) surface pro6 8G/128GB i5-8350U・・・10000円(画面割れ大)

(4) surface pro5 LTE 8G/256GB i5-7300U・・・8000円(画面割れ小)

Surface Pro7かプラスが欲しかったのですが、安くはないですね。まぁ、仕方ありません。ベトナム帰国までに落札して配送完了する必要があったので、今回はSurface Pro7は諦めました。

 全部で、5台を調達しました。Surface Pro6 のGeekbenchは以下です。今あるSurface Proの中では一番スコアが良いですね。

(3) surface pro6 8G/128GB i5-8350U・・・10000円(画面割れ大)

画面割れは、ベトナムの修理屋さんにMS純正品のパーツで交換してもらいました。約1.6万円

5台を持っていざ、ベトナムへ

ベトナムには、大量の中古PC機械は持ち込めないことになっています。が、自分の場合はベトナムに会社があり、そこで自分が利用するというテイで入国しました。いつもは、スーツケースにデスクトップPCとノートPCを入れて運搬しているので、PC機器は2台ですが、今回はデスクトップを入れて6台。

 果たして無事に入国できるでしょうか。

 ビザは自分の最近作ったベトナムの会社から自分に発行したD3のビザがあるので、ほどなく取得し、入国。最後、出口のチェックで荷物を開けて確認がありました。自分が使うPCであること。そして、自分がIT関係の仕事をしている旨を伝えると、OKと通してくれました。さすがに5台はやりすぎたか?2台くらいだとノーチェックですが。

 持ち込み状態は、ダイソーのソフトケースに入れて箱っぽいものは無い状態だったのですが、レントゲン・チェックで複数のノートPCっぽい形状を確認したのでしょう。1、2台だったら問題ないと思いますが、5台以上を持ち込む場合はこういうチェックはちゃんとあるようです。

Hackintosh化へ

日本でもある程度はインストールしていましたが、細かいチューニングはベトナムから空き時間にあれこれやっていました。細かい話は面倒なので、機会があればまた紹介しますが、気になる方はGitを見てみてください。OpenCoreのEFIなど、surface5と6のがあります。

 GIT:Surface Pro5-6 efi(LINK:そのうち整備予定)

推奨の機材は次で紹介しておきます

周辺機器を揃える

Surface Pro5や6の場合は、内臓のWiFiとbluetoothが使えません。Linuxでは使えることは確認したのですが、macos向けにはまだドライバをだれも作っていないようです。

ということで、WifiとbluetoothはUSBの以下で対応。HUBも以下2種類は稼働し、HDMI出力も可能でした。

●WiFi・・・TL-WN725N

●bluetooth・・・BT-403

●HUB・・・安いのと高いもの2タイプをゲット

イーサネット内臓のタイプも調達

ペン・・・互換ペン

キーボード・・・MS純正USキーボードの中古

Hackintoshとして利用可能と不可な機能

  • タッチパネル・・・・使えます
  • ペンでお絵描・・・・筆圧感知もあり使えます
  • WiFi・bluetooth・・・内臓は不可(上記USBで代用)
  • イーサネット・・・・上記HUBは利用可能
  • HDMI出力・・・・・edidをオーバーライドするとピンク色が修正可能
  • キーボード・・・・・MS純正のタイプカバーの照度・音・など使えます
  • トラックパッド・・・MS純正のタイプカバーでマルチタッチが使えます
  • ヘッドフォン・・・・問題なし
  • スピーカー・・・・・問題なし

導入の具体的な方法は、興味のあるかたは各自で頑張ってください。どこかで自分用にメモするかもですが。

購入して失敗したなと思った機材

  • bluetooth接続のサードパーティー製Surface Proキーボード

これなんですが、購入するまえは同じものかと思っていたのですが、実際はMS純正のタイプカバーキーボードとは違って、金属の接点がないんですよね。つまり、接続はbluetoothオンリーです。

取り外して使えるメリットはあるんですが、いざ使うときに接続が切れて再接続まで若干のラグがあったり、そもそもキーボードはよくある中華製のキーボードでタイプの質感が悪いんですよね。

英語配列が欲しかったので3000円くらいだったしまぁ、安いからいいかって感じで購入したのですがこれは失敗しました。

●バックライトなしのbluetooth接続・・・3300円

●バックライトありのbluetooth・・・4200円

こっちは15万VNDくらい高いです。日本円で差額900円くらいだったので試しに1つゲット。

やっぱり英語キーボードの純正が一番

というわけで、いろいろとキーボードは検討したのですが、今のところ純正のサーフェイスのキーボードが一番です。理由は以下の通り。

  • bluetoothではなく、物理接続のUSB接続なのでBIOS起動時などにも利用可
  • トラックパッドのドライバーが使えて、マルチタッチで操作可能
  • サードパーティー製の中華よりキーボードが押しやすい(すぐわかるレベル)

ということで、Lazadaでこのキーボードの中古品(程度良いらしい)を購入しました。お値段は、1万円くらいです。ちょっと高かったんですが、仕方ないです。このキーボードはもう廃盤っぽいらしいので。

  • MicroSoft:Surface Pro タイプ カバー(LINK

Surface ProのUSキーボードは日本では中古では入手しにくいですがベトナムでは結構流通しています。純正MSのタイプカバーキーボードは、タイプした感触は良いのですがキーストロークが浅いので少し慣れが必要です。しかし、bluetoothのサードパーティ製とは違い、キートップから滑るような感触はないので良いです。

これが壊れたら、Apple純正の英語版キーボードが候補ですね。てか、Surface Proはその形状から、分離式のキーボードもありかもしれません。いろいろ使ってみます。

お絵描きアプリをあれこれ検討する

今までは、タッチペンも持っていなかったしこれ系のソフトウエアはノーチェックです。macosでも探せば、あるんですね!

  • Goodnotes6(アプリ版)・・・お気に入り
  • WEB版のCanva(実際に書いたもの:LINK
  • Corel Painter
  • MediBangPaintPro
  • Inpaint
  • Paint X

いろんなお絵描きアプリがありますが、どれが使いやすいのか検討中です。Goodnotes6の操作性が良いなって今のところ思っています。このアプリが優秀なのは、間違えたらペンのみで、消せるんですよね。

消したり、移動したりが便利なんですよね

 

まとめ

今回、なんとなくわかったのは以下となります。

・タッチパネル式のmacosは新鮮
・タッチペンは中華の互換品使ったが、なかなか描きやすい
・ちょっとツルツルすぎるので本格的に描くなら、画面にシートを貼ったほうが良さげ
・Surface Proの画面は、めっちゃ綺麗
・キーボードはMS純正のUSタイプカバーが良い
・WiFi、bluetoothはSurface Pro5や6では内臓のは使えず、外付けが必要
・なので、Surface Pro7かプラスがおすすめ
・macos12はメモリ4Gでもまぁ動くが、用途は限られる
・ので、Surface Pro5なら、8G i5モデル以上が欲しいところ

といった感じでしょうか。この端末をデバック機種として使うのか、メインmacと合わせて、液タブみたいに使うのはどうか?など利用方法を検討してみたいと思います。またはLinuxやChromeOSを入れて使うかもしれません。

あとがき

今回、勢いで5台も調達しましたが2台は友達へのプレゼントです。あと、いろいろ触ってみて思うのは、今後買うなら、surface pro7か7+がおすすめですね。ちょっと高いですが、CPU性能とかWiFi+bluetoothが標準のを使えるのはメリットです。どこかでゲットしてまたイジってみたいと思います。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

備忘録:Ryzen 5 3600のLinuxでUnixBench

じゃんくはっく
じゃんくはっく

WordPressの仕事が終わったんで、今日は好きなことやるよ!

WordPressの仕事もやってるのね!

ぴー
ぴー
じゃんくはっく
じゃんくはっく

だいたい、何でも頼まれたらやっちゃうよ!w

で、Linuxはubuntuですか?

ぴー
ぴー

そういえば、だいぶ前にRyzen 5 3600をメインマシンにしたんですが、これでLinux動かしてなくて、UnixBenchのスコアが気になっていました。Diskはさくっと入れ替えられるよう、2.5inchの脱着ベイをつけてありますので今回はこのマシンにUbuntuを入れてUnixBenchを計測してみようと思います。

Intelチップ、2022年までしばらくさようなら!
投稿日:  更新日:2020年11月13日

Link

もう1年以上使っていますね。intelがRyzenを盛り返すまで繋ぎで使っているんですが、なかなかintelは画期的なのを出しませんね。AppleはM1のオリジナルCPU出してきたし、5年後はintelが昔のAMDみたいになっていなければいいんですが。

Ubuntu 20.04.1 LTSでUnixBench

MacOS10.14.x でUnixBenchを計測した時は、マルチCPUで2323.1でした。Ubuntu 20.04.1 LTSで、Ryzen 5 3600は以下のスコアです。

UNIX Benchmarks (Version 5.1.3) on AMD Ryzen 5 3600

Single-Core Score:2422.6
Multi-Core Score:7919.0

詳細は以下です。SSDは、SLCのsata2 64GBです。

   BYTE UNIX Benchmarks (Version 5.1.3)

   System: mone: GNU/Linux
   OS: GNU/Linux -- 5.4.0-42-generic -- #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
------------------------------------------------------------------------
Benchmark Run: 日  5月 30 2021 00:29:08 - 00:57:06
12 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       50630225.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     9059.2 MWIPS (9.9 s, 7 samples)
Execl Throughput                               7946.0 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1256459.1 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          338174.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       3192098.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2633467.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 364452.5 lps   (10.0 s, 7 samples)
Process Creation                              10672.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  10448.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   5218.2 lpm   (60.0 s, 2 samples)
System Call Overhead                        3716288.0 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   50630225.0   4338.5
Double-Precision Whetstone                       55.0       9059.2   1647.1
Execl Throughput                                 43.0       7946.0   1847.9
File Copy 1024 bufsize 2000 maxblocks          3960.0    1256459.1   3172.9
File Copy 256 bufsize 500 maxblocks            1655.0     338174.5   2043.4
File Copy 4096 bufsize 8000 maxblocks          5800.0    3192098.2   5503.6
Pipe Throughput                               12440.0    2633467.7   2116.9
Pipe-based Context Switching                   4000.0     364452.5    911.1
Process Creation                                126.0      10672.3    847.0
Shell Scripts (1 concurrent)                     42.4      10448.3   2464.2
Shell Scripts (8 concurrent)                      6.0       5218.2   8697.0
System Call Overhead                          15000.0    3716288.0   2477.5
                                                                   ========
System Benchmarks Index Score                                        2422.6

------------------------------------------------------------------------
Benchmark Run: 日  5月 30 2021 00:57:06 - 01:25:17
12 CPUs in system; running 12 parallel copies of tests

Dhrystone 2 using register variables      377415057.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    85109.8 MWIPS (9.8 s, 7 samples)
Execl Throughput                              38242.8 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        870656.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          231207.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2754722.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                            17510677.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                1622682.3 lps   (10.0 s, 7 samples)
Process Creation                              70024.7 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  67019.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                  10011.7 lpm   (60.0 s, 2 samples)
System Call Overhead                       16785255.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  377415057.2  32340.6
Double-Precision Whetstone                       55.0      85109.8  15474.5
Execl Throughput                                 43.0      38242.8   8893.7
File Copy 1024 bufsize 2000 maxblocks          3960.0     870656.3   2198.6
File Copy 256 bufsize 500 maxblocks            1655.0     231207.7   1397.0
File Copy 4096 bufsize 8000 maxblocks          5800.0    2754722.9   4749.5
Pipe Throughput                               12440.0   17510677.3  14076.1
Pipe-based Context Switching                   4000.0    1622682.3   4056.7
Process Creation                                126.0      70024.7   5557.5
Shell Scripts (1 concurrent)                     42.4      67019.5  15806.5
Shell Scripts (8 concurrent)                      6.0      10011.7  16686.2
System Call Overhead                          15000.0   16785255.3  11190.2
                                                                   ========
System Benchmarks Index Score                                        7919.0

同じRyzenだと、ThinkCentre M75q-1 Tiny のRyzen 5 Pro 3400GE (3.30GHz, 2MB) が以下のスコアです。

UNIX Benchmarks (Version 5.1.3) on Ryzen 5 Pro 3400GE (3.30GHz, 2MB)

Single-Core Score:2151.7
Multi-Core Score:6552.1

Ryzen 5 3600のが速いですが、このマシンも頑張っていますね。これは以下で紹介しています。

130W電源でThinkCentre M75q-1 Tinyのベンチマーク

URL

ちなみに、このマシンはWEBサーバにしようと思いっていたのですがフォートナイトやるっていうんで息子に持っていかれてしまいました。。。なので、このブログはスマホPixel3のWEBサーバでがんばっています!

まとめ

今回、なんとなくわかったのは以下となります。

・Ryzen 5 3600 は、シングル2422.6 マルチ7919.0 のUnixbenchスコア
・2021/05/30時点でintelの次のCPUは、「Alder Lake」を2021年後半に発売予定
・これは10nmのようです
・特に困っていないので、7nmとか5nmのintelが出るまでじっくり待ちます

あとがき

Intelがこのまま、黙ってAMDを先行させるだけではないと思っていますが、苦戦しているようです。まぁ、しかし、普通の作業をしているだけであれば、Core i7 3770; (Ivy Bridge)でもぜんぜん十分で、いまだにサブマシン(メインマシンに近い存在)で頑張っています。このCPUは、第3世代のもので、今から約10年前にリリースされました。macosも10.8くらいから10.15(現在)でずっと使っています。重い作業するのは、ビルドするときくらいでしょうか。あとはアプリケーションを同時に30個くらい開いたりしながら作業するとき、少しもたつくくらいです。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

Apple純正のUSキーボードの分解メモ

じゃんくはっく
じゃんくはっく

メルカリで純正ワイヤレスキーボードのUS配列をゲットしたよ!

またジャンクですか〜?

ぴー
ぴー
じゃんくはっく
じゃんくはっく

一応、完動品っぽい!ジャンクじゃないよー

めずらしぃ!

ぴー
ぴー

アップルのワイヤレスキーボードとはこんな製品です。今は、Magic Keyboard(充電式) っていうタイプなんで、乾電池を入れるこのタイプは古い製品ですね。写真は日本語配列ですが、これのUS配列でかたかながないタイプです。記号の位置や、英数・かなボタンが無いタイプとなります。

で、この古いタイプのワイヤレスキーボードは電池が3本のタイプと、2本のタイプがありますが、安ければどっちでもよかったので3本タイプをゲットしておきました。

状態を確認!

ぱっと見は、結構綺麗なんですが写真のようにスペースキーが少し変です。左側が沈んで、右側は浮いています。たぶん、清掃して組む時にちゃんとハマっていなかっただけっぽいので、押し心地もよくないしちょっとバラしてみることにしました。

バラすとこんな感じです

このタイプのキーはパンタグラフのプラスチックがキートップにハマっているだけです。外すのは、キートップを上側か、下側から持ち上げれば外れます。スペースキーなど、少し大きめのキーは、針金で補強されています。

良くみると、パンタグラフの一部と、金属部分が少し曲がっています。がーん! 左が沈んで右が浮いていた原因はこれですね。

パンタグラフは爪折れが右側にあったので、左右入れ替えて、右側が浮かないようにして対応。これでうまく治らない場合はまた考えることにします。あと、針金を受ける金属部分が曲がっていたので、ストロークが動かず、左側が沈んでしまっていたようです。金属部分は修正しておきました。

ハメ方のコツ

嵌める前に、掃除もしておきました。多分、前のオーナーが掃除してくれたんだと思います。あまり汚れはなかったのですが、ブラシと綿棒で軽く清掃。

で、ハメるコツですが、スペースキーなど、補強に針金が入っているキーはまず片一方を穴に通してやると簡単にハマります。

この薄型のキーボードは見かけによらず長持ちしますので、末長く使うなら保守用のジャンクを購入して修理するのもありかなと。今は使わない日本語キーボードを保守用のドナーにしておいても良いかも。薄い割には押し心地が結構よくて、気に入っています。毎日使っていても、かなり長持ちします。

下の写真は修理が終わったところ。浮いていた部分もしっかりハマって、折れていた爪も今のところ問題なく、しっかりタイプできるようになりました。

純正の場合は、このように電池残量が見えたりします。

あと、キーボード設定で「F1、F2などのキーを標準のファンクションキーとして使用」のオプションが表示されます。

まとめ

今回、なんとなくわかったのは以下となります。

・メルカリ相場は2000円〜4000円くらい
・Apple Wireless Keyboardは、電池3本のA1255と、2本のA1314とがある
・パンタグラフの爪は弱そうなので、バラして掃除するときは要注意
・キートップだけ外して、パンタグラフはつけたまま掃除のほうが良いです
・やっぱりUS配列は使いやすい
・パチモノとは大違い、Apple純正はタイプしやすいです!

あとがき

10年以上、このワイヤレスの日本語配列を使っていたのですが、拠点が複数になり1年前から英語配列のパチモノキーボードを使っていました。もともと英語配列のキーボードを使っていたので、すっかり慣れてしまったのですが、トニカクこのパチモノキーボードの押し心地が非常によくありません。

あえて言葉で表現するなら、Apple純正はしっとりした感じ。パチモノは軽くてキートップから滑る感じなんですよね。純正は薄くてもしっかりとした打鍵感がありますが、パチモノは打鍵感が弱いんです。うーん、言葉ではうまく表現できないですね。w まぁ、安いのでしかたありません。Bluetoothキーボードが1000円ちょっとで手に入るのはある意味、驚異的ですからね。

で、毎日触るキーボードですので、Apple純正の、US配列をゲットすることにしたのです。

 この薄型のキーボード、見た目は押しにくそうですが実は結構快適にタイプできます。キーストロークがあるタイプだと疲れてしまうのでこの薄い、ストロークがほとんどないこのキーボードが好きなんです。最近はこれの後継でMagic Keyboardというのがあるようで、次に壊れたら、これを使ってみようかなと思います。

 このキーボードが好きな理由は他にもあって、ESC横のF1〜F4あたりのキーに触りやすくて、ミッションコントロールなど特殊キーを割り当てています。いつかは、メカニカルスイッチのキーボードをDIYしたいので、こういう薄型タイプからは卒業しないといけないのですが、、、

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

6年使ったSSDが突然、認識せず、あれこれした記録

じゃんくはっく
じゃんくはっく

6年使ったSSDが突然、認識されなくなって困った・・・

バックアップとか大丈夫だった?

ぴー
ぴー
じゃんくはっく
じゃんくはっく

丁度いいタイミングでOS載せ替えようとしてた時だったから、大丈夫だったよ!

SSDの寿命って実際どのくらいなんでしょうね?

ぴー
ぴー

ということで、ちょうどOSを載せ替えようとSSDを調達して、大事なデータをコピーし終えたところで、突然認識しなくなりました。認識しなくなったSSDはこれ。当時のカタログの切り抜きを。

正式な型番と購入した値段、時期は以下です。

Samsung SSD840 500GB MZ-7TD500B/IT

2013年8月2日当時に購入したものですが、当時は結構高かったですね!1年後くらいに1回壊れたので、保証があったので新品にしていだきました。なので、2014年12月から、2021年3月まで使っていたことになります。約6年ですね。

順番は前後しますが、壊れたからSSDを新調したわけではなくOSを載せ替えようと、新しいSSDを先に購入しておいたわけです。ラッキーでした!

新しいSSDは何にするか品定め!

 さて、OSを載せ替えるので新しいSSDを調達しようと思います。価格と相談ですが、容量どのくらいにしようかと久しぶりにリサーチ。

 なんと1TBが、¥10,980じゃないですか!7年前の価格に換算すると、5万ちょいですよ。しかもCrucialで国内正規品。これでいいやということで速攻ぽちっとしました。当時は500GBでも十分と思っていましたが、あれこれ動画編集とかアプリとかいろいろ入れるので500GBだとちょっと窮屈でした。1TBあればだいぶ余裕ができますね。

Amazon : Crucial SSD 1000GB MX500
¥10,980

https://amzn.to/2ORFRiK

このSSDのスペックは以下です。5年保証で、360TBのTBWがあります。きっと5年では、使いきれない書き込み総量ですね。

Crucial SSD 1000GB MX500 CT1000MX500SSD1/JP
発売時期:2018年 10月
Micron 3D TLC NANDフラッシュを採用
Silicon Motion SM2258 SSDコントローラを搭載
2.5インチフォームファクター、厚さ7mmの薄型モデル
SATA 6Gbpsインターフェース対応
読込速度 最大560MB/s
書込速度 最大510MB/s
4kランダム読込 95,000IOPS
4kランダム書込 90,000IOPS
ファイルの保存や転送の高速化するDynamic Write Accelerationテクノロジー
AES 256ビットのハードウェア暗号化によりデータを安全かつ確実に保護
Acronis True Image for Crucialに対応
Crucial Storage Executiveに対応
250GB、500GB、1TB、2TBの容量をラインナップ
5年間の制限付保証
総書込容量(TBW)360TB
(1日当たり197GBの書込を5年間行った場合に相当)

参考

https://chimolog.co/bto-ssd-mx500-1tb/
https://www.crucial.jp/ssd/mx500/ct1000mx500ssd1
PDF

macos10.15.7にしてデータ戻し中・・

順調にmacos10.15.7 にアップデートしてデータなどを戻し中にコピーが終わったあと、突然認識しなくなりました。データコピーはSSDをUSB3.0に繋ぐケーブルで接続していました。

aliexpress:USB 3.0 to Sata Cable

URL

アリエクで500円くらいのものです。結構、便利でUSBだと遅いし容量も欲しい時なんかに重宝します。1本あると便利ですよ。

なんとか認識させる!

Testdisk でパーティション検出させようと1日以上かけてパーティション解析。このツールのインストールはbrewで入ります。

$ brew install testdisk
$ sudo testdisk

なんかおかしいですよね! このDISKはパーティションは2つしかないのですが、複数見つかります。ほげー。あ、ちなみにtestdisk はログは取らない方がよいです。あとでわかりましたが、でかいログファイルを消すことになりました。Disk Drillのクリーンアップ画面です。

testdiskを実行する際は、ログを意図的に残したい場合意外は、[ No Log ]を選択 して実行したほうが無難です。操作全般は以下が参考になります。

データ復旧大図鑑:Mac版TestDiskの使い方

https://jisaku-pc.net/hddhukyuu/archives/8354

だめもとで、いらないパーティションを削除して書き込んでみます。

上下矢印で行を選択、左右矢印でD状態にできます。OKだったらEnter。

じゃ、書き込んでみます。

はい、ダメでした! ま、大事なデータはすでにコピー済ですから問題ありません。

じゃ、ディスクユーティリティーでフォーマットしましょうか。

ぐぬぬ。フォーマットさえ出来ないとは! 以下のパターンもありました。

“Samsung SSD 840 Series Media”(disk2)を消去して“500G”を作成中
 ディスクをマウント解除中
 パーティションマップを作成中
 パーティションのアクティベートを待機中
 disk2s2をMac OS拡張(ジャーナリング)、名前を500Gとしてフォーマット中
 Initialized /dev/rdisk2s2 as a 466 GB case-insensitive HFS Plus volume with a 40960k journal
 ディスクをマウント中
 disk2s2を消去した後にマウントできませんでした
 空のAPFSコンテナを新規作成中
 内部エラーが起きました。:(-69614)
 操作が失敗しました…

根本理由はわかりませんが、EFI領域が邪魔しているのかもしれません。試しにリブートして、リカバリーモードでディスクユーティリティーを起動したらうまくフォーマットできました。同じようなエラーコードでフォーマットできないときは、お試しを。実機だとコマンド+Rですね。Hackintoshだと、リカバリーモードをEFIブート時に選択します。

Smart情報を見てみる!

一応、無事にフォーマットできたので、ディスクユーティリティーのFastAidでチェックしておきましたが問題はありませんでした。今度は有償ツールですが、Disk Drillで見てみます。

なんか「寿命」の文字がたくさん出ています。しかし、それほど気にしてはいけません。

Smart情報は各社、独自で出しているようなので仕様が完全に共通化していません。ここでは以下くらいが参考になるかなと。16326時間、稼働していて電源は5116回付けたと。最後の書き込み量は単位はなんでしょうか? 赤字で記載した部分はよくない数字です。

Reallocated sector count 43
Power-on hours count 16326
Power cycle count 5116
Used Reserved Block Count 43
Runtime Bad Count (total) 43
Total LBAs Written 3541977737

Linuxのsmartctlコマンドだと以下のように出るようです。同じ型番のサンプルデータはGITHUBにあったのでリンクしておきます。このSSDは赤字相当の数字は0ですね。書き込み総量は33.13 TBもあるのにね。

Github:SMART/SSD/Samsung/SSD 840/SSD 840 Series 500GB
Link

ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  5 Reallocated_Sector_Ct   PO--CK   100   100   010    -    0
  9 Power_On_Hours          -O--CK   091   091   000    -    40511
 12 Power_Cycle_Count       -O--CK   096   096   000    -    3871
177 Wear_Leveling_Count     PO--C-   086   086   000    -    169
179 Used_Rsvd_Blk_Cnt_Tot   PO--C-   100   100   010    -    0
181 Program_Fail_Cnt_Total  -O--CK   100   100   010    -    0
182 Erase_Fail_Count_Total  -O--CK   100   100   010    -    0
183 Runtime_Bad_Block       PO--C-   100   100   010    -    0
187 Uncorrectable_Error_Cnt -O--CK   100   100   000    -    0
190 Airflow_Temperature_Cel -O--CK   069   048   000    -    31
195 ECC_Error_Rate          -O-RC-   200   200   000    -    0
199 CRC_Error_Count         -OSRCK   099   099   000    -    122
235 POR_Recovery_Count      -O--C-   099   099   000    -    1745
241 Total_LBAs_Written      -O--CK   099   099   000    -    71143537386
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

書き込み量のTotal LBAs Writtenは、どうやらセクターサイズを掛けるようです。testdisk とかでみると、セクターサイズは512byteのようです。

以下の計算機で算出すると、1.65 TBとなりました。

SSD Total Bytes Written (TBW) Calculator

https://www.virten.net/2016/12/ssd-total-bytes-written-calculator/

Samsung SSD840のTBWは?

当時のカタログをみても、TBWは記載されていませんでした。書いてある記載は、MTBF(平均故障間隔)として、150万時間とあります。

以下に当時のレビューがありましたが、その中に以下とあります。

総書き込み容量(TBW)は、当社規定で1日あたり20GBで計算しています。そして、840では毎日20GB書き込む人でも3年間は十分保証できる品質を実現した、ということです。

https://akiba-pc.watch.impress.co.jp/hotline/20121117/sp_fline.html

つまり、21.9TByteがTBWということですかね。ということは、まだ1.65 TBしか書き込みしていませんが、Reallocated sector count 43など出ていますので、かなり要注意が必要ですね。これは実際に不良セクタが発生した数なので、今後もっと増えていくはずです。つまり、即ダメになるわけじゃないですが、もう寿命に近づいていると思って間違いありません。SMART情報をモニタリングしながら、軽めの作業に使うことにします。音楽再生用のキャッシュとか、データが飛んでも問題ないような用途です。

TechTool Pro 13でチェック

ちょっと違うツールを使って、SSDをチェックしてみることします。TechTool Pro 13のサーフェーススキャンとSmartチェックをやってみます。

サーフェイーススキャンは問題ありませんでした。

注意は必要そうですが、まだ行けそうな感じですかね。Windowsマシンにくっつけて、SAMSUNG Magician Softwareでチェックしてみるのがいいんですが面倒なんでやめました。またの機会に確認してみます。

SAMSUNG Magician Software

https://www.samsung.com/semiconductor/minisite/jp/support/tools/

現状のSSD速度ベンチマーク

実質、購入してから6年使っているSSDのベンチマークを計測しておきます。

SSDに記録されている時間は、16326時間で約680日、トータル書き込み量は1.65 TBの、Samsung SSD 840 Series MZ-7TD500B/IT です。

あと、今回購入したCrucial SSD 1000GB MX500 CT1000MX500SSD1/JPは以下です。

まとめ

今回、なんとなくわかったのは以下となります。

・バックアップは大事
・不良セクタは43個あった。今後増えそう
・書き込み総量は超えていないが、そろそろ寿命と判断していいだろう
・耐用年数を超えたら、TMP領域など軽めのDISK用途に使う
・心配なら廃棄すれば間違いないです
・SMART情報は各社違うので、要確認必要
・Disk DrillのSMART表示、監視は参考程度に
・TechTool Pro 13のほうが、Disk関連のチェックは豊富
・今回はtestdisk では復旧できず
・ディスクユーティリティーで初期化出来ない時は、OSをリカバリーモードで起動してやれば今回はフォーマットできた
・紹介しなかったけど、TechTool Pro 13のスナップショット機能は便利
・SSDはHDDと比べても結構、耐久性あるな!
・最近のSSDは、保証期間中に書き込み総量を超えるのはまず、無理
・しかし、故障するかどうかは使う環境により左右される

あとがき

SSDの寿命というのは、今回体験したようにいつか訪れます。稼働部品がないHDDとは違いSSDならずっと使えるはずと思いガチです。長年ずっと使い続けているなら、ちょっと点検してみるのもいいかもしれませんね。

加えて、ファイルシステムの不整合というのは、使っているうちにどうしても発生してしまいます。5、6年の間には停電もあり、ブレーカー落ちることもあり1年に一回くらいは、OSをクリーンインストールしてバックアップ(DropBoxやGoogleDriveなど)に大事なデータは分散バックアップしておくのがやっぱり大事だなーと改めて思いました。今回は、特に大事なデータは消失しませんでしたが、運がよかったなーと思います。ちょっと違うタイミングだったら結構慌てていたかもしれません。

 ついつい面倒になって、クリーンインストールは腰が重いですが、これからは1年に一回くらいはやろうと思います。あと、SMART情報のモニタリングはやっておいたほうがいいですね。今回、死にかけのSSDの寿命が完全に尽きたらまたレポートしようかなと思います。

 あと、HDDですが6TBが1万で買えるんですね! みんなNAS用途で使ってるみたいですが、何入れてるんでしょうか。TVの録画データとかですかね。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

XIAOでMacのスクリーンショット専用USBキーを作るDIY

じゃんくはっく
じゃんくはっく

スクショの専用キーがほしい!

Macだと、シフト+コマンド+3とかの?

ぴー
ぴー
じゃんくはっく
じゃんくはっく

Mac標準だとそうだけど、Skitchっていうスクショツール使ってるからシフト+コマンド+5だね。

いろんな需要があると思うからカスタマイズできるといいね

ぴー
ぴー

今回のDIYは、ちょっと実用的なものを作ろうかと思います

最近、はまっている小さくて安いArduino互換機、XIAOを使ってカスタマイズできるキーボードを作ろうと思います! 冒頭でも少し触れましたが、MacのスクショアプリでSkitchっていうツール使っているんですが、このスクショのショート専用のキーボードを作ろうかと。ショートカットは、シフト+コマンド+5ですが、3つもボタンを押さないといけないので、1ボタンだと助かります。

その後、Skitchの編集メニューから「画像をコピー」でクリップボードに入れてWordPressのローカルアプリに貼り付けるのが、一連の動きです。このショートカットがシフト+コマンド+C です。

構想では、この2つのボタンが専用であるといいなと。キャンセルしたいときにESCキーがあると便利かもしれませんね。

使えるUSBライブラリは?

TinyUSB Mouse and Keyboard library

https://github.com/cyborg5/TinyUSB_Mouse_and_Keyboard/

このライブラリは、Chris Youngさんが統合したTinyUSBです。以下で紹介されています。

Mouse and Keyboard Control Using TinyUSB and BLE

examplesを試したのですが、記述がわかりやすいし使いやすそうだったのでこれでやってみることにします。他にも、Seeedの紹介ページにAdafruitのライブラリを使った例がありますが、examplesを見た限りでは使いにくそうでしたのでこちらはパスです。

Seeeduino XIAOをUSBデバイス(TinyUSB)として使う

ライブラリを入れる

マスターのZIPをArduinoIDEから入れて、例題をやってみます。

ZIP : TinyUSB_Mouse_and_Keyboard

URL

Arduino IDEからライブラリをいれるのは、以下からです。

ZIPのライブラリを入れると、以下のように同じところから見えていると思います。

提供されたライブラリは、Macだと以下に入るようです。直接ここに入れてもOKです。

/Users/USERNAME/Documents/Arduino/libraries/

ちなみに、ArduinoIDE組込(デフォルトの)は以下です。

/Applications/Arduino.app/Contents/Java/libraries/

XIAOのボード関連は以下にあります。

/Users/USERNAME/Library/Arduino15/packages/Seeeduino/

ライブラリとか、PGのディレクトリ以下に格納しておいたほうが後からわかりやすいかもしれません。数年後、また動かそうとすると環境変わっていたりしますからね。その場合は、includeをダブルクオートで囲って記載すればカレントディレクリ(現在のディレクトリのこと)を参照します。

#include "TinyUSB_Mouse_and_Keyboard.h"

サンプルを動かしてみる

Macユーザーで、Launchpad のショートカットをF5にしていれば動作します。

$ git clone https://github.com/take-i/XIAO-USB-example.git
$ cd XIAO-USB-example/xiao_usb1/
$ open xiao_usb1.ino 

XIAOに書き込んで、見てください。ブラウザが起動して JunkHackのページが見えていれば成功です。

サンプル例では、Launchpadが開き、コマンドFで検索、英字モードに切り替えてterminalをタイプしてターミナルを開きます。ターミナルからはURLをオープンしています。macの場合、コマンドの修飾キーは以下のようにKEY_LEFT_GUIが相当します。WindowsだとWINキーです。

  // New terminal windows
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.write('n');
  Keyboard.releaseAll();

Keyboard.pressは、押しっぱなし状態になるのでKeyboard.releaseAll()でリリースします。delayを入れないと、速すぎて期待する動作にならないので適当に調整します。

4ボタンの専用キーボードを作る!

さて、サンプルはうまく動いたので実際にボタンをつけて日常的に使える状態にします。こんなコードにしました。

https://github.com/take-i/XIAO-USB-example/tree/master/ss-key

Pin接続は、A7 , A8 , A9 , A10 とGNDの5つです。なお、このPGは同時にボタンを押した時の考慮はしていませんのでご注意を。クリティカルなボタンの場合は、何かキーが押されている場合は違うキーの処理に入らないようにする必要があります。

筐体に組み込む!

3Dプリンターとメカニカルスイッチで作るのが面倒だったので、適当なジャンク品のキーボードを漁ってきました。

15年くらい前の無線キーボードです。エンターキーが無くなっているのは、子供に剥がされたからです。それ以来、使っていませんでしたがここに来て約に立ちそうです。

このタイプのキーボードはノートPCと同じで、キーボードの下はフィルムのメンブレンスイッチになっています。これにジャンパー配線するのは厳しいので、端っこのパーツを使うことにしました。

こっちは基盤があって、なんとかなりそうです。キーボード筐体をグラインダーで切断し、左側部分を使うことにしました。こんな感じ。

配線はこんな感じ。XIAOは小さいので、ほんと助かります。

黒い線がGNDで、それ以外はボタンからのプリント基板の配線からジャンパー線を出して使っています。

こんな感じで、無線キーボードの上に置いてあります。

右側からESC、スクショ、スクショのコピー、https://www.canva.com/ を開く の4機能を持たせてあります。今もこの記事を書いているときにこのボタンを使っていますが、かなり便利ですね! canvaを割り当てているのは、ブログ記事のサムネイルをいつもここで作るからです。今回はこんな感じかな?

Macからはこんな感じで認識されています。

キーボードの修飾キーにも、出ていますね

MacのKeycodeを確認

※追記
MacだとどんなKeycodeがタイプされるのか確認しておきたかったので、macosで動作するキーロガーのソースを少し修正してDecで数字を出すように改修したものが以下にあります。

Mac OS X Keylogger

https://github.com/take-i/keylogger-macos

オリジナルは、アトランタのアプリ開発者、ケーシー・スカボローさんが作ったものです。簡単に使い方を記載しておきます。

$ sudo touch /var/log/keystroke.log
$ sudo chmod 644 /var/log/keystroke.log
$ git clone https://github.com/take-i/keylogger-macos.git && cd keylogger-macos/
$ make
$ sudo ./keylogger

ログは以下のパスに数字で出力されます。

$ tail -f /var/log/keystroke.log

たとえば、Macのキーボード配列の場合、F3キーはMission Controlのキーとなり、Keycodeは、160となります。F3の場合は99です。純正キーボードの場合は、以下のようにキーボード設定に「F1、F2などのキー標準のファンクションキーとして使用」のチェックボックスがでます。社外キーボードの場合、これはでないようです。

DIYキーボードをUSB接続したとき、macのキーボードだと認識させてMission Controlのコードとして認識させるようにする方法を模索したのですが、ちょっとよくわかりませんでした。また、いつか再チャレンジしたときに覚書として書いておきます。

まとめ

今回、なんとなくわかった・わからなかったのは以下となります。

・Seeed XIAOは簡単にキーボード・マウスのデバイスが作れる
・スイッチOn,OffタイプであればPinの数分、キーは作れる(最大、11Key)
・ライブラリは、TinyUSB Mouse and Keyboard libraryが使いやすかった
・KeycodeというのがUSBの仕様で決まっているようです(hut1_12v2.pdf
・こっちのUSB仕様書のほうが新しいかな?(hut1_21_0.pdf
・macの場合は、Mac OS X Keylogger を少し手直しすれば番号がわかる
・しかし、USBの仕様書とは違う値が帰る(例:F3は、macだと10進で160または99、USB仕様書では、60)
・PGの定義は、0xC4で10進だと196
ここによれば、0x88以上は、その値から0x88を引いた数(10進だと136)となるようです。つまり、196-136=60 なるほど!PGの定義からは謎がとけました
・しかし、macのkeycodeは違う値を出す。ここがよくわからない
・おそらく、macはkeycodeのマッピングテーブルを持っているのだろう
・または、キーボード種類によってF3はMission ControlになるようOSがマッピングしているのだろう
・keycodeとUSBデバイスのレイアウトの関係はまだ奥が深そうだ
・フィルムのメンブレンスイッチって自作できないかな?
・アルミテープとラミネートフィルムで作れないかな?

あとがき

作ってみて、実際に使ってみたらすごく具合がいいです。USBデバイスをこんなに簡単に作れるとは、驚きですね。いつか、本格的なキーボード作りもしてみたいです。40%キーボードとか小さくて可愛いので使ってみたいんですが、何から手をつけていいのかよくわかりません。あと、薄いMacのキーボードに手が馴染んでしまったのでという理由もあります。

まぁ次キーボード作る機会もあると思うので、その時は自作したいですね。

著者にメッセージ

間違いのご指摘など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

ポートフォワードの経路で、Uターン NATとかヘアピンNATが使えないルータの場合のあれこれ

先日、以下のように困っていました。

Termuxのapache2+php+mariadbのチューニング前のwordpressの速度とか
::
まぁ、速度的なことより困っていることがあります。それは、ローカルのマシンから、termux上で動作しているwordpressにグローバルIPでアクセスできないことです。この場合、ルータの管理画面にアクセスしちゃうんで、どうしようかなと。こういうのなんていうんでしたっけか? とにかく、今の拠点のルータ(PR-400KI)は、内側ネットワークから外側のグローバルアドレスにアクセスしたものを、変換(最終的にサーバのプライベートアドレスに変換)してくれないのです。

これ、言葉で書くとよくわかりませんが、どんな問題かというと以下のようになります。

こういう表現として、UターンNATとか、ヘアピンNATとか呼ぶようです。これが出来るルータとできないルータがあり、NTTから借りているルータではできませんでした。いろいろ解決方法があるとは思いますが、一番簡単なのは、クライアントPCをVPNで外部のネットワークからアクセスさせる方法です。つくば大学のVPN Gateを使えば簡単に解決できますが、インターネット経路となりいまいちです。プレイベート間の通信なのでリバースプロキシを経由する方法が良さそうです。ポート変換がなければ、hosts を書き換えるか、内部DNSを立ち上げればいいのですが、今回の場合は、スマホサーバで提供しているポートは8080です。80と8080を対応付ける必要があり、hosts だけでは無理なので、リバースプロキシを通して、アクセスしてみることにします。

 ブログの更新は、クライアントPCからしか行わないのでこのPC中に設置してみました。もちろんリバースプロキシを分離して、内部DNSを立ち上げれば、理論上は何台でも違うポートとIPを使って好きなドメインでアクセスできます。そのうち、IoTデバイスとか、スマホサーバでクラスタリングとかロードバランサーとか使い出したら内部DNSやリバースプロキシは欲しくなってくるのですが、それはその時にまた考えることにします。

 ということで、クライアントにリバースプロキシを作って、スマホサーバの8080ポートで提供されているWordPress にアクセスしてみることにします。幸い、クライアントはMacなので nginx とかで簡単に作れます。

Macでリバースプロキシをnginxで作る

経路のイメージはこんな感じでしょうか。まずは、nginx を入れます。

$ brew install nginx

起動と再起動、停止は以下のようにします。

・起動
$ sudo nginx
・再起動
$ sudo nginx -s reload
・停止
$ sudo nginx -s stop

設定を以下のように書き換えます。server_nameや、proxy_passのIPやポートなど読み替えて書き換えてみてください。

/usr/local/etc/nginx/nginx.conf
::
worker_processes 1;
error_log /usr/local/var/log/nginx/error.log;

events {
  worker_connections  1024;
}

http {
  # This should be in the same directory as this conf
  # e.g. /usr/local/etc/nginx
  include       mime.types;
  default_type  application/octet-stream;
  
  # Note this log_format is named 'main', and is used with the access log below
  log_format   main '$remote_addr - $remote_user [$time_local]  $status '
    '"$request" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

  sendfile        on;
  keepalive_timeout  65;

  # Without this I got this error: 'upstream sent too big header
  # while reading response header from upstream'
  proxy_buffer_size   128k;
  proxy_buffers   4 256k;
  proxy_busy_buffers_size   256k;

  server {
      listen 80;
      server_name jh.gpl.jp;
      proxy_set_header    Host    $host;
      proxy_set_header    X-Real-IP    $remote_addr;
      proxy_set_header    X-Forwarded-Host       $host;
      proxy_set_header    X-Forwarded-Server    $http_host;
      proxy_set_header    X-Forwarded-For    $proxy_add_x_forwarded_for;
      access_log /usr/local/var/log/nginx/reverse-proxy.access.log  main;

      location / {
          proxy_pass         http://192.168.1.38:8080;
      }
  }
}

hosts を書き換えます。

$ cat /etc/hosts
::
127.0.0.1 jh.gpl.jp

nginx を再起動して、ブラウザでドメインに対してアクセスすればOKです。

ちなみに、wp-config.php に以下を追記すると、接続元が192.168.1.26 の時だけWordPress のドメイン名が www.gpl.jp に書き換わります。もちろん、アクセスするクライアントのhosts は書き換える必要があります。

if( $_SERVER['REMOTE_ADDR'] == '192.168.1.26' ){
    define('WP_HOME','http://www.gpl.jp');
    define('WP_SITEURL','http://www.gpl.jp');
}

ということで、macos で簡単にリバースプロキシーを立ち上げて、内部ネットワークの違うポートで提供されているWordPress にアクセスする方法でした。

Lan内部のスマホからもアクセスしたい場合は、内部DNSをDHCPで配布して、リバースプロキシーと対応付けしないとだめですので、完璧を求めるならそれらが必要です。そのうち、作る機会があれば紹介したいなと思います。