Das ist einer dieser Ungereimtheiten, die mich in den letzten Tagen schon einige Nerven gekostet hat.
Also i2c oder i²c ist ein Übertragungsprotokoll oder was auch immer. In jedem Falle kann man i2c unter den Kerneloptionen Device Drivers --> I2C SUPPORT aktivieren. Ich habe da vorsichtshalber mal alles ausgewählt, von dem ich nicht wußte ob ichs nicht doch brauche und bei den Chips mit Hilfe von
# cat /proc/pci
geraten. Meine Einstellungen sind unten als .config-Ausschnitt angefügt.
Ich bin bei der Airstar2 jetzt folgendermaßen "weit" gekommen:
Ich habe den 2.6.10 Kernel runtergladen. Dort ist das Modul mt352 bereits verfügbar, leider kann man es dort jedoch nicht direkt auswählen. Statt < > oder [ ] stehen dort nur ---, die auch nicht überschrieben werden können. In der .config steht dann jedoch, je nach dem, ob man die skystar (und das ist das Modul sowohl für die AirStar2, CableStar und SkyStar) als Modul ausgewählt hat oder direkt in den Kernel eingebunden hat, entweder CONFIG_DVB_MT352=m oder CONFIG_DVB_MT352=y, allerdings stets zusammen mit dem Modul mt312 (Frontend für die SkyStar) sowie mit STV0299.
Wenn ich dann # modprobe skystar2 aufrufe, erhalte ich
# lsmod
Module Size Used by
skystar2 25124 0
dvb_core 71048 1 skystar2
mt352 4676 1 skystar2
stv0299 8516 1 skystar2
mt312 6596 1 skystar2
und mit #dmesg
drivers/media/dvb/b2c2/skystar2.c: FlexCopIIB(rev.195) chip found
drivers/media/dvb/b2c2/skystar2.c: the chip has 38 hardware filters
DVB: registering new adapter (SkyStar2).
mt312_read: ret == -121
skystar2: A frontend driver was not found for device 13d0/2103 subsystem 13d0/2103
Tja. Ich kann dann alle Module entfernen und nur die mt352 hinzufügen. Dann erhalte ich aber:
# lsmod
Module Size Used by
mt352 4676 0
dvb_core 71048 0
# insmod /lib/modules/2.6.10/kernel/drivers/media/dvb/b2c2/skystar2.ko
insmod: error inserting '/lib/modules/2.6.10/kernel/drivers/media/dvb/b2c2/skystar2.ko': -1 Unknown symbol in module
Das gleiche, wenn ich zuvor noch stv0299 eingefügt habe. Wenn ich dann auch noch mt312 einfüge und skystar2 lade, bekomme ich unter
#dmesg
skystar2: Unknown symbol mt352_attach
skystar2: Unknown symbol stv0299_writereg
skystar2: Unknown symbol mt352_write
skystar2: Unknown symbol stv0299_attach
skystar2: Unknown symbol vp310_attach
skystar2: Unknown symbol stv0299_writereg
skystar2: Unknown symbol stv0299_attach
skystar2: Unknown symbol vp310_attach
skystar2: Unknown symbol vp310_attach
drivers/media/dvb/b2c2/skystar2.c: FlexCopIIB(rev.195) chip found
drivers/media/dvb/b2c2/skystar2.c: the chip has 38 hardware filters
DVB: registering new adapter (SkyStar2).
mt312_read: ret == -121
skystar2: A frontend driver was not found for device 13d0/2103 subsystem 13d0/2103
Ok. Ich habe es zwischendurch auch schon mit dem Patch 2.6.10-rc3-mm1 probiert. Ich kann mich gar nimmer so genau daran erinnern, aber es hat auch nicht geklappt.
Bei der Version 2.6.9 mußte ich von vornherein das Patch 2.6.9-rc4-mm1 anwenden. Ich habe bei den Nachfragen durch patch erst alles mit 'no' beantwortet und bekam beim "maken" Compilefehler. Ich habe dann schließlich # patch -p1 -f <2.6.9-rc4-mm1 (alles mit 'yes') angewendet und mußte, weil ich immernoch die plöden Compilefehler hatte, sogar die letzte Funktion in /usr/src/linux-2.6.9/include/linux/jiffies.h (nämlich: static inline u64 nsec_to_clock_t(u64 x)) auskommentieren sowie die Datei /usr/src/linux-2.6.9/mm/vmscan.c wieder in ihren Originalzustand zurückversetzen. Danach konnte ich fehlerfrei durchkompilieren.
Nach Anwendung des Patches (vor dem Compilieren) konnte ich nun explizit den mt532 einzeln auswählen, und ihn ohne Fehlermeldung mit
# modprobe mt532
hinzufügen. Leider tat sich sonst weiter gar nichts. Da ich nun schon häufiger gesehen habe, daß force_card als Parameter gesetzt wird, habe ich es auch hier getan und bekam lediglich bei
# modprobe mt532 force_card=0
folgende Ausgabe durch
# dmesg
drivers/media/dvb/b2c2/skystar2.c: FlexCopIIB(rev.195) chip found
drivers/media/dvb/b2c2/skystar2.c: the chip has 38 hardware filters
DVB: registering new adapter (SkyStar2).
mt352_read_register: readreg error (ret == -512)
mt352_read_register: readreg error (ret == -38)
und durch
# modprobe mt532 force_card=1
#dmesg
drivers/media/dvb/b2c2/skystar2.c: FlexCopIIB(rev.195) chip found
drivers/media/dvb/b2c2/skystar2.c: the chip has 38 hardware filters
DVB: registering new adapter (SkyStar2).
mt352_read_register: readreg error (ret == -22)
mt352_read_register: readreg error (ret == -38)
Und Nu weiß ich nicht mehr weiter. Kann mir jemand helfen? Wo gibts denn z.B. ne Doku zu mt352, damit man wenigstens mal die Modul-Parameter kennt.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# I2C support
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
# I2C Algorithms
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_ALGOPCF=y
CONFIG_I2C_ALGOPCA=y
# I2C Hardware Bus support
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_ELEKTOR is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
CONFIG_I2C_ISA=y
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_STUB is not set
CONFIG_I2C_VIA=y
CONFIG_I2C_VIAPRO=y
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set
CONFIG_I2C_SENSOR=y
# Other I2C Chip support
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set