Esta é uma questão especialmente ampla e, portanto, difícil de responder, em parte porque a resposta é subjetiva.
Cada dispositivo que você conecta tem propriedades exclusivas, com algumas exceções. Muitos dispositivos implementam vários padrões de interface e a função desse dispositivo determina qual nível de suporte específico é necessário além disso.
O hardware muito usado parece sempre ter suporte decente ao Linux. Algumas vezes o material da franja também é suportado. Todo caso é único. Se você aprender a escrever drivers / módulos do kernel, então você pode aprender a suportar seus próprios dispositivos. Pessoalmente, tenho me interessado nisso, mas raramente encontro algo que não seja suportado de alguma forma.
Se você está pensando em comprar algo e quer saber se ele é suportado pelo Linux, use o Google. Certifique-se de pesquisar números de modelo específicos.
Por exemplo, se eu conectar um telefone Samsung com modem - ele usa o driver Samsung que o projeto Linux colocou no kernel ou funciona porque é apenas um modem padrão?
Depende de como o telefone fornece uma interface para o modem para a máquina host. Eu gostaria de pensar que seria apenas usar um recurso usb-ethernet padronizado para isso. Você tem um modelo específico de telefone em mente?