最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

玩轉(zhuǎn)Linux內(nèi)核編譯配置(menuconfig)、文件系統(tǒng)制作

2022-06-07 13:19 作者:補給站Linux內(nèi)核  | 我要投稿

一、Linux內(nèi)核配置原理

  • Linux內(nèi)核的配置系統(tǒng)由三個部分組成,分別是:

  1. Makefile:分布在 Linux 內(nèi)核源代碼根目錄及各層目錄中,定義 Linux 內(nèi)核的編譯規(guī)則;

  2. 配置文件(config.in):給用戶提供配置選擇的功能;

  3. 配置工具:包括配置命令解釋器(對配置腳本中使用的配置命令進行解釋)和配置用戶界面(提供基于字符界面、基于 Ncurses 圖形界面以及基于 Xwindows 圖形界面的用戶配置界面,各自對應(yīng)于 Make config、Make menuconfig 和 make xconfig)。


  • Linux 內(nèi)核的編譯菜單有3中方法:

  1. make config:進入命令行,可以一行一行的配置,這不方便使用,但用命令執(zhí)行一遍會對編譯過程有更深了解,這里不具體介紹。

  2. make menuconfig:進入我們熟悉的 menuconfig 菜單,圖形化界面選擇配置

  3. make xconfig:在2.4.X 以及以前版本中 xconfig 菜單是基于 TCL/TK 的圖形庫的,沒有接觸過。。貌似淘汰了。

  • Menuconfig配置內(nèi)核原理:

  • 在Linux里面我們所看到的menuconfig界面是通過配置內(nèi)核頂層的Kconfig產(chǎn)生的,而當輸入make menuconfig命令的時候系統(tǒng)會讀取Makefile來解析Kconfig。

  • 通常會在Kconfig里面編寫以下四項:

  1. 模塊的名字,用module開頭;

  2. 選項,通常設(shè)為bool(二選一)或者trastate(三選一);

  3. 默認選項;

  4. 幫助說明。

【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。?!前100名進群領(lǐng)取,額外贈送一份價值699的內(nèi)核資料包(含視頻教程、電子書、實戰(zhàn)項目及代碼)? ?

二、Menuconfig主要功能選項介紹:

1.在源碼目錄鍵入# make menuconfig ARCH=arm 后出現(xiàn)下面Menu:(Menuconfig主界面)

  • 其中General setup中重要的選項包括:

Cross-compiler tool prefix 交叉編譯工具前綴(如arm-linux-);

  • Local version - append to kernel release 內(nèi)核顯示的版本信息;

  • System V IPC 表示系統(tǒng)的進程間通信Inter Process

  • Communication,它用于處理器在程序之間同步和交換信息

  • Enable eventpoll support:支持事件輪循的系統(tǒng)調(diào)用。

2、Enable loadable module support 重要的選項包括:(內(nèi)核模塊配置)

Module unloading 允許卸載已經(jīng)加載的模塊

  • Module versioning support 允許使用其他內(nèi)核版本的模塊(可能會出問題)

  • Source checksum for all modules 為所有的模塊校驗源碼,如果你不是自己編寫內(nèi)核模塊就不需要它這個功能。

3、Enable the block layer 塊設(shè)備支持,使用硬盤/USB/SCSI設(shè)備者必選這選項使得塊設(shè)備可以從內(nèi)核移除。。重要的選項包括:

  • Block layer bio throttling support 可用于限制設(shè)備的IO速度

  • IO Schedulers IO調(diào)度器I/O是輸入輸出帶寬控制,主要針對硬盤,是核心的必須的東西。這里提供了三個IO調(diào)度器。

4、Processor type and features (處理器類型及特點)

  • Processor family (Pentium-Pro)處理器系列, 請按照實際使用的CPU選擇,這里是處理器的類型

  • Generic x86 support 這一選項針對x86系列的CPU使用更多的常規(guī)優(yōu)化。如果你在上面一項選的是i386、i586之類的才選這個通用x86支持,

  • Multi-core scheduler support 針對多核CPU進行調(diào)度策略優(yōu)化多核調(diào)度機制支持,雙核的CPU要選

5、Power management and ACPI options (電源管理相關(guān))

6、Bus options(PCI 、ISA 等總線的支持和配置.)

7、Executable file formats / Emulations (沒用過,不大了解)

8、Networking support (網(wǎng)絡(luò)配置,重要)

  • Wireless 使用無線網(wǎng)卡支持 RF switch subsystem support RF 切換設(shè)備

9、Device Drivers (設(shè)備驅(qū)動)

  • Block devices 想要支持的塊設(shè)備,比如ramdisk , 磁盤陣列,CD/DVD 刻錄等

  • Misc devices 需要支持的雜項設(shè)備

  • SCSI device support SCSI 設(shè)備驅(qū)動

  • Serial ATA and Parallel ATA drivers SATA 設(shè)備驅(qū)動

  • IEEE 1394 (FireWire) support

  • Network device support 如Ethernet (1000 Mbit) 選擇自己對應(yīng)的硬件

  • Character devices 字符設(shè)備,一般自己寫的傳感器類驅(qū)動都是字符型,需要在里面配置,包括串口TTY等。

  • SPI/I2C support

  • Sound card support 聲卡

10、Firmware Drivers (BIOS相關(guān),部分系統(tǒng)管理工具可能會用到 )

11、File systems (文件系統(tǒng)支持,重要?。?/p>

  • Ext4 Security Labels <=== 取消 SELinux 支持

  • XFS filesystem support

  • ISO 9660 CDROM file system support

  • NTFS file system support

12、Kernel hacking (內(nèi)核調(diào)試相關(guān),木有用過)

13、Security options (安全相關(guān)選項)

三、編譯配置內(nèi)核步驟

  • 以Linux3.5內(nèi)核版本為例,先解壓linux-3.5源碼, 然后cd到目錄中輸入:

make menuconfig ARCH=arm

  • 根據(jù)硬件選擇處理器選型(配置):

  • 網(wǎng)絡(luò)協(xié)議配置(可根據(jù)軟硬件需求對其進行裁剪):

  • 設(shè)備驅(qū)動:圖是網(wǎng)卡驅(qū)動

  • 根據(jù)自己的芯片選擇相應(yīng)的網(wǎng)卡驅(qū)動

  • 文件系統(tǒng)選擇:比如系統(tǒng)想使用ex4文件系統(tǒng) 就空格勾選上

  • 圖中取值方式:<>為不選擇, <*> 則壓縮到內(nèi)核映像zImage放到內(nèi)存中運行,< M>為編譯成moudule內(nèi)核模塊,存放在ROM中,使用時由zImage調(diào)用動態(tài)加載到內(nèi)存

  • 在makemenuconfig里面選中的 都會在.config文件中查詢到:(相關(guān)Cofig配置成y,則編譯內(nèi)核代碼時會將此相關(guān)代碼編譯,此時為靜態(tài)編譯)



  • 選擇好后就make進行編譯內(nèi)核,編譯完成會在arch/arm/boot目錄下生成zImage,這就是內(nèi)核映像文件,直接可以燒進板子(SD卡或者USB)

四、文件系統(tǒng)制作步驟

  • 首先安裝工具包linux_tools.tgz

tar xvzf linux_tools.tgz -C /

  • 然后生成文件系統(tǒng)鏡像文件(qtopia_qt4.img)

make_ext4fs -s -l 314572800 -a root -L linux rootfs_qtopia_qt4.img rootfs_qtopia_qt4

  • 執(zhí)行make_ext4fs命令之后即會將rootfs_qtopia_qt4文件打包成 rootfs_qtopia_qt4.img 文件系統(tǒng)鏡像。

  1. l314572800“是分區(qū)大小 -s就是生成ext4的S模式制作;

  2. 314572800/1024/1024 = 300M

  3. -a root 是指這個img用于Linux系統(tǒng)(若為-a system即表示為android系統(tǒng),掛載點即是/system。

  4. ./rootfs_qtopia_qt4.img 表示在當前目錄下生成鏡像文件。

  5. ./rootfs_qtopia_qt4 指定根文件系統(tǒng)源路徑

  • 可以把自己寫的應(yīng)用程序放到rootfs_qtopia_qt4這個里面,然后打包成ext4文件系統(tǒng)鏡像文件,這樣應(yīng)用程序就在固定在系統(tǒng)里,不用再二次安裝了。

  • 重點解釋下:make_ext4fs 命令用來制作ext4文件系統(tǒng)的鏡像,首先要把工具包解壓到usr/bin 。使用方法參考:

make_ext4fs -s -l 512M -a system system_new.img system

  • 512M表分區(qū)大小 第一個system表示掛載點為/system, 第二個system表示system目錄。

  • 新生成的system_new.img就可以用來燒寫了。

五、文件系統(tǒng)和根文件系統(tǒng)區(qū)別聯(lián)系

  • 很多人分不清文件系統(tǒng)和根文件系統(tǒng)的區(qū)別和聯(lián)系:

  • 個人理解,所謂**根文件系統(tǒng)(Root Filesytem)**就是要包括linux啟動時所必須的目錄和關(guān)鍵性的文件、命令,所組成整個文件目錄結(jié)構(gòu),即為根文件系統(tǒng)。

  • 例如linux啟動時所需要的init文件 linuxrc 掛載分區(qū)時linux去找的/etc/fstab 這個掛載文件等,根文件系統(tǒng)還包括許多應(yīng)用程序bin、sbin目錄等。

  • 根文件系統(tǒng)可以用busybox直接生成

  • 所謂文件系統(tǒng)(File System):指的是用來方便管理文件存儲和數(shù)據(jù)組織的一種方法。常見的linux文件系統(tǒng):NFS 網(wǎng)絡(luò)根文件系統(tǒng)、YAFFS2針對nandflash, EXT3,EXT4 等。還有如大家熟悉的Windows下FAT、FAT32、NTFS系統(tǒng)等

  • 文件系統(tǒng)需要根據(jù)系統(tǒng)類型和硬件支持,使用打包工具(如Make_ext4)生成



玩轉(zhuǎn)Linux內(nèi)核編譯配置(menuconfig)、文件系統(tǒng)制作的評論 (共 條)

分享到微博請遵守國家法律
白水县| 凤城市| 颍上县| 桦川县| 连平县| 永顺县| 平凉市| 江都市| 锡林浩特市| 宁阳县| 大新县| 元阳县| 香港 | 梓潼县| 仁化县| 巴彦淖尔市| 柏乡县| 珲春市| 贡山| 永兴县| 响水县| 改则县| 克拉玛依市| 百色市| 石嘴山市| 长泰县| 岑巩县| 渝北区| 石门县| 色达县| 洛扎县| 加查县| 桃江县| 丹东市| 墨竹工卡县| 侯马市| 阳西县| 将乐县| 安远县| 天长市| 宁南县|