1. 程式人生 > >TI OMAPL138E Linux移植 (Davinci) (資源獲取+從串列埠啟動UBoot+從網路啟動Linux與檔案系統)

TI OMAPL138E Linux移植 (Davinci) (資源獲取+從串列埠啟動UBoot+從網路啟動Linux與檔案系統)

Date: 2018-02-08


【1、從實際硬體上獲取主晶片型號為TI的OMAPL138E 】,所屬系列為OMAPL1,編譯預設配置為davinci或者da850。


《以下內容失效》《《《2、登陸TI官方WiKi網站wiki.ti.com,在網頁下方找到General Information主條目,在其中找到Getting Started Guides一項。
3、在2步驟中找到Before the Getting Started Guide一項,點選進去,此篇文件講述了建立虛擬機器和安裝GNU/Linux作業系統及配置部分環境。
4、在2步驟中找到Getting Started Guide for OMAP-L1一項,點選進去,此篇文件講述了開發板和SDK軟體的一些知識,具體的網址如下:http://processors.wiki.ti.com/index.php/Getting_Started_Guide_for_OMAP-L1。
5、在4步驟中找到Running PSP Components一項,點選進去,此篇文件講述了編譯U-Boot、Linux核心和檔案系統的相關知識,PSP是Linux Platform Support Package的簡稱。
6、在5步驟中可以下載DaVinci-PSP-SDK-03.20.00.08.tgz壓縮包,下載地址是http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/psp/LinuxPSP/DaVinci_03_20/index.html,該壓縮包包含了DaVinci發行版的Linux核心、U-Boot、User Boot Loader (UBL)和Flash writers;CodeSourcery的Sourcery G++ Lite 2009q1-203 for ARM GNU/Linux交叉編譯工具需要單獨下載。
7、下載交叉編譯工具,可以去官網https://sourcery.mentor.com/sgpp/lite/arm/portal/release858註冊之後再下載arm-2009q1-203-arm-none-linux-gnueabi.bin(非常麻煩),安裝步驟如文件http://processors.wiki.ti.com/index.php/GSG:_Installing_the_Software_for_OMAP-L1#Downloading_and_installing_the_Code_Sourcery_tools所示;或者直接百度下載arm-2009q1-203-arm-none-linux-gnueabi.bin;或者去TI官網http://software-dl.ti.com/processor-sdk-linux/esd/OMAPL138/latest/index_FDS.html下載最新版的ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09-Linux-x86-Install.bin。
》》》《以上內容失效》


【8、下載交叉編譯工具 】ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09-Linux-x86-Install.bin,包含了6步驟中的所有東西外加交叉編譯工具,http://www.ti.com/tools-software/processor-sw.html中介紹了最新開發工具和原始碼,該文件中的內容與6、7步驟中內容目的相同,但是是最新版本,我們工作中以8步驟的工具與原始碼為準。


【9、8步驟的內容 】可以從TI官網進入,一步一步找到:進入http://www.ti.com/,點選中間的Tools&software,點選下面的Software&development tools,點選左側的Processors,跳轉到Processor SDK介面,標題為Scalable Linux, TI-RTOS and Android solutions for TI processors,點選Downloads and technical details by platform中的OMAP-L138,跳轉到Processor SDK for OMAPL138 Processors for Linux and TI-RTOS Support頁面,在PROCESSOR-SDK-LINUX-OMAPL138後面點選Get Software,進入到PROCESSOR-SDK-LINUX-OMAPL138  04_02_00_09介面,下載ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09-Linux-x86-Install.bin即可;下載包的種類為TI Software Development Kits (SDK) ,檔案系統使用的是Yocto,交叉編譯工具使用Linano GNU compiler collection(GCC),還包含實時Linux作業系統RT-Linux。


10、下載ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09-Linux-x86-Install.bin後,加執行許可權
chmod +x ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09-Linux-x86-Install.bin
執行(安裝該軟體)
./ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09-Linux-x86-Install.bin


【11、配置編譯器 】
gedit /etc/profile
增加arm-gcc路徑,
增加一行:export PATH=$PATH:YOUR_PATH.
例如:
export PATH=$PATH:/home/jim/Ti/ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09/linux-devkit/sysroots/x86_64-arago-linux/usr/bin


【12、測試 arm-gcc 安裝是否成功 】
終端輸入:arm-linux-gnueabi-gcc -v
輸出以下為成功(如果不成功source /etc/profile,還不行就重起電腦):
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/home/a/Ti/ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/../libexec/gcc/arm-linux-gnueabi/6.2.1/lto-wrapper
Target: arm-linux-gnueabi
Configured with: /OE/linaro-toolchain/_build/snapshots/gcc-linaro-6.2-2016.11/configure SHELL=/bin/sh --with-mpc=/OE/linaro-toolchain/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/OE/linaro-toolchain/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/OE/linaro-toolchain/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap --with-cloog=no --with-ppl=no --with-isl=no --disable-nls --enable-c99 --enable-gnu-indirect-function --disable-multilib --with-arch=armv5te --with-float=soft --enable-multiarch --with-build-sysroot=/OE/linaro-toolchain/_build/sysroots/arm-linux-gnueabi --enable-lto --enable-linker-build-id --enable-long-long --enable-shared --with-sysroot=/OE/linaro-toolchain/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-linux-gnueabi/libc --enable-languages=c,c++,fortran,lto --enable-checking=release --disable-bootstrap --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabi --prefix=/OE/linaro-toolchain/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) 


【13、使用SDK的兩篇使用者指引 】:http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Getting_Started_Guide
http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_Software_Developer%E2%80%99s_Guide


14、安裝好SDK後,~/ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09/board-support/u-boot-2017.01+gitAUTOINC+340fb36f04-g340fb36f04/下即為UBoot原始碼


【15、編譯UBoot 】
將~/ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09/board-support/u-boot-2017.01+gitAUTOINC+340fb36f04-g340fb36f04/複製到~/2_Work/下改名為u-boot-2017.01,並進入到該目錄
執行命令
make distclean CROSS_COMPILE=arm-linux-gnueabi-
make da850evm_defconfig
使用da850官方開發版的預設UBoot配置(備註DA850片子和OMAPL138片子硬體上一模一樣,但是ROM裡多了Aaudio codec演算法,專供OEM大客戶在數字音訊方面的應用)
編譯(沒配全域性環境變數的話要自帶交叉編譯引數)
make ARCH=arm  CROSS_COMPILE=arm-linux-gnueabi-


16、UBoot燒錄相關的文件和軟體獲取
先找到UBoot參考文件Using the OMAP-L132/L138 Bootloader
http://www.ti.com/ --> 列表第一項Products --> Embedded Processors 下的 Digital Signal Processors(DSP) --> 在跳轉後的頁面中選Products下面的OMAP-L1x:low-power
[email protected]
--> 在跳轉後的頁面中點選Tools&software --> 滾動到最下方在 Technical Documents中點選OMAP-L138  --> 跳轉後頁面目錄級別為
  TI Home >   Semiconductors >   Processors >   Digital Signal Processors >   C6000 DSP + ARM Processors >   OMAP-L1x >
在Application notes中找到文件《Using the OMAP-L132/L138 Bootloader Application Report (Rev. E)》,地址為http://www.ti.com/lit/an/sprab41e/sprab41e.pdf,文件中第一頁有UBoot格式更改、燒錄時會用到的軟體AISgen_d800k008_Install_v1.13.exe的下載地址URL:http://www.ti.com/lit/zip/sprab41


17、在Windows下或Ubuntu wine虛擬環境中安裝AISgen_d800k008_Install_v1.13.exe軟體


18、另外UBoot啟動方式有多種,比如我們前期先從串列埠啟動進行驗證,官網上有介紹使用跳線來選擇不同的啟動介質)。


【19、安裝AISgen 】(用於製作執行檔案)(所需要的原始檔,配置檔案,UBoot檔案都需要從同事熊文處獲取)
對映Ubuntu串列埠到wine的Windows平臺
cd ~/.wine/dosdevices
ln -s /dev/ttyUSB0 com1
ln -s /dev/ttyUSB0 COM1
ln -s /dev/ttyUSB1 COM2
ln -s /dev/ttyUSB1 com2
右擊AISgen_d800k008_Install_v1.13.exe,開啟方式,使用wine開啟,一步步安裝,安裝完成之後生成兩個應用程式AISgen_d800k008和UartHost.exe。
開啟AISgen_d800k008.exe,File-->Load Configuration-->開啟angelfish.cfg-->輸入u-boot,生成uboot.bin。


