@Baoran -- I'm with you on trying the easiest, dry methods first
The proven method is to use an (industrial) ozone generator, which is used to clear up smells in cars, boats or houses, so see and ask around if you can perhaps borrow it.
Baking soda may work, but I usually use it on carpets/cloths/stuff that I can wash away afterward as I would spread the powder on the target surface and wet or at least apply some moisture on it (otherwise I'm not sure how long it would take). Or at least something I could just vacuum the powder out of while dry.
Tea bags are far more convenient because they happen to be so good at absorbing smell (little cuts = more surface area; bags = easy to put over stuff) and I can keep things dry. (Loose tea leaves work too, but it'll be a mess...)
I did it with a cigarette-smelling camera before -- I put around 8-10 tea bags and the camera into a plastic bag and left it for a couple days. And though it left some scents of black tea afterward, it was far better than the smokey cigarette smell. (Just blow the remaining scents -- and tea dust -- away with a fan, or even better, a handheld blower)
I think you'll have to open up the case while doing so though, because that's likely where the smoke residues are most difficult to remove. Also try cleaning up the case / top cover and front plate separately by wet-wiping them with a bit of vinegar.
@BonesK -- I like the smell of vanilla, so I might just try it for something!
"Any sufficiently advanced technology is indistinguishable from magic."—Arthur C. Clarke
"No way. Installing the drivers on these things always gives me a headache."—Guybrush Threepwood (on cutting-edge voodoo technology)