0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Cách Tối Ưu Hóa Thời Gian Khởi Động Cho Nvidia Xavier NX

Đăng vào 3 tuần trước

• 3 phút đọc

Giới thiệu

Nvidia Xavier NX là một dòng máy tính mạnh mẽ, nổi bật với khả năng xử lý trí tuệ nhân tạo (AI) trong kích thước nhỏ gọn. Sản phẩm này được ứng dụng trong nhiều lĩnh vực như robot, xe tự hành, và IoT công nghiệp, với mức giá khởi điểm trên 20 triệu đồng.

Tham khảo thông số kỹ thuật tại đây

Vấn Đề Thời Gian Khởi Động

Theo hướng dẫn flash kit với JetPack 5.1.1, thời gian khởi động ban đầu của Nvidia Xavier NX dao động từ 46 đến 49 giây. Đây là một khoảng thời gian khá lâu đối với các lập trình viên và người sử dụng muốn nhanh chóng truy cập vào hệ thống. Do đó, việc giảm thời gian khởi động là cần thiết.

Phương Hướng Tối Ưu Hóa

Để giảm thời gian khởi động của thiết bị, trước hết, hãy tìm hiểu các thành phần chính trong quy trình khởi động của hệ thống nhúng Linux, bao gồm:

  • Toolchain: Bộ công cụ phát triển phần mềm.
  • Bootloader: Khởi động hệ thống và tải kernel vào RAM.
  • Kernel: Quản lý phần cứng và cung cấp dịch vụ cho ứng dụng.
  • Root Filesystem: Hệ thống tập tin chứa tất cả thư mục và tệp tin cần thiết.

Các thành phần này cần được tối ưu hóa để giảm thời gian khởi động.

Các Bước Tối Ưu Hóa

1. Tối Ưu Hóa Bootloader

Nvidia Xavier NX hỗ trợ hai loại bootloader: CBoot và UEFI. Để tối ưu hóa UEFI, mọi người cần tinh chỉnh và biên dịch lại mã nguồn UEFI bằng Docker. Dưới đây là hướng dẫn từng bước:

Bước 1: Cài Đặt Docker

Copy
sudo apt install docker.io
sudo usermod -a -G docker ${USER}

Bước 2: Thiết Lập Môi Trường

Copy
export EDK2_DEV_IMAGE="ghcr.io/tianocore/containers/ubuntu-22-dev:latest"
export EDK2_USER_ARGS="-v \"${HOME}\":\"${HOME}\" -e EDK2_DOCKER_USER_HOME=\"${HOME}\""
export EDK2_BUILD_ROOT="/build"
export EDK2_BUILDROOT_ARGS="-v \"${EDK2_BUILD_ROOT}\":\"${EDK2_BUILD_ROOT}\""
alias edk2_docker="docker run -it --rm -w \"\$(pwd)\" ${EDK2_BUILDROOT_ARGS} ${EDK2_USER_ARGS} \"${EDK2_DEV_IMAGE}\""
edk2_docker echo hello

Bước 3: Clone Source UEFI

Copy
cd /build
edk2_docker edkrepo clone nvidia-uefi NVIDIA-Platforms r35.3.1 updates

Bước 4: Tinh Chỉnh UEFI

Tại folder build/nvidia-uefi/edk2-nvidia/Platform/NVIDIA, điều chỉnh file để tắt boot timeout.

Bước 5: Build UEFI Image

Copy
cd build/nvidia-uefi
edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh

Bước 6: Thay thế Image Mới

Copy
cd images
sudo mv uefi_Jetson_RELEASE.bin uefi_jetson.bin
sudo cp -rf ./uefi_jetson.bin Nvidia_Directory/Linux_for_Tegra/bootloader/

2. Tối Ưu Hóa Kernel Image

Để tối ưu hóa kernel, trước tiên bạn cần tải về mã nguồn Linux Kernel và thực hiện các bước sau:

Bước 1: Cài Đặt Công Cụ Phát Triển

Copy
sudo apt install build-essential bc

Bước 2: Giải Nén Mã Nguồn

Copy
tar -xjf public_sources.tbz2
cd Linux_for_Tegra/source/public
tar -xjf kernel_src.tbz2

Bước 3: Tinh Chỉnh Kernel

Sử dụng make menuconfig để vô hiệu hóa các tính năng không cần thiết nhằm giảm kích thước kernel.

Bước 4: Build Kernel

Copy
sudo make -C kernel/kernel-5.10/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} -j$(nproc) Image

Sau khi hoàn tất, thay thế Image cũ bằng Image mới.

3. Tối Ưu Hóa Root Filesystem

Sử dụng lệnh systemd-analyze blame để kiểm tra các dịch vụ khởi động. Vô hiệu hóa các dịch vụ không cần thiết để tăng tốc thời gian khởi động. Các dịch vụ có thể được vô hiệu hóa bằng lệnh:

Copy
sudo systemctl disable <tên_dịch_vụ>

Kết Lại

Tùy thuộc vào mức độ tối ưu hóa, thời gian khởi động sẽ được cải thiện. Để kiểm tra kết quả, sử dụng các lệnh hệ thống như systemd-analyzesystemd-analyze blame. Hy vọng bài viết này sẽ giúp ích cho bạn trong việc tối ưu hóa thời gian khởi động của Nvidia Xavier NX.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào