And I had no real driver trouble that couldn't be worked around. Winmodems and winprinters weren't actually all that common in the grand scheme of things. Maybe for a year or two in the mid-'90s. But there was a wealth of used hardware available in those days that was the real deal.
Anyway, I always used external modems, including for a while a very weird Telebit modem with a steel case, a flip-open front door, and a non-AT command set that meant that I had to log into it via a terminal emulator and execute commands myself because only AT command sets were reported.
On the printing front, very early on I was able to get ahold of a secondhand Apple LaserWriter, and then set up Netatalk and a bunch of adapters to print to it over Either/RS-422 or something like that. It made everything on Linux a thousand percent easier because you could just dump postscript directly do it, and Linux print drivers weren't really sorted for many years.
In fact, there was even a really reasonable (for the period) WYSIWYG office suite called InterViews that ran under X and dumped out PostScript files for printing. The text editor was called 'ez' and I still have a bunch of non-CS homework from that era saved as '.ez' files somewhere. For the CS homework, I would just dial my university's SLIP pool and then telnet over to the Sun systems in the department where we had logins and used gcc for everything.
The actual hard part, as I recall, was getting Linux in the first place, which took me several months. There were no dial-up BBS systems I could find that had actual complete Linux distributions of any kind. The distributions that did exist at the time (I remember Slackware, Yggdrasil, Trans-Ameritech or something like that, and a couple of others, though maybe my memory is off) were set up as a series of dozens of 1.2mb or 1.44mb floppy disk images.
Not only was there no BBS that seemed to host a complete distro, but those were actually pretty sizable downloads at the time—it represented many hours of downloading even if a complete set could be found. At school, the systems on the actual 'net via 10-Base-2 and AUI at the time (our so-called 'smart hosts' that were in the DNS system) could download such things quickly from other smart-host FTP sites with complete sets, but they were Sun workstations with no floppy drives, and our filesystem quotas were not big enough to hold a complete set.
And before I had Linux actually installed, there was no way for me at home to log into those quotas and download the files from Unix machines anyway, otherwise I could have used FTP over dial-up to move a few images at a time through the pipline to home.
IN the end, I managed to find a local ISP that would set me up at home with a UUCP feed, and a vanilla UUCP dial-up binary set that was a massive bear to configure on a non-Unix system. Then I spent many weeks laboriously pulling images down over UUCP nightly from Usenet.
Once I finally had the complete binary set downloaded, I got ahold of many boxes of floppies, wrote the images, and did my first Linux install.
That bootstrapping was the hard part. Once Linux was actually installed, the entire non-BBS online universe of the Internet became massively easy to navigate (at the time, it was not easy to do Internet on PCs—there was little if anything on http:/// but that was the only protocol supported by DOS-based systems or by Macs) because now I had gopher, wais, archie, veronica, ftp, and so on. It was like boostraping your home computing universe into the Internet age.
The drivers were really of secondary importance once you got your hands on a complete distro. You'd just note which graphics hardware was supported by the X binaries, for example, and then go out and buy that card for $50 or $100. That was easy compared to actually getting your hands on a complete distro stored on the right machine and OS (DOS to write the images) and then getting it all written out and ready for install from floppies.