Faits : A. Par ordonnance pénale du 29 août 2014, le Ministère public du canton de Genève a condamné X._ à une peine privative de liberté de 90 jours, sous déduction de 2 jours de détention avant jugement, pour infraction à l'art. 19 al. 1 LStup et aux art. 115 al. 1 let. b et 119 al. 1 LEtr. Cette ordonnance a été notifiée le 29 août 2014 en mains propres à l'intéressé, qui y a fait opposition le 9 septembre 2014 par l'intermédiaire de son conseil. Il a également sollicité la restitution du délai d'opposition dans la mesure où ce délai échoyait le 8 septembre 2014. Par ordonnance du 26 septembre 2014, le Ministère public du canton de Genève a constaté que le délai d'opposition de dix jours prévu par l'art. 354 al. 1 CPP n'avait pas été respecté et que l'opposition était donc tardive. Il a également rejeté la demande de restitution du délai d'opposition. L'ordonnance pénale du 29 août 2014 était donc maintenue et la cause transmise au Tribunal de police afin qu'il statue sur la validité de l'ordonnance pénale et de l'opposition (art. 356 al. 1 CPP). B. Par arrêt du 27 novembre 2014, la Chambre pénale de recours de la Cour de justice de la République et canton de Genève a rejeté le recours intenté contre l'ordonnance du 26 septembre 2014 par X._. Elle a estimé que les conditions d'une restitution du délai pour former opposition n'étaient pas remplies. C. X._ forme un recours en matière pénale auprès du Tribunal fédéral contre cet arrêt. Il conclut, avec suite de frais et dépens, à son annulation et au renvoi de la cause à l'autorité cantonale pour qu'elle statue dans le sens des considérants, subsidiairement à la restitution du délai d'opposition et au renvoi de la cause au Ministère public afin qu'il statue sur l'opposition formée le 3 septembre 2014. Il sollicite l'assistance judiciaire.