mirror of https://github.com/jetkvm/kvm.git
31 lines
742 B
Go
31 lines
742 B
Go
package kvm
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
|
|
"github.com/jetkvm/kvm/internal/usbgadget"
|
|
)
|
|
|
|
func initUsbEthernet(gadget *usbgadget.UsbGadget) error {
|
|
if !gadget.UsbEthernetEnabled() {
|
|
return nil
|
|
}
|
|
|
|
iface := gadget.UsbEthernetDevice()
|
|
ipv4addr := networkState.UsbNetworkConfig().IPv4Addr
|
|
|
|
scopedLogger := usbLogger.With().Str("iface", iface).Str("ipv4addr", ipv4addr).Logger()
|
|
scopedLogger.Info().Msg("enabling USB Ethernet")
|
|
|
|
if err := exec.Command("ip", "addr", "add", ipv4addr, "dev", iface).Run(); err != nil {
|
|
return fmt.Errorf("failed to flush table nat: %w", err)
|
|
}
|
|
|
|
if err := exec.Command("ip", "link", "set", "dev", iface, "up").Run(); err != nil {
|
|
return fmt.Errorf("failed to flush table nat: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|