2011-12-13 13 views
12

RIL(/ hardware/reference/reference-ril /)がベースバンド無線が開始されたときに/ dev/Android無線インターフェイスレイヤー(RIL)と/ dev/

旧式の電話機やその他のドキュメントでは、GSM電話機は/ dev/smd0を使用します。すべての電話機が/ dev/smd0を使用するわけではありません。私は、ラジオとベンダーの種類に関係なく、何がマウントされるのかを見つける方法を決定しようとしています。

誰かが/ hardware/reference/reference-rilのどこにあるのかを特定できる場合は、これが設定されている場所と初期化時に情報が引き出されている場所を確認できます。

答えて

7

RILはアプリケーションフレームワークにあります。

RILを表示し、コマンドプロンプトを使用して機能を実装したい場合は、それが実行されます。

あなたがリンクを介して行ってください、この真剣に考えている:私は、これは、ここから見つけ

void (*RIL_RequestFunc) (int request, void *data, size_t datalen, RIL_Token t); 

: コマンドの下にあり RIL Study LInk

あなたが例について知りたい場合は、次の GIT HUB

0

実際には、どのインタフェースを使用して接続しているかによって異なります。上位層とモデムを接続するには、USB、UART、またはSPIインターフェイスを使用します。 RIL_Init関数で渡されたパラメータは、接続しようとしているデバイスを決定します。これがどこで行われたかを具体的に知りたければ、reference-ril.cのRIL_Init関数を参照してください。

const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv) 

{

int ret; 

int fd = -1; 
int opt; 
pthread_attr_t attr; 

s_rilenv = env; 

while (-1 != (opt = getopt(argc, argv, "p:d:s:"))) { 
    switch (opt) { 
     case 'p': 
      s_port = atoi(optarg); 
      if (s_port == 0) { 
       usage(argv[0]); 
       return NULL; 
      } 
      RLOGI("Opening loopback port %d\n", s_port); 
     break; 

     case 'd': 
      s_device_path = optarg; 
      RLOGI("Opening tty device %s\n", s_device_path); 
     break; 

     case 's': 
      s_device_path = optarg; 
      s_device_socket = 1; 
      RLOGI("Opening socket %s\n", s_device_path); 
     break; 

     default: 
      usage(argv[0]); 
      return NULL; 
    } 
} 

if (s_port < 0 && s_device_path == NULL) { 
    usage(argv[0]); 
    return NULL; 
} 

sMdmInfo = calloc(1, sizeof(ModemInfo)); 
if (!sMdmInfo) { 
    RLOGE("Unable to alloc memory for ModemInfo"); 
    return NULL; 
} 
pthread_attr_init (&attr); 
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); 
ret = pthread_create(&s_tid_mainloop, &attr, mainLoop, NULL); 

return &s_callbacks; 

}

私は物事が今はっきりしている願っています。

関連する問題