Package Details: r8101-dkms 1.035.03-2

Git Clone URL: https://aur.archlinux.org/r8101-dkms.git (read-only, click to copy)
Package Base: r8101-dkms
Description: RTL810xE Fast Ethernet Driver (DKMS)
Upstream URL: https://fichiers.touslesdrivers.com/64992/
Keywords: ethernet r8101 realtek rtl8101 rtl8106
Licenses: GPL2
Conflicts: r8101
Provides: r8101
Submitter: jsh6789
Maintainer: pedrogabriel
Last Packager: pedrogabriel
Votes: 6
Popularity: 0.000025
First Submitted: 2015-08-27 22:47 (UTC)
Last Updated: 2021-02-16 04:08 (UTC)

Dependencies (3)

Required by (0)

Sources (2)

Latest Comments

jghodd commented on 2022-06-10 21:14 (UTC) (edited on 2022-06-10 22:37 (UTC) by jghodd)

r8101 is not building against the 5.18.x kernel in a 32-bit environment. to get it to install, i had to create an additional patch for 5.18.x (as well as continuing to use the linux517 patch file). i modeled my code changes on similar updates made to r8168-dkms. here's the linux518.patch file. if anyone can improve on it or add to it, please let everyone here know.


--- r8101-1.036.00/src/r8101_n.c        2021-06-11 11:47:02.000000000 -0400
+++ r8101-1.036.00-linux518/src/r8101_n.c       2022-06-07 18:34:48.177163097 -0400
@@ -267,7 +267,13 @@

 static int rtl8101_set_speed(struct net_device *dev, u8 autoneg, u32 speed, u8 duplex, u32 adv);
 static int rtl8101_set_mac_address(struct net_device *dev, void *p);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,18,0)
+void rtl8101_rar_set(struct rtl8101_private *tp, const u8 *addr);
+#else
 void rtl8101_rar_set(struct rtl8101_private *tp, uint8_t *addr);
+#endif
+
 static void rtl8101_desc_addr_fill(struct rtl8101_private *);
 static void rtl8101_tx_desc_init(struct rtl8101_private *tp);
 static void rtl8101_rx_desc_init(struct rtl8101_private *tp);
@@ -10062,7 +10068,11 @@

         spin_lock_irqsave(&tp->lock, flags);

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) 
+        eth_hw_addr_set(dev, addr->sa_data); 
+#else 
         memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
+#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)

         rtl8101_rar_set(tp, dev->dev_addr);

@@ -10079,7 +10089,11 @@
  *****************************************************************************/
 void
 rtl8101_rar_set(struct rtl8101_private *tp,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,18,0) 
+                const u8 *addr)
+#else
                 uint8_t *addr)
+#endif
 {
         uint32_t rar_low = 0;
         uint32_t rar_high = 0;
@@ -10950,11 +10964,20 @@

         if ((sizeof(dma_addr_t) > 4) &&
             use_dac &&
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
             !pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) &&
             !pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) {
+#else
+            !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) &&
+            !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
+#endif
                 dev->features |= NETIF_F_HIGHDMA;
         } else {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
                 rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+#else
+                rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
+#endif
                 if (rc < 0) {
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
                         if (netif_msg_probe(tp))
@@ -11429,7 +11452,11 @@

         rtl8101_get_mac_address(dev);

+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
         tp->tally_vaddr = pci_alloc_consistent(pdev, sizeof(*tp->tally_vaddr), &tp->tally_paddr);
+#else
+        tp->tally_vaddr = dma_alloc_coherent(&pdev->dev, sizeof(*tp->tally_vaddr), &tp->tally_paddr, GFP_KERNEL);
+#endif
         if (!tp->tally_vaddr) {
                 rc = -ENOMEM;
                 goto err_out;
@@ -11463,8 +11490,13 @@

 err_out:
         if (tp->tally_vaddr != NULL) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
                 pci_free_consistent(pdev, sizeof(*tp->tally_vaddr), tp->tally_vaddr,
                                     tp->tally_paddr);
+#else
+                dma_free_coherent(&pdev->dev, sizeof(*tp->tally_vaddr), tp->tally_vaddr,
+                                    tp->tally_paddr);
+#endif

                 tp->tally_vaddr = NULL;
         }
@@ -11497,7 +11529,11 @@
         rtl8101_proc_remove(dev);
 #endif
         if (tp->tally_vaddr != NULL) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
                 pci_free_consistent(pdev, sizeof(*tp->tally_vaddr), tp->tally_vaddr, tp->tally_paddr);
+#else
+                dma_free_coherent(&pdev->dev, sizeof(*tp->tally_vaddr), tp->tally_vaddr, tp->tally_paddr);
+#endif
                 tp->tally_vaddr = NULL;
         }

@@ -11544,13 +11580,23 @@
          * Rx and Tx descriptors needs 256 bytes alignment.
          * pci_alloc_consistent provides more.
          */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
         tp->TxDescArray = pci_alloc_consistent(pdev, R8101_TX_RING_BYTES,
                                                &tp->TxPhyAddr);
+#else
+        tp->TxDescArray = dma_alloc_coherent(&pdev->dev, R8101_TX_RING_BYTES,
+                                               &tp->TxPhyAddr, GFP_KERNEL);
+#endif
         if (!tp->TxDescArray)
                 goto out;

+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
         tp->RxDescArray = pci_alloc_consistent(pdev, R8101_RX_RING_BYTES,
                                                &tp->RxPhyAddr);
+#else
+        tp->RxDescArray = dma_alloc_coherent(&pdev->dev, R8101_RX_RING_BYTES,
+                                               &tp->RxPhyAddr, GFP_KERNEL);
+#endif
         if (!tp->RxDescArray)
                 goto err_free_tx;

@@ -11619,12 +11665,22 @@
         return retval;

 err_free_rx:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
         pci_free_consistent(pdev, R8101_RX_RING_BYTES, tp->RxDescArray,
                             tp->RxPhyAddr);
+#else
+        dma_free_coherent(&pdev->dev, R8101_RX_RING_BYTES, tp->RxDescArray,
+                            tp->RxPhyAddr);
+#endif
         tp->RxDescArray = NULL;
 err_free_tx:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
         pci_free_consistent(pdev, R8101_TX_RING_BYTES, tp->TxDescArray,
                             tp->TxPhyAddr);
+#else
+        dma_free_coherent(&pdev->dev, R8101_TX_RING_BYTES, tp->TxDescArray,
+                            tp->TxPhyAddr);
+#endif
         tp->TxDescArray = NULL;
         goto out;
 }
@@ -13604,9 +13660,13 @@

                 free_irq(dev->irq, dev);

+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
                 pci_free_consistent(pdev, R8101_RX_RING_BYTES, tp->RxDescArray, tp->RxPhyAddr);
-
                 pci_free_consistent(pdev, R8101_TX_RING_BYTES, tp->TxDescArray, tp->TxPhyAddr);
+#else
+                dma_free_coherent(&pdev->dev, R8101_RX_RING_BYTES, tp->RxDescArray, tp->RxPhyAddr);
+                dma_free_coherent(&pdev->dev, R8101_TX_RING_BYTES, tp->TxDescArray, tp->TxPhyAddr);
+#endif

                 tp->TxDescArray = NULL;
                 tp->RxDescArray = NULL;

here's linux517.patch:


--- r8101-1.036.00/src/r8101_n.c        2021-06-11 11:47:02.000000000 -0400
+++ r8101-1.036.00-linux517/src/r8101_n.c       2022-04-18 19:10:47.890885555 -0400
@@ -1291,7 +1291,7 @@
 static int rtl8101_proc_open(struct inode *inode, struct file *file)
 {
         struct net_device *dev = proc_get_parent_data(inode);
-        int (*show)(struct seq_file *, void *) = PDE_DATA(inode);
+        int (*show)(struct seq_file *, void *) = pde_data(inode);

         return single_open(file, show, dev);
 }
@@ -10000,6 +10000,7 @@
         struct rtl8101_private *tp = netdev_priv(dev);
         int i;
         u8 mac_addr[MAC_ADDR_LEN];
+        u8 addr[ETH_ALEN];

         for (i = 0; i < MAC_ADDR_LEN; i++)
                 mac_addr[i] = RTL_R8(tp, MAC0 + i);
@@ -10031,9 +10032,10 @@
         rtl8101_rar_set(tp, mac_addr);

         for (i = 0; i < MAC_ADDR_LEN; i++) {
-                dev->dev_addr[i] = RTL_R8(tp, MAC0 + i);
+                addr[i] = RTL_R8(tp, MAC0 + i);
                 tp->org_mac_addr[i] = dev->dev_addr[i]; /* keep the original MAC address */
         }
+        eth_hw_addr_set(dev, addr);
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
         memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
 #endif

...and the PKGBUILD:


# Mantainer: Pedro Gabriel <pedrogabriel@gmail.com>
# Conbributor: Felix Golatofski <contact@xdfr.de>
# Contributor: JSH <jsh6789(at)gmail(dot)com>
# Contributor: Geoffroy Carrier <gcarrier@aur.archlinux.org>

_pkgbase=r8101
pkgname=r8101-dkms
pkgver=1.036.00
pkgrel=1.4
pkgdesc="RTL810xE Fast Ethernet Driver (DKMS)"
arch=('i686' 'x86_64')
url="https://fichiers.touslesdrivers.com/64992/"
license=('GPL2')
depends=('dkms' 'pahole')
optdepends=('ethtool: device configuration')
provides=("${_pkgbase}")
conflicts=("${_pkgbase}")

# Modify this array so that it points to the manually downloaded file
# The current setting is NOT a valid URL
source=("${url}/${_pkgbase}-${pkgver}.tar.bz2"
        'linux517.patch'
        'linux518.patch'
        'dkms.conf')
sha512sums=('eeb526965f6e2bef6a24f39097704d2f5c8eb0bf5707132898da40aa639c8c77fd89c9852067ab2446f3f51d55db978ed12b3033a1c9882572bbdab74db27dd2'
            'SKIP'
            'SKIP'
            '7b70e04b83f7593e16c1fa2aa404b55a40bac40cc97a085e5713dc43b04b3b91f17da8b51e86000ce57fc1c7845ae1d375929929090d9ad050cf6bea3e18b4d3')

prepare() {
    cd "r8101-1.036.00"
    patch -Np1 -i ../linux517.patch
    patch -Np1 -i ../linux518.patch
}

package() {

  # Copy dkms.conf
  install -Dm644 dkms.conf "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf

  # Set name and version
  sed -e "s/@_PKGBASE@/${_pkgbase}/" \
      -e "s/@PKGVER@/${pkgver}/" \
      -i "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf

  # Copy sources (including Makefile)
  cp -r ${_pkgbase}-${pkgver}/src ${_pkgbase}-${pkgver}/Makefile \
        "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/
}

you can set pkgrel to whatever you want - i needed it to be 1.4.

Edit-1: fixed the alloc/free mismatches in linux518.patch

jghodd commented on 2022-04-18 20:50 (UTC) (edited on 2022-04-18 23:17 (UTC) by jghodd)

if you want to also upgrade the driver to v1.036.00, here's the PKGBUILD:


# Mantainer: Pedro Gabriel <pedrogabriel@gmail.com>
# Conbributor: Felix Golatofski <contact@xdfr.de>
# Contributor: JSH <jsh6789(at)gmail(dot)com>
# Contributor: Geoffroy Carrier <gcarrier@aur.archlinux.org>

_pkgbase=r8101
pkgname=r8101-dkms
pkgver=1.036.00
pkgrel=1.1
pkgdesc="RTL810xE Fast Ethernet Driver (DKMS)"
arch=('i686' 'x86_64')
url="https://fichiers.touslesdrivers.com/64992/"
license=('GPL2')
depends=('dkms' 'pahole')
optdepends=('ethtool: device configuration')
provides=("${_pkgbase}")
conflicts=("${_pkgbase}")

# Modify this array so that it points to the manually downloaded file
# The current setting is NOT a valid URL
source=("${url}/${_pkgbase}-${pkgver}.tar.bz2"
        'linux517.patch'
        'dkms.conf')
sha512sums=('eeb526965f6e2bef6a24f39097704d2f5c8eb0bf5707132898da40aa639c8c77fd89c9852067ab2446f3f51d55db978ed12b3033a1c9882572bbdab74db27dd2'
            '2e0a05d6251faa18544236d803c1f0d9079f30043425ff3fc53cd764cc5cb73fa195863a8b40a881f55cfb3e25d12e605300cb08ce47c4c2b1ecf5dea8d483b2'
            '7b70e04b83f7593e16c1fa2aa404b55a40bac40cc97a085e5713dc43b04b3b91f17da8b51e86000ce57fc1c7845ae1d375929929090d9ad050cf6bea3e18b4d3')

prepare() {
    cd "r8101-1.036.00"
    patch -Np1 -i ../linux517.patch
}

package() {

  # Copy dkms.conf
  install -Dm644 dkms.conf "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf

  # Set name and version
  sed -e "s/@_PKGBASE@/${_pkgbase}/" \
      -e "s/@PKGVER@/${pkgver}/" \
      -i "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf

  # Copy sources (including Makefile)
  cp -r ${_pkgbase}-${pkgver}/src ${_pkgbase}-${pkgver}/Makefile \
        "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/
}

and the linux517.patch file:


diff -u -r r8101-1.036.00/src/r8101_n.c r8101-1.036.00-linux517/src/r8101_n.c
--- r8101-1.036.00/src/r8101_n.c        2021-06-11 11:47:02.000000000 -0400
+++ r8101-1.036.00-linux517/src/r8101_n.c       2022-04-18 16:38:04.475851823 -0400
@@ -1291,7 +1291,7 @@
 static int rtl8101_proc_open(struct inode *inode, struct file *file)
 {
         struct net_device *dev = proc_get_parent_data(inode);
-        int (*show)(struct seq_file *, void *) = PDE_DATA(inode);
+        int (*show)(struct seq_file *, void *) = pde_data(inode);

         return single_open(file, show, dev);
 }
@@ -10000,6 +10000,7 @@
         struct rtl8101_private *tp = netdev_priv(dev);
         int i;
         u8 mac_addr[MAC_ADDR_LEN];
+        u8 addr[ETH_ALEN];

         for (i = 0; i < MAC_ADDR_LEN; i++)
                 mac_addr[i] = RTL_R8(tp, MAC0 + i);
@@ -10031,9 +10032,10 @@
         rtl8101_rar_set(tp, mac_addr);

         for (i = 0; i < MAC_ADDR_LEN; i++) {
-                dev->dev_addr[i] = RTL_R8(tp, MAC0 + i);
+                addr[i] = RTL_R8(tp, MAC0 + i);
                 tp->org_mac_addr[i] = dev->dev_addr[i]; /* keep the original MAC address */
         }
+        eth_hw_addr_set(dev, addr);
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
         memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
 #endif

Edit: just an FYI that I had to add the eth_hw_addr_set call to the patch (kinda important)

jghodd commented on 2022-04-18 20:19 (UTC) (edited on 2022-04-19 17:47 (UTC) by jghodd)

here's a patch for r8101-1.035.03 that follows the pattern used to patch r8168 (linux517.patch):


diff -u -r r8101-1.035.03/src/r8101_n.c r8101-1.035.03-linux517/src/r8101_n.c
--- r8101-1.035.03/src/r8101_n.c        2020-04-13 04:47:54.000000000 -0400
+++ r8101-1.035.03-linux517/src/r8101_n.c       2022-04-19 13:37:36.081513795 -0400
@@ -1281,7 +1281,7 @@
 static int rtl8101_proc_open(struct inode *inode, struct file *file)
 {
         struct net_device *dev = proc_get_parent_data(inode);
-        int (*show)(struct seq_file *, void *) = PDE_DATA(inode);
+        int (*show)(struct seq_file *, void *) = pde_data(inode);

         return single_open(file, show, dev);
 }
@@ -9995,6 +9995,7 @@
         struct rtl8101_private *tp = netdev_priv(dev);
         int i;
         u8 mac_addr[MAC_ADDR_LEN];
+        u8 addr[ETH_ALEN];

         for (i = 0; i < MAC_ADDR_LEN; i++)
                 mac_addr[i] = RTL_R8(tp, MAC0 + i);
@@ -10026,9 +10027,10 @@
         rtl8101_rar_set(tp, mac_addr);

         for (i = 0; i < MAC_ADDR_LEN; i++) {
-                dev->dev_addr[i] = RTL_R8(tp, MAC0 + i);
+                addr[i] = RTL_R8(tp, MAC0 + i);
                 tp->org_mac_addr[i] = dev->dev_addr[i]; /* keep the original MAC address */
         }
+        eth_hw_addr_set(dev, addr);
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
         memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
 #endif

jghodd commented on 2022-04-16 17:48 (UTC)

the r8101 dkms module no longer builds under linux-5.17.

Ten0 commented on 2021-08-16 18:21 (UTC)

I'm trying to use this instead of r8169 because r8169 seems to not manage to connect at > 100Mbps.

My hardware is identified as "RTL810xE PCI Express Fast Ethernet controller", yet the driver seems to not pick it up: https://pastebin.com/eHfkLjWU

Has anyone encountered a similar issue?

pedrogabriel commented on 2021-01-21 22:32 (UTC)

I've updated the package.

jtriangle commented on 2020-05-04 22:37 (UTC)

Worked correctly with this modification to the build file:

Replace: ("${url}/${_pkgbase}-${pkgver}.tar.bz2" With this: ("https://fichiers.touslesdrivers.com/64215/r8101-1.035.02.tar.bz2"

They seem to keep the drivers up to date here: https://www.touslesdrivers.com/index.php?v_page=12&v_code=668#23 so worth checking for a new version if you're going to use this.

MrPaganini commented on 2020-04-06 01:20 (UTC) (edited on 2020-04-06 01:21 (UTC) by MrPaganini)

Hello. I just installed the package with your explanations and thank for your help. My device with lspci is: "Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 07)" I have 5.4.30-1-lts kernel.

1/ I downloaded it on realtek website giving a bad e-mail address, then put it nearby files extracted from "snapshot" download. 2/ I modified the PKGBUILD in 2 places: the path to the tar.gz and the version number (pkgver=1.035.01 to pkgver=1.035.02). 3/ Il made the arch package using: makepkg --skipchecksums PKGBUILD 4/ I installed and rebooted. It works!

But, it's weird. I use archlinux on my PC since 1 or 2 years and never had problems with ethernet until now and never needed this package. Should I uninstall r8101-dkms package and wait for a kernel update?

felipe.facundes commented on 2019-11-02 00:04 (UTC)

https://fichiers.touslesdrivers.com/61016/r8101-1.034.02.tar.bz2

jsh6789 commented on 2019-07-01 01:03 (UTC)

Disowned as I am no longer running any hardware that uses this driver.

jsh6789 commented on 2019-02-14 20:46 (UTC)

Unfortunately there is no longer a way to directly link to this file. You have to get the link from Realtek via email after following the upstream URL. Then manually remove the ${url} from the source line in the PKGBUILD. Feel free to comment if there are any other issues.

jghodd commented on 2019-02-14 17:45 (UTC)

Seems the download link is no longer valid. Anyone know where this file might have gone or if it's been replaced by a newer version?

UNIcodeX commented on 2018-04-07 04:50 (UTC) (edited on 2018-04-07 05:00 (UTC) by UNIcodeX)

I tried this driver to see if it would alleviate an issue where my NIC is not connecting at 1G speeds, but rather 100M speeds...

lspci -nn for that NIC: 03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller [10ec:8136] (rev 0a)

I've verified that the switch is providing gigabit speeds to another machine. I've directly attached to the router itself with both cat-5e and cat6 cables. I have a cable tester and have tested the cables. They pass.

I've blacklisted the r8169 driver and verified that ethtool -i eno1 is showing that the r8101 driver is being used.

The machine which is connecting at gigabit speeds, through the same cable run, and the same switch, is running a derivative of Ubuntu on a desktop platform and is using the r8169 driver 2.3LK-NAPI. rtl8168h-2_0.0.2 02/26/15. Its lspic -nn comes back with slightly different data though. 05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)

so... looks like same driver, different chip...

There is another machine (another HP laptop, like mine), which is also having this issue, which has the same chip. This one exhibits the issue both in Windows (the owner uses Windows.), and in Antergos live installer used for testing. Same tests as above apply.

Ideas??

jghodd commented on 2018-02-10 01:57 (UTC)

@jsh6789 - thanks very much. i'd tried to fix it myself and got as far as figuring out that the callback function needed to be changed, but didn;t have enough overall understanding of your code to finish it without a few more hours of input. so i appreciate this.

btw, there's a typo in the patch file at line 64:

  • struct rtl0101_private tp = (struct rtl8101_private )__opaque;

should be:

  • struct rtl8101_private tp = (struct rtl8101_private )__opaque;

cheers

jsh6789 commented on 2018-02-09 19:37 (UTC)

I've added a patch for the build to succeed on the new kernel, but it will be a while before I get the chance to test my hardware. Let me know if it doesn't work.

jghodd commented on 2018-02-08 21:07 (UTC)

Ok. The problem is that setup_timer changed to timer_setup as of linux-4.15. I'm still looking into what needs to be fixed since the parameter types also changed. In addition, it appears that init_timer changed as well.

jghodd commented on 2018-02-08 20:02 (UTC) (edited on 2018-02-08 20:09 (UTC) by jghodd)

Error on latest kernel update (sorry. can't get it listing properly):

DKMS make.log for r8101-1.032.04 for kernel 4.15.2-1-ARCH (x86_64) Thu Feb 8 19:48:50 UTC 2018 make -C src/ modules make[1]: Entering directory '/var/lib/dkms/r8101/1.032.04/build/src' make -C /usr/lib/modules/4.15.2-1-ARCH/build SUBDIRS=/var/lib/dkms/r810/1.032.04/build/src modules make[2]: Entering directory '/usr/lib/modules/4.15.2-1-ARCH/build' CC [M] /var/lib/dkms/r8101/1.032.04/build/src/r8101_n.o /var/lib/dkms/r8101/1.032.04/build/src/r8101_n.c: In function ‘rtl8101_request_link_timer’: /var/lib/dkms/r8101/1.032.04/build/src/r8101_n.c:9136:9: error: implicit declaration of function ‘setup_timer’; did you mean ‘sk_stop_timer’? [-Werror=implicit-function-declaration] setup_timer(timer, rtl8101_link_timer, (unsigned long)dev); ^~~~~~~~~~~ sk_stop_timer cc1: some warnings being treated as errors make[3]: [scripts/Makefile.build:317: /var/lib/dkms/r8101/1.032.04/buil/src/r8101_n.o] Error 1 make[2]: [Makefile:1508: module/var/lib/dkms/r8101/1.032.04/build/src] Error 2 make[2]: Leaving directory '/usr/lib/modules/4.15.2-1-ARCH/build' make[1]: [Makefile:80: modules] Error 2 make[1]: Leaving directory '/var/lib/dkms/r8101/1.032.04/build/src' make: [Makefile:40: modules] Error 2

irkmaver commented on 2017-05-30 03:48 (UTC)

Error on latest kernel update: DKMS make.log for r8101-1.031.02 for kernel 4.11.2-1-ARCH (x86_64) make -C src/ modules make[1]: Entering directory '/var/lib/dkms/r8101/1.031.02/build/src' make -C /usr/lib/modules/4.11.2-1-ARCH/build SUBDIRS=/var/lib/dkms/r8101/1.031.02/build/src modules make[2]: Entering directory '/usr/lib/modules/4.11.2-1-ARCH/build' CC [M] /var/lib/dkms/r8101/1.031.02/build/src/r8101_n.o /var/lib/dkms/r8101/1.031.02/build/src/r8101_n.c: In function ‘rtl8101_rx_interrupt’: /var/lib/dkms/r8101/1.031.02/build/src/r8101_n.c:12608:28: error: ‘struct net_device’ has no member named ‘last_rx’ dev->last_rx = jiffies; ^~ make[3]: *** [scripts/Makefile.build:295: /var/lib/dkms/r8101/1.031.02/build/src/r8101_n.o] Error 1 make[2]: *** [Makefile:1492: _module_/var/lib/dkms/r8101/1.031.02/build/src] Error 2 make[2]: Leaving directory '/usr/lib/modules/4.11.2-1-ARCH/build' make[1]: *** [Makefile:76: modules] Error 2 make[1]: Leaving directory '/var/lib/dkms/r8101/1.031.02/build/src' make: *** [Makefile:40: modules] Error 2

thrimbor commented on 2016-09-21 09:51 (UTC)

@jsh6789 Thanks, works fine now!

jsh6789 commented on 2016-09-15 03:59 (UTC)

@thrimbor, thanks for the suggestion; the package should now build successfully.

thrimbor commented on 2016-09-14 09:12 (UTC)

This package suffers from the same problem that affects "r8168-dkms", causing it to break on Linux 4.7. Something like their patch (https://gist.github.com/ozmartian/698c99ac7b9f4a5e5194f0591cd11ab0) is needed.

jsh6789 commented on 2015-10-27 14:12 (UTC)

Updated