Jump to content

Ethernet not working on SOPINE module


siffland

Recommended Posts

On 3/18/2019 at 4:47 AM, BryanS said:

 

That does seem to be the case. Hopefully this will change in the future - I really want to use this thing as a hardware docker-like device. If there's any information I can provide, please let me know.

I think the clusterboard is a great product. The only problem I have with it is this network issue and once solved, this will be a very easy integration.

Now that I have a provisionally working software load for the modules, it boots reliably and the modules are very responsive.

 

What I wish we had for now, is a script we can run after doing update and upgrade that will reinstall the device tree patch reboot rebooting.

If we had that, we could upgrade with an expectation that the system would come up after reboot.

Link to comment
Share on other sites

On 1/21/2019 at 7:44 AM, siffland said:

The sopine module is connected to a clusterboard instead of a sopine baseboard, but the NIC is on the module so it should not make a difference. 

 

Actually it probably makes a difference if the MAC address is not defined on the SOPINE module in the Cluster(F*ck)Board...

 

If you have collisions on the MAC address - you'll be hard to find an issue here, not just at layer 3, but also at layer 2.

Link to comment
Share on other sites

I think it has something to do with the embedded switch and a timing problem. The boards boot fine in the baseboard, bit don't get DHCP service in the clusterboard.

When you use a microSD with a modified device tree, it works on both, but apt update; apt upgrade can overwrite the device tree and on the next boot, no network.

If I were good with sed I could probably engineer an automatic fix to run aftewr upgrade that would decompile, patch and recompile the device tree.

Link to comment
Share on other sites

I posted just such a script on the clusterboard Pine64 forum, but here you are anyway

#!/bin/bash

DTB_NAME=sun50i-a64-sopine-baseboard.dtb
DTB_PATH=/boot/dtb/allwinner
TMPFILE=/tmp/tmp.dts
NEWFILE=/tmp/new.dts

clean_up() {
        rm $TMPFILE $NEWFILE > /dev/null 2>&1
}

if [ ! -f $DTB_PATH/$DTB_NAME ]
then
        echo dtb file not found
        exit 999
fi


dtc -I dtb -O dts -o $TMPFILE $DTB_PATH/$DTB_NAME > /dev/null 2>&1
if [ $? != 0 ]
then
        echo Cannot extract dts from $DTB_PATH/$DTB_NAME
        exit 998
fi

retcode=0
grep 'allwinner,tx-delay-ps' $TMPFILE > /dev/null 2>&1
if [ $? != 0 ]
then
        sed -e '/ethernet@1c30000 {$/,/phandle = <0x88>;/!b;/phandle = <0x88>;/a\\t\t\tallwinner,tx-delay-ps = <500>;' $TMPFILE > $NEWFILE
        if [ $? != 0 ]
        then
                echo Could not update temporary DTS file
                retcode=997
        else
                dtc -O dtb -o $DTB_PATH/$DTB_NAME -b 0 $NEWFILE > /dev/null 2>&1
                if [ $? != 0 ]
                then
                        echo Could not create new dts file
                        retcode=996
                fi
        fi

else
        echo Fix already in place
fi

clean_up

exit $retcode

 

I hope you find it useful

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines