mini6410基於linux2.6.36核心通過NFS啟動根檔案系統總結(四製作根檔案系統及通過NFS掛載檔案系統)
本系列文章有本人yinjiabin製作,轉載請註明出處:
http://blog.csdn.net/yinjiabin/article/details/7489563根檔案系統一般包括:
1)基本的檔案系統結構,包含一些必須的目錄,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;
2)基本程式執行所需的庫函式,如:libc/uC-libc;
3)基本的系統配置檔案,如:rc,inittab等指令碼檔案;
4)必要的裝置支援檔案,如:/dev/hd*,/dev/tty,/dev/fdO;
5)基本的應用程式,如:sh,ls,cp,mv等。
根檔案系統的製作就是生成包含上述各種檔案的檔案系統的過程,可通過直接拷貝宿主機上交叉編譯器處的檔案來製作根檔案系統,但是這種方法制作的根檔案系統一般過於龐大。也可通過一些工具如busybox
根檔案系統是linux啟動時使用的第一個檔案系統。沒有根檔案系統,linux將無法正常啟動。根檔案系統:有一系列的目錄組成,目錄中包含了應用程式、c庫、以及相關的配置檔案。
step:建立根檔案系統目錄
cd /opt/FriendlyARM/mini6410/linuxmkdir rootfs
cd rootfs
mkdir bin dev etc lib proc sbin sys
usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
step2:建立裝置檔案:
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
cd ..
step3:安裝/etc(配置檔案可以從其他做好的嵌入式系統中cp)
tarzxvf etc.tar.gz –C /xxx/rootfs
step4:編譯核心模組:
進入Linux核心目錄(linux 2.6.36)
make modules ARCH=arm CROSS_COMPILE=arm-linux-
step5:安裝核心模組
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs
step6: 配置busybox
Busybox: 嵌入式開發中的瑞士軍刀
進入busybox目錄執行
make menuconfig
a.進入 Busybox Settings à
build Options->
選中 “Build busybox as a static binary”, 靜態連結
Cross Compiler prefix (arm-linux-)
Installation Options->
選中 “Don‘t use /usr”, 選中該項可以避免busybox 被安裝到宿主系統的/usr目錄下,破壞宿主系統
Busybox Installation Prefix (/xxx/rootfs)
該選項表明編譯後的busybox的安裝位置
step7: 編譯,安轉busybox
make ARCH=arm CROSS_COMPILE=arm-linux-
make install
step8: 從 NandFlash 啟動 Tiny6410,然後修改UBoot 的環境變數 bootargs(就是這裡了,可以解決一開始文章的 not responding的問題)!
操作命令:
setenv serverip console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.100:/opt/FriendlyARM/mini6410/linux/rootfs,proto=tcp,nfsvers=3,nolock ip=192.168.1.70:192.168.1.100:192.168.1.100:255.255.255.0:linux.arm9.net:eth0:off
解釋一下其中的意思了:
console=ttySAC0 ttySAC0 作為控制檯
root=dev/nfs 固定格式,表示核心採用nfs 方式起根檔案系統
nfsroot=192.168.1.100:/opt/FriendlyARM/mini6410/linux/rootfs,
表示的是 nfs 起的根檔案系統位於 nfs 伺服器 /opt/FriendlyARM/mini6410/linux/rootfs,目錄下
proto=tcp,nfsvers=3,nolock 如果不加這條語句會造成上面的nfs: server192.168.1.100notresponding, still trying這樣的錯誤!
原因:NFS的預設傳輸協議是UDP,而PC機與嵌入式系統通過UPD互動時就會出現嚴重的網絡卡丟包現象(這個也只是暫時的分析)!貌似好多人都說是網絡卡移植出現的問題!具體我也就不知道了,反正寫上這個,然後就沒有問題了!
ip=192.168.1.70:192.168.1.100:192.168.1.100:255.255.255.0:linux.arm9.net:eth0:off
這句話的格式是:ip=IP1:IP0:IP2:IP3:nameofyoulike:eth0:off
第一項(IP1)是目標板的臨時IP(注意不要和區域網內其它的IP有衝突)
第二項(IP0)是我的虛擬機器的IP
第三項(IP2)是目標板上網管(GW)的設定,這個引數設定跟虛擬機器網管一致
第四項(IP3)是子網掩碼
第五項(yourname)是開發板的名字(隨便啦)
第六項(eth0)是網絡卡裝置的名字
操作過程如下圖所示:
1)
設定主機的IP地址和bootargs環境變數
執行結果
step9:通過 tftp 下載位於虛擬機器 /tftpboot 目錄下的uImage 檔案到 0xc0008000 處!
執行結果
step: bootm
4. 等待檢視,按提示按下Enter!
相關推薦
mini6410基於linux2.6.36核心通過NFS啟動根檔案系統總結(四製作根檔案系統及通過NFS掛載檔案系統)
本系列文章有本人yinjiabin製作,轉載請註明出處: http://blog.csdn.net/yinjiabin/article/details/7489563根檔案系統一般包括: 1)基本的檔案系統結構,包含一些必須的目錄,比如:/dev,/proc,/bin,/
第一次作業:基於Linux2.6內核源碼進程模型分析
fig 活動 ask ces this cpu inter next default 1、概括 進程的基本概念 操作系統是如何組織進程的 進程是如何調度的 對Linux操作系統進程模型的看法 2、什麽是進程 一個進程就是一個正在運行的程序。一個進程應該包含以下內容:(1
iscsitarget 在Linux2.6.32核心上編譯 若干編譯錯誤與解決方法(備忘)
#make make -C usr make[1]: Entering directory `/work/iscsitarget-0.4.16/usr' cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include
基於ANN的6種調制信號自動調制識別(2ASK、4ASK、2FSK、4FSK、2PSK、4PSK)
電平 自動 仿真 進制數 系統 輸入 ron 附錄 表達式 目的: 實現6種(2ASK、4ASK、2FSK、4FSK、2PSK、4PSK)調制信號自動調制識別。 條件:windows 10,MATLAB 2014a 內容: 本實驗設計了一個分層結構的MLP神經網絡分
基於C#解決OJ刷題之輸入輸出問題的總結(AKOJ1064-1071A+B問題匯總)
-s har article not edit stat sig nbsp rgs 聲明:題目部分為akoj題目,代碼為本人AC代碼。 因為本人學校的oj支持各種環境,非常正常的當中就包括了C#。然暑假在家較為空暇,本著學習C#和復習算法的態度
基於大數據的電影網站項目開發之階段性總結(三)
字符 crc -c ... chown root per edi 第一個字符 一、基礎講解 1. 主機ping不同虛擬機 虛擬機要設置IP地址,ip段是vmware 編輯菜單-->虛擬網絡編輯器 網段, 網關:192.168.XXX.2
基於Ubuntu Server 16.04 LTS版本安裝和部署Django之(四):安裝MySQL數據庫
ins cli 遠程訪問 lib root 版本 連接 str ibm 1.安裝mysql以及插件: sudo apt-get install mysql-server mysql-client sudo apt-get install libmysqld-devsud
Linux學習總結(四十七)NFS服務配置 上篇
nfs rpc 1 NFS基本架構 NFS network file system 也就是網絡文件系統。NFS最早由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新為4.1版本NFS數據傳輸基於RPC協議,RPC為Remote Proced
基於中臺思想的物流系統設計(四):物流服務與物流詳情
一、概述 在物流系統中,中臺只負責物流訂單的流轉,具體的物流履行往往需要對接第三方快遞公司。由於第三方快遞公司的技術標準不一樣,因此我們需要對第三方快遞公司的介面進行封裝,這裡涉及到兩大類封裝,一個是下發請求的封裝,一個是接收回傳的物流詳情的封裝。對於下發快遞公司,我們不僅僅是介面層面的封裝,而是抽象出了
《逆向工程核心原理》學習總結(四)
介紹 PE檔案是windows作業系統的可執行檔案格式(包括.exe、.scr、.dll、.sys、.obj等檔案),PE檔案指32位的可執行檔案,也稱為PE32。64位可執行檔案稱為PE+或PE32+,是PE32檔案的一種擴充套件形式。 基本結構 P
基於Deep Learning的跟蹤演算法總結(四)
題外話:博主這段時間忙於辦理簽證,比較忙,一直沒時間看論文。:-( 一、引言 深度學習具有強大的能力,但由於目標跟蹤任務本身的特殊性,深度學習一直沒能很好地發揮出自己的潛能。其中,導致深度學習演算法速度慢的一個重要原因是online-update,即更新過程
模擬申請賬戶,兩次密碼相同,使用者名稱大於6位,密碼不能為空判斷,(這是一個佈局框架,沒有裡面的執行程式碼)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>表單樣式</title> <style type="
Nginx總結(四)基於域名的虛擬主機配置
前面講了如何安裝配置Nginx,大家可以去這裡看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要說的是Nginx如何基於域名配置虛擬主機。 應用場景 兩個域名指向同一臺nginx伺服器,使用者訪問
5.Linux核心設計與實現 P39---linux2.6 CFS排程演算法分析(轉)
1.概述 CFS(completely fair schedule)是最終被核心採納的排程器。它從RSDL/SD中吸取了完全公平的思想,不再跟蹤程序的睡眠時間,也不再企圖區分互動式程序。它將所有的程序都統一對待,這就是公平的含義。CFS的演算法和實現都相當簡單,眾多的測試表明其效能也非常優越。
Linux2.6 核心的 Initrd 機制解析
initrd 的英文含義是 boot loader initialized RAM disk,就是由 boot loader 初始化的記憶體盤。在 linux核心啟動前, boot loader 會將儲存介質中的 initrd 檔案載入到記憶體,核心啟動時會在訪問真正的根檔
Linux2.6核心--中斷下半部實現方法 工作佇列
工作佇列子系統是一個用於建立核心執行緒的介面,通過它建立的程序負責執行由核心其他部分排到佇列裡的任務。它建立的這些核心執行緒稱作工作者執行緒。工作佇列可以讓你的驅動程式建立一個專門的工作者執
u-boot通過nfs從伺服器下載核心,並且啟動核心,掛載根檔案系統的方法
http://www.linuxidc.com/Linux/2013-08/89154.htm http://blog.csdn.net/sinat_31500569/article/details/53120530 參考連結 首先要在電腦上安裝nfs伺服器 1.執行命令
在Linux2.6核心(CentOS)中編譯核心模組的一個例子
使用的簡單測試記憶體原始檔hello.c: ------------------------------------------------------------------------- #include <linux/module.h> /* Needed by all mod
centos7-安裝mysql5.6.36
本地 目錄 names date 位置 download 啟動 ase 出現 本地安裝了mysql5.7, 但和springboot整合jpa時會出現 hibernateException, 不知道為什麽, 換個mysql5.6版本的mysql, 源碼安裝, cmake一
基於CentOS 6 系統創建邏輯卷LVM,執行擴容,縮減,刪除等操作
靈活 硬盤 erl borde pan local lock 地址 擁有 基於CentOS 6 系統創建邏輯卷LVM,執行擴容,縮減,刪除等操作 2016-08-29 05:37:57 標簽:Linux LVM Fstab VG PV 原創作品,允許轉載,轉載時請務