1 编写翻译安装QEMU

  1. 率先下载qemu for mini2440

 更新版

在上节制作busybox后(位于/work/nfs_root/mini_fs), 然后依据以下6个来构建最小根文件系统:

第③下载qemu for mini2440,直接打包下载 

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

http://www.cnblogs.com/zeedmood/archive/2012/12/08/2808376.html

(1)/dev/console(终端控制台,
提供标准输入、标准输出以及标准错误)

 

只要感觉速度慢,直接打包下载

(防止参考资料链接无效,将具有参考小说都附后了,所以十分短;实操其实占篇幅相比少)
正文分多少个部分:
【硬件条件】
【环境搭建流程】
【难题及化解方案】
【附录 参考资料】

/dev/null  (表示空设备终端, 所有写到这个文件中的数据都会被丢弃掉。)

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

事先提过NFS,(Network File
System,互联网文件系统)实际上是一种Linux/UNIX文件共享协议,是透过将

(2)init进度的顺序(也正是busybox,因为init程序位于busybox中,已经做到)

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

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

NFS服务器的文件系统安装到客户机的文件系统上而能够完结的。

(3)/etc/inittab(用于init进度读取配置,
然后实施inittab里的内定应用程序)

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

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

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

  2. 下载u-boot for mini2440

飞凌在那地点的上课差不多是一笔带过,而且依然讲在开发板上加载ubuntu(它配套的移植手册却觉得我们曾经

(4)应用程序(被inittab配置文件调用的应用程序)

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

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

在ubuntu上加载开发板,两者反差实在不是相似大)。国嵌的培育里边就只有本机加载本机,实在狼狈大用。

(5)C库(glibc,被应用程序调用的C库函数,比如:printf,strcmp,fopen等)

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

抑或打包下载

不能,只好到网上协调学习了。

1.创立终端(/dev/console和/dev/null)

sudo vim /etc/bash.bashrc

网上各类做法扑朔迷离,一般的话有诸如此类二种艺术:
壹 、通过在主机/虚拟机、开发板上个别摆放服务器、客户端,使用mount命令直接加载·开发板上的已有·的

1.1输入ls /dev/console /dev/null -l
查看pc机上顶峰的配备号:

 添加一行:

(注意
采纳打包下载的时候那么些包的文件名只怕同样,注意区分)解压后,配置Makefile文件,打开Makefile文件,CROSS_COMPILE变量赋值,即自身所选用的接力编写翻译工具链,比如自个儿的是arm-none-linux-gnueabi-,保存退出,输入

文件系统;
② 、只在主机/虚拟机上安装nfs服务器,在开发板的基本帮助nfs的前提下,通过改动运维参数,让开发板挂载

 澳门金沙国际 1

export PATH=$PATH:$HOME/work/mini2440/bin 
  1. # make mini2440_config # make -j4  

    # make mini2440_config # make -j4

·主机/虚拟机上·的文件系统。

搜查缴获:/dev/console主设备号=5,次设备号=1

保留退出后,用source 生效只怕撤除重复登录

稍等两分钟,即在当前目录下生成名为 u-boot.bin
的公文,注意假设想在后来选用u-boot
的nfs下载文件功用,要求修改代码中的一有的,将net/nfs.c文件中的

因为不掌握在开发板上铺排客户端的步子(网上那种做法的没找到提及开发板的操作,多数只表明了主机/虚

     /dev/null 
主设备号=1,次设备号=3

source /etc/bash.bashrc

NFS_TIMEOUT = 2UL 修改为 NFS_TIMEOUT = 两千0UL
不然会促成nfs文件下载战败,要是不利用nfs下载功效,不改也可。

拟机上的环境搭建),所以本人最终是行使了第二种做法。

1.2基于下边得出的装备号,成立console和null字符设备文件

测试是还是不是健康:

  1. 下载 linux kernel for mini2440

【硬件环境】
虚拟机vm8.0.2 build-591240 ,
Ubuntu12.04,
飞凌ok6410开发板,
win7 家庭版。

mkdir dev                
//先在mini_fs目录下创办个dev目录(设备都位于dev目录下)

qemu-system-arm --version

(下载步骤略去)

【环境搭建流程】
一 、外部环境与主机
① 、准备网线
a)连接开发板和主机的网线必须是交叉网线,什么是穿插网线:
    i.一头是:1白橙 2橙 3白绿 4蓝 5白蓝 6绿 7 白棕 8棕 (568B标准)
    ii.一头是:1白绿 2绿 3白橙 4蓝 5白蓝 6橙 7白棕  8棕 (568A标准)
    iii.交叉网线用于同口连接(如两边都以pc,或两边都是hub)
b)要是唯有直连网线能够透过路由器连接

cd dev/

 

进入源码目录

贰 、虚拟机设置双网卡
(图像和文字并茂可参看:)
自身想要同时采取两块网卡,一块连接网络(机器内置),另一块连接开发板。
1)在Ubuntu虚拟机(关机状态,上方VM菜单setting,打开后看左下角有个add)中增加Network
Adapter。最

sudo mknod console c 5 1
   //创设console字符设备,

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

  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

后获取两块网卡,一块采取NAT情势,另一块选用custom情势(连接VMnet0);
2)在Ubuntu虚拟机上方艾德it菜单的Virtual Network
艾德itor中,设置VMnet0为bridged Realtek PCIe FE

sudo mknod null c 1 3    //成立null
字符设备,

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

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

Family Controller网卡(没有就Auto Setting一下,应该其余网卡也能够的);

2.
busybox已搞好,所以init进度的顺序也就搞好了

 

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

 

3.构造/etc/inittab
(执行inittab里的内定应用程序)

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

  1. # sh mini2440/mini2440_start.sh  

    # sh mini2440/mini2440_start.sh

二、Ubuntu12.04
一 、进入虚拟机,依据主机IP修改虚拟机IP
在右上角的网络连接图标,里边有setting恐怕configuration一类的能够点进入设置,上网用的网卡不用管,

mkdir etc    
     //在mini_fs目录下创办个etc目录

sudo apt-get install libncurses5-dev
patch configure <../configure.patch    /* 需要修改源码 打补丁 */
make mini2440_defconfig
make menuconfig

那时应该看到qemu运行后跻身了u-boot界面下,输入指令

但连板子用的网卡IP要设置好,一定要跟主机在同1个网段内(便是IP地址的前多个数字同样,最后2个不一

vi  etc/inittab      
//创建inittab文件

安装库:

  1. # bootm  

    # bootm

样)。
本身的eth0是本机网卡,NAT方式,因而选取DHCP自动分配。
eth1则是后加的网卡,bridged格局,因而要求手动分配ip:192.168.0.10。
除此以外两块网卡均不需接纳漫游形式。
配好之后,就活该能够同时上网和延续开发板了。
附带说说开发板的起步进度:
开发板(ip:192.168.0.232)从Windows(ip:192.168.0.2)获取linux内核,运维完成后,从Ubuntu(ip:

inittab里添加内容:

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

就会晤到linux内核运转的画面,但那时还没有根文件系统,我们稍候介绍选用nfs挂在根文件系统

192.168.0.10)挂载NFS网络文件系统。

