ドライバはマッチを拒否しました-19 どういう意味ですか?

ドライバはマッチを拒否しました-19 どういう意味ですか?

ドライバが出力されると

probe of [driver] rejects match -19

Linuxエラー-19は、対応するデバイスがないことを意味します。これは、ロードされたドライバがそのデバイスを見つけることができないという意味ですか?

答え1

最新のLinuxカーネルの場合、OPに報告されたバグは次のとおりです。/drivers/base/dd.c の一部のコード:

    if (dev->bus->probe)
        ret = dev->bus->probe(dev);
    else if (drv->probe)
        ret = drv->probe(dev);

    switch (ret) {
    case -ENODEV:
    case -ENXIO:
        pr_debug("%s: probe of %s rejects match %d\n",
             drv->name, dev_name(dev), ret);
        break;

つまり、プローブがENODEVまたはENXIOを返す場合です。

19が申告されたと言ったので本当にそうですね。エノデフこれはあなたが正しいことを意味します:該当デバイスなし


ドライバ/デバイスについてあまり公開していないので...個人開発の場合に備えて、上にリンクされたコード開始部分にある簡単な通知を考慮してください。

時にはドライバの検索順序が重要ですが、カーネルに常に依存関係情報があるとは限りません。つまり、一部のドライバは、依存するリソースが利用可能になる前に検索されます。たとえば、SDHCI ドライバは、初期化する前に、まず i2c GPIO コントローラの GPIO ラインが必要になることがあります。必要なリソースがまだ利用できない場合ドライバは、プロービングフックから-EPROBE_DEFERを返すことで、プロービングの延期を要求できます。

関連情報