20200530のMacに関する記事は13件です。

MacBookの移行とベンチマーク

タイトルは釣りです…と言えるくらい情報量が少ないですが、I/O速度にかなり差が出てしまったので記録しておくことにしました。他にも測定したら書き足すかもしれません。

MacBook Air

Screen Shot 2020-05-30 at 22.18.22.png

% ruby -ve 't = Time.now; i=0;while i<100_000_000;i+=1;end; puts "#{ Time.now - t } sec"'
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
1.538574 sec

% dd if=/dev/zero of=tmpfile bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 2.771232 secs (378379018 bytes/sec)

MacBook Pro 13-inch

Screen Shot 2020-05-30 at 22.21.14.png

% ruby -ve 't = Time.now; i=0;while i<100_000_000;i+=1;end; puts "#{ Time.now - t } sec"'
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
1.572779 sec

% dd if=/dev/zero of=tmpfile bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 0.414705 secs (2528487736 bytes/sec)

移行作業

Macの移行ツールは使わず、アプリは全て新たにインストールし直して、rsyncコマンドで必要なファイルだけ転送しています。wifi経由のrsyncがやたらと遅い印象があったため、転送速度を検証しようとしたのが発端でした。LANケーブルで直結したところ5.5倍速になりましたが、それでもちょっと物足りない感じ。何が足を引っ張っているのでしょうか?(まあでも高々100G弱のデータだったので、これで済ませましたが)

% scp 10.250.85.144:tmpfile ./Downloads/
tmpfile    21%  212MB   2.0MB/s   06:33 ETA
% scp 169.254.3.115:tmpfile ./Downloads/
tmpfile    6%   67MB  11.2MB/s   01:23 ETA
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac mini (2018) + Blackmagic eGPU Pro の組み合わせで Boot Camp 環境の Windows 10 を使用することはできない(たぶん......)

:warning: この記事は、もしかすると読むだけ時間の無駄になる可能性があるのでご注意ください。

先に結論を読む(推奨)

ぼくと同じように、今後 Boot Camp 環境で eGPU を使おうかなと思っている方がいたら、それには相当な覚悟が必要かもしれないし、ぼくのように結局うまくいかなくて終わる可能性もある、ということが事前に知っていただけたら幸いです。

使用する Mac の種類(MacBook Pro など)や eGPU の種類によっては、この記事に書いてある手順で動作するかもしれませんが、サポートされている方法ではないので基本的には動かないと思ったほうが良いです。

はじめに

少し前から唐突に PC ゲーム(VR 含む)をやりたくなりました。ところがぼくは Mac しか持っていないので Boot Camp を使用して Mac に Windows 10 をインストールして遊ぶことにしました。

ところが、ゲームはまともに動作しませんでした。それもそのはず、ぼくが持っている Mac mini (2018) は GPU を積んでいない(Intel UHD Graphics 630 を除く)ので、動画編集やゲームのような大量のグラフィック処理を行うことができません。

それならば、ということで、Apple が公式に販売・サポートしている Blackmagic eGPU Pro を使用すればゲームも快適にできるのではないかと考えたのです(現在、Blackmagic eGPU Pro は販売終了しており、Apple Store から購入することはできません)。

実は、Apple は Boot Camp 環境の Windows 10 は eGPU には「対応していない」と言っています。

Mac で Blackmagic eGPU を使う

しかし、インターネットでいろいろ調べてみると、非公式ではあるものの、eGPU を Boot Camp 環境の Windows 10 で使用する方法がたくさん出てきます。当初はそこまで本格的にゲームをするつもりはなかったので、とりあえず Full HD 30fps くらいで動いてくれれば良いという気持ちで環境構築を始めました。

しかしこの考えが地獄の始まりでした......。

今回の記事は「結局、解決しませんでした」というオチなので正直誰かの役に立つ内容ではないと思いますが、インターネット上では具体的にどのような解決方法が提示されているのか、なぜ Boot Camp 環境ではうまくいかないのか、あたりは参考になるかなと思いこの記事を書くことにしました。

TL;DR

以下に示す記事の内容・ツール等は一通り試しましたが、ぼくの環境ではどれもうまくいきませんでした。

解決法を試した記事・使用したツール・参考にした記事一覧(クリックで展開)

使用したデバイス・環境

種類 内容
Mac Mac mini (2018)
eGPU Blackmagic eGPU Pro (AMD Radeon RX Vega 56)
macOS macOS Catalina バージョン 10.15.4 と 10.15.5
Windows Windows 10 バージョン 1909 と 2020 (Insider Program)

補足情報(クリックで展開)

スクリーンショット 2020-06-01 0.32.44.png

作業時は macOS Catalina バージョン 10.15.4 でしたが、そのあと 10.15.5 のアップデートが来てインストールしました。そのあとにも試してみましたがやはりダメでした。

それから、最初は Windows 10 バージョン 1909 でしたが、Insider Program に参加する(新しいバージョンをインストールする)とうまくいくという例もあったので、2020 にアップグレードして試してみましたがこちらもダメでした。

そもそもなぜ Boot Camp 環境では使えないのか?

Blackmagic eGPU Pro という商品は、Apple が公式でサポートしている eGPU なので、当然 macOS では動作します。Mac と Blackmagic eGPU Pro を Thunderbolt 3 対応の USB-C ケーブルで接続するだけで使えます。

それと同じ要領で Boot Camp 環境の Windows 10 で使おうとしても、使えません。Windows 10 を起動する前に eGPU を接続する場合と、起動したあとで eGPU を接続する場合とで使えない理由が異なります。

Windows 10 起動前に eGPU を接続していた場合

Mac の電源を落とした状態で、eGPU をあらかじめ接続しておきます。その状態で Mac の電源を入れて Windows 10 を起動すると、画面に何も映りません。

Mac 本体とモニターと接続しても、eGPU 側とモニターを接続しても、何も映りません。起動する前にモニターと接続しておいても、途中で接続しても、抜き差しを繰り返しても、別の端子に接続しても、USB-C 接続から HDMI 接続にしても、映りません。