console::askfirst:-/bin/sh   
  //action值必须小写  id能够写成/dev/xx或xx

安装texinfo 4.13

制作根文件系统,在虚拟机下Ubuntu建立NFS互联网文件系统。4.
借使你用的操作系统为Ubuntu,首先安装
nfs服务器

2、安装NFS
在主机(笔者是在虚拟机中的Ubuntu)上安装NFS服务软件,因为Ubuntu上暗中同意是绝非设置的。
在极端提醒符后键入以下命令安装NFS服务器
$ sudo apt-get install nfs-kernel-server
瞩目:在某个文书档案中建议还索要采纳apt-get来手动安装NFS的客户端
nfs-common,以及端口映射器portmap,

表示action=
askfirst(每一遍运维/bin/sh进度在此之前等待用户按下enter键),然后内定/bin/sh的极端对应/dev/console字符设备

tar -zxvf texinfo-4.13a.tar.gz
cd texinfo-4.13
./configure
make
sudo make install
  1. # sudo apt-get install nfs-kernel-server  

    # sudo apt-get install nfs-kernel-server

但事实上那是绝非须要的,因为在安装nfs-kernel-server时,apt会自动把它们安装好。
如此那般,宿主机就一定于NFS Server。

4.安装glibc库

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

后来修改/etc/exports文件,添加如下一行

叁 、成立共享目录
譬如大家利用/forlinx/root作为NFS共享目录
$ sudo mkdir forlinx
$ cd  forlinx
$ sudo mkdir root   
$ chmod 777 forlinx  
(更改文件权限,那么些肯定要改,不然很或者前面会出难点)
$ chmod 777 root         
(更改文件权限,那几个肯定要改,不然十分大概前边会出难题)

mkdir lib             
//在mini_fs目录下创建个lib目录 (存放库函数)

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

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

肆 、配置共享目录
修改主机上/etc/exports文件的剧情,在终极添加一行:
/forlinx/root    *(rw,sync,no_root_squash)
注:前边设置uboot运营参数的时候,目录名要和这几个一样。
其中:
/forlinx/root   
表示NFS共享目录,它能够透过NFS挂接作为开发板的根文件系统;
*
表示全数的客户机都能够挂接此目录,当然你也可以钦赐具体的IP,如192.168.x.x;
rw 代表挂接此目录的客户机对该目录有读写的权限;
sync 代表全体数据在呼吁时写入共享,即数据同步写入内部存款和储蓄器和硬盘;
no_root_squash 代表同意挂接此目录的客户机享有该主机的root身份;

cd
/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib     //进入源目录

在安装
岁月比较长(能够先用我提供的安装文件放到buildroot-二零一二.05/dl目录下,那样省去下载时间)

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

5、解压yaffs2文件
计划好文件共享目录后,应将用户基础材质光盘中“linux2.6.28/filesystem/OK6410_yaffs2_v1.0.tgz”压

cp *.so* /work/nfs_root/mini_fs/lib
-d        //复制glibc库到lib目录(*:匹配符,-d:保持链接)

链接: 密码:2dkz

输入指令

缩文件拷贝到那些目录下并解压,作为开发板的文件系统。否则会冒出错误。

5.选拔mkyaffs2image制作文件系统(yaffs1针对小页512B,yaffs2针对大页2KB)

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

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

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

6、启动NFS服务
$ sudo /etc/init.d/nfs-kernel-server start
陈列一些备用命令:
停止NFS服务  $ sudo /etc/init.d/nfs-kernel-server stop
重新启航NFS服务 $ sudo /etc/init.d/nfs-kernel-server restart
反省NFS服务意况 $ sudo /etc/init.d/nfs-kernel-server status

5.1生成mkyaffs2image工具

下载flashimg源码 

启动 nfs服务

 

在/work/system目录中
有三个减去文件yaffs_source_util_larger_small_page_nand.tar.bz2(保存了yaffs1和yaffs2)

 

测试 nfs服务是不是中标运行

三、开发板:
一 、配置目的板IP
宿主机、目的板(或然有虚拟机的正是:虚拟机、本机、目的板多个)的IP一定要在同三个网段内,不然会出

tar –xjf 
yaffs_source_util_larger_small_page_nand.tar.bz2    //解压

解压后,进入flashimg源码目录后

  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

现很多的题材,很多像Root-NFS: Server returned error -5 while mounting
/forlinx/root的标题便是由

解压获得Development_util_ok,里面就有yaffs1和yaffs2,如下图:

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

查阅/mnt/nfs文件是不是于/home/username/nfs 中相同,若一样 ,OK

此引起。
更改目的板IP:进入开发板环境,进入到/etc/init.d/目录下会看到3个rcS文件,IP正是在这一个文件修改的

 澳门金沙国际 2

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

  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\


在里边加上一段:/sbin/ifconfig eth0 192.168.0.232 netmask 255.255.255.0 
broadcast 192.168.0.255 

5.2然后,进入yaffs2/utils,执行make
命令生成mkyaffs2image工具,将它复制到usr/local/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 

在建立多个本子,分别为qemu-ifup, qemu-ifdown

up-
在意网关(那里是不行broadcast)开发板上设置和虚拟机上的同等!
(//也能够命令更改# ifconfig ifconfig eth0 192.168.0.232 netmask
255.255.255.0 )
改完后就重启一下开发板。

cd yaffs2/utils

即可生成nand.bin。运转方法为:

qemu-ifup 脚本

贰 、检查互联网连接情状。看是或不是虚拟机、本机、指标板三者能够两两ping通,即使无法就要重复看看IP设置是

make

qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse 
  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

否正确、网线是还是不是插牢

sudo cp mkyaffs2image
/usr/local/bin

(若出现错误:浮点数例外运转不了qemu,请全屏最大化终端,再次实施,那是由于分辨率难点导致)

qemu-ifdown脚本

叁 、在开发板上设定运转参数
由此u-boot设置运行参数(正是开发板打开后在顶级终端按紧空格进入的方式)
u-boot运维时,输入printenv,彰显了uboot的环境变量。汇合到那么些
printenv:
bootargs=root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200
bootcmd=nand read 0xc0008000 0x100000 0x500000;bootm 0xc0008000
bootdelay=1
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.1.20
serverip=192.168.1.10
gatewayip=192.168.1.1
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial
无限把bootargs一项找地点复制起来,今后仍是能够改回去!
假诺你前边编译内核,只是遵照飞凌暗中同意配置,并从未做任何修改(但要设置使其帮助nfs根文件系统那些,

sudo chmod +x /usr/local/bin/
mkyaffs2image                //添加可进行属性

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

  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根文件系统了

飞凌暗中认可配置文件是辅助那些的,所以能够不做此外改动),即没有改动有关运转代码(为了让其支持挂载

5.3
mkyaffs2image制作yaffs2文件系统

nboot kernel 
setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 
saveenv 
bootm 

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

nfs根文件系统而修改的代码),那么要用
setenv bootargs “root=dev/nfs nfsroot=192.168.0.10:/forlinx/root rw
noinitrd init=/linuxrc

cd /work/nfs_root              
//进入文件系统目录上一层

 运营后,输入暗中认可密码root,即可成功登录,此时还尚无配备互联网。ifconfig发现并未网卡。

在qemu的目录中输入

ip=192.168.0.232:192.168.0.10:192.168.0.255:255.255.255.0
console=ttySAC0,115200″
其中:
192.168.0.232为开发板的IP地址
192.168.0.10为宿主机(有虚拟机的正是虚拟机了)IP地址
192.168.0.255网关 开发板上安装和虚拟机上的相同!
255.255.255.0 掩码
/forlinx/root为共享目录
console=ttySAC0,115200为控制台参数。
!最终记得记得保存参数!:saveenv

mkyaffs2image  mini_fs 
mini_fs.yaffs2     
//将mini_fs文件系统制作成mini_fs.yaffs2印象文件系统

 4 NFS挂在根文件系统

  1. # ./mini2440/mini2440_start.sh  

    # ./mini2440/mini2440_start.sh

肆 、重启开发板,借使顺遂的话那时就足以连上了。在Ubuntu的文件系统中改变文件都会显示到开发板上!

6.将创设好的mini_fs.yaffs2通过DNW下载到板子上,举办考试

 首先安装nfs服务

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

【难点及缓解方案】
十分的小概挂载难点一:
dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
VFS: Mounted root (nfs filesystem) on device 0:14.
devtmpfs: error mounting -2
Freeing init memory: 172K
Failed to execute /linuxrc.  Attempting defaults…
Kernel panic – not syncing: No init found.  Try passing init= option to
kernel.
See Linux Documentation/init.txt for guidance.
[<c0039ca8>] (unwind_backtrace+0x0/0xfc) from
[<c049fd9c>] (dump_stack+0x18/0x1c
)
[<c049fd9c>] (dump_stack+0x18/0x1c) from [<c049fe00>]
(panic+0x60/0x1ac)
[<c049fe00>] (panic+0x60/0x1ac) from [<c00335dc>]
(init_post+0xc8/0x140)
[<c00335dc>] (init_post+0xc8/0x140) from [<c00084c8>]
(kernel_init+0xf4/0x130)
[<c00084c8>] (kernel_init+0xf4/0x130) from [<c0034a34>]
(kernel_thread_exit+0x0/
0x8)
消除:没有在钦赐目录下给个文件系统,应将用户基础资料光盘

串口输出如下图,发现不能打开控制台:

sudo apt-get install nfs-kernel-server 

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

中“linux2.6.28/filesystem/OK6410_yaffs2_v1.0.tgz”压缩文件拷贝到这一个目录下并解压

澳门金沙国际 3

新建nfsroot文件夹

再输入指令

胸中无数挂载难点二:
IP-Config: Cannot add default route (-101).
Looking up port of RPC 100003/2 on 192.168.0.7
eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
Looking up port of RPC 100005/1 on 192.168.0.7
VFS: Mounted root (nfs filesystem) on device 0:11.
Freeing init memory: 128K
FAT: utf8 is not a recommended IO charset for FAT filesystems,
filesystem will b
e case sensitive!
[14/Dec/2008:05:19:25 +0000] boa: server version Boa/0.94.13
[14/Dec/2008:05:19:25 +0000] boa: server built Mar 26 2009 at
15:28:42.
[14/Dec/2008:05:19:25 +0000] boa: starting server pid=508, port 80
Try to bring eth0 interface up……nfs: server 192.168.1.112 not
responding, stil
l trying
nfs: server 192.168.1.112 not responding, still trying
解决:
PC机,目的板的linux_cmd_line和虚拟机内的linux网关全体设为一致,小编的就全体装置为192.168.1.1

发现是在开立console和null字符设备文件那里出了难题,因为没有加权限方式,所以基本不能找到console。

mkdir ~work/nfsroot 

bootm

 

删去console和null设备,重新创制它们:

下一场配置nfs目录 

OK !
kernel就起来加载了,文件系统挂在功成名就后,就能够展开各类虚假工作了,上边是本身挂载的由友善之臂提供的mini2440的qtopia文件系统的截图:

没辙挂载难点三:
dm9000 dm9000.0: eth0: link down
IP-Config: Cannot add default route (-101).
dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
dm9000 dm9000.0: eth0: link down
dm9000 dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
VFS: Mounted root (nfs filesystem) on device 0:14.
devtmpfs: mounted
Freeing init memory: 172K
/etc/rc.d/init.d/netd: line 16: /usr/sbin/inetd: not found
mkdir: cannot create directory ‘/mnt/disk’: File exists
Try to bring eth0 interface up……nfs: server 192.168.0.10 not
responding, still trying
斩草除根办法:
相互之间ping能ping通,就是到了那一步网无法一连上,服务器并未通。从互连网那么些样子找难点吧
1、
在etc/下边有3个eth0-setting的文本,把它个中的安装改了,使运营ip固化
IP=192.168.0.232
Mask=255.255.255.0
Gateway=192.168.0.201
DNS=8.8.8.8
澳门金沙国际 ,MAC=08:90:90:90:90:90

sudo mknod –m 660  console c 5 1   
//创制console字符设备,设置权限用户和组都能读写

sudo vi /etc/exports 

澳门金沙国际 4

2、
选拔Linux3.0的情侣们能够这样,修改·NFS互连网文件系统·(是ubuntu里边那二个!)里面包车型大巴

sudo mknod –m 660 null c 1 3   
//创制null 字符设备, 设置权限用户和组都能读写

添加一行

澳门金沙国际 5

/etc/init.d/ifconfig-eth0文件,修改如下
             #if grep -q “^/dev/root / nfs ” /etc/mtab ; then
              if grep -q “root=/dev/nfs” /proc/cmdline;then  
就算把 if grep -q “^/dev/root / nfs ” /etc/mtab ; then
注释掉,然后选择
if grep -q “root=/dev/nfs” /proc/cmdline;then 
判断,即可,大家多年来陈设发表的新本子现已缓解了这

再一次制作yaffs2并烧写就能得逞了,
如下图:

