Sachverhalt: A. Das Kantonsgericht St. Gallen hat am 24. Juni 2008 X._ der schweren Widerhandlung gegen das Betäubungsmittelgesetz, des Betäubungsmittelkonsums und der mehrfachen Widerhandlung gegen das Waffengesetz schuldig gesprochen und ihn unter Einbezug des Strafbescheids des Untersuchungsamts Altstätten vom 7. April 2004 zu einer Gesamtstrafe von 37 Monaten und einer Busse von 300 Franken verurteilt. B. X._ erhebt Beschwerde in Strafsachen und beantragt, das kantonsgerichtliche Urteil im Schuld-, Straf- und Kostenpunkt aufzuheben und die Sache zur Ergänzung und Neubeurteilung zurück zu weisen, eventualiter die Schuldsprüche zu bestätigen und ihn mit einer Gesamtstrafe von 24 Monaten und einer Busse von 300 Franken zu bestrafen. Es sei ihm die unentgeltliche Rechtspflege zu gewähren.