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