/home/zwx/work/nfsroot *(rw,sync,no_root_squash,no_subtree_check

和睦相处之臂提供的qtopia文件系统在挂载时会开端化网卡,但我们是由nfs挂载的文件系统,那会造成nfs连接中断,挂载失利,所以用nfs挂载在此以前须要把网卡的初叶化进程撤销,对应的文书是/etc/init.d/if-config,只需把该文件内容清空即可。Enjoy
yourself!

个难题,着急的意中人们方可自身手动修改一下。

 澳门金沙国际 6

然后实施:

脚下,小编打算让GPE环境在那仿真环境中跑起来,如今还尚无大功告成,正在品尝中。

3、
告知您二个简练暴力方法:把·pc机共享目录·(是ubuntu里边那二个!)下的、etc/init.d/ifconfig-eth0

凑巧对应inittab配置文件中内容:console::
askfirst:-/bin/sh

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

澳门金沙国际 7

中的ifconfig eth0 down 改成ifconfig eth0 up 即可
不过那不是素有化解格局,平常的是不会进行那一个的

askfirst:
运营/bin/sh进程之前等待用户按下enter键    

跻身NFS共享目录:

,你最好依照那边的规则找到原因
            
4、
看起来像是·文件系统·(是ubuntu里边那多少个!)在早先化进度中重新配置了网卡的IP地址,造成原本的NFS

最不难易行的根文件系统就马到成功了,接下去发轫周全根文件系统。

cd /home/zwx/work/nfsroot/ 

的IP设置被遮住了。那几个动作默许是在文件系统的/etc/init.d/ifconfig-eth0脚本里达成的。
自个儿正要在/etc/init.d/rcS 里面把 /sbin/ifconfig lo 127.0.0.1 和
/etc/init.d/ifconfig-eth0 delete了

7
到家类别——添加ps命令

 修改权限

后 nfs运维成功了

它是经过proc虚拟文件系统挂接到proc目录,然后当前经过的音信会以文件的款式保留到proc目录,就足以用ps命令来查阅内部存款和储蓄器中当前进程的情景了

sudo chmod -R 777 ./ 

问题四、
出人意外间主机、虚拟机、板子无论ping哪个地方都这么了
PING 192.168.0.110 (192.168.0.110) 56(84) bytes of data.
From 192.168.0.10 icmp_seq=1 Destination Host Unreachable

mkdir proc                   
//创建proc目录

解压根文件系统

缓解: 重启就即可

mount –t proc none /proc      //挂载proc,
 none:表示运维mount命令时展现proc相关的出口

tar xvzf rootfs_qtopia_qt4-20140103.tar.gz

【附录 参考资料】
避防链接无效,将上边网文转发附后

虚拟机中Ubuntu成功挂载NFS并为arm11烧录YAFFS2文件系统

接下去就能够行使ps命令了,如下图:

留意:友善之臂提供的qtopia文件系统在挂载时会初叶化网卡,但我们是由nfs挂载的文件系统,那会造成nfs连接中断,挂载退步,所以用nfs挂载此前必要把网卡的初始化进程打消,对应的文书是/etc/init.d/if-config,只需把该文件内容删除即可(删除文件也得以)。

虚构机下在2440开发板挂载nfs文件系统

 澳门金沙国际 8

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

[ubuntu]怎么着在VM虚拟Ubuntu中而且利用双网卡

此处的PID进度号都是文件的样式存在了/proc目录里,例如cd
proc/1 ,进入init进度(init进度是基础第一个挂载的历程),如下图

创制虚拟网卡并布置ip

实战:搭建OK6410NFS互联网根文件系统–完毕 阿释密达沙加

 澳门金沙国际 9

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

搭建NFS网络根文件系统——内核和根文件系统制作 阿释密达沙加

个中fd文件正是保存init进度的1个公文讲述符–标准输入(0)、标准输出(1)以及规范错误(2)

带网络方式运营qemu

主机、虚拟机、开发板互联网环境搭建小结备忘
 

【S3C6410学习心得之二】OK6410开发板开发条件搭建-NFS文件运转和利用dnw2烧写镜像

经过ls –l fd  
能够观看那三个文本讲述符都指向/dev/console控制台,如下图:

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

这几个只是Ubuntu的操作:

在虚拟机下Ubuntu建立NFS网络文件系统

澳门金沙国际 10

起步后跻身uboot形式,此时的qemu还无法展现,输入上边发号施令加载内核和根文件系统。

虚拟机中Ubuntu成功挂载NFS并为arm11烧录YAFFS2文件系统
为了在虚拟机Ubuntu中挂载nfs成功,时期遭遇了许多的难点。前天挂载成功后,才觉得那个难题中有好多都

7.1
inittab配置文件中扩展内容,防止手动mount挂载proc

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

是足以幸免的。但只怕从另二个角度来讲,也是在磨砺自个儿的力量。

方法1:

接下来就足以运行了

先说一说首要的步调,然后小编就说说要挂载成功的多少个关键地点吧,你挂载不成事,很有大概正是这些至关心注重要

在inittab里扩展内容:

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

地方并未办好。

::sysinit:/etc/init.d/rcS  
       //将/etc/init.d/rcS脚本设置成系统的初始化文件

arm-linux-gcc-4.4.3.tar.gz 

先是第三步正是要为开发板烧写uboot和kernel。

然后mkdir -p etc/init.d 和vi
etc/init.d/rcS, 添加一行命令(也足以添加任何命令)

安装库:

1.先将TF存储卡格式化为FAT32格式。将运营代码固化到TF闪存卡中。-
 

mount -t proc none /proc   
  //挂载proc(前提根文件系统有proc目录)

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

  或然出现的题材:1 volume erro之类的。

并丰富可实施权限

 

   解决格局:重新插拔CF内存卡,某个意况下恐怕要换一张PCIe闪存卡试一试。

sudo chmod +x
etc/init.d/rcS               //使脚本rcS可以执行命令

 好了 到此就能够开心的拓展付出了。

2.下载Uboot到nandflash中并安装Uboot工作参数。注意的正是串口和Porter率要设置对。

方法2:

 

兴许出现的难题:1.ARubiconNING: OEMMultiBINNotify: Invalid BIN region
descriptor(s).
                          Don’t support raw image

除却采用在rcS中添加mount -t proc non
/proc命令

化解方法:那种情况请留意选那从USB
Port–>UBOOT–>UBOOT”,注意是选Uboot,而不是选transmit。
                         2.无法将uboot写进nandflash

也得以用mount
-a  作用是加载文件/etc/fstab中配备的全体设施

焚林而猎办法:请直接按着ENTE奥迪Q7键,直到OK出现。(那貌似是nand
erase没有到头,一定要等到OK出现。假若不

它会借助一个配备文件/etc/fstab

出现,表明没有擦除干净)

它的格式如下
(参考linux应用开发手册第③68页)

3.烧写Kernel。

澳门金沙国际 11

 可能出现的标题一般同地方的2,注意本身说的几点即可。

vi etc/init.d/rcS, 添加一行命令

4.安装根文件系统,也是格外主要的一步。www.linuxidc.com只要您要安装yaffs2文件,那其中又会涉及要挂

mount -a   
  //加载文件/etc/fstab中配置的持有装备

在NFS。

下一场创造fstab文件vi  etc
/fstab,添加内容:

假如大家要安装的是yaffs2文件。

#device   mount-point  type    
options   dump   fsck order

第1第①步:安装NFS

proc       /proc       proc    
defaults   0       0

在主机(作者是在虚拟机中的Ubuntu)上设置NFS服务软件,因为Debian/Ubuntu上私下认可是没有安装的。

能够一向在板子里操作,然后重启就能动用ps命令了。

一 、安装端口映射器portmap(可选)
$ sudo apt-get install portmap

经过cat proc/mounts
命令就足以查阅当前挂载proc虚拟文件系统:

二 、在巅峰提醒符后键入以下命令安装NFS服务器
$ sudo apt-get install nfs-kernel-server

 澳门金沙国际 12

3、安装NFS客户端(可选)
$ sudo apt-get install nfs-common

8
完美类别——使用mdev自动在/dev下创办设备节点

小心:nfs-
kernel-server和nfs-common都正视于portmap。其余,www.linuxidc.com在部分文书档案中建议还需

今日dev下唯有3个字符设备,假如大度充实设备的话,手动创设太难为,能够选取udev。

要接纳apt-get来手动安装NFS的客户端
nfs-common,以及端口映射器portmap,但其实这是没有须求的,因为

mdev 是udev的3个迷你版,
它根本的意义是管理/dev目录底下的装备节点。它同时也是用来接班devfs及热插拔的机能

在设置nfs-kernel-server时,apt会自行把它们安装好。

mdev使用验证在busybox-1.7.0/docs/medev.txt中以及linux应用开发手册第叁69页,如下图:

诸如此类,宿主机就相当于NFS
Server。同样地,指标种类作为NFS的客户端,要求安装NFS客户端程序。借使是

 澳门金沙国际 13

Debian/Ubuntu系统,则必要安装nfs- common(第一步)。

从地点得出mdev都亟待内核sysfs、tmpfs、devpts的扶助,

第二步:配置NFS

sysfs是治本虚拟系统,为udev提供设备进口和uevent通道,sysfs类型,要求挂载到/sys目录下

1、配置portmap
方法1:编辑/etc/default/portmap,将”-i 127.0.0.1″去掉;
艺术2:$ sudo dpkg-reconfigure
portmap,现身“正在设定portmap”软件包设置界面,对Should portmap

tmpfs是内部存款和储蓄器文件系统,tmpfs类型,须求挂载到/dev目录下

be bound to the loopback address?选择“否(No)”。-
 

devpts是内核虚拟系统,
管理员通过文件系统和根本进行关联(读\写)的一种渠道,
devpts类型,须要挂载到/dev/pts目录下

其三步:创制共享目录

8.1
创建sysfs、tmpfs、devpts要挂载的目录

例如我们使用/home/localhost/arm6410/root作为NFS共享目

mkdir   /sys                    
//成立sysfs要挂载的目录

$ sudo mkdir arm6410

mkdir   /dev/pts                
//创设pevptes要挂载的目录

$ cd  arm6410

8.2  vi etc/init.d/rcS,
追加热拔插命令和布置/dev设备,添加内容如下:

$ sudo mkdir root   

echo /sbin/mdev >
/proc/sys/kernel/hotplug  

$ chmod 777 arm6410  
(更改文件权限,这一个肯定要改,不然很可能前面会出难点)

//自动创制/proc/sys/kernel/hotplug,
/sbin/mdev并针对hotplug,使mdev援助热插拔

$ chmod 777 root         
(更改文件权限,这么些一定要改,不然很只怕前面会出标题)

mdev -s                     
//将/dev目录下的配备文件创立成节点

第陆步:配置共享目录及yaffs2文件

8.3  vi  etc
/fstab,添加sysfs、tmpfs、pevpts挂载内容:

修改主机上/etc/exports文件的始末,添加一行:/home/localhost/arm6410/root   
*

sysfs     /sys      sysfs      defaults  
0       0

(rw,sync,no_root_squash)
  $ sudo vim /home/localhost/arm6410/root   
*(rw,sync,no_root_squash)   

tmpfs     /dev      tmpfs      defaults  
0       0

注:前边设置uboot运转参数的时候,目录名要和这一个一样。

devpts    /dev/pts   devpts    
defaults   0       0

其中:
/home/localhost/arm6410/root   
表示NFS共享目录,它能够因此NFS挂接作为开发板的根文件系统;
*
表示拥有的客户机都能够挂接此目录,当然你也得以钦赐具体的IP,如192.168.x.x;
rw 代表挂接此目录的客户机对该目录有读写的权能;
sync 代表全数数据在央求时写入共享,即数据同步写入内部存款和储蓄器和硬盘;
no_root_squash 表示同意挂接此目录的客户机享有该主机的root身份;

然后烧录至板子中查看效果,如下图,dev目录下自行创立了重重节点,然后/proc/mounts里也有挂载记录

布置好文件共享目录后,将yaffs2文件放置在共享目录下,然后解压即可。

澳门金沙国际 14

第五步:启动NFS服务

9
mkfs.jffs2制作jffs2文件系统(参考linux应用手册375页)

在做到前边的配备后,首先要求运营portmap和NFS那四个劳务,并且
portmap服务一定要先于NFS服务运转。
$ sudo /etc/init.d/portmap start
$ sudo /etc/init.d/nfs-kernel-server start

9.1 安装zlib(压缩动态库)

其他大概要用到了:

cd /work/GUI/xwindow/X/deps

停止NFS服务
在悬停NFS服务的时候,须要先甘休NFS服务再结束portmap服务,如若系统中还有别的服务需求采纳portmap服

tar -xzf zlib-1.2.3.tar.gz

务,则能够不鸣金收兵 portmap服务。
$ sudo /etc/init.d/nfs-kernel-server stop
$ sudo /etc/init.d/portmap stop

cd zlib-1.2.3

双重起动portmap和NFS服务
$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart

./configure –shared –prefix=/usr 
//配置安装动态库(shared)到钦定(prefix)的/usr目录下

反省portmap和NFS服务场合
$ sudo /etc/init.d/portmap status

make            //编译

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

sudo make install         //安装

第④步:配置目的板和主机(作者的是虚拟机中Ubuntu)IP

9.2 然后编写翻译mkfs.jffs2工具

那多个IP一定要在同2个网段内,否则会冒出过多的难题,很多像Root-NFS:
Server returned error -5

cd /work/tools

while mounting /forlinx/root的难点就是通过引起。

tar -xjf
mtd-utils-05.07.23.tar.bz2

是更改目的板IP,那几个前提是您能够进入开发板环境,一般也便是您曾经设置了看似cramfs文件系统,不过你

cd mtd-utils-05.07.23/util

想要用yaffs2文件系统的。

make

进去开发板环境,进入到/etc/init.d/目录下会看到一个rcS文件,IP就是在那一个文件修改的。
# vim /etc/init.d/rcS

sudo make install

加上一段:

9.3创设jffs2文件系统

/sbin/ifconfig eth0 192.168.1.10 netmask 255.255.255.0  broadcast
192.168.1.1  up-
 

cd /work/nfs_root                  
//准备制作子目录mini_fs

:wq 保存退出

mkfs.jffs2 -n  -s 2048  -e 128KiB  -d
mini_fs  -o mini_fs.jffs2

(//也能够命令更改# ifconfig eth0 202.118.212.168 netmask 255.255.255.0

改完后就重启一下开发板。

/*-n:表示每块不添加祛除标记,-s:size一页大小为2k,-e:一块大小为128kb

第9步:在开发板上设定运转参数
由此u-boot设置运行参数
u-boot运维时,在命令提醒符下设置运行参数如下:
setenv bootargs “root=/dev/nfs
nfsroot=192.168.1.20:/home/localhost/arm6410/root/

-d:制作的dir目录,-o:输出文件       
*/

ip=192.168.1.10:192.168.1.20:192.168.1.1:255.255.255.0:arm6410:eth0:off
console=ttySAC0,115200″
其中:

9.4
烧入板子中,并安装bootargs参数为yaffs运维

192.168.1.20为主机IP地址

在uboot中输入:

/home/localhost/arm6410/root为共享目录

set bootargs noinitrd
 root=/dev/mtdblock3 rootfstype=jffs2  init=/linuxrc
console=ttySAC0

192.168.1.10为开发板的IP地址

// rootfstype:将root file system
type(根文件系统类型)强制设为jffs2

console=ttySAC0,115200为控制台参数。

下一场save保存后再一次起动水源:

保存参数:saveenv

 澳门金沙国际 15

第八部:烧写yaffs2文件

 

重启后在uboot命令中nand erase x  x 也即要烧写的区域

10
使用nfs挂载虚拟机目录

接下来重启在开发板环境中,在终极输入writeyaffs即可(分化的开发板命令差异,请留意)

10.1规定板子是不是与虚拟飞机地点于同一网段

到此基本到位,yaffs2文件系统已经烧写好了。

ifconfig eth0 up                
//开启网关0,连接网线到路由器

最终一步:设置运行参数

ifconfig eth0 192.168.0.107      
//设置ip

重启开发板,将yaffs2文件配置为根文件系统。

ping 192.168.0.106            
//与虚拟机ping一下,是不是已通

在uboot命令行中输入以下参数:

10.2分明虚拟机是或不是能被挂载目录

setenv bootargs “root=/dev/mtdblock2 rootfstype=yaffs2
console=ttySAC0,115200”

率先要使虚拟机能够被人家挂载目录,在/etc/exports中添加供给被挂载的目录即可

saveenv

例如:

经过整个挂载NFS及配置yaffs2文件成功!

sudo vi /etc/exports            

 

累加以下一段内容:

 

/work/nfs_root/mini_fs  
*(rw,sync,no_root_squash)
//添加挂载目录:/work/nfs_root/mini_fs

虚构机下在2440开发板挂载nfs文件系统忙活了一夜晚,终于在虚拟机下成功挂载了nfs文件系统

 

硬件平台:vm ubuntu10.10 micro2440

sudo  /etc/init.d/nfs-kernel-sever 
restart        //然后重启nfs服务

上边是自个儿重点参照的稿子链接。

10.3
然后将板子内核来挂载虚拟机目录

 

mkdir  /mnt                 
//成立要挂载的目录

一 、在虚拟机下树立两块网卡,一块为nat格局,一块为bridge方式。个中,net方式用来延续上网,bridge为

mount
-t nfs -o nolock,vers=2 192.168.0.106:/work/nfs_root/mini_fs    
/mnt

挂载虚拟机。

          
//将远端虚拟机/work/nfs_root/mini_fs目录挂载到开发板/mnt目录里

//命令详细参数参考:

2、在ubuntu下安装nfs系统。

正如图,然后板子内核的/mnt目录便是虚拟机/work/nfs_root/mini_fs目录了

三 、开发板命令root:# mount -o nolock -t nfs
192.168.100.21:/home/cnh01994/nfsroot /mnt/nfs则工作

 澳门金沙国际 16

健康。 直接mount不可能挂载。

 

4、

11
使用nfs 作为根文件系统运营

5、
本人的主机配置情形。

经过设置u-boot的bootargs来改变开机自动进入nfs文件系统,不供给mount指令

6、
其一eth1的布局情状。eth1为bridge格局。

步骤(参考):

自家在此处直接没有主意安顿eth1。

进入uboot,输入:

新兴简直本身直接加了三个Auto eth1。令ip:192.168.1.3
netmask255.255.255.0 gateway192.168.1.255那

set  bootargs  noinitrd  root=/dev/nfs
 nfsroot=192.168.0.106:/work/nfs_root/mini_fs
 ip=192.168.0.107:192.168.0.106:192.168.0.1:255.255.255.0::eth0:off 
 init=/linuxrc console=ttySAC0            

是是参照笔者开发板上的来设置的。

 //设置npptargs,添加nfsroot(绿蓝:远端服务器参数,栗褐:开发板客户端参数)

就那一个吗,详细进度本身百度呢。呵呵,中间小动静不断,万幸,2个个都化解了。baidu+google,万能。

save                                           
//保存参数

7、

接下来重启开发板进入基础,就运营nfs文件系统了

Build Options->

 澳门金沙国际 17

Build BusyBox as a static binary (no shared libs)

 

Build with Large File Support (for accessing file>2GB)

设若采取 Build BusyBox as a static binary (no shared libs)
格局举办编写翻译时,所需的库已经与程序静

态地链接在同步,那个程序不必要额外的库就能够独立运转,然则自身编辑的顺序在文件系统上运行必须使用

静态编写翻译,不然会报诸如:bin/sh: hello :not found的一无可取。

静态编写翻译如:

arm-linux-gcc –static hello.c –o hello

那点也要留心。

 

 

[ubuntu]何以在VM虚拟Ubuntu中并且采取双网卡
因为开发必要,笔者的PC要同时接纳两块网卡,一块连接网络(机器内置),另一块连接开发板(PCI8139)


那便是说,同时运维的虚拟Linux是还是不是也能够设置两块网卡,一块上网,一块连接开发板呢?
答案是毫无疑问的!上面来看望具体步骤:
1)在虚拟机中添加两块网卡,一块采纳NAT形式,另一块选用bridged格局(图1);

 

2)Virtual Netword Editor中设置VMnet0为8139网卡(图2);

 

