1】在PC上安装nfs服务

sudoapt-get install nfs-kernel-server

配置nfs服务器,把挂在目录设置在/nfs/rootfs

sudovi /etc/exports

在exports文件最后添加一行:

/nfs/rootfs *(rw,sync,no_root_squash)

启动nfs服务
$sudo /etc/init.d/portmap restart
$sudo /etc/init.d/nfs-kernel-server restart

测试nfs服务
$showmount -e
Export list for user:
/nfs/rootfs*

好了到此nfs 的安装和配置工作已经完成,除了可以挂载Android的根文件系统外,我们也可以用一下命令将共享文件挂载到本地磁盘上:
$ sudo mount -t nfs localhostip:/srv /mnt
可以运行mount命令查看是否挂载成功。查看后可以使用以下命令卸载:
$ sudo umount /mnt

2】配置内核,使支持nfs.(原理:1,usb驱动配置成模拟以太网驱动.2,取消Initial RAMfilesystem,使内核从nfs服务器启动)

cd~/t3/kernel_imx/

svnupdate

makeimx5_t3_nfs_defconfig

makeuImage


,也可以通过手工配置:

Makemenuconfig

去掉InitialRAM filesystem选项:

Generalsetup --->

[] Initial RAM filesystem and RAM disk (initramfs/initrd) suppor

选择usbGadget驱动为EthernetGadget

|| --- USB Gadget Support

|| <*> USB Gadget Drivers (Ethernet Gadget (with CDCEthernet supp| |

|| Ethernet Gadget (with CDC Ethernet support) | |

|| [*] RNDIS support


3】按电源键+返回键,把内核升级到自己编译的nfs内核uImage,uboot升级成可以进入uboot模式的uboot.bin

4】重启,按任意键进入uboot模式,设置环境变量

setenv bootargs_nfs 'setenv bootargs ${bootargs} ip=off root=/dev/nfs init=/init nfsroot=192.168.1.10:/nfs/rootfsip=192.168.1.11::::usb0,v3,tcp'


setenv bootargs_android 'setenv bootargs ${bootargs} ${bootargs_nfs} video=mxcdi0fb:RGB24,XGA video=mxcdi1fb:RGB565,1024x768M@60 di1_primary gpu_memory=32M androidboot.console=ttymxc0'


saveenv


5】重启,如果用vmware,usb设备connectvmware里面去即可.


:

由于ubuntu有个网络管理器,T3挂载到ubuntu时会模拟成usb0网卡,网络管理器会自动对usb0网卡自动分配IP,而这个ip无法分配成我们nfs配置的192.168.1.11,所以建议把ubuntu网络管理器卸载掉,然后通过/etc/network/interfaces手动设置ubuntuip.

1】如何卸载掉ubuntu网络管理器:

打开新立得软件包管理器,左边拉到网络把network-manager都卸载掉.

network-manager

network-manager-dev

network-manager-gnome

2】将vmware设置成NAT,以免造成网络中电脑的ip冲突

首先看看vmwareNAT配置的ip,不同用户的vmware通常不一样的.

从这里可知,我的vmware网关是192.168.0.1,故我的虚拟机ip应该设置成192.168.0.*,网关设置成192.168.0.1,这样才能通过NAT上网.请看第三步.

3】手动设置ip方法如下:

vi/etc/network/interfaces

autolo

ifacelo inet loopback


autoeth0

ifaceeth0 inet static


address 192.168.0.115


netmask 255.255.255.0


gateway 192.168.0.1


allow-hotplugusb0

autousb0

ifaceusb0 inet static


address 192.168.1.10


netmask 255.255.255.0


gateway 192.168.1.1



4】添加中国电信DNS

vi /etc/resolv.conf


#Generated by NetworkManager

domain ebensz.com

search ebensz.com

nameserver 192.168.1.5

nameserver 202.96.128.86

nameserver 202.96.128.68



sudo /etc/init.d/networking restart

如果仍然不能上网或者网络不通,有可能是vmware的网络配置乱了,可以重新恢复vmware的网络配置。

点击即可


5】制作Androidrootfs

复制out\target\product\imx51_bbg\root\*\nfs\rootfs

cp -dar out/target/product/imx51_bbg/root/* /nfs/rootfs

复制out/target/product/imx51_bbg/system目录到/nfs/rootfs/

cp -dar out/target/product/imx51_bbg/system /nfs/rootfs/

更改init.rc脚本,使android可以在nfs上跑.

注释掉所有的mount,因为我们不需要从SD卡或者Nand启动.

#on fs

#mount ext4 partitions

#Mount /system rw first to give the filesystem a chance to save acheckpoint

#mount ext4 /dev/block/mmcblk0p2 /system

#mount ext4 /dev/block/mmcblk0p2 /system ro remount

#mount ext4 /dev/block/mmcblk0p5 /data nosuid nodev

#mount ext4 /dev/block/mmcblk0p6 /cache nosuid nodev


#on post-fs

#once everything is setup, no need to modify /

#mount rootfs rootfs / ro remount







更多相关文章

  1. Android开发环境配置之ADT怪异问题
  2. netbeans中android开发环境配置 windows xp +netbeans6.5.1+jdk1
  3. 网络请求工具类WebServiceUtils
  4. android 网络状态
  5. 获取手机配置
  6. Android中MVP模式的内存泄漏解决及Retrofit2、RxJava中断网络请
  7. Android实现从网络获取图片显示并保存到SD卡的方法
  8. Android(安卓)Volley之加载网络图片
  9. android中listView实现异步加载网络图片

随机推荐

  1. android中获取手机相机和相册可以传多张
  2. 什么是Android(安卓)系统。
  3. Android(安卓)Context 到底是什么?
  4. Android之第三方库“scnu-jwc-sdk-1.0.0
  5. Android安卓开发集成微信第三方扫描二维
  6. 利用Android多进程机制来分割组件
  7. Android 设备上实现串口的移植
  8. android代码混淆个人总结及踩坑
  9. Java: Swing中引入Android的NinePatch技
  10. Android NDK开发篇(六):Java与原生代码通