准备工作:
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内核的步骤如下:
-
安装DS-5:
- 从ARM官网下载DS-5并进行安装。确保选择适合Linux的版本,并按照安装向导完成安装过程。
-
下载和构建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/
目录下。
- 使用以下命令下载Linux内核源码:
-
构建引导程序:
- 下载并构建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
- 下载并构建boot-wrapper-aarch64,这是一个用于引导Linux内核的简易引导程序:
-
配置DS-5调试环境:
- 启动Eclipse for DS-5,创建一个新的调试配置。在“Run”菜单中选择“Debug Configurations…”,选择“DS-5 Debugger”,然后新建一个配置。
- 在“Connection”选项中选择合适的目标平台(例如“Debug Cortex-A53”),并配置连接到DSTREAM仿真器或其他调试设备。
-
添加内核符号:
- 在Debugger选项中,选择“Run Control”为“Connect Only”,并在“Execute debugger commands”中输入:
interrupt add-symbol-file "/path/to/linux/vmlinux"
- 这将允许调试器加载内核符号,以便进行调试。
- 在Debugger选项中,选择“Run Control”为“Connect Only”,并在“Execute debugger commands”中输入:
-
启动调试:
- 确保目标板上已经通过U-Boot引导到内核,然后在DS-5中点击“Debug”按钮开始调试。你应该能够看到调试界面,显示当前连接状态和调试信息。
-
使用调试功能:
- 你可以使用DS-5的调试功能,如设置断点、单步执行、查看和修改寄存器等,来调试Linux内核。
以上步骤提供了在Ubuntu上使用DS-5调试ARM64 Linux内核的基本流程。具体的操作可能会根据DS-5的版本和内核的具体配置有所不同,因此建议参考最新的官方文档和教程进行操作。