ไม่มีชื่อการ์ดเครือข่าย (eth0, eth1) หลังจากเปลี่ยนเมนบอร์ด


3

ฉันติดตั้งเมนบอร์ดใหม่ (และ CPU และ RAM) (ASRock H97 Pro4 พร้อม Intel Gigabit Ethernet ออนบอร์ด) และฉันกำลังพยายามให้ LMDE (Linux Mint Debian Edition) ปัจจุบันของฉันทำงานด้วย จนถึงดีมาก แต่ไม่มีอินเทอร์เน็ต

อินเทอร์เน็ตมีการจัดการกับ commandline pon dsl-providerใช้ ตอนนี้แสดงให้เห็น

Plugin rp-pppoe.so loaded.
/usr/sbin/pppd: In file /etc/ppp/peers/dsl-provider: unrecognized option 'eth1'

sudo pppoeconf แสดง "ขออภัยไม่พบการ์ดอีเธอร์เน็ตที่ใช้งานได้"

/sbin/ifconfigแสดงว่าไม่มี eth0 หรือ eth1 ใด ๆ รายการเดียวที่มีคือlo(Loopback)

มีบางบทความอื่น ๆ ที่แสดงให้เห็นว่า eth0 eth1 enp0s10หรืออาจจะเพียงแค่ได้รับการเปลี่ยนชื่อเป็นอย่างอื่นเช่นเพื่อเป็น แต่สิ่งที่เปลี่ยนชื่อจะปรากฏใน ifconfig ซึ่งมันไม่ได้

ฉันยังพยายามsudo service networking stop(ทำงาน) sudo service networking startและ คำสั่งที่สองให้:

[....] Configuring network interfaces...eth1: ERROR while getting interface flags: No such device
Failed to bring up dsl-provider.
done.

และยังคงloอยู่ใน ifconfig เท่านั้น

ip addr show eth0 (และด้วย eth1 เช่นเดียวกัน) แสดง:

dig: couldn't get address for 'resolver1.opendns.com': not found

lspci -v แสดงให้เห็นว่า:

[..]

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
        Subsystem: ASRock Incorporation Device 15a1
        Flags bus master, fast devsel, latency 0, IRQ 5
        Memory at f7200000 (32-bit, non-prefetchable) [size=128K]
        Memory at f7238000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at f040 [size=32]
        Capabilities: <access denied>

[..]