3)进入虚拟机,进行互连网布局(图3):

 

自个儿的eth0是本机网卡,NAT形式,因而选择DHCP自动分配。
eth1则是后加的8139,bridged情势,因而须要手动分配ip:192.168.0.3。
除此以外两块网卡均不需使用漫游格局。
配好之后,就相应能够同时上网和一而再开发板了。

最终说说开发板的运转进程:
开发板(ip:192.168.0.2)从Windows(ip:192.168.0.1)获取linux内核,运维实现后,从Ubuntu(ip:

192.168.0.3)挂载NFS网络文件系统。
不行便于,做开发的爱侣能够试一下。

%91%E7%BB%9C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F&pn=10&tn=sogouie_1_dg&ie=utf-8&rsv_page=1

 

实战:搭建OK6410NFS网络根文件系统–实现 阿释密达沙加
 

根文件系统根据前边《搭建NFS互连网根文件系统——内核和根文件系统制》中上传的文书档案制作的即可。作者正是

遵照上述手续制作的根文件系统。只要一步一步依照上述手续,就没难点。

假使依据前边所说的法子移植的支撑互联网的uboot已经烧写进ok6410(怎么烧写uboot,ok6410手册很了解)

那就是说运转开发板 弹指间按住空格键

截图01.png(44.49 K)

