switch to using pyudev to get devices