理由としては、Apple のファームウェアが関係してくるようです。Mac は、macOS 以外の OS が起動しようとすると Apple のファームウェアが eGPU を制御しようとします。そのとき Windows 10 はカーネルの起動の最中だったりするので、Apple のファームウェアに邪魔されて、eGPU をうまく制御できなくなります。その結果、画面には何も映らなくなります。

Windows 10 起動後に eGPU を接続した場合

それならば、Windows 10 が起動したあとに eGPU を接続すれば良いのではと考えますが、これもうまくいきません。

Windows 10 は仕様上、4 GB 以上のメモリを使用するデバイスが接続された際にリソース不足というエラーを出します。コード 12 というエラーです。

eGPU は大量のリソースを消費するため、起動後に接続してもエラー 12 で使用不可能な状態となってしまいます。

error_12.png


macOS では上記のいずれの問題も発生しないように設計されているため接続するだけで認識・動作しますが、これが Windows 10 となると一筋縄ではいかなくなります。

というわけで、この問題を解決しないと Boot Camp 環境では eGPU が使用できないというわけです。ここから先は、ぼくが実際に試した方法(結局どれもうまくいきませんでしたが)を順番に紹介していきます。

? 事前準備

作業する際に使用する OS
macOS (リカバリーモード)

以下のいくつかの方法を試す前に、あらかじめ SIP やセキュリティブートを無効化しておく必要があります。

SIP を無効化する方法に関してはこちらを参考にしてください。
【上級者向け】System Integrity Protection (SIP) を無効にする方法

セキュリティブートを無効化する方法に関してはこちらを参考にしてください。
「安全な起動」について

「安全な起動」は「完全なセキュリティ」から「セキュリティなし」に変更し、「外部起動」は「外部メディアからの起動を許可しない」から「外部メディアからの起動を許可」に変更します。

? ??????? apple_set_os.efi を使用する

作業する際に使用する OS
macOS または Windows 10

おそらく一番最初(か 2 番目)に出てくる方法が apple_set_os.efi を使用する方法ではないでしょうか。

仕組みとしては、Apple のファームウェアをバイパスして Windows 10 を起動させるための UEFI みたいです。この UEFI を間にかませて Windows 10 を起動することで eGPU を認識した状態にすることができるようです。

手順 1: パーティションを作成する

apple_set_os.efi をブートローダから読み込ませるためのパーティションを用意します。この作業は、macOS、Windows 10 のどちらからでも作業できます。

apple_set_os.efi ファイルを置くだけなので、パーティションのサイズは小さくて良いです。フォーマットの際のファイルシステムについては後述します。

パーティションの作成方法に関しては以下を参考にしてください。

OS リンク
macOS で作業する場合 Macのディスクユーティリティで物理ディスクにパーティションを作成する
Windows 10 で作業する場合 Windows10 新しいドライブ(パーティション)を作成する

手順 2: apple_set_os.efi を配置する

apple_set_os.efi を以下の GitHub のページからダウンロードします。

Releases · 0xbb/apple_set_os.efi

最新バージョンの apple_set_os.efi をダウンロードします。

先ほど作成したパーティションに apple_set_os.efi を配置します。ファイルを置くだけなのですが、ブートローダに認識させるためにはディレクトリ構造とファイル名が重要になります。具体的には

EFI/BOOT/bootx64.efi

というディレクトリ構造とファイル名にします。つまり、apple_set_os.efibootx64.efi にリネームして、EFI/BOOT ディレクトリを作り、その中に配置します。

手順 3: ブートローダを開き、apple_set_os.efi をロードする

macOS または Windows 10 を、再起動、またはシステム終了してからもう一度電源を入れます。そして、OS が起動する前にキーボードのオプションキーを押し続けます。するとブートローダが開きます。

そこには、Windows (Windows 10) と Macintosh HD (macOS) の他に、EFI Boot という起動ディスクがあると思いますので、それを選択して起動します。

IMG_6386.jpg
▲ キーボードの左右の矢印キーで移動して EFI Boot を選択した状態でリターンキーを押します。

すると apple_set_os の黒い画面が表示されます(下図のような画面)。その画面が表示されたら約 6 秒以内に(その黒い画面が消えてしまう前に)Blackmagic eGPU Pro を接続します。

eGPU 接続前 eGPU 接続後
IMG_6392.jpg IMG_6389.jpg

▲ eGPU 接続後は一番下に 00001002 0000687F AMD - Vega 10 XL/XT [Radeon RX Vega 56/64] という行が追加されているのがわかります。Blackmagic eGPU Pro を認識しています。

eGPU を認識したら、そのまま待つか、z 以外の何かしらのキー(リターンキーで良いと思います)を押すと Windows 10 が起動します。


この手順で Windows 10 が起動すると、本来なら eGPU が使えるようになるようです。が、ぼくの環境では残念ながら使えませんでした。

他の方法とも合わせて何度か試しているうちに症状が変わったりすることもありましたが、使えるようになることは一度もありませんでした。以下、参考までに症状を書きます。

症状 1: ドライバエラー(エラー 12)になる

これは apple_set_os.efi などを使わずに、Blackmagic eGPU Pro も接続せずにふつうに Windows 10 を起動して、そのあと Blackmagic eGPU Pro を接続した場合と同じ症状です。つまり、エラー 12 を解決できていません。

driver_error.png
▲ Blackmagic eGPU Pro を認識はしているものの、「ドライバエラー」となり使用できません。「再起動してください」と出ることもありますが、再起動しても「ドライバエラー」のままです。

症状 2: 映像が全く映らない

これは apple_set_os.efi などを使わずに、Blackmagic eGPU Pro を接続した状態で電源を入れて Windows 10 を起動した場合と同じ症状です。Mac mini 本体側、Blackmagic eGPU Pro 側含め、どの端子を使用してもモニターには何も映像が映りません。はじめからモニターと接続した状態で電源を入れたり、電源を入れてからモニターと接続したり、いろいろ試しましたが、ダメでした。

症状 3: そもそも認識しない

Windows 10 上では、まるでケーブルを挿していないのと全く同じ状態となります。デバイスマネージャーを開いてみても、そもそも認識していません。

認識はしている場合 (症状 1) 認識すらしていない場合 (症状 3)
device_manager_with_egpu.png device_manager_no_egpu.png

