色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux內核初次編譯和源碼結構

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:安迪西 ? 2023-04-19 11:20 ? 次閱讀

1.Linux內核獲取

Linux由 Linux基金會管理與發布,Linux官網為 https://www.kernel.org ,所以若想獲取最新的 Linux版本就可以在這個網站上下載,網站界面如下圖所示:

圖片

一般半導體廠商會從 Linux內核官網下載某個版本,將其移植到自己的 CPU上,測試成功后就會將其開放給該半導體廠商的 CPU開發者。 開發者下載其提供的 Linux內核,然后將其移植到自己的產品上。

本文我們就使用 NXP提供的 Linux源碼,文件名為:

linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

2.Linux內核初次編譯

編譯內核之前需要先在ubuntu上安裝lzop庫,另外,圖形化配置工具還需要ncurses庫支持,安裝命令為:

sudo apt-get install lzop
sudo apt-get install build-essential 
sudo apt-get install libncurses5-dev

在Ubuntu中新建一個文件夾,然后將linux內核壓縮包拷貝到文件夾中并解壓,解壓命令為:

tar -vxf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

解壓后進入該文件夾,新建一個build.sh腳本文件來編譯,腳本中的內容如下:

#!/bin/sh 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16

給予該腳本可執行權限,然后運行,編譯的時候會彈出Linux圖形配置界面, 這里不需要做任何的配置, 直接按兩下ESC鍵退出圖形界面

圖片

之后會自動開始編譯Linux內核,等待編譯完成,完成以后如下圖所示

圖片

編譯完成以后就會在arch/arm/boot這個目錄下生成一個zImage文件,該文件就是要用的Linux鏡像文件。 另外也會在arch/arm/boot/dts下生成很多.dtb文件,這些.dtb就是設備樹文件

vmlinux、Image、zImage、uImage 的區別:

  • vmlinux是ELF格式的文件,是編譯出來的最原始的內核文件,編譯出來 差不多有16MB,是未壓縮的。 在實際中我們不會使用vmlinux,而是使用zImage或uImage這樣的 Linux 內核鏡像文件
  • Image是Linux內核鏡像文件,但是Image僅包含可執行的二進制數據。 Image就是使用objcopy取消掉vmlinux中的一些其他信息,比如符號表什么的。 但是 Image 是沒有壓縮過的,Image保存在arch/arm/boot目錄下,其大小大概在12MB
  • zImage是經過gzip壓縮后的Image,經過壓縮以后其大小大概在6MB左右
  • uImage是老版本uboot專用的鏡像文件,uImag是在zImage前面加了一個長度為 64字節的“頭” ,這個頭信息描述了該鏡像文件的類型、加載位置、生成時間、大小等信息。 但是新的uboot已經支持了 zImage 啟動! 所以已經很少用到uImage了

3.Linux內核源碼結構

Linux內核編譯過程會生成一些文件,下面來看一下編譯前后的內核源碼結構,可以看出多出了一些編譯文件

圖片

編譯后的內核源碼比未編譯的源碼多了許多文件,這些文件或文件夾的含義見下表:

圖片

上表中很多文件夾和文件可以不需要去關心,要關注的文件夾或文件如下示

arch目錄 :和架構有關的目錄,比如arm、arm64、avr32、x86等等架構。 每種架構都對應一個目錄,在這些目錄中又有很多子目錄,比如boot、common、configs等等

block目錄 :block是Linux下塊設備目錄,像SD卡、EMMC、NAND、硬盤等存儲設備就屬于塊設備,block目錄中存放著管理塊設備的相關文件

crypto目錄 :存放著加密文件,比如常見的crc、crc32、md4、md5、hash等加密算法

Documentation目錄 :存放著Linux相關的文檔,如果要想了解Linux某個功能模塊或驅動架構的功能,就可以在Documentation目錄中查找有沒有對應的文檔

drivers目錄 :驅動目錄文件,此目錄根據驅動類型的不同,分門別類進行整理,比如drivers/i2c就是I2C相關驅動目錄,drivers/gpio就是GPIO相關的驅動目錄,需要重點關注