แก้ไข I: ขำ ๆ ฉันคิดว่าฉันได้เขียนอะไรบางอย่างเกี่ยวกับ/etc/udev/rules.d/70-persistent-net.rulesไฟล์ไปแล้ว บางทีฉันอาจลบมันในขณะที่เขียนโพสต์

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:52:fe:13", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.5/0000:04:00.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:d0:91:e1:68", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x1814:/sys/devices/pci0000:00/0000:00:1e.0/0000:05:01.0 (rt61pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:29:66:32:7a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

# USB device 0x:0x (r8712u)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:5c:8b:db:40", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan1"

ฉันคิดว่าสองบรรทัดที่เกี่ยวข้องกับอีเธอร์เน็ตมีทั้งจากบอร์ดเก่า ดังนั้นถ้าฉันลบพวกมันไม่มีอะไรเหลือ

/lib/udev/write_net_rulesนอกจากนี้ไฟล์บอกว่ามันจะถูกสร้างขึ้นใหม่ด้วย ตามบทความอื่น ๆ บนเว็บสิ่งนี้สามารถเกิดขึ้นได้ด้วยตนเองหรือโดยอัตโนมัติเมื่อรีบูตหากไฟล์ถูกลบ / เปลี่ยนชื่อ / หายไป อย่างไรก็ตามในกรณีของฉันไม่มีการสร้างใหม่เมื่อรีบูต การเรียกใช้/lib/udev/write_net_rulesด้วยตนเองก่อนจะแสดง "ขาดหายไป $ INTERFACE" เมื่อทำตามคำแนะนำเหล่านี้ที่ip addr show $INTERFACEเป็นที่ที่มันล้มเหลว นี่คือเหตุผลที่ฉันโพสต์ip addr show eth0ด้านบน การทำในลักษณะที่แตกต่าง (จำไม่ได้) แสดงว่าไฟล์เอาต์พุตถูกล็อค (และฉันไม่คิดว่ามันเกี่ยวกับสิทธิ์การเขียนไฟล์)


แก้ไขครั้งที่สอง: ฉันติดตั้งการ์ด PCI ethernet เพิ่มเติมเพื่อดูว่าใช้งานได้หรือไม่ ในตอนแรกนี้เพิ่มบรรทัดใน lspci แต่ไม่มีอะไรใหม่ใน ifconfig ตอนนี้หลังจากรีบูตและติดตั้ง HD เพิ่มเติม (ผลข้างเคียง?) ฉันจะได้รับeth2ใน ifconfig ฉันไม่รู้ว่านี่เป็นการ์ด PCI หรือการ์ดออนบอร์ด

sudo pppoeconf จะรับ eth2 แต่ไม่สามารถกำหนดค่าการเชื่อมต่ออินเทอร์เน็ตด้วยการพูดว่า "Access Concentrator ของผู้ให้บริการของคุณไม่ตอบสนอง"

อย่างไรก็ตามฉันควรลองเปลี่ยนชื่อมันกลับเป็น eth0 / eth1 แทน eth2 ทำงานกับมัน


คุณลองบูท distros อื่นจาก live CD (หรือ USB) หรือไม่? หากอีเธอร์เน็ตทำงานใน Linux distro อื่นคุณสามารถลองทำซ้ำการติดตั้งหรือติดตั้ง distro อื่น ๆ
guaka

@KasperSouren: นี่เป็นสิ่งที่ควรลองต่อไป น่าเสียดายที่ DVD ของฉันไม่ทำงานตั้งแต่บอร์ดใหม่ มีการเชื่อมต่อและรับรู้ได้ครึ่งหนึ่ง แต่ไม่มีแผ่นดีวีดีบูตและ Linux ไม่สามารถอ่านแผ่นดีวีดีใดก็ได้ ปัญหาที่แตกต่าง / ความสามารถของเวิร์มฉันเดาว่าจะไม่พูดถึงที่นี่
donquixote

คำตอบ:


2

ทีนี้เดา - แต่ฉันหวังว่า - ตรงประเด็น

พื้นหลังบางส่วน

วันนี้การตั้งชื่ออุปกรณ์และการสร้างรายการใน/devระบบไฟล์มีการจัดการโดยudevdaemon ซึ่งจำเป็นต้องติดตั้งใน Debians สต็อก ในการทำให้ชื่ออินเทอร์เฟซการ์ดเครือข่ายสามารถคาดเดาได้ให้udevผูกกับที่อยู่ MAC ของพวกเขา (ที่อยู่ฮาร์ดแวร์ระดับต่ำซึ่งสำหรับการ์ดอีเทอร์เน็ตจะเห็นได้เฉพาะที่ชั้นอีเทอร์เน็ต) เมื่อudevสังเกตว่าอินเตอร์เฟซเครือข่ายปรากฏขึ้นเป็นครั้งแรกมันจะสร้างetnNชื่อขึ้นมาและอัปเดตไฟล์ด้วยกฎการตั้งชื่ออินเตอร์เฟสเครือข่ายซึ่งในเดเบียน

% ls -1 /etc/udev/rules.d/*net*
/etc/udev/rules.d/70-persistent-net.rules

ในบันทึกด้านข้างฉันเชื่อว่าไม่ใช่udevตัวเองจริงๆที่อัปเดตไฟล์นี้ แต่สคริปต์บางอย่างที่ได้รับจากการudevโทรDebian เมื่อเห็นอุปกรณ์การ์ดเครือข่ายอินเทอร์เฟซปรากฏขึ้น แต่กลไกที่แน่นอนไม่เกี่ยวข้องกับกรณีของเรา

ปัญหาของการเปลี่ยนมาเธอร์บอร์ดคือการ์ดใหม่มีที่อยู่ MAC แตกต่างจากการ์ดบนเมนบอร์ดเก่าดังนั้นอินเตอร์เฟสที่สร้างขึ้นสำหรับการ์ดใหม่นี้จะมีชื่อแตกต่างจากที่อยู่ในไฟล์ "กฎ" แล้ว

วิธีแก้ไข

ฉันเพิ่งจะเปิดไฟล์กฏนั้นด้วยโปรแกรมแก้ไขข้อความลบบรรทัดทั้งหมดที่เกี่ยวข้องกับการ์ดจากเมนบอร์ดเก่าและแก้ไขไฟล์ที่เหลือเพียงอันเดียวเพื่ออ่านeth0ชื่ออินเตอร์เฟส

หลังจากบันทึกไฟล์คุณสามารถเรียกใช้

# udevadm trigger

eth0เพื่อดูบัตรเครือข่ายของคุณเกิดขึ้นอีกครั้งภายใต้ชื่อ (หากไม่ได้ผลให้เรียกใช้service udev restartหรือรีบูตเป็นวิธีสุดท้าย)


หมายเหตุด้านข้าง: ip addr ...ไม่มีประโยชน์ในกรณีของคุณเพราะเกี่ยวข้องกับระดับ IP และคุณกำลังดิ้นรนกับการกำหนดค่าระดับลิงก์ - ระดับที่ต่ำกว่า ดังนั้นคุณควรลองใช้ip linkคำสั่งเพื่อแสดงรายการ "ลิงก์" เครือข่ายที่มีอยู่ซึ่งโดยทั่วไปหมายถึงการ์ดเข้าถึงเครือข่าย


สองบรรทัดที่มี Eth (บางอย่าง) ใช้สำหรับ eth0 และ eth1 ฉันคิดว่าทั้งสองมาจากกระดานเก่า ดังนั้นถ้าฉันลบสองบรรทัดนี้ออกไปจะไม่มีอะไรเกี่ยวข้องกับจริยธรรม (อีกสองบรรทัดสำหรับ wlan0 และ wlan1) ฉันไม่สามารถได้อย่างง่ายดายคัดลอกวางสายทำให้ฉันบนเครื่องที่แตกต่างกัน ..
donquixote

หากข้อมูลข้างต้นไม่ได้ผลให้ดูอย่างระมัดระวังใน / var / log / dmesg หรือที่ข้อความบูตของระบบของคุณ NIC ของคุณอาจได้รับการยอมรับ แต่อาจจำเป็นต้องใช้ไฟล์เฟิร์มแวร์ที่ไม่ต้องใช้เพื่อแสดงและใช้งานจริง อาจเป็นกรณีหากเป็นการ์ด Intel บางประเภทหรืออื่น ๆ (เช่นtg3)
LawrenceC

อัปเดตคำถามแล้ว @ultrasawblade: ฉันจะมองหาอะไรใน / var / log / dmesg
donquixote

@donquixote, dmesg | grep -i ethเพื่อดูว่าเคอร์เนลพิมพ์อะไรเกี่ยวกับอุปกรณ์อีเธอร์เน็ตที่มันสามารถเปิดใช้งานได้ อาจทำให้การ์ดเครือข่ายในตัวไม่รองรับไดรเวอร์ที่มีอยู่ (ไม่น่าเป็นไปได้ แต่ยังมีความเป็นไปได้)
kostix

ลองสิ่งที่ต้องการหรือgrep firmware /var/log/dmesg grep firmware /var/log/kern.log
LawrenceC

0

นี่คือสิ่งที่ฉันทำ (ประเภท) แก้ไขปัญหาให้ฉัน ฉันจะไม่บอกว่านี่เป็นทางออกที่เป็นสากล โดยเฉพาะอย่างยิ่งเพราะไม่ใช่ทุกคนที่มีการ์ดอีเธอร์เน็ต PCI สำรอง

  1. ติดตั้งการ์ด PCI ethernet (นอกเหนือจากการ์ดออนบอร์ด) ในกรณีของฉันนี่คือ Realtek RTL-8139 รุ่นเก่า
  2. /etc/udev/rules.d/70-persistent-net.rulesเปลี่ยนชื่อ
  3. (อาจทำสิ่งที่ไม่เกี่ยวข้องเช่นเชื่อมต่อ HD ใหม่หรือเต้นรำรอบกองไฟ)
  4. Reboot
  5. sudo pppoeconfวิ่ง ถ้ามันขอให้คุณทำสำรองทำ จากนั้นทำตามขั้นตอน

ผลลัพธ์ (สำหรับฉัน):

  • ifconfig แสดงการ์ดอีเทอร์เน็ต PCI ที่เพิ่มเป็น eth0 แต่ไม่มีรายการ eth * เพิ่มเติมนอกเหนือจากนั้น (เฉพาะloและppp0)
  • ไฟล์/etc/udev/rules.d/70-persistent-net.rulesไม่ได้ถูกสร้างใหม่ มันขาดอยู่ไม่มีตัวตน
  • งานอินเทอร์เน็ต

ฉันคิดว่านี่หมายถึงว่าอีเธอร์เน็ตออนบอร์ดยังไม่ได้รับการยอมรับ ฉันคิดว่าอีเธอร์เน็ตออนบอร์ดใหม่นั้นค่อนข้างเหนือกว่าการ์ด PCI ทั่วไป แต่ฉันก็ไม่รู้ว่ามันแตกต่างกันมากแค่ไหน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.