jmaus Posted July 7, 2018 Share Posted July 7, 2018 Hello, I am using the armbian kernel+uboot patchset of the rockchip-next (4.14.x) part to support Tinkerboard+TinkerboardS in an own home automation environment. U-Boot 2018.05 and kernel 4.14.53 are working fine so far with the current patchset published on GitHub (thanks for this great work!). However, the only issue I am still having is, that the ethernet port always comes up with "no-link" on the intial powerup of the Tinkerboard. As soon as I software reboot it after the initial powerup the ethernet port perfectly comes up with a link and I am able to setup all IP data, etc. But as soon as I completely power down the system and replug the power-cable it again comes up with "no link" and it requires another software reboot to recover with the ethernet reporting a link and being able to setup it accordingly. Does the same happen with Armbian and rockchip-next and might there be a patch or explanation for the issue or any hint in how I can workaround the issue until the root is identified and fixed? Any help is highly appreciated... Link to comment Share on other sites More sharing options...
Igor Posted July 7, 2018 Share Posted July 7, 2018 13 minutes ago, jmaus said: Does the same happen with Armbian and rockchip-next and might there be a patch or explanation for the issue or any hint in how I can workaround the issue until the root is identified and fixed? I haven't noticed this problem. Without digging in, I can't tell and I will not be digging in soon due to "out of office". Try to use stock u-boot (or our older ones) if that changes anything otherwise a small and stupid bash startup script can serve as a workaround until we fix this. Link to comment Share on other sites More sharing options...
jmaus Posted July 7, 2018 Author Share Posted July 7, 2018 I actually analysed the issue once more and found out that the issue actually seems to be related to the way I am bringing up network interfaces in the buildroot-based system I am using. Here I have an init.d based startup script (S40network) which first brings up the network interface via `ip link set eth0 up`, then waits 5 seconds and then performs a check if /sys/class/net/eth0/carrier changed to the value 1 or if it is still 0 and then stops initialisation for a certain network device and continues with the other ones (see here for the network startup script I am using). This was actually working perfectly fine for all RaspberryPis I am supporting and was also not a problem with the rockchip-default version of the patches (kernel 4.4.x). However, something must have changed in kernel 4.14.x or rockchip-next because these 5 seconds seem to be not enough anymore if a Tinkerboard is powerup up for the first time. And for every reboot from then it seems to be enough again. Nevertheless I was able to workaround the issue by simply setting the delay to 10 seconds. In fact, for the final version I changed my network startup script to use while loop to check for the carrier in regular intervals (2 seconds) and up to a maximum time of 12 seconds. Still the question remains why the ethernet device takes more than 5 seconds until the network link settled while after a reboot this seem to take under 5 seconds again?!? And why didn't the issue manifest itself with rockchip-default (kernel 4.4.x)?!? Link to comment Share on other sites More sharing options...
Recommended Posts