firmware目錄 :此目錄用于存放固件

fs目錄 :存放文件系統,比如fs/ext2、fs/ext4、fs/f2fs等,分別是ext2、ext4 和 f2fs等文件系統

include目錄 :頭文件目錄

init目錄 :存放 Linux內核啟動的時候初始化代碼

ipc目錄 :IPC為進程間通信,ipc目錄是進程間通信的具體實現代碼

kernel目錄 :Linux 內核代碼

lib目錄 :lib是庫的意思,lib目錄都是一些公用的庫函

mm目錄 :存放內存管理相關代碼

net目錄 :存放網絡相關代碼

samples目錄 :存放一些示例代碼文件

scripts目錄 :腳本目錄,Linux 編譯的時候會用到很多腳本文件,這些腳本文件就保存在此目錄中

security目錄 :存放安全相關的文件

sound目錄 :存放音頻相關驅動文件,音頻驅動文件并沒有存放到 drivers目錄中,而是單獨的目錄

tools目錄 :存放一些編譯的時候使用到的工具

usr目錄 :存放與 initramfs 有關的代碼

virt目錄 :存放虛擬機相關文件

.config文件 :跟 uboot一樣,.config保存著 Linux最終的配置信息,編譯 時候會讀取此文件中的配置信息。 最終根據配置信息來選擇編譯 Linux 哪些模塊,哪些功能

Kbuild文件 :有些 Makefile會讀取此文件

Kconfig文件 :圖形化配置界面的配置文件

Makefile文件 :Linux 頂層 Makefile 文件,建議好好閱讀一下此文件

README文件 :此文件詳細講解了如何編譯 Linux 源碼,以及 Linux 源碼的目錄信息

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NXP
    NXP
    +關注

    關注

    60

    文章

    1289

    瀏覽量

    185086
  • 內核
    +關注

    關注

    3

    文章

    1382

    瀏覽量

    40373
  • Linux
    +關注

    關注

    87

    文章

    11342

    瀏覽量

    210148
  • 源碼
    +關注

    關注

    8

    文章

    652

    瀏覽量

    29363
  • 編譯
    +關注

    關注

    0

    文章

    661

    瀏覽量

    32974
