Добрый день.
Имеется пару плат SK-iMX53. На обоих значится ревизия V2.B, однако одна покупалась несколько месяцев назад, а вторая совсем недавно. Возникли трудности с CANом, с коим под линуксом ранее работать не приходилось. На "старой" плате он работает с пол тыка, настраиваю простенько:
ну и дальше создание сокета и прочее по даташиту.
На "новой" плате ввиду изменений в драйвере CANа пришлось настраивать его чуть иначе:
Настройки применяются, сокет создается и функции чтения и записи в него ошибок не возвращают. Однако обмена по шине нет, CAN-анализатор на любую попытку траффика в любую сторону выдает error warning level. Оснастка точно рабочая, терминатор на месте.
К ковырянию в исходниках линукса пока морально не готов, нет ни времени ни опыта. Быть может дело в какой-нибудь мелочи, которую я пока не увидел? Буду рад любым советам.
# ip -V
ip utility, iproute2-ss110629
вроде верно?
ну up после настроек я естественно делал. Перенос его сюда ничего нового не дал.
Вообще если включить loopback, то свои посланные пакеты драйвер принимает. Отсюда предполагаю что у меня неправильное взаимодействие с микросхемой CAN-трансивера. Ядро трогать очень не хотелось, но очевидно придется
если есть две платы - можно протестировать утилитами can-utils - на одной плате
candump can0
на второй например
cansend can0 5A1#11.22.33.44.55.66.77.88
если ничего не меняли, на платах с новым ядром, can поднимается автоматом
всё правильно, поднимается. После перезагрузки вижу что CAN настроен именно так, ничего не меняя пытаюсь сделать cansend, анализатор выдает ошибку. По поводу двух плат - если can-анализатор пакеты не ловит, то и вторая плата не словит.
Там нечему взаимодействовать - чистый преобразователь уровней.
Во время выпуска SK-iMX53-OEM был "осознанно" включен CAN драйвер (в последствии перенен в остальные платы) в ядре (до этого его не проверяли) и тестировали с помошью canutils, сетевой интерфейс поднимался но никакой активности на линиях (смотрел осциллографом) при попытках пинговать устройства в CAN сети я не наблюдал ...
То что по верх CAN работал IP, со старым ядром - скорее приятная случайность.
Нечего стесняться, загружайте на новую плату старое ядро и там уже будет видно ...
я наверное туплю, но честно говоря не знаю, где взять старое ядро. Оно изначально есть на флешке платы, можно ли его оттуда слить - без понятия. Сорцы на ftp выложены только для новой версии, собрать старое ядро не из чего.