For the finite groups GL$_n(\mathbb{F}_q)$ there is an early paper by Lusztig well worth checking out *here*.
This predates his broader work on finite groups of Lie type with Deligne (1976), where they found a way to construct virtual characters using $\ell$-adic cohomology which in principle have all irreducible characters as constituents. Later work by Lusztig and others refines considerably how these characters can be extracted and described. But only in type $A$ is an explicit construction likely to be found as in Lusztig's earlier paper.

Historically, Frobenius and Schur were first able to treat the case $n=2$ using various character methods. For "principal" series, ordinary induction is enough to provide models for most of the irreducible representations, but for "cuspidal" (or "discrete") series, here mostly of dimension $q-1$ rather than $q+1$, a construction is quite elusive. So they worked around this obstacle using character-theoretic tricks, but the problem remained open for these and similar finite groups. (For groups not of type $A$, finding explicit models for cuspidal representations is especially difficult because there is more than one family of these.)

ADDED: The reference for the more sophisticated work by Deligne and Lusztig is *here*. They treat arbitrary finite groups of Lie type coming from reductive algebraic groups including general linear groups. Note that 9.9 provides a vanishing criterion for $\ell$-adic cohomology of their varieties outside one degree; this implies in particular that (up to sign) "most" of the irreducible representations can be realized on such nonvanishing cohomology modules, including most of those that are cuspidal. But of course there are exceptions for the general linear groups (and others). For example, already in rank 1 one of their virtual characters for $\mathrm{GL}_2(\mathbb{F}_q)$ has formal degree $-(q-1)$ and involves the difference of the trivial character and the Steinberg character with each of these being realized in a different cohomology degree. In higher ranks it gets much more complicated. so the main goal of subsequent work has been to extract information about irreducible characters from their virtual character construction.