| #!/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 |