嵌入式linux:通过qemu模拟mini2440开发环境
2018-08-07 08:42:38来源:博客园 阅读 ()
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-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
链接:https://pan.baidu.com/s/1PUxi_DejVo-bgChQH5bzmA 密码:2dkz
./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
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
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 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
好了 到此就可以愉快的进行开发了。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- Linux指令和shell脚本 2020-06-11
- 适合开发者的最佳Linux发行版 2020-06-11
- RAID 1 软件实现(Linux 系统) 2020-06-10
- linux各级目录 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash