Chinaunix首页 | 论坛 | 博客
  • 博客访问: 677069
  • 博文数量: 192
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2177
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(192)

文章存档

2024年(8)

2023年(3)

2019年(1)

2018年(1)

2017年(2)

2016年(68)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2016-07-30 23:24:06

无ARM开发板的情况下搭建ARM开发环境。记录备忘

0. 环境
        
1.准备工具
    a. 安装工具链
        sudo apt install gcc-arm-linux-gnueabi qemu
        
       补充调试工具
       sudo apt install gdb-arm-none-eabi
       
    b. 下载linux内核
        
    c. 下载文件系统busybox-1.25.0
        
2. 制作文件系统
        解压进入busybox目录
         export ARCH=arm
         export CROSS_COMPILE=arm-linux-gnueabi-
        make menuconfig, 配置成表态编译,Busybox Setting--> Build Options -->
        下图
        
        然后,make;make install会在busybox的根目录下生成_install目录
        将此_install文件复制到linux-4.0目录下
        cp -a _install  linux-4.0
        在linux-4.0/_install目录下新建目录
        mkdir -pv etc/init.d dev
        在新建的etc/init.d/目录下新建文件rcS, 内容如下:
        
        rcS需要可执行权限。否则后面启动系统会报错

        在新建的etc/目录下新建文件fstab, 内容如下:
        
        新建文件inittab, 内容如下:
        
        在新建的目录dev下新建文件
        sudo mknod console c 5 1 
        sudo mknod null c 1 3
3. 编译内核
        进入linux-4.0目录
        export ARCH=arm
        export CROSS_COMPILE=arm-linux-gnueabi-
        make vexpress_defconfig
        make menuconfig
        a. 配置ram disk
        General setup [*] initial RAM filesystem and RAM disk(initramfs/initrd)support
                (_install)initramfs source file(s)
        在initramfs source file中填_install(也就是使用刚才编译busybox后copy过来的东东)
        
        b. 配置memory split 为"3G/1G user/kernel split"以及打开高端内存
        Kernel Features --> Memory split(3G/1G user/kernel split) --> [*] High Memory support 
        
   c. 编译内核    
        make bzImage -j4;make dtbs
4. 运行
         qemu-system-arm -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic
        
       
        进入控制台
        
  5.调试内核
       a. 需要内核有调试信息
        Kernel hacking --> Compile-time checks and compiler options --> compile the kernel with debug info
       
  b. 取消编译优化
   将顶层目录下的Makefile文件中的几个"-O2"改成"-O". 
      c. 启动
           1. 终端运行如下命令
          qemu-system-arm -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -S -s
            
   2. 另一个终端运行如下命令
   arm-none-eabi-gdb --tui vmlinux
   (gdb) target remote localhost:1234
           (gdb) b start_kernel
           (gdb) c
            
阅读(24) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~