[Arm-dev] Kernel for BananaPi R1 (Lamobo R1) - Success

Sun Feb 28 05:40:26 UTC 2016
mo.ucina <mo.ucina at gmail.com>

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