Skip to content
This repository was archived by the owner on Nov 22, 2022. It is now read-only.

New version for L4T 28.2.1 with new features #14

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 1 addition & 24 deletions getKernelSources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,6 @@ echo "$JETSON_DESCRIPTION"
#Print Jetpack version
echo "Jetpack $JETSON_JETPACK [L4T $JETSON_L4T]"

# Check to make sure we're installing the correct kernel sources
L4TTarget="28.2"
if [ $JETSON_L4T == $L4TTarget ] ; then
echo "Getting kernel sources"
sudo ./scripts/getKernelSources.sh
else
echo ""
tput setaf 1
echo "==== L4T Kernel Version Mismatch! ============="
tput sgr0
echo ""
echo "This repository branch is for installing the kernel sources for L4T "$L4TTarget
echo "You are attempting to use these kernel sources on a L4T "$JETSON_L4T "system."
echo "The kernel sources do not match their L4T release!"
echo ""
echo "Please git checkout the appropriate kernel sources for your release"
echo " "
echo "You can list the tagged versions."
echo "$ git tag -l"
echo "And then checkout the latest version: "
echo "For example"
echo "$ git checkout v1.0-L4T"$JETSON_L4T
echo ""
fi


sudo ./scripts/getKernelSources.sh
117 changes: 107 additions & 10 deletions scripts/getKernelSources.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,113 @@
#!/bin/bash
source jetson_variables.sh

apt-add-repository universe
apt-get update
apt-get install qt5-default pkg-config -y
cd /usr/src
wget -N http://developer.download.nvidia.com/embedded/L4T/r28_Release_v2.0/GA/BSP/tx2_sources.tbz2
sudo tar -xvf tx2_sources.tbz2 public_release/kernel_src.tbz2
tar -xvf public_release/kernel_src.tbz2
# Space is tight; get rid of the compressed kernel source
rm -r public_release
cd kernel/kernel-4.4
# Go get the default config file; this becomes the new system configuration
zcat /proc/config.gz > .config
# Ready to configure kernel
make xconfig

# Install the kernel source for L4T

#Print Jetson version
echo "$JETSON_DESCRIPTION"

#Pring Jetpack Version
echo "Jetpack $JETSON_JETPACK [L4T $JETSON_L4T]"

# Set kernel tag to to the version of L4T in system. Reference: http://nv-tegra.nvidia.com/gitweb/?p=linux-t18x.git;a=summary
# Possible kernel tags for TX2:
# tegra-l4t-r28.2.1
# tegra-l4t-r28.2
# tegra-l4t-r28.2-rc
# tegra-l4t-r28.1
# tegra-l4t-r27.1
#KERNEL_TAG=0
echo "Jetson L4T is $JETSON_L4T"

if [ "$JETSON_BOARD" = "TX2i" ] ; then
case $JETSON_L4T in
"28.2.1")
KERNEL_TAG="tegra-l4t-r28.2.1" ;;
"28.2")
KERNEL_TAG="tegra-l4t-r28.2" ;;
*)
KERNEL_TAG="UNKNOWN" ;;
esac
elif [ "$JETSON_BOARD" = "TX2" ] ; then
case $JETSON_L4T in
"28.2.1")
KERNEL_TAG="tegra-l4t-r28.2.1" ;;
"28.2")
KERNEL_TAG="tegra-l4t-r28.2" ;;
"28.1")
KERNEL_TAG="tegra-l4t-r28.1" ;;
"27.1")
KERNEL_TAG="tegra-l4t-r27.1" ;;
*)
KERNEL_TAG="UNKNOWN" ;;
esac
else
# Unknown board
KERNEL_TAG="UNKNOWN"
fi


echo "Setting the kernel URL for L4T $KERNEL_TAG"
echo "Getting kernel sources"

if [ $KERNEL_TAG == "UNKNOWN" ] ; then
echo "An unsupported version of the board or L4T detected! "
sudo ./scripts/getKernelSources.sh
else

# Note: New Method for getting kernel source.
# For older method, following can be used, but decided to come up with more efficient mode:
# wget -N "https://developer.download.nvidia.com/embedded/L4T/r28_Release_v2.1/public_sources.tbz2?YoszKxkjC1hGlemo-Y1ErDXXvPUeDepDcd8KBvWL29Re9YNC8HZyClKNEEqvIB2r_pxl7GJyusN7ucO-DhysxFqkqLUOyPRpB2qvvefsf7CcJpOnrb0imN2Lkpa8C3K_ItZ0cl3yneR7VQb9L-_wmw"
# Getting from Git via cloning takes way too long, so we download the "snapshots" generated by gitweb. Inspired by source_sync.sh script.
# The snapshot option can be seen here: http://nv-tegra.nvidia.com/gitweb/?p=linux-4.4.git;a=commit;h=d259faa6df3f513591e4246a782f51bb940d09ad