apple_set_os.efi をロードしたときの黒い画面では Blackmagic eGPU Pro を認識していたので、ケーブルが抜けているとか接触が悪いとかそういうことではありません。


いろいろな試行錯誤をしてみましたが解決せず。

試行錯誤 1: パーティションのファイルシステムやサイズを変えてみる

apple_set_os.efi を置くパーティションのフォーマットをいろいろ変えてフォーマットしてみました。

  • FAT → eGPU が使えない
  • FAT32 → eGPU が使えない
  • APFS → そもそもブートローダに表示されない

FAT のときは 80 MB、FAT 32 のときは 10 GB、APFS のときは 6 GB と、試すたびにパーティションをサイズがバラバラでしたが、それは本質的ではないような気がします。

試行錯誤 2: ファイルのパーミッションや所有者を変えてみる

apple_set_os.efi (実際には bootx64.efi にリネームしています) のパーミッションのせいでうまく動かないとか、そんなことあるかなーと思いつつも、いろいろ試してみることが重要だと思い試しました。でもやはりダメでした。

試行錯誤 3: ディレクトリ名の大文字小文字を変えてみる

絶対に違うよなーと思いつつ、これも試しました。もちろんダメでした。

  • EFI/BOOT/bootx64.efi
  • EFI/Boot/bootx64.efi
  • efi/boot/bootx64.efi

いずれもロードはされますが本質的なところは変わりません。というかむしろ大文字でも小文字でもちゃんと認識するんだ、という驚きが少しありました。

試行錯誤 4: 挿す端子を変えてみる

Mac mini には USB-C 端子が 4 つあります。どの端子に接続してもダメでした。

試行錯誤 5: apple_set_os.efi がロードされる前に接続してみる

最初は Blackmagic eGPU Pro を接続しない状態で電源を入れ、apple_set_os.efi がロードされてから接続して認識させていましたが、電源を入れる前からあらかじめ接続しておき、apple_set_os.efi をロードする方法も試してみました。

結果的には、これでも apple_set_os.efi の黒い画面上では Blackmagic eGPU Pro を認識していました。でも結果は同じです。

試行錯誤 6: apple_set_os loader v0.5 を試してみる

以下のフォーラムにある手順を試してみても変わらず。

[EFI Loader] Error 12 Fix in Boot Camp for Apple T2 Security Chip Macs (apple_set_os loader v0.5)


というわけでいろいろ試しましたがダメでした。

? ??????? automate-eGPU EFI を使用する

作業する際に使用する OS
macOS または Windows 10

これが 2 番目(か一番最初)に出てくる方法だと思います。

[Solved] automate-eGPU EFI - eGPU boot manager for macOS and Windows

上記のフォーラムにある通りに進めます。EFI Package をダウンロードして展開すると、EFI というフォルダが出てきます。

先ほど apple_set_os.efi を作成したパーティションがあるので、そのパーティションを空にして(apple_set_os.efi は削除して)代わりに automate-eGPU EFI を配置します。展開した EFI フォルダの中身をそのまま配置すれば OK です。

ディレクトリ構造としてはこのような感じです(クリックで展開)
.
├── EFI
│   ├── BOOT
│   │   ├── BOOTX64.efi
│   │   └── automate-eGPU.efi
│   └── CLOVER
│       ├── ACPI
│       │   └── WINDOWS
│       ├── config.plist
│       ├── drivers64UEFI
│       │   └── apple_set_os.efi
│       └── misc
└── __MACOSX
    ├── ._EFI
    └── EFI
        ├── ._BOOT
        ├── ._CLOVER
        ├── BOOT
        │   ├── ._BOOTX64.efi
        │   └── ._automate-eGPU.efi
        └── CLOVER
            ├── ._ACPI
            ├── ._config.plist
            ├── ._drivers64UEFI
            ├── ._misc
            ├── ACPI
            │   └── ._WINDOWS
            └── drivers64UEFI
                └── ._apple_set_os.efi

この状態で、apple_set_os.efi のときと同じようにブートローダを起動し、automate-eGPU EFI をロードします。ブートローダ上では apple_set_os.efi のときと同じように EFI Boot という名前の起動ディスクがありますのでそれを選択してロードします。

すると apple_set_os.efi と似たような黒い画面が表示されます。なぜか Blackmagic eGPU Pro を接続しても eGPU not detected と表示されるのですが、GPU の情報が書かれている欄には 2 つの GPU が表示されているので Blackmagic eGPU Pro も認識していることがわかります。(片方は CPU 内蔵の Intel UHD Graphics 630 で、もう片方が Blackmagic eGPU Pro だと思います)。

eGPU 未接続時 eGPU 接続時
IMG_6404.jpg IMG_6405.jpg

▲ 表の右の画像のように、GPU(s) の欄に [0x1002 0x687F] が追加されていれば Blackmagic eGPU Pro を認識している状態だと思います。eGPU not detected というのが気になりますが。

その画面でキーボードの q を押すと、macOS を起動するか Windows を起動するかを選択できますので、Windows を選択してリターンキーを押します。すると Windows 10 が起動します。

IMG_6401.jpg
▲ キーボードの上下の矢印キーで移動し、Load Windows を選択してリターンキーを押します。

なお、apple_set_os.efi のときはこの黒い画面が表示されている間に eGPU を接続すると認識して画面を更新してくれますが、automate-eGPU EFI の場合は接続を認識してくれなかったので、電源を入れる前に Blackmagic eGPU Pro を接続しておく必要があります。

しかしこれも同じ結果でした。発生した症状も試したことも apple_set_os.efi と同じです。

? rEFInd を使用する

作業する際に使用する OS
macOS

rEFInd というのは、フリーで使用できるブートローダです。これを使わなくても Mac の電源を入れてオプションキーを押し続けた状態で起動する Apple のブートローダを使用すれば良いような気もしますが、これでうまくいったという例もあったので念のため試してみました。

eGPU でどこまでゲームが速くなるか?

rEFInd のインストール方法は、上記の記事に書いてあるものを参考にさせていただきました。rEFInd の場合はオプションキーを押し続ける必要はない(というかオプションキーを押し続けると Apple のブートローダが起動してしまいます)ので若干楽です。

