Написание драйвера I2C и сборка ядра.
Всем доброго времени суток. Заранее прошу лаптями не кидаться, линукс впервые увидел 3 недели назад. Так по работе случилось, что нужно теперь писать на С под Дебианом 8.
Постараюсь вкратце описать проблемму, буду рад любому совету.
Есть удаленное устройство, к которому подключаюсь через SSH. Документации по устройству минимум. Как это устройство устроено - не понятно. Знаю только что стоит Дебиан 3.16.0. В устройстве есть I2C шина. По идее, на шине еще должны быть MUX'ы. Мне нужно протестить это устройство и выяснить всё ли там работает.
Для тестов я использую I2C-tools. И вот тут начинается самое интересное:
root@localhost:~# i2cdetect -l
i2c-0 smbus SMBus I801 adapter at 9000 SMBus adapter
//получается видна только одна шина и никаких MUX'ов нет
root@localhost:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- 08 -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- 19 -- 1b -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 2e --
30: -- 31 -- 33 -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- --
50: -- 51 -- 53 -- -- -- 57 -- 59 -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- 69 -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --
Мне нужно каким-то магическим образом понять что есть на шине и правильно ли работает i2c драйвер (предположение о неработоспособности драйвера родилось из веры в то что должны быть видны еще и другие шины). Адреса устройств не совпадают с адресами в документации.
Если драйвер работает правильно - я буду очень рад, если нет - мне предстоит разбираться что там и как.