SOURCE_INFO="
kernel/kernel-4.4:linux-4.4.git
kernel/t18x:linux-t18x.git
kernel/nvgpu:linux-nvgpu.git
kernel/nvhost:linux-nvhost.git
kernel/nvmap:linux-nvmap.git
kernel/nvmap-t18x:linux-nvmap-t18x.git
kernel/display:linux-display.git
hardware/nvidia/soc/t18x:device/hardware/nvidia/soc/t18x.git
hardware/nvidia/platform/tegra/common:device/hardware/nvidia/platform/tegra/common.git
hardware/nvidia/platform/t18x/common:device/hardware/nvidia/platform/t18x/common.git
hardware/nvidia/platform/t18x/quill:device/hardware/nvidia/platform/t18x/quill.git
hardware/nvidia/soc/t210:device/hardware/nvidia/soc/t210.git
hardware/nvidia/platform/t210/common:device/hardware/nvidia/platform/t210/common.git
hardware/nvidia/platform/t210/jetson:device/hardware/nvidia/platform/t210/jetson.git
hardware/nvidia/soc/tegra:device/hardware/nvidia/soc/tegra.git
"
NSOURCES=0
declare -a SOURCE_INFO_PROCESSED
SOURCE_INFO_PROCESSED=($(echo "$SOURCE_INFO"))
NSOURCES=${#SOURCE_INFO_PROCESSED[*]}

for ((i=0; i < NSOURCES; i++)); do
FOLDER_NAME=$(echo "${SOURCE_INFO_PROCESSED[i]}" | cut -f 1 -d ':')
REPO_URL=$(echo "${SOURCE_INFO_PROCESSED[i]}" | cut -f 2 -d ':')
REPO_NAME=$(echo "${REPO_URL}" | cut -f 1 -d '.')

mkdir -p "$FOLDER_NAME"
wget -O "$REPO_NAME.tgz" -vr "http://nv-tegra.nvidia.com/gitweb/?p=$REPO_URL;a=snapshot;h=$KERNEL_TAG;sf=tgz"

tar -xvf "$REPO_NAME.tgz" -C "$FOLDER_NAME" --strip-components 1
rm "$REPO_NAME.tgz"

done


cd kernel/kernel-4.4

# Go get the default config file; this becomes the new system configuration
zcat /proc/config.gz > .config
# Ready to configure kernel
make xconfig
fi

53 changes: 48 additions & 5 deletions scripts/getKernelSourcesNoGUI.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,55 @@ apt-add-repository universe
apt-get update
apt-get install pkg-config -y
cd /usr/src
wget -N http://developer.download.nvidia.com/embedded/L4T/r28_Release_v2.0/GA/BSP/tx2_sources.tbz2
sudo tar -xvf tx2_sources.tbz2 public_release/kernel_src.tbz2
tar -xvf public_release/kernel_src.tbz2
# Space is tight; get rid of the compressed kernel source
rm -r public_release

# Note: New Method for getting kernel source.
# For older method, following can be used, but decided to come up with more efficient mode:
# wget -N "https://developer.download.nvidia.com/embedded/L4T/r28_Release_v2.1/public_sources.tbz2?YoszKxkjC1hGlemo-Y1ErDXXvPUeDepDcd8KBvWL29Re9YNC8HZyClKNEEqvIB2r_pxl7GJyusN7ucO-DhysxFqkqLUOyPRpB2qvvefsf7CcJpOnrb0imN2Lkpa8C3K_ItZ0cl3yneR7VQb9L-_wmw"
# Getting from Git via cloning takes way too long, so we download the "snapshots" generated by gitweb. Inspired by source_sync.sh script.
# The snapshot option can be seen here: http://nv-tegra.nvidia.com/gitweb/?p=linux-4.4.git;a=commit;h=d259faa6df3f513591e4246a782f51bb940d09ad


SOURCE_INFO="
kernel/kernel-4.4:linux-4.4.git
kernel/t18x:linux-t18x.git
kernel/nvgpu:linux-nvgpu.git
kernel/nvhost:linux-nvhost.git
kernel/nvmap:linux-nvmap.git
kernel/nvmap-t18x:linux-nvmap-t18x.git
kernel/display:linux-display.git
hardware/nvidia/soc/t18x:device/hardware/nvidia/soc/t18x.git
hardware/nvidia/platform/tegra/common:device/hardware/nvidia/platform/tegra/common.git
hardware/nvidia/platform/t18x/common:device/hardware/nvidia/platform/t18x/common.git
hardware/nvidia/platform/t18x/quill:device/hardware/nvidia/platform/t18x/quill.git
hardware/nvidia/soc/t210:device/hardware/nvidia/soc/t210.git
hardware/nvidia/platform/t210/common:device/hardware/nvidia/platform/t210/common.git
hardware/nvidia/platform/t210/jetson:device/hardware/nvidia/platform/t210/jetson.git
hardware/nvidia/soc/tegra:device/hardware/nvidia/soc/tegra.git
"
NSOURCES=0
declare -a SOURCE_INFO_PROCESSED
SOURCE_INFO_PROCESSED=($(echo "$SOURCE_INFO"))
NSOURCES=${#SOURCE_INFO_PROCESSED[*]}

for ((i=0; i < NSOURCES; i++)); do
FOLDER_NAME=$(echo "${SOURCE_INFO_PROCESSED[i]}" | cut -f 1 -d ':')
REPO_URL=$(echo "${SOURCE_INFO_PROCESSED[i]}" | cut -f 2 -d ':')
REPO_NAME=$(echo "${REPO_URL}" | cut -f 1 -d '.')

mkdir -p "$FOLDER_NAME"
wget -O "$REPO_NAME.tgz" -vr "http://nv-tegra.nvidia.com/gitweb/?p=$REPO_URL;a=snapshot;h=$KERNEL_TAG;sf=tgz"

tar -xvf "$REPO_NAME.tgz" -C "$FOLDER_NAME" --strip-components 1
rm "$REPO_NAME.tgz"

done


cd kernel/kernel-4.4

# Go get the default config file; this becomes the new system configuration
zcat /proc/config.gz > .config
# Ready to configure kernel



72 changes: 38 additions & 34 deletions scripts/jetson_variables.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,29 @@
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# NVIDIA Identify version
# reference:
# NVIDIA Identify version
# reference:
# https://devtalk.nvidia.com/default/topic/1014424/jetson-tx2/identifying-tx1-and-tx2-at-runtime/
# https://devtalk.nvidia.com/default/topic/996988/jetson-tk1/chip-uid/post/5100481/#5100481

Expand All @@ -53,62 +53,66 @@ if [ -f /etc/nv_tegra_release ]; then
JETSON_L4T_STRING=$(head -n 1 /etc/nv_tegra_release)

# Load release and revision
JETSON_L4T_RELEASE=$(echo $JETSON_L4T_STRING | cut -f 1 -d ',' | sed 's/\# R//g' | cut -d ' ' -f1)
JETSON_L4T_REVISION=$(echo $JETSON_L4T_STRING | cut -f 2 -d ',' | sed 's/\ REVISION: //g' | cut -d. -f1)
JETSON_L4T_RELEASE=$(echo $JETSON_L4T_STRING | cut -f 1 -d ',' | sed 's,\# R,,' | cut -d ' ' -f 1)
JETSON_L4T_REVISION=$(echo $JETSON_L4T_STRING | cut -f 2 -d ',' | sed 's,\ REVISION: ,,g')
# unset variable
unset JETSON_L4T_STRING

# Write Jetson description
JETSON_L4T="$JETSON_L4T_RELEASE.$JETSON_L4T_REVISION"

# Write version of jetpack installed
# https://developer.nvidia.com/embedded/jetpack-archive
if [ "$JETSON_BOARD" = "TX2i" ] ; then
if [ "$JETSON_BOARD" = "TX2i" ] ; then
case $JETSON_L4T in
"28.2")
"28.2.1")
JETSON_JETPACK="3.2.1" ;;
"28.2.0")
JETSON_JETPACK="3.2" ;;
*)
JETSON_JETPACK="UNKNOWN" ;;
esac
esac
elif [ "$JETSON_BOARD" = "TX2" ] ; then
case $JETSON_L4T in
"28.2")
"28.2.1")
JETSON_JETPACK="3.2.1" ;;
"28.2.0")
JETSON_JETPACK="3.2" ;;
"28.1")
"28.1.0")
JETSON_JETPACK="3.1" ;;
"27.1")
"27.1.0")
JETSON_JETPACK="3.0" ;;
*)
JETSON_JETPACK="UNKNOWN" ;;
esac
elif [ "$JETSON_BOARD" = "TX1" ] ; then
case $JETSON_L4T in
"28.2")
"28.2.0")
JETSON_JETPACK="3.2" ;;
"28.1")
"28.1.0")
JETSON_JETPACK="3.1" ;;
"24.2.1")
"24.2.1")
JETSON_JETPACK="3.0 or 2.3.1" ;;
"24.2")
"24.2.0")
JETSON_JETPACK="2.3" ;;
"24.1")
"24.1.0")
JETSON_JETPACK="2.2.1 or 2.2" ;;
"23.2")
"23.2.0")
JETSON_JETPACK="2.1" ;;
"23.1")
"23.1.0")
JETSON_JETPACK="2.0" ;;
*)
JETSON_JETPACK="UNKNOWN" ;;
esac
elif [ "$JETSON_BOARD" ="TK1" ] ; then
case $JETSON_L4T in
"21.5")
"21.5.0")
JETSON_JETPACK="2.3.1 or 2.3" ;;
"21.4")
"21.4.0")
JETSON_JETPACK="2.2 or 2.1 or 2.0 or DP 1.2" ;;
"21.3")
"21.3.0")
JETSON_JETPACK="DP 1.1" ;;
"21.2")
"21.2.0")
JETSON_JETPACK="DP 1.0" ;;
*)
JETSON_JETPACK="UNKNOWN" ;;
Expand Down