ターミナルからThunderboltポートを無効(および再度有効)にするにはどうすればよいですか?


8

Matrox DualHead2Go MEと2011年後半の15インチMBP(10.9.2を実行)でこの問題が発生しています。ディスプレイがスリープから復帰すると、外部モニターが再起動しません。

これは、Matroxユニットが独自のスリープモードに入り、OSのスリープ解除信号によって再起動されないためであると収集しました。

機能するのは、Matroxが接続されているthunderboltケーブルのプラグを抜いて差し込むことです。ただし、1日に何度もケーブルを抜き差しすることによる摩耗を心配しているため、これは理想的とは言えません。

thunderboltケーブルの常時のプラグイン/アンプラグを回避するために、ターミナルからthunderboltドライブのオンとオフを切り替える方法はありますか?


1
受け入れられた回答に関するメモ:どちらも良かったし、役に立ちました。私は自分のケースに関するより具体的な情報を使って回答に賞金を与え、最も簡単な(imho)ソリューションを提供する回答を受け入れました。
デニス

回答:


2

Hackint0shコミュニティは、すべての人が使用できるいくつかのkext管理ツールを作成してきました。これは、本物のMacintoshを所有して操作する人も含みます。

これらのツールを使用して、何がうまくいくかを実験して正確にすばやく見つけることができます。SRToolsには、少なくともOSの拡張機能をいじるときにマシンを起動できない状態のままにしないようにするための履歴機能と取り消し機能さえあります。わかりました...ユーザーランドはユーザーランドであり、カーネルスペースはカーネルスペースですウィキペディアのページを除いて、トウェインが出会うことはありません。

ここでのアイデアとこれらのツールの使用目的は、実験することです。Finderで、[移動]メニューの下に、「フォルダへ移動...」またはタイプを選択⇪ shift- ⌘ command- gとタイプ/システム/ライブラリ/拡張アドレスフィールドにその表示され、開いたウィンドウで、落雷」と拡張のための外観"ファイル名に。上記のリンクされたユーティリティのいずれかを使用して、さまざまなkextのアンロードとロードを使用して設定をテストし、実際に必要なものとして明らかになるものがあるかどうかを確認します。その後、後でプロセスを合理化できます(kextをアンロード/再ロードするために適用されている非常に単純なbashスクリプトを使用する場合など)。

特定の設定をカスタマイズする方法を発見するための優れたリソースは、開発者ライブラリを閲覧することです。もちろん、ウィキペディアは発見に非常に重要であり、時には理解を深めることもあります。


3

Appleには、Thunderbolt-Connection用のいくつかのkextがあります。

AppleThunderboltDPAdapters.kext
AppleThunderboltEDMService.kext
AppleThunderboltIP.kext
AppleThunderboltNHI.kext
AppleThunderboltPCIAdapters.kext
AppleThunderboltUTDM.kext
IOThunderboltFamily.kext

あなたが探しているコマンドは次のいずれかだと思います:

sudo kextunload /System/Library/Extensions/AppleThunderboltPCIAdapters.kext
sudo kextload /System/Library/Extensions/AppleThunderboltPCIAdapters.kext

または

sudo kextunload /System/Library/Extensions/IOThunderboltFamily.kext    
sudo kextload /System/Library/Extensions/IOThunderboltFamily.kext

Mac ProにThunderboltポートがありますが、現在デバイスはありません。そのため、どのkextがトリックを実行するかを正確に伝えることはできません。

- さらに詳しい情報 :

Thunderboltは基本的に、DisplayPort接続を介してトンネルされたPCIeです。ACPIPlatformまたはIOPCIFamilyカーネル拡張に基づいていると想像できます。どちらの方法でも、それらをアンロードする場合は、座っているブランチを切断する可能性があります。

Appleは、Thunderboltドライバーの作成に関するドキュメントと、デバイスがまだオンラインかどうかを確認する方法をここで公開しました

また、「PCIの場合、I / Oキット内のI / O PCIファミリ(IOPCIFamily)は、コントローラチップ内のPCIブリッジとダウンストリームブリッジまたはデバイスを列挙する役割を果たします。」

さらに:「PCIデバイスドライバーは、I / Oレジストリの親を再帰的に検索して、キーIOPCITunnelled(...)のThunderboltデバイスが接続されているかどうかを判断できます。」

また、開発者ライブラリもご覧ください

Thunderboltは複雑なテクノロジーであり、小さなプログラムを作成するか、デバイスがオフラインの場合にドライバーをチェックして再ロードする起動スクリプトを作成することができます。プラグを抜いて再度差し込む代わりに、手動で行うことができます。


それはsudo kext[un]load /System/Library/Extensions/IOThunderboltFamily.kextコマンドですが、次のエラーが発生し(kernel) Can't remove kext com.apple.iokit.IOThunderboltFamily; services failed to terminate - 0xdc008018. Failed to unload com.apple.iokit.IOThunderboltFamily - (libkern/kext) kext is in use or retained (cannot unload).ます。これをオーバーライドする方法を教えてください。
デニス

@デニス私はこれをやろうとしたときに同じ問題に遭遇しました。私はstackexchangeに関する説明を見つけました:stackoverflow.com/questions/13536970/… そして、chillinによってリストされたSRToolsを試しましたが、それは私のTB->イーサネットアダプターで機能するようです。しかし、少なくとも3つのkextをアンロードする必要があります
rwenz3l

2
@DennisこれらのKextには依存関係があります。「ロードされた別のkextがアンロードされるkextに依存している場合、アンロードは失敗します。kextstat(8)ツールを使用して、kextに依存関係があるかどうかを判断できます。」
njboot 2014年

SIP無効にした後、それを試してみてください@Dennis
サヤン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.