mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
configurable ethernet driver
This commit is contained in:
@@ -94,6 +94,7 @@ from ..validators.kvm import valid_ugpio_view_table
|
|||||||
from ..validators.hw import valid_gpio_pin
|
from ..validators.hw import valid_gpio_pin
|
||||||
from ..validators.hw import valid_otg_gadget
|
from ..validators.hw import valid_otg_gadget
|
||||||
from ..validators.hw import valid_otg_id
|
from ..validators.hw import valid_otg_id
|
||||||
|
from ..validators.hw import valid_otg_ethernet
|
||||||
|
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
@@ -404,6 +405,7 @@ def _get_config_scheme() -> Dict:
|
|||||||
|
|
||||||
"ethernet": {
|
"ethernet": {
|
||||||
"enabled": Option(False, type=valid_bool),
|
"enabled": Option(False, type=valid_bool),
|
||||||
|
"driver": Option("ecm", type=valid_otg_ethernet),
|
||||||
"host_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))),
|
"host_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))),
|
||||||
"kvm_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))),
|
"kvm_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -111,16 +111,16 @@ def _create_serial(gadget_path: str, config_path: str) -> None:
|
|||||||
_symlink(func_path, join(config_path, "acm.usb0"))
|
_symlink(func_path, join(config_path, "acm.usb0"))
|
||||||
|
|
||||||
|
|
||||||
def _create_ethernet(gadget_path: str, config_path: str, host_mac: str, kvm_mac: str) -> None:
|
def _create_ethernet(gadget_path: str, config_path: str, driver: str, host_mac: str, kvm_mac: str) -> None:
|
||||||
if host_mac and kvm_mac and host_mac == kvm_mac:
|
if host_mac and kvm_mac and host_mac == kvm_mac:
|
||||||
raise RuntimeError("Ethernet host_mac should not be equal to kvm_mac")
|
raise RuntimeError("Ethernet host_mac should not be equal to kvm_mac")
|
||||||
func_path = join(gadget_path, "functions/ecm.usb0")
|
func_path = join(gadget_path, f"functions/{driver}.usb0")
|
||||||
_mkdir(func_path)
|
_mkdir(func_path)
|
||||||
if host_mac:
|
if host_mac:
|
||||||
_write(join(func_path, "host_addr"), host_mac)
|
_write(join(func_path, "host_addr"), host_mac)
|
||||||
if kvm_mac:
|
if kvm_mac:
|
||||||
_write(join(func_path, "dev_addr"), kvm_mac)
|
_write(join(func_path, "dev_addr"), kvm_mac)
|
||||||
_symlink(func_path, join(config_path, "ecm.usb0"))
|
_symlink(func_path, join(config_path, f"{driver}.usb0"))
|
||||||
|
|
||||||
|
|
||||||
def _create_hid(gadget_path: str, config_path: str, instance: int, hid: Hid) -> None:
|
def _create_hid(gadget_path: str, config_path: str, instance: int, hid: Hid) -> None:
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from . import check_in_list
|
from . import check_in_list
|
||||||
|
from . import check_string_in_list
|
||||||
from . import check_re_match
|
from . import check_re_match
|
||||||
from . import check_len
|
from . import check_len
|
||||||
|
|
||||||
@@ -51,3 +52,7 @@ def valid_otg_gadget(arg: Any) -> str:
|
|||||||
|
|
||||||
def valid_otg_id(arg: Any) -> int:
|
def valid_otg_id(arg: Any) -> int:
|
||||||
return int(valid_number(arg, min=0, max=65535, name="OTG ID"))
|
return int(valid_number(arg, min=0, max=65535, name="OTG ID"))
|
||||||
|
|
||||||
|
|
||||||
|
def valid_otg_ethernet(arg: Any) -> str:
|
||||||
|
return check_string_in_list(arg, "OTG Ethernet driver", ["ecm", "eem", "ncm", "rndis"])
|
||||||
|
|||||||
Reference in New Issue
Block a user