Simple solution. Pay the players. I don't care how much, 7 bucks an hour, 10 bucks an hour, whatever. Put some money in their pocket. Stop pretending that they are getting fairly compensated with a free education. College kids like spending money. If the athletes aren't getting enough from their defacto employer the NCAA, and they aren't getting it from their parents, where the fuck else are they gonna get it?
Pay the players, and target the dubious agents, boosters and street runners who continue to predate on the athletes. Lifetime ban for those fuckheads, and reward the players who do actually keep their noses clean.