再起動するかシステム終了してからもう一度電源を入れると rEFInd の画面が表示されます。ここで先ほど紹介した apple_set_os.efi や automate-eGPU EFI をロードして Windows 10 を起動しますが、やはりこれも結果は変わりませんでした。

??????? AMD の公式ページからドライバをインストールする

作業する際に使用する OS
Windows 10

ドライバエラー(エラー 12)と表示されることが多かったですが、そもそも正しいドライバがインストールされていないのでは? と思い、公式ページからドライバをインストールすることにしました。

Blackmagic eGPU Pro に搭載されている GPU は AMD Radeon RX Vega 56 なので、このチップに対応したドライバを AMD のページからダウンロードします。

Radeon™ RX Vega 56 Drivers & Support

Windows 10 - 64 ビット版を選択してダウンロードします。Revision Number が異なるものがいくつかありますが、試したのは一番上のものです。

radeon_driver_download_page.png

ダウンロードしたら、EXE ファイルを実行します。Blackmagic eGPU Pro を接続していない状態で実行すると、AMD の GPU を認識できませんという趣旨のエラーが表示されるのであらかじめ接続しておきます。この時点ではドライバエラーと表示されていても問題ありません。

接続するとインストールできるようになります。詳細オプションで工場リセットのチェック項目がありますが、チェックした場合は再起動を求められます。チェックしない場合とチェックする場合、両方試しました。

しかし、インストールは完了するものの、グラフィックスデバイスに潜在的な問題があるというエラーが表示され、ドライバを適用することができませんでした。インストール自体はうまくいっているようですが、やはり Blackmagic eGPU Pro は使えませんでした。

amd_driver_not_work.png

何度か試して、この画面が表示されたあとに再起動を求められることもありましたが、再起動しても特に何も変わりませんでした。

このエラー(エラー 207)に関してインターネットで調べてみてもよくわかりませんでした。

??????? BootCampDrivers を使用する

作業する際に使用する OS
Windows 10

bootcampdrivers.com にアクセスすると、ロゴの下に "Unofficial, turbo-charged AMD graphics drivers for Mac users running BootCamp" と書かれていたので、もしかして Boot Camp 環境では、AMD の公式ページのドライバではダメで、こちらを使用しないとうまくいかないのかな? と思いました。なのでこれを試してみることにしました。

ページ左上あたりの "Downloads" から "Windows 10 ..." → "2020 drivers ..." と進み、"Adrenalin April 2020 Red Gaming edition (Best FPS in games)" を選択しダウンロードします。

bootcampdrivers_download_page.png

外部ページに飛び、ダウンロードボタンを押すと何やらサインイン(サインアップ)を求められますが、サインインしなくても問題なくダウンロードできます。

インストール手順に関しては以下のリンクで YouTube 動画が公開されているのでそちらの動画を見ながら進めます。

BootCampDrivers Installation Video

おおまかな手順としては、DDU というものを使い既存のディスプレイドライバーを削除してから AMD のドライバをインストールするというものです。

BootCampDrivers からダウンロードしてきたフォルダの中にある Setup.exe というのが AMD のドライバになるのですが、これが AMD の公式ページからダウンロードしてきたものと同じなのか、それとも BootCampDrivers 用にカスタマイズされたものなのかは不明です。とりあえずここでは Setup.exe を起動してドライバをインストールしました。

YouTube の説明動画ではドライバインストール後に成功しましたというメッセージが出ていますが、ぼくの環境ではやはり公式ページからダウンロードしてきたドライバのときと同じようにエラー 207 が発生してしまいました。当然 Blackmagic eGPU Pro も使えない状態でした。

試行錯誤 1: 違うドライバをインストールしてみる

BootCampDrivers には何種類かのドライバが用意されており、その中に Red edition と書かれているものと Blue edition と書かれているものがあります。両者の違いが何なのかはよくわかりませんが、とりあえず両方とも試してみました。しかしどちらも同じエラー 207 が発生してしまいました。

試行錯誤 2: DDU で既存のドライバを削除後、AMD 公式ページからダウンロードしたドライバをインストールしてみる

もしかしたら既存のドライバが残ってしまっていたから、公式ページからダウンロードしたほうのドライバがうまくいかなかったのかなとも思い、既存のドライバを削除後、公式ページからダウンロードしたほうのドライバをインストールしました。しかし結果は変わらず。


BootCampDrivers からダウンロードしてきたドライバも、公式ページからダウンロードしてきたドライバのときと同様に、工場リセットや、インストール後の再起動なども行いましたがやはりダメでした。

Mac mini や Blackmagic eGPU Pro 自体は正常に動作する

ここまでくるともはや Blackmagic eGPU Pro が壊れているんじゃないかと疑うレベルでうまくいきません。

なので、そもそも Blackmagic eGPU Pro が正しく動作しているかを確認するために、macOS を起動して、macOS に対応しているゲームをやってみることにしました。もちろん購入することになるので、実際にやりたいゲームの中で、macOS に対応しているものを Steam で探しました。

正直やりたいゲームはほとんど Windows のみ対応で macOS 対応のものがほとんどなかったのですが、「Life is Strange 2」は macOS 対応だったので購入して遊んでみることにしました。

まず Blackmagic eGPU Pro を接続せずにプレイしてみると、明らかに映像処理が追いついていなくて映像がカクカクでした。設定で解像度や画質を調整することができるのですが、画質を一番低い設定まで落として解像度も HD くらいまで下げてみたのですが、それでも 30fps 出ていないくらいカクついていました。

次に Blackmagic eGPU Pro を接続してモニターを eGPU 側に接続してプレイしました。結果は明らかに違いました。かなりサクサク動作します。解像度を 4K にして画質も最高画質にしても問題ありませんでした。ただ視点切り替えのときに若干フレームレートの低下が気になるので、解像度を 2K まで下げたら全く問題なくなりました。

というわけで、Blackmagic eGPU Pro 自体は間違いなく動作はします。しかしやはり Boot Camp 環境だとうまくいきません。もしかしたら Windows が認識していないだけで、本当は eGPU が有効になっているんじゃないか? とか淡い期待を抱いたりもしましたがそんなことはありませんでした。

