After all suggestions have failed for me so far, I'm attempting a new workaround, an improvement of mzago's hint (using a command line script to restart the network) that won't require any user interaction at all. This will require some techie skills and familiarity with the command line through Terminal.app. This is at or beyond my level of competence so I'll appreciate feedback here.
- Install sleepwatcher, a utility that monitors sleep state and can execute commands when your computer goes to sleep and wakes up. It creates two hidde configuration files in your home directory that we will use momentarily.
- Open Terminal.app and create a shell script as per mzago's hint. My file is /usr/local/bin/RestartThunderboltEthernet.sh
#!/bin/sh
sudo /usr/sbin/networksetup -setnetworkserviceenabled "Thunderbolt Ethernet" off &> /dev/null
sudo /usr/sbin/networksetup -setnetworkserviceenabled "Thunderbolt Ethernet" on &> /dev/null
Change owner and permissions as follows. The first changes the owner to root, the second runs the script *as* root but makes it executable by all:
sudo chown root:wheel /usr/local/bin/RestartThunderboltEthernet.sh
sudo chmod 4755 /usr/local/bin/RestartThunderboltEthernet.sh
- As per Greg Hart's suggestion, add "<username> ALL = NOPASSWD: /usr/local/bin/RestartThunderboltEthernet.sh" to sodoers via visudo. This enables the script to be executed via "sudo ..." without having to enter a password.
- Add the following to the .wakeup file in your home directory:
sudo /usr/local/bin/RestartThunderboltEthernet.sh
If this works properly, every time your machine wakes up the RestartThunderboltEthernet.sh script will software-toggle the ethernet interface automatically, essentially accomplishing the same thing as unplugging and replugging the adapter. Currently I'm having trouble getting .wakeup to execute properly. But I think a solution is within reach.