Hello Guys, After a bit of fiddling around I found my missing files and copied them over to /boot . The procedure that I used is as follows (first install home-made kernel) : - yum localinstall kernel* Then /boot files: rsync -av /usr/lib/modules/4.4.2-300.LR1.el7.armv7hl/dtb/ /boot/dtb-4.4.2-300.LR1.el7.armv7hl cp /usr/lib/modules/4.4.2-300.LR1.el7.armv7hl/System.map /boot/System.map-4.4.2-300.LR1.el7.armv7hl cp /usr/lib/modules/4.4.2-300.LR1.el7.armv7hl/config /boot/config-4.4.2-300.LR1.el7.armv7hl cp /usr/lib/modules/4.4.2-300.LR1.el7.armv7hl/vmlinuz /boot/vmlinuz-4.4.2-300.LR1.el7.armv7hl dracut /boot/initramfs-4.4.2-300.LR1.el7.armv7hl.img 4.4.2-300.LR1.el7.armv7hl /boot dir now looks like this : root at bananapi /boot # ls -l total 87757 drwxr-xr-x. 5 root root 1024 Feb 27 09:17 38f5ec9e217b471e8adee477d933f640 -rw-r--r--. 1 root root 171924 Nov 26 00:43 config-4.2.3-200.el7.armv7hl -rw-r--r--. 1 root root 176632 Feb 28 05:03 config-4.4.2-300.LR1.el7.armv7hl drwxr-xr-x. 2 root root 15360 Dec 3 14:37 dtb-4.2.3-200.el7.armv7hl drwxr-xr-x. 2 root root 17408 Feb 27 09:11 dtb-4.4.2-300.LR1.el7.armv7hl drwxr-xr-x. 2 root root 1024 Feb 27 10:33 extlinux drwxr-xr-x. 2 root root 1024 Jan 1 1970 grub -rw-r--r--. 1 root root 34922581 Dec 3 14:46 initramfs-4.2.3-200.el7.armv7hl.img -rw-r--r--. 1 root root 35844383 Feb 28 05:08 initramfs-4.4.2-300.LR1.el7.armv7hl.img -rw-r--r--. 1 root root 592347 Dec 3 14:37 initrd-plymouth.img drwxr-xr-x. 3 root root 1024 Dec 3 14:44 loader drwx------. 2 root root 12288 Dec 3 14:31 lost+found -rw-------. 1 root root 2879429 Nov 26 00:43 System.map-4.2.3-200.el7.armv7hl -rw-------. 1 root root 2945068 Feb 28 04:58 System.map-4.4.2-300.LR1.el7.armv7hl -rwxr-xr-x. 1 root root 5866104 Nov 26 00:43 vmlinuz-4.2.3-200.el7.armv7hl -rwxr-xr-x. 1 root root 6032808 Feb 28 05:04 vmlinuz-4.4.2-300.LR1.el7.armv7hl then modify extlinux.conf : root at bananapi /boot # cat extlinux/extlinux.conf #Created by RootFS Build Factory ui menu.c32 menu autoboot centos menu title centos Options #menu hidden timeout 60 totaltimeout 600 label centos kernel /vmlinuz-4.4.2-300.LR1.el7.armv7hl append enforcing=0 root=UUID=9359b607-7331-40ef-98d7-556faebff04d fdtdir /dtb-4.4.2-300.LR1.el7.armv7hl initrd /initramfs-4.4.2-300.LR1.el7.armv7hl.img then reboot: systemctl reboot Once rebooted the new kernel loaded : root at bananapi /home/user # uname -a Linux bananapi 4.4.2-300.LR1.el7.armv7hl #1 SMP Sat Feb 27 01:39:09 UTC 2016 armv7l armv7l armv7l GNU/Linux And the switch driver was detected , from dmesg: [ 22.138529] b53_common: found switch: BCM53125, rev 4 [ 22.147309] RX IPC Checksum Offload disabled [ 22.154566] No MAC Management Counters available [ 22.207713] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready [ 22.553164] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready [ 22.632139] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 24.143962] sun7i-dwmac 1c50000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off Because the eth0 was set for dhcp , it automatically came up , since I had the Ethernet cable plugged into the "WAN" port : root at bananapi /home/user # nmcli con NAME UUID TYPE DEVICE eth0 a19cdd55-f428-40cb-baf7-8c0e9221bc66 802-3-ethernet eth0 root at bananapi /home/user # ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.166 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::c7:6ff:fec2:f2eb prefixlen 64 scopeid 0x20<link> inet6 fdc1:4e49:af09:1:c7:6ff:fec2:f2eb prefixlen 64 scopeid 0x0<global> ether 02:c7:06:c2:f2:eb txqueuelen 1000 (Ethernet) RX packets 537 bytes 46072 (44.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 439 bytes 74044 (72.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 48 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 24 bytes 2316 (2.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 24 bytes 2316 (2.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 So here it is R1 is working via the built in port . One further clarification : The kernel driver on its own is enough to get the Ethernet port working . You do not need anything else . However if you want to start using the inbuilt switch for things like VLAN tagging , then you need to have a utility called swconfig . I have used this approach in my home router setup to create two virtual interfaces on different subnets. This is the only way to do it since we only have one physical NIC . But more on this later . Best Regards Milorad