Android NFS 開發配置

來源:互聯網
上載者:User

【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/rootfs ip=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裝置connect到vmware裡面去即可.

注:

由於ubuntu有個網路管理器,當T3掛載到ubuntu時會類比成usb0網卡,網路管理器會自動對usb0網卡自動分配IP,而這個ip無法分配成我們nfs配置的192.168.1.11,所以建議把ubuntu網路管理器卸載掉,然後通過/etc/network/interfaces手動設定ubuntu的ip.

【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




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.