Sziasztok!
Egy beagyazott voyage linux rendszeren az egyik modult (scx200_acb) megpeccseltem, az uj valtozatot (scx200_acb_v2) betettem a /lib/modules/`uname -r`/extern ala. A `depmod -a` lefuttatva, mukodik is ugy ahogy kell, minden oke. Az /etc/modules ill. /etc/modprobe.d/akarmi.conf-ban is lecsereltem a hivatkozasokat (scx200_acb => scx200_acb_v2), ennek ellenere a boot soran az scx200_acb "jon fel". Mit lehet itten tenni?
Talan az ad egy apro nehezitest, hogy ebben a disztroban (3.4.4-voyage) az i2c-core-t statikusan forditottak bele a kernelbe, es ezen a hardveren csak ez az SCX200-as I2C host van (tehat az smbus_xfer funkcionalitast ez az scx200_acb modul adja). A tobbi I2C slave device (lm90, lm92, ill egy sajat custom eszkoz) az szinten modul formajaban erheto el.
thx, A.
Hozzászólások
Szerintem initrd, init RAM, dracut környékén keresd a megoldást.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
Egyelore semmi :/ Ugy persze felall a rendszer, hogy az /etc/rc.local-bol kicserelem, de ez messze nem tul elegans persze (foleg hogy egy filerendszer is jonne majd ezutan, amit az /etc/fstab-ban kellene elhelyezni). A `dmesg` alapjan ugy tunik hogy a south bridge (CS5535) valamelyik masik drivere ranthatja magaval:
[ 5.032593] AMD Geode RNG detected
[ 5.080985] cs5535-mfgpt cs5535-mfgpt: reserved resource region [io 0x6200-0x623f]
[ 5.081114] cs5535-mfgpt cs5535-mfgpt: 8 MFGPT timers available
[ 5.081224] geode-aes: GEODE AES engine enabled.
[ 5.091565] cs5535-smb cs5535-smb: SCx200 device 'CS5535 ACB0' registered
[ 5.114663] Error: Driver 'cs5535-smb' is already registered, aborting...
[ 5.143898] input: PC Speaker as /devices/platform/pcspkr/input/input0
[ 5.489246] Error: Driver 'pcspkr' is already registered, aborting...
[ 7.483880] Error: Driver 'cs5535-smb' is already registered, aborting...
A modules.dep alapjan ez a modul (scx200_acb) semminek sem a fuggosege:
root@voyage:/lib/modules/3.4.4-voyage# cat modules.dep | grep scx200_acb
kernel/drivers/i2c/busses/scx200_acb.ko:
extern/scx200_acb_v2.ko:
root@voyage:/lib/modules/3.4.4-voyage#
mi tortenik ha csak simplan felulirod a regi .ko fajlt az ujjal?
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
Vsz menne, egy proba erejeig meg is nezem mindjart. De ha lehet, ezt inkabb csak akkor csinalnam ha mas kulturalt megoldas nincs. A peccselt modul tobb funkcionalitast ad ehhez az I2C master eszkozhoz, szoval nincs ra oka hogy ne mukodjon igy...
Kerneles emlékeim szerint elmentődik, hogy egy adott pci id-vel rendelkező eszközhöz melyik modul tartozik -> lelkesen betölti. (Platform device elején régen egy makróval definiáltad a modulon belül, PCI-nél nem emlékszem)
Valoban van ilyen, koszi! PCI_VENDOR_ID_NS:PCI_DEVICE_ID_NS_SCx200_BRIDGE = 0x100b:0x0500 ill 0x0510-re hivatkozik (marmint az scx200-as modul). Elkezdek igy nyomozni, oszt meglatjuk.