1 编译安装QEMU

首先下载qemu for mini2440,直接打包下载

http://repo.or.cz/w/qemu/mini2440.git/snapshot/HEAD.tar.gz 
解压后,进入源代码目录中:
sudo apt-get install zlib1g-dev
sudo apt-get install libsdl-dev

(prefix指定安装路径,这里是$HOME/work/mini2440)

./configure --target-list=arm-softmmu --prefix=$HOME/work/mini2440
make -j4
make install 

安装完后,添加环境变量:

sudo vim /etc/bash.bashrc

添加一行:

export PATH=$PATH:$HOME/work/mini2440/bin 

保存退出后,用source 生效或者注销重新登录

source /etc/bash.bashrc

测试是否正常:

qemu-system-arm --version

2 使用buildroot一键生成uboot和linux内核及根文件系统

首先下载buildroot的源代码,下载地址:

http://buildroot.org/downloads/buildroot-2012.05.tar.gz 
解压后,进入源代码目录中:
sudo apt-get install libncurses5-dev
patch configure <../configure.patch    /* 需要修改源码 打补丁 */
make mini2440_defconfig
make menuconfig

安装库:

sudo apt-get install g++
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install gettext
sudo apt-get install patch
sudo apt-get install git-core
sudo apt-get install xz-utils
sudo apt-get install automake

安装texinfo 4.13

tar -zxvf texinfo-4.13a.tar.gz
cd texinfo-4.13
./configure
make
sudo make install

