I cannot give advice on the best barcode system, but there are a number of perl modules that generate varieties of barcode. The possibilities offred at CPAN could bias your hardware choice.
The CueCat barcode readers seem to be popular with Linux hackers.