code: def _make_session(
      temp_dir, board, mod, build_config, use_fvp, serial_number
  ):
      config_main_stack_size = None
      if utils.ZEPHYR_BOARDS[board]["is_qemu"]:
          config_main_stack_size = 1536
  
      project_options = {
          "project_type": "host_driven",
          "verbose": bool(build_config.get("debug")),
          "board": board,
          "arm_fvp_path": "/opt/arm/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55",
          "use_fvp": bool(use_fvp),
          "serial_number": serial_number,
      }
      if config_main_stack_size is not None:
          project_options[
              "config_main_stack_size"
          ] = config_main_stack_size
  
      project = tvm.micro.generate_project(
          str(utils.TEMPLATE_PROJECT_DIR),
          mod,
          temp_dir / "project",
          project_options,
      )
      project.build()
      project.flash()
      return tvm.micro.Session(project.transport())
  
imports: import logging
  import os
  import pathlib
  import logging
  import pytest
  import numpy
  import onnx
  from PIL import Image
  import tvm
  import tvm.testing
  import tvm.relay
  from tvm.relay.backend import Executor, Runtime
  from tvm.relay.testing import byoc
  from tvm.micro.project_api import server
  from tvm.contrib import utils
  from tvm.micro.testing.utils import check_tune_log
  from .None import utils
label_desc: Use image node_id 2 for calling a global function with example usage: _make_session(temp_dir, board, mod, build_config, use_fvp, serial_number) and returns: tvm