tree: a4b81a728701d44ed3024cba6a5eeb7c87faf3de [path history] [tgz]
  1. meta/
  2. testing/
  3. v1/
  4. v2/
  5. autobind_tests.cc
  6. base_package_resolver.cc
  7. base_package_resolver.h
  8. bind_driver_manager.cc
  9. bind_driver_manager.h
  10. binding.cc
  11. binding.h
  12. binding_internal.cc
  13. binding_internal.h
  14. binding_v2_test.cc
  15. BUILD.gn
  16. builtin_devices.cc
  17. builtin_devices.h
  18. builtin_devices_test.cc
  19. component_lifecycle.cc
  20. component_lifecycle.h
  21. composite_device.cc
  22. composite_device.h
  23. composite_device_tests.cc
  24. coordinator.cc
  25. coordinator.h
  26. coordinator_test_mock_power_manager.h
  27. coordinator_test_utils.cc
  28. coordinator_test_utils.h
  29. debug_dump.cc
  30. debug_dump.h
  31. devfs.cc
  32. devfs.h
  33. devfs_exporter.cc
  34. devfs_exporter.h
  35. devfs_test.cc
  36. device.cc
  37. device.h
  38. device_tests.cc
  39. device_watcher.h
  40. driver.cc
  41. driver.h
  42. driver_development_test.cc
  43. driver_host.cc
  44. driver_host.h
  45. driver_host_loader_service.cc
  46. driver_host_loader_service.h
  47. driver_host_loader_service_test.cc
  48. driver_loader.cc
  49. driver_loader.h
  50. driver_loader_test.cc
  51. fake_driver_index.h
  52. fdio.h
  53. init_tests.cc
  54. inspect.cc
  55. inspect.h
  56. inspect_test.cc
  57. load_driver_package_test.cc
  58. main.cc
  59. manifest_parser.cc
  60. manifest_parser.h
  61. manifest_parser_fuzzer.cc
  62. manifest_parser_test.cc
  63. metadata.h
  64. misc_tests.cc
  65. multiple_device_test.cc
  66. multiple_device_test.h
  67. multiple_device_test_utils.cc
  68. package_resolver.cc
  69. package_resolver.h
  70. README.md
  71. resume_tests.cc
  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. unbind_tests.cc
  79. vmo_writer.cc
  80. 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.

--load_driver=<string>

Load a driver with this path. If this is set then DriverManager will not search /boot/drivers/ for drivers.

--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.

--sys-device-driver=<bool>

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

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.*