Apple M1 Type-C Hub Ethernet Problem

Sertac Onal
3 min readApr 22, 2021

This story is telling you about how you can solve the ethernet issue that is happened after you restart your computer or wake up from sleep.

Every time you restart your computer or after sleep (lets down that condition to every time you log in) your ethernet connection is not established, because your type-c connection could not able run ethernet somehow. The most basic solution is replugging in the type-c hub or an expensive one is buying another type-c hub that has not faced that problem (If you know which one has no problem with your machine). But I will tell you about the other solution; create a script that will run on every login and replug your related port without physical action.

By the way, I am using “Baseus Mechanical eye Six-in-one smart HUB docking station”.

1. Install “uhubctl”

You need to install “uhubctl” which can send on/off/restart USB ports commands to macOS. I will prefer to use homebrew for that, but also you can find out other ways through their GitHub repo: https://github.com/mvp/uhubctl

If you wish to use homebrew like me:
Homebrew for M1: https://medium.com/codex/setup-homebrew-in-new-apple-m1-chip-d0e4e695117d
Homebrew for others: https://brew.sh/

After you install homebrew type the below commands:

brew tap mvp/uhubctl https://github.com/mvp/uhubctl
brew install uhubctl

To check whether is install just type uhubctl on the terminal; which will return your USB ports like below:

Also, note that which port your LAN connector is plugged in. In my case, it is in Port 1. It will be helpful for the next steps.

2. Create a script for restarting your port connection

Thanks to uhubctl developers, restarting a port is very easy, you can find out other numerous actions through their GitHub repo also (https://github.com/mvp/uhubctl). But I will use the below command for restarting Port 1 (Which I will figure out my LAN connector is plugged in that I learn in the previous step). But your uhubctl result can be different.

/opt/homebrew/bin/uhubctl -a off -p1 
&& /opt/homebrew/bin/uhubctl -a on -p1

I am just sending “off action” to port 1 and then “on action”. Also, I used complete root uhubctl because in the next steps we will use Automator which could not see my PATH from homebrew; most probably it can be solved but you will not see that command in the future 😀, it can be like that. Also, you can find out root of uhubctl by “which uhubctl” command.

3. Create Automator Application

Just open “Automator” (which is an essential installed program) from your Mac. Select “Application” from the window.

Search “Run Shell Script” in actions, and paste your restarting script, finally save it.

4. Schedule your application for every login

Open “System Preferences”, search for “Login Items” which is under Users & Group. And add your application that was saved in the previous step.

By doing these steps, every time you log in, your LAN connection will be restarted and established. Until the time that Mac OS or whichever component/driver can handle this issue.

Thanks for reading. Hope you can find something useful for you.

--

--