修改bug(注释下面文件中:_GL_WARN_ON_USE (gets,.......  这行代码):

vim output/build/host-m4-1.4.16/lib/stdio.in.h
vim output/build/host-m4-1.4.16/lib/stdio.h

在安装 时间比较长(可以先用我提供的安装文件放到buildroot-2012.05/dl目录下,这样省去下载时间)

链接:https://pan.baidu.com/s/1PUxi_DejVo-bgChQH5bzmA 密码:2dkz

3 Flashimg制作nand.bin并启动系统
下载flashimg源码 
http://gitorious.org/flashimg/flashimg.git 
解压后,进入flashimg源码目录后
./autogen.sh (要求autoconf版本大于2.67)
./configure
make
sudo make install 

然后把我们生成的三个文件 : u-boot.bin, uImage和rootfs.jffs2 拷贝到 flashimg文件夹下运行

./flashimg -s 64M -t nand -f nand.bin -p uboot.part -w boot,u-boot.bin -w kernel,uImage -w root,rootfs.jffs2 -z 512 

即可生成nand.bin。启动方法为:
qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse 

(若出现错误:浮点数例外启动不了qemu,请全屏最大化终端,再次执行,这是由于分辨率问题造成)

输入下面指令加载内核和根文件系统:
nboot kernel
setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200
saveenv
bootm 

启动后,输入默认密码root,即可成功登录,此时还没有配置网络。ifconfig发现没有网卡。

 4 NFS挂在根文件系统

首先安装nfs服务

sudo apt-get install nfs-kernel-server 

新建nfsroot文件夹
mkdir ~work/nfsroot 

然后配置nfs目录 
sudo vi /etc/exports 

添加一行
/home/zwx/work/nfsroot *(rw,sync,no_root_squash,no_subtree_check

然后执行:
sudo /etc/init.d/nfs-kernel-server restart

进入NFS共享目录:
cd /home/zwx/work/nfsroot/ 

修改权限

sudo chmod -R 777 ./ 

解压根文件系统

tar xvzf rootfs_qtopia_qt4-20140103.tar.gz

注意:友善之臂提供的qtopia文件系统在挂载时会初始化网卡,但我们是由nfs挂载的文件系统,这会导致nfs连接中断,挂载失败,所以用nfs挂载之前需要把网卡的初始化过程取消,对应的文件是/etc/init.d/if-config,只需把该文件内容删除即可(删除文件也可以)。

sudo chmod -R 777 ./
cd rootfs_qtopia_qt4
cd etc/init.d/
rm ifconfig-eth0

创建虚拟网卡并配置ip

sudo apt-get install uml-utilities //运行tunctl必须的工具
sudo tunctl -u $USER -t tap0
sudo ifconfig tap0 192.168.42.1

带网络方式启动qemu

cd /home/zwx/work/qemu/flashimgflashimg-fb97139
qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse -kernel uImage -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no

启动后进入uboot模式,此时的qemu还不能显示,输入下面指令加载内核和根文件系统。

set bootargs noinitrd root=/dev/nfs rw nfsroot=192.168.42.1:/home/zwx/work/nfsroot/rootfs_qtopia_qt4/,proto=tcp,nfsvers=3,nolock  ip=192.168.42.2:192.168.42.1::255.255.255.0 console=ttySAC0,115200
bootm

然后就可以启动了

 5 安装交叉编译工具链:

arm-linux-gcc-4.4.3.tar.gz 

安装库:

sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

好了 到此就可以愉快的进行开发了。

转载于:https://www.cnblogs.com/zwxwill/p/9431774.html

嵌入式linux:通过qemu模拟mini2440开发环境相关推荐

  1. 从0开始使用QEMU模拟ARM开发环境之脚本制作分区镜像(rootfs+zImage+dtb)

    文章目录 从0开始使用QEMU模拟ARM开发环境系列一览表 目录结构: 脚本介绍: 分区镜像制作脚本 qemu启动脚本 流程示例 从0开始使用QEMU模拟ARM开发环境系列一览表 文章中 u-boot ...

  2. 嵌入式linux clion,跨平台IDE集成开发环境Clion教程:嵌入式开发

    CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力.这种强大的IDE帮助开发人员在Linux.OS X和Windows ...

  3. 一步步教你如何在Ubuntu虚拟机中安装QEMU并模拟模拟arm 开发环境(一)uImage u-boot

    初次接触qemu是因为工作的需要,有时候下了班,可能需要在家研究一些东西,因为博主用到arm环境,这时候博主比较小气,不愿花钱买开发板,当然博主在这里给大家的建议是,如果要真正学懂arm构架的相关知识 ...

  4. linux虚拟arm环境环境,Ubuntu 模拟ARM开发环境

    为了简化开发和测试过程,Ubuntu从9.10开始提供静态的ARM虚拟功能,可以直接在PC机上建立ARM机器的chroot环境,既可以编译,也可以测试程序.相比于交叉编译而言,这种方法虽然编译速度较慢 ...

  5. 嵌入式linux ASoC架构声卡驱动开发

    嵌入式linux ASoC架构声卡驱动开发 文章目录 嵌入式linux ASoC架构声卡驱动开发 需求分析 ASoC架构下声卡驱动代码结构 codec驱动 snd_soc_register_codec ...

  6. Ubuntu Linux下如何配置Android开发环境

    下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...

  7. linux studo命令,在 Linux 上使用 Visual Studio 开发环境

    原标题:在 Linux 上使用 Visual Studio 开发环境 为了向大家介绍 "Linux 上的 ASP.NET Core",我需要一个 Linux VM,通过远程桌面连上 ...

  8. Linux 下搭建 Java Web 开发环境

    Linux 下搭建 Java Web 开发环境 我的小站.Github Java Web,是用Java技术来解决相关web互联网领域的技术栈,下方为 Linux 下搭建 Java Web 开发环境教程 ...

  9. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置 1.Tomcat的下载 地址:https://tomcat.apache. ...

  10. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

最新文章

  1. 「软件」2.0时代已经到来,你需要这样的开发工具
  2. LCLFramework框架之Service模式
  3. Direct2D (3) : 使用浮点参数绘制基本图形
  4. 前端学习(1650):前端系列实战课程之字符串常用方法
  5. 那天删库跑路后,在牢里写的MySQL数据恢复大法……
  6. 机器学习爬大树之决策树(CART与剪枝)
  7. 从C# 3.0到F#
  8. 【论文解读】ICLR2021 知识建模与信息抽取
  9. 火山PC后台操作第三方窗口案例
  10. 数据库系统概论第五版(第 3 章 关系数据库标准语言SQL)笔记
  11. 抖音检测注入框架分析
  12. 移植安卓系统到树莓派开发板
  13. 常见数据库id号编码
  14. 特征:什么是特征和特征选择?
  15. 桌面智能盆栽——【1】项目背景
  16. php date()时间不对,PHP DATE( )函数与系统时间差8小时解决办法
  17. 【大数据处理技术】「#0」实验环境准备
  18. Android 打包解析软件包时出现问题
  19. Linux修改localhost
  20. mysql怎样添加唯一标识_MySql设置唯一标识,主键等设置

热门文章

  1. python爬取qq音乐评论+jieba分词并统计词频+绘制词云并可视化数据
  2. 485集线器 4口485集线器 4口485 HUB
  3. ASP中Split分割字符串函数的实例用法
  4. uniapp打包之后首页白屏
  5. TODA SMT上料防错系统
  6. 阅读《Keyword-Guided Neural Conversational Model》
  7. CVPR 2022 全面盘点:最新350篇论文分方向汇总 / 代码 /
  8. 远程监控 java,远程监控Java应用
  9. 基于torch学汪峰写歌词 聊天机器人 图像着色/生成 看图说话 字幕生成
  10. 世界顶级企业的数据中台实践剖析