def METHOD_NAME(self) -> None:
    """Configure this gadget. Throws exceptions on errors."""
    # Create root of the tree
    self._driver.makedirs(self._basename, exist_ok=True)
    # Write out basic info
    self._write_file(self._config.vid, "idVendor")
    self._write_file(self._config.pid, "idProduct")
    self._write_file(self._config.bcdDevice, "bcdDevice")
    # USB version always 2.0.0
    self._write_file("0x0200", "bcdUSB")
    # Create english language folder
    self._driver.makedirs(
        os.path.join(self._basename, STRINGS_SUBFOLDER), exist_ok=True
    )
    self._write_file(
        self._config.serial_number, STRINGS_SUBFOLDER + "/serialnumber"
    )
    self._write_file(self._config.manufacturer, STRINGS_SUBFOLDER + "/manufacturer")
    self._write_file(self._config.product_desc, STRINGS_SUBFOLDER + "/product")
    # Write out the single config for this gadget
    self._driver.makedirs(
        os.path.join(self._basename, CONFIG_SUBFOLDER), exist_ok=True
    )
    self._write_file(str(self._config.max_power), CONFIG_SUBFOLDER + "MaxPower")
    # Write out english config string
    self._driver.makedirs(
        os.path.join(self._basename, CONFIG_STRINGS_SUBFOLDER), exist_ok=True
    )
    self._write_file(
        self._config.configuration_desc, CONFIG_STRINGS_SUBFOLDER + "/configuration"
    )
    # Make and link function (ACM for serial transport)
    functionFolder = os.path.join(self._basename, FUNCTION_SUBFOLDER)
    self._driver.makedirs(functionFolder, exist_ok=True)
    try:
        self._driver.symlink(
            source=functionFolder,
            dest=os.path.join(self._basename, "configs/c.1/acm.usb0"),
        )
    except FileExistsError:
        LOG.debug("symlink already exists")
    # Last step is to set up the UDC. This assumes there's only ONE UDC
    udc_path = os.path.join(self._basename, "UDC")
    udc_handles = self._driver.listdir(UDC_HANDLE_FOLDER)
    if len(udc_handles) == 0:
        raise RuntimeError("Failed to find UDC handle. Check kernel configuration.")
    # Before writing the UDC handle, we write nothing to the UDC file
    # to clear any configuration.
    try:
        self._write_file("\n", "UDC")
    except Exception:
        LOG.debug("UDC was already uninitialized")
    try:
        self._write_file(udc_handles[0], "UDC")
        self._udc_name = udc_handles[0]
    except Exception:
        raise RuntimeError("UDC is occupied by another driver!")
    if not self._driver.exists(udc_path):
        raise RuntimeError("Failed to enumerate UDC")