提交 dbdb0ce1 编写于 作者: S storypku

cyber_start.sh: setup_device for aarch64

上级 4da763fa
......@@ -269,7 +269,25 @@ function geo_specific_config() {
fi
}
function determine_gpu_use() {
function determine_gpu_use_aarch64() {
local use_gpu=0
if lsmod | grep -q nvgpu ; then
use_gpu=1
fi
if [[ "${use_gpu}" -eq 1 ]]; then
local docker_version
docker_version="$(docker version --format '{{.Server.Version}}')"
if dpkg --compare-versions "${docker_version}" "ge" "19.03"; then
DOCKER_RUN_CMD="docker run --gpus all"
else
warning "You must upgrade to docker-ce 19.03+ to access GPU from container!"
use_gpu=0
fi
fi
USE_GPU="${use_gpu}"
}
function determine_gpu_use_amd64() {
# Check nvidia-driver and GPU device
local nv_driver="nvidia-smi"
if [ ! -x "$(command -v ${nv_driver} )" ]; then
......@@ -306,6 +324,14 @@ function determine_gpu_use() {
fi
}
function determine_gpu_use() {
if [[ "${HOST_ARCH}" == "x86_64" ]]; then
determine_gpu_use_amd64
else
determine_gpu_use_aarch64
fi
}
function setup_devices_and_mount_volumes() {
local __retval="$1"
......
......@@ -18,6 +18,8 @@
TOP_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd -P)"
source ${TOP_DIR}/scripts/apollo.bashrc
HOST_ARCH="$(uname -m)"
function set_lib_path() {
local CYBER_SETUP="${APOLLO_ROOT_DIR}/cyber/setup.bash"
[[ -e "${CYBER_SETUP}" ]] && . "${CYBER_SETUP}"
......@@ -84,15 +86,20 @@ function find_device() {
fi
}
function setup_device() {
if [ $(uname -s) != "Linux" ]; then
echo "Not on Linux, skip mapping devices."
return
function setup_device_for_aarch64() {
local can_dev="/dev/can0"
if [ ! -e "${can_dev}" ]; then
warning "No CAN device named ${can_dev}. "
return
fi
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
}
function setup_device_for_amd64() {
# setup CAN device
for INDEX in `seq 0 3`
do
for INDEX in $(seq 0 3) ; do
# soft link if sensorbox exist
if [ -e /dev/zynq_can${INDEX} ] && [ ! -e /dev/can${INDEX} ]; then
sudo ln -s /dev/zynq_can${INDEX} /dev/can${INDEX}
......@@ -102,28 +109,39 @@ function setup_device() {
fi
done
if [ "$(uname -m)" == 'aarch64' ]; then
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
fi
# setup nvidia device
sudo /sbin/modprobe nvidia
sudo /sbin/modprobe nvidia-uvm
if [ ! -e /dev/nvidia0 ];then
info "mknod /dev/nvidia0"
sudo mknod -m 666 /dev/nvidia0 c 195 0
fi
if [ ! -e /dev/nvidiactl ];then
info "mknod /dev/nvidiactl"
sudo mknod -m 666 /dev/nvidiactl c 195 255
fi
if [ ! -e /dev/nvidia-uvm ];then
info "mknod /dev/nvidia-uvm"
sudo mknod -m 666 /dev/nvidia-uvm c 243 0
fi
if [ ! -e /dev/nvidia-uvm-tools ];then
info "mknod /dev/nvidia-uvm-tools"
sudo mknod -m 666 /dev/nvidia-uvm-tools c 243 1
fi
}
function setup_device() {
if [ "$(uname -s)" != "Linux" ]; then
info "Not on Linux, skip mapping devices."
return
fi
if [[ "${HOST_ARCH}" == "x86_64" ]]; then
setup_device_for_amd64
else
setup_device_for_aarch64
fi
}
function decide_task_dir() {
# Try to find largest NVMe drive.
DISK="$(df | grep "^/dev/nvme" | sort -nr -k 4 | \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册