Warnungen beim Kernel kompilieren

JamesG

Registered User
Hi,

ich bekomme ein Paar Warnungen bei kompilieren eines Kernels und so dass ich es zum ersten mal mache, weis ich leider nicht, was sie bedeuten...

Wäre super, wenn sie mir jemand erklären könnte...

drivers/net/3c509.c: In function `el3_common_remove':
drivers/net/3c509.c:367: warning: `pm_unregister' is deprecated (declared at include/linux/pm_legacy.h:21)
drivers/net/3c509.c: In function `el3_probe':
drivers/net/3c509.c:577: warning: `pm_register' is deprecated (declared at include/linux/pm_legacy.h:16)
CC drivers/net/8139too.o
CC drivers/net/dl2k.o
drivers/net/dl2k.c: In function `rio_free_tx':
drivers/net/dl2k.c:768: warning: integer constant is too large for "long" type
drivers/net/dl2k.c: In function `receive_packet':
drivers/net/dl2k.c:896: warning: integer constant is too large for "long" type
drivers/net/dl2k.c:904: warning: integer constant is too large for "long" type
drivers/net/dl2k.c:916: warning: integer constant is too large for "long" type
drivers/net/dl2k.c: In function `rio_close':
drivers/net/dl2k.c:1803: warning: integer constant is too large for "long" type
drivers/net/dl2k.c:1813: warning: integer constant is too large for "long" type

drivers/scsi/dpt_i2o.c:170: warning: `dptids' defined but not used (wird diese Warnung immer angezeigt, wenn ich ein Stück Software ausgewählt habe, das unnötig ist?)

drivers/scsi/sata_svw.c: In function `k2_sata_tf_load':
drivers/scsi/sata_svw.c:113: warning: passing arg 2 of `writeb' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:118: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:119: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:120: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:121: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:122: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:124: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:125: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:126: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:127: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:128: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:132: warning: passing arg 2 of `writeb' makes pointer from integer without a cast
drivers/scsi/sata_svw.c: In function `k2_sata_tf_read':
drivers/scsi/sata_svw.c:144: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:145: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:146: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:147: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:148: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_svw.c:149: warning: passing arg 1 of `readw' makes pointer from integer without a cast

drivers/scsi/sata_vsc.c: In function `vsc_sata_tf_load':
drivers/scsi/sata_vsc.c:146: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:147: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:148: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:149: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:150: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:152: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:153: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:154: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:155: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:156: warning: passing arg 2 of `writew' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:160: warning: passing arg 2 of `writeb' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c: In function `vsc_sata_tf_read':
drivers/scsi/sata_vsc.c:172: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:173: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:174: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:175: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:176: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:177: warning: passing arg 1 of `readw' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c: In function `vsc_sata_setup_port':
drivers/scsi/sata_vsc.c:310: warning: passing arg 2 of `writel' makes pointer from integer without a cast
drivers/scsi/sata_vsc.c:311: warning: passing arg 2 of `writel' makes pointer from integer without a cast

thanks,
JamesG
 
djrick said:
Gegenfrage: Kompiliert der Kernel denn richtig zuende?

ja und es scheint auch "oberflechlich" alles zu funktionieren...
So dass man ja nicht alles so schnell selbst am System testen kann, würde gerne wissen, was diese "Warnungen" bedeuten-- da kann ich vieleicht daraus erfahren, wo was nicht funktionieren könnte, was die ersache ist, wie ich sie beheben kann, oder ob ich nicht irgend eine Software ausgewählt habe, die nicht verwendet wird...

Alles um sich ein wenig besser auszukennen ;-)


Grüße,
JamesG
 
JamesG said:
drivers/net/3c509.c: In function `el3_common_remove':
drivers/net/3c509.c:367: warning: `pm_unregister' is deprecated (declared at include/linux/pm_legacy.h:21)

die Funktion fliegt bald aus dem Kernel raus, und sollte nicht merh verwendet werden, wird aber noch unterstützt. --> kein Problem - die Modul Maintainer müssen sich darum mal kümmern.

Betrifft die 3Com 10/100 MBit Karten


drivers/net/3c509.c: In function `el3_probe':
drivers/net/3c509.c:577: warning: `pm_register' is deprecated (declared at include/linux/pm_legacy.h:16)

das selbe noch mal

drivers/net/dl2k.c: In function `rio_free_tx':
drivers/net/dl2k.c:768: warning: integer constant is too large for "long" type
Hier gehen bei der Verwendung einer Konstante die höchstwertigen Bits verloren. Die warnung lässt sich leicht beheben, in dem man den Wert der Konstante verringert. Macht der Compiler aber eh automatisch. Dürfte auch zu keinen Problemen führen.

drivers/scsi/dpt_i2o.c:170: warning: `dptids' defined but not used (wird diese Warnung immer angezeigt, wenn ich ein Stück Software ausgewählt habe, das unnötig ist?)
nein, das sagt, dass in dem Modul eine Funktion definiert wird, die das Modul selber nicht benötigt. Das Modul selber brauchst du aber evtl. schon

drivers/scsi/sata_svw.c: In function `k2_sata_tf_load':
drivers/scsi/sata_svw.c:113: warning: passing arg 2 of `writeb' makes pointer from integer without a cast

hier wurde in (vermutlich void) Pointer einem anderen Datentyp zugewiesen, ohen einen expliziten Typecast vorzunehmen.
Vermutlich hat der Programmierer nur den Cast vergessen. Dürfte also auch nicht zu Problemen führen.

So lange du keine OOPSe im Log hast, udn beim Module laden keine Segfaults bekommst, kansnt du alle Warnungen ignorieren.
 
Ilai: Vielen Dank!,

Eine Fragen Noch:

Besteht die Möglichkeit irgend wie zu überprüfen, ob alles, was man beim kompilieren ausgewählt hat, auch wirklich vom Server benötigt, bzw.: tatsächlich verwendet wird?? (irgend ein test?, etc.)


thx,
JamesG
 
also direkt 'nen Test kenn ich nicht - das einzige ist, mit hwinfo zu schauen, was das so alles im Rechner rum kreucht und fleucht, und die Boot Logs so wie Syslog Einträge beim Laden von Modulen auswerten.
Wen nein Modul geladne wird, oder als fester Bestandteil des Kernels beim Booten initialisiert wird, aber kein passendes Gerät findet, kann es auch raus.

Du kansnt natürlich den Kernel auch maximal modular aufbauen, und nur solche Sachen wie Blockgeräte Treiber für den Plattenzugriff udn die Dateisysteme fest mit rein nehmen, oder alles als Modul, und dann ein Initramfs erstellen.
Dann kannst du dir die Module für die Geräte nach laden, mit denen du auch tatsächlich arbeitest.
Spätestens dann weisst du, welche Treiber du brauchst.
Wenn dir das zu umständlich ist, udn du den Rechner von CD booten kannst, dann einfach ein Knoppix booten und schauen, was der so an Treibern alles rein zieht.
 
Back
Top