うまくいかなかった理由はわからない

もちろん Apple は Boot Camp 環境では非対応だと言っているので文句があるわけでは全くないのですが、非公式とはいえこれだけインターネット上に解決策が示されているのに、どれを試しても全くうまくいかないのは正直よくわかりません。

ただ、インターネット上で紹介されているのは、MacBook Pro + eGPU box や、Mac mini + Blackmagic eGPU (Pro がつかないもの) だったりして、Mac mini + Blackmagic eGPU Pro という、全く同じ組み合わせの例でうまくいったという記事は、調べた限りでは見つかりませんでした。まあでも、eGPU であることに変わりはないので、本質的には変わらないと思うのですがねえ......。

ましてや Mac mini + Blackmagic eGPU (Pro がつかないもの) でうまくいっている例があって、Blackmagic eGPU Pro に搭載されている AMD Radeon RX Vega 56 は Blackmagic eGPU Pro 専用に作られたチップではなく Windows PC にも搭載されているものであり、Mac と相性が悪いと言われている(サポートも切れている)NVIDIA の GeForce でもないのに、うまくいかないのは一体なぜなんでしょう......。

しかも、Mac mini には最近の MacBook Pro のように dGPU が搭載されていない分、dGPU を共存させて動作させるとかさせないとかいうことを考える必要もないのでむしろうまくいく可能性は高い気がするんです(詳しくはわかりませんが egpu.io のフォーラムではそのように書かれていました)。

まだ試していない方法

調べた限りで出てきた方法はほとんど試しましたが、まだ試していないものといえば少し古いバージョンの Windows 10 を使うとか、古いバージョンの macOS を使うというものです。

でもここ数日、さんざんやってダメだったので、これでうまくいく希望は正直持てないし、わざわざ古いバージョンの OS を入れ直すという気力も起こりません。仮にこれでうまくいったとしても、そうなるともう OS のアップデートができなくなってしまうということになります。古いバージョンで脆弱性が発見されたとなればもうお終いです。

ストレージ不足(個人的な話)と eGPU のパフォーマンス低下の問題

あと、これはぼく個人の環境の話になりますが、Mac mini のストレージは 512 GB のもので、Boot Camp 環境なので、Windows 10 に割ける容量はもっと少なくなります。そうなるとゲームをインストールするには少し足りなくなってくる気がします(たとえば FF15 は 100 GB 使うようです)。まあ外付け SSD とかをつければ良いのかもしれませんが、外付けだらけでデスクがごちゃごちゃになります。

それから、Blackmagic eGPU Pro はたしかに高性能ですが、VR ゲームを快適に動作させるほどのパワーがあるかどうかは謎です。eGPU だとその性質上、パフォーマンスが 20 〜 30 % ほど落ちてしまうようなので、AMD Radeon RX Vega 56 の 75 % ほどの性能と考えると、どうなんでしょうね......。

というわけで、結論としては ↓

結論

PC ゲームをやりたいなら、素直にゲーミング PC を買うか自作しましょう(知ってた)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxコマンドを言語化

はじめに

私のPCはMacです。OSはMacOSを使用しています。
ターミナルではLinuxOSと同様にLinuxコマンドが使えます。
シェルはzshでした。ターミナルでecho $0と入力すると、使っているシェルを見ることができます。bashを使っている物だと思っていたのですがzshでした。

bashとzshの違いは以下のリンクで調べ学びました。
- bashとzshの違い

Linuxコマンドを、今までなんとなく使っていたのですが、そもそもMacOS使ってるのにLinuxOSのもの使ってるってどうゆうこと?と調べていくうちに疑問に思ったので調べました。ターミナルでのコマンドはLinuxOSとほぼ共通しているらしいです。以下のリンクで疑問が結構解消できました。
- Linuxとは
- ターミナルの使い方

この記事では、アウトプットするためにLinuxコマンドを言語化しました。ほぼ自分の学習用です。
間違いがありましたら訂正していただけると幸いです。

Linuxコマンドを言語化

tabキー 
入力補完ができます。もう一回tabキーを押すと候補を表示してくれます。

control + r 
前に使ったコマンドを検索。更にcontrol + r で複数検索に引っかかている場合の2つ目を表示します。

control + c
現在入力中のコマンドを安全に終了できます。

cd - 
直前にいたディレクトリに移動します。

cd ..
1つ上の階層のディレクトリに移動します。

cp -r
再帰的にデイレクトリをコピーします。再帰的とは、中にあるディレクトリやファイルまで見るということです。多分。
参考サイト: 再帰的とは?

cp ファイル名 コピー先
ファイルをコピーできます。

mv
ディレクトリやファイルを移動できます。

mv ファイル名 変更後のファイル名
現在いるディレクトリのファイル名を変更できます。

ls -R
再帰的に今いるディレクトリの下の階層のディレクトリやファイルを表示します。
参考サイト: 再帰的とは?

mkdir
ディレクトリを作成します。

touch 
ファイルを作成します。
参考サイト: 新規ファイル作成

rmdir
空のディレクトリを削除できます。
中身がある場合はrm -rで削除できます。

ls
今いるディレクトリの直下にあるディレクトリやファイルを表示します。

mv
ディレクトリやファイルを移動します。

cat 
指定したファイルの中身を表示できます。

less
中身が長い時に使えるコマンドです。中身を表示してくれます。control + f1画面先にcontrol + b1画面前にg画面の先頭G末尾に移動qlessの終了

history
コマンドの履歴を見ることができます。! + historyで表示された数字でコマンドを呼び出して実行することができます。!!で直前のコマンドを実行することもできます。!-2だと2個前のコマンドを実行することができます。

!$
直前に渡した引数(文字列)を呼び出すことができます。
前にlsコマンドを実行していたと仮定して!lを入力すると直前に使ったlsコマンドを実行できます。前にpwdコマンドを実行していたとしたら!p!pwなどで直前に使ったpwdコマンドを実行できます。
実行せずに直前に使ったコマンドを確認するには!lに続けて:pを入力します。そうすると直前に使ったlsコマンドを実行せずに表示してくれます。!pw:pだと直前に使ったpwdコマンドを実行せずに表示してくれます。
!pw:pの後に、!!を入力すると表示されていたpwdコマンドが実行されます。

