| #!/bin/bash |
| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| #### CATEGORY=Other |
| ### Setup udev rules for USB CDC ethernet |
| |
| ## usage: fx setup-usb-ethernet |
| ## |
| ## This script is only for Linux systems. |
| |
| if [[ $(uname) != "Linux" ]]; then |
| echo >&2 "This script is only intended for Linux systems" |
| exit 1 |
| fi |
| |
| echo "Adding the following udev rules:" |
| cat << EOF | sudo tee /etc/udev/rules.d/70-zircon-ethernet.rules |
| # Check for Google network devices being added |
| ACTION=="add", SUBSYSTEM=="net", ATTRS{idVendor}=="18d1", GOTO="zircon_add_net_google" |
| GOTO="zircon_end" |
| |
| # Check for Zircon CDC Ethernet devices being added |
| LABEL="zircon_add_net_google" |
| # CDC Ethernet-only configuration |
| ATTRS{idProduct}=="a020", GOTO="zircon_net_name" |
| # CDC Ethernet & USB Test Function composite configuration |
| ATTRS{idProduct}=="a023", GOTO="zircon_net_name" |
| GOTO="zircon_end" |
| |
| # Set the interface name based on the MAC |
| LABEL="zircon_net_name" |
| IMPORT{builtin}="net_id" |
| PROGRAM="/bin/sh -c 'echo \$\${ID_NET_NAME_MAC#enx}'", NAME="zx-%c" |
| |
| LABEL="zircon_end" |
| EOF |
| |
| sudo udevadm control --reload |
| sudo udevadm trigger --action=change |