您的位置:时时app平台注册网站 > 时时app平台注册网站 > 嵌入式linux:通过qemu模拟mini2440支付条件【时时

嵌入式linux:通过qemu模拟mini2440支付条件【时时

2019-10-12 10:30
sudo apt-get install lib32stdc  6
sudo apt-get install lib32z1

在确立三个本子,分别为qemu-ifup, qemu-ifdown

2.解压内核到钦命目录下

跻身到基础源码所在目录,实施解压命令。

$ tar -zxvf linux-3.5-20150929.tgz -C ~/workspace/exynos4412/source/

这边经过 -C 参数内定解压到 ~/workspace/exynos4412/source/ 目录下,解压后 ~/workspace/exynos4412/source/ 目录下冒出 linux-3.5 目录

进去NFS分享目录:

再输入指令

1.nfs-kernel-server 服务器

sudo /etc/init.d/nfs-kernel-server restart

(下载步骤略去)

3.安装情状变量,使uboot准确引导内核运转

为了指点内核运转须要安装 bootargs 情状变量。
在 uboot 下实践命令:

TINY4412 # setenv bootargs 'root=/dev/nfs nfsroot=192.168.1.110:/home/user/workspace/exynos4412/rootfs ip=192.168.1.111:192.168.1.110:192.168.1.255:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 lcd=s70'
  • root参数:决定了运用什么措施读取文件系统。
  1. /dev/nfs :表示从网络NFS方式加载文件系统
  2. /dev/ mmcblk0p2 :表示从设备编号为0的配备的第四个的分区举行加载文件系统。
  • nfsroot参数:nfsroot参数唯有在开发银行方式设置NFS格局加载时才有功效。
    nfsroot语法格式:

      <服务器IP地址>:<服务器上的文件目录>  ip=<开发板IP地址>:<服务器IP地址>:<网关>:<子网掩码>::eth0:off
    
  • rootfstype参数:rootfstype参数独有设置位本地加载文件系统才有成效。
    rootfstype用于安装加载文件系统的分区是何许文件系统格式。
    这里的格式只可以是Linux下的文件系统格式:举个例子:ext2、ext3、ext4

  • init参数:保存了操作系统上电后实践的第三个本子代码。

  • console参数:调节台。决定了利用哪个串口充作当前Linux系统的调整台。

      console=ttySAC0,115200      # 表示使用串口0作为控制台,波特率是115200。
    
tar -zxvf texinfo-4.13a.tar.gz
cd texinfo-4.13
./configure
make
sudo make install

set bootargs noinitrd root=/dev/nfs rw nfsroot=10.0.0.1:/home/lizhao/ARM-pro/nfs/rootfs ip=10.0.0.10:10.0.0.1::255.255.255.0 console=ttySAC0,115200

三 设置 uboot 情况变量 运行水源

解压后,进入源代码目录中:

眼前,小编打算让GPE意况在此仿真情形中跑起来,近年来还尚无中标,正在尝试中。

安装 NFS 服务器

$ sudo apt-get install nfs-kernel-server       # 安装 NFS 服务器端
$ sudo apt-get install nfs-common              # 安装 NFS 客户端

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

测量检验 nfs服务是不是成功运行

设置分享目录

安装完 NFS 服务器等皮之不存毛将焉附软件后,供给内定用于分享的 NFS 目录,其艺术是在 /etc/exports 文件之中安装相应的目录及相应的访谈权限,每一行对应多个安装。上边介绍怎么着加多NFS 分享目录。

$ sudo vi /etc/exports

/etc/exports 文件张开后,文件内容为

# /etc/exports: the access control list for filesystems which may be exported
#       to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/home/user/workspace/exynos4412/rootfs *(rw,sync,no_root_squash)

在最终一行追加:

/home/user/workspace/exynos4412/rootfs *(rw,sync,no_root_squash)                              # 其中“*”表示允许任何网段 IP 的系统访问该 NFS 目录
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
  1. # ./configure --target-list=arm-softmmu # make -j4  

    # ./configure --target-list=arm-softmmu # make -j4

  2. 下载u-boot for mini2440

2.busybox 工具

arm-linux-gcc-4.4.3.tar.gz 

git clone git://repo.or.cz/qemu/mini2440.git  qemu

1. 圆满Linux系统根目录下的目录

#mkdir -p lib dev etc/init.d home proc sys root opt tmp var
source /etc/bash.bashrc
  1. # sudo /etc/init.d/nfs-kernel-server restart  

    # sudo /etc/init.d/nfs-kernel-server restart

2.UBOOT 情状变量操作命令

  • 打字与印刷情形变量新闻, 命令:printenv
    意义:将整个UBOOT的蒙受变量打字与印刷出来体现。

  • 保存意况变量, 命令:saveenv
    意义:将情状变量保存到SDXC卡也许EMMC钦命块地方。(设置时贮存在DD本田CR-V有个别位置)

  • 设置遭遇变量, 命令:setenv
    功能:用于安装蒙受变量,也足以创制新的蒙受变量。命令格式为:

    TINY4412 # setenv <意况变量名称> <情状变量的值…假若有非常多值使用空格隔断>

 

而后会在arch/arm/boot/目录下生成uImage 文件,将此文件复制到qemu目录下的mini2440文本夹下,并将mini2440文件夹中的mini2440_start.sh作如下修改

6. 创建etc/init.d/rcS文件

#vim etc/init.d/rcS

#!/bin/sh
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s                                                # 根据安装的驱动自动在dev目录下创建设备节点
/bin/hostname exynos

稳重:rcS文件是一个本子文件,必需有可举办权限。修改rcS文件的权位:

$ chmod 777 rcS

