こんにちは、私は特定の理由で復活した古いLinuxサーバーを持っており、以前にそのサーバーで使用していたRedhat 6イメージでサーバーを更新しました。これにより、OSはpci拡張スロットに配置されたpciネットワークカードを使用できませんが、ifconfigを使用してデバイスとして表示することはできませんが、ifconfigでマザーボードに接続されている2つのポートを表示できるようになりました。ただし、これらのポートは使用できないか、Network Manager サービスによって管理されます。これが私の観点から見るものです。
>ifconfig
eth4 Link encap:Ethernet HWaddr B4:96:91:4E:13:F1
UP BROADCAST MULTICAST MTU:9000 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Memory:fb100000-fb200000
eth5 Link encap:Ethernet HWaddr B4:96:91:4E:13:F0
inet addr:192.9.200.11 Bcast:192.9.200.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:9000 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Memory:fb200000-fb300000
関連性があるように見えるdmesgから取得した内容は次のとおりです。
pci 0000:09:00.0: [8086:1533] type 0 class 0x000200
pci 0000:09:00.0: reg 10: [mem 0xce800000-0xce87ffff]
pci 0000:09:00.0: reg 18: [io 0x5000-0x501f]
pci 0000:09:00.0: reg 1c: [mem 0xce880000-0xce883fff]
pci 0000:09:00.0: PME# supported from D0 D3hot D3cold
pci 0000:09:00.0: PME# disabled
pci 0000:00:1c.2: PCI bridge to [bus 09-09]
pci 0000:00:1c.2: bridge window [io 0x5000-0x5fff]
pci 0000:00:1c.2: bridge window [mem 0xce800000-0xce8fffff]
pci 0000:0a:00.0: [8086:1533] type 0 class 0x000200
pci 0000:0a:00.0: reg 10: [mem 0xce700000-0xce77ffff]
pci 0000:0a:00.0: reg 18: [io 0x4000-0x401f]
pci 0000:0a:00.0: reg 1c: [mem 0xce780000-0xce783fff]
pci 0000:0a:00.0: PME# supported from D0 D3hot D3cold
pci 0000:0a:00.0: PME# disabled
pci 0000:81:00.0: [8086:1521] type 0 class 0x000200
pci 0000:81:00.0: reg 10: [mem 0xfb200000-0xfb2fffff]
pci 0000:81:00.0: reg 1c: [mem 0xfb304000-0xfb307fff]
pci 0000:81:00.0: PME# supported from D0 D3hot D3cold
pci 0000:81:00.0: PME# disabled
pci 0000:81:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit pref]
pci 0000:81:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit pref]
pci 0000:81:00.1: [8086:1521] type 0 class 0x000200
pci 0000:81:00.1: reg 10: [mem 0xfb100000-0xfb1fffff]
pci 0000:81:00.1: reg 1c: [mem 0xfb300000-0xfb303fff]
pci 0000:81:00.1: PME# supported from D0 D3hot D3cold
pci 0000:81:00.1: PME# disabled
pci 0000:81:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit pref]
pci 0000:81:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit pref]
NET: Registered protocol family 10
igb 0000:81:00.1: changing MTU from 1500 to 9000
ADDRCONF(NETDEV_UP): eth4: link is not ready
igb 0000:81:00.0: changing MTU from 1500 to 9000
ADDRCONF(NETDEV_UP): eth5: link is not ready
type=1400 audit(1628863781.555:4): avc: denied { sys_tty_config } for pid=6008 comm="kexec" capability=26 scontext=system_u:system_r:kdump_t:s0 tcontext=system_u:system_r:kdump_t:s0 tclass=capability
type=1400 audit(1628863781.556:5): avc: denied { write } for pid=6008 comm="kexec" path="/dev/pts/0" dev=devpts ino=3 scontext=system_u:system_r:kdump_t:s0 tcontext=syste
dca service started, version 1.12.1
Intel(R) Gigabit Ethernet Network Driver - version 3.2.10-k
Copyright (c) 2007-2011 Intel Corporation.
igb 0000:81:00.0: PCI INT A -> GSI 50 (level, low) -> IRQ 50
igb 0000:81:00.0: setting latency timer to 64
igb 0000:81:00.0: irq 110 for MSI/MSI-X
igb 0000:81:00.0: irq 111 for MSI/MSI-X
igb 0000:81:00.0: irq 112 for MSI/MSI-X
igb 0000:81:00.0: irq 113 for MSI/MSI-X
igb 0000:81:00.0: irq 114 for MSI/MSI-X
igb 0000:81:00.0: irq 115 for MSI/MSI-X
igb 0000:81:00.0: irq 116 for MSI/MSI-X
igb 0000:81:00.0: irq 117 for MSI/MSI-X
igb 0000:81:00.0: irq 118 for MSI/MSI-X
igb 0000:81:00.0: Intel(R) Gigabit Ethernet Network Connection
igb 0000:81:00.0: eth0: (PCIe:5.0Gb/s:Width x4) b4:96:91:4e:13:f0
igb 0000:81:00.0: eth0: PBA No: H47819-003
igb 0000:81:00.0: Using MSI-X interrupts. 8 rx queue(s), 8 tx queue(s)
igb 0000:81:00.1: PCI INT B -> GSI 52 (level, low) -> IRQ 52
igb 0000:81:00.1: setting latency timer to 64
igb 0000:81:00.1: irq 119 for MSI/MSI-X
igb 0000:81:00.1: irq 120 for MSI/MSI-X
igb 0000:81:00.1: irq 121 for MSI/MSI-X
igb 0000:81:00.1: irq 122 for MSI/MSI-X
igb 0000:81:00.1: irq 123 for MSI/MSI-X
igb 0000:81:00.1: irq 124 for MSI/MSI-X
igb 0000:81:00.1: irq 125 for MSI/MSI-X
igb 0000:81:00.1: irq 126 for MSI/MSI-X
igb 0000:81:00.1: irq 127 for MSI/MSI-X
igb 0000:81:00.1: Intel(R) Gigabit Ethernet Network Connection
igb 0000:81:00.1: eth1: (PCIe:5.0Gb/s:Width x4) b4:96:91:4e:13:f1
igb 0000:81:00.1: eth1: PBA No: H47819-003
igb 0000:81:00.1: Using MSI-X interrupts. 8 rx queue(s), 8 tx queue(s)
だから私はそれらがすべてそこにあり、デバイスドライバが存在し、ロードされていることを確認するために確認したpci IDも見ることができます。
lsmod | grep igb
igb 113015 0
dca 6877 1 igb
igbカーネルドライバは拡張カード用ですが、マザーボードのオンボードイーサネットポート用ではないようです。これにより、すべてのポートにアクセスできなくなる可能性がありますか?私のポートが利用できないOSの問題を解決する方法に関する提案がある場合は、大変感謝します。
そこで、オンボードイーサネットコントローラがigbドライバを使用するintel i210 8086:1533であることを確認し、igbドライバをアンインストールして再インストールし始めました。カーネルは3.2rtなのでigbは2.6+からサポートされているので大丈夫だと思いましたが、rmmod igbを実行してから最新のigbバージョンのtarファイルで「make install」を実行しようとすると、クラッシュによってmakeが失敗します。 「netdev_features_t」のため、すでに存在するなどの問題があります。 igbのアンインストールを完了するために、次のコマンドを実行したときに以前にインストールされたigbドライバにこれが残っている可能性があると思いました。
rpm -q igb
rpm -e igb //or igb<kernel version>
rpmが削除されているモジュールが見つからない場合、またはモジュールが存在しない場合は、部分的に削除されたデバイスドライバの残りの部分をどこで見つけることができるかを知っていますか?私が知っているすべてのigbファイルを消去しましたが、makeはまだ失敗します。削除されたファイルのリスト
/usr/src/kernel/<kernelversion>/drivers/net/ethernet/intel/igb //wiped out whole directory containing the original makefile
/lib/modules/kernel/<kernelversion>/drivers/net/ethernet/intel/igb //dir containing the .ko file
元の.oファイルがまだ存在する他の場所はありますか?ライブFedoraイメージもブートしたのですが、ポート4つすべてを確認し、問題なくigbを使用したためドライバのようです。
答え1
通常、ifconfig
オプションなしで設定されたネットワークカードのみが表示されます。未設定のネットワークカードも表示できますifconfig -a
。カードが設定されていない場合(たとえば、カードのMACアドレスが既存の設定に記載されているアドレスと一致しないため)、ドライバはそのカードのリソースを予約しないため、おそらくdca
1回しか使用できません1
。
/etc/udev/rules.d/70-persistent-net.rules
NICを特定の名前の特定のMACアドレスにeth*
関連付ける行があることを確認してください。ディスクイメージが特定のシステムのものではない場合は、イメージが存在するシステムのNICを参照するいくつかのMACアドレスを見つける可能性があります。特定のNICに特定の名前を割り当てたい場合は、この行をコメントアウトまたは編集できます。
/etc/sysconfig/network-scripts/ifcfg-eth*
次に、すべてのファイルのMACアドレス参照も確認してください。彼らは次のようになりますHWADDR=<MAC address here>
。これらは存在する場合も存在しない場合もあります。これは、udevの名前の前に継続的なNIC命名を保証する従来のRedHat方式でした70-persistent-net.rules
。HWADDR=
すべての行を完全に削除し、udevルールにNIC名の割り当てを処理させることをお勧めします。
「欠落している」NICがある行がある場合は、システムログにこのテンプレートに一致する1つまたは2つのメッセージをHWADDR=
見つけることができます。ifup
"Device ${DEVICE} has MAC address ${FOUNDMACADDR}, instead of configured address ${HWADDR}. Ignoring."
RHEL 6は、「このネットワーク構成はこのハードウェアと一致しません。私はそのNICに何も触れません。システム管理者に変更を依頼してください」と言います。