1. 程式人生 > >mini6410基於linux2.6.36核心通過NFS啟動根檔案系統總結(四製作根檔案系統及通過NFS掛載檔案系統)

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

來製作根檔案系統,用busybox製作的根檔案系統可以做到短小精悍並且執行效率較高。寫成shell檔案便於操作,有些人將BusyBox稱為Linux工具裡的瑞士軍刀.

根檔案系統是linux啟動時使用的第一個檔案系統。沒有根檔案系統,linux將無法正常啟動。根檔案系統:有一系列的目錄組成,目錄中包含了應用程式、c庫、以及相關的配置檔案。

step:建立根檔案系統目錄

cd /opt/FriendlyARM/mini6410/linux

mkdir 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 原創作品,允許轉載,轉載時請務