JP5996812B2 - ハイレベルオペレーティングシステム(hlos)ブートより前にスマートフォンに接続された周辺デバイスのためのデバイスドライバをプリフェッチするための方法および装置 - Google Patents

ハイレベルオペレーティングシステム(hlos)ブートより前にスマートフォンに接続された周辺デバイスのためのデバイスドライバをプリフェッチするための方法および装置 Download PDF

Info

Publication number
JP5996812B2
JP5996812B2 JP2015560206A JP2015560206A JP5996812B2 JP 5996812 B2 JP5996812 B2 JP 5996812B2 JP 2015560206 A JP2015560206 A JP 2015560206A JP 2015560206 A JP2015560206 A JP 2015560206A JP 5996812 B2 JP5996812 B2 JP 5996812B2
Authority
JP
Japan
Prior art keywords
profile
peripheral device
user equipment
hlos
driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015560206A
Other languages
English (en)
Other versions
JP2016508653A (ja
JP2016508653A5 (ja
Inventor
バレット、マイケル・ジー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016508653A publication Critical patent/JP2016508653A/ja
Publication of JP2016508653A5 publication Critical patent/JP2016508653A5/ja
Application granted granted Critical
Publication of JP5996812B2 publication Critical patent/JP5996812B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Description

[0001]以下の説明は、一般に周辺デバイスドライバに関し、より詳細には、ハイレベルオペレーティングシステム(HLOS)ブートより前にスマートフォンと他の接続されたデバイスとのための周辺デバイスドライバをプリフェッチすることに関する。
[0002]現在のスマートフォンおよび他のワイヤレスデバイスは、スマートフォンのすべてがANDROID(登録商標)などの同じハイレベルオペレーティングシステム(HLOS)を使用していることがあるが、各スマートフォン製造業者によって製造された各異なるスマートフォンモデルが異なるソフトウェア環境を使用し得、ワイヤードまたはワイヤレスインターフェースを介して接続されるのとオンボードでとの両方で、異なる周辺機器に関連し得るように構成され得る。したがって、スマートフォンのための初期ソフトウェアプロビジョニングは、製造プロセス中の後のある時点においてフォンに関連し得る、多数の周辺機器カテゴリにおける、可能な周辺機器ごとにドライバを識別し、ロードすることを必要とし得る。その結果、これらのスマートフォンのための初期ソフトウェアプロビジョニングは、広範なエンジニアリング専門知識と、労力の大きいアウトプットと、著しいハードウェアおよびソフトウェアリソースとを必要とする。
[0003]HLOSブートアップより前に、可能な多数の周辺機器のうちのいずれがスマートフォンに実際に関連するかが知られていないので、「オンザフライ」でドライバを識別し、ロードすることは、HLOSブートアップを、好ましいものよりも複雑で遅いものにし得る。
[0004]さらに、多数のドライバの全体がスマートフォン上にロードされ得、ロードされたドライバのいずれがHLOSによって使用され得るかが不明瞭であるので、フォンが加入されているフォン製造業者およびネットワークにかかわらず、特定のHLOSを実行しているフォンのすべてに、たとえば、セキュリティパッチなどの更新を提供することを望む、たとえば、ネットワークキャリア、スマートフォン製造業者、またはHLOSに関連するソフトウェア会社などの利害関係者によってHLOSの集中管理を行うことは極めて困難である。
[0005]したがって、簡略化された初期ソフトウェアプロビジョニングプロセスを行うことが望まれる。また、より低い電力消費でより速いHLOSブートアップを行うことが望まれる。さらに、異なるキャリアネットワーク上でも、同じHLOSを使用する多種多様なスマートフォンにわたって単一のHLOSの集中管理および更新を行うことが望まれる。
[0006]以下で、1つまたは複数の態様の基本的理解を与えるために、そのような態様の簡略化された概要を提示する。この概要は、すべての企図された態様の包括的な概観ではなく、すべての態様の主要または重要な要素を識別するものでも、いずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、1つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
[0007]一態様では、ユーザ機器をブートするための方法について説明する。本方法は、ユーザ機器のデバイスブートを実行することを含み得る。本方法は、ユーザ機器のための周辺機器と関連するドライバとを構成することを含み得る。本方法は、ハイレベルオペレーティングシステム(HLOS)をブートすることを含み得る。構成することは、HLOSをブートすることの前に行われ得る。
[0008]一態様では、ユーザ機器をブートするための装置について説明する。本装置は、ユーザ機器のデバイスブートを実行するための手段を含み得る。本装置は、ユーザ機器のための周辺機器と関連するドライバとを構成するための手段を含み得る。本装置は、ハイレベルオペレーティングシステム(HLOS)をブートするための手段を含み得る。構成することは、HLOSをブートすることの前に行われ得る。
[0009]一態様では、ユーザ機器をブートするためのコンピュータプログラム製品について説明する。コンピュータプログラム製品は、コードを備えるコンピュータ可読媒体を含み得る。コードは、コンピュータに、ユーザ機器のデバイスブートを実行させ得る。コードは、コンピュータに、ユーザ機器のための周辺機器と関連するドライバとを構成させ得る。コードは、コンピュータに、ハイレベルオペレーティングシステム(HLOS)をブートさせ得る。構成することは、HLOSをブートすることの前に行われ得る。
[0010]一態様では、ユーザ機器をブートするための装置について説明する。本装置は、メモリと、トランシーバと、プロセッサとを含み得る。プロセッサは、ユーザ機器のデバイスブートを実行するように構成され得る。プロセッサは、ユーザ機器のための周辺機器と関連するドライバとを構成するように構成され得る。プロセッサは、ハイレベルオペレーティングシステム(HLOS)をブートするように構成され得る。構成することは、HLOSをブートすることの前に行われ得る。
[0011]一態様では、ユーザ機器のための周辺デバイスドライバをロードするための方法について説明する。本方法は、ユーザ機器に関連することができる周辺機器を決定することを含み得る。本方法は、決定された周辺機器のためのドライバをロードすることを含み得る。ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連し得る。
[0012]一態様では、ユーザ機器のための周辺デバイスドライバをロードするための装置について説明する。本装置は、ユーザ機器に関連することができる周辺機器を決定するための手段を含み得る。本装置は、決定された周辺機器のためのドライバをロードするための手段を含み得る。ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連し得る。
[0013]一態様では、ユーザ機器のための周辺デバイスドライバをロードするためのコンピュータプログラム製品について説明する。コンピュータプログラム製品は、コードを備えるコンピュータ可読媒体を含み得る。コードは、コンピュータに、ユーザ機器に関連することができる周辺機器を決定させ得る。コードは、コンピュータに、決定された周辺機器のためのドライバをロードさせ得る。ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連し得る。
[0014]一態様では、ユーザ機器のための周辺デバイスドライバをロードするための装置について説明する。本装置は、メモリと、トランシーバと、プロセッサとを含み得る。プロセッサは、ユーザ機器に関連することができる周辺機器を決定するように構成され得る。プロセッサは、決定された周辺機器のためのドライバをロードするように構成され得る。ロードされたドライバは、ハイレベルオペレーティングシステム(HLOS)がその上に与えられるユーザ機器のタイプにかかわらず、HLOSアーキテクチャに関連し得る。
[0015]上記および関係する目的を達成するために、1つまたは複数の態様は、以下で十分に説明し、特に特許請求の範囲で指摘する特徴を備える。以下の説明および添付の図面に、1つまたは複数の態様のうちのいくつかの例示的な特徴を詳細に記載する。ただし、これらの特徴は、様々な態様の原理を採用することができる様々な方法のほんのいくつかを示すものであり、この説明は、すべてのそのような態様およびそれらの均等物を含むものとする。
[0016]添付の図面とともに以下に説明する開示する態様は、開示する態様を限定するためではなく、開示する態様を例示するために与えられ、同様の表示は同様の要素を示す。
ユーザ機器をブートするための例示的な方法の図。 ユーザ機器に関連する周辺機器を決定し、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新するための例示的な方法の図。 例示的な周辺機器プロファイルテーブルの図。 例示的なハイレベルオペレーティングシステムアーキテクチャの図。 Linux(登録商標)カーネルレイヤ内の例示的なディスプレイデバイスドライバの図。 モノリシック手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法の図。 動的手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法の図。 例示的なユーザ機器の図。
[0025]次に、図面を参照しながら様々な態様について説明する。以下の説明では、説明のために、1つまたは複数の態様の完全な理解を与えるために多数の具体的な詳細を記載する。ただし、そのような(1つまたは複数の)態様は、これらの具体的な詳細なしに実施され得ることは明らかであろう。
[0026]説明する態様は、スマートフォンなどのユーザ機器または端末をブートするための方法および装置に関する。特に、説明する態様は、ユーザ機器(UE)が、UEハイレベルオペレーティングシステム(HLOS)をブートすることの前に、UEに関連する周辺機器を構成することを可能にし得る。周辺機器を構成することは、UEに関連する周辺機器の各々のためのドライバに関係する情報を自動的にまたは手動でプリロードまたはプリフェッチすることと、ドライバ情報を、たとえば、フラッシュメモリに記憶することによってHLOSにとって利用可能にすることとを含み得る。HLOSをブートすることの前に、周辺機器を構成し、周辺機器に関連するドライバに関する情報をプリロードすることは、HLOSが簡略化され、より急速にブートすることを可能にし得る。また、周辺機器の構成を分離することと、HLOSからのドライバ情報のプリフェッチングとは、同じHLOSを使用する、任意の数のネットワーク上の多種多様なUEにわたるHLOSの集中管理および更新を可能にし得る。そのような態様はまた、簡略化された初期ソフトウェアプロビジョニングプロセスを行い得る。
[0027]図1は、たとえば、図8のUE800などのユーザ機器をブートするための例示的な方法100の図である。一例では、方法100は、図8のメモリ826およびトランシーバ825と組み合わせた図8のプロセッサ824によって実行され得る。
[0028]110において、方法100は、ユーザ機器(UE)のデバイスブートを実行することを含む。たとえば、方法100は、スマートフォンなどのUEのデバイスブートを実行し得る。いくつかの例では、デバイスブートは、UEブートに関連するハイレベルオペレーティングシステム(HLOS)の前の後の動作を実行するためにプリHLOS動作環境をロードさせ得る。
[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ブートアップより前のある時間に生じ得る。
[0030]一態様では、たとえば、構成される周辺機器に関連するドライバは、HLOSをブートすることの前にプリフェッチされ得る。一例では、ドライバはプリHLOS動作環境によってプリフェッチされ得る。別の態様では、ドライバは、HLOSをブートすることの前にアクティブにされ得る。一例では、ドライバは、プリHLOS動作環境によってアクティブにされ得る。別の態様では、構成される周辺機器に関連する中間ドライバがUEによって識別され、ロードされ得る。一例では、構成される周辺機器に関連する中間ドライバをロードすることは、HLOSブートより前に、UEが、構成される周辺機器を使用することを可能にし得る。別の例では、プリHLOS動作環境は、中間ドライバを識別し、ロードし得る。別の例では、中間ドライバは、構成される周辺機器に関連するドライバと同じであるか、またはそれとは異なり得る。
[0031]周辺機器構成120は、周辺機器決定122と、周辺機器プロファイル更新124と、周辺機器ドライバ準備126とを含み得る。122において、方法100は、UEに関連する周辺機器を決定することを含み得る。より詳細には、UEに関連する各周辺機器についての周辺機器プロファイルが、UEにおいて利用可能であるかどうかが決定され得る。一例では、特定の周辺機器がオンSPOC周辺機器であるのか、オンボード周辺機器であるのか、オフボード周辺機器であるのかにかかわらず、特定の周辺機器についてのプロファイルが、図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブル中にプリロードされているかどうかが決定され得る。特定の周辺機器についてのプロファイルは、周辺機器プロファイルテーブル300中の(特定の周辺機器についての)エントリとして記憶され得る。一例では、図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルは、図8のUE800などのUEにおいて図8のメモリ826などのメモリ内に記憶され得る。
[0032]また、UEに関連するプロファイルを決定することは、いくつかの事例では、各周辺機器についてのプロファイルが完全であるかどうかを検出することを含み得る。完全なプロファイルは、周辺機器に関するすべての関連情報を含み得る。たとえば、完全なプロファイルは、周辺機器プロファイルテーブルの各フィールド中にそれについての情報があるテーブルエントリによって表され得る。不完全なプロファイルは、周辺機器に関するすべての関連情報を含むとは限らない。たとえば、不完全なプロファイルは、周辺機器プロファイルテーブルの1つまたは複数のフィールドから消失しているそれについての情報があるテーブルエントリによって表され得る。
[0033]また、UEに関連するプロファイルを決定することは、いくつかの事例では、各周辺機器についてのプロファイルをエラー検査することを含み得る。たとえば、周辺機器プロファイルテーブル中のすべてのエントリは、そこでエントリがHLOSによって使用可能であることを保証するためにエラー検査され得る。識別され、処理され得るエラーは、たとえば、完全性ベースのエラー、正常範囲の外側にあるプロファイルエントリ、または手動で入力された可能性があるエントリ中の誤り(誤植など)を含み得る。
[0034]124において、方法100は、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することを含む。完全なプロファイルの場合、周辺機器プロファイルテーブル中の関連するエントリは、たとえば、それがUEによって決定されたとき、エントリ中に消失した情報がなかったので、更新されないことがある。不完全なプロファイルの場合、周辺機器プロファイルテーブル中の関連するエントリは、決定された周辺機器に関する情報に基づいてUEによって更新され得る。
[0035]126において、方法100は、HLOSによる使用のために各周辺機器プロファイルに関連するドライバを準備することを含む。一例では、ドライバ準備は、現在、完全であり、更新され、エラー検査された周辺機器プロファイルテーブルをフラッシュメモリ、またはHLOSにとって利用可能であり得る他の記憶媒体中にロードすることを含み得る。一例では、周辺機器プロファイルテーブルは、図8のメモリ826などのメモリ中にロードされ得る。126の完了、および周辺機器プロファイルテーブルのHLOSによるアクセス時、HLOSは、HLOSが、UEに関連すると決定された周辺機器の各々に関連するドライバに関して必要とし得る情報のすべてを受信していることがある。
[0036]130において、方法100は、HLOSをブートすることを含む。一例では、UEに関連するHLOSはブートアップする。一例では、120において、HLOSは、各周辺機器に関連するドライバをロードするために上記で説明したように記憶されている、図3の完全な周辺機器プロファイルテーブル300などの周辺機器構成の結果を使用し得る。ドライバのそのようなプリローディングまたはプリフェッチングは、優先および簡略化されたHLOSブートアッププロセスを可能にし得る。
[0037]方法100を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われるので、方法100は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
[0038]図2は、ユーザ機器に関連する周辺機器を決定し、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新するための例示的な方法の図である。より詳細には、図2は、図1の122および124についてのさらなる方法論的詳細を与える。一例では、図2に関して本明細書で説明する態様は、図8のメモリ826およびトランシーバ825と組み合わせた図8のプロセッサ824によって実行され得る。
[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において利用可能であると決定され得る。周辺機器プロファイルテーブル中の各エントリは、特定の周辺機器についてのプロファイルであり得る。
[0040]特定の周辺機器についてのプロファイルが、UEにおいて利用可能でないと決定された場合、方法122は、220に示されるように、特定の周辺機器についてのプロファイルが外部ロケーションにおいて利用可能であるかどうかを決定することを含む。一例では、UEは、周辺機器に関連する製造業者またはOEMによって作成および/または管理されるデータベース、ウェブサイト、あるいは他の記憶媒体において、プロファイルを探索し得る。たとえば、UEは、ディスプレイ会社Aによって制御されるデータベース中で、たとえば、インターネットなどのネットワークを介して利用可能なサーバにおいて、クラウドに記憶されたディスプレイ会社Aのディスプレイについての情報(たとえば、ドライバ)のデータベースから、ディスプレイ会社Aによって製造されるディスプレイについてのプロファイルを求め得る。UEが、プロファイルが外部ロケーションにおいて利用可能であると決定した場合、方法122は、240に示されるように、外部ロケーションから特定の周辺機器についてのプロファイルを検索することを含む。
[0041]230に示されるように、特定の周辺機器についてのプロファイルがUEにおいて利用可能でなく、外部ロケーションにおいて利用可能でないと決定された場合、UEは、いくつかの方法のうちの1つでその状況を処理し得る。一例では、230に示されるように、UEは、特定のプロファイルに関連するエラーを生成し得る。別の例では、UEは、他の情報(図示せず)に基づいて周辺機器についてのプロファイルを初めから生成または作成し得る。
[0042]250において、方法122は、各周辺機器についてのプロファイルが完全であるかどうかを検出することを含む。たとえば、すでにUEにおいて利用可能であり得たか、または外部ロケーションから検索され得た各周辺機器について、プロファイルが完全であるかどうかが検出され得る。プロファイルは、それが、エントリの各フィールド中にそれについての情報がある周辺機器プロファイルテーブル中のエントリによって表される場合、完全であるとして検出され得る。言い換えれば、プロファイルは情報を消失していない。プロファイルは、エントリの各フィールド中に情報がない場合、不完全であるとして検出され得る。言い換えれば、プロファイルは情報を消失している。
[0043]特定の周辺機器についてのプロファイルが不完全であり、プロファイルがUEにおいて利用可能であった場合、ライン252によって示されるように、外部ロケーションにおいて特定の周辺機器についての完全なプロファイルが求められ得る。言い換えれば、本方法は、UEにおいて不完全なプロファイルが利用可能であった場合、220に移動し得る。特定の周辺機器についてのプロファイルが不完全であり、プロファイルが外部ロケーションからの検索のために利用可能でなかった場合、ライン254によって示されるように、エラーメッセージが生成され得る。言い換えれば、本方法は、外部ロケーションから不完全なプロファイルが検索されたか、またはプロファイルが検索されない場合、230に移動し得る。別の例では、特定の周辺機器についての不完全なプロファイルが外部ロケーションから検索された場合、本方法は、不完全なプロファイルが検索された外部ロケーションとは異なり得る外部ロケーションから、特定の周辺機器についての完全なプロファイルを検索することを試みるために、ライン252によって示されるように、220に移動し得る。また別の例(図示せず)では、不完全なプロファイルが検出され、プロファイルが完成されないことがある場合、周辺機器に関する情報に基づいて、周辺機器についての新しいプロファイルが、初めから生成または作成され、周辺機器についての新しいエントリが周辺機器プロファイルテーブルに追加され得る。
[0044]260において、方法122は、各周辺機器についてのプロファイルをエラー検査することを含む。たとえば、周辺機器プロファイルテーブル中のすべてのエントリは、そこでエントリがHLOSによって使用可能であることを保証するためにエラー検査され得る。識別され、処理され得るエラーは、たとえば、完全性ベースのエラー、正常範囲の外側にあるプロファイルエントリ、または手動で入力された可能性があるエントリ中の誤り(誤植など)を含み得る。
[0045]124に示されるように、図3の周辺機器プロファイル300などの周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することは、図2に示されているさらなる態様270および280を含み得る。270に示されるように、方法124は、周辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することを含む。一例では、プロファイルが完全だったかどうかを検出することと、必要な場合にプロファイルを完成することと、プロファイルをエラー検査および処理することとに基づいて、UEにおいて利用可能であったプロファイルが調整された場合、UEは、周辺機器プロファイルテーブル中のプロファイルについての元のエントリにアクセスし、調整されたプロファイルに基づいてエントリを更新し得る。別の例では、特定の周辺機器についてのプロファイルが外部ロケーションから検索された場合、UEは、特定の周辺機器に関連する周辺機器プロファイルテーブル中のエントリにアクセスし、そのようなエントリが存在する場合、検索されたプロファイルに基づいてエントリを更新し得る。それについてのプロファイルが外部ロケーションから検索された特定の周辺機器に関連するエントリが、周辺機器プロファイルテーブル中に前に存在しなかった場合、エントリが作成されることになり、検索されたプロファイルに基づいて情報がエントリに追加されることになる。
[0046]一例では、特定の周辺機器についてのプロファイルがUEにおいても利用可能でなく、外部ロケーションにおいても利用可能でなかった場合、方法124は、230に示されるように、特定の周辺機器についてのエラーメッセージを周辺機器プロファイルテーブルに記憶することを含む。この場合、たとえば、280に示されるように、エラーメッセージが生成され、次いで、周辺機器プロファイルテーブルまたは他の場所に記憶され、特定の周辺機器に関連付けられ得る。エラーメッセージが生成され、特定の周辺機器に関連して記憶された場合、一例では、130において、HLOSは、それのブートアッププロセスに入ったときにそのエラーについてアラートされ得る。
[0047]別の例では、UEは、そのような周辺機器に関する情報に基づいて、周辺機器についての新しいプロファイルを初めから生成または作成することを試み得る。この場合、たとえば、本方法は、特定の周辺機器についての新たに作成されたプロファイルを追加することによって周辺機器プロファイルテーブルを更新するために、230から270(図示せず)に移動し得る。
[0048]方法200を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われ得るので、方法は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
[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フィールドがすでに記入されている場合でも使用され得る。
[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において利用可能でないと決定し得る。
[0051]一態様では、UEは、HLOSをブートすることの前に、決定された周辺機器に関連する中間ドライバをロードするように構成され得る。一例では、中間ドライバは、プリHLOS動作環境によってロードされ、使用され得る。別の例では、中間ドライバは、UEが、(プリHLOS動作環境を実行しながら)HLOSをブートすることの前に、決定された周辺機器を使用することを可能にし得る。この場合、周辺機器プロファイルテーブル300(図示せず)中の各プロファイル(またはエントリ)について、中間ドライバがプロファイルのために利用可能であるかどうか、中間ドライバがUEにおいて利用可能であるのか他の場所において利用可能であるのか、中間ドライバがHLOSブートより前にUEによってロードされるべきかどうか、および/または中間ドライバに関係する他の情報を示すさらなるフィールドが含まれ得る。
[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の最下位レイヤに関係し得る。
[0053]スマートフォンHLOSのための1つの手法では、デバイスドライバは、LINUXカーネル中に直接構築され、特定の、ターゲットにされるフォン構成のためのサポートをモノリシックLINUXカーネルに与え得る。そのような手法では、各スマートフォンモデルは、それ自体の特殊LINUXカーネルを有し、したがって、特定のHLOSのそれ自体のバージョンを有し得る。したがって、キャリアネットワークまたは他の関係するエンティティは、利用可能なスマートフォンモデルの各々上で動作しているHLOSバージョンにわたってほとんど制御権を有しないことがある。そのようなシナリオは、バグフィックス、セキュリティパッチ、およびオペレーティングシステム更新など、更新されたHOLS情報またはソフトウェアの協調ロールアウトを与える際の困難をもたらし得る。
[0054]上記で説明した問題のいくつかを緩和するのを助け、HOLS更新の協調ロールアウトを行うために、キャリアネットワークおよびフォン製造業者にわたる多数のスマートフォンにおいて使用するために、LINUXカーネルの単一のバージョンが与えられ得る。したがって、キャリアネットワークまたは他の関係するエンティティによるHOLS制御は、協調させられ得る。LINUXカーネルの単一のバージョンは、モノリシック手法および/または動的手法を使用して与えられ得る。説明する態様のHLOSは任意のタイプのオペレーティングシステムであり得る。ANDROIDオペレーティングシステム、およびそれの関連するLINUX属性は、説明の目的で使用される一例にすぎない。本明細書はANDROIDまたはLINUX実装形態に限定されない。
[0055]図5は、LINUXカーネルレイヤ内の例示的なディスプレイデバイスドライバの図である。より詳細には、図5は、モノリシックLINUXカーネルレイヤ510内の例示的なディスプレイデバイスドライバと、動的LINUXカーネルレイヤ550内の例示的なディスプレイドライバとの図である。LINUXカーネルレイヤ510および550は、たとえば、図4のLINUXカーネルレイヤ450であり得る。
[0056]510を参照すると、たとえば、ドライバ1、511、ドライバ2、512〜N番目のドライバ513など、1つまたは複数の知られているディスプレイ周辺機器に関連する1つまたは複数のドライバを含み得るモノリシックカーネルが与えられ、ただし、Nは正の整数である。たとえば、ドライバ511、512、および513は、モノリシック、または単一のリリースでは、カーネルにプリロードされ、構築され得る。
[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実装形態に限定されない。
[0058]図6は、モノリシック手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法600の図である。一例では、方法600は、図8のUE800のための周辺デバイスドライバをロードするためのものであり得る。一例では、方法600は、図8のメモリ826およびトランシーバ825と組み合わせた図8のプロセッサ824によって実行され得る。
[0059]610において、方法600は、UEに関連することができる周辺機器を決定することを含む。たとえば、図8の周辺機器811、812、813、814、815、821、822、823、831、および832など、決定された周辺機器の各々は、たとえば、SPOC上にあるか、UEに搭載されているか、オフボードであり得る。
[0060]620において、方法600は、HLOSが与えられるUEのタイプにかかわらず、ロードされたドライバがHLOSアーキテクチャに関連するように、決定された周辺機器のためのドライバをロードすることを含む。決定された周辺機器のためのドライバは、たとえば、図4のLINUXカーネル450または図5のLINUXカーネル510などのLINUXカーネル中にロードされ得る。一例では、場合によっては、621に示されるように、方法600は、複数の周辺機器カテゴリの各々において周辺機器の知られているセットのためのドライバのセットをロードすることを含む。一例では、UEに関連し得るすべての知られているモデムの各々、またはすべての知られているモデムのある程度の大きいサブセットについての1つまたは複数のドライバがロードされ得、UEに関連し得るすべての知られているディスプレイの各々、またはすべての知られているディスプレイのある程度の大きいサブセットについての1つまたは複数のドライバがロードされ得、以下同様である。ドライバのセットは、モノリシック、または単一のリリースでは、カーネル中にプリロードされ、構築され得る。
[0061]説明する態様のHLOSは任意のタイプのオペレーティングシステムであり得る。ANDROIDオペレーティングシステム、およびそれの関連するLINUX属性は、説明の目的で使用される一例にすぎない。本明細書はANDROIDまたはLINUX実装形態に限定されない。
[0062]方法600を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われるので、方法600は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
[0063]図7は、動的手法を使用してユーザ機器のための周辺デバイスドライバをロードするための例示的な方法700の図である。一例では、方法700は、図8のUE800のための周辺デバイスドライバをロードするためのものであり得る。一例では、方法800は、図8のメモリ826およびトランシーバ825と組み合わせた図8のプロセッサ824によって実行され得る。
[0064]710において、方法700は、ユーザ機器に関連することができる周辺機器を決定することを含む。図8の周辺機器811、812、813、814、815、821、822、823、831、および832など、決定された周辺機器の各々は、たとえば、SPOC上にあるか、UEに搭載されているか、オフボードであり得る。
[0065]720において、方法700は、HLOSが与えられるUEのタイプにかかわらず、ロードされたドライバがHLOSアーキテクチャに関連するように、決定された周辺機器のためのドライバをロードすることを含む。一例では、決定された周辺機器のためのドライバは、図4のLINUXカーネル450または図5のLINUXカーネル550などのLINUXカーネル中にロードされ得る。720において、方法700は、以下で説明するように、場合によっては、721、722、723、および724を含む。
[0066]721において、方法700は、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーをロードすることを含む。一例では、ロード可能なカーネルモジュール(LKM)は、複数の周辺機器カテゴリの各々において周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。たとえば、LKMは、モデム、ディスプレイ、カメラ、マイクロフォン、および場合によってはUEに関連し得る他の周辺機器のためのドライバのためのプレースホルダーとしてロードされ得る。一態様では、LKMは、後の時点においてフォン製造業者によってスマートフォン上に設けられ得るターゲットHLOSに関連するそれらのドライバのみを含み得る。
[0067]722において、方法700は、UEに関連する周辺機器を決定することを含む。たとえば、UEは、たとえば、図1、図2、および図3に関して上記で説明したように、UEに現在関連する複数の周辺機器カテゴリの各々おける特定の周辺機器を決定し得る。たとえば、UEは、ディスプレイ会社Aによって製造されたディスプレイがUEに関連すると決定し得る。
[0068]723において、方法700は、決定された周辺機器に関連するドライバを識別することを含む。本例では、ディスプレイ会社Aのディスプレイに関連するドライバが識別され得る。
[0069]724において、方法700は、識別されたドライバを動的にロードすることを含む。本例では、ディスプレイ会社Aのディスプレイドライバは、図4のLINUXカーネル450または図5の550などのLINUXカーネル内のプレースホルダーLKM中に動的にロードされ得る。さらに、別の例では、決定された周辺機器に関連するドライバは、たとえば、図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルに記憶された、UEに関連すると決定された特定の周辺機器についての周辺機器プロファイルに基づいてロードされ得る。一例では、動的手法は、LINUXカーネルとデバイスドライバリリースとが別々にリリースされ、サポートされることを可能にし得る。
[0070]説明する態様のHLOSは任意のタイプのオペレーティングシステムであり得る。ANDROIDオペレーティングシステム、およびそれの関連するLINUX属性は、説明の目的で使用される一例にすぎない。本明細書はANDROIDまたはLINUX実装形態に限定されない。
[0071]方法700を一連の行為として図示し説明するが、いくつかの行為は、1つまたは複数の態様によれば、本明細書で図示し説明する順序とは異なる順序で、および/または他の行為と同時に行われるので、方法700は行為の順序によって限定されないことを理解し、諒解されたい。たとえば、方法は、状態図など、一連の相互に関係する状態またはイベントとして代替的に表現され得ることを諒解されたい。さらに、1つまたは複数の態様による方法を実施するために、図示のすべての行為が必要とされるとは限らない。
[0072]図8は、例示的なユーザ機器(UE)800の図である。UE800は、たとえば、Bluetooth低エネルギー(BLE)モジュール821、WiFi(登録商標)モジュール822、およびモデム823など、SPOC上の周辺機器を含み得る、チップ(SPOC)820上のスマートフォンを含み得る。
[0073]SPOC820はまた、プロセッサ824と、トランシーバ825と、メモリ826とを含み得る。プロセッサ824は、本明細書で説明する構成要素および機能のうちの1つまたは複数に関連する処理機能を実行するように構成され得る。プロセッサ824は、プロセッサまたはマルチコアプロセッサの単一または複数のセットを含み得る。さらに、プロセッサ824は、統合処理システムおよび/または分散処理システムとして実装され得る。特に、プロセッサ824は、上記で説明し、図1〜図3、図6、および図7に示した方法の態様を実行するように構成され得る。
[0074]一例では、プロセッサ824は、図2の210に示されるように、特定の周辺機器についてのプロファイルがUE820において利用可能であるかどうかを決定するように構成され得る。プロセッサ824はまた、図2の220に示されるように、特定の周辺機器についてのプロファイルが外部ロケーションにおいて利用可能であるかどうかを決定するように構成され得る。プロファイルは、上記で説明したように、たとえば、周辺機器に関連する製造業者またはOEMによって作成および/または管理されるデータベース、ウェブサイト、あるいは他の記憶媒体などの外部ロケーションにおいて利用可能であり得る。プロファイルが外部ロケーションにおいて利用可能である場合、プロセッサ824は、トランシーバ825と通信し、トランシーバ825が外部ロケーション840に接触することを要求するように構成され得る。
[0075]トランシーバ825は、本明細書で説明するようにハードウェア、ソフトウェア、およびサービスを利用して1つまたは複数のエンティティとの通信を確立し、維持するように構成され得る。トランシーバ825は、UE800と、通信ネットワーク上に位置するデバイスおよび/あるいはUE800に直列またはローカルに接続されたデバイスなどの外部デバイスとの間の通信を搬送し得る。たとえば、トランシーバ825は、外部デバイスとインターフェースするために動作可能な送信チェーン構成要素と受信チェーン構成要素とを含み得る。
[0076]特に、トランシーバ825は、外部ロケーション840において記憶されたプロファイル841のうちの1つの中で、特定の周辺機器についてのプロファイルが外部ロケーション840において利用可能であるかどうかを決定するために、外部ロケーション840と通信し得る。そうである場合、トランシーバ825は外部ロケーション840からプロファイルを検索し得る。トランシーバ825は、検索されたプロファイルをプロセッサ824に与え得る。プロセッサ824は、検索されたプロファイルに基づいて周辺機器プロファイルテーブル中の特定の周辺機器についてのプロファイルを更新するために、個々のプロファイル827と図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルとを記憶し得るメモリ826にアクセスするように構成され得る。
[0077]上記で説明したように、メモリ826は、本明細書で使用するデータ、および/またはプロセッサ824によって実行されるアプリケーションのローカルバージョンを記憶するように構成され得る。たとえば、メモリ826は、周辺機器プロファイルを、たとえば、図3の周辺機器プロファイルテーブル300などの周辺機器プロファイルテーブルに記憶するように構成され得る。さらに、一例では、メモリ826は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、テープ、磁気ディスク、光ディスク、揮発性メモリ、不揮発性メモリ、およびそれらの任意の組合せなど、コンピュータによって使用可能な任意のタイプのメモリを含み得る。一例では、メモリ826はフラッシュメモリであり得る。メモリ826は、データストア(図示せず)をさらに含み得、データストアは、本明細書で説明する態様に関連して採用される情報、データベース、およびプログラムの大容量ストレージを与えるハードウェアおよび/またはソフトウェアの任意の適切な組合せであり得る。たとえば、データストアは、プロセッサ824によって現在実行されていないアプリケーションのためのデータリポジトリであり得る。
[0078]プロセッサ824と、トランシーバ825と、メモリ826とは、互いに通信するように構成され得る。
[0079]UE800はまた、スクリーン811、タッチモジュール812、カメラ813、マイクロフォン814、およびスピーカー815など、オンボード周辺機器を含み得る。図8はまた、ワイヤードまたはワイヤレスインターフェースを介してUE800に接続され得る、カードスキャナ831およびプリンタ832などのオフボード周辺機器を示す。
[0080]本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に常駐することができ、1つの構成要素が1つのコンピュータ上に配置され得、および/または2つ以上のコンピュータ間に分散され得る。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。これらの構成要素は、信号を介して、ローカルシステム、分散システム内の別の構成要素と相互作用し、ならびに/あるいはインターネットなどのネットワーク上で他のシステムと相互作用する1つの構成要素からのデータのような、1つまたは複数のデータパケットを有する信号に従うことなどによって、ローカルプロセスおよび/またはリモートプロセスを介して通信し得る。
[0081]さらに、本明細書では、ワイヤード端末またはワイヤレス端末とすることができる端末に関する様々な態様について説明する。端末は、システム、デバイス、加入者ユニット、加入者局、移動局、モバイル、モバイルデバイス、リモート局、リモート端末、アクセス端末、ユーザ端末、端末、通信デバイス、ユーザエージェント、ユーザデバイス、またはユーザ機器(UE)と呼ばれることもある。ワイヤレス端末は、セルラー電話、衛星電話、コードレス電話、セッション開始プロトコル(SIP)電話、ワイヤレスローカルループ(WLL)局、携帯情報端末(PDA)、ワイヤレス接続機能を有するハンドヘルドデバイス、コンピューティングデバイス、またはワイヤレスモデムに接続された他の処理デバイスであり得る。さらに、本明細書では基地局に関する様々な態様について説明する。基地局は、(1つまたは複数の)ワイヤレス端末と通信するために利用され得、アクセスポイント、ノードB、または何らかの他の用語で呼ばれることもある。
[0082]さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するものとする。すなわち、別段に規定されていない限り、または文脈から明らかでない限り、「XはAまたはBを使用する」という句は、自然包括的並べ替えのいずれかを意味するものとする。すなわち、「XはAまたはBを使用する」という句は、XがAを使用する場合、XがBを使用する場合、またはXがAとBの両方を使用する場合のいずれによっても満たされる。さらに、本出願と添付の特許請求の範囲とで使用する冠詞「a」および「an」は、別段に規定されていない限り、または単数形を対象とすることが文脈から明らかでない限り、概して「1つまたは複数」を意味するものと解釈されるべきである。
[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(登録商標)および任意の他の短距離または長距離ワイヤレス通信技法をしばしば使用するピアツーピア(たとえば、モバイルツーモバイル)アドホックネットワークシステムをさらに含み得る。
[0084]様々な態様または特徴が、いくつかのデバイス、構成要素、モジュールなどを含み得るシステムに関して提示される。様々なシステムは、追加のデバイス、構成要素、モジュールなどを含み得、および/または各図に関連して論じるデバイス、構成要素、モジュールなどのすべてを含まないことがあることを理解および諒解されたい。これらの手法の組合せも使用され得る。
[0085]本明細書で開示する態様に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。さらに、少なくとも1つのプロセッサは、上記で説明したステップおよび/またはアクションのうちの1つまたは複数を実行するように動作可能な1つまたは複数のモジュールを備え得る。
[0086]さらに、本明細書で開示する態様に関して説明する方法またはアルゴリズムのステップおよび/またはアクションは、直接ハードウェアで実施され得るか、プロセッサによって実行されるソフトウェアモジュールで実施され得るか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROM(登録商標)メモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合され得る。代替として、記憶媒体はプロセッサに一体化され得る。さらに、いくつかの態様では、プロセッサおよび記憶媒体はASIC中に常駐し得る。さらに、ASICはユーザ端末中に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび/またはアクションは、コンピュータプログラム製品に組み込まれ得る、機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せ、あるいはそのセットとして常駐し得る。
[0087]1つまたは複数の態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され得るか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と呼ばれ得る。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびblu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[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に記載の装置。

Claims (20)

  1. ユーザ機器をブートするための方法であって、
    前記ユーザ機器のデバイスブートを実行することと、
    前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定すること
    前記周辺機器のうちの1つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定するときに、前記ロケーションから前記周辺機器のうちの前記1つについての前記プロファイルを検索すること、ここにおいて、前記ロケーションが、前記周辺機器のうちの前記1つに関連する製造業者によって管理される、と、
    前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記1つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することと、
    イレベルオペレーティングシステム(HLOS)をブートすることと
    を備え、前記構成することは、前記周辺機器の各々関連する少なくとも1つのドライバに関係する情報を前記HLOSに利用可能にし、前記構成することは、前記HLOSを前記ブートすることの前に行われる、
    方法。
  2. 前記HLOSを前記ブートすることの前に、前記ユーザ機器のための前記関連するドライバをプリフェッチすることをさらに備える
    請求項1に記載の方法。
  3. 前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することは、前記HLOSを前記ブートすることの前に、前記関連するドライバをアクティブにすることを備える
    請求項1に記載の方法。
  4. 前記構成される周辺機器に関連する中間ドライバを識別することと、
    前記ユーザ機器が、前記HLOSを前記ブートすることの前に前記周辺機器を使用することを可能にするために、プリHLOS動作環境による使用のために前記中間ドライバをロードすることと
    をさらに備える、請求項1に記載の方法。
  5. 前記周辺機器と関連するドライバとを構成することは、前記周辺機器と関連するドライバとを自動的に構成することを備える、
    請求項1に記載の方法。
  6. 前記周辺機器と関連するドライバとを構成することは、前記周辺機器と関連するドライバとを手動で構成することを備える、
    請求項1に記載の方法。
  7. 前記構成することは、
    前記ユーザ機器に関連する前記周辺機器を決定することと、
    辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
    前記HLOSによる使用のために各周辺機器プロファイルに関連するドライバを準備することと
    をさらに備える、請求項1に記載の方法。
  8. 前記ユーザ機器に関連する前記周辺機器を決定することは、
    各周辺機器についてのプロファイルが完全であるかどうかを検出することと、
    各周辺機器についての前記プロファイルをエラー検査することと
    をさらに備える、請求項7に記載の方法。
  9. 記周辺機器のうちの前記1つについての前記プロファイルを更新することは、前記周辺機器のうちの前記1つについてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することを備える、
    請求項に記載の方法。
  10. ユーザ機器をブートするための装置であって、
    前記ユーザ機器のデバイスブートを実行するための手段と、
    前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定するための手段
    前記周辺機器のうちの1つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定するときに、前記ユーザ機器の外部の前記ロケーションから前記周辺機器のうちの前記1つについての前記プロファイルを検索するための手段と、
    前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記1つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成するための手段と
    ハイレベルオペレーティングシステム(HLOS)をブートするための手段と
    を備え、前記構成することは、前記周辺機器の各々に関連する少なくとも1つのドライバに関係する情報を前記HLOSに利用可能にし、前記構成することは、前記HLOSを前記ブートすることの前に行われる、
    装置。
  11. コンピュータに、
    ーザ機器のデバイスブートを実行することと、
    前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと
    前記周辺機器のうちの1つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定するときに、前記ユーザ機器の外部のロケーションから前記周辺機器のうちの前記1つについての前記プロファイルを検索すること、ここにおいて、前記ロケーションが、前記周辺機器のうちの前記1つに関連する製造業者によって管理される、と、
    前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記1つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することと
    ハイレベルオペレーティングシステム(HLOS)をブートすることと
    を行わせるためのコードを備え、前記構成することは、前記周辺機器の各々関連する少なくとも1つのドライバに関係する情報を前記HLOSに利用可能にし、前記構成することは、前記HLOSを前記ブートすることの前に行われる、
    非一時的なコンピュータ可読媒体
  12. ユーザ機器をブートするための装置であって、
    メモリと、
    トランシーバと、
    プロセッサと
    を備え、前記プロセッサは、
    前記ユーザ機器のデバイスブートを実行することと、
    前記ユーザ機器に関連する周辺機器についてのプロファイルが前記ユーザ機器において利用可能であるかどうかを決定することと
    前記周辺機器のうちの1つについてのプロファイルが前記ユーザ機器において利用可能でないが、前記ユーザ機器の外部のロケーションにおいて利用可能であると決定すること、ここにおいて、前記ロケーションが、前記周辺機器のうちの前記1つに関連する製造業者によって管理され、前記トランシーバは、前記ロケーションから前記周辺機器のうちの前記1つについての前記プロファイルを検索するように構成される、と、
    前記検索されたプロファイルに基づいて少なくとも前記周辺機器のうちの前記1つについての前記プロファイルを更新することによって、前記ユーザ機器のための前記周辺機器と関連するドライバとを構成することと
    ハイレベルオペレーティングシステム(HLOS)をブートすることと
    を行うように構成され、前記構成することは、前記周辺機器の各々関連する少なくとも1つのドライバに関係する情報を前記HLOSに利用可能にし、前記構成することは、前記HLOSを前記ブートすることの前に行われる、
    装置。
  13. 前記プロセッサは、前記HLOSを前記ブートすることの前に前記ユーザ機器のための前記関連するドライバをプリフェッチするようにさらに構成される、
    請求項12に記載の装置。
  14. 前記ユーザ機器のための前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、前記HLOSを前記ブートすることの前に前記関連するドライバをアクティブにするように構成される、
    請求項12に記載の装置。
  15. 前記プロセッサは、
    記構成される周辺機器に関連する中間ドライバを識別することと、
    前記ユーザ機器が、前記HLOSを前記ブートすることの前に前記周辺機器を使用することを可能にするために、プリHLOS動作環境による使用のために前記中間ドライバをロードすることと
    を行うようにさらに構成され、請求項12に記載の装置。
  16. 前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、前記周辺機器と関連するドライバとを自動的に構成するように構成される、
    請求項12に記載の装置。
  17. 前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、前記周辺機器と関連するドライバとを手動で構成するように構成される、
    請求項12に記載の装置。
  18. 前記周辺機器と関連するドライバとを構成するために、前記プロセッサは、
    前記ユーザ機器に関連する前記周辺機器を決定することと、
    辺機器プロファイルテーブル中の各決定された周辺機器についてのプロファイルを更新することと、
    前記HLOSによる使用のために各周辺機器プロファイルに関連するドライバを準備することと
    を行うようにさらに構成される、請求項12に記載の装置。
  19. 前記ユーザ機器に関連する前記周辺機器を決定するために、前記プロセッサは、
    各周辺機器についての前記プロファイルが完全であるかどうかを検出することと、
    各周辺機器についての前記プロファイルをエラー検査することとを行うようにさらに構成される、
    請求項18に記載の装置。
  20. 前記プロセッサは、少なくとも記周辺機器のうちの前記1つについてのエラーメッセージを前記周辺機器プロファイルテーブルに記憶することによって前記周辺機器のうちの前記1つについての前記プロファイルを更新するように構成される
    請求項18に記載の装置。
JP2015560206A 2013-02-28 2014-02-14 ハイレベルオペレーティングシステム(hlos)ブートより前にスマートフォンに接続された周辺デバイスのためのデバイスドライバをプリフェッチするための方法および装置 Expired - Fee Related JP5996812B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/780,353 US9250922B2 (en) 2013-02-28 2013-02-28 Method and apparatus for prefetching peripheral device drivers for smart phones and other connected devices prior to HLOS boot
US13/780,353 2013-02-28
PCT/US2014/016530 WO2014133795A1 (en) 2013-02-28 2014-02-14 Method and apparatus for prefetching device drivers for peripheral devices connected to a smartphone prior to high-level operating system (hlos) boot

Publications (3)

Publication Number Publication Date
JP2016508653A JP2016508653A (ja) 2016-03-22
JP2016508653A5 JP2016508653A5 (ja) 2016-05-26
JP5996812B2 true JP5996812B2 (ja) 2016-09-21

Family

ID=50272704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015560206A Expired - Fee Related JP5996812B2 (ja) 2013-02-28 2014-02-14 ハイレベルオペレーティングシステム(hlos)ブートより前にスマートフォンに接続された周辺デバイスのためのデバイスドライバをプリフェッチするための方法および装置

Country Status (7)

Country Link
US (1) US9250922B2 (ja)
EP (1) EP2962189A1 (ja)
JP (1) JP5996812B2 (ja)
KR (1) KR101632288B1 (ja)
CN (1) CN105144090A (ja)
TW (1) TWI521433B (ja)
WO (1) WO2014133795A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459735B2 (en) * 2015-11-04 2019-10-29 Texas Instruments Incorporated Scalable boot options for a processor/controller
CN106790739B (zh) * 2016-11-22 2020-05-08 合一智能科技(深圳)有限公司 一种dns服务的预加载启动方法、预加载系统及管理系统
CN109426625A (zh) * 2017-08-30 2019-03-05 深圳市道通科技股份有限公司 一种多驱动兼容的控制装置和实现方法
US20240095002A1 (en) 2022-09-21 2024-03-21 Ncr Corporation Updated driver installation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
TW515937B (en) 2001-08-08 2003-01-01 Inventec Corp Method and system for booting personal digital assistant (PDA) system directly by hardware elements on portable personal computer (PC)
US7849301B2 (en) 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US7103914B2 (en) 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
TW588284B (en) 2002-11-12 2004-05-21 Mitac Technology Corp Computer real-time power-on system and method
US7185190B2 (en) 2003-12-29 2007-02-27 Intel Corporation Pushing capabilities into firmware by an operating system
JPWO2005101382A1 (ja) * 2004-04-15 2008-03-06 松下電器産業株式会社 情報処理装置
US7698552B2 (en) 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
JP4826077B2 (ja) 2004-08-31 2011-11-30 株式会社日立製作所 ブートディスク管理方法
US7600105B2 (en) 2004-09-22 2009-10-06 Cyberlink Corp. Systems, methods, and apparatus for providing efficient startup to computers with peripheral devices
US7966485B2 (en) * 2004-12-01 2011-06-21 Igt Universal operating system to hardware platform interface for gaming machines
US7461247B2 (en) 2005-06-03 2008-12-02 Qnx Software Systems Gmbh & Co. Kg Method for transitioning control of a peripheral device from a first device driver to a second device driver during operating system initialization
US7409537B2 (en) 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
US7721080B2 (en) 2006-06-30 2010-05-18 Intel Corporation Management of option ROM
US20080209198A1 (en) 2007-02-26 2008-08-28 Majni Timothy W Boot Acceleration For Computer Systems
FR2938946B1 (fr) 2008-11-26 2012-08-10 Valeo Equip Electr Moteur Procede de configuration d'un systeme comportant une machine electrique tournante dans un vehicule automobile
US8516236B2 (en) * 2009-09-30 2013-08-20 Imation Corp. Portable desktop device and method of host computer system hardware recognition and configuration
CN101699415B (zh) * 2009-10-29 2011-05-11 威盛电子股份有限公司 核心逻辑电路、计算机系统及外围设备初始化方法
TW201118733A (en) 2009-11-30 2011-06-01 Inventec Corp An automatically executing method for operation system kernel
CN102023882A (zh) 2010-12-22 2011-04-20 福建天晴在线互动科技有限公司 计算机自动识别手机并安装手机驱动程序的系统及方法
US20120278796A1 (en) 2011-04-26 2012-11-01 Microsoft Corporation Automatically installing device drivers
US20120302346A1 (en) * 2011-05-27 2012-11-29 Ami Entertainment Network, Inc. Method of selecting a device profile for provisioning an amusement device
CN103229138A (zh) * 2011-11-28 2013-07-31 Lg电子株式会社 减少引导时间的方法、记录介质以及电子设备
CN102446120A (zh) 2011-12-23 2012-05-09 广东步步高电子工业有限公司 一种不同手机显示屏驱动程序自动切换的方法以及对应的显示系统

Also Published As

Publication number Publication date
CN105144090A (zh) 2015-12-09
EP2962189A1 (en) 2016-01-06
US9250922B2 (en) 2016-02-02
TW201447756A (zh) 2014-12-16
JP2016508653A (ja) 2016-03-22
TWI521433B (zh) 2016-02-11
KR20150123879A (ko) 2015-11-04
US20140244990A1 (en) 2014-08-28
KR101632288B1 (ko) 2016-06-21
WO2014133795A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
US11711432B1 (en) Remote management of application settings
KR101469393B1 (ko) 테이블 이름에 스키마 버전 인코딩
US9569197B2 (en) Method of disseminating updated drivers to mobile computing devices and a dissemination system therefor
KR102400384B1 (ko) 외장 메모리를 구비하는 전자장치 및 그 동작 방법
EP3072070B1 (en) Callpath finder
US9071627B2 (en) Method and system for cloning applications from an electronic source device to an electronic target device
WO2017185253A1 (zh) 基于补丁升级的文件处理方法、装置、终端以及存储介质
US20150026330A1 (en) Generating unique identifiers for mobile devices
US11579899B2 (en) Method and device for dynamically managing kernel node
JP5996812B2 (ja) ハイレベルオペレーティングシステム(hlos)ブートより前にスマートフォンに接続された周辺デバイスのためのデバイスドライバをプリフェッチするための方法および装置
KR101828903B1 (ko) 로밍 네트워크 액세스 방법 및 장치
US11310654B1 (en) Electronic subscriber identity module (eSIM) profile delivery and activation system and methods
US8793535B2 (en) Optimizing system usage when running quality tests in a virtual machine environment
CN108920220A (zh) 一种函数调用的方法、装置及终端
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
US20140137092A1 (en) Information processing apparatus, information processing system, non-transitory computer-readable storage medium having stored therein information processing program, and information processing method
CN104965715A (zh) 更新内置搜索引擎的方法和装置
KR100723709B1 (ko) 외장형 메모리에 저장되어 있는 콘텐츠를 이동통신단말기에서 실행하는 방법
TW201610845A (zh) 子母應用程式整合方法及其系統

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151117

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151116

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160329

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160329

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160329

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160824

R150 Certificate of patent or registration of utility model

Ref document number: 5996812

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees