(54)【発明の名称】ハイレベルオペレーティングシステム(HLOS)ブートより前にスマートフォンに接続された周辺デバイスのためのデバイスドライバをプリフェッチするための方法および装置
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
[0025]次に、図面を参照しながら様々な態様について説明する。以下の説明では、説明のために、1つまたは複数の態様の完全な理解を与えるために多数の具体的な詳細を記載する。ただし、そのような(1つまたは複数の)態様は、これらの具体的な詳細なしに実施され得ることは明らかであろう。
【0018】
[0026]説明する態様は、スマートフォンなどのユーザ機器または端末をブートするための方法および装置に関する。特に、説明する態様は、ユーザ機器(UE)が、UEハイレベルオペレーティングシステム(HLOS)をブートすることの前に、UEに関連する周辺機器を構成することを可能にし得る。周辺機器を構成することは、UEに関連する周辺機器の各々のためのドライバに関係する情報を自動的にまたは手動でプリロードまたはプリフェッチすることと、ドライバ情報を、たとえば、フラッシュメモリに記憶することによってHLOSにとって利用可能にすることとを含み得る。HLOSをブートすることの前に、周辺機器を構成し、周辺機器に関連するドライバに関する情報をプリロードすることは、HLOSが簡略化され、より急速にブートすることを可能にし得る。また、周辺機器の構成を分離することと、HLOSからのドライバ情報のプリフェッチングとは、同じHLOSを使用する、任意の数のネットワーク上の多種多様なUEにわたるHLOSの集中管理および更新を可能にし得る。そのような態様はまた、簡略化された初期ソフトウェアプロビジョニングプロセスを行い得る。
【0019】
[0027]
図1は、たとえば、
図8のUE800などのユーザ機器をブートするための例示的な方法100の図である。一例では、方法100は、
図8のメモリ826およびトランシーバ825と組み合わせた
図8のプロセッサ824によって実行され得る。
【0020】
[0028]110において、方法100は、ユーザ機器(UE)のデバイスブートを実行することを含む。たとえば、方法100は、スマートフォンなどのUEのデバイスブートを実行し得る。いくつかの例では、デバイスブートは、UEブートに関連するハイレベルオペレーティングシステム(HLOS)の前の後の動作を実行するためにプリHLOS動作環境をロードさせ得る。
【0021】
[0029]120において、方法100は、UEのための周辺機器と関連するドライバとを構成することを含む。一態様では、周辺機器と関連するドライバとは自動的に構成され得る。別の態様では、周辺機器と関連するドライバとは手動で構成され得る。一例では、UEの周辺機器は、
図8の周辺機器821、822および823などのチップ(SPOC)ベースの周辺機器(たとえば、SPOC上に組み込まれた、プロセッサまたはモデムなどの周辺機器)上のスマートフォン、
図8の周辺機器811、812、813、814、および815などのオンボード周辺機器(たとえば、UEに組み込まれているが、SPOCの一部としてでない、タッチスクリーンまたはカメラなどの周辺機器)、ならびに/または
図8の周辺機器831および823などのオフボード周辺機器(たとえば、ワイヤードまたはワイヤレスインターフェースを介してUEに接続された、プリンタまたはカードスキャナなどの周辺機器)であり得る。一態様では、周辺機器構成120は、HLOSブートアップの前に、たとえば、HLOSブートアップより前のある時間に生じ得る。
【0022】
[0030]一態様では、たとえば、構成される周辺機器に関連するドライバは、HLOSをブートすることの前にプリフェッチされ得る。一例では、ドライバはプリHLOS動作環境によってプリフェッチされ得る。別の態様では、ドライバは、HLOSをブートすることの前にアクティブにされ得る。一例では、ドライバは、プリHLOS動作環境によってアクティブにされ得る。別の態様では、構成される周辺機器に関連する中間ドライバがUEによって識別され、ロードされ得る。一例では、構成される周辺機器に関連する中間ドライバをロードすることは、HLOSブートより前に、UEが、構成される周辺機器を使用することを可能にし得る。別の例では、プリHLOS動作環境は、中間ドライバを識別し、ロードし得る。別の例では、中間ドライバは、構成される周辺機器に関連するドライバと同じであるか、またはそれとは異なり得る。
【0023】
[0031]周辺機器構成120は、周辺機器決定122と、周辺機器プロファイル更新124と、周辺機器ドライバ準備126とを含み得る。122において、方法100は、UEに関連する周辺機器を決定することを含み得る。より詳細には、UEに関連する各周辺機器についての周辺機器プロファイルが、UEにおいて利用可能であるかどうかが決定され得る。一例では、特定の周辺機器がオンSPOC周辺機器であるのか、オンボード周辺機器であるのか、オフボード周辺機器であるのかにかかわらず、特定の周辺機器についてのプロファイルが、
図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブル中にプリロードされているかどうかが決定され得る。特定の周辺機器についてのプロファイルは、周辺機器プロファイルテーブル300中の(特定の周辺機器についての)エントリとして記憶され得る。一例では、
図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルは、
図8のUE800などのUEにおいて
図8のメモリ826などのメモリ内に記憶され得る。
【0024】
[0032]また、UEに関連するプロファイルを決定することは、いくつかの事例では、各周辺機器についてのプロファイルが完全であるかどうかを検出することを含み得る。完全なプロファイルは、周辺機器に関するすべての関連情報を含み得る。たとえば、完全なプロファイルは、周辺機器プロファイルテーブルの各フィールド中にそれについての情報があるテーブルエントリによって表され得る。不完全なプロファイルは、周辺機器に関するすべての関連情報を含むとは限らない。たとえば、不完全なプロファイルは、周辺機器プロファイルテーブルの1つまたは複数のフィールドから消失しているそれについての情報があるテーブルエントリによって表され得る。
【0025】
[0033]また、UEに関連するプロファイルを決定することは、いくつかの事例では、各周辺機器についてのプロファイルをエラー検査することを含み得る。たとえば、周辺機器プロファイルテーブル中のすべてのエントリは、そこでエントリがHLOSによって使用可能であることを保証するためにエラー検査され得る。識別され、処理され得るエラーは、たとえば、完全性ベースのエラー、正常範囲の外側にあるプロファイルエントリ、または手動で入力された可能性があるエントリ中の誤り(誤植など)を含み得る。
【0026】
[0034]124において、方法100は、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することを含む。完全なプロファイルの場合、周辺機器プロファイルテーブル中の関連するエントリは、たとえば、それがUEによって決定されたとき、エントリ中に消失した情報がなかったので、更新されないことがある。不完全なプロファイルの場合、周辺機器プロファイルテーブル中の関連するエントリは、決定された周辺機器に関する情報に基づいてUEによって更新され得る。
【0027】
[0035]126において、方法100は、HLOSによる使用のために各周辺機器プロファイルに関連するドライバを準備することを含む。一例では、ドライバ準備は、現在、完全であり、更新され、エラー検査された周辺機器プロファイルテーブルをフラッシュメモリ、またはHLOSにとって利用可能であり得る他の記憶媒体中にロードすることを含み得る。一例では、周辺機器プロファイルテーブルは、
図8のメモリ826などのメモリ中にロードされ得る。126の完了、および周辺機器プロファイルテーブルのHLOSによるアクセス時、HLOSは、HLOSが、UEに関連すると決定された周辺機器の各々に関連するドライバに関して必要とし得る情報のすべてを受信していることがある。
【0028】
[0036]130において、方法100は、HLOSをブートすることを含む。一例では、UEに関連するHLOSはブートアップする。一例では、120において、HLOSは、各周辺機器に関連するドライバをロードするために上記で説明したように記憶されている、
図3の完全な周辺機器プロファイルテーブル300などの周辺機器構成の結果を使用し得る。ドライバのそのようなプリローディングまたはプリフェッチングは、優先および簡略化されたHLOSブートアッププロセスを可能にし得る。
【0029】
[0037]方法100を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われるので、方法100は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【0030】
[0038]
図2は、ユーザ機器に関連する周辺機器を決定し、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新するための例示的な方法の図である。より詳細には、
図2は、
図1の122および124についてのさらなる方法論的詳細を与える。一例では、
図2に関して本明細書で説明する態様は、
図8のメモリ826およびトランシーバ825と組み合わせた
図8のプロセッサ824によって実行され得る。
【0031】
[0039]122において示されるように、たとえば、
図8のUE800などのUEに関連する周辺機器を決定することは、
図2に示されているように、さらなる態様210、220、230、240、250、および260を含み得る。210において、方法122は、各周辺機器についてのプロファイルがUEにおいて利用可能であるかどうかを決定することを含む。一例では、周辺機器は、
図8の周辺機器811、812、813、814、815、821、823、831、および832であり得る。
図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブル内に特定の周辺機器についてのエントリ(たとえば、プロファイル)がある場合、特定の周辺機器についてのプロファイルは、UEにおいて利用可能であると決定され得る。周辺機器プロファイルテーブル中の各エントリは、特定の周辺機器についてのプロファイルであり得る。
【0032】
[0040]特定の周辺機器についてのプロファイルが、UEにおいて利用可能でないと決定された場合、方法122は、220に示されるように、特定の周辺機器についてのプロファイルが外部ロケーションにおいて利用可能であるかどうかを決定することを含む。一例では、UEは、周辺機器に関連する製造業者またはOEMによって作成および/または管理されるデータベース、ウェブサイト、あるいは他の記憶媒体において、プロファイルを探索し得る。たとえば、UEは、ディスプレイ会社Aによって制御されるデータベース中で、たとえば、インターネットなどのネットワークを介して利用可能なサーバにおいて、クラウドに記憶されたディスプレイ会社Aのディスプレイについての情報(たとえば、ドライバ)のデータベースから、ディスプレイ会社Aによって製造されるディスプレイについてのプロファイルを求め得る。UEが、プロファイルが外部ロケーションにおいて利用可能であると決定した場合、方法122は、240に示されるように、外部ロケーションから特定の周辺機器についてのプロファイルを検索することを含む。
【0033】
[0041]230に示されるように、特定の周辺機器についてのプロファイルがUEにおいて利用可能でなく、外部ロケーションにおいて利用可能でないと決定された場合、UEは、いくつかの方法のうちの1つでその状況を処理し得る。一例では、230に示されるように、UEは、特定のプロファイルに関連するエラーを生成し得る。別の例では、UEは、他の情報(図示せず)に基づいて周辺機器についてのプロファイルを初めから生成または作成し得る。
【0034】
[0042]250において、方法122は、各周辺機器についてのプロファイルが完全であるかどうかを検出することを含む。たとえば、すでにUEにおいて利用可能であり得たか、または外部ロケーションから検索され得た各周辺機器について、プロファイルが完全であるかどうかが検出され得る。プロファイルは、それが、エントリの各フィールド中にそれについての情報がある周辺機器プロファイルテーブル中のエントリによって表される場合、完全であるとして検出され得る。言い換えれば、プロファイルは情報を消失していない。プロファイルは、エントリの各フィールド中に情報がない場合、不完全であるとして検出され得る。言い換えれば、プロファイルは情報を消失している。
【0035】
[0043]特定の周辺機器についてのプロファイルが不完全であり、プロファイルがUEにおいて利用可能であった場合、ライン252によって示されるように、外部ロケーションにおいて特定の周辺機器についての完全なプロファイルが求められ得る。言い換えれば、本方法は、UEにおいて不完全なプロファイルが利用可能であった場合、220に移動し得る。特定の周辺機器についてのプロファイルが不完全であり、プロファイルが外部ロケーションからの検索のために利用可能でなかった場合、ライン254によって示されるように、エラーメッセージが生成され得る。言い換えれば、本方法は、外部ロケーションから不完全なプロファイルが検索されたか、またはプロファイルが検索されない場合、230に移動し得る。別の例では、特定の周辺機器についての不完全なプロファイルが外部ロケーションから検索された場合、本方法は、不完全なプロファイルが検索された外部ロケーションとは異なり得る外部ロケーションから、特定の周辺機器についての完全なプロファイルを検索することを試みるために、ライン252によって示されるように、220に移動し得る。また別の例(図示せず)では、不完全なプロファイルが検出され、プロファイルが完成されないことがある場合、周辺機器に関する情報に基づいて、周辺機器についての新しいプロファイルが、初めから生成または作成され、周辺機器についての新しいエントリが周辺機器プロファイルテーブルに追加され得る。
【0036】
[0044]260において、方法122は、各周辺機器についてのプロファイルをエラー検査することを含む。たとえば、周辺機器プロファイルテーブル中のすべてのエントリは、そこでエントリがHLOSによって使用可能であることを保証するためにエラー検査され得る。識別され、処理され得るエラーは、たとえば、完全性ベースのエラー、正常範囲の外側にあるプロファイルエントリ、または手動で入力された可能性があるエントリ中の誤り(誤植など)を含み得る。
【0037】
[0045]124に示されるように、
図3の周辺機器プロファイル300などの周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することは、
図2に示されているさらなる態様270および280を含み得る。270に示されるように、方法124は、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することを含む。一例では、プロファイルが完全だったかどうかを検出することと、必要な場合にプロファイルを完成することと、プロファイルをエラー検査および処理することとに基づいて、UEにおいて利用可能であったプロファイルが調整された場合、UEは、周辺機器プロファイルテーブル中のプロファイルについての元のエントリにアクセスし、調整されたプロファイルに基づいてエントリを更新し得る。別の例では、特定の周辺機器についてのプロファイルが外部ロケーションから検索された場合、UEは、特定の周辺機器に関連する周辺機器プロファイルテーブル中のエントリにアクセスし、そのようなエントリが存在する場合、検索されたプロファイルに基づいてエントリを更新し得る。それについてのプロファイルが外部ロケーションから検索された特定の周辺機器に関連するエントリが、周辺機器プロファイルテーブル中に前に存在しなかった場合、エントリが作成されることになり、検索されたプロファイルに基づいて情報がエントリに追加されることになる。
【0038】
[0046]一例では、特定の周辺機器についてのプロファイルがUEにおいても利用可能でなく、外部ロケーションにおいても利用可能でなかった場合、方法124は、230に示されるように、特定の周辺機器についてのエラーメッセージを周辺機器プロファイルテーブルに記憶することを含む。この場合、たとえば、280に示されるように、エラーメッセージが生成され、次いで、周辺機器プロファイルテーブルまたは他の場所に記憶され、特定の周辺機器に関連付けられ得る。エラーメッセージが生成され、特定の周辺機器に関連して記憶された場合、一例では、130において、HLOSは、それのブートアッププロセスに入ったときにそのエラーについてアラートされ得る。
【0039】
[0047]別の例では、UEは、そのような周辺機器に関する情報に基づいて、周辺機器についての新しいプロファイルを初めから生成または作成することを試み得る。この場合、たとえば、本方法は、特定の周辺機器についての新たに作成されたプロファイルを追加することによって周辺機器プロファイルテーブルを更新するために、230から270(図示せず)に移動し得る。
【0040】
[0048]方法200を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われ得るので、方法は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【0041】
[0049]
図3は、例示的な周辺機器プロファイルテーブル300の図である。セクション310と、周辺機器タイプ312と、周辺機器番号314と、周辺デバイスドライバ識別子316と、周辺機器識別子318とを含むフィールドを有する周辺機器プロファイルテーブル300が示されている。一例では、エントリ320および330など、周辺機器プロファイルテーブル300中の各プロファイルまたはエントリは、エントリがプリポピュレートされており、したがってUEがエントリに関連する周辺機器を決定したときに完全であるように手動で入力され得る。別の例では、周辺機器プロファイルテーブル300中のエントリは、
図1および
図2に関して上記で説明した周辺機器オートコンフィギュレーションプロセスに基づいて自動ポピュレートされるか、または生成され得る。セクション310は、特定の周辺機器がSPOC上にあるのか、UEに搭載されているのか、オフボードであるのかに関係し得る。周辺機器タイプ312は、たとえば、モデム、Wi−Fi(登録商標)、Bluetooth(登録商標)デバイス、スクリーン、カメラ、マイクロフォン、スピーカー、またはカードスキャナなど、エントリに関連する周辺機器のタイプを示し得る。周辺機器番号314は、特定の周辺機器構成に基づく識別子である。周辺機器デバイスドライバ識別子316は、手動で入力されるか、または周辺機器識別子318に基づいて自動的にポピュレートされ得る。一例では、周辺機器識別子318は、使用されるべき対応する周辺機器デバイスドライバを決定するために、自動構成されることになるそれらの周辺機器のためにのみ使用され得る(たとえば、エントリ中に含まれ得る)。別の例では、周辺機器識別子318は、周辺機器デバイスドライバ識別子316フィールドがすでに記入されている場合でも使用され得る。
【0042】
[0050]完全なプロファイルは、周辺機器に関するすべての関連情報を含み得る。たとえば、完全なプロファイルは、周辺機器プロファイルテーブルの各フィールド中にそれについての情報があるテーブルエントリによって表され得る。たとえば、
図3のエントリ320はモデムについてのプロファイルを含む。エントリ320は、周辺機器タイプがモデム321であり、そのモデムがSPOC322上にあり、周辺機器番号1 323とドライバID A324と、周辺機器ID A325とを有することを示している。不完全なプロファイルは、周辺機器に関するすべての関連情報を含むとは限らない。たとえば、不完全なプロファイルは、周辺機器プロファイルテーブル300中の1つまたは複数のフィールドから消失しているそれについての情報があるテーブルエントリによって表され得る。たとえば、
図3のエントリ330はスクリーンについてのプロファイルを含む。エントリ330は、周辺機器タイプがスクリーン331であり、そのスクリーンがUE332に搭載されており(たとえば、SPOC上ではなくUEに組み込まれており)、周辺機器番号1 333と周辺機器ID D335とを有することを示す。しかしながら、エントリ330は、スクリーンのためのドライバID334に関係する情報を消失している。したがって、エントリ330は不完全であり、したがって、UEは、スクリーンについてのプロファイルがUEにおいて利用可能でないと決定し得る。
【0043】
[0051]一態様では、UEは、HLOSをブートすることの前に、決定された周辺機器に関連する中間ドライバをロードするように構成され得る。一例では、中間ドライバは、プリHLOS動作環境によってロードされ、使用され得る。別の例では、中間ドライバは、UEが、(プリHLOS動作環境を実行しながら)HLOSをブートすることの前に、決定された周辺機器を使用することを可能にし得る。この場合、周辺機器プロファイルテーブル300(図示せず)中の各プロファイル(またはエントリ)について、中間ドライバがプロファイルのために利用可能であるかどうか、中間ドライバがUEにおいて利用可能であるのか他の場所において利用可能であるのか、中間ドライバがHLOSブートより前にUEによってロードされるべきかどうか、および/または中間ドライバに関係する他の情報を示すさらなるフィールドが含まれ得る。
【0044】
[0052]
図4は、例示的なハイレベルオペレーティングシステムアーキテクチャ400の図である。HLOSは、一例では、限定はしないが、ANDROIDオペレーティングシステムであり得るが、HLOSが任意のタイプのオペレーティングシステムであり得ることを理解されたい。HLOSは、
図8のUE800などのUE上で動作していることがあり、ただし、
図8のプロセッサ824などのプロセッサは、HLOSに関連する命令を実行していることがあり、ただし、命令は、
図8のメモリ826などのメモリに記憶され得る。HLOSアーキテクチャ400のためのアーキテクチャは、アプリケーションレイヤ410と、アプリケーションフレームワークレイヤ420と、ライブラリレイヤ430と、たとえば、ANDROIDランタイムレイヤであり得るHLOSランタイムレイヤ440と、限定はしないが、LINUX(登録商標)カーネルレイヤなどのカーネルレイヤ450とを含む。
図1、
図2、および
図3に関して上記で説明した態様は、UE周辺機器に関連するドライバのためのサポートがLINUXカーネルレイヤ450中で与えられるという点で、たとえば、LINUXカーネルレイヤ450など、HLOSアーキテクチャ400の最下位レイヤに関係し得る。
【0045】
[0053]スマートフォンHLOSのための1つの手法では、デバイスドライバは、LINUXカーネル中に直接構築され、特定の、ターゲットにされるフォン構成のためのサポートをモノリシックLINUXカーネルに与え得る。そのような手法では、各スマートフォンモデルは、それ自体の特殊LINUXカーネルを有し、したがって、特定のHLOSのそれ自体のバージョンを有し得る。したがって、キャリアネットワークまたは他の関係するエンティティは、利用可能なスマートフォンモデルの各々上で動作しているHLOSバージョンにわたってほとんど制御権を有しないことがある。そのようなシナリオは、バグフィックス、セキュリティパッチ、およびオペレーティングシステム更新など、更新されたHOLS情報またはソフトウェアの協調ロールアウトを与える際の困難をもたらし得る。
【0046】
[0054]上記で説明した問題のいくつかを緩和するのを助け、HOLS更新の協調ロールアウトを行うために、キャリアネットワークおよびフォン製造業者にわたる多数のスマートフォンにおいて使用するために、LINUXカーネルの単一のバージョンが与えられ得る。したがって、キャリアネットワークまたは他の関係するエンティティによるHOLS制御は、協調させられ得る。LINUXカーネルの単一のバージョンは、モノリシック手法および/または動的手法を使用して与えられ得る。説明する態様のHLOSは任意のタイプのオペレーティングシステムであり得る。ANDROIDオペレーティングシステム、およびそれの関連するLINUX属性は、説明の目的で使用される一例にすぎない。本明細書はANDROIDまたはLINUX実装形態に限定されない。
【0047】
[0055]
図5は、LINUXカーネルレイヤ内の例示的なディスプレイデバイスドライバの図である。より詳細には、
図5は、モノリシックLINUXカーネルレイヤ510内の例示的なディスプレイデバイスドライバと、動的LINUXカーネルレイヤ550内の例示的なディスプレイドライバとの図である。LINUXカーネルレイヤ510および550は、たとえば、
図4のLINUXカーネルレイヤ450であり得る。
【0048】
[0056]510を参照すると、たとえば、ドライバ1、511、ドライバ2、512〜N番目のドライバ513など、1つまたは複数の知られているディスプレイ周辺機器に関連する1つまたは複数のドライバを含み得るモノリシックカーネルが与えられ、ただし、Nは正の整数である。たとえば、ドライバ511、512、および513は、モノリシック、または単一のリリースでは、カーネルにプリロードされ、構築され得る。
【0049】
[0057]550を参照すると、たとえば、ドライバ1 551など、ディスプレイ周辺機器に関連する単一のドライバを含み得る動的カーネルが与えられる。ドライバ1 551は、ロード可能カーネルモジュール(LKM:loadable kernel module)などのプレースホルダーとしてロードされ得る。一例では、LKMとしてロードされるドライバは、後の時点においてフォン製造業者によってスマートフォン上に設けられ得るターゲットHLOSに関連するそれらのドライバのみを含み得る。LKMは、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。たとえば、LKMは、モデム、ディスプレイ、カメラ、マイクロフォン、および場合によってはUEに関連し得る他の周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。ドライバ1 551はLKMであり得るので、それはベースカーネルリリースの一部としてロードされないことがある。そうではなく、LINUXカーネルは、UEに関連すると決定された特定のディスプレイ周辺機器のために、たとえば、周辺機器プロファイルテーブル300に記憶された周辺機器プロファイルに基づいてドライバ1 551を動的にロードし得る。一例では、動的手法は、LINUXカーネルとデバイスドライバリリースとが別々にリリースされ、サポートされることを可能にし得る。説明する態様のHLOSは任意のタイプのオペレーティングシステムであり得る。ANDROIDオペレーティングシステム、およびそれの関連するLINUX属性は、説明の目的で使用される一例にすぎない。本明細書はANDROIDまたはLINUX実装形態に限定されない。
【0050】
[0058]
図6は、モノリシック手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法600の図である。一例では、方法600は、
図8のUE800のための周辺デバイスドライバをロードするためのものであり得る。一例では、方法600は、
図8のメモリ826およびトランシーバ825と組み合わせた
図8のプロセッサ824によって実行され得る。
【0051】
[0059]610において、方法600は、UEに関連することができる周辺機器を決定することを含む。たとえば、
図8の周辺機器811、812、813、814、815、821、822、823、831、および832など、決定された周辺機器の各々は、たとえば、SPOC上にあるか、UEに搭載されているか、オフボードであり得る。
【0052】
[0060]620において、方法600は、HLOSが与えられるUEのタイプにかかわらず、ロードされたドライバがHLOSアーキテクチャに関連するように、決定された周辺機器のためのドライバをロードすることを含む。決定された周辺機器のためのドライバは、たとえば、
図4のLINUXカーネル450または
図5のLINUXカーネル510などのLINUXカーネル中にロードされ得る。一例では、場合によっては、621に示されるように、方法600は、複数の周辺機器カテゴリの各々において周辺機器の知られているセットのためのドライバのセットをロードすることを含む。一例では、UEに関連し得るすべての知られているモデムの各々、またはすべての知られているモデムのある程度の大きいサブセットについての1つまたは複数のドライバがロードされ得、UEに関連し得るすべての知られているディスプレイの各々、またはすべての知られているディスプレイのある程度の大きいサブセットについての1つまたは複数のドライバがロードされ得、以下同様である。ドライバのセットは、モノリシック、または単一のリリースでは、カーネル中にプリロードされ、構築され得る。
【0053】
[0061]説明する態様のHLOSは任意のタイプのオペレーティングシステムであり得る。ANDROIDオペレーティングシステム、およびそれの関連するLINUX属性は、説明の目的で使用される一例にすぎない。本明細書はANDROIDまたはLINUX実装形態に限定されない。
【0054】
[0062]方法600を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われるので、方法600は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【0055】
[0063]
図7は、動的手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法700の図である。一例では、方法700は、
図8のUE800のための周辺デバイスドライバをロードするためのものであり得る。一例では、方法800は、
図8のメモリ826およびトランシーバ825と組み合わせた
図8のプロセッサ824によって実行され得る。
【0056】
[0064]710において、方法700は、ユーザ機器に関連することができる周辺機器を決定することを含む。
図8の周辺機器811、812、813、814、815、821、822、823、831、および832など、決定された周辺機器の各々は、たとえば、SPOC上にあるか、UEに搭載されているか、オフボードであり得る。
【0057】
[0065]720において、方法700は、HLOSが与えられるUEのタイプにかかわらず、ロードされたドライバがHLOSアーキテクチャに関連するように、決定された周辺機器のためのドライバをロードすることを含む。一例では、決定された周辺機器のためのドライバは、
図4のLINUXカーネル450または
図5のLINUXカーネル550などのLINUXカーネル中にロードされ得る。720において、方法700は、以下で説明するように、場合によっては、721、722、723、および724を含む。
【0058】
[0066]721において、方法700は、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーをロードすることを含む。一例では、ロード可能なカーネルモジュール(LKM)は、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。たとえば、LKMは、モデム、ディスプレイ、カメラ、マイクロフォン、および場合によってはUEに関連し得る他の周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。一態様では、LKMは、後の時点においてフォン製造業者によってスマートフォン上に設けられ得るターゲットHLOSに関連するそれらのドライバのみを含み得る。
【0059】
[0067]722において、方法700は、UEに関連する周辺機器を決定することを含む。たとえば、UEは、たとえば、
図1、
図2、および
図3に関して上記で説明したように、UEに現在関連する複数の周辺機器カテゴリの各々おける特定の周辺機器を決定し得る。たとえば、UEは、ディスプレイ会社Aによって製造されたディスプレイがUEに関連すると決定し得る。
【0060】
[0068]723において、方法700は、決定された周辺機器に関連するドライバを識別することを含む。本例では、ディスプレイ会社Aのディスプレイに関連するドライバが識別され得る。
【0061】
[0069]724において、方法700は、識別されたドライバを動的にロードすることを含む。本例では、ディスプレイ会社Aのディスプレイドライバは、
図4のLINUXカーネル450または
図5の550などのLINUXカーネル内のプレースホルダーLKM中に動的にロードされ得る。さらに、別の例では、決定された周辺機器に関連するドライバは、たとえば、
図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルに記憶された、UEに関連すると決定された特定の周辺機器についての周辺機器プロファイルに基づいてロードされ得る。一例では、動的手法は、LINUXカーネルとデバイスドライバリリースとが別々にリリースされ、サポートされることを可能にし得る。
【0062】
[0070]説明する態様のHLOSは任意のタイプのオペレーティングシステムであり得る。ANDROIDオペレーティングシステム、およびそれの関連するLINUX属性は、説明の目的で使用される一例にすぎない。本明細書はANDROIDまたはLINUX実装形態に限定されない。
【0063】
[0071]方法700を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われるので、方法700は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
【0064】
[0072]
図8は、例示的なユーザ機器(UE)800の図である。UE800は、たとえば、Bluetooth低エネルギー(BLE)モジュール821、WiFi(登録商標)モジュール822、およびモデム823など、SPOC上の周辺機器を含み得る、チップ(SPOC)820上のスマートフォンを含み得る。
【0065】
[0073]SPOC820はまた、プロセッサ824と、トランシーバ825と、メモリ826とを含み得る。プロセッサ824は、本明細書で説明する構成要素および機能のうちの1つまたは複数に関連する処理機能を実行するように構成され得る。プロセッサ824は、プロセッサまたはマルチコアプロセッサの単一または複数のセットを含み得る。さらに、プロセッサ824は、統合処理システムおよび/または分散処理システムとして実装され得る。特に、プロセッサ824は、上記で説明し、
図1〜
図3、
図6、および
図7に示した方法の態様を実行するように構成され得る。
【0066】
[0074]一例では、プロセッサ824は、
図2の210に示されるように、特定の周辺機器についてのプロファイルがUE820において利用可能であるかどうかを決定するように構成され得る。プロセッサ824はまた、
図2の220に示されるように、特定の周辺機器についてのプロファイルが外部ロケーションにおいて利用可能であるかどうかを決定するように構成され得る。プロファイルは、上記で説明したように、たとえば、周辺機器に関連する製造業者またはOEMによって作成および/または管理されるデータベース、ウェブサイト、あるいは他の記憶媒体などの外部ロケーションにおいて利用可能であり得る。プロファイルが外部ロケーションにおいて利用可能である場合、プロセッサ824は、トランシーバ825と通信し、トランシーバ825が外部ロケーション840に接触することを要求するように構成され得る。
【0067】
[0075]トランシーバ825は、本明細書で説明するようにハードウェア、ソフトウェア、およびサービスを利用して1つまたは複数のエンティティとの通信を確立し、維持するように構成され得る。トランシーバ825は、UE800と、通信ネットワーク上に位置するデバイスおよび/あるいはUE800に直列またはローカルに接続されたデバイスなどの外部デバイスとの間の通信を搬送し得る。たとえば、トランシーバ825は、外部デバイスとインターフェースするために動作可能な送信チェーン構成要素と受信チェーン構成要素とを含み得る。
【0068】
[0076]特に、トランシーバ825は、外部ロケーション840において記憶されたプロファイル841のうちの1つの中で、特定の周辺機器についてのプロファイルが外部ロケーション840において利用可能であるかどうかを決定するために、外部ロケーション840と通信し得る。そうである場合、トランシーバ825は外部ロケーション840からプロファイルを検索し得る。トランシーバ825は、検索されたプロファイルをプロセッサ824に与え得る。プロセッサ824は、検索されたプロファイルに基づいて周辺機器プロファイルテーブル中の特定の周辺機器についてのプロファイルを更新するために、個々のプロファイル827と
図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルとを記憶し得るメモリ826にアクセスするように構成され得る。
【0069】
[0077]上記で説明したように、メモリ826は、本明細書で使用するデータ、および/またはプロセッサ824によって実行されるアプリケーションのローカルバージョンを記憶するように構成され得る。たとえば、メモリ826は、周辺機器プロファイルを、たとえば、
図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルに記憶するように構成され得る。さらに、一例では、メモリ826は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、テープ、磁気ディスク、光ディスク、揮発性メモリ、不揮発性メモリ、およびそれらの任意の組合せなど、コンピュータによって使用可能な任意のタイプのメモリを含み得る。一例では、メモリ826はフラッシュメモリであり得る。メモリ826は、データストア(図示せず)をさらに含み得、データストアは、本明細書で説明する態様に関連して採用される情報、データベース、およびプログラムの大容量ストレージを与えるハードウェアおよび/またはソフトウェアの任意の適切な組合せであり得る。たとえば、データストアは、プロセッサ824によって現在実行されていないアプリケーションのためのデータリポジトリであり得る。
【0070】
[0078]プロセッサ824と、トランシーバ825と、メモリ826とは、互いに通信するように構成され得る。
【0071】
[0079]UE800はまた、スクリーン811、タッチモジュール812、カメラ813、マイクロフォン814、およびスピーカー815など、オンボード周辺機器を含み得る。
図8はまた、ワイヤードまたはワイヤレスインターフェースを介してUE800に接続され得る、カードスキャナ831およびプリンタ832などのオフボード周辺機器を示す。
【0072】
[0080]本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に常駐することができ、1つの構成要素が1つのコンピュータ上に配置され得、および/または2つ以上のコンピュータ間に分散され得る。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。これらの構成要素は、信号を介して、ローカルシステム、分散システム内の別の構成要素と相互作用し、ならびに/あるいはインターネットなどのネットワーク上で他のシステムと相互作用する1つの構成要素からのデータのような、1つまたは複数のデータパケットを有する信号に従うことなどによって、ローカルプロセスおよび/またはリモートプロセスを介して通信し得る。
【0073】
[0081]さらに、本明細書では、ワイヤード端末またはワイヤレス端末とすることができる端末に関する様々な態様について説明する。端末は、システム、デバイス、加入者ユニット、加入者局、移動局、モバイル、モバイルデバイス、リモート局、リモート端末、アクセス端末、ユーザ端末、端末、通信デバイス、ユーザエージェント、ユーザデバイス、またはユーザ機器(UE)と呼ばれることもある。ワイヤレス端末は、セルラー電話、衛星電話、コードレス電話、セッション開始プロトコル(SIP)電話、ワイヤレスローカルループ(WLL)局、携帯情報端末(PDA)、ワイヤレス接続機能を有するハンドヘルドデバイス、コンピューティングデバイス、またはワイヤレスモデムに接続された他の処理デバイスであり得る。さらに、本明細書では基地局に関する様々な態様について説明する。基地局は、(1つまたは複数の)ワイヤレス端末と通信するために利用され得、アクセスポイント、ノードB、または何らかの他の用語で呼ばれることもある。
【0074】
[0082]さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するものとする。すなわち、別段に規定されていない限り、または文脈から明らかでない限り、「XはAまたはBを使用する」という句は、自然包括的並べ替えのいずれかを意味するものとする。すなわち、「XはAまたはBを使用する」という句は、XがAを使用する場合、XがBを使用する場合、またはXがAとBの両方を使用する場合のいずれによっても満たされる。さらに、本出願と添付の特許請求の範囲とで使用する冠詞「a」および「an」は、別段に規定されていない限り、または単数形を対象とすることが文脈から明らかでない限り、概して「1つまたは複数」を意味するものと解釈されるべきである。
【0075】
[0083]本明細書で説明する技法は、CDMA、TDMA、FDMA、OFDMA、SC−FDMAおよび他のシステムなど、様々なワイヤレス通信システムに使用され得る。「システム」および「ネットワーク」という用語は、しばしば互換的に使用される。CDMAシステムは、ユニバーサルテレストリアルラジオアクセス(UTRA)、cdma2000などの無線技術を実装し得る。UTRAは、広帯域CDMA(W−CDMA(登録商標))およびCDMAの他の変形態を含む。さらに、cdma2000は、IS−2000、IS−95およびIS−856規格をカバーする。TDMAシステムは、グローバルシステムフォーモバイル通信(GSM(登録商標))などの無線技術を実装し得る。OFDMAシステムは、発展型UTRA(E−UTRA)、ウルトラモバイルブロードバンド(UMB)、IEEE802.11(Wi−Fi)、IEEE802.16(WiMAX(登録商標))、IEEE802.20、Flash−OFDM(登録商標)などの無線技術を実装し得る。UTRAおよびE−UTRAは、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)の一部である。3GPPロングタームエボリューション(LTE)は、E−UTRAを使用するUMTSのリリースであり、これは、ダウンリンク上ではOFDMAを採用し、アップリンク上ではSC−FDMAを採用する。UTRA、E−UTRA、UMTS、LTEおよびGSMは、「第3世代パートナーシッププロジェクト」(3GPP:3rd Generation Partnership Project)と称する団体からの文書に記載されている。さらに、cdma2000およびUMBは、「第3世代パートナーシッププロジェクト2」(3GPP2:3rd Generation Partnership Project 2)と称する団体からの文書に記載されている。さらに、そのようなワイヤレス通信システムは、不対無資格スペクトル、802.xxワイヤレスLAN、BLUETOOTH(登録商標)および任意の他の短距離または長距離ワイヤレス通信技法をしばしば使用するピアツーピア(たとえば、モバイルツーモバイル)アドホックネットワークシステムをさらに含み得る。
【0076】
[0084]様々な態様または特徴が、いくつかのデバイス、構成要素、モジュールなどを含み得るシステムに関して提示される。様々なシステムは、追加のデバイス、構成要素、モジュールなどを含み得、および/または各図に関連して論じるデバイス、構成要素、モジュールなどのすべてを含まないことがあることを理解および諒解されたい。これらの手法の組合せも使用され得る。
【0077】
[0085]本明細書で開示する態様に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。さらに、少なくとも1つのプロセッサは、上記で説明したステップおよび/またはアクションのうちの1つまたは複数を実行するように動作可能な1つまたは複数のモジュールを備え得る。
【0078】
[0086]さらに、本明細書で開示する態様に関して説明する方法またはアルゴリズムのステップおよび/またはアクションは、直接ハードウェアで実施され得るか、プロセッサによって実行されるソフトウェアモジュールで実施され得るか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROM(登録商標)メモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。さらに、いくつかの態様では、プロセッサおよび記憶媒体はASIC中に常駐し得る。さらに、ASICはユーザ端末中に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび/またはアクションは、コンピュータプログラム製品に組み込まれ得る、機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せ、あるいはそのセットとして常駐し得る。
【0079】
[0087]1つまたは複数の態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され得るか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と呼ばれ得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびblu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0080】
[0088]上記の開示は、例示的な態様および/または実施形態について論じたが、添付の特許請求の範囲によって定義された説明した態様および/または実施形態の範囲から逸脱することなく、様々な変更および改変を本明細書で行うことができることに留意されたい。さらに、説明した態様および/または実施形態の要素は、単数形で説明または請求されていることがあるが、単数形への限定が明示的に述べられていない限り、複数形が企図される。さらに、任意の態様および/または実施形態の全部または一部は、別段の規定がない限り、任意の他の態様および/または実施形態の全部または一部とともに利用され得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ユーザ機器をブートするための方法であって、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器のための周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム(HLOS)をブートすることと
を備え、前記構成することは、前記HLOSを前記ブートすることの前に行われる、方法。
[C2]
前記ユーザ機器のための前記関連するドライバをプリフェッチすることをさらに備え、前記プリフェッチすることは、前記HLOSを前記ブートすることの前に行われる、C1に記載の方法。
[C3]
前記ユーザ機器のための周辺機器と関連するドライバとを構成することは、前記関連するドライバをアクティブにすることを備え、前記アクティブにすることは、前記HLOSを前記ブートすることの前に行われる、C1に記載の方法。
[C4]
前記構成される周辺機器に関連する中間ドライバを識別することと、
プリHLOS動作環境による使用のために前記中間ドライバをロードすることと
をさらに備え、前記ロードすることは、前記ユーザ機器が、前記HLOSを前記ブートすることの前に前記周辺機器を使用することを可能にする、C1に記載の方法。
[C5]
周辺機器と関連するドライバとを構成することは、周辺機器と関連するドライバとを自動的に構成することを備える、C1に記載の方法。
[C6]
周辺機器と関連するドライバとを構成することが、周辺機器と関連するドライバとを手動で構成することを備える、C1に記載の方法。
[C7]
前記構成することは、
前記ユーザ機器に関連する周辺機器を決定することと、
周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
前記HLOSによる使用のために各周辺機器プロファイルに関連するドライバを準備することとをさらに備える、C1に記載の方法。
[C8]
前記ユーザ機器に関連する周辺機器を決定することは、
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと、
各周辺機器についての前記プロファイルが完全であるかどうかを検出することと、
各周辺機器についての前記プロファイルをエラー検査することとをさらに備える、C7に記載の方法。
[C9]
各周辺機器についての前記プロファイルが前記ユーザ機器において利用可能であるかどうかを決定することは、
特定の周辺機器についての前記プロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能であると決定すること、ここにおいて、前記外部ロケーションが、前記特定の周辺機器に関連する製造業者によって管理される、と、
前記外部ロケーションから前記特定の周辺機器についての前記プロファイルを検索することと
をさらに備え、前記特定の周辺機器についての前記プロファイルを更新することは、前記検索されたプロファイルに基づいて更新することを備える、C8に記載の方法。
[C10]
各周辺機器についての前記プロファイルが前記ユーザ機器において利用可能であるかどうかを決定することは、
特定の周辺機器についての前記プロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能でないと決定することと
をさらに備え、前記外部ロケーションは、前記特定の周辺機器に関連する製造業者によって管理され、
前記特定の周辺機器についてのプロファイルを更新することは、前記特定の周辺機器についてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することを備える、C8に記載の方法。
[C11]
ユーザ機器をブートするための装置であって、
前記ユーザ機器のデバイスブートを実行するための手段と、
前記ユーザ機器のための周辺機器と関連するドライバとを構成するための手段と、
ハイレベルオペレーティングシステム(HLOS)をブートするための手段と
を備え、前記構成することは、前記HLOSを前記ブートすることの前に行われる、装置。
[C12]
ユーザ機器をブートするためのコンピュータプログラム製品であって、
コンピュータに、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器のための周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム(HLOS)をブートすることと
を行わせるためのコードを備える、
コンピュータ可読媒体を備え、前記構成することは、前記HLOSを前記ブートすることの前に行われる、コンピュータプログラム製品。
[C13]
ユーザ機器をブートするための装置であって、
メモリと、
トランシーバと、
プロセッサと
を備え、前記プロセッサは、
前記ユーザ機器のデバイスブートを実行することと、
前記ユーザ機器のための周辺機器と関連するドライバとを構成することと、
ハイレベルオペレーティングシステム(HLOS)をブートすることと
を行うように構成され、前記構成することは、前記HLOSを前記ブートすることの前に行われる、装置。
[C14]
前記プロセッサは、前記HLOSを前記ブートすることの前に前記ユーザ機器のための前記関連するドライバをプリフェッチするようにさらに構成される、C13に記載の装置。
[C15]
前記ユーザ機器のための周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、前記HLOSを前記ブートすることの前に前記関連するドライバをアクティブにするように構成される前記プロセッサを備える、C13に記載の装置。
[C16]
前記プロセッサは、
前記構成される周辺機器に関連する中間ドライバを識別することと、
プリHLOS動作環境による使用のために前記中間ドライバをロードすることと
を行うようにさらに構成され、前記ロードすることは、前記ユーザ機器が、前記HLOSを前記ブートすることの前に前記周辺機器を使用することを可能にする、C13に記載の装置。
[C17]
周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、周辺機器と関連するドライバとを自動的に構成するように構成される前記プロセッサを備える、C13に記載の装置。
[C18]
周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、周辺機器と関連するドライバとを手動で構成するように構成される前記プロセッサを備える、C13に記載の装置。
[C19]
周辺機器と関連するドライバとを構成するように構成される前記プロセッサは、
前記ユーザ機器に関連する周辺機器を決定することと、
周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
前記HLOSによる使用のために各周辺機器プロファイルに関連するドライバを準備することとを行うように構成される前記プロセッサをさらに備える、C13に記載の装置。
[C20]
前記ユーザ機器に関連する周辺機器を決定するように構成される前記プロセッサは、
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと、
各周辺機器についての前記プロファイルが完全であるかどうかを検出することと、
各周辺機器についての前記プロファイルをエラー検査することとを行うように構成される前記プロセッサをさらに備える、C19に記載の装置。
[C21]
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定するように構成される前記プロセッサは、
特定の周辺機器についてのプロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能であると決定することと
を行うように構成され、前記外部ロケーションは、前記特定の周辺機器に関連する製造業者によって管理される、前記プロセッサと、
前記外部ロケーションから前記特定の周辺機器についての前記プロファイルを検索するように構成される前記トランシーバと
をさらに備え、前記特定の周辺機器についてのプロファイルを更新することは、前記検索されたプロファイルに基づいて前記特定の周辺機器についての前記プロファイルを更新することを備える、C20に記載の装置。
[C22]
各周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定するように構成される前記プロセッサは、
特定の周辺機器についてのプロファイルが前記ユーザ機器において利用可能でないと決定することと、
前記特定の周辺機器についての前記プロファイルが前記ユーザ機器の外部のロケーションにおいて利用可能でないと決定することと
を行うように構成される前記プロセッサをさらに備え、前記外部ロケーションは、前記特定の周辺機器に関連する製造業者によって管理され、前記特定の周辺機器についてのプロファイルを更新することは、前記特定の周辺機器についてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することを備える、C20に記載の装置。
[C23]
ユーザ機器のための周辺デバイスドライバをロードするための方法であって、
ユーザ機器に関連することができる周辺機器を決定することと、
前記決定された周辺機器のためのドライバをロードすることと
を備え、前記ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連する、方法。
[C24]
ドライバをロードすることは、複数の周辺機器カテゴリの各々において周辺機器の知られているセットのためのドライバのセットをロードすることを備える、C23に記載の方法。
[C25]
前記ドライバのセットは、モノリシックリリース中でロードされる、C24に記載の方法。
[C26]
ドライバをロードすることは、
複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーをロードすることと、
前記ユーザ機器に関連する周辺機器を決定することと、
前記決定された周辺機器に関連するドライバを識別することと、
前記識別されたドライバを前記プレースホルダー中に動的にロードすることとを備える、C23に記載の方法。
[C27]
ユーザ機器のための周辺デバイスドライバをロードするための装置であって、
ユーザ機器に関連することができる周辺機器を決定するための手段と、
前記決定された周辺機器のためのドライバをロードするための手段と
を備え前記ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連する、装置。
[C28]
ユーザ機器のための周辺デバイスドライバをロードするためのコンピュータプログラム製品であって、
コンピュータに、
ユーザ機器に関連することができる周辺機器を決定することと、
前記決定された周辺機器のためのドライバをロードすることと
を行わせるコードを備える、
コンピュータ可読媒体を備え、前記ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連する、コンピュータプログラム製品。
[C29]
ユーザ機器のための周辺デバイスドライバをロードするための装置であって、
メモリと、
トランシーバと、
プロセッサと
を備え、前記プロセッサは、
ユーザ機器に関連することができる周辺機器を決定することと、
前記決定された周辺機器のためのドライバをロードすることと
を行うように構成され、前記ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連する、装置。
[C30]
ドライバをロードするように構成される前記プロセッサは、複数の周辺機器カテゴリの各々において周辺機器の知られているセットのためのドライバのセットをロードするように構成される前記プロセッサを備える、C29に記載の装置。
[C31]
ドライバの前記セットは、モノリシックリリース中でロードされる、C30に記載の装置。
[C32]
ドライバをロードするように構成される前記プロセッサは、
複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーをロードすることと、
前記ユーザ機器に関連する周辺機器を決定することと、
前記決定された周辺機器に関連するドライバを識別することと、
前記識別されたドライバを前記プレースホルダー中に動的にロードすることと
を行うように構成される前記プロセッサを備える、C29に記載の装置。