Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
Как собрать модуль ядра (*.ko) для DS331 (iMX6S-sodimm)
Hoksmur
Добавлено 23.09.2024 17:20 Редактировалось 01.10.2024 13:29
0
Сообщение: 1
Hoksmur
0

Пункты: 2203
Регистрация: 20.05.2013
Доброго дня.
Вопрос в теме. Почему возник - нахожусь в командировке, плату перешить полностью условия не позволяют. DS3231 подцепил, i2cdetect отображает как положено на 0x68 адресе.
Можно как-то без пересборки ядра собрать модуль, положить его в файловую систему и прописать в каких-то конфигах, чтобы вместо встроенного RTC использовать, который батарейку садит весьма быстро.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.09.2024 19:29 Сообщение: 2
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата
Доброго дня.
Вопрос в теме. Почему возник - нахожусь в командировке, плату перешить полностью условия не позволяют. DS3231 подцепил, i2cdetect отображает как положено на 0x68 адресе.
Можно как-то без пересборки ядра собрать модуль, положить его в файловую систему и прописать в каких-то конфигах, чтобы вместо встроенного RTC использовать, который батарейку садит весьма быстро.


можно как внешний модуль собрать но нужен конфиг и заголовки от сборки ядра которое установлено или целиком собранные исходники от установленного ядра.
Может проще через i2cget прочитать время и установить через date ?

date -s 2013.12.09-22:24:10
Спуститься к концу Подняться к началу
Персональная информация
Hoksmur
Добавлено 01.10.2024 13:29 Редактировалось 01.10.2024 13:31 Сообщение: 3
Hoksmur
0

Пункты: 2203
Регистрация: 20.05.2013
Да это всё было на ноуте, даже собрал и подсунул модуль, он не грузится через modprobe , а вот через insmod вполне загрузился.
Но потом время вышло.
(собирается просто: make linux-menuconfig потом найти драйвер в rtc и пробелом можно переключать "нет" - "модуль" - "встроен")
Дома собрал ядро с встроенным драйвером, но общаться с драйвером не могу: само устройство не появилось в /dev/rtc* и в /sys/ тоже не отсвечивает. Вывод dmesg искал grep, его там нет по 'ds13'.
Последнее, что пробовал:
  • искал в /sys/ по "rtc" и по "ds13" - глухо
  • нашел действующие udevadm info /dev/rtc0 - там номер драйвера, у меня 254
    Вопрос: если драйвер загружен ( insmod выдаёт Error: Driver 'rtc-ds1307' is already registered, aborting... ) как найти номер драйвера? По i2cdetect -y 1 выдало на своём адресе цифру, а не "UU" как должно быть для устройств.
    Как я понимаю: устройство не зарегистрировало события в udevd - как побороть?
  • Спуститься к концу Подняться к началу
    Персональная информация
    Hoksmur
    Добавлено 01.10.2024 14:08 Сообщение: 4
    Hoksmur
    0

    Пункты: 2203
    Регистрация: 20.05.2013
    Нашёл след: есть /sys/bus/i2c/drivers/rtc-ds1307/ с тремя файлами, но не читаемы.
    Спуститься к концу Подняться к началу
    Персональная информация
    sasamy
    Добавлено 01.10.2024 14:16 Сообщение: 5
    sasamy
    4.71

    Пункты: 83552
    Регистрация: 14.08.2009
    Цитата
    Да это всё было на ноуте, даже собрал и подсунул модуль, он не грузится через modprobe , а вот через insmod вполне загрузился.


    в DT прописали его в ноде i2c к какому подключили ?

    https://elixir.bootlin.com/linux/v6.11/source/arch/arm/boot/dts/aspeed/aspeed-bmc-opp-vesnin.dts#L219
    Спуститься к концу Подняться к началу
    Персональная информация
    Hoksmur
    Добавлено 01.10.2024 14:25 Редактировалось 01.10.2024 15:00 Сообщение: 6
    Hoksmur
    0

    Пункты: 2203
    Регистрация: 20.05.2013
    Нет, сейчас полезу копать, что да как.
    помогла команда, вычитанная у пользователей Raspberry Pi
    echo ds1307 0x68 > /sys/bus/i2c/devices/i2c-1/new_device
    У них другая, но я по дереву sys полазил, поправил.
    Спуститься к концу Подняться к началу
    Персональная информация
    Hoksmur
    Добавлено 01.10.2024 14:39 Редактировалось 01.10.2024 14:52 Сообщение: 7
    Hoksmur
    0

    Пункты: 2203
    Регистрация: 20.05.2013
    А где в дереве каталогов искать это? В моём случае ядро 4.1.15. Или где в BuildRoot-е это искать? grep по всем файлам?...
    У меня в U-Boot используется с imx6dl-sodimm.dtb
    Спуститься к концу Подняться к началу
    Персональная информация
    Hoksmur
    Добавлено 01.10.2024 15:02 Сообщение: 8
    Hoksmur
    0

    Пункты: 2203
    Регистрация: 20.05.2013
    Цитата

    в DT прописали его в ноде i2c к какому подключили ?

    А можно как-то этот файл сформировать на машинке, когда драйвер активирован уже? Цель - чтобы при загрузке автоматом подхватывался.
    Спуститься к концу Подняться к началу
    Персональная информация
    sasamy
    Добавлено 01.10.2024 15:46 Сообщение: 9
    sasamy
    4.71

    Пункты: 83552
    Регистрация: 14.08.2009
    Цитата
    А где в дереве каталогов искать это? В моём случае ядро 4.1.15. Или где в BuildRoot-е это искать? grep по всем файлам?...
    У меня в U-Boot используется с imx6dl-sodimm.dtb


    дописать в дереве исходников ядра тут

    linux_imx_4.1.15_2.1.0_ga-sk/arch/arm/boot/dts/imx6qdl-sodimm.dtsi

    Цитата

    &i2c2 {
    clock-frequency = <100000>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_i2c2_sodimm>;
    status = "okay";

    codec: tlv320aic23@1a {
    ......
    Спуститься к концу Подняться к началу
    Персональная информация
    Hoksmur
    Добавлено 02.10.2024 07:48 Редактировалось 02.10.2024 09:06 Сообщение: 10
    Hoksmur
    0

    Пункты: 2203
    Регистрация: 20.05.2013
    sasamy, разобрался, спасибо! Теперь в системе 2-е часов, ссылка /dev/rtc указывает на /dev/rtc1 как и хотел. Но при загрузке системы всё равно команда date выдаёт 1970 год.
    Посмотрел - а они местами поменялись: rtc0 теперь ds1307, а rtc1 - snvs
    PS: С какого ядра поддерживается ds3231?
    PPS: И чтобы два раза не вставать: есть ли в тех сборках поддержка imx6s-sodimm и как бы заполучить? Или это уже к Павлу?
    Спуститься к концу Подняться к началу
    Персональная информация
    Форум » starterkit.ru » Embedded Linux