Kernel kompilieren Warnings interpretieren

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Soerensen
Beiträge: 10
Registriert: 29.03.2012 12:59:48

Kernel kompilieren Warnings interpretieren

Beitrag von Soerensen » 29.03.2012 13:11:15

Hallo zusammen,
bin neu hier und hoffe ihr habt mehr Ahnung als ich in Sachen Kernelwarnings.

Ich habe mich nun endlich mal gewagt einen eigenen Kernel zu kompilieren und ein wenig über make menuconfig in die Settings reinzulesen. Mein Ziel einen Kernel 3.2.12-rt22 zu bauen ist mir auch gelungen. Bootet und funktioniert. Nun wollte ich aber wissen, was die Warnings beim kompilieren bedeuten. Da google mir nur bei trace.c weiterhilft dachte ich, dass ich mal nachfrage.

Wenn ich die Ausgabe der Kernelkompilierung nach warnings grepe, erhalte ich folgeden Zeilen:
  • kernel/trace/trace.c:3669: warning: 'page2' may be used uninitialized in this function
    fs/ecryptfs/miscdev.c:427: warning: format '%lu' expects type 'long unsigned int', but argument 4 has type 'unsigned int'
    fs/nfs/nfs4proc.c:3583: warning: format '%ld' expects type 'long int', but argument 4 has type 'size_t'
    fs/nfs/nfs4proc.c:3583: warning: format '%ld' expects type 'long int', but argument 6 has type 'size_t'
    crypto/anubis.c:581: warning: 'inter' is used uninitialized in this function
    drivers/edac/i82975x_edac.c:298: warning: integer constant is too large for 'unsigned long' type
    drivers/mtd/devices/sst25l.c:381: warning: unused variable 'i'
    drivers/net/ethernet/amd/nmclan_cs.c:628: warning: 'pcmcia_request_exclusive_irq' is deprecated (declared at include/pcmcia/ds.h:201)
    include/linux/mca-legacy.h:12:2: warning: #warning "MCA legacy - please move your driver to the new sysfs api"
    include/linux/mca-legacy.h:12:2: warning: #warning "MCA legacy - please move your driver to the new sysfs api"
    drivers/net/tokenring/ibmtr_cs.c:195: warning: 'pcmcia_request_exclusive_irq' is deprecated (declared at include/pcmcia/ds.h:201)
    drivers/rtc/rtc-m41t80.c:216: warning: 'm41t80_rtc_alarm_irq_enable' defined but not used
    drivers/rtc/rtc-m41t80.c:238: warning: 'm41t80_rtc_set_alarm' defined but not used
    drivers/rtc/rtc-m41t80.c:308: warning: 'm41t80_rtc_read_alarm' defined but not used
    drivers/scsi/advansys.c:72:2: warning: #warning this driver is still not properly converted to the DMA API
    include/linux/mca-legacy.h:12:2: warning: #warning "MCA legacy - please move your driver to the new sysfs api"
    drivers/scsi/lpfc/lpfc_scsi.c:1307: warning: integer constant is too large for 'long' type
    drivers/scsi/lpfc/lpfc_scsi.c:1333: warning: integer constant is too large for 'long' type
    drivers/scsi/lpfc/lpfc_scsi.c:1344: warning: integer constant is too large for 'long' type
    drivers/scsi/lpfc/lpfc_scsi.c:1367: warning: integer constant is too large for 'long' type
    drivers/scsi/lpfc/lpfc_scsi.c:1378: warning: integer constant is too large for 'long' type
    drivers/scsi/lpfc/lpfc_scsi.c:1412: warning: integer constant is too large for 'long' type
    drivers/scsi/lpfc/lpfc_scsi.c:1434: warning: integer constant is too large for 'long' type
    drivers/scsi/lpfc/lpfc_debugfs.c:3892: warning: integer constant is too large for 'long' type
    drivers/scsi/mpt2sas/mpt2sas_scsih.c:5729: warning: unused variable 'event_data'
    drivers/staging/vt6656/main_usb.c:2065: warning: the frame size of 1860 bytes is larger than 1024 bytes
    drivers/staging/vt6656/iwctl.c:787: warning: the frame size of 1288 bytes is larger than 1024 bytes
    drivers/staging/wlan-ng/prism2fw.c:1115: warning: the frame size of 4252 bytes is larger than 1024 bytes
    drivers/staging/wlan-ng/prism2fw.c:793: warning: the frame size of 1076 bytes is larger than 1024 bytes
    net/sunrpc/xprtrdma/verbs.c:1767: warning: the frame size of 1044 bytes is larger than 1024 bytes
Wie oben schon gesagt, würde mich interessieren, was diese Zeilen aussagen, bzw. ob man über make menuconfig bestimmte Einstullungen ändern muss, so dass die Warnings (abgesehen vom ersten) nicht mehr auftreten?

Beste Grüße,
Sören

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: Kernel kompilieren Warnings interpretieren

Beitrag von pferdefreund » 29.03.2012 14:37:55

Sowas bedeute in vielen Fällen, dass felder eventuell nicht den kompletten Datenwert aufnehmen können oder
die Datenformate nicht passen könnten.
Ob das Auswirkungen haben kann, ist ohne den Quelltext drumherun nicht zu beantworten.
drivers/scsi/lpfc/lpfc_scsi.c:1333: warning: integer constant is too large for 'long' type << hier wird ein Wert abgeschnitten - ein
Feld hat z. B Platz für 7 stellen und 9 werden als Konstant reingestellt. Kann, muß aber keine Auswirkungen haben.
Ist alles eine Frage der Logik.
drivers/rtc/rtc-m41t80.c:238: warning: 'm41t80_rtc_set_alarm' defined but not used < hier wurde ein Feld oder ein Funktionsprototyp definiert, der anschließend nicht verwendet wird - Harmlos.
s/nfs/nfs4proc.c:3583: warning: format '%ld' expects type 'long int', but argument 4 has type 'size_t' vermutlich ne printf oder kprintf Anweisung. Maximal ist die Konsolmeldung abgschnitten - sonst sollte nix passieren - aber wie schon oben gesagt - ohne Quelltext um die Meldung ist alles nur Spekulation.

Soerensen
Beiträge: 10
Registriert: 29.03.2012 12:59:48

Re: Kernel kompilieren Warnings interpretieren

Beitrag von Soerensen » 29.03.2012 16:18:09

Danke! ... dass habe ich befürchtet.
Mit Quelltext meinst du die jeweiligen c-Dateien? Die kann ich mir zwar anschauen (Kernelsource) aber das heißt ja nicht, dass ich sie verstehe...
Oder meinst du mit Quelltext, die Meldungen um die Logmeldungen?
Beste Grüße,
Sören

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Kernel kompilieren Warnings interpretieren

Beitrag von Cae » 30.03.2012 08:31:41

Quelltext ist C/Assembler-Code, nicht Logs.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten