diff --git a/sys/auto_init/netif/auto_init_netdev_tap.c b/sys/auto_init/netif/auto_init_netdev_tap.c
index 8e2ccd20593613322dd6955e8693037e7980ab4f..7e8314f0a5f992a32e926792a114199647f97b51 100644
--- a/sys/auto_init/netif/auto_init_netdev_tap.c
+++ b/sys/auto_init/netif/auto_init_netdev_tap.c
@@ -22,14 +22,24 @@
 #include "log.h"
 #include "debug.h"
 #include "netdev_tap_params.h"
+#ifdef MODULE_GNRC_NETIF2
+#include "net/gnrc/netif2/ethernet.h"
+#else
 #include "net/gnrc/netdev/eth.h"
+#endif
 
 #define TAP_MAC_STACKSIZE           (THREAD_STACKSIZE_DEFAULT + DEBUG_EXTRA_STACKSIZE)
+#ifdef MODULE_GNRC_NETIF2
+#define TAP_MAC_PRIO                (GNRC_NETIF2_PRIO)
+#else
 #define TAP_MAC_PRIO                (THREAD_PRIORITY_MAIN - 3)
+#endif
 
 static netdev_tap_t netdev_tap[NETDEV_TAP_MAX];
 static char _netdev_eth_stack[NETDEV_TAP_MAX][TAP_MAC_STACKSIZE + DEBUG_EXTRA_STACKSIZE];
+#ifndef MODULE_GNRC_NETIF2
 static gnrc_netdev_t _gnrc_netdev_tap[NETDEV_TAP_MAX];
+#endif
 
 void auto_init_netdev_tap(void)
 {
@@ -40,11 +50,21 @@ void auto_init_netdev_tap(void)
                   i, *(p->tap_name));
 
         netdev_tap_setup(&netdev_tap[i], p);
+#ifdef MODULE_GNRC_NETIF2
+        if (!gnrc_netif2_ethernet_create(_netdev_eth_stack[i],
+                                         TAP_MAC_STACKSIZE,
+                                         TAP_MAC_PRIO, "gnrc_netdev_tap",
+                                         &netdev_tap[i].netdev)) {
+            LOG_ERROR("[auto_init_netif] error initializing TAP %s\n",
+                      *(p->tap_name));
+        }
+#else
         gnrc_netdev_eth_init(&_gnrc_netdev_tap[i], (netdev_t*)&netdev_tap[i]);
 
         gnrc_netdev_init(_netdev_eth_stack[i], TAP_MAC_STACKSIZE,
                          TAP_MAC_PRIO, "gnrc_netdev_tap",
                          &_gnrc_netdev_tap[i]);
+#endif
     }
 }