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

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

文章分类

全部博文(192)

文章存档

2024年(8)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2016-07-31 00:57:32

qemu搭建ARM64开发环境。记录备忘

0. 环境
        
1.准备工具
    a. 安装工具链
        sudo apt install gcc-aarch64-linux-gnu
        
   b. 下载linux内核
        
     d. 下载文件系统busybox-1.25.0
        

2. 制作文件系统
      过程与以前32位系统的制作方式相似:
        解压进入busybox目录
         export ARCH=arm64
         export CROSS_COMPILE=aarch64-linux-gnu-
        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=arm64
        export CROSS_COMPILE=aarch64-linux-gnu-
        make menuconfig
        a. 配置ram disk
        General setup [*] initial RAM filesystem and RAM disk(initramfs/initrd)support
                (_install_arm64)initramfs source file(s)
        在initramfs source file中填_install_arm64(也就是使用刚才编译busybox后copy过来的东东)
        
  Kernel Features-->Page size(4KB)-->Virtual address space size(48-bit)
        
        b.  编译内核    
        make -j4
4. 运行
          qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -m 2048 --smp 2 -kernel arch/arm64/boot/Image --append "rdinit=/linuxrc console=ttyAMA0"
  
  进入控制台
        
    5. tmpfs挂载失败问题
  上面进入控制台的界面有
      mount: mounting tmpfs on /tmp failed: Invalid argument 
      mount: mounting tmpfs on /dev failed: Invalid argument  
  如下配置内核可解决
  
  重新编译后启动,如下,
  
阅读(4207) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~