드라이버가 매치를 거부했습니다 -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를 반환하여 프로빙 연기를 요청할 수 있습니다.

관련 정보