修改bug(注释上边文件中:_GL_WARN_ON_USE (gets,.......  那行代码):

/home/username/nfs *(rw,sync,no_root_squash)

7.创建etc/profile文件

$ vim etc/profile

写入以下代码:

USER="id-un"
LOGNAME=$USER
PS1='[u@h w]# '                                     # 保存的是当前命令行终端提示符显示的格式
PATH=$PATH
HOSTNAME='/bin/hostname'
export USER LOGNAME PS1 PATH

带网络形式运营qemu

假如认为到速度慢,直接打包下载

1.2 安装串口终端 kermit

$ sudo apt-get install ckermit

编纂配置文件

在客户家目录下开创三个 kermit 的布局文件:~/.kermrc,其剧情为:

set line /dev/ttyS0      # 如果是 USB 转串口连接的开发板,修改为 ttyUSB0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec  pack 1000
set send pack 1000
set window 5

直白步入终极

$ sudo kermit -c

此处 -c 表示 connect ,不加 -c 选项则跻身命令情势,命令方式输入 c 也得以步入终极。
终点方式下,先同一时间按住 Ctrl ,再按 c 可以回到命令形式。

在安装 小运相比长(能够先用笔者提供的安装文件放到buildroot-2011.05/dl目录下,那样省去下载时间)

那会儿应该看见qemu运维后步入了u-boot分界面下,输入指令

配置 busybox

跻身到解压目录 ~/workspace/exynos4412/source/busybox-1.23.2

进入图形配置菜单

$ make menuconfig     # 进入图形配置菜单

时时app平台注册网站 1

这里写图片描述

布局BUSYBOX的编译器

Busybox Settings ---> Build Options ---> (arm-linux-) CrossCompiler prefix // 按下回车键就可以步向到编辑框

时时app平台注册网站 2

这里写图片描述

布置busybox编写翻译安装的目录

Busybox Settings ---> Installation Options ("make install" behavior) ---> (/home/user/workspace/exynos4412/rootfs) BusyBox installation prefix

时时app平台注册网站 3

此地写图片描述

链接: 密码:2dkz

翻开/mnt/nfs文件是或不是于/home/username/nfs 中同样,若一样 ,OK

一. uboot 和 kernel 的编写翻译烧写

时下使用的条件为 Ubuntu 16.04 ,客户名叫user,作者的习于旧贯是在家目录下开创多个 workspace 目录, workspace 目录下独家有 exynos4412( 友善之臂 Cortex-A9 ) 、 i.MX283( 周立功 ARM9 )、stm32( 秉火 Cortex-M ) 等目录,分别是呼应的支付板类型。

 首先安装nfs服务

  1. 将mini2440目录下的mini2440_start.sh修改为

  2. #!/bin/sh sudo ../arm-softmmu/qemu-system-arm    -M mini2440    -kernel mini2440/uImage -serial stdio    -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=./qemu-ifup,downscript=./qemu-ifdown    -show-cursor    -usb -usbdevice keyboard -usbdevice mouse  

    #!/bin/sh sudo ../arm-softmmu/qemu-system-arm   -M mini2440   -kernel mini2440/uImage -serial stdio   -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=./qemu-ifup,downscript=./qemu-ifdown   -show-cursor   -usb -usbdevice keyboard -usbdevice mouse

1.4 编译 uboot

$ make -j16                  # -j16 参数表示16线程编译, 可以加快编译速度

 

稍等两分钟,即在当前目录下生成名称叫 u-boot.bin 的文本,注意假如想在事后选取u-boot 的nfs下载文件成效,须求修改代码中的一某些,将net/nfs.c文件中的

解压源码包到钦点文件夹

$ tar -jxvf busybox-1.23.2.tar.bz2 -C ~/workspace/exynos4412/source/

3 Flashimg制作nand.bin并运营系统

git clone  git://repo.or.cz/w/u-boot-openmoko/mini2440.git  uboot

4.编写翻译内核

$ make -j16

编写翻译成功后会生成 linux 内核影像文件,印象文件位于: linux-3.5/arch/arm/boot/zImage

假若未有生成 zImage 文件,接着 make 二回,不要加 -j16 参数,查看其错误音讯。

时时app平台注册网站 4

此地写图片描述

荒谬提示音信已经写的很明亮了:Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373. 升迁我们说这里应我省略 defined() 。

打开 linux-3.5/kernel/timeconst.pl 文件。

/* 372 */   @val = @{$canned_values{$hz}};
/* 373 */   if (!defined(@val)) {
/* 374 */       @val = compute_values($hz);
/* 375 */   }
/* 376 */   output($hz, @val);

我们应当修改第373行,将改为 if (!defined(@val)) 改为 if(!@val) 就能够了。

安装库:

5.烧写内核到 SD 卡

步向到 zImage 所在目录,试行烧写命令。

$ sudo dd iflag=dsync oflag=dsync if=zImage of=/dev/sdb seek=1057

dd命令:向存款和储蓄器设备写入数据。

  • 参数:
    dd iflag=dsync oflag=dsync if=<将在烧写的文书> of=<烧写的靶子设备> seek=<跳过块数量>
  • 块的单位:512字节
  • dsync:表示带缓冲

此处跳过 1057 个块是因为友善之臂的 uboot 暗中同意从 SD 卡的 10六19个块加载内核。

 

友善之臂提供的qtopia文件系统在挂载时会最早化网卡,但大家是由nfs挂载的文件系统,那会招致nfs连接中断,挂载战败,所以用nfs挂载此前必要把网卡的开始化进度撤消,对应的文书是/etc/init.d/if-config,只需把该文件内容清空就可以。Enjoy yourself!

1.2 烧写 uboot

获取 uboot 源码包

源码包在友善之臂光盘A盘中,具体地方为:
A盘-2013-09/uboot/uboot_tiny4412-20130729.tgz
也许点击这里下载。

解压 uboot 到钦点目录

跻身到 uboot 源码所在目录,推行解压命令。

$ tar -zxvf uboot_tiny4412-20130729.tgz -C ~/workspace/exynos4412/source/

此地透过 -C 参数钦点解压到 ~/workspace/exynos4412/source/ 目录下,解压后 ~/workspace/exynos4412/source/ 目录下冒出 uboot_tiny4412 目录

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

进去源码目录

4. 创建fstab文件

$ cp /etc/fstab etc/

 运行后,输入默许密码root,就可以成功登入,此时还向来不陈设互联网。ifconfig开采未有网卡。

从此修改/etc/exports文件,增加如下一行

1.1 安装交叉编写翻译器 arm-linux-gcc

获取 arm-linux-gcc 软件包

软件包在友善之臂光盘A盘中,具体地方为:
A盘-2013-09/Linux/arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
依旧点击这里下载。

解压到钦点目录

$ tar -zxvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C ~/software/

安顿相关景况变量,将时有时无编写翻译器的 bin 目录追加到 PATH 碰着变量将来。张开家目录下的 ~/.bashrc 文件,在其后扩展一行

export PATH=~/software/opt/FriendlyARM/toolschain/4.5.1/bin:$PATH

然后实行修改过的公文,是安插生效。

$ . .bashrc             # 执行 .bashrc 文件
$ arm-linux-gcc -v      # 输出版本信息,安装配置成功  

 

  1. #!/bin/sh echo "Excuting qemu-ifup" ifconfig $1 10.0.0.1  

    #!/bin/sh echo "Excuting qemu-ifup" ifconfig $1 10.0.0.1

uboot 意况变量和根文件系统制作

sudo vi /etc/exports 

启动 nfs服务

NFS 介绍

NFS 即互联网文件系统(Network File-System),能够因此互连网让差别机器、差异系统里头能够兑现文件分享。通过 NFS,可以访谈远程分享目录,就如访谈本地球磁性盘同样。
在 ubuntu 主机上设置 nfs 服务器,开拓板便得以通过互连网访谈 ubuntu 主机上的分享的文本。

qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse 
  1. # bootm  

    # bootm

2. 拷贝分享库到rootfs/lib目录下

表明:库在时有时无编写翻译器的安装目录下。

$ cp ~/software/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/* ./lib/ -rfdv
sudo chmod -R 777 ./ 
cd rootfs_qtopia_qt4
cd etc/init.d/
rm ifconfig-eth0
  1. # make mini2440_config # make -j4  

    # make mini2440_config # make -j4

1.3 配置 uboot

$ make clean                 # 清除编译生成的文件
$ make distclean             # 清除配置
$ make tiny4412_config       # 配置 uboot
/home/zwx/work/nfsroot *(rw,sync,no_root_squash,no_subtree_check

时时app平台注册网站 5

获取 busybox 源码包

能够直接去官方网址下载,也能够点击这里下载。

下一场配置nfs目录 

OK ! kernel就从头加载了,文件系统挂在成功后,就足以张开各类虚假工作了,下边是自家挂载的由友善之臂提供的mini2440的qtopia文件系统的截图:

1.拿走基本源码包

源码包在友善之臂光盘A盘中,具体地点为:
A盘-2013-09/Linux/linux-3.5-20150929.tgz

 增多一行:

解压后,后天源代码的主目录中,

测试 NFS 服务器

NFS 服务运维后,可以在 ubuntu 主机上海展览中心开自测。测验的中坚办法为:将早就设定好NFS 分享目录 mount(挂载)到此外二个索引下,看是还是不是得逞。
只要 Linux 主机 IP 为 192.168.12.123,NFS 共享目录为 /home/user/workspace/exynos4412/rootfs 可使用如下命令进行测量检验:

$ sudo mount -t nfs 192.168.12.123:/home/user/workspace/exynos4412/rootfs /mnt -o nolock

借使指令运营未有出错,则 NFS 挂载成功,在 /mnt 目录下相应能够观望/home/user/workspace/exynos4412/rootfs 目录下的剧情。

解压后,步向flashimg源码目录后

这里大家的根文件系统为 /home/username/nfs

始建并安插分享文件夹

修改产生后,保存并脱离 /etc/exports 文件。然后新建 /home/user/workspace/exynos4412/rootfs 目录,并为该目录
设置最宽松的权位:

$ sudo mkdir -p /home/user/workspace/exynos4412/rootfs
$ sudo chmod -R 777 /home/user/workspace/exynos4412/rootfs
$ sudo chown –R nobody /home/user/workspace/exynos4412/rootfs
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
  1. #!/bin/sh echo "Close tap!" sudo ifconfig $1 10.0.0.1 down  

    #!/bin/sh echo "Close tap!" sudo ifconfig $1 10.0.0.1 down

  2. 当那些都配置好后,大家就可以使用nfs根文件系统了

1.uboot 常用情况变量介绍

  • baudrate: 保存Porter率
  • bootargs: 保存基本的启航参数。
  • bootcmd: 保存UBOOT的开发银行命令(保存了UBOOT上电后活动试行的一声令下----正是3-2-1后施行的代码)
  • bootdelay:保存UBOOT上电延时的秒数。
  • ethaddr :保存网卡MAC地址
  • gatewayip:保存网关地址
  • ipaddr :保存当前开荒板的IP地址(UBOOT代码有效)。
  • netmask :保存子网掩码
  • serverip :保存服务器的地点

(若出现谬误:浮点数例外运营不了qemu,请全屏最大化终端,再度实践,那是由于分辨率难点变成)

  1. # sudo mkdir /mnt/nfs # sudo mount -t nfs localhost:/home/username/nfs /mnt/nfs  

    # sudo mkdir /mnt/nfs # sudo mount -t nfs localhost:/home/username/nfs /mnt/nfs

编写翻译安装 busybox

重临busybox顶层目录下

$ make                                         # 编译
$ make install                                 # 安装

设置成功后在 /home/user/workspace/exynos4412/rootfs 目录下会生成/bin/ 、/sbin目录等文件夹。

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

qemu-ifup 脚本

3.配置 Linux 内核

踏入到刚刚解压出来的 linux-3.5 目录下,依次推行下列步骤:

$ make clean                          # 清除编译生成的文件
$ make distclean                      # 清除配置
$ cp tiny4412_linux_defconfig .config # 拷贝官方的配置文件配置Linux内核
$ make menuconfig                     # 进入内核图形化配置界面

时时app平台注册网站 6

那边写图片描述

运动光标到 System Type ---> [*] Support TrustZone-enabled Trusted Execution Environment 这里

时时app平台注册网站 7

此处写图片描述

由此空格键,撤销其当选状态,不选中它,最终保存退出。

丰盛一行

....................注意  /home/username/nfs 为你所要分享的目录

3. 正片分组和密码文件到rootfs/etc目录下

$ cp /etc/group etc/
$ cp /etc/passwd etc/

 然后把大家转移的多少个文本 : u-boot.bin, uImage和rootfs.jffs2 拷贝到 flashimg文件夹下运营 

qemu-ifdown脚本

1.3 烧写 kernel

 4 NFS挂在根文件系统

bootm

二 制作根文件系统

静心:/home/user/workspace/exynos4412/rootfs 目录之后正是开荒板的根目录。
潜心:以下的具有手续除非特别表明,都以在rootfs目录下操作。

 安装完后,加多境况变量:

u-boot运行成功后输入设置linux kernel的教导参数

一 相关软件

 好了 到此就足以愉悦的开展支付了。

就能够见到linux内核运行的镜头,但那时还从未根文件系统,大家稍候介绍选拔nfs挂在根文件系统

5. 创建inittab文件

$ cp  /work/busybox/busybox-1.23.2/examples/inittab etc/

修改inittab文件:

::sysinit:/etc/init.d/rcS                              # 定义系统上电执行的初始化文件。
console::respawn:-/bin/sh                              # 指定控制台的脚本解释器和进入控制台的模式
::ctrlaltdel:/sbin/reboot                              # 指定系统重启命令
::shutdown:/bin/umount -a -r                           # 指定系统关机前执行的命令

输入下边发号施令加载内核和根文件系统:

  1. # ./mini2440/mini2440_start.sh  

    # ./mini2440/mini2440_start.sh

启动 NFS 服务

在极限中推行如下命令,可以运维 NFS 服务:

$ sudo /etc/init.d/nfs-kernel-server start

进行如下命令则能够再一次起动 NFS 服务:

$ sudo /etc/init.d/nfs-kernel-server restart

接下来就足以运营了

  1. # sh mini2440/mini2440_start.sh  

    # sh mini2440/mini2440_start.sh

busybox 介绍

BusyBox 是二个集成了一百几个最常用linux命令和工具的软件。BusyBox包括了一部分简便的工具,比方ls、cat和echo等等,还包涵了有个别越来越大、更目迷五色的工具,例grep、find、mount乃至telnet。某一个人将 BusyBox 称为 Linux 工具里的Switzerland军刀。简单来讲BusyBox就就如是个大工具箱,它集成压缩了 Linux 的众多工具和下令。
幸好因为大家的开荒板要索要有对应 ARM 架构的调控台,也要有调控台的吩咐(根文件系统必备文件夹:/bin , /etc, /lib/ , /dev),因而我们需求 busybox 制作开垦板的上命令的实行顺序。

 修改权限

将 kernel 一行改为-kernel "$base/uImage" ,回到上层目录后运转

1.5 烧写 uboot 到 SD 卡

友善之臂给我们提供了烧写 uboot 的脚本程序:uboot_tiny4412/sd_fuse/tiny4412/sd_fusing.sh
实践该脚本能够将 uboot 烧写进 SD 卡中

$ sudo ./sd_fusing.sh /dev/sdb
sudo apt-get install uml-utilities //运行tunctl必须的工具
sudo tunctl -u $USER -t tap0
sudo ifconfig tap0 192.168.42.1
  1. # make mini2440_defconfig ARCH=arm #make -j4 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage  

    # make mini2440_defconfig ARCH=arm #make -j4 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

 

  1. 下载 linux kernel for mini2440
sudo chmod -R 777 ./ 

 5 安装交叉编写翻译工具链:

  1. # sudo apt-get install nfs-kernel-server  

    # sudo apt-get install nfs-kernel-server

封存退出后,用source 生效或许撤回重复登陆

4. 尽管你用的操作系统为Ubuntu,首先安装 nfs服务器

./autogen.sh (要求autoconf版本大于2.67)
./configure 
make 
sudo make install 

时时app平台注册网站 8

sudo apt-get install nfs-kernel-server 
  1. 第一下载qemu for mini2440
mkdir ~work/nfsroot 

抑或打包下载

测量检验是或不是符合规律:

(注意 选择打包下载的时候这多少个包的文件名或然一样,注意区分)解压后,配置Makefile文件,展开Makefile文件,CROSS_COMPILE变量赋值,即自身所采纳的陆陆续续编写翻译工具链,举个例子自个儿的是arm-none-linux-gnueabi-,保存退出,输入

sudo vim /etc/bash.bashrc

NFS_TIMEOUT = 2UL 修改为 NFS_TIMEOUT = 三千0UL 不然会导致nfs文件下载退步,如若不应用nfs下载功用,不改也可。

下一场实践:

输入指令

解压后,步入源代码目录中:

时时app平台注册网站 9

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

在qemu的目录中输入

sudo apt-get install zlib1g-dev
sudo apt-get install libsdl-dev

就可以生成nand.bin。运维方法为:

新建nfsroot文件夹

解压根文件系统

./configure --target-list=arm-softmmu --prefix=$HOME/work/mini2440
make -j4
make install 
sudo apt-get install libncurses5-dev
patch configure <../configure.patch    /* 需要修改源码 打补丁 */
make mini2440_defconfig
make menuconfig

只顾:友善之臂提供的qtopia文件系统在挂载时会初阶化网卡,但大家是由nfs挂载的文件系统,那会形成nfs连接中断,挂载退步,所以用nfs挂载在此之前须要把网卡的初叶化过程裁撤,对应的公文是/etc/init.d/if-config,只需把该文件内容剔除就能够(删除文件也能够)。

cd /home/zwx/work/nfsroot/ 

安装库:

下载flashimg源码 

nboot kernel 
setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 
saveenv 
bootm 
qemu-system-arm --version

起步后跻身uboot情势,此时的qemu还不能够展现,输入上面发号施令加载内核和根文件系统。

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

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

 

./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 

1 编写翻译安装QEMU

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

始建虚构网卡并配备ip

tar xvzf rootfs_qtopia_qt4-20140103.tar.gz

安装texinfo 4.13

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处:嵌入式linux:通过qemu模拟mini2440支付条件【时时

关键词: