日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Exynos4412 文件系统制作(三)—— 文件系统移植

發布時間:2023/12/9 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Exynos4412 文件系统制作(三)—— 文件系统移植 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根文件系統一直以來都是所有類Unix操作系統的一個重要組成部分,也可以認為是嵌入式Linux系統區別于其他一些傳統嵌入式操作系統的重要特征,它給Linux帶來了許多強大和靈活的功能,同時也帶來了一些復雜性。我們需要清楚的了解根文件系統的基本結構,以及細心的選擇所需要的系統庫、內核模塊和應用程序等,并配置好各種初始化腳本文件,以及選擇合適的文件系統類型并把它放到實際的存儲設備的合適位置

? ? ? Linux的根文件系統以樹型結構組織,包含內核和系統管理所需要的各種文件和程序,一般說來根目錄”/”下的頂層目錄都有一些比較固定命名和用途。

下面列出了一個Linux根文件系統中的比較常見的目錄結構:

/bin 存放二進制可執行命令的目錄

  該目錄下存放所有用戶都可以使用的、基本的命令,這些命令在掛接其它文件系統之前就可以使用,所以/bin目錄必須和根文件系統在同一個分區中。

  /bin目錄下常用的命令有:cat,chgrp,chmod,cp,ls,sh,kill,mount,umount,mkdir,m knod,[,test等“[”命令其實就是test命令,我們在利用Busybox制作根文件系統時,在生成的bin目錄下,可以看到一些可執行的文件,也就是可用的一些命令。

/dev 存放設備文件的目錄

  該目錄下存放的是設備文件,設備文件是Linux中特有的文件類型,在Linux系統下,以文件的方式訪問各種設備,即通過讀寫某個設備文件操作某個具體硬件。比如通過"dev/ttySAC0"文件可以操作串口0,通過"/dev/mtdblock1"可以訪問MTD設備的第2個分區。

/etc 存放系統管理和配置文件的目錄

  該目錄下存放著各種配置文件,對于PC上的Linux系統,/etc目錄下的文件和目錄非常多,這些目錄文件是可選的,它們依賴于系統中所擁有的應用程序,依賴于這些程序是否需要配置文件。在嵌入式系統中,這些內容可以大為精減。

/home 用戶主目錄,比如用戶user的主目錄就是/home/user,可以用~user表示

?  用戶目錄,它是可選的,對于每個普通用戶,在/home目錄下都有一個以用戶名命名的子目錄,里面存放用戶相關的配置文件。

/lib 存放動態鏈接共享庫的目錄

 該目錄下存放共享庫和可加載(驅動程序),共享庫用于啟動系統。運行根文件系統中的可執行程序,比如:/bin /sbin 目錄下的程序。

/sbin存放系統管理員使用的管理程序的目錄

  該目錄下存放系統命令,即只有管理員能夠使用的命令,系統命令還可以存放在/usr/sbin,/usr/local/sbin目錄下,/sbin目錄中存放的是基 本的系統命令,它們用于啟動系統,修復系統等,與/bin目錄相似,在掛接其他文件系統之前就可以使用/sbin,所以/sbin目錄必須和根文件系統在同一個分區中。

  /sbin目錄下常用的命令有:shutdown reboot fdisk fsck等,本地用戶自己安裝的系統命令放在/usr/local/sbin目錄下。

/tmp 公用的臨時文件存儲點

  用于存放臨時文件,通常是空目錄,一些需要生成臨時文件的程序用到的/tmp目錄下,所以/tmp目錄必須存在并可以訪問。

/root 系統管理員的主目錄

  根用戶的目錄,與此對應,普通用戶的目錄是/home下的某個子目錄。

/mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統。

  用于臨時掛載某個文件系統的掛接點,通常是空目錄,也可以在里面創建一引起空的子目錄,比如/mnt/cdram /mnt/hda1 。用來臨時掛載光盤、硬盤。

/proc 虛擬文件系統,可直接訪問這個目錄來獲取系統信息

  這是一個空目錄,常作為proc文件系統的掛接點,proc文件系統是個虛擬的文件系統,它沒有實際的存儲設備,里面的目錄,文件都是由內核臨時生成的,用來表示系統的運行狀態,也可以操作其中的文件控制系統。

/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。

  /usr目錄的內容可以存在另一個分區中,在系統啟動后再掛接到根文件系統中的/usr目錄下。里面存放的是共享、只讀的程序和數據,這表明/usr目錄下的內容可以在多個主機間共享,這些主要也符合FHS標準的。/usr中的文件應該是只讀的,其他主機相關的,可變的文件應該保存在其他目錄下,比如/var。/usr目錄在嵌入式中可以精減。

/var 某些大文件的溢出區

  與/usr目錄相反,/var目錄中存放可變的數據,比如spool目錄(mail,news),log文件,臨時文件。


---------------------------------------------------------------------

一、移植環境:

1、 ?Ubuntu 10.10發行版

2、 ?u-boot.bin

3、 ?目標機:FS4412平臺

4、 ?交叉編譯器 arm-none-linux-gnueabi-gcc

---------------------------------------------------------------------


二、移植步驟

1、 ?源碼下載

我們選擇的版本是busybox-1.17.3.tar.bz2下載路徑為:http://busybox.net/downloads/

2、? 解壓源碼

$ tar xvf busybox-1.17.3.tar.bz2

3、? 進入源碼目錄

$ cd busybox-1.17.3

4、? 配置源碼

$ make menuconfig Busybox Settings --->Build Options --->[*] Build BusyBox as a static binary (no shared libs)[ ] Force NOMMU build[ ] Build with Large File Support (for accessing files > 2 GB)(arm-cortex_a8-linux-gnueabi-) Cross Compiler prefix() Additional CFLAGS

5、? 編譯

$ make

6、? 安裝

busybox默認安裝路徑為源碼目錄下的_install

$ make install

7、? 進入安裝目錄下

$ cd _install $ ls bin linuxrc sbin usr

8、 ?創建其他需要的目錄

$ mkdir dev etc mnt proc var tmp sys root

9、? 添加庫

在_install目錄下創建一個lib文件夾,將工具鏈中的庫拷貝到lib目錄下

$ mkdir lib $ cp /home/linux/x-tools/arm-cortex_a8-linux-gnueabi/arm-cortex_a8-linux-gnueabi/lib/* ./lib/

刪除lib下的所有目錄、.o文件和.a文件,對庫進行瘦身以減小文件系統的大小

$ rm *.o *.a $ arm-cortex_a8-linux-gnueabi-strip lib/*

10、 添加系統啟動文件

在etc下添加文件inittab

$ vim /etc/inittab

文件內容如下:

#this is run first except when booting in single-user mode. :: sysinit:/etc/init.d/rcS # /bin/sh invocations on selected ttys # Start an "askfirst" shell on the console (whatever that may be) ::askfirst:-/bin/sh # Stuff to do when restarting the init process ::restart:/sbin/init # Stuff to do before rebooting ::ctrlaltdel:/sbin/reboot

在etc下添加文件fstab

$ vim /etc/fstab

文件內容如下:

#device mount-point type options dump fsck order proc /proc proc defaults    0 0 tmpfs      /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0

  這里我們掛在的文件系統有三個proc、sysfs和tmpfs,在內核中proc和sysfs默認都支持,而tmpfs是沒有支持的,我們需要添加tmpfs的支持

修改內核配置:

$ make menuconfig File systems --->Pseudo filesystems --->[*] Virtual memory file system support (former shm fs)[*] Tmpfs POSIX Access Control Lists

重新編譯內核

$ make zImage

在etc下創建init.d目錄,并在init.d下創建rcS文件

$ mkdir /etc/init.d -p $ vim /etc/init.d/rcS

rcS文件內容為:

#!/bin/sh # This is the first script called by init process /bin/mount -a

為rcS添加可執行權限:

$ chmod +x init.d/rcS

在etc下添加profile文件

$ vim /etc/profile

文件內容為:

#!/bin/sh export HOSTNAME=farsight export USER=root export HOME=root #export PS1="\[\u@\h \W\]\$ " export PS1="[$USER@$HOSTNAME \W]\# " PATH=/bin:/sbin:/usr/bin:/usr/sbin LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH export PATH LD_LIBRARY_PATH

11、 設備文件創建

根文件系統中有一個設備節點是必須的,在dev下創建console節點

$ mknod dev/console c 5 1

重要:新制作的文件系統尺寸若超出8M,刪除不需要的庫文件。

總結

以上是生活随笔為你收集整理的Exynos4412 文件系统制作(三)—— 文件系统移植的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。