2012-5-22 16:53:52

输入printenv

展示了uboot的环境变量。会看到那个
bootargs=root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200
bootcmd=nand read 0xc0008000 0x100000 0x500000;bootm 0xc0008000

/*
printenv
bootargs=root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200
bootcmd=nand read 0xc0008000 0x100000 0x500000;bootm 0xc0008000
bootdelay=1
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.1.20
serverip=192.168.1.10
gatewayip=192.168.1.1
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial
*/

比方您面前编写翻译内核,只是遵照飞凌私下认可配置,并不曾做别的改动(但要设置使其帮助nfs根文件系统那一个,

飞凌暗许配置文件是协理那几个的,所以可以不做此外改动),即没有改动有关运转代码(为了让其支持挂载

nfs根文件系统而修改的代码),那么要用
setenv  bootargs “root=dev/nfs nfsroot=192.168.5.100:/home/rootfs

ip=192.168.5.120:192.168.5.100:192.168.5.1:255.255.255.0:witech.com.cneth0:off

console=ttySAC0,115200″

/*
setenv bootargs “root=dev/nfs nfsroot=192.168.0.10:/forlinx/root rw
noinitrd init=/linuxrc

ip=192.168.0.232:192.168.0.10:192.168.0.255:255.255.255.0
console=ttySAC0,115200″
*/

