It's probably file permissions. The only user that you can upload files to is "admin", but the vc4 softwqare runs as user "virtualcontrol" So any files you put into /opt/crestron/virtualcontrol/Runningprograms/<YourRoomIDHere>/Nvram need to change ownership via "sudo chown virtualcontroluser:virtualcontroluser <file name>:
I have had to do that so often I made up a little shell script to do that all for me. See below.
Shell script. copies files from a folder under admin to both Nnram folder and to the Nvram/ProgID folder.
========================================Begin Shell Script========================
#!/bin/bash
SOURCEDIR=/home/admin/ConfigFiles
TARGETDIR=/opt/crestron/virtualcontrol/RunningPrograms
RID1=10109
RNAME1=VA-Innovation
RID2=10201
RNAME2=VA-ViewingRm
RID3=10202
RNAME3=VA-FitnessCtr
read -p "Program 1 is $RNAME1 with Room ID $RID1. Press enter to abort, s to skip P1 or <anything else> to continue:" R1
if [[ -n $R1 ]]??? #if not an empty string
then
?? ?if [[ "${R1,,}" = "s" ]]??? #convert to lowwer case and check to see if it's an s
?? ?then
?? ???? echo Skipping Program 1.
?? ?else
?? ???? if [[ ! -d $TARGETDIR/$RID1 ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID1 does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID1
??????????? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID1
?? ???? fi
?? ???? if [[ ! -d $TARGETDIR/$RID1/Nvram ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID1/Nvram does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID1/Nvram
?? ???? ??? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID1/Nvram
?? ???? fi
?? ???? if [[ ! -d $TARGETDIR/$RID1/Nvram/$RNAME1 ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID1/Nvram/$RNAME1 does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID1/Nvram/$RNAME1
?? ???? ??? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID1/Nvram/$RNAME1
?? ???? fi
?? ???? echo Moving $SOURCEDIR/Xml Files
?? ???? sudo cp $SOURCEDIR/*.Xml $TARGETDIR/$RID1/Nvram
?? ???? echo Moving $SOURCEDIR/$RNAME1 Files
?? ???? sudo cp $SOURCEDIR/$RNAME1/* $TARGETDIR/$RID1/Nvram/$RNAME1
?? ???? sudo chown -R virtualcontroluser:virtualcontroluser $TARGETDIR/$RID1/Nvram/*
?? ?fi
else
?? ?echo "Aborting.."
?? ?exit
fi
read -p "Program 2 is $RNAME2 with Room ID $RID2. Press enter to abort, s to skip P2 or <anything else> to continue:" R2
if [[ -n $R2 ]]
then
?? ?if [[ "${R2,,}" = "s" ]]
?? ?then
?? ???? echo Skipping Program 2.
?? ?else
?? ???? if [[ ! -d $TARGETDIR/$RID2 ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID2 does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID2
??????????? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID2
?? ???? fi
?? ???? if [[ ! -d $TARGETDIR/$RID2/Nvram ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID2/Nvram does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID2/Nvram
?? ???? ??? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID2/Nvram
?? ???? fi
?? ???? if [[ ! -d $TARGETDIR/$RID2/Nvram/$RNAME2 ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID2/Nvram/$RNAME2/ does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID2/Nvram/$RNAME2
?? ???? ??? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID2/Nvram/$RNAME2
?? ???? fi
?? ???? echo Moving $SOURCEDIR/Xml Files
?? ???? echo Moving $SOURCEDIR/Xml Files
?? ???? sudo cp $SOURCEDIR/*.Xml $TARGETDIR/$RID2/Nvram
?? ???? echo Moving $SOURCEDIR/$RNAME2 Files
?? ???? sudo cp $SOURCEDIR/$RNAME2/* $TARGETDIR/$RID2/Nvram/$RNAME2
?? ???? sudo chown -R virtualcontroluser:virtualcontroluser $TARGETDIR/$RID2/Nvram/*
?? ?fi
else
?? ?echo "Aborting.."
?? ?exit
fi
read -p "Program 3 is $RNAME3 with Room ID $RID3. Press enter to abort, s to skip P3 or <anything else> to continue:" R3
if [[ -n $R3 ]]
then
?? ?if [[ "${R3,,}" = "s" ]]
?? ?then
?? ???? echo Skipping Program 3.
?? ?else
?? ???? if [[ ! -d $TARGETDIR/$RID3 ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID3 does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID3
??????????? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID3
?? ???? fi
?? ???? if [[ ! -d $TARGETDIR/$RID3/Nvram ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID3/Nvram does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID3/Nvram
?? ???? ??? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID3/Nvram
?? ???? fi
?? ???? if [[ ! -d $TARGETDIR/$RID3/Nvram/$RNAME3 ]]
?? ???? then
?? ???? ??? echo Directory $TARGETDIR/$RID3/Nvram/$RNAME3 does not exist, creating
?? ???? ??? sudo mkdir $TARGETDIR/$RID3/Nvram/$RNAME3
?? ???? ??? sudo chown virtualcontroluser:virtualcontroluser $TARGETDIR/$RID3/Nvram/$RNAME3
?? ???? fi
?? ???? echo Moving $SOURCEDIR/Xml Files
?? ???? sudo cp $SOURCEDIR/*.Xml $TARGETDIR/$RID3/Nvram
?? ???? echo Moving $SOURCEDIR/$RNAME3 Files
?? ???? sudo cp $SOURCEDIR/$RNAME3/* $TARGETDIR/$RID3/Nvram/$RNAME3
?? ???? sudo chown -R virtualcontroluser:virtualcontroluser $TARGETDIR/$RID3/Nvram/*
?? ?fi
else
?? ?echo "Aborting.."
?? ?exit
fi