HackPluto's Blog

ARM路由器调试环境配置

字数统计: 491阅读时长: 2 min
2020/12/13 Share

ARM路由器调试环境配置

虚拟机环境:Ubuntu 18.04 amd64

本文主要以arm架构为主,MIPS架构的搭建同理

安装与使用qemu

1
2
3
4
5
sudo apt-get install qemu 
sudo apt-get install qemu-user-static
sudo apt-get install qemu-system
sudo apt-get install uml-utilities
sudo apt-get install bridge-utils

安装交叉编译环境

buildroot

安装依赖环境

1
sudo apt-get install libncurses5-dev

在buildroot.org下载buildroot

1
2
3
4
tar -zxvf buildroot-2019.02.5.tar.gz
cd buildroot-2019.02.5
make clean
make menuconfig

这里展示编译Linux 2.6.X内核版本的ARM架构的过程

target options选择如下:

toolchain选择如下:

选择一个低版本的GCC

保存设置

1
sudo make

最终生成的结果在output文件夹下

buildroot教程

交叉编译gdb和gdbserver

编译源码

去下载gdb源码http://ftp.gnu.org/gnu/gdb/

gdbserver

下载解压后进入“ gdb-/gdb/gdbserver ”目录,使用如下命令编译安装:

经过多个版本测试,gdb-8.xx-7.xx使用下面的命令

1
2
3
CC="arm-linux-gcc" ./configure --target=arm-linux --host="arm-linux" --prefix="/home/pluto/arm-gdb" --disable-build-with-cxx CFLAGS='-fPIC -static'

make install

gdb-6.xx以下使用下面的命令

1
2
3
4
5
CC="arm-linux-gcc" ./configure --target=arm-linux --prefix=/home/pluto/arm-gdb

make CFLAGS="-g -O2 -static" CXXFLAGS="-g -O2 -static"

make

gdb

进入gdb文件夹

1
2
3
4
./configure --target=arm-linux --program-prefix=arm-linux- --prefix=/home/pluto/arm-gdb

make
make install

–target=arm-linux意思是说目标平台是运行于ARM体系结构的linux内核;

–program-prefix=arm-linux-是指生成的可执行文件的前缀,比如arm-linux-gdb,

–prefix是指生成的可执行文件安装在哪个目录,这个目录需要根据实际情况作选择。如果该目录不存在,会自动创建

使用buildroot直接编译gdb&gdbserver

经过尝试多个版本后发现2020.02版本的buidroot存在bug,所以我最终使用2016版的编译成功

具体配置如下:
在上面配置的基础上增加以下选项

执行

1
make

等待编译完成,最终生成的文件在output目录下

安装gdb-multiarch

1
sudo apt-get install gdb-multiarch
CATALOG
  1. 1. ARM路由器调试环境配置
  2. 2. 安装与使用qemu
  3. 3. 安装交叉编译环境
    1. 3.1. buildroot
    2. 3.2. 交叉编译gdb和gdbserver
      1. 3.2.1. 编译源码
        1. 3.2.1.1. gdbserver
        2. 3.2.1.2. gdb
      2. 3.2.2. 使用buildroot直接编译gdb&gdbserver
  4. 4. 安装gdb-multiarch