证实:root=dev/nfs nfsroot=192.168.5.100:/home/rootfs
:nfs根文件系统所在的目录,必须和前面配置

的nfs环境时目录一致
          192.168.5.100虚拟机ip
           192.168.5.120是付出板uboot设置的ip
           192.168.5.1 网关 虚拟机上安装和开发办公室上的一致
          255.255.255.0 子网掩码
          请根据本身的事态 填写。

最后 :saveenv

假设无法挂载nfs系统(每安装三个服务,必须重启这一个服务)

(1)、NFS服务配置是或不是科学  #vi /etc/exports

(2)、防火墙是不是关闭(3)、IP地址是还是不是设置科学(4)、开发板网线直接连接沟通机吧!(5)、····

·········

 

搭建NFS网络根文件系统——内核和根文件系统制作 阿释密达沙加

做开发的都晓得NFS互联网根文件系统的方便性,今后就享受部分经验。作者的是OK6410开发板,唉。。。依旧对

飞凌卓殊失望。官方提供的文书档案一笔带过,跟没说一样。
率先依据飞凌官方的文书档案,配置基本(便是生成.config文件,飞凌文书档案就提供了那多少个职能),其实能够暂

时遵从合法给的默许配置,随着学习驱动的浓厚,能够再把相应自带的驱动去掉,再重新编写翻译。比如说去掉

LED协助,键盘的扶助,不然你在大团结编排LED驱动等驱动时会发生一些莫名奇怪的荒唐。不过作为第2次搭建

环境来说,大家的严重性目标是驾轻就熟流程!!!
这里面要小心的便是要把uboot里面包车型大巴uImage制作工具拷贝到虚拟机的/bin目录中。(稍后会付给具体的参阅

文档)
对于营造根文件系统,老师用的busybox版本较高,笔者用的是busybox1.13.3。老师用的动态编译busybox,作者

用的是busybox静态编写翻译。分歧是动态编写翻译时,在炮制根文件系统时,要手动拷贝相应的库文件到本人创制的

根文件系统的对应目录,静态编译不须求。动态编译的根文件系统,不须要交叉编写翻译时
选拔 -static选项。

而静态编写翻译的根文件系统,供给交叉编写翻译程序时,必须
-static,即静态编写翻译,不然在开发板上运转交叉编写翻译

的先后时,会现出”not
found”等这么的不当。而且静态编写翻译的主次,比较大,因为含有了运营时所须要的库

。可是静态编写翻译根文件系统简单!!!初学者,能够相互都尝尝一下。

特附上国嵌的内核和根文件系统制作详细流程以及所急需动用的文件。
busybox 1.13.3

亟待利用的布局文件etc/下的公文
etc.tar.gz (480 Bytes, 下载次数:10)

编写翻译好的根文件系统
 

 

主机、虚拟机、开发板互联网环境搭建小结备忘首先得注解,本小说属转发,个人认为写得灰常好,图像和文字并茂,

详细,深入,不仅让本来网络没学好的自己对网络这一块有了更深远的知晓,而且缓解了本人纠结了几天的

发板 虚拟机  win7 之间的通信难题取得了消除!

 

不久前求学QTE,搞了两夜晚总算搭建好了QT编写翻译环境(QTX86条件,QTEX86环境,QTEArm环境),不过照旧不知

道怎么让QT程序在开发板上跑起来,貌似有中方可选方案:

1.静态编写翻译QT库和QT程序,使QT程序能独立宣布,不借助于外部库,看来是相当粗略,但搞了一夜间没搞精晓,于

是一时放任了那种方案,等之后纯熟了在回头钻探

2.移植QT库到开发板,又有三种采用,重新烧写文件系统或选用NFS网络文件系统

  a)重新烧写文件系统,不懂怎么投入QT库,一时不选

 
b)使用NFS文件系统,也不懂,貌似使用NFS开发调节和测试是时髦,不懂也得学一下,使用NFS文件系统率先的保

证开发板和主机/虚拟机处于相同网络下,能互访互通,于是有了背后的互联网搭建进度

 

目的:

1.开发板, 主机, 虚拟机能互访互通

2.主机,虚拟机能同时上网

 

自己使用支付环境

长机:x86-win7 带双网卡

虚拟机:wmware7.0 + ubuntu9.10

开发板:arm11(Ok6410)

 

互联网布局:

1.互连网模型

 

 

2.开发板IP配置如下,192.168.0.232烧写系统时设置的,具体某些无所谓,只要配置主机IP和虚拟机IP在同

一子网内即可(这里开发板、主机、虚拟机通过网卡2创设了子网)

  a)连接开发板和主机的网线必须是交叉网线,什么是交叉网线:

    i.一头是:1白橙 2橙 3白绿 4蓝 5白蓝 6绿 7 白棕 8棕 (568B标准)

    ii.一头是:1白绿 2绿 3白橙 4蓝 5白蓝 6橙 7白棕  8棕 (568A标准)

    iii.交叉网线用于同口连接(如两边都是pc,或两边都以hub)

  b)假若惟有直连网线能够通过路由器连接

 

3.       win7主机配置

 

 

手动配置win7主机网卡2对应Ip地址,设置“本地连接”属性:

 

4.虚拟机wmware设置:

 

选择WMNet0和WMNet1各自映射到实际的网卡1和玩卡2,那里net0映射到的时真实的有线网卡,net1映射到内网

网卡

在wmware的“View”—>“settings”下设置

 

