核心直接NFS掛載Android檔案系統啟動
(1)首先構建檔案系統
採用根檔案系統,然後將system和data覆蓋根檔案系統中的system和data(這倆在根檔案系統中是空的)
掛載方法為 mount //遠端IP/檔案目錄 本地目錄 -o username=***,password=****
(2)開啟pc機NFS服務
給/etc/exports中加入 /nfsboot * (rw,insecure,sync,no_wdelay,insecure_locks,no_root_squash)
/nfsboot 是要掛載的檔案系統存放位置。
把(1)中根檔案系統放到/nfsboot下。
(3)配置核心
開發板是 三七一六 c v二百 es,按照說明書配置。
開啟nfs支援
沒有nfs as root file
參考
========================
核心支援NFS分割槽(即編譯時在File system中選中[*] Root file system on NFS),
以及支援核心IP_PNP(即編譯時在Networking中選中[*] IP: kernel level autoconfiguration)
File systems --->
Network File Systems --->
<*> NFS file system support ## 必選
[*] Provide NFSv3 client support ## 可選
[*] Root file system on NFS ## 必選
Networking --->
[*] Networking support
Networking options --->
[*] IP: kernel level autoconfiguration ## 必選
需要開啟IP:Kernel level autoconfiguration 以及下面所有的選項包括DHCP, BOOTP, RARP,而且NFS Client Support不能是模組,必須編譯進核心
============================
,咋辦?
1)開啟 kernel level autoconfiguration
我把它的三個子選項,都開啟:
這樣就能看到
設定"CONFIG_IP_PNP=y"
以及
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
都打開了。
這裡,同時可以參考參考 http://blog.csdn.net/sonach/article/details/8102639 這位大牛的經歷。
他根據核心原始碼,對這些做了分析。
2)關閉核心ramdisk支援,否則開機會預設掛ramdisk,不清楚原因。
3)核心配置
v200的es 的
[1 ]核心make kernel_menuconfig 配置
[2] 修改的配置檔案是這個 out/target/product/Hi3716CV200/obj/KERNEL_OBJ/.config
【3】要用這個檔案,替換掉實際編譯的時候的配置檔案,這個編譯用的配置檔案在核心原始碼中
這個路徑在device/hisilicon/bigfish/sdk/source/kernel/linux-3.4.y/arch/arm/configs/
原始碼採用了新的配置之後,就可以編譯了。
(4)配置fastboot
配置fastboot為nfs啟動。
setenv bootargs mem=1G root=/dev/nfs rootfstype=nfs rsize=1024,wsize=1024 nfsroot=192.168.1.88:/nfsboot,nolock ip=192.168.1.10:192.168.1.88:192.168.1.1:255.255.255.0:dpnfs:eth0:on console=ttyAMA0,115200
init=/init mtdparts=hi_emmc:1M(fastboot),1M(partition),1M(bootargs),10M(recovery),2M(deviceinfo),8M(baseparam),20M(logo),20M(logobak),40M(fastplay),40M(fastplaybak),40M(kernel),20M(misc),500M(system),1024M(userdata),100M(cache),-(sdcard)
配置了,板子核心就可以自動識別到gw,ipaddr,serverip。可能這些環境變數都是為bootargs服務的。
貌似bootargs是放在一個單獨的分割槽中的,所以改動了之後,即使重新燒錄fastboot也不會改變這些引數。
(5)燒寫kernel
hitools有個問題,就是serverip設定了不管用,因為我在fastboot中設定的serverip是我虛擬機器的ip,不是pc windows64的ip,所以tftp伺服器/hitools ,收不到請求。
所以要把fastboot的serverip設定為執行tftp伺服器的ip。這個不影響fastboot的bootargs的,而且又能讓hitools正常工作。
(6)核心掛根檔案系統
這些檔案必須是這樣的許可權:
否則:
=================許可權不對======會有這樣的報錯==============
ALSA device list:
#0: HISI-AIAO
VFS: Mounted root (nfs filesystem) on device 0:10. 已經掛了NFS
Freeing init memory: 1728K
init: skipping insecure file '/init.rc'
mmc1: new high speed MMC card at address 0001
mmcblk0: mmc1:0001 MMC04G 3.57 GiB
mmcblk0boot0: mmc1:0001 MMC04G partition 1 2.00 MiB
mmcblk0boot1: mmc1:0001 MMC04G partition 2 2.00 MiB
mmcblk0: p1 p2 < p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 >
mmcblk0boot1: unknown partition table
mmcblk0boot0: unknown partition table
init: Timed out waiting for /dev/.coldboot_done
init: Unable to open persistent property directory /data/property errno: 2
eth0: no IPv6 routers present
然後就卡主了。
========================================
參考
In jellybean, init.rc, default.prop etc should be writable only by the owner. You need to change the file permission to 644 (owner writable, world read-only) when you write the filesystem.
http://e2e.ti.com/support/embedded/android/f/509/p/204567/759121.aspx
(7)掛載成功
18:40:44])ADDRCONF(NETDEV_UP): eth0: link is not ready
PHY: mdio0:02 - Link is Up - 100/Full
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
IP-Config: Complete:
device=eth0, addr=192.168.1.10, mask=255.255.255.0, gw=192.168.1.1
host=dpnfs, domain=, nis-domain=(none)
bootserver=192.168.1.88, rootserver=192.168.1.88, rootpath=
ALSA device list:
#0: HISI-AIAO
VFS: Mounted root (nfs filesystem) on device 0:10.
Freeing init memory: 1728K
init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_score_adj instead.
mmc1: new high speed MMC card at address 0001
mmcblk0: mmc1:0001 MMC04G 3.57 GiB
mmcblk0boot0: mmc1:0001 MMC04G partition 1 2.00 MiB
mmcblk0boot1: mmc1:0001 MMC04G partition 2 2.00 MiB
mmcblk0: p1 p2 < p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 >
mmcblk0boot1: unknown partition table
mmcblk0boot0: unknown partition table
EXT4-fs (mmcblk0p15): recovery complete
EXT4-fs (mmcblk0p15): mounted filesystem with ordered data mode. Opts: (null)
EXT4-fs (mmcblk0p16): recovery complete
EXT4-fs (mmcblk0p16): mounted filesystem with ordered data mode. Opts: (null)
EXT4-fs (mmcblk0p17): recovery complete
EXT4-fs (mmcblk0p17): mounted filesystem with ordered data mode. Opts: (null)
init: cannot find '/system/bin/rild', disabling 'ril-daemon'
init: cannot find '/system/etc/install-recovery.sh', disabling 'flash_recovery'
init: cannot find '/system/bin/dtvserver', disabling 'dtvserver'
[email protected]:/ # ufsd: module license 'Commercial product' taints kernel.
ufsd:: trace mask set to 0000000f
ufsd: driver (UFSD_HEAD UFSD_HEAD_9, LBD=ON, delalloc, acl, ioctl, sd, fua, tr) loaded at bf000000
NTFS support included
optimized: speed
Build_for__Huawei_Hi3716cv200_k3.4.35_2013-05-09_with_lock_debugging_UFSD_HEAD_9
'Evaluation version - not for resale!'
[email protected]:/ #
[email protected]:/ #
[email protected]:/ #
[email protected]:/ # ls -aleth0: no IPv6 routers present
原文地址:http://blog.csdn.net/commshare/article/details/13766515
相關推薦
核心直接NFS掛載Android檔案系統啟動
(1)首先構建檔案系統 採用根檔案系統,然後將system和data覆蓋根檔案系統中的system和data(這倆在根檔案系統中是空的) 掛載方法為 mount //遠端IP/檔案目錄 本地目錄 -o username=***,password=**** (2)
QEMU模擬Mini2440開發板執行環境(二):NFS掛載根檔案系統
前言 原創文章歡迎轉載,請保留出處。 若有任何疑問建議,歡迎回復。 郵箱:[email protected] 緊接著第一篇(http://blog.csdn.net/maxwell_nc/article/details/44279553),我們使用網路檔案系統NFS掛載根檔案
wlh- beagle bone 通過uboot tftp 載入zImage 裝置樹 及 nfs 掛載根檔案系統
首先重啟Ubuntu 伺服器的 tftp 和nfs sudo /etc/init.d/xinetd restart 命令 重啟 xinetd tftp服務 sudo&nbs
nfs掛載根檔案系統
1.安裝NFS nfs原理是通過網路,將遠端主機共享的檔案系統,掛載到本機。Ubuntu 12.04上預設是沒有安裝NFS伺服器的,首先要安裝NFS服務程式: 先執行 # apt-get update
JZ2440設定從開發板啟動或使用NFS作為根檔案系統啟動
進入u-boot介面,選擇q退出主介面,進入 OpenJTAG> 1、從開發板根檔案系統正常啟動: OpenJTAG> set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console
使用nfs作為根檔案系統啟動遇到的問題
在通過 flash 上的根檔案系統啟動後,手工 mount NFS是沒有問題的,但是直接使用NFS作為根檔案系統啟動時會遇到問題,初次的問題是提示伺服器無響應,即 server ****** n
linux開發環境搭建(3)-nfs掛載根檔案系統
前面講解了網絡卡配置和使用tftp下載核心,這次要講的是使用nfs掛載根檔案系統。 1、什麼是根檔案系統 所謂根檔案系統,也就是系統啟動後第一個掛載的目錄,根檔案系統包括Linux啟動時所必須的目錄和關鍵性的檔案,例如Linux啟動時都需要有init目錄下的
beaglebone black tftp與nfs掛載根檔案系統
原文連結: http://blog.csdn.net/zy812248258/article/details/39291835 我的板子是beaglebone black rev.c 啟動方式: 在win下用am335x-evm-01.00.00.00.img.zip裡的
Xlinx-Zedboard使用NFS掛載根檔案系統
安裝nfs-kernel-server和tftpd-hpa服務 有安裝包情況下 sudo dpkg -i *.deb 建立共享目錄tftpboot 1.sudo mkidr /tftpboot 2
NFS掛載網路檔案系統
1.首先將電腦本地ip、ubuntu虛擬系統ip、開發板的ip地址設在同一網段,通過路由器連線開發板和電腦,然後互ping確保三者互聯。 2.重新啟動開發板進入boot選單,按q退出選單,輸入print命令可以看到列印資訊: 其中: bootarg
Beaglebone Black——理論篇beaglebone black啟動——從串列埠獲得SPL、U-BOOT,TFTP伺服器獲得核心,NFS伺服器掛載根檔案系統
一般來講啟動一個系統所需的bootloader(SPL/MLO、u-boot.img)和根檔案系統(/boot下包含核心zImage)要麼是放在NAND Flash,或者是SD卡,或者是eMMC,或者是USB中,那麼還有一種方式,就是所需要的這些檔案全部
nfs啟動:u-boot啟動後從ubuntu tftp下載核心及裝置樹,檔案系統掛載在nfs伺服器目錄
U-Boot# setenv netargs "setenv bootargs console=${console} ${optargs} root=/dev/nfs rootfstype=nfsroot nfsroot=${serverip}:${rootpath} ip=${ipaddr
u-boot通過nfs從伺服器下載核心,並且啟動核心,掛載根檔案系統的方法
http://www.linuxidc.com/Linux/2013-08/89154.htm http://blog.csdn.net/sinat_31500569/article/details/53120530 參考連結 首先要在電腦上安裝nfs伺服器 1.執行命令
《Linux啟動過程分析》核心掛載根檔案系統
說明:本文基於Linux2.6.29核心分析;其他核心版本僅供參考。 前邊通過原始碼情景分析,看過了匯流排、裝置、驅動及其發現機制,Linux2.6核心udev裝置節點建立相關;對於檔案系統,一直望而生畏,但核心學習、這部分又不可能繞的過去。目前對VFS中使用的has
從NFS啟動Linux並掛載根檔案系統
要搞嵌入式NFS確實必不可少,否則每次都要重啟煩都煩死。這裡總結在NFS建立過程中遇到的幾個問題。 下面記錄幾個遇到的問題 VFS: Cannot open root device “
[置頂] 《Linux啟動過程分析》核心掛載根檔案系統 http://blog.csdn.net/tankai19880619/article/details/12093239
說明:本文基於Linux2.6.29核心分析;其他核心版本僅供參考。 前邊通過原始碼情景分析,看過了匯流排、裝置、驅動及其發現機制,Linux2.6核心udev裝置節點建立相關;對於檔案系統,一直望而生畏,但核心學習、這部分又不可能繞的過去。目前對VFS中使用的hash表還未做研究,它在dent
檔案系統啟動後掛載目錄
ubuntu與開發板之間設定為同一網段中的Ip, 這裡將ubuntu設定為: ifconfig eth0 200.200.4.233 開發板設定為: ifconfig eth0 200.200.4.234 互相ping一下,確保能互相ping通; 虛擬機器要實現上網,需要設定為NAT模式;
怎樣從網路上核心和根檔案系統啟動開發板
首先在ubuntu虛擬機器上要有nfs伺服器 1.啟動開發板uboot,輸入 下面的命令 set bootargs console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.19:/work/nfs_root/tmp/fs_mini
NFS作為根檔案系統,掛載超時
NFS伺服器配置正確後,使用ramfs,通過mount能夠正常掛載NFS,但是作為ROOTFS無法正常掛載,顯示超時。 經檢視log,RPC報錯-120。 分析結果: 在Ubuntu1804上,nfsserver支援v3,v4,在UBuntu1304上,nfsserver
ARM開發板與PC機Ubuntu系統建立連線,採用NFS(網路檔案系統)掛載
Linux中最常用的方法就是採用NFS來執行各種程式,這樣可以不必花費很多時間下載程式,如果應用程式變的越來越大,就會發現NFS執行的方便所在。 首先要搭建NFS伺服器,步驟如下: (1)安裝nfs伺服器和客戶端 #sudo apt-ge