收藏 人收藏

    評論

    相關推薦

    一文詳解Linux內核源碼組織結構

    概要:本文內容包含Linux源碼結構分析、Linux Makefile分析、Kconfig文件分析、Linux
    的頭像 發表于 05-10 19:28 ?5807次閱讀

    linux內核源碼編譯

    Linux是一種開源的操作系統內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統。Linux最早是由芬蘭大學生Linus Torvalds于1991年開發的一款全新的操作系統。那時
    發表于 06-27 15:37 ?826次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>內核</b><b class='flag-5'>源碼</b><b class='flag-5'>編譯</b>

    Linux內核編譯主要過程

    Linux內核編譯主要過程: 配置、編譯、安裝 。
    發表于 08-08 16:02 ?757次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>的<b class='flag-5'>編譯</b>主要過程

    淺談Linux內核源碼的Makefile、Kconfig和.config文件

    Linux內核源碼文件繁多,搞不清Makefile、Kconfig、.config間的關系,不了解內核編譯體系,
    發表于 10-17 16:19 ?4400次閱讀
    淺談<b class='flag-5'>Linux</b><b class='flag-5'>內核</b><b class='flag-5'>源碼</b>的Makefile、Kconfig和.config文件

    Linux內核源碼目錄結構

    Linux體系結構Linux內核結構Linux內核
    發表于 12-30 07:22

    linux 5.4.31為例來介紹一下linux內核目錄結構

    Linux內核目錄結構Linux內核源代碼非常龐大,隨著版本的發展不斷增加。它使用目錄樹結構,并
    發表于 02-16 07:30

    Linux內核編譯詳談

    Linux內核編譯詳談
    發表于 10-30 09:51 ?7次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b><b class='flag-5'>編譯</b>詳談

    基于Arm的Linux內核編譯指導

    基于Arm的Linux內核編譯指導
    發表于 10-30 10:13 ?15次下載
    基于Arm的<b class='flag-5'>Linux</b><b class='flag-5'>內核</b><b class='flag-5'>編譯</b>指導

    如何才能編譯Linux內核

    內核的bug ,并增加了許多新的特性。如果用戶想要使用這些新特性, 或想根據自己的系統度身定制一個更高效, 更穩定的內核, 就需要重新編譯內核。本文將以RedHat
    發表于 11-04 18:04 ?8次下載

    Linux內核編譯與運行

    本文檔的主要內容詳細介紹的是Linux內核編譯與運行免費下載。
    發表于 03-25 13:48 ?16次下載

    嵌入式Linux內核編譯

    編譯工具鏈,在此就不再贅述。編寫Linux內核需要內核源碼內核
    發表于 11-01 17:07 ?19次下載
    嵌入式<b class='flag-5'>Linux</b>的<b class='flag-5'>內核</b><b class='flag-5'>編譯</b>

    STM32MP157 Linux系統移植開發篇8:Linux內核配置方法及編譯

    Linux內核配置及編譯解壓內核建立源碼目錄該目錄下以patch結尾的文件為ST官方提供的補丁文件,li
    發表于 12-04 21:06 ?9次下載
    STM32MP157 <b class='flag-5'>Linux</b>系統移植開發篇8:<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>配置方法及<b class='flag-5'>編譯</b>

    STM32MP157 Linux系統移植開發篇7:Linux內核目錄結構詳解

    Linux內核目錄結構Linux內核源代碼非常龐大,隨著版本的發展不斷增加。它使用目錄樹結構,并
    發表于 12-17 18:29 ?10次下載
    STM32MP157 <b class='flag-5'>Linux</b>系統移植開發篇7:<b class='flag-5'>Linux</b><b class='flag-5'>內核</b>目錄<b class='flag-5'>結構</b>詳解

    Linux內核編譯和運行

    想讓Linux內核代碼跑起來,得先搭建編譯和運行代碼的環境。
    發表于 06-23 11:56 ?1600次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b>的<b class='flag-5'>編譯</b>和運行

    Linux內核編譯腳本

    獲得編譯命令及選項 編譯linux時,默認不會顯示編譯的命令,如果你要獲得編譯命令及其選項,可以在make命令后面加上宏定義: make V
    的頭像 發表于 09-27 11:52 ?682次閱讀
    主站蜘蛛池模板: 国产 亚洲 中文字幕 在线 | 国产亚洲精品精品国产亚洲综合 | 国产精品亚洲专一区二区三区 | 99久久精品国产自免费 | 国产XXXXXX农村野外 | 亚洲AV久久无码精品九九软件 | 2021乱码精品公司 | 97国产蝌蚪视频在线观看 | 四虎永久在线精品国产免费 | 亚洲AV 中文字幕 国产 欧美 | 免费中文字幕视频 | 97超碰97资源在线观看视频 | 朝鲜美女bbwbbw撒尿 | 区久久AAA片69亚洲 | 97国内精品久久久久久久影视 | 年轻的老师5理伦片 | 国产精品-区区久久久狼 | 国产亚洲福利在线视频 | 国产亚洲精品V在线观看一 国产亚洲精品a在线观看app | 一本到高清视频在线观看三区 | av淘宝 在线观看 | 成人无码精品一区二区在线观看 | 小鸟酱喷水 | 久久综合久综合久久鬼色 | 国产精品18久久久久久白浆. | 国产精品青草久久福利不卡 | a在线免费观看视频 | 在线观看qvod| 成年人视频在线免费观看 | 久9青青cao精品视频在线 | 欧美乱妇狂野欧美在线视频 | 日本一二三区视频在线 | 亚洲精品无码久久久久A片 亚洲精品无码国产爽快A片百度 | 久久久久久久99精品免费观看 | 动漫美女被吸奶 | 国产人妻人伦精品9 | 丝瓜视频在线免费 | 午夜AV亚洲一码二中文字幕青青 | 亚洲香蕉网久久综合影院 | 色噜噜噜亚洲男人的天堂 | 睡觉被偷偷进入magnet |