Ubuntu20.04运DS-5

准备工作:

cd /home/rlk/rlk/runninglinuxkernel_5.0
#make clean
mkdir _install_arm64/dev
sudo mknod _install_arm64/dev/console c 5 1
./build_ds5_arm64.sh
git checkout boot-wrapper-aarch64/fvp-base-gicv3-psci.dtb
./build_ds5_arm64.sh

创建工程步骤

请添加图片描述
2.
请添加图片描述

请添加图片描述

请添加图片描述
5.
请添加图片描述
6.
请添加图片描述
7.
请添加图片描述
8.
请添加图片描述

调试步骤

b el2:0x81776174
单步到El1
add-symbol-file /home/rlk/rlk/runninglinuxkernel_5.0/vmlinux
b __primary_switched
b start_kernel

kimi:
在Ubuntu上使用DS-5调试ARM64 Linux内核的步骤如下:

  1. 安装DS-5

    • 从ARM官网下载DS-5并进行安装。确保选择适合Linux的版本,并按照安装向导完成安装过程。
  2. 下载和构建Linux内核

    • 使用以下命令下载Linux内核源码:
      git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
      cd linux
      
    • 进行默认配置和编译:
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)
      
    • 编译完成后,生成内核镜像和设备树文件,这些文件通常位于arch/arm64/boot/目录下。
  3. 构建引导程序

    • 下载并构建boot-wrapper-aarch64,这是一个用于引导Linux内核的简易引导程序:
      git clone git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
      cd boot-wrapper-aarch64
      autoreconf -i
      ./configure --enable-psci --enable-gicv3 --with-kernel-dir=/path/to/linux/arch/arm64/boot --with-dtb=your_device_tree.dtb --host=aarch64-linux-gnu --with-cmdline="rdinit=/linuxrc console=ttyAMA0"
      make
      
  4. 配置DS-5调试环境

    • 启动Eclipse for DS-5,创建一个新的调试配置。在“Run”菜单中选择“Debug Configurations…”,选择“DS-5 Debugger”,然后新建一个配置。
    • 在“Connection”选项中选择合适的目标平台(例如“Debug Cortex-A53”),并配置连接到DSTREAM仿真器或其他调试设备。
  5. 添加内核符号

    • 在Debugger选项中,选择“Run Control”为“Connect Only”,并在“Execute debugger commands”中输入:
      interrupt
      add-symbol-file "/path/to/linux/vmlinux"
      
    • 这将允许调试器加载内核符号,以便进行调试。
  6. 启动调试

    • 确保目标板上已经通过U-Boot引导到内核,然后在DS-5中点击“Debug”按钮开始调试。你应该能够看到调试界面,显示当前连接状态和调试信息。
  7. 使用调试功能

    • 你可以使用DS-5的调试功能,如设置断点、单步执行、查看和修改寄存器等,来调试Linux内核。

以上步骤提供了在Ubuntu上使用DS-5调试ARM64 Linux内核的基本流程。具体的操作可能会根据DS-5的版本和内核的具体配置有所不同,因此建议参考最新的官方文档和教程进行操作。