Не хотелось бы вмешиваться в разработку PuppyRus и давать какие-то рекомендации, но я пробовал несколько абсолютно разных 3G-модемов на сборках от Wary-5.1.2 до Precise-5.4.3 и все модемы, кроме одного, определились и работали. Я не знаю механизмов определения модемов в Puppy, но не думаю, что там есть правила udev для всех этих модемов. Я пробовал MF100, E1550, Cricket A600, какой-то Verizone, забыл модель - CDMA и UMTS+EDGE+GPRS в одном и какой-то Spirit-CDMA, также не знаю модели. Тот, который не сработал - белый квадратный ZTE, который подключался к USB через кабель, но я пробовал его на Wary-5.1.2, возможно на последних сборках он бы и сработал. Проблема Линукс в том, что здесь драйвера и приложения разделены. Драйвера пишут одни люди, а пользовательские приложения - другие. В Windows всё идёт одним комплектом от разработчика. Например, мне нужно было принудительно загнать этот Verizone в GPRS-EDGE-режим. Мне пришлось идти в Windows, устанавливать программу и там есть окошко, которое это переключает. После этого в Puppy он прекрасно работает, а вот найти команду для Линукс, чтобы это сделать я не смог.
Мне кажется, писать отдельное правило для каждого модема на этой планете - не очень хорошая идея, ведь уже есть usb-modeswitch, в котором уже есть список модемов.