Table of Contents

Ενσύρματες κάρτες δικτύου

Firmware

Εάν μας εμφανιστεί κάποιο μήνυμα όπως

update-initramfs: Generating /boot/initrd.img-2.6.39-2-686-pae
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169

τότε μας λείπει firmware για την κάρτα δικτύου

Δοκιμάζουμε να ψάξουμε σε ποιο πακέτο μπορεί να υπάρχει (π.χ. το αρχείο rtl8105e-1.fw)

apt-cache search rtl8105e-1.fw
 firmware-realtek - Binary firmware for Realtek wired and wireless network adapters

Εγκαθιστούμε το παραπάνω πακέτο

aptitude install firmware-realtek

Αν δεν γίνει αυτόματα τότε κάνουμε χειροκίνητα την ανανέωση του initramfs

update-initramfs -u

Άλλα βασικά πακέτα μη ελέυθερου firmware είναι firmware-linux-nonfree

aptitude install firmware-linux firmware-linux-nonfree

Ορισμός interface

Στο αρχείο /etc/udev/rules.d/70-persistent-net.rules αντιστοιχείται ένα interface σε μια mac address ξεκινώντας από eth0. Επειδή δεσμεύεται προσοχή εάν αλλάξει η κάρτα δικτύου διότι θα αντιστοιχηθεί το επόμενο διαθέσιμο interface π.χ. eth1

Παράδειγμα αρχείου /etc/etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:14:85:2f:78:ae", NAME="eth0"
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:18:f3:58:0f:58", NAME="eth1"

Wake On Lan

Έγιναν οι παρακάτω αλλαγές για να εξασφαλιστεί ότι θα είναι ενεργό το wakeonlan

apt-get install sudo initscripts # for proxmox

Στο αρχείο /etc/rc.local

for iface in $(/usr/lib/wad/network getInterfaces -t 'eth|en'); do
    ethtool -s $iface wol g
done
    

Στο αρχείο /etc/init.d/halt

..
NETDOWN=no
..
if [ "$NETDOWN" = "no" ]; then
    netdown=""
    #VK my change to preserve wakeonlan
    for iface in $(/usr/lib/wad/network getInterfaces -t 'eth|en'); do
        sudo ethtool -s $iface wol g
    done
 fi

Αντιμετώπιση Προβλημάτων

Πρόβλημα σε realtek gigabit driver r8169 - Χρήση r8168

Σε κάποιες μητρικές όπως Gigabyte 970A-DS3P δεν λειτουργεί σωστά ο driver r8169. Αποτέλεσμα όλες οι κάρτες, ενσωματωμένη και εξωτερικές που τον χρησιμοποιούν να έχουν πρόβλημα. Θα απενεργοποιήσουμε σε ProxMox 4.3 τον driver r8169 και στην θέση του θα κάνουμε compile και θα χρησιμοποιήσουμε τον r8168.

Προσθέτουμε στο /etc/apt/sources.list τα εξής

#wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
deb http://download.proxmox.com/debian jessie pve-no-subscription

Εκτελούμε

wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
apt-get update
apt-get install make dkms pve-headers pve-headers-$(uname -r)

Κατεβάζουμε τον τελευταίο driver από https://r8168dl.appspot.com/

Από εδώ και σε όλες τις εντολές που θα εκτελούμε όπου βλέπουμε 8.041.01 βάζουμε την τελευταία έκδοση

cd /usr/src
wget https://r8168dl.appspot.com/files/r8168-8.045.08.tar.bz2
tar xvjf r8168-8.045.08.tar.bz2
cd r8168-8.045.08/
./autorun.sh

Αν αποτύχει λόγω wireless εκτελούμε με το χέρι

make -C /lib/modules/$(uname -r)/build SUBDIRS=/usr/src/r8168-8.041.01/src INSTALL_MOD_DIR=kernel/drivers/net/ethernet/realtek modules_install

Εκτελούμε

depmod -a
echo "blacklist r8169" >> /etc/modprobe.d/blacklist-network.conf
update-initramfs -u

Δημιουργούμε το αρχείο /usr/src/r8168-8.045.08/dkms.conf

PACKAGE_NAME=r8168
PACKAGE_VERSION=8.045.08
MAKE[0]="'make'"
BUILT_MODULE_NAME[0]=r8168
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
AUTOINSTALL="YES"

Εάν έχουμε προηγούμενη έκδοση συνδεδεμένη με το dkms την αφαιρούμε. Π.χ.

dkms remove -m r8168/8.041.01 --all

Προσθέτουμε το module στο dkms tree

dkms add -m r8168 -v 8.045.08
dkms build -m r8168 -v 8.045.08
dkms install -m r8168 -v 8.045.08

Πηγές