tree: 71b0dcd14cdd0e50352bb3bf9dbc44f6434314cc [path history] [tgz]
  1. meta/
  2. testing/
  3. async_loop_owned_rpc_handler.h
  4. async_loop_ref_counted_rpc_handler.h
  5. autobind_tests.cc
  6. binding.cc
  7. binding_internal.h
  8. binding_test.cc
  9. binding_v2_test.cc
  10. BUILD.gn
  11. component_lifecycle.cc
  12. component_lifecycle.h
  13. composite_device.cc
  14. composite_device.h
  15. composite_device_tests.cc
  16. coordinator.cc
  17. coordinator.h
  18. coordinator_test_mock_power_manager.h
  19. coordinator_test_utils.cc
  20. coordinator_test_utils.h
  21. devfs.cc
  22. devfs.h
  23. device.cc
  24. device.h
  25. driver.cc
  26. driver.h
  27. driver_host.cc
  28. driver_host.h
  29. driver_host_loader_service.cc
  30. driver_host_loader_service.h
  31. driver_host_loader_service_test.cc
  32. driver_loader.cc
  33. driver_loader.h
  34. driver_runner.cc
  35. driver_runner.h
  36. driver_runner_test.cc
  37. driver_test_reporter.cc
  38. driver_test_reporter.h
  39. env.cc
  40. env.h
  41. fake_driver_index.h
  42. fdio.cc
  43. fdio.h
  44. fidl.cc
  45. fidl.h
  46. fidl_txn.h
  47. init_task.cc
  48. init_task.h
  49. init_tests.cc
  50. inspect.cc
  51. inspect.h
  52. inspect_test.cc
  53. load_driver_package_test.cc
  54. main.cc
  55. metadata.h
  56. misc_tests.cc
  57. multiple_device_test.cc
  58. multiple_device_test.h
  59. multiple_device_test_utils.cc
  60. package_resolver.cc
  61. package_resolver.h
  62. README.md
  63. resume_task.cc
  64. resume_task.h
  65. resume_tests.cc
  66. suspend_handler.cc
  67. suspend_handler.h
  68. suspend_matching_task.cc
  69. suspend_matching_task.h
  70. suspend_task.cc
  71. suspend_task.h
  72. suspend_tests.cc
  73. system_instance.cc
  74. system_instance.h
  75. system_instance_test.cc
  76. system_state_manager.cc
  77. system_state_manager.h
  78. task.cc
  79. task.h
  80. task_test.cc
  81. unbind_task.cc
  82. unbind_task.h
  83. unbind_tests.cc
  84. vmo_writer.cc
  85. vmo_writer.h
src/devices/bin/driver_manager/README.md

Driver Manager

The Driver Manager is responsible for enumerating, loading, and managing the life cycle of device drivers. Driver Manager also vends the /dev directory to the rest of the system so that others can access drivers.

Building and Running

Driver Manager is built and run in every product. It is launched on startup.

If you're looking for running an isolated Driver Manager for testing, please see isolated_devmgr.

Commandline Options

When running Driver Manager there are some commandline options that can change Driver Manager's behavior. Normally these are set in the CML file when Driver Manager is run as a component, or through isolated Driver Manager for testing.

--driver_search_path=<string>

Load drivers from this directory. Can be specified multiple times to search multiple directories. If this is not defined, the default will be used.

--load_driver=<string>

Load a driver with this path. The specified driver does not need to be in a driver_search_path directory.

--log_to_debuglog=<bool>

Connect the stdout and stderr file descriptors for this program to a debuglog handle acquired with fuchsia.boot.WriteOnlyLog.

--no-exit-after-suspend=<bool>

Do not exit Driver Manager after suspending the system.

--path-prefix=<string>

The path prefix for binaries, drivers, libraries, etc. This defaults to /boot/

--sys-device-driver=<bool>

Use this driver as the sys_device driver. If nullptr, the default will be used.

--use-default-loader=<bool>

Use the default loader rather than the one provided by fshost.

--driver-runner-root-driver-url=<string>

Use the Driver Runner and launch this driver URL as the root driver.

Kernel Commandline Options

The behavior of Driver Manager can also be changed by several kernel commandline options. Please look at the list of kernel commandline options and look for the options that start with devmgr.*