1.下载安装包、安装虚拟机、下载压缩包、生成uboot、生成uImage等步骤:
一步步教你如何在Ubuntu虚拟机中安装QEMU并模拟模拟arm 开发环境(一)uImage u-boot
过程中参考:
Qemu搭建ARM vexpress开发环境(二)----u-boot启动kernel
Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统
其中,安装arm-linux-gcc交叉编译器参考此链接:
Ubuntu 18.04安装arm-linux-gcc交叉编译器(超简单,附安装包下载地址)
Makefile等文件可以用gedit进行编辑(vim编辑太费劲了....)
有时候terminal输入命令不好使,就加上sudo再输入一次...
编译过程中虚拟机硬盘空间不够了怎么办?再增加一块硬盘并挂载
输入命令 sudo mount /dev/sdb ~/test 将sdb盘挂载到test文件夹
解决apt-get 安装出现E:unable to locate package问题
Ubuntu 解决 E:Unable to locate package
编译过程中报错解决
u-boot编译错误:error: bad value (armv5) for -march= switch
一些库没安装成功,参考:编译内核笔记
Linux 内核编译——瞎编译导致的问题,ctrl+F找下涉及问题
2.生成根文件系统
buildroot工具,此方法生成的rootfs加载失败。
一步步教你如何在ubuntu虚拟机中安装QEMU并模拟arm 开发环境(二)rootfs制作
改用busybox工具生成根文件系统,menuconfig菜单全是照着配置:
如何使用busybox编译和生成最简linux根文件系统(rootfs)
生成的根文件系统放在rootfs文件夹中
从arm-gcc-linux文件夹中,拷贝lib32库(arm平台为32位)到rootfs/lib文件夹中,发现lib32为软链接,找到实际指向位置,复制出来。
3.加载内核和uboot
第一个链接中采用nfs和tftp加载内核kernel和uboot,由于一些网络原因,此方案无法加载内核,因此改用SD镜像方法加载内核和根文件系统
网络问题,未解决:linux uboot启动nfs,tftp下载loading T T T
从0开始使用QEMU模拟ARM开发环境之uboot通过sd卡加载uImage
最后加载成功,ls -al ,可以看到根文件系统目录下的各个文件夹
出现bad crc,using default environment警告
解决 Warning - bad CRC, using default environment警告
u-boot下saveenv命令出现如下错误解决方法Error: end address not on sector boundary
启动qemu的其他参考链接:
在Ubuntu下使用QEMU搭建arm开发环境(三)使用u-boot加载Linux内核
4.eclipse编译helloword工程
Cross GCC工程
prefix:arm-none-linux-gnueabi-
path:........./arm-linux-gcc/gcc-4.6.4/bin
编译生成可执行文件test
5.运行test可执行文件
将test放到根文件系统目录下,重新通过SD镜像加载,在交叉编译平台上输入./test 执行此文件
注意,如果文件权限不够,chmod +x test 增加执行权限
6.文件权限查看、改变文件权限、删除文件等操作
linux ls -al 各项说明,查看设备是否具有读写权限