Link Search Menu Expand Document
  1. Locate the native device factory (command line / env property, ServiceLoader, default)
  2. Start the native device factory
  3. If using the new GPIO character device, inspect all GPIO chips and lines to auto-populate GPIO information [this should be skipped if there is an existing board definition file]
  4. Initialise the board info
  5. Detect the local board by inspecting /proc/cpuinfo (fallback to /proc/device-tree/model for Arm64)
  6. Instantiate all board info providers (ServiceLoader) to see if they recognise this device
  7. Populate pin info using the BoardInfoProvider initialisePins method
    1. This can be in Java code
    2. Or via reading a boarddefs text file; attempt look-up using combinations of values from /proc/device-tree/compatible
  8. LibraryLoader will probably get triggered
  9. Load libdiozero-system-utils.so via LIBRARY_PATH and CLASSPATH