Adam Górski
Guest
Thu Jun 15, 2023 7:57 pm
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
Guest
Thu Jun 15, 2023 8:12 pm
W dniu 15.06.2023 o 19:57, Adam Górski pisze:
\
Quote:
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
Guest
Thu Jun 15, 2023 8:31 pm
W dniu 15.06.2023 o 20:12, Kaczin0 pisze:
Quote:
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ł.
No dziękuję.
pozdrawiam
Adam Górski
heby
Guest
Thu Jun 15, 2023 8:37 pm
On 15/06/2023 19:57, Adam Górski wrote:
Quote:
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
Guest
Thu Jun 15, 2023 8:51 pm
W dniu 15.06.2023 o 20:37, heby pisze:
Quote:
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
Guest
Thu Jun 15, 2023 9:26 pm
On 15/06/2023 20:51, Adam Górski wrote:
Quote:
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
Guest
Thu Jun 15, 2023 9:44 pm
Adam Górski wrote on 15.06.2023 20:51:
Quote:
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
Guest
Fri Jun 16, 2023 1:13 pm
W dniu 15.06.2023 o 21:44, Zbych pisze:
Quote:
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.
Sprawdzę i dam znać.
Dzięki.
Pozdrawiam
Adam Górski
Adam Górski
Guest
Sun Jun 18, 2023 11:57 pm
W dniu 15.06.2023 o 21:26, heby pisze:
Quote:
Dzięki. O to chodziło.
Adam
Adam Górski
Guest
Mon Jun 19, 2023 12:15 am
W dniu 16.06.2023 o 13:13, Adam Górski pisze:
Quote:
W dniu 15.06.2023 o 21:44, Zbych pisze:
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.
Sprawdzę i dam znać.
Dzięki.
Pozdrawiam
Adam Górski
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
Guest
Mon Jul 17, 2023 3:53 pm
W dniu 15.06.2023 o 21:44, Zbych pisze:
Quote:
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.
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