Это особенно широкий вопрос, и на него трудно ответить, отчасти потому, что ответ субъективен.
Каждое подключаемое устройство обладает уникальными свойствами, за некоторыми исключениями. Многие устройства реализуют различные стандарты взаимодействия, и функция этого устройства определяет, какой уровень конкретной поддержки требуется для этого.
Очень часто используемое оборудование, кажется, всегда имеет достойную поддержку Linux. Иногда поддерживается и дополнительный материал. Каждый случай уникален. Если вы научитесь писать драйверы / модули ядра, то сможете научиться поддерживать собственные устройства. Лично меня это интересовало, но я редко нахожу что-то, что не поддерживается в той или иной форме.
Если вы думаете о покупке чего-либо и хотите знать, поддерживается ли это Linux, используйте Google. Обязательно найдите конкретные номера моделей.
Например, если я подключаю телефон Samsung с модемом - использует ли он драйвер Samsung, который проект Linux ввел в ядро, или он работает, потому что это обычный модем?
Зависит от того, как телефон обеспечивает интерфейс с модемом для хост-машины. Я хотел бы думать, что он просто использовал бы стандартизированную функцию usb-ethernet для этого. Вы имеете в виду конкретную модель телефона?