嵌入式linux:通过qemu模拟mini2440开发环境
1 编译安装QEMU
首先下载qemu for mini2440,直接打包下载
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
首先下载buildroot的源代码,下载地址:
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-.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./lib/stdio.in.h
vim output/build/host-m4-1.4./lib/stdio.h
链接:https://pan.baidu.com/s/1PUxi_DejVo-bgChQH5bzmA 密码:2dkz
./autogen.sh (要求autoconf版本大于2.)
./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
qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse
(若出现错误:浮点数例外启动不了qemu,请全屏最大化终端,再次执行,这是由于分辨率问题造成)
nboot kernel
setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,
saveenv
bootm
启动后,输入默认密码root,即可成功登录,此时还没有配置网络。ifconfig发现没有网卡。
4 NFS挂在根文件系统
首先安装nfs服务
sudo apt-get install nfs-kernel-server
mkdir ~work/nfsroot
sudo vi /etc/exports
/home/zwx/work/nfsroot *(rw,sync,no_root_squash,no_subtree_check
sudo /etc/init.d/nfs-kernel-server restart
cd /home/zwx/work/nfsroot/
修改权限
sudo chmod -R ./
解压根文件系统
tar xvzf rootfs_qtopia_qt4-.tar.gz
注意:友善之臂提供的qtopia文件系统在挂载时会初始化网卡,但我们是由nfs挂载的文件系统,这会导致nfs连接中断,挂载失败,所以用nfs挂载之前需要把网卡的初始化过程取消,对应的文件是/etc/init.d/if-config,只需把该文件内容删除即可(删除文件也可以)。
sudo chmod -R ./
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= -net tap,vlan=,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=,nolock ip=192.168.42.2:192.168.42.1::255.255.255.0 console=ttySAC0,
bootm
然后就可以启动了
5 安装交叉编译工具链:
arm-linux-gcc-4.4..tar.gz
安装库:
sudo apt-get install lib32stdc++
sudo apt-get install lib32z1
好了 到此就可以愉快的进行开发了。
嵌入式linux:通过qemu模拟mini2440开发环境的更多相关文章
- 一步步教你如何在Ubuntu虚拟机中安装QEMU并模拟模拟arm 开发环境(一)uImage u-boot(转)
初次接触qemu是因为工作的需要,有时候下了班,可能需要在家研究一些东西,因为博主用到arm环境,这时候博主比较小气,不愿花钱买开发板,当然博主在这里给大家的建议是,如果要真正学懂arm构架的相关知识 ...
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统
qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统【转】
转自:http://www.cnblogs.com/riskyer/p/3366001.html qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和l ...
- 【记录】尝试用QEMU模拟ARM开发板去加载并运行Uboot,kernel,rootfs【转】
转自:https://www.crifan.com/try_use_qemu_emulate_arm_board_to_load_and_run_uboot_kernel_rootfs/ [背景] 手 ...
- 【转】windows和linux中搭建python集成开发环境IDE
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- Ubuntu Linux下如何配置Android开发环境
下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...
- Linux下快速搭建php开发环境
php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XA ...
随机推荐
- sparkSQL元数据缓存不同步 beeline连接的表结构与hive不一致
之前遇到过的坑,通过beeline连接spark thirft server,当在Hive进行表结构修改,如replace/add/change columns后,表结构没有变化,还是旧的表结构,导致 ...
- Appium+Python入门学习总结
最近研究了一下Appium,查看了一些大神的博客,绕过了一些坑,现将从搭建环境到运行真机测试的流程总结如下: 一.搭建环境,这里我参考了虫师的博客,一步一步来,搭好了Appium的环境,如果需要真机测 ...
- Gym 101047M Removing coins in Kem Kadrãn
给定一个序列,只能拿走D,隔壁的会翻转,问能否全部拿走. 注意到如果能拿走的话,拿D的顺序是没关系的.模拟即可 #include <cstdio> #include <cstdlib ...
- Spark-2.4.0源码:sparkContext
在看sparkContext之前,先回顾一下Scala的语法.Scala构造函数分主构造和辅构造函数,辅构造函数是关键字def+this定义的,而类中不在方法体也不在辅构造函数中的代码就是主构造函数, ...
- C#常用控件的属性以及方法(转载)
-----以前看别人的,保存了下来,但是忘了源处,望见谅. C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichText ...
- Spring注解之@Lazy注解,源码分析和总结
一 关于延迟加载的问题,有次和大神讨论他会不会直接或间接影响其他类.spring的好处就是文档都在代码里,网上百度大多是无用功. 不如,直接看源码.所以把当时源码分析的思路丢上来一波. 二 源码分析 ...
- 从零开始的全栈工程师——js篇2.13(案例存放:三重数组渲染)
- path的join和resolve
连接路径:path.join([path1][, path2][, ...]) path.join()方法可以连接任意多个路径字符串.要连接的多个路径可做为参数传入. path.join()方法在接边 ...
- 构建第一个Spring Boot2.0应用之集成mybatis、Druid(七)
一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.说明: 本文综合之 ...
- C#类型简述
一.值类型 1.布尔类型 bool,范围 true false 2.整数类型 sbyte,范围 -128~127 byte,范围 0~255 short,范围 -32768~32767 ushort, ...