Add code to process Jetpack CSV files

This change adds code to process Jetpack CSV mount specifications.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar 2022-03-09 17:52:25 +02:00
parent 1561a67d55
commit 8e85e96f38
11 changed files with 515 additions and 0 deletions

View File

@ -0,0 +1,90 @@
/**
# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
**/
package csv
import (
"bufio"
"errors"
"fmt"
"io"
"os"
"path/filepath"
"strings"
"github.com/sirupsen/logrus"
)
const (
// DefaultRoot is default location of CSV files that define the modifications required to the OCI spec
DefaultRoot = "/etc/nvidia-container-runtime/host-files-for-container.d"
)
// GetFileList returns the (non-recursive) list of CSV files in the specified
// folder
func GetFileList(root string) ([]string, error) {
contents, err := os.ReadDir(root)
if err != nil && errors.Is(err, os.ErrNotExist) {
return nil, nil
} else if err != nil {
return nil, fmt.Errorf("failed to read the contents of %v: %v", root, err)
}
var csvFilePaths []string
for _, c := range contents {
if c.IsDir() {
continue
}
if c.Name() == ".csv" {
continue
}
ext := strings.ToLower(filepath.Ext(c.Name()))
if ext != ".csv" {
continue
}
csvFilePaths = append(csvFilePaths, filepath.Join(root, c.Name()))
}
return csvFilePaths, nil
}
// ParseFile parses the specified file and returns a list of required jetson mounts
func ParseFile(logger *logrus.Logger, filename string) ([]*MountSpec, error) {
csvFile, err := os.Open(filename)
if err != nil {
return nil, fmt.Errorf("failed to open %v for reading: %v", filename, err)
}
return parseCSVFromReader(logger, csvFile), nil
}
// parseCSVFromReader parses the specified file and returns a list of required jetson mounts
func parseCSVFromReader(logger *logrus.Logger, reader io.Reader) []*MountSpec {
var targets []*MountSpec
scanner := bufio.NewScanner(reader)
for scanner.Scan() {
line := scanner.Text()
target, err := NewMountSpecFromLine(line)
if err != nil {
logger.Debugf("Skipping invalid mount spec '%v': %v", line, err)
continue
}
targets = append(targets, target)
}
return targets
}

View File

@ -0,0 +1,83 @@
/**
# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
**/
package csv
import (
"path/filepath"
"testing"
"github.com/NVIDIA/nvidia-container-toolkit/internal/test"
"github.com/stretchr/testify/require"
)
func TestGetFileList(t *testing.T) {
moduleRoot, _ := test.GetModuleRoot()
testCases := []struct {
description string
root string
files []string
expectedError error
}{
{
description: "returns list of CSV files",
root: "test/input/csv_samples/",
files: []string{
"jetson.csv",
"simple_wrong.csv",
"simple.csv",
"spaced.csv",
},
},
{
description: "handles empty folder",
root: "test/input/csv_samples/empty",
},
{
description: "handles non-existent folder",
root: "test/input/csv_samples/NONEXISTENT",
},
{
description: "handles non-existent folder root",
root: "/NONEXISTENT/test/input/csv_samples/",
},
}
for _, tc := range testCases {
t.Run(tc.description, func(t *testing.T) {
root := filepath.Join(moduleRoot, tc.root)
files, err := GetFileList(root)
if tc.expectedError != nil {
require.Error(t, err)
require.Empty(t, files)
return
}
require.NoError(t, err)
var foundFiles []string
for _, f := range files {
require.Equal(t, root, filepath.Dir(f))
require.Equal(t, ".csv", filepath.Ext(f))
foundFiles = append(foundFiles, filepath.Base(f))
}
require.ElementsMatch(t, tc.files, foundFiles)
})
}
}

View File