【20、設定UBoot mkimage程式的環境變數 】,否則Linux核心只能編譯出zImage,編譯不出uImage
找到編譯完的UBoot目錄,將u-boot/tools這個目錄記下來,Linux核心編譯會用到,
臨時生效環境變數
export PATH=/home/jim/2_Works/u-boot-2017.01/tools:$PATH
當前使用者永久生效環境變數
gedit ~/.profile
然後新增
export PATH=/home/jim/2_Works/u-boot-2017.01/tools:$PATH
儲存後
source ~/.bashrc
所有使用者永久生效環境變數
gedit /etc/profile 步驟同上
《貌似安裝SDK工具ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09時該工具已經配置好了,
包括export PATH=~/ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09/bin:$PATH》


【21、編譯Linux核心 】,將~/ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09/board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/複製到~/2_Work/下並改名為linux-4.9.59,並進入到該目錄
使用davinci的預設配置
make davinci_all_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
編譯核心,設定核心載入地址
make uImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LOADADDR=0xc0700000 -j8
其他命令:修改引數:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig
其他命令:清除上次編譯內容:make distclean ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
其他命令:編譯arch/arm/boot/dts/da850-lcdk.dts裝置樹:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- da850-lcdk.dtb  編譯後dtb檔案在arch/arm/boot/dts/da850-lcdk.dtb


22、Ubuntu主機開啟tftp服務,用於直接向UBoot傳輸核心
安裝  sudo apt-get install tftpd-hpa
啟動  sudo /etc/init.d/tftpd-hpa start  或者  sudo service tftpd-hpa start
要傳輸的核心檔案  cp ~/2_Works/linux-4.9.59/arch/arm/boot/uImage /var/lib/tftpboot/
(稍後在UBoot中使用命令tftp c0700000 uImage即可將核心載入到板子記憶體)


23、Ubuntu主機開啟nfs服務,用於核心啟動時通過nfs直接載入nfs檔案系統
安裝  apt-get install  nfs-kernel-server
建立共享目錄
mkdir ~/nfsrootfs
chmod 777 ~/nfsrootfs
修改配置檔案,允許nfsrootfs資料夾共享
sudo gedit /etc/exports
在裡面加入/home/jim/nfsrootfs *(rw,sync,no_root_squash)
或者/home/jim/nfsrootfs 192.168.1.*(rw,sync,no_root_squash)
重啟nfs服務
sudo /etc/init.d/nfs-kernel-server restart
//sudo exportfs –r
檢視伺服器目錄和許可權
showmount -e
判斷是否成功
//sudo mount –tnfs localhost:/home/jim/nfsrootfs  /mnt


24、使用一個USB轉串列埠線,在PC主機上安裝該款USB轉串列埠的驅動,並獲取到該串列埠的串列埠號,如COM1


25、從串列埠啟動UBoot
開啟UartHost.exe,選好沒有中文路徑的UBoot檔案,波特率選為230400,斷開板子電源,點選Start,再接上板子電源,板子上的UBoot即可從串列埠正常啟動。


26、安裝串列埠工具(Windows下可以安裝SSCOM32)
sudo apt-get install cutecom
ls /dev/ttyUSB0
sudo usermod -aG dialout <username>
登出Ubuntu並重新登陸或重啟系統
開啟cutecom
選擇ttyUSB0串列埠,選擇波特率為115200,輸入回車,則會顯示
U-Boot >
表示已經進入UBoot命令列


27、通過UBoot從網路啟動Kernel
在Ubuntu主機中將網路IP改為手動,IP地址192.168.1.9,子網掩碼255.255.255.0,預設閘道器192.168.1.1,通過網線連線板子,將Ubuntu主機網路斷開,再重新連上
(可以在第15步時,在UBoot的make menuconfig中將delay時間由3秒改為300秒後再重新編譯出uboot執行檔案,便於UBoot啟動後能來得及從串列埠進入UBoot命令列,不改動也不影響使用)
(如果不是從公司git倉庫獲取的原始碼,而是從TI官網獲取的原始碼,第15步時如果開發板晶振有改動,則需要改動以下部分
home\jim\2_Works\u-boot-2017.01\arch\arm\mach-davinci\Kconfig  16和17行遮蔽掉
#select SYS_DA850_PLL_INIT
#select SYS_DA850_DDR_INIT
或者在menuconfig選單中遮蔽
將\home\jim\2_Works\u-boot-2017.01\include\configs\da850evm.h    31行
#define CONFIG_SYS_OSCIN_FREQ24000000改為
#define CONFIG_SYS_OSCIN_FREQ48000000
因為我們板子的晶振從24M改為了48M



27、配置UBoot環境
UBoot啟動後的3秒內如果在串列埠終端輸入了任意健,則會進入到UBoot命令列模式
在命令列中輸入以下命令
設定板子IP | 標明Ubuntu主機IP | 設定預設閘道器IP(不會使用到) | 設定子網掩碼 | 設定板子MAC地址
setenv ipaddr 192.168.1.88
setenv serverip 192.168.1.9
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv ethaddr 32:34:46:78:9A:DC
ping 192.168.1.9    判斷網路是否聯通
setenv bootargs  console=ttyO0,115200n8 initrd=0xc0700000,0x800000    設定最簡單的核心啟動方式
printenv    檢視UBoot已經配置過的環境


28、只是單獨載入核心
(如果是官方的原始碼,第21步時應該將~/2_Works/linux-4.9.59/arch/arm/mach-davinci/da850.c第41行的
#define DA850_REF_FREQ24000000  改為
#define DA850_REF_FREQ48000000  之後再進行編譯Linux核心

UBoot命令中輸入
tftp c0700000 uImage    將Ubuntu主機tftp中共享的uImage載入到板子RAM 0xc0700000地址處
bootm c0700000    從該記憶體地址處啟動核心
此時可以從串列埠中看見核心被正常啟動


29、製作nfs檔案系統
將~/ti-processor-sdk-linux-omapl138-lcdk-04.02.00.09/filesystem/tisdk-server-extra-rootfs-image-omapl138-lcdk.tar.xz解壓,
將解壓後的資料夾內的所有檔案拷貝到第23步中的~/nfsrootfs
重新再修改一下許可權
chmod 777 ~/nfsrootfs
(如果是ramdisk或者其他檔案系統需要做額外的製作工作,然後可以通過UBoot命令直接將該檔案系統的壓縮檔案像核心一樣通過tftp載入到記憶體,而無需用到nfs共享,命令類似於
tftp c1700000 ramdis.gz    ////tftp $loadramdaddr $tftp_path/rootfs.ext2.gz.uboot ## 下載檔案系統映象到ram
bootm c0700000 c1700000    ////bootm $loadkernaddr $loadramdaddr ## 啟動ram中核心和檔案系統映象



30、載入核心與檔案系統
在Linux核心的menuconfig中配置nfs啟動選項(我們下載的核心原始碼中已經配好了,可以不管)
使用路由器和自動IP配置的情況下:
setenv ethaddr 32:34:46:78:9A:DC    設定板子MAC地址
板子的網線連線路由器,電腦的網線也連線路由器,將電腦的ip檢視一下,記下來,如192.168.0.169
setenv ethaddr 32:34:46:78:9A:DC
setenv bootargs mem=64M console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.0.169:/home/jim/nfsrootfs,nolock rootwait
setenv bootcmd 'dhcp;setenv serverip 192.168.0.169;tftpboot;bootm'
boot
//setenv bootcmd 'dhcp;setenv serverip 192.168.0.169;bootm'
//saveenv
Linux引導成功之後,按一下回車,進入命令列
sh-3.2# 
cd / 之後 ls,可以看到根目錄下的資料夾。


在不使用路由器,電腦直接和板子用網線相連的情況下
在第27步的
setenv ipaddr 192.168.1.88    設定板子IP
setenv serverip 192.168.1.9    標明Ubuntu主機IP
setenv gatewayip 192.168.1.1    設定預設閘道器IP(不會使用到)
setenv netmask 255.255.255.0    設定子網掩碼
setenv ethaddr 32:34:46:78:9A:DC    設定板子MAC地址
ping 192.168.1.9    判斷網路是否聯通
基礎上輸入再輸入以下命令
setenv hostname jim  將jim改成自己Ubuntu主機的使用者名稱
setenv rootpath  /home/jim/nfsrootfs
setenv netdev eth0
setenv bootargs mem=64M console=ttyS2,115200n8  noinitrd rw root=/dev/nfs  nfsroot=192.168.1.9:/home/jim/nfsrootfs ip=192.168.1.88:192.168.1.9:192.168.1.1:255.255.255.0:jim:eth0:off initrd=0xc0700000,0x800000
tftp c0700000 uImage    將Ubuntu主機tftp中共享的uImage載入v到板子RAM 0xc0700000地址處
bootm c0700000    從該記憶體地址處啟動核心
此時可以從串列埠中看見核心和檔案系統一起被正常啟動


31、如果MAC地址有衝突,Kernel下載不成功,需要修改MAC地址(前提是Uboot中 flash驅動已存在,不過一般你不需要操作到這一步)
sf probe
sf erase 0x0 0x200000
setenv ethaddr 32:34:46:78:9A:DC
saveenv

printenv

32、以上只是已驗證過的步驟,具體實施時每個人絕對都會遇到各自不同的問題,按照問題在網上一個個搜尋解決才是正途。

相關推薦

TI OMAPL138E Linux移植 (Davinci) 資源獲取+串列啟動UBoot+網路啟動Linux檔案系統

Date: 2018-02-08【1、從實際硬體上獲取主晶片型號為TI的OMAPL138E 】,所屬系列為OMAPL1,編譯預設配置為davinci或者da850。《以下內容失效》《《《2、登陸TI官方WiKi網站wiki.ti.com,在網頁下方找到General Info

C++利用RAII技術讓系統為我們管理資源資源獲取即初始化——Resource Acquisition Is Initialization

RAII技術(資源獲取即初始化——Resource Acquisition Is Initialization) 編寫程式我們經常會使用new或者mallco來向系統申請記憶體,但我們也會可能忘記使用delete去釋放他們,而這種不釋放手動申請的資源的後果是十分嚴重(記憶體溢位 memo

arm-linux移植手記Linux核心移植

    其實已經弄完了,可以把linux核心以及基於busybox1.16.0製作的檔案系統結合。從總的來看是可以用自己的工具鏈編譯生成的u-boot作為Boot Loader,Linux2.6.32.2核心和基於busybox1.16.0的根檔案系統,只是還缺少很多相關的

arm-linux移植手記基於busybox1.16.0的根檔案系統製作

    參考《Mini2440_Linux移植開發實戰指南.pdf》中的“使用 Busybox 構建檔案系統”,還是有些問題,我自己的為主要原因。詳細的檔案系統的介紹與理解,自己搜尋檢視相關資料吧,我這裡僅是記錄操作步驟與遇到的問題。指南手冊可以在我的資源中下載。環境介紹:

Linux fsync和fdatasync系統呼叫實現分析Ext4檔案系統

參考:https://blog.csdn.net/luckyapple1028/article/details/61413724 在Linux系統中,對檔案系統上檔案的讀寫一般是通過頁快取(page cache)進行的(DirectIO除外),這樣設計的可以延時磁碟IO的操作,從而可以減少磁碟讀

Linux學習筆記4磁碟分割槽檔案系統命令

    df 檢查檔案系統的磁碟空間佔用情況,引數-a列出全部目錄,引數-h按KB,MB,GB顯示 du   檢車某個目錄或者檔案佔用的磁碟空間,引數-s顯示佔用總空間,引數-sh統計目錄大小 mo

Linux下對lvm邏輯卷分割槽大小的調整針對xfs和ext4不同檔案系統

當我們在安裝系統的時候,由於沒有合理分配分割槽空間,在後續維護過程中,發現有些分割槽空間不夠使用,而有的分割槽空間卻有很多剩餘空間。如果這些分割槽在裝系統的時候使用了lvm(前提是這些分割槽要是lvm邏輯卷分割槽),那麼就可以輕鬆進行擴容或縮容!不同檔案系統型別所對應的建立、檢查、調整命令不同,下面就針對xf

linux磁碟檔案系統管理的那些事兒2

我們接著第一篇文章講起。 檔案系統掛載與解除安裝 建立完檔案系統,我們需要將新建的檔案系統掛載到根檔案系統上的某個目錄上,進而我們便可以通過該目錄來訪問該檔案系統。建立這種關聯關係的過程稱為掛載,所掛載的目錄稱為掛載點;若解除這種關聯關係,則稱之為解除安裝; 由

移植u-boot-2011.03到S3C2440utu2440的方法步驟###8. u-boot引導啟動nand flash中核心和根檔案系統cramfs和使用者檔案系統yaffs2支援

rivers/rtc/hctosys.c: unable to open rtc device (rtc0)uncorrectable error : <3>uncorrectable error : <3>end_request: I/O error, dev mtdblock2, 

linux kernel proc檔案系統引數

二、/proc/sys/kernel/優化 1)     /proc/sys/kernel/ctrl-alt-del 該檔案有一個二進位制值,該值控制系統在接收到ctrl+alt+delete按鍵組合時如何反應。這兩個值分別是: 零(0)值,表示捕獲ctrl+alt+delete,並將其送至 init 程式;

SUSE11配置samba伺服器實現Windows訪問Linux檔案系統

1、配置suse11zypper源進入存放repo的檔案目錄cd /etc/zypp/repos.d建立本地目錄mkdir or賦權chmod 777 or掛載介質mount -o loop suse11_64.iso /or 檢視zypper源zypper lr刪除源zypper rr 檢視所有安裝包zy

Linux 邏輯卷管理 檔案系統LVM FileSystem的關係

一、 什麼是LVM          LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁碟分割槽進行管理的一種機制,LVM是建立在硬碟和分割槽之上的一個邏輯層,為檔案系統遮蔽下層磁碟分割槽佈局,從而提高磁碟分割槽管理的靈活性

十三linux檔案系統詳解基於ext2檔案系統

  我們知道,一個磁碟可以劃分成多個分割槽,每個分割槽必須先用格式化工具(例如某種mkfs命令)格式化成某種格式的檔案系統,然後才能儲存檔案,格式化的過程會在磁碟上寫一些管理儲存佈局的資訊。下圖是一個磁碟分割槽格式化成ext2檔案系統後的儲存佈局:

Linux 磁碟檔案系統 —— 基礎知識

一,磁碟的物理組成 1、扇區(Sector)是最小的物理儲存單位,有 512bytes 和 4K 兩種格式。 2、將扇區組成一個圓,就是磁柱。 3、最小分割槽單位通常為扇區。 4、硬碟分割槽表主要有兩種格式,一種是限制較多的 MBR 分割槽,一種

一臉懵逼學習KafKa集群的安裝搭建--一種高吞吐量的分布式發布訂閱消息系統

zkserver 搜索 block virtual 文件 內容 ava use 問題 1:KafKa的官方網址:http://kafka.apache.org/ 開發流程圖,如: 2:KafKa的基礎知識: 2.1:kafka是一個分布式的消息緩存系統2.2:

NFS網路檔案系統配置Ubunut/Deepin等系統

NFS(網路檔案系統)配置(Ubunut/Deepin等系統) 網路檔案系統(NFS)是一種分散式檔案系統協議,最初由Sun Microsystems於1984年開發,允許客戶端計算機上的使用者通過計算機網路訪問檔案,就像訪問本地儲存一樣。與許多其他協議一樣,NFS建立在開放網路計算遠端

Web叢集之NFS網路檔案系統

1、什麼是NFSNFS(Network File System)網路檔案系統它的主要功能是通過網路(一般是區域網)讓不同主機系統之間共享檔案或目錄NFS客戶端(應用伺服器,例如web)可以掛載(mount)的方式將NFS伺服器端共享的資料目錄掛載到NFS客戶端本地系統中(某一個掛載點下)從客戶端本地來看,NF

Node學習基礎(三) 之檔案的同步和非同步寫入操作fs_檔案系統

下面遇到看不懂的可以去看官方文件。 首先引入fs模組 第二步開啟檔案  官方文件格式是這樣  path 檔案路徑  這裡例子裡是FileHello.txt  如果沒有這個檔案 所以他會自動建立 FileHello.txt

imx6 uboot的mtd分割槽總結rootfs為ubi檔案系統

轉載地址:https://blog.csdn.net/qq_29729577/article/details/51130209 此文章基於U-Boot 2014.04版本,燒寫工具為mfgtool,開發環境為yocto 前言: JFFS2、YAFFS2等專用檔案系統存在著一些技術瓶頸,如

大資料-Hadoop-HDFS分散式檔案系統環境搭建

1:Hadoop三大核心元件 A:分散式檔案系統HDFS B:分散式資源排程器 C:分散式計算框架MapReduce 2:HDFS簡介: HDFS架構:HDFS採用Master/Slave架構 即:一個Master(NameNode)對應多個Slave(DataNode)