RHEL4 (+ klony) a driver pro PC87360
Petr Soucek
petr na ryston.cz
Pondělí Únor 28 14:05:29 CET 2005
Zdravim,
rad bych rozchodil lm_sensors na MSI 1U serverech P1-102A2M (MS-9249) s
Lineox 4.0 (klon RHEL4.0) a nevim jak nejlepe na to.
sensors-detect mi najde:
Driver `pc87360' (should be inserted):
Detects correctly:
* ISA bus address 0x0820 (Busdriver `i2c-isa')
Chip `Nat. Semi. PC87366 Super IO Fan Sensors' (confidence: 9)
* ISA bus address 0x0830 (Busdriver `i2c-isa')
Chip `Nat. Semi. PC87366 Super IO Voltage Sensors' (confidence: 9)
* ISA bus address 0x0860 (Busdriver `i2c-isa')
Chip `Nat. Semi. PC87366 Super IO Thermal Sensors' (confidence: 9)
Jenomze v kernelu 2.6.9 pc87360 driver neni, ten byl pridan az v kernelu
2.6.10. Lze nejak zkompilovat pc87360.c z noveho kernelu samostatne? A jde
to vubec?
Zkusil jsem pridat pc87360.c z posledniho kernelu - 2.6.11-rc5-bk2 - do rpm
kernelu kernel-2.6.9-5.0.3.EL tak, ze jsem udelal patch obsahujici
pc87360.c, doplneni Makefile, Kconfig doplnil jsem prislusny radek do
.config a pridal jsem patch do .spec souboru.
Kompilace kernelu probehla bez problemu, ale:
[root na ns3 ~]# modprobe i2c-isa
[root na ns3 ~]# modprobe pc87360
Segmentation fault
[root na ns3 ~]# lsmod
Module Size Used by
pc87360 30290 1
i2c_sensor 3521 1 pc87360
i2c_isa 2241 0
i2c_core 22081 3 pc87360,i2c_sensor,i2c_isa
v dmesg je:
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
f88ec123
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: pc87360 i2c_sensor i2c_isa i2c_core parport_pc lp parport
autofs4 sunrpc ipt_REJECT ipt_state ip_conntrack iptable_filter ip_tables
button battery ac md5 ipv6 uhci_hcd ehci_hcd e1000 floppy dm_snapshot
dm_zero dm_mirror ext3 jbd dm_mod ata_piix libata sd_mod scsi_mod
CPU: 0
EIP: 0060:[<f88ec123>] Not tainted VLI
EFLAGS: 00010246 (2.6.9-5.0.3.EL.root.rys.1)
EIP is at i2c_detect+0x123/0x3b8 [i2c_sensor]
eax: 00000000 ebx: 00000000 ecx: f8a02725 edx: f89393e0
esi: 00000000 edi: f8a06b20 ebp: 00000000 esp: f6f03f70
ds: 007b es: 007b ss: 0068
Process modprobe (pid: 3016, threadinfo=f6f03000 task=f79c3970)
Stack: 00000000 000023e7 00000001 00000000 f8a02725 f89393e0 f8939580 f8a06b60
f89fe120 00000000 f89f94f4 c034f200 f8a07380 c034f1c0 c034f1c0 c013b351
08178708 0816c218 00000000 f6f03000 c0301a1b 08178708 000098c8 0816c218
Call Trace:
[<f8a02725>] pc87360_detect+0x0/0x8d4 [pc87360]
[<f89f94f4>] i2c_add_driver+0xa1/0xba [i2c_core]
[<c013b351>] sys_init_module+0x1f1/0x2d9
[<c0301a1b>] syscall_call+0x7/0xb
Code: 8b 54 24 0c 66 83 3c 50 fe eb 9a 83 04 24 08 85 f6 0f 85 7d 02 00 00
8b 1c 24 03 5f 20 83 3b 00 0f 85 71 ff ff ff 8b 47 18 31 db <66> 83 38 fe 74
40 8b 4f 18 0f b7 14 59 0f b7 c2 39 44 24 04 74
Vysledkem je t, ze modul pc87360 je sice naloadovany, ale nefunkcni.
[root na ns3 src]# sensors -s
No sensors found!
Jak dal postupovat?
Predpokladam, ze Redhat kernel v RHEL4 upgradovat nebude, a davat tam
vanilla novy kernel se mi nezda.
Petr Soucek
Další informace o konferenci Linux