Konfiguration des laufenden Kernels auslesen?
Konfiguration des laufenden Kernels auslesen?
Hallo zusammen,
ich betreibe ein Debian5 (CT-Server) als Xen-Dom0. Dort läuft ein Kernel 2.6.26-2-xen-amd64 und soweit ich weiß ist der von den Machern des CT-Servers angepasst. Der Switch kann Trunking und ich würde nun gerne die NIC:
INTEL PRO1000PT 1GBit 4xRJ45 NIC Quad Port Server Adapter PCI-Express Retail LP
einbauen. Um damit Bonding zu nutzen muss das Feature ja im Kernel aktiviert sein. Wie kann ich generell feststellen welche Funktionen/Treiber im Kernel aktiviert sind und welche nicht?
Viele Grüße
pixel
ich betreibe ein Debian5 (CT-Server) als Xen-Dom0. Dort läuft ein Kernel 2.6.26-2-xen-amd64 und soweit ich weiß ist der von den Machern des CT-Servers angepasst. Der Switch kann Trunking und ich würde nun gerne die NIC:
INTEL PRO1000PT 1GBit 4xRJ45 NIC Quad Port Server Adapter PCI-Express Retail LP
einbauen. Um damit Bonding zu nutzen muss das Feature ja im Kernel aktiviert sein. Wie kann ich generell feststellen welche Funktionen/Treiber im Kernel aktiviert sind und welche nicht?
Viele Grüße
pixel
- feltel
- Webmaster
- Beiträge: 10458
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Re: Konfiguration des laufenden Kernels auslesen?
Die Kernelconfigs liegen in /boot und die aktuelle bekommst Du mit
Etwaige Kernel-Boot-Parameter stehen in /proc/cmdline
Code: Alles auswählen
cat /boot/config-`uname -r`
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
Re: Konfiguration des laufenden Kernels auslesen?
Falls CONFIG_IKCONFIG_PROC gesetzt ist, existiert /proc/config.gz.
MfG GoKi
:wq
:wq
Re: Konfiguration des laufenden Kernels auslesen?
Ohne /boot/config und /proc/config?
Bsp. bonding.ko
Zumal durch die Existenz von bonding.ko:
Beim Laden entstehen *bond*-Dateien in /proc/ und /sys/.
?
"bond"-Strings des Moduls,
falls einkompiliert müßte das gezippte Kernel-Image zuerst mal dekomprimiert werden: ((Hier suche ich nach der im Kernelimage enthaltenen "gcc version")
Die MAGIC für die Zip-Datei "1f8b 0800" ist ziemlich am Anfang, daher die Beschränkung '$((0x6470))' in $POS,
zusätzlich sollen das zweite 'grep' Zufallstreffer ausschließen, siehe)
Über die String-Suche hinaus würde es zu Reverse-Engineering führen?
Bsp. bonding.ko
Zumal durch die Existenz von bonding.ko:
Code: Alles auswählen
$ grep -i bond modules.*
...
Binary file modules.alias.bin matches
...
modules.dep:kernel/drivers/net/bonding/bonding.ko:
...
Binary file modules.dep.bin matches
Code: Alles auswählen
$ grep -i bond System.map-2.6.30-2-686
c0291b2e T netdev_bonding_change
c03c4544 r __ksymtab_netdev_bonding_change
c03c9cc4 r __kcrctab_netdev_bonding_change
c03d9803 r __kstrtab_netdev_bonding_change
"bond"-Strings des Moduls,
falls einkompiliert müßte das gezippte Kernel-Image zuerst mal dekomprimiert werden:
Code: Alles auswählen
...
KERNEL=/boot/vmlinuz-"$KERNEL_VERSION"
echo KERNEL: "$KERNEL"
POS=$(xxd -c2 -l $((0x6470)) "$KERNEL" | grep -A1 ": 1f8b " | grep -B1 ": 0800 " | awk -F: '$2~/1f8b/ {print $1}')
KERNEL_CC_VERSION=$(dd skip=1 if="$KERNEL" bs=$((0x$POS)) 2>/dev/null | gunzip -c 2>/dev/null | strings | egrep -m1 -o "gcc version ..." | cut -d" " -f3)
#export GCC="CC=gcc-$KERNEL_CC_VERSION"
export GCC="gcc-$KERNEL_CC_VERSION"
Die MAGIC für die Zip-Datei "1f8b 0800" ist ziemlich am Anfang, daher die Beschränkung '$((0x6470))' in $POS,
zusätzlich sollen das zweite 'grep' Zufallstreffer ausschließen, siehe
Code: Alles auswählen
xxd -c2 vmlinuz-2.6.30-2-686 | grep -A1 ": 1f8b "
Über die String-Suche hinaus würde es zu Reverse-Engineering führen?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Konfiguration des laufenden Kernels auslesen?
Also:
liefert kein Ergebnis.
Die Datei /proc/config.gz existiert nicht und
liefert auch kein Ergebnis. Das bedeutet wohl das bonding ist weder fest noch als Modul im Kernel drin, oder?
Code: Alles auswählen
cat /boot/config-`uname -r` | grep bond
Die Datei /proc/config.gz existiert nicht und
Code: Alles auswählen
grep -i bond modules.*
Re: Konfiguration des laufenden Kernels auslesen?
hi,
oder
in den config-Dateien wird praktisch alles groß geschrieben, es sollte also heißen:pixel24 hat geschrieben:liefert kein Ergebnis.Code: Alles auswählen
cat /boot/config-`uname -r` | grep bond
Code: Alles auswählen
cat /boot/config-`uname -r` | grep BOND
Code: Alles auswählen
grep -i bond /boot/config-`uname -r`
Beware of programmers who carry screwdrivers.
Re: Konfiguration des laufenden Kernels auslesen?
Die /boot/config existiert?pixel24 hat geschrieben:liefert kein Ergebnis.Code: Alles auswählen
cat /boot/config-`uname -r` | grep bond
Dann muß es 'grep -i' heißen, oder Du solltest nach "BOND" suchen (Großschreibung).
Das Feature ist nicht im Kernel.Die Datei /proc/config.gz existiert nicht und
Wenn, ist es nicht als eigenes Modul realisiert.liefert auch kein Ergebnis.Code: Alles auswählen
grep -i bond modules.*
Und dann würden die *bond*-Dateien in /proc/, /sys/ schon vom kernel-Start ab existieren.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Konfiguration des laufenden Kernels auslesen?
Das sieht schon besser aus:
Es ist also als Medul im Kernel vorhanden. Danke für die Hilfe!
Code: Alles auswählen
cat /boot/config-`uname -r` | grep -i bond
CONFIG_WINBOND_FIR=m
# CONFIG_PATA_WINBOND is not set
CONFIG_BONDING=m
CONFIG_WINBOND_840=m
Re: Konfiguration des laufenden Kernels auslesen?
Addendum:
wo die modules.*-Dateien liegen.
Das muß (natürlich) im Modulverzeichnis des Kernels /lib/modules/KERNELVERSION/ durchgeführt werden,pixel24 hat geschrieben:liefert auch kein Ergebnis.Code: Alles auswählen
grep -i bond modules.*
wo die modules.*-Dateien liegen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")