I've done it on BSDs and Debian and stuff but I've done a lot of them and it's hard to remember all the crap so I wouldn't be sure what to say.
I do know that not all things work out of the box, especially not wireless devices. This has been improved for new devices but some old ones may not work properly.
There's usually a list somewhere of what distro can handle what hardware specifically, you might have to find that. I've had to patch things to get crap to work in the past, including patching up my own BSD kernel to get around some little documented ELF support bug on the processor I was using.