It's hard to get smoke-stench out of fabrics. If I were in your position, I'd buy a new backpack.
Some suggestions if you're bent on cleaning it: soap and water, followed by more soap and water, changing the rinse water often. Repeat those steps about a dozen more times and you might succeed. Or, you might not. If you can put it in a washing machine or somehow agitate the wash water (seal inside a large container and shake vigorously?), that would be even better, but it would likely still take multiple repeated rinses before you can get to the point where it only smells if you have the fabric right next to your nose.
Baking soda is great at removing odor, but I'm not sure how you could use it on your backpack. Maybe mix it in with the soap, or sprinkle it on the backpack before it dries, then rinse again to remove the baking soda? I think Febreeze and stuff like that only masks one odor with another, slightly less horrible, odor, but if you're going to mask odors, you might try doing it with a more natural one. For instance what about cedar smoke? Get some smelly cedar wood, burn it, and fan the smoke onto the backpack. Actually I should say that I've never tried this as I tend to throw away things that smell like cig smoke, but masking one smoke with another seems just crazy enough that it might work.