Tido Posted June 18, 2017 Posted June 18, 2017 (edited) On 18.6.2017 at 6:58 PM, Igor said: I remake last image with last working mainline kernel (4.9.7) and that's all This is exactly the pitty, I couldn't get DSA to work with 4.9.7 and in this posting Zador stated (just his and my posting) Edited June 19, 2017 by Tido fixed the link
Igor Posted June 18, 2017 Posted June 18, 2017 23 hours ago, chwe said: As you can imagine, my time & know how (in this area) is somehow limited, but if it helps you and other developers to do the hard stuff that I'm for sure not able to do, we can give it a try. https://forum.armbian.com/index.php?/topic/4519-moderator-duties/ More volunteers for this job? Not much to do but still it's better if load is shared. 1
Tido Posted June 19, 2017 Posted June 19, 2017 Hmpf, the link I posted above's Igor post didn't work Well I fixed it now. To come back to the topic, I spent a couple hours with DSA (12-16h) Kernel 4.9.7 but it would never run. Then Zador showed me this: couple fixes in April Just after @dumischbaenger contacted the developer of the driver. So I really got hope for 4.11 There are a few of us who would like to see at least the last version of R1 on Kernel 4.11. Question what do we need to do /test/logs/provide to get there ? (@TK, please hold back your comment for four days to this request, thank you) I can also offer UART via SSH on the R1
zador.blood.stained Posted June 19, 2017 Author Posted June 19, 2017 9 minutes ago, Tido said: Question what do we need to do /test/logs/provide to get there ? A working DSA configuration must be provided. I guess we can always rebuild 2 images manually in the future if we get network running as expected (both switch and router mode). I guess other DSA capable devices like Clearfog Pro can be used as an example to either understand how things are supposed to work or to confirm that support for R1's switch is still incomplete or broken.
Tido Posted June 19, 2017 Posted June 19, 2017 Now as you say I cannot recall if I only worked via UART with it or also via Network 8 minutes ago, zador.blood.stained said: A working DSA configuration must be provided. /etc/network/interfaces /etc/network/if-pre-up.d/dsa_up /etc/network/if-post-down.d/dsa_down /etc/dhcp/dhcpd.conf Similar to this, but really working. Hmm, I guess I wrote that already Quote Essentials of Hardware and Software I decided to reduce complexity and to follow a plan. To do so I must leave aside as much as I can. Before the network starts, the switch driver must be loaded and the connections defined. OpenWrt first executed a 'reset' and then loaded the configuration. find a way to easily reset (flush) previous settings for a clean start activate eth0 Create two (2) VLANs: allocate to each port of the switch a VLAN-ID (LAN 102 | WAN 101) allocate /define the connection to the SoC (A20) I do not care about WiFi yet, because this is attached via USB and not connected to the BCM53125 switch. Did I forget something or is the list above complete ?
Tido Posted June 20, 2017 Posted June 20, 2017 (edited) @zador.blood.stained so to get files above mentioned on an "Armbian_5.xx_Lamobo-r1_Debian_jessie_next_4.11.x.img" that it is reachable is the goal. Can you confirm or did I misunderstood ? Edited June 20, 2017 by Tido 5.31 to 5.xx
zador.blood.stained Posted June 20, 2017 Author Posted June 20, 2017 @Tido I just don't understand (yet) - does it work out of the box? Can the network be configured with all ports bridged and with a "separate WAN" port? Does it handle disconnects and restarts well? If yes, then we can make one more image for the R1 with those scripts and configs added by default.
Tido Posted June 20, 2017 Posted June 20, 2017 I have about 8 different files, which I have left when it would not work as expected. I will now take my Armbian_5.31_Lamobo-r1_Debian_jessie_next_4.11.5.img connect UART and see what I can get. I will report back.
Tido Posted June 25, 2017 Posted June 25, 2017 @zador.blood.stained how do I check if DSA is active ? Spoiler root@lamobo:~# lsmod Module Size Used by 8021q 24576 0 garp 16384 1 8021q mrp 16384 1 8021q stp 16384 1 garp llc 16384 2 garp,stp iptable_filter 16384 0 ip_tables 20480 1 iptable_filter x_tables 20480 2 ip_tables,iptable_filter rtl8192cu 57344 0 rtl_usb 20480 1 rtl8192cu rtl8192c_common 32768 1 rtl8192cu rtlwifi 49152 3 rtl_usb,rtl8192c_common,rtl8192cu mac80211 430080 3 rtl_usb,rtlwifi,rtl8192cu evdev 20480 1 sun4i_codec 32768 3 snd_soc_core 114688 1 sun4i_codec cfg80211 352256 2 mac80211,rtlwifi ir_lirc_codec 16384 0 snd_pcm_dmaengine 16384 1 snd_soc_core rfkill 20480 1 cfg80211 lirc_dev 16384 1 ir_lirc_codec snd_pcm 69632 2 snd_pcm_dmaengine,snd_soc_core snd_timer 24576 1 snd_pcm snd 45056 3 snd_timer,snd_soc_core,snd_pcm nvmem_sunxi_sid 16384 0 soundcore 16384 1 snd nvmem_core 16384 1 nvmem_sunxi_sid sunxi_cir 16384 0 sun4i_ss 24576 0 uio_pdrv_genirq 16384 0 cpufreq_dt 16384 0 uio 16384 1 uio_pdrv_genirq fuse 69632 1 And what I do not understand, I read DSA is controlled with something called 'switchdev' - can I 'ask' switchdev about its connection of the PHY like I could with "swconfig dev switch0 show" ? I found nowhere any hint about that. Spoiler Quote SWITCHDEV --------- DSA directly utilizes SWITCHDEV when interfacing with the bridge layer, and more specifically with its VLAN filtering portion when configuring VLANs on top of per-port slave network devices. Since DSA primarily deals with MDIO-connected switches, although not exclusively, SWITCHDEV's prepare/abort/commit phases are often simplified into a prepare phase which checks whether the operation is supported by the DSA switch driver, and a commit phase which applies the changes. As of today, the only SWITCHDEV objects supported by DSA are the FDB and VLAN objects.
zador.blood.stained Posted June 25, 2017 Author Posted June 25, 2017 40 minutes ago, Tido said: @zador.blood.stained how do I check if DSA is active ? On which kernel version? On current 4.11.x b53 support is modular and modules should be loaded automatically. On previous versions autoprobing was kind of broken and b53 support was compiled in. dmesg log and list of interfaces should provide more info.
zador.blood.stained Posted June 25, 2017 Author Posted June 25, 2017 In case it still doesn't load adding b53_mdio to /etc/modules may help.
Tido Posted June 25, 2017 Posted June 25, 2017 root@lamobo:~# uname -a Linux lamobo 4.11.5-sunxi #3 SMP Thu Jun 15 02:11:01 CEST 2017 armv7l GNU/Linux * Armbian_5.31_Lamobo-r1_Debian_jessie_next_4.11.5.img * I downloaded this somewhere in between while the network was fixed, is this fine ? 4 hours ago, zador.blood.stained said: to /etc/modules may help. It did help :-) and ifconfig -a is much better now. after reboot lsmod, b53 at the bottom: Spoiler root@lamobo:~# lsmod Module Size Used by 8021q 24576 0 garp 16384 1 8021q mrp 16384 1 8021q stp 16384 1 garp llc 16384 2 garp,stp iptable_filter 16384 0 ip_tables 20480 1 iptable_filter x_tables 20480 2 ip_tables,iptable_filter rtl8192cu 57344 0 rtl_usb 20480 1 rtl8192cu rtl8192c_common 32768 1 rtl8192cu rtlwifi 49152 3 rtl_usb,rtl8192c_common,rtl8192cu mac80211 430080 3 rtl_usb,rtlwifi,rtl8192cu evdev 20480 1 cfg80211 352256 2 mac80211,rtlwifi sun4i_codec 32768 3 rfkill 20480 1 cfg80211 snd_soc_core 114688 1 sun4i_codec ir_lirc_codec 16384 0 lirc_dev 16384 1 ir_lirc_codec snd_pcm_dmaengine 16384 1 snd_soc_core nvmem_sunxi_sid 16384 0 snd_pcm 69632 2 snd_pcm_dmaengine,snd_soc_core nvmem_core 16384 1 nvmem_sunxi_sid snd_timer 24576 1 snd_pcm snd 45056 3 snd_timer,snd_soc_core,snd_pcm soundcore 16384 1 snd sunxi_cir 16384 0 sun4i_ss 24576 0 uio_pdrv_genirq 16384 0 uio 16384 1 uio_pdrv_genirq cpufreq_dt 16384 0 b53_mdio 16384 0 b53_common 28672 1 b53_mdio fuse 69632 1 This looks the same, before and after adding it to /etc/modules root@lamobo:/home/reto# dmesg | grep -i mdio [ 3.819494] libphy: Fixed MDIO Bus: probed dmesg is a bit tricky with UART and no network. I could 'pipe' into a file, but now it sits on the SDcard.
Tido Posted June 25, 2017 Posted June 25, 2017 I have deleted my DSA configuration file. Rebooted the R1 and typed each step I currently try (without a bridge). I came until here: root@lamobo:~# ip link set eth0 up root@lamobo:~# iptables -F root@lamobo:~# ip link add link eth0 name eth0.101 type vlan id 101 root@lamobo:~# ip link add link eth0 name eth0.102 type vlan id 102 root@lamobo:~# ip link set lan1 master eth0.102 RTNETLINK answers: Operation not supported I was wondering, if I got this error message because it is non-sense what I am doing or when I look up this error message I found that some Kernel Option can be missing. Which is more likely ? Edit same here tried both ways: root@lamobo:~# ip link set wan master eth0.101 RTNETLINK answers: Operation not supported root@lamobo:~# ip link set eth0.101 master wan RTNETLINK answers: Operation not supported
zador.blood.stained Posted June 25, 2017 Author Posted June 25, 2017 1 hour ago, Tido said: root@lamobo:~# ip link set lan1 master eth0.102 RTNETLINK answers: Operation not supported Looks like "set master" operation is related to bridging/bonding, and you are trying to execute in on an interface that doesn't support this?
Tido Posted June 26, 2017 Posted June 26, 2017 Thank you. While reading iproute2 cheat sheet I came across this - which destroys my idea to go to the minimum and only bring-up eth0 and the VLAN to get an IP-Address. ** VLANs can be created over bridge, bonding and other interfaces capable of processing ethernet frames too. ** #!/bin/sh # #------------------------------------------# # BPI-R1 DSA VLAN configuration # # Distributed Switch Architecture interface# #------------------------------------------# # ip link set eth0 up # ** create the native VLAN ** ip link add link eth0 name eth0.101 type vlan id 101 ip link add link eth0 name eth0.102 type vlan id 102 ip link set wan up ip link set eth0.101 up ip link set eth0.102 up it offers this to upgrade - will this leave me on 4.11.5 ? Inst linux-dtb-next-sunxi [5.31] (5.32 Armbian:jessie [armhf]) Inst linux-headers-next-sunxi [5.31] (5.32 Armbian:jessie [armhf]) Inst linux-image-next-sunxi [5.31] (5.32 Armbian:jessie [armhf]) Conf linux-dtb-next-sunxi (5.32 Armbian:jessie [armhf]) Conf linux-headers-next-sunxi (5.32 Armbian:jessie [armhf]) Conf linux-image-next-sunxi (5.32 Armbian:jessie [armhf]) Finally I have an IP-Address before reboot: uploaded to http://sprunge.us/hZSQ after the reboot: uploaded to http://sprunge.us/HXUA The trick was the add two lines to 'interfaces' unbelievable, now it works with the DSA above - well at least I have a working network connection on WAN port. I will update the document with the current findings.
Tido Posted June 28, 2017 Posted June 28, 2017 The absolute minimum you need that the R1 gets an IP-Address is: in /etc/interfaces auto lo iface lo inet loopback allow-hotplug eth0 auto eth0 iface eth0 inet dhcp and: lsmod you must have installed: b53_mdio b53_common 8021q To see what all is in the lsmod right now see about 7 posts above.
Recommended Posts