Linux에 최대 사운드 카드 수가 있는 이유는 무엇입니까? [폐쇄]

Linux에 최대 사운드 카드 수가 있는 이유는 무엇입니까? [폐쇄]

CONFIG_SND_MAX_CARDS특히 커널 에 대해 묻고 있습니다 .

~에서이 구성을 사용하는 코드, 예를 들어sound/usb/card.cUSB 카드의 경우 사운드 카드는 루프의 일반 배열에 저장됩니다.

커널이 목록을 사용하지 않고 사운드 카드를 무제한으로 사용하지 않는 이유는 무엇입니까?

하드웨어상의 이유(버스의 슬롯 수 등)로 인해 무한 할당이 불가능하다는 것을 알고 있지만 동적 할당을 구현하면 적어도 사용자가 컴파일 타임에 최대 수를 지정하는 수고를 덜 수 있습니다.

어떤 아이디어가 있나요?

답변1

ISA 사운드 카드의 옛날/dev/ 에는 장치 노드를 동적으로 생성하는 것이 불가능했기 때문에 모든 장치를 미리 할당해야 했습니다. 이로 인해 사운드 카드가 8개로 제한되었으며 드라이버는 이 제한을 염두에 두고 작성되었습니다.

나중에 devfs와 USB가 도입되면서 이 제한이 제거되었습니다. 그러나 가장 쉬운 방법은 최소한의 변경, 즉 상한값만 변경하는 것입니다.

카드 수를 무제한으로 허용하도록 코드를 다시 작성하려면 구체적인 이점 없이 많은 노력이 필요합니다. (현재 기본값인 32는 커널 구성 옵션을 사용하여 늘릴 수 있지만 이를 시도하는 사람들은 종종 그렇게 많은 장치를 지원할 만큼 USB 대역폭이 충분하지 않다는 것을 알게 됩니다.)

관련 정보