Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Embedded PC - SMBus problem -I2C

30 views
Skip to first unread message

Adam Górski

unread,
Jun 15, 2023, 1:57:30 PM6/15/23
to
Witam,

Mam emebedded PC z normalnym x86_64 + normalne ubuntu 22.04 z kernelem
5.15.0.

Dodatkowo mam tam dwa scalaki na SMBus. TCA6804 i LTC2945.
Do obu jak się okazało Ubuntu ma wkompilowane drivery.
PCA953x, obsługujący również ten mój TCA i ltc2945 do tego drugiego.

Drivery nie ładują się na początku bo prawdopodobnie nie ma gdzieś
właściwych definicji.

Moduły same w sobie mogę załadować, ale to nie jest pnp.
Normalnie szukałbym DTS gdzieś w tym ubuntu, ale nie ma. Z acpi nie
bardzo mam doświadczenie.

Z dts wiem jak to zrobić. Załadować definicje przy pomocy dtoverlay ,
potem moduł i używać.

Trochę utknąłem.
Co do jakiejś formy definicji ich obecności - jestem pewien ,że musi
być. W każdym razie driver do ltc2945 zdaje się pobierać parametry w
poniższy sposób:

if (device_property_read_u32(dev, "shunt-resistor-micro-ohms",
&data->shunt_resistor))

Ma ktoś jakiś pomysł ?

Pozdrawiam

Adam Górski

Kaczin0

unread,
Jun 15, 2023, 2:12:54 PM6/15/23
to
W dniu 15.06.2023 o 19:57, Adam Górski pisze:
\
>
> Ma ktoś jakiś pomysł ?
>

No, ja mam. Kombinuję jakby tu zrobić taki turecki chlebek, który dają
do kebaba w Berilner Doner Kebap. Przyznam, że jest świetny. Chrupiący
na zewnątrz i mięciutki w środku.
Planuję spróbować jak z ciastem drożdżowym, tyle, że dam dużo mniej
cukru i tłuszczu. Konkretnie ile... tego jeszcze nie wiem, ale taki mam
pomysł.

--
Kaczin

Adam Górski

unread,
Jun 15, 2023, 2:31:44 PM6/15/23
to
W dniu 15.06.2023 o 20:12, Kaczin0 pisze:
No dziękuję.

pozdrawiam

Adam Górski

heby

unread,
Jun 15, 2023, 2:38:13 PM6/15/23
to
On 15/06/2023 19:57, Adam Górski wrote:
> Drivery nie ładują się na początku bo prawdopodobnie nie ma gdzieś
> właściwych definicji.

Masz je w postaci modułów? No to:

https://manpages.ubuntu.com/manpages/lunar/en/man5/modules.5.html


Adam Górski

unread,
Jun 15, 2023, 2:51:10 PM6/15/23
to
W dniu 15.06.2023 o 20:37, heby pisze:
No tak łatwo to nie ma.
Moduly to ja sobie mogę ładować.

SMBus nie jest niestety PNP i trzeba gdzieś podać co na niej jest ( i na
której ).

O ile adresy to sobie system przeskanuje , ale co to za układy to już
się nie dowie , bo rzadko który mam chip ID.

Zatem trzeba jakoś podać. Tylko jak.

Pozdrawiam

Adam Górski

heby

unread,
Jun 15, 2023, 3:26:41 PM6/15/23
to
On 15/06/2023 20:51, Adam Górski wrote:
>> https://manpages.ubuntu.com/manpages/lunar/en/man5/modules.5.html
> No tak łatwo to nie ma.
> Moduly to ja sobie mogę ładować.
> SMBus nie jest niestety PNP i trzeba gdzieś podać co na niej jest ( i na
> której ).

Właśnie tam się podaje:

https://askubuntu.com/questions/51226/how-to-add-kernel-module-parameters

Zbych

unread,
Jun 15, 2023, 3:44:15 PM6/15/23
to
Adam Górski wrote on 15.06.2023 20:51:

> Zatem trzeba jakoś podać. Tylko jak.

W jakimś skrypcie odpalanym jednorazowo przez systemd na starcie kompa
załaduj driver i wykonaj konfigurację:

modprobe ltc2945
echo ltc2945 0x10 > /sys/bus/i2c/devices/i2c-1/new_device

Może da się to zrobić bardziej elegancko przez wywołanie drivera w
/etc/modules oraz przekazanie do niego parametrów w
/etc/modprobe.d/ltc2945.conf (options ltc2945 .....), ale google na ten
temat milczy.

Adam Górski

unread,
Jun 16, 2023, 7:13:06 AM6/16/23
to
W dniu 15.06.2023 o 21:44, Zbych pisze:
Sprawdzę i dam znać.

Dzięki.

Pozdrawiam

Adam Górski

Adam Górski

unread,
Jun 18, 2023, 5:57:23 PM6/18/23
to
W dniu 15.06.2023 o 21:26, heby pisze:
Dzięki. O to chodziło.

Adam

Adam Górski

unread,
Jun 18, 2023, 6:15:05 PM6/18/23
to
W dniu 16.06.2023 o 13:13, Adam Górski pisze:
Już się wyjaśniło.

Wystarczyło : echo ltc2945 0x10 > /sys/bus/i2c/devices/i2c-1/new_device

Ale zapomnialem , że sudo to nie su. I powyższe jest ok z poziomu roota.

Z poziomu usera trzeba nieco inaczej :

echo "ltc2945 0x10" | sudo tee /sys/bus/i2c/devices/i2c-1/new_device

Cały problem był spowodowany tym , że gdzieś wyczytałem , że Ubuntu ma
zablokowanego roota.

No i faktycznie su mi nie dawało roota.

Zapomniałem , że można jeszcze sudo su bo wtedy setui jest ustawiony i
można nadać sobie prawa roota.

Nie jestem tutaj specjalistą , ale tak chyba mniej więcej jest.

Tak czy siak pojawiły mi się oba urządzenia. ltc245 i tca6408.
I mogę z nimi gadać.

Dzięki bardzo za pomoc.

pozdrawiam

Adam Górski

Adam Górski

unread,
Jul 17, 2023, 9:53:49 AM7/17/23
to
W dniu 15.06.2023 o 21:44, Zbych pisze:
Pozostał jeden problem.

W module parametry pobierane są przez device_property_read_u32().

I nijak nie mogę przekazać tych parametrów do modułu.

- próbowałem insmod xxxx.ko parameter=1
- próbowałem /etc/modprobe.d/xxxx.conf

Niestety modprobe nie ma opcji żeby załadować moduł z dowolnej
lokalizacji. Używam zatem insmod/rmmod.

Przeszukując net mam niejasne przeczucie , że takie parametry powinny
być przekazywane poprzez acpi a nie przez /etc/.... bo mogą być różne
dla kilku instancji.

Jakiś pomysł ( w temacie )?

Pozdrawiam

Adam Górski



0 new messages