その他参考URL

最後に

この記事を読んでいただきありがとうございました。

Twitter: @SHUN15949496

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ruby環境構築まとめ~mac版~

はじめに

あたらしくmacを購入して、Rubyの環境を作り直す機会があったので備忘録としてまとめます。

Homebrewをインストール

まずhomebrewをインストールします。(もうすでにインストール済みの人は大丈夫です)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

このコマンドをターミナルで実行するとインストールが完了します。

wgetのインストール

wgetをインストールします。

brew install wget

Rubyのインストール

wgetのインストールが完了したら、Rubyのインストールに入っていきます。
手順としては
- homebrewでrbenvをインストール
- パスを通す
- rubyのインストール
と言った感じです。
では、rbenvをインストールしていきます。

brew install rbenv
brew install ruby-build

この二つのコマンドを実行してインストールします。
インストールが終わったら、パスを通していきます。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc
source ~/.zshrc

これでrbenvのインストールとパスを通すことができました。
いよいよRubyをインストールしていきます。

rbenv install --list
rbenv install 2.6.6
rbenv rehash
rbenv global 2.6.6

1つ目のコマンドでダウンロードできるRubyのバージョン一覧を確認できます。
2つ目のコマンドでダウンロードするRubyのバージョンを指定します。(今回は2.6.6を選択しました)
3つ目のコマンドでrbenvの再読み込み、4つ目でdefaultで使うバージョンの指定をしています。

一通りの作業が終わったら、ターミナルで

ruby -v

をやって自分が先ほど指定したバージョンになっているか確認してみてください。
なっていなかったら、pathがうまく通ってない可能性があるので、zshrcを確認してみてください。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

firebase login ができない時の対処法

概要

ReactをFirebaseにHostingしようとした際にハマったのでメモ

状況

yarn create react-app my-app

して

yarn add firebase-tools

して

firebase login

ちなみにこの後に聞かれるY/nはどっちでもいいです。

エラー

Firebase_CLI.png

何度やってもログインできない、、、。

対処法

調べたらこれをするといいらしい。

firebase login --no-localhost

これでもできない場合はsslの検証をパスする以下の環境変数を設定します。

export NODE_TLS_REJECT_UNAUTHORIZED=0
firebase login

Firebase_CLI-2.png
Woohoo!

解決

firebase init

:fire::fire::fire::fire:

? What do you want to use as your public directory? (public) //buildにします
yarn build
firebase deploy

で公開完了。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macのバージョンをコマンドラインから確認する

以下のコマンドを使う

$ sw_vers

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.6
BuildVersion:   17G4015
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

写真を正しい向きで表示する(EXIF情報を元に画像自体を回転する)

iPhoneなどで撮影した写真を開くと、思った通りの向きで表示されないことがある。
私が直面したのは、iPhoneの写真アプリだと正しい向きで表示されるが、PS4のメディアプレイヤーだと変な向きで表示されてしまう、というもの。

PS4でも正しい向きで表示されるようにする、というお話。

2020.05.31 追記

zshスクリプトで実装してみた。
https://github.com/hosota9/ImageRotation

どうして変な向きで表示されるのか?

iPhoneで撮影した写真はJPEG形式(もしくはそれに近い形式)で保存される。

JPEG形式の画像ファイルには、画像以外にも撮影日や撮影場所など様々な情報が記録されており、その中には撮影時のカメラの向き(回転情報)も含まれている。
この回転情報のおかげで、iPhoneを90°回転して撮影したとしても、表示するときにカメラの向きが考慮され、正しい向きで表示することができる。

ただし、世の中にはこの回転情報を無視して画像を表示するソフトがある。
PS4で変な向きで表示されたのは、これが原因と思われる。

どうすれば良いか?

画像自体を回転して保存し、回転情報を削除すれば、どんなソフトでも正しい向きで表示されるはず。

やってみた

回転情報の確認

まずはexiftoolというツールで回転情報(EXIF情報)を確認する。
Homebrewが入っていれば簡単にインストールできる。

$ brew install exiftool

回転情報は Orientation という項目に格納されている。

$ exiftool <JPEG画像ファイル名> | grep Orientation | awk -F": " '{print $2}'
Rotate 90 CW

"Rotate 90 CW" すなわち「時計回りに90°回転(して表示する)」の意。

画像自体の回転

画像自体の回転は、MacOSに標準で入っているsipsコマンドが利用できる。
時計回り90°回転する場合は、以下を実行する。

$ sips -r 90 <JPEG画像ファイル名>

回転情報の削除

ここまでの操作で、回転情報を無視するソフトで正しい向きで表示されるようになる。
ただし、回転情報を考慮するソフトでは変な向きになるため、回転情報を削除する。

回転情報を削除するには、exiftoolOrientation を "1" すなわち「回転しない」に変更する。

$ exiftool -Orientation=1 -n <JPEG画像ファイル名>

以上です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

朝飯前にMacのローカルにLaravel環境を構築する

Mac ローカルにPHPをインストールする

サクッとLaravel環境を作りたい時ってありますよね?
カップ麺を作る時間すらも惜しい...そんな時...

MacのローカルにLaravel環境を構築する手順をご紹介します。

Mac標準のPHP

$ which php
/usr/bin/php

