I've had good luck with easytether (was $10 last time I used it). It always worked ootb on Linux systems, didn't require a dongle. System saw it as a USB Ethernet.