Linux: создать экземпляр из пользовательского пространства: eeprom new_device

Среда: x86 / Ubuntu 14.04

Я хочу получить что-то похожее на

&i2c0 { 
    eeprom: eeprom@50 { 
        compatible = "at,24c32"; 
        reg = <0x50>; 
    }; 
};

Но поскольку в x86 дерево устройств недоступно, я следую документу i2c/instantiating-device в ядре Linux и использую «Метод 4: создание экземпляра из пользовательского пространства».

Процесс создания экземпляра:

  • Загрузить драйвер at24
  • Загрузить драйвер i2c-dev
  • Создайте экземпляр:

    # echo eeprom 0x50 > /sys/bus/i2c/devices/i2c-0/new_device
    
  • Ответ ядра в dmesg:

    i2c i2c-0: new_device: Instantiated device eeprom at 0x50
    
  • Создается справочник «0-0050». Найдено в /sys/bus/i2c/devices/i2c-0/0-0050

  • Этот каталог содержит несколько файлов, но в нем нет файла с названием «eeprom».

Почему не создаются файлы "eeprom"?

P.S:

Справочник содержит:

root@peio-t52r:~/etxoh# ls -la /sys/bus/i2c/devices/i2c-0/0-0050
total 0
drwxr-xr-x 3 root root    0 sep 25 15:06 .
drwxr-xr-x 5 root root    0 sep 25 14:48 ..
-r--r--r-- 1 root root 4096 sep 25 15:06 modalias
-r--r--r-- 1 root root 4096 sep 25 15:06 name
drwxr-xr-x 2 root root    0 sep 25 15:06 power
lrwxrwxrwx 1 root root    0 sep 25 15:06 subsystem -> ../../../../../bus/i2c
-rw-r--r-- 1 root root 4096 sep 25 15:06 uevent

И имя файла содержит:

root@peio-t52r:~/etxoh# cat /sys/bus/i2c/devices/i2c-0/0-0050/name
eeprom

Возможный дубликат добавление клиентских устройств i2c на x86_64

0andriy 07.11.2018 15:24

IIRC eeprom - это устаревший драйвер EEPROM, который не поддерживается для новых микросхем. Вам нужно 24c32, чтобы поставить туда elixir.bootlin.com/linux/v4.20-rc1/source/drivers/misc/eepro‌ m /…

0andriy 07.11.2018 15:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
2 008
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте «24c32» вместо «eeprom» при создании экземпляров устройств I2C.

# echo 24c32 0x50 > /sys/bus/i2c/devices/i2c-0/new_device

На моей плате с AT24C02 SPD EEPROM создать экземпляр AT24C02 на шине 2

# echo 24c02 0x50 > /sys/class/i2c-adapter/i2c-2/new_device

Сообщение ядра показывает

[21230.868376] at24 2-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[21230.868423] i2c i2c-2: new_device: Instantiated device 24c02 at 0x50

Каталог содержит

root@:/sys/bus/i2c/devices/i2c-2/2-0050# ls
2-00500/  driver@  eeprom  modalias  name  power/  subsystem@  uevent

Файл eeprom

root@:/sys/bus/i2c/devices/i2c-2/2-0052# hexdump -C eeprom 
00000000  23 11 0c 03 45 21 00 08  00 60 00 03 02 03 00 00  |#...E!...`......|
00000010  00 00 07 0d f8 0f 00 00  6e 6e 6e 11 00 6e f0 0a  |........nnn..n..|
00000020  20 08 00 05 00 f0 2b 34  28 00 78 00 14 3c 00 00  | .....+4(.x..<..|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 16 36 0b 35  |.............6.5|
00000040  16 36 0b 35 00 00 16 36  0b 35 16 36 0b 35 00 00  |.6.5...6.5.6.5..|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000070  00 00 00 00 00 00 9c b5  00 00 00 00 e7 d6 0b e3  |................|
00000080  0f 11 02 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 db 08  |................|
00000100

Другие вопросы по теме