バージョンを誤魔化してNVIDIAドライバを入れる

これはMojaveでNvidiaのドライバを動かす方法ではありません。Mojave対応ドライバが待ち望まれている時節柄紛らわしい記事ですみません。この方法でWebドライバがMojaveで動かなくはないらしいですが、性能が全く出ないらしいです。

経緯

MojaveではNvidiaドライバが動かないので、Nvidiaを搭載したマシンはHigh Sierraで使っていました。先日、それにうっかりPublic Beta版のセキュリティアップデートを当ててしまいました。これです。

通常盤のアップデートだと勘違いしました。ベータ版配布をoffにしておくべきでした。

アップデートしたことでmacOSのビルトが上がりました。17G4005です。

配布されているWebドライバの最新版は17G3025用なのでバージョンチェックで動かなくなってしまいました。そこで、17G3025用のドライバを、無理やり17G4005にインストールして動かすことにしました。

バージョン違いのドライバをインストールする

17G3025用のドライバを入手しても、バージョンが違うと、そもそもインストールできません。

そこで17G3025用ドライバのパッケージを開いて、設定を変更します。まずは、パッケージユーティリティを使って展開します。

pkgutil --expand (pkgへのパス) (展開先ディレクトリ)

例えば

pkgutil --expand WebDriver-387.10.10.10.40.108.pkg exp

とします。こうするとexpというディレクトリに内容が展開されます。この中に、Distributionという名前のテキストファイルがあります。これを開いて、インストールチェックをしているところ

function InstallationCheck()
{
if (!validateSoftware()) return false;

return true;
}

をコメントアウトします。

function InstallationCheck()
{
//if (!validateSoftware()) return false;

return true;
}

もしくは、後ろの方にvalidateSoftware()関数の定義がありますので、そこのビルト番号を書き換えても良いです。つまり、

function validateSoftware()
{
var supportedOSVer = "10.13.6";
var supportedOSBuildVer = "17G3025";

というところを、

function validateSoftware()
{
var supportedOSVer = "10.13.6";
var supportedOSBuildVer = "17G4005";

とします。

次に、以下のコマンドでパッケージし直します。

pkgutil --flatten exp webdriver.pkg

これは上の例でexpという名前のフォルダを作った場合です。このパッケージを使ってWebドライバをインストールします。

バージョン違いのドライバを動かす

インストールはできましたが、バージョンが合わないのでドライバが動きません。Not compatibleというメッセージが出てしまいます。そこでパッチを当てます。

ドライバにパッチを当てるためのスクリプトが、benjamin.dobellさんによって配布されていまう。以下のコマンドで入手できます。

curl -O https://raw.githubusercontent.com/Benjamin-Dobell/nvidia-update/master/nvidia-update.sh

こうしてできたnvidia-update.shを実行可能にして起動します。

chmod a+x nvidia-update.sh
./nvidia-update.sh

最初の質問(ダウンロードするか?)にはN、次の質問(パッチを当てるか?)にはYとタイプします。そして再起動します。無事動くようになりました。

ここまで、SIPは有効のままでも問題なく作業を進められました。

返信を残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)