diff --git a/conf/sample-nodes/maverick-xaviernx.json b/conf/sample-nodes/maverick-xaviernx.json new file mode 100644 index 00000000..400d1173 --- /dev/null +++ b/conf/sample-nodes/maverick-xaviernx.json @@ -0,0 +1,46 @@ +// Sample/default config file for Nvidia Tegra (TK1/TX1/TK2) platform +// Activated by changing hostname to 'maverick-tegra' and running 'maverick configure' +{ + + // NOTE: Network configuration is defined in localconf.json, to keep settings private + "maverick_network::interfaces": { + "eth0": {} + }, + + // "maverick_intelligence::tensorflow": false, // Temporarily disabled until gpu build in place + + // "maverick_intelligence::openkai": true, + + // "base::desktop::enable": true, + + // Flight Controller (fc) mavlink setup + // "maverick_fc::mavlink_proxy": "mavproxy", // Default mavlink proxy type to use + // "maverick_fc::mavlink_active": true, // Whether the mavlink proxy is active or not + "maverick_fc::mavlink_input": "/dev/ttyTHS0", // Input source for mavlink proxy, how the Companion Computer connects to the Flight Controller + "maverick_fc::mavlink_inbaud": "921600", // Input baud rate for UART connections + // "maverick_fc::rosmaster_active": true, // Whether ROS master for fc is active or not + // "maverick_fc::mavros_active": true, // Whether Mavros for fc is active or not - requires fc rosmaster to be active + + // Dev SITL mavlink setup - note this requires dev environment to be active + // "maverick_dev::apsitl_dev::mavlink_proxy": "mavproxy", // Default mavlink proxy type to use + // "maverick_dev::apsitl_dev::sitl_active": true, // Whether SITL is active or not + // "maverick_dev::apsitl_dev::mavlink_active": true, // Whether mavlink proxy is active or not + // "maverick_dev::apsitl_dev::rosmaster_active": true, // Whether ROS master for sitl is active or not + // "maverick_dev::apsitl_dev::mavros_active": true, // Whether Mavros for sitl is active or not - requires sitl rosmaster to be active + + // "maverick_intelligence::redtail": true, + // "maverick_mavlink::mavcesium_active": true, + // "maverick_mavlink::mavcesium_mavlink_port": "5780", + + // "maverick_mavlink::cuav_install": true, + + // "maverick_vision::visiond::active": true, + // "maverick_vision::vision_landing::vision_landing_revision": "realsense", + // "maverick_vision::vision_landing::active": false, + + // Add classes here + "classes": [ + // "maverick_network" + ] + +} diff --git a/manifests/maverick-modules/maverick_hardware/facts.d/tegra.py b/manifests/maverick-modules/maverick_hardware/facts.d/tegra.py index e08c7d92..ad4cb67a 100755 --- a/manifests/maverick-modules/maverick_hardware/facts.d/tegra.py +++ b/manifests/maverick-modules/maverick_hardware/facts.d/tegra.py @@ -24,8 +24,10 @@ def boarddata(self): board = f.readline().strip() if board == "64": self.data['model'] = 'TK1' - elif board == "33": + elif board == "33": # TK1 and Nano share the same tegra_chip_id self.data['model'] = 'TX1' + elif board == "25": # AGX and Xavier NX share the same tegra_chip_id + self.data['model'] = 'AGX' elif board == "24": self.data['model'] = 'TX2' else: @@ -38,6 +40,8 @@ def boarddata(self): board = f.readline().strip() if re.search('nano', board, re.IGNORECASE): self.data['model'] = 'Jetson Nano' + elif re.search('xavier nx', board, re.IGNORECASE): + self.data['model'] = 'Jetson Xavier NX' except: pass diff --git a/manifests/maverick-modules/maverick_hardware/manifests/tegra.pp b/manifests/maverick-modules/maverick_hardware/manifests/tegra.pp index 7358215a..b04bb7ed 100644 --- a/manifests/maverick-modules/maverick_hardware/manifests/tegra.pp +++ b/manifests/maverick-modules/maverick_hardware/manifests/tegra.pp @@ -134,4 +134,12 @@ } } + if $tegra_model == "Jetson Xavier NX" { + # Disables the nvgetty service which occupies the UART of the J12 header for the flight controller + exec { "tegra-disable-nvgetty": + command => "/bin/systemctl stop nvgetty; sleep 10; /bin/systemctl disable nvgetty;", + onlyif => "/bin/systemctl is-enabled nvgetty", + } + } + }