Solved RockPro64 network adapter...

Hi Peoples,

I have a RockPro64 and have used the aarch64 RockPro64 image for FreeBSD 13.0.

The network adapter is being picked up as dwc0, where I was expecting re0 or ue0. I had a bit of bother with getting the network adapter to detect a carrier signal, as out of the box it was not detecting the plugged in and working network cable / connection.

On boot it picks up the adapter OK but is showing no carrier, unless I run ifconfig dw0 media 1000baseTX mediaopt full-duplex at which point it connects and operates OK. The problem is that I want the ethernet to auto detect between 100baseTX and 1000baseTX, which it seems it is not doing out of the box.

I have had a quick read of the code for dwc(4), as there is no manual page for it, and am at a loss as to how to configure the network adapter so that it auto detects.

One thing I did try was ifconfig dwc0 media auto but that results in a no carrier state again.

Anyone else got a RockPro64 working with v13 yet with a working autodetected media state please?

James.
 
Aha!

Just updated to 13.0-RELEASE-p6 and now dwc0 works without setting the media type.

Thought I would leave this here for others use, as without setting the media type manually, I could not run freebsd-update fetch.

(Thanks to those who made aarch64 Tier 1!!!)

Is there a man page for dwc () anywhere please?

James
 
Ho could you tell me how did you installed Freebsd ?i'm trying without any successo.
thank you
 
Hi Hazz,

It was a mostly a two step process:

Get FreeBSD booting from the device and getting a link-state, and the next was to update to the latest version.

To reproduce:
  1. Download the RockPro64 image from here: RockPro64 SD card image (13.0) onto a Freebsd host that has an SD card reader (USB or built in doesn't matter)

  2. unxz the downloaded file, and it expands it removing the .xz file extension.

  3. Blow it to an SD-Card using dd if=/path/to/image/FreeBSD-13.1-RELEASE-arm64-aarch64-ROCKPRO64.img of=/dev/sdcard/you/want/to/us bs=1M progress=status

  4. Pop the SD card in the RockPro64, power it up and you should see it boot OK on the HDMI output.

  5. Once in as su or root, add a line to /etc/rc.conf, as follows: ifconfig_dwc0="DHCP"

  6. Plug in your network cable to a gigabit switch (etc) and type ifconfig dw0 media 1000baseTX mediaopt full-duplex - You may need to alter "1000baseTX mediaopt full-duplex" based on the switch you are connecting it to, for example if you are using a 10/100 switch (not gigabit) I would suggest "100baseTX mediaopt full-duplex" instead.

  7. You should now be able to ping any URL, e.g. ping www.google.co.uk.

  8. If it says network name unknown for www.google.co.uk, either Google is having a bad day, or more likely your DNS is not right on your DHCP server scope. A manual workaround would be to add nameserver 8.8.8.8 to /etc/resolv.conf to use Googles recursive DNS and reboot safely (e.g. reboot rather than pulling the power).

  9. At this point you have internet access to the RockPro64.

  10. Update the installed version of Freebsd to the latest, type freebsd-update fetch, then freebsd-update install, followed by reboot.

  11. At this point setting the media properties manually was not required.
Let me know which step you are stuck on and I can provide more detail as needed. Note: I have only had 13.0 running, and have not upgraded that unit to 13.1 yet, so that may be an interesting differential.

James
 
Back
Top