Linux hardware communication