设置Ubuntu的网络:—Edit Connections…

 

 

设置Ubuntu ip地址

 

地点这一个设置,Ubuntu就足以做外开发环境了,能够ping通主机和开发板了

 

 

5.      
今后Ubuntu只连接了局域网还不能够上网,供给win7下共享网卡1的外表互连网

 

 

尔后重启下ubuntu就能够上网了

 

By sheny  2010.12.11

 

【S3C6410学习心得之二】OK6410开发板开发条件搭建-NFS文件运维和动用dnw2烧写镜像

近年应用全部业余时间学习,确实是考验意志的经过,呵呵。
系统:Ubuntu10.04
开发板:飞凌OK6410
软件下载地址:www.witech.com.cn

  1. 预备 NFS 文件系统目录
    启航 nfs 服务在此以前,必须在 Linux 虚拟机上准备好 NFS 共享目录。
    譬如说我们选取 ubuntu 的“/forlinx/root”作为 NFS
    共享目录,将用户基础资料光盘中
    “linux2.6.28/filesystem/OK6410_yaffs2_v1.0.tgz”压缩文件拷贝到那么些目录下,
    然解压缩,获得根文件系统所急需目录。
    在编造机上打开三个终极,输入以下命令:
    mkdir /forlinx/root
    将 OK6410_yaffs2_v1.0.tgz 文书拷贝到该目录下,解压:
    tar –zxf OK6410_yaffs2_v1.0.tgz
  2. 安装主机 IP
    此间大家将 Linux 虚拟机的 IP 设置为 192.168.0.231
  3. 配置 NFS 服务
    在虚拟机上新建叁个极端,依次输入以下命令:
    sudo apt-get install portmap
    sudo apt-get install nfs-kernel-server
    sudo gedit /etc/exports
    在弹出的文本编辑器中编辑 exports 文件,在终极一行添加:
    /forlinx *(rw,sync,no_root_squash)
  4. 启动 NFS 服务
    sudo /etc/init.d/portmap restart
    sudo /etc/init.d/nfs-kernel-server restart
  5. 在开发板上安装并保存运营参数
    在 u-boot 命令行下输入以下命令设置 u-boot 运营参数:
    setenv bootargs “root=/dev/nfs rw nfsroot=192.168.0.231rootpath
    ip=192.168.0.232:192.168.0.231:192.168.0.201:255.255.255.0:witech.com.cn:eth0ff

console=ttySAC0,115200″
saveenv
(那么些Uboot变量参数最为首要,依次为NFS文件系统所在指标机的IP,开发板IP,
NFS文件系统所在目的机的IP,路由网关,掩码)
再一次开动开发板,Linux 内核运行后会自动挂载 NFS 文件系统。
——————————————————-分割

线—————————————————
   
近来发现网上有了Linux版本的DNW,而且已经是DNW2了,斟酌了下,的确是蛮用的。
尽管是针对性2410及2440开发板的,但是修改后,6410的开发板也是能运用的,并且已经在ok6410上考查过了。
1.预备干活
率先要安装libusb,那在ubuntu底下极度便利,只要利用命令:
sudo apt-get install libusb-dev
就可以
说不上是取得源码,去下载源码,另存为dnw2.c,存放到自定义目录即可
2.编译dnw2
编写翻译dnw2也是出色简易,进入存放dnw2.c的目录,然后使用命令
gcc dnw2.c -o dnw2 -lusb
若是前边libusb顺遂安装了,就能够编写翻译成功
编译后,会有dnw2可执行文件发生
3.接纳dnw2烧写镜像文件
3.1行使kermit连接到开发板后,打开开发板电源,然后按回车进入uboot的命令行情势
3.2依心像意进入命令方式后,输入 dnw c0008000,回车
3.3在存放dnw2可执行文件的目录下,执行 ./dnw2
path/file,pat/file指的是镜像地方的中国人民解放军第6野战军目录和下令,

顺风的话,文件就从头向开发板上传
3.4上传达成后,就擦除 Nandflash:在命令行中输入 nand erase 一千00 三千00
,回车,那里的erase后三个

参数指的是情理地址,根据文书档案里是要烧写的镜像文件决定,切勿照搬
3.5将内部存款和储蓄器的内核影象文件烧写到 Nandflash:
在命令行中输入 nand write.e c0007000 一千00 两千00 ,回车,那里
write.e后边七个参数也跟遵从上边所

述。

依照这样的步调实现后,就足以顺遂完成烧写,小编在ok6410上考试三回即顺遂经过,有了这么些dnw2那几个小程序

,未来就不要切换成windows环境下去了,对于开发的功能具有庞大的拉扯。

PS:其实查看了dnw2的源码,整个完毕不是很复杂,关键是熟悉那么些事物的人才能写出来,第①个贡献者总是

高大的,后边还有使用Qt加了GUI界面包车型大巴dnw2,不过那几个简陋。打算研讨透彻后使用Qt重写一边,以便同时支

持2440和6410。

本文出处:,欢迎大家一块交换。

 

其一头是Ubuntu的操作:

在虚拟机下Ubuntu建立NFS网络文件系统  
小编:蒙洋,华衡水见嵌入式大学教授。
在ubuntu上私下认可没有设置NFS服务器,由此:
apt-get install nfs-kernel-server
apt-get install nfs-common
NFS服务程序和客户端程序安装完成。
上边的四个服务程序已经给我们安装好了,暗中认可它是常规的。
布署NFS相关的IP地址(由于大家是XP下的VMware下的Ubuntu,稍复杂):
         
PC机的windows下的网络连接地址:192.168.1.100,那么些相应都会设置吧!
在VMware->Settings->Network Adapter->bridged,选上。Device
status的接连一切选上
         
OK在linux下设置IP地址,一定和windows在同2个网段,例如:192.168.1.10
测试一下windows和linux通讯寻常吧?
运作命令:#ping 192.168.1.100
配置/etc/exports
运维命令:#gedit /etc/exports
在文书的末段添加如下一句话:
/root (rw,sync,no_root_squash)
//这一步可能比较重要的,小编前边括号里都只是写了(rw),结果直接都

不行。
共享/root目录内容.且有读,写权限, 并且该用户进入/root目录后的地位为root
本来你的root里面肯定有能够健康工作的文件系统哦
运行 #showmount -e 查看NFS server的export list.
若更改了/etc/exports, 运营 #sudo exportfs -r 更新
运行#sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务
如上若有荒唐,表达nfs照旧尚未完全配置好,可是不影响后边的操作
测试NFS:
能够品尝一下挂载本地球磁性盘(倘使本地主机IP地址为:192.168.1.10.,
将/root挂载到/mnt)
#mount 192.168.1.10:/root /mnt
运行#df 看看结果
若想卸载刚才挂载的文件系统,运营如下命令:
# umount /mnt
当今能够通过NFS运维系统了
因为我用的uboot能够传运营参数给基础,所以还是能直接uboot辅导内核,直接自动挂载nfs文件系统

 

 

 

相关文章