@ -0,0 +1,73 @@
/**
# Copyright (c) 2021-2022, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
**/
package csv
import (
"fmt"
"strings"
)
// MountSpecType defines the mount types allowed in a CSV file
type MountSpecType string
const (
// MountSpecDev is used for character devices
MountSpecDev = MountSpecType("dev")
// MountSpecDir is used for directories
MountSpecDir = MountSpecType("dir")
// MountSpecLib is used for libraries or regular files
MountSpecLib = MountSpecType("lib")
// MountSpecSym is used for symlinks.
MountSpecSym = MountSpecType("sym")
)
// MountSpec represents a Jetson mount consisting of a type and a path.
type MountSpec struct {
Type MountSpecType
Path string
}
// NewMountSpecFromLine parses the specified line and returns the MountSpec or an error if the line is malformed
func NewMountSpecFromLine(line string) (*MountSpec, error) {
parts := strings.SplitN(strings.TrimSpace(line), ",", 2)
if len(parts) < 2 {
return nil, fmt.Errorf("failed to parse line: %v", line)
}
mountType := strings.TrimSpace(parts[0])
path := strings.TrimSpace(parts[1])
return NewMountSpec(mountType, path)
}
// NewMountSpec creates a MountSpec with the specified type and path. An error is returned if the type is invalid.
func NewMountSpec(mountType string, path string) (*MountSpec, error) {
switch mountType {
case "dev", "lib", "sym", "dir":
default:
return nil, fmt.Errorf("unexpected mount type: %v", mountType)
}
if path == "" {
return nil, fmt.Errorf("invalid path: %v", path)
}
mount := MountSpec{
Type: MountSpecType(mountType),
Path: path,
}
return &mount, nil
}

View File

@ -0,0 +1,82 @@
/**
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
**/
package csv
import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
)
func TestNewMountSpecFromLine(t *testing.T) {
parseError := fmt.Errorf("failed to parse line")
unexpectedError := fmt.Errorf("unexpected mount type")
testCases := []struct {
line string
expectedError error
expectedValue MountSpec
}{
{
line: "",
expectedError: parseError,
},
{
line: "\t",
expectedError: parseError,
},
{
line: ",",
expectedError: parseError,
},
{
line: "dev,",
expectedError: parseError,
},
{
line: "dev ,/a/path",
expectedValue: MountSpec{
Path: "/a/path",
Type: "dev",
},
},
{
line: "dev ,/a/path,with,commas",
expectedValue: MountSpec{
Path: "/a/path,with,commas",
Type: "dev",
},
},
{
line: "not-dev ,/a/path",
expectedError: unexpectedError,
},
}
for i, tc := range testCases {
t.Run(fmt.Sprintf("test case %d", i), func(t *testing.T) {
target, err := NewMountSpecFromLine(tc.line)
if tc.expectedError != nil {
require.Error(t, err)
return
}
require.NoError(t, err)
require.EqualValues(t, &tc.expectedValue, target)
})
}
}

View File

View File

View File

@ -0,0 +1,171 @@
dev, nvidiactl
dev, nvhost-gpu
dev, nvhost-ctrl
dev, nvhost-nvdec
dev, nvhost-ctrl-gpu
dev, nvhost-prof-gpu
dev, nvhost-dbg-gpu
dev, nvmap
dev, tegra_dc_ctrl
dev, tegra_dc_0
dev, tegra_dc_1
dev, nvhost-vic
dev, nvhost-as-gpu
dir, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/include
dir, /usr/lib/aarch64-linux-gnu/tegra-egl
dir, /usr/src/tensorrt
dir, /usr/local/cuda
lib, /usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvidconv.so
lib, /usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvideocodec.so
lib, /usr/lib/aarch64-linux-gnu/libv4l1.so.0
lib, /usr/lib/aarch64-linux-gnu/libv4l2.so
lib, /usr/lib/aarch64-linux-gnu/libv4lconvert.so.0
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvcompositor.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvdrmvideosink.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvtee.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideocuda.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstomx.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstpulseaudio.so
lib, /usr/lib/aarch64-linux-gnu/libgstnvivameta.so
lib, /usr/lib/aarch64-linux-gnu/libgstnvexifmeta.so
lib, /usr/lib/aarch64-linux-gnu/libgstnvegl-1.0.so.0
lib, /usr/lib/aarch64-linux-gnu/libnvonnxparser.so
lib, /usr/lib/aarch64-linux-gnu/libnvinfer.so
lib, /usr/lib/aarch64-linux-gnu/libnvinfer_plugin.so
lib, /usr/lib/aarch64-linux-gnu/libnvparsers.so
lib, /usr/lib/aarch64-linux-gnu/libcudnn.so
lib, /usr/lib/aarch64-linux-gnu/libnvsample_cudaprocess.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libdrm.so.2
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvapputil.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvargus.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketserver.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvavp.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvbuf_utils.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvcam_imageencoder.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvcameratools.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvcamerautils.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvcamlog.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvcamv4l2.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvcolorutil.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvdc.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvddk_2d_v2.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvddk_vic.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnveglstream_camconsumer.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnveglstreamproducer.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnveventlib.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvexif.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvfnet.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvfnetstoredefog.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvfnetstorehdfx.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_boot.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_camera.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_force.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_generic.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_gpucompute.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_graphics.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_il.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_spincircle.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_tbc.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgov_ui.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvid_mapper.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-wayland.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.32.1.0
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-fatbinaryloader.so.32.1.0
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.32.1.0
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glsi.so.32.1.0
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glvkspirv.so.32.1.0
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-ptxjitcompiler.so.1
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-rmapi-tegra.so.32.1.0
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvidia-tls.so.32.1.0
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvimp.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvll.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmedia.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmm.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmm_contentpipe.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmm_parser.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmm_utils.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_image.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_utils.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_video.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvodm_imager.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvomx.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvomxilclient.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvos.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvosd.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvparser.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvphs.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvphsd.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvrm.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvrm_graphics.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvscf.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvtestresults.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvtnr.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvtracebuf.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvtvmr.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvtx_helper.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvwinsys.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libsensors.hal-client.nvs.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libsensors.l4t.no_fusion.nvs.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libsensors_hal.nvs.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so
lib, /usr/lib/aarch64-linux-gnu/tegra/nvidia_icd.json
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/EGLWLInputEventExample
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/EGLWLMockNavigation
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/LayerManagerControl
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/desktop-shell.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/drm-backend.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/eglstream-backend.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/gl-renderer.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/hmi-controller.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/ivi-controller.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/ivi-shell.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/libilmClient.so.2.0.0
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/libilmCommon.so.2.0.0
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/libilmControl.so.2.0.0
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/libilmInput.so.2.0.0
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/libinput.so.10.10.1
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/spring-tool
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/wayland-backend.so
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-calibrator
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-clickdot
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-cliptest
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-desktop-shell
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-dnd
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-eventdemo
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-flower
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-fullscreen
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-image
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-info
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-ivi-shell-user-interface
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-keyboard
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-launch
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-multi-resource
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-resizor
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-scaler
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-screenshooter
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-egl
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-shm
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-touch
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-smoke
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-stacking
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-subsurfaces
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-terminal
lib, /usr/lib/aarch64-linux-gnu/tegra/weston/weston-transformed
lib, /usr/lib/libvisionworks_tracking.so.0.88
lib, /usr/lib/libvisionworks_sfm.so.0.90
lib, /usr/lib/libvisionworks.so
1 dev nvidiactl
2 dev nvhost-gpu
3 dev nvhost-ctrl
4 dev nvhost-nvdec
5 dev nvhost-ctrl-gpu
6 dev nvhost-prof-gpu
7 dev nvhost-dbg-gpu
8 dev nvmap
9 dev tegra_dc_ctrl
10 dev tegra_dc_0
11 dev tegra_dc_1
12 dev nvhost-vic
13 dev nvhost-as-gpu
14 dir /usr/lib/aarch64-linux-gnu/gstreamer-1.0/include
15 dir /usr/lib/aarch64-linux-gnu/tegra-egl
16 dir /usr/src/tensorrt
17 dir /usr/local/cuda
18 lib /usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvidconv.so
19 lib /usr/lib/aarch64-linux-gnu/libv4l/plugins/libv4l2_nvvideocodec.so
20 lib /usr/lib/aarch64-linux-gnu/libv4l1.so.0
21 lib /usr/lib/aarch64-linux-gnu/libv4l2.so
22 lib /usr/lib/aarch64-linux-gnu/libv4lconvert.so.0
23 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so
24 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvcompositor.so
25 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvdrmvideosink.so
26 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so
27 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so
28 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so
29 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so
30 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so
31 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvtee.so
32 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so
33 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so
34 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideocuda.so
35 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so
36 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so
37 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstomx.so
38 lib /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstpulseaudio.so
39 lib /usr/lib/aarch64-linux-gnu/libgstnvivameta.so
40 lib /usr/lib/aarch64-linux-gnu/libgstnvexifmeta.so
41 lib /usr/lib/aarch64-linux-gnu/libgstnvegl-1.0.so.0
42 lib /usr/lib/aarch64-linux-gnu/libnvonnxparser.so
43 lib /usr/lib/aarch64-linux-gnu/libnvinfer.so
44 lib /usr/lib/aarch64-linux-gnu/libnvinfer_plugin.so
45 lib /usr/lib/aarch64-linux-gnu/libnvparsers.so
46 lib /usr/lib/aarch64-linux-gnu/libcudnn.so
47 lib /usr/lib/aarch64-linux-gnu/libnvsample_cudaprocess.so
48 lib /usr/lib/aarch64-linux-gnu/tegra/libdrm.so.2
49 lib /usr/lib/aarch64-linux-gnu/tegra/libnvapputil.so
50 lib /usr/lib/aarch64-linux-gnu/tegra/libnvargus.so
51 lib /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so
52 lib /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketserver.so
53 lib /usr/lib/aarch64-linux-gnu/tegra/libnvavp.so
54 lib /usr/lib/aarch64-linux-gnu/tegra/libnvbuf_utils.so
55 lib /usr/lib/aarch64-linux-gnu/tegra/libnvcam_imageencoder.so
56 lib /usr/lib/aarch64-linux-gnu/tegra/libnvcameratools.so
57 lib /usr/lib/aarch64-linux-gnu/tegra/libnvcamerautils.so
58 lib /usr/lib/aarch64-linux-gnu/tegra/libnvcamlog.so
59 lib /usr/lib/aarch64-linux-gnu/tegra/libnvcamv4l2.so
60 lib /usr/lib/aarch64-linux-gnu/tegra/libnvcolorutil.so
61 lib /usr/lib/aarch64-linux-gnu/tegra/libnvdc.so
62 lib /usr/lib/aarch64-linux-gnu/tegra/libnvddk_2d_v2.so
63 lib /usr/lib/aarch64-linux-gnu/tegra/libnvddk_vic.so
64 lib /usr/lib/aarch64-linux-gnu/tegra/libnveglstream_camconsumer.so
65 lib /usr/lib/aarch64-linux-gnu/tegra/libnveglstreamproducer.so
66 lib /usr/lib/aarch64-linux-gnu/tegra/libnveventlib.so
67 lib /usr/lib/aarch64-linux-gnu/tegra/libnvexif.so
68 lib /usr/lib/aarch64-linux-gnu/tegra/libnvfnet.so
69 lib /usr/lib/aarch64-linux-gnu/tegra/libnvfnetstoredefog.so
70 lib /usr/lib/aarch64-linux-gnu/tegra/libnvfnetstorehdfx.so
71 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_boot.so
72 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_camera.so
73 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_force.so
74 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_generic.so
75 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_gpucompute.so
76 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_graphics.so
77 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_il.so
78 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_spincircle.so
79 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_tbc.so
80 lib /usr/lib/aarch64-linux-gnu/tegra/libnvgov_ui.so
81 lib /usr/lib/aarch64-linux-gnu/tegra/libnvid_mapper.so
82 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-wayland.so
83 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.32.1.0
84 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-fatbinaryloader.so.32.1.0
85 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.32.1.0
86 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glsi.so.32.1.0
87 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glvkspirv.so.32.1.0
88 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-ptxjitcompiler.so.1
89 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-rmapi-tegra.so.32.1.0
90 lib /usr/lib/aarch64-linux-gnu/tegra/libnvidia-tls.so.32.1.0
91 lib /usr/lib/aarch64-linux-gnu/tegra/libnvimp.so
92 lib /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
93 lib /usr/lib/aarch64-linux-gnu/tegra/libnvll.so
94 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmedia.so
95 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmm.so
96 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmm_contentpipe.so
97 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmm_parser.so
98 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmm_utils.so
99 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite.so
100 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_image.so
101 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_utils.so
102 lib /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_video.so
103 lib /usr/lib/aarch64-linux-gnu/tegra/libnvodm_imager.so
104 lib /usr/lib/aarch64-linux-gnu/tegra/libnvomx.so
105 lib /usr/lib/aarch64-linux-gnu/tegra/libnvomxilclient.so
106 lib /usr/lib/aarch64-linux-gnu/tegra/libnvos.so
107 lib /usr/lib/aarch64-linux-gnu/tegra/libnvosd.so
108 lib /usr/lib/aarch64-linux-gnu/tegra/libnvparser.so
109 lib /usr/lib/aarch64-linux-gnu/tegra/libnvphs.so
110 lib /usr/lib/aarch64-linux-gnu/tegra/libnvphsd.so
111 lib /usr/lib/aarch64-linux-gnu/tegra/libnvrm.so
112 lib /usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so
113 lib /usr/lib/aarch64-linux-gnu/tegra/libnvrm_graphics.so
114 lib /usr/lib/aarch64-linux-gnu/tegra/libnvscf.so
115 lib /usr/lib/aarch64-linux-gnu/tegra/libnvtestresults.so
116 lib /usr/lib/aarch64-linux-gnu/tegra/libnvtnr.so
117 lib /usr/lib/aarch64-linux-gnu/tegra/libnvtracebuf.so
118 lib /usr/lib/aarch64-linux-gnu/tegra/libnvtvmr.so
119 lib /usr/lib/aarch64-linux-gnu/tegra/libnvtx_helper.so
120 lib /usr/lib/aarch64-linux-gnu/tegra/libnvwinsys.so
121 lib /usr/lib/aarch64-linux-gnu/tegra/libsensors.hal-client.nvs.so
122 lib /usr/lib/aarch64-linux-gnu/tegra/libsensors.l4t.no_fusion.nvs.so
123 lib /usr/lib/aarch64-linux-gnu/tegra/libsensors_hal.nvs.so
124 lib /usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so
125 lib /usr/lib/aarch64-linux-gnu/tegra/nvidia_icd.json
126 lib /usr/lib/aarch64-linux-gnu/tegra/weston/EGLWLInputEventExample
127 lib /usr/lib/aarch64-linux-gnu/tegra/weston/EGLWLMockNavigation
128 lib /usr/lib/aarch64-linux-gnu/tegra/weston/LayerManagerControl
129 lib /usr/lib/aarch64-linux-gnu/tegra/weston/desktop-shell.so
130 lib /usr/lib/aarch64-linux-gnu/tegra/weston/drm-backend.so
131 lib /usr/lib/aarch64-linux-gnu/tegra/weston/eglstream-backend.so
132 lib /usr/lib/aarch64-linux-gnu/tegra/weston/gl-renderer.so
133 lib /usr/lib/aarch64-linux-gnu/tegra/weston/hmi-controller.so
134 lib /usr/lib/aarch64-linux-gnu/tegra/weston/ivi-controller.so
135 lib /usr/lib/aarch64-linux-gnu/tegra/weston/ivi-shell.so
136 lib /usr/lib/aarch64-linux-gnu/tegra/weston/libilmClient.so.2.0.0
137 lib /usr/lib/aarch64-linux-gnu/tegra/weston/libilmCommon.so.2.0.0
138 lib /usr/lib/aarch64-linux-gnu/tegra/weston/libilmControl.so.2.0.0
139 lib /usr/lib/aarch64-linux-gnu/tegra/weston/libilmInput.so.2.0.0
140 lib /usr/lib/aarch64-linux-gnu/tegra/weston/libinput.so.10.10.1
141 lib /usr/lib/aarch64-linux-gnu/tegra/weston/spring-tool
142 lib /usr/lib/aarch64-linux-gnu/tegra/weston/wayland-backend.so
143 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston
144 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-calibrator
145 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-clickdot
146 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-cliptest
147 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-desktop-shell
148 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-dnd
149 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-eventdemo
150 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-flower
151 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-fullscreen
152 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-image
153 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-info
154 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-ivi-shell-user-interface
155 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-keyboard
156 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-launch
157 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-multi-resource
158 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-resizor
159 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-scaler
160 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-screenshooter
161 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-egl
162 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-shm
163 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-touch
164 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-smoke
165 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-stacking
166 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-subsurfaces
167 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-terminal
168 lib /usr/lib/aarch64-linux-gnu/tegra/weston/weston-transformed
169 lib /usr/lib/libvisionworks_tracking.so.0.88
170 lib /usr/lib/libvisionworks_sfm.so.0.90
171 lib /usr/lib/libvisionworks.so

View File

View File

@ -0,0 +1,6 @@
lib,/lib/target
dir,/lib/target
dev,/dev/null
dev,full
dev,/dev/target
sym,/source
1 lib /lib/target
2 dir /lib/target
3 dev /dev/null
4 dev full
5 dev /dev/target
6 sym /source

View File

@ -0,0 +1 @@
dir
1 dir

View File

@ -0,0 +1,9 @@
dev , /dev/target
lib, /lib/target
dir,/lib/target
sym, /source
1 dev , /dev/target
2 lib, /lib/target
3 dir,/lib/target
4 sym, /source
5