$ php -v
PHP 7.3.11 (cli) (built: Feb 29 2020 02:50:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies

これでもいいんですけど、バージョンが古かったりzip拡張機能がデフォルトで入ってなかったりするので少し面倒なので、HomebrewでPHPをインストールします。

複数のPHPバージョンを使い分けたい訳ではなく最新版のPHPが使えればいいので、今回はanyenvやphpenvは使いません。

Homebrew からPHPをインストールする

$ brew install php

~/.zshrc に環境変数のPATHにPHPのパスを追加します。

$ echo export PATH='/usr/local/opt/php/bin/php:$PATH' >> ~/.zshrc

シェルを再起動して設定ファイルを読み直します。

$ exec $SHELL -l

PHPのバージョンが更新されたらokです。

$ php -v
PHP 7.4.6 (cli) (built: May 29 2020 01:44:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies

HomebrewからインストールしたPHPに入っているPHP拡張機能です。

$ php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
phpdbg_webhelper
posix
pspell
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

これだけ入っていれば十分でしょう。

Homebrew からComposerをインストールする

$ brew install composer
$ composer -V
Composer version 1.10.6 2020-05-06 10:28:10

SQLite

データベースは何でもいいですが、今回は導入が手軽なSQLiteにします。

$ brew install sqlite
$ sqlite3 --version
3.28.0 2019-04-15 14:49:49 378230ae7f4b721c8b8d83c8ceb891449685cd23b1702a57841f1be40b5daapl

Laravelインストーラ

Laravelのバージョンの指定は必要なく最新版をインストールして使いたいのでLaravelインストーラを入れておくと便利でしょう。

$ composer global require laravel/installer

グローバルにlaravel/installer が追加されていたらokです。

$ composer global show | grep laravel
Changed current directory to /Users/ucan/.composer
laravel/installer         v3.1.0  Laravel application installer.

~/.zshrc に環境変数のPATHにPHPのパスを追加します。

$ echo export PATH='$HOME/.composer/vendor/bin:$PATH' >> ~/.zshrc

シェルを再起動して設定ファイルを読み直します。

$ exec $SHELL -l

Laravelのインスール

上記の作業は寝る前に事前に済ませておきましょう。
Laravelのインストールはもはや朝飯前です。

$ laravel new blog
$ cd blog
$ php artisan --version
Laravel Framework 7.13.0

Laravelビルトインサーバを起動する

$ php artisan serve

http://127.0.0.1:8000

control + c でサーバーを停止できます。

LaravelとSQLiteを接続する

.env を修正する

DB_CONNECTION=sqlite
#DB_CONNECTION=mysql
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=laravel
#DB_USERNAME=root
#DB_PASSWORD=

データベースファイルを作成する

$ touch database/database.sqlite
$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (0 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (0 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (0 seconds)

最後に

Laravelの環境構築の記事をいくつか書いているのでよかったら読んでもらえたら嬉しいです!
(情報が古くなってるものもありますが...)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ターミナルでgit branch名を表示する

ターミナルにブランチ名を表示

いいかげんgit branchって打ちたくないのでターミナルでブランチ確認できるように設定追加するようにしました。

$ sudo vim ~/.bash_profile

# Git branch in prompt.
parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

最後に$ source ~/.bash_profileで更新すれば良い。

参考URL

https://gist.github.com/joseluisq/1e96c54fa4e1e5647940

余談

ちなみにユーザ名とホスト名も表示したかったら以下のように書けば良い。
\uはユーザ名で\hはホスト名らしいです。長いので自分は表示しない。

export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac で VHS から動画を取り込み 480i MOV を ffmpeg で 480p H.264/mp4 にする

タイトルまんまです。いま、自宅の片付けの一環として VHS で持っている動画を電子化して物理媒体を破棄する作業中でして、ここに自分の備忘録も兼ねてその方法をメモしておきます。

用意するもの

  • VHS ビデオデッキ
    • メルカリで探すと、条件が悪く動作確認無しのもの 2000 円程度から業者っぽい質がある程度担保されてそうなもの 5000 円程度までの価格レンジ (送料込み) で手に入ります。
    • 今回用意したのは懐かしのアイワブランド (Sony 買収後) のビデオデッキ HV-FR150 です。
  • RCA コンポジットビデオキャプチャコード
    • Amazon で "VHS ビデオキャプチャ" で検索すると色々でてくるやつで、謎の輸入品 1200 円程度から、名の通ったメーカー品 4000 円程度までの価格レンジです。
    • 今回は口コミ等を参考に、macOS Catalina で動作確認が取れている "ezcap 159 USB 2.0 Video Capture" というのを選びました。

Mac への取り込み

Windows 上でのビデオキャプチャは専用ドライバ・専用ソフトで行うのが主流なようですが、Mac ではドライバだけ入れて QuickTime で録画するのが主流のようです。

ezcap の箱を開けるとドライバの入った光学ディスクが同梱されていて、Mac 対応を謳いながらも印字されているロゴが OS9 時代のロゴで一抹の不安を覚えましたが、macOS Catalina でもすんなりとドライバがインストール出来ました。

ドライバが入ったら、MacBook Pro <-> USB Type-C / Type-A アダプタ <-> ezcap <-> RCA コンポジットケーブル <-> ビデオデッキのビデオ出力、の形に接続して QuickTime を立ち上げます。

QuickTime では、ファイル -> 新規ムービー収録、を選ぶと新しいウィンドウが立ち上がり、録画が可能になるので、動画と音声の入力に ezcap を選びます。
new-movie.png
usb-input.png

ここでビデオデッキからの映像や音声の出力が確認できれば準備は完了です。ビデオデッキ側の操作で VHS を再生し、QiuckTime 上の録画ボタン (赤い丸) をクリックすれば録画が始まります。実際の再生時間分は待たないといけないので、2 時間テープの 3 倍モードなんかを取り込みたい場合は 6 時間かかります。気長に待ちましょう。

動画のトリムと変換

前述の方法で録画すると動画のフォーマットは Mac 標準の MOV 形式になります。動画のエンコードを完全にリアルタイムで行う必要があるため、エンコードに時間がかかる高効率な動画形式を使えない事情は分かるのですが、MOV 形式はファイル容量がクソでかくて 720 x 480 でも 1 時間で 20GB くらいになります。

VHS から取り込む際に含まれてしまう最初と最後の要らない部分をトリムしたいところですが、録画が終わったそのままの状態でオンメモリ (実質的には SSD 上へのスワップ状態) で編集しようとすると、ふいに長時間レインボーカーソルになったりして、録画に待たされた何時間もの時間が無駄になってしまわないかと心臓に悪いです。なので、録画が終わったらまずいったんファイルに保存してしまうことをお勧めします。あとは QuickTime 上でトリムも出来るのでトリムした上で保存し直しましょう。

ストレージ容量が無限にあるならこれで終わりでも良いですが、SD 画質 1 時間に 20GB はさすがにあほらしいので H.264 に変換したいですね。また VHS はインターレース動画なので、ブラウン管で見ていた時代ならまだしも、現代のディスプレイで動きの速い場面を見ると視聴に耐えません。ですので ffmepg で動画を変換しこれらの問題を解決します。

ます Homebrew が入ってない場合は Google など参考にインストールし、次のコマンドで ffmpeg をインストールします。

$ brew install ffmpeg

そして次のコマンドで動画を変換します。movie.mov が入力ファイル、movie.mp4 が出力ファイルです。

$ ffmpeg -i movie.mov -vf w3fdif -pix_fmt yuv420p movie.mp4

これは色々検索して辿り着いたオプション値で (ありがとうインターネット!)、簡単に説明すると -vf w3fdif がインターレースの解除、-pix_fmt yuv420p が Mac の QuickTime で再生可能な H.264 動画を生成するオプション、拡張子 .mp4 で出力形式を自動判別、という感じです。それらのオプションに指定可能な追加パラメータもあるのですが、全てデフォルトで上手く動いているようなので、特に何もいじっていません。

そして変換が完了すると、ファイル容量は元のファイルの約 3 % になり、動きの速い場面でもブレが見えないプログレッシブ動画になっていました。

最後にオマケになりますが、これらのオプションを覚えられる気が全くしなかったので、.bash_profile に簡単な関数を追加して、コマンドラインから簡単に使えるようにしています。

.bash_profile
function conv-movie(){
    ffmpeg -i $1 -pix_fmt yuv420p $2
}
function conv-movie-deinterlace(){
    ffmpeg -i $1 -vf w3fdif -pix_fmt yuv420p $2
}
$ movie-conv-deinterlace movie.mov movie.mp4
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacでNintendo Switch のジョイコンを使う

プレゼンのときにジョイコン使いたい

古い記事ではJoystick Mapperを推奨しているんだけど

古い記事を見ると、有料ソフトの「Joystick Mapper」を紹介している記事が多かったので買おうかと思ったけど、2020/05/30時点の評価は、2.9。
しかも、「使えなくなりました」というコメントまで記載しているので、これは有料で買ってうまく行かなかったら嫌だな。。と。
https://apps.apple.com/jp/app/joystick-mapper/id528183797?mt=12

見つけたぞ。今はまだ無料だ。JoyKeyMapper。

色々App Storeで漁っていたら評価が5.0の「JoyKeyMapper」を見つけた。

https://apps.apple.com/jp/app/joykeymapper/id1511416593?mt=12

迷わずインストールしよう。

つなぎ方

ジョイコンをニンテンドースイッチ本体から取り外すと、SL,SRの間に「ボタン」があるので押すとペアリングモードになるので、MacのBluetoothをONにすると簡単に接続ができる。

image.png

Joy-Con(L) または (R) をおもむろに接続し、JoyKeyMapperを起動

image.png

最初は、何も設定されていないので動かないが、上記の設定を参考に好きにカスタマイズすると、色々使えて便利かと思う。
Chromeブラウザの戻る、進むを左と右に割り当てて、ブラウジングも片手でできるようにした設定。

これで、プレゼンをジョイコンですることができるはずだ。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macの電源ボタンを無効化する方法

Macの電源ボタンを無効化する方法について紹介します。

意外と日本語の記事が見当たらなかったのでこちらに残しておきます。

結論

PowerKey.appという有料アプリ(2020年5月現在で5USD)を使うことで、電源ボタンを無効化、もしくは他のキーにリマップすることができます。

注意点として、電源ボタンの長押しによるシャットダウンは防ぐことができません

参考: PowerKey https://github.com/pkamb/PowerKey

なぜMacの電源ボタンを無効化したいか?

私はMac Book ProのJIS配列を使っています。
ただ、キーボードはUS配列の方が手に馴染みます。

そこで、US配列の「Anker ウルトラスリム Bluetooth ワイヤレスキーボード」や「Magick Keyboard 2」をMacに載せて使っています。

外付けのキーボードをMacに載せるとタイピングのたびに内臓キーボードが反応してしまい困るわけですが、そこはKarabiner-Elements.appの出番です。外部キーボードを接続している時は内臓キーボードを無効化できます。
ただ、Karabiner-Elements.appでは唯一電源ボタンは無効化できません。

電源ボタンが無効化できない、つまり有効化になっていると、タイピングのたびにちょっと電源ボタンに触れただけでスリープモードになってしまいとても不便に感じていたわけです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macのcurl使ってクライアント証明書付きでアクセスするとcurl: (58) could not load PEM client certificateが出る

MacでCurl使ってクライアント証明書を添付してアクセスすると

okanofumiaki@okano ~ % curl https://hogehoge.net/ -E ./user.pfx:password 
curl: (58) could not load PEM client certificate, LibreSSL error error:09FFF06C:PEM routines:CRYPTO_internal:no start line, (no key found, wrong pass phrase, or wrong file format?)

とエラーがでます。
どのように解決したかを記載します。

結論

homebrewにてopensslをインストールする

原因

MacOSにてopensslで呼び出されるモジュールはopensslではなくLibreSSL
opensslのバージョンを確認することで確かめられる。

okanofumiaki@okano ~ % openssl version
LibreSSL 2.8.3

まじか・・・・・

解決方法

opensslをインストールします。
ググればいろいろ出てきますが、

brewでopensslをインストール

brew install openssl

パスが通ってないのでbash_profileに書く

echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

bash_profileを読み込む

source ~/.bash_profile

opensslのバージョンを確認する

okanofumiaki@okano ~ % openssl version
OpenSSL 1.1.1d  10 Sep 2019

これでオッケー。

検索用キーワード

Mac
openssl
curl
client certificate
LibreSSL error
クライアント証明

余談

あ…ありのまま 今 起こった事を話すぜ!

「おれはopensslを実行していたと思っていが、opensslじゃなかった・・・」

な… 何を言っているのか わからねーと思うが 
おれも 何をされたのか わからなかった…
頭がどうにかなりそうだった… 催眠術だとか超スピードだとか
そんなチャチなもんじゃあ 断じてねえ
もっと恐ろしいものの片鱗を 味わったぜ…

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む