內核編譯

內核編譯

程序包的編譯安裝

./configure,make,make install
./configure檢查編譯環境依賴關系,并設定參數
make 執行編譯操作
make install 安裝
二進制
庫文件
幫助文檔
配置文件

前提:開發環境(開發工具,開發庫),頭文件:/usr/include

開源:源代碼

發行版,就是把源代碼拿過來,組織成程序。
    以“通用”的目標

前提:
    1、準備好開發環境
    2、獲取目標主機上硬件設備的相關信息
    3、獲取到目標主機系統功能的相關信息,例如要啟用的文件系統
    4、獲取內核源代碼包:www.kernel.org

準備開發環境:
    centos6
        包組
            development tools
            server platform development

    centos7
        包組
            development tools
            server platform development

獲取硬件信息

cpu

lscpu
cat /proc/cpuinfo
[root@centos7 home]# yum -y install x86info


[root@centos7 home]# x86info -a

pci

lspci
    -v
    -vv

usb

lsusb
    -v
    -vv

lsblk

硬盤

了解全部硬件設備信息
hal-device

內核編譯過程

獲取內核源代碼包
-rw-r–r– 1 root root 90398912 Aug 19 21:28 linux-4.7.1.tar.x
建議放到/usr/src/目錄下
再創為其創建名為linux的軟連接。(一般針對當前系統編譯驅動時,會去找這個linux目錄)
多內核時,支持回滾。
[root@centos7 ~]# tar -xf linux-4.7.1.tar.xz -C /usr/src/

[root@centos7 src]# ln -s linux-4.7.1/ linux
[root@centos7 src]# ll
total 4
drwxr-xr-x. 2 root root 6 Aug 12 2015 debug
drwxr-xr-x. 3 root root 34 Aug 23 16:38 kernels
lrwxrwxrwx 1 root root 12 Sep 11 14:45 linux -linux-4.7.1/
drwxrwxr-x 24 root root 4096 Aug 16 15:35 linux-4.7.1

進入linux目錄下
make help
可以查看幫助。

yum install ncruses-devel

步驟

tar -xf linux-4.7.1.tar.xz -C /usr/src/
ln -s linux-4.7.1/ linux
cd linux

make menuconfig 配置內核選項
make -j # 啟用幾個內核 編譯內核,可使用-j
make moudules_install 安裝內核模塊
make install 安裝內核

screen
一個終端上打開多個屏幕
打開 screen
拆除 ctrl + a,d
列出 screen -ls
連接至 screen -r SCREEN_ID
關閉screen 連接至,而后執行exit

紅帽系列發行版都把內核的配置模板放在/boot/config-3.10.0-327.el7.x86_64
并不是所有發行版都有的
內核自帶功能,/proc/cofig.gz 展開也是模板。

復制到/usr/src/linux/目錄下改名為.config

1、配置內核選項
支持“更新”模式進行配置,在已有.config文件的基礎上進行“修改”配置
make config 基于命令以遍歷的方式去配置內核中可配置的每個選項。
make menuconfig基于ncureses的文本配置窗口
make gconfig 基于GTK開發環境的窗口界面,包租“桌面開發平臺”
make xconfig 基于QT開發環境的窗口界面
支持“全新配置”模式進行配置
make defconfig 基于內核為目標平臺提供的默認配置為模板進行配置
make allnoconfig 所有選項均為no

2、編譯

多線程編譯 make -j #
編譯內核中的部分代碼
    只編譯某子目錄中的相關代碼
        pwd目錄必須為 /usr/src/linux
        make path/to/dir
    只編譯一個特定的模塊
        make path/to/file.ko

原創文章,作者:yyw,如若轉載,請注明出處:http://www.www58058.com/47816

(0)
yywyyw
上一篇 2016-09-19 16:30
下一篇 2016-09-19 17:14

相關推薦

  • N28-第四周

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
    2、編輯/etc/group文件,添加組hadoop。
    3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
    4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
    5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
    6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
    7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
    8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
    9、找出/etc/passwd文件中的一位數或兩位數;
    10、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
    11、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
    12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
    13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;

    2017-12-30
  • Linux中設置磁盤配額和RAID

    第一篇:設置磁盤配額 綜述     ?在內核中執行     ?以文件系統為單位啟用     ?對不同組或者用戶的策略不同       根據塊或者節點進行限制         ?執行軟限制(soft limit)   &n…

    Linux干貨 2016-09-05
  • LVM

       本節主要為raid和LVM相關 一、作業 1、創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/test目錄,且默認有acl掛載選項 2、寫一個腳本,完成如下功能: (1) 列出當前系統識別到的所有磁盤設備 (2) 如磁盤數量為1,則顯示其空間使用信息 …

    Linux干貨 2016-08-30
  • 用戶、組及文件相關的一些命令

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1,因為是目錄文件所以要有-r ls -ld /etc/skel chmod 000 -R /home/tuser1 ls -al /home/tuser1/ 2、編輯/…

    2017-07-23
  • Linux交換分區的創建和調整

    概述 本文對swap進行簡要介紹,以及系統安裝后(在運行中)如何建立或調整swap分區。 文中演示環境為: 什么是swap space? 交換分區,即swap space。它將某段磁盤空間獨立劃分出來,當物理內存不夠的情況下,系統先把物理內存中暫時不用的數據,暫存到交換空間,騰出內存空間來,以保證程序的運行;當swap中存儲的頁面被訪問到時,系統會將其重新載…

    Linux干貨 2016-08-30
  • Linux設備驅動Hello World程序介紹

    by Valerie Henson07/05/2007 (譯者注:本文的例子是只能在linux的2.6內核下使用的,2.6以上的內核,譯者沒有做過實驗,2.4是要修改make文件才能運行。) 本文的出處:這里 自古以來,學習一門新編程語言的第一步就是寫一個打印“hello world”的程序(可以看《hello world 集中營》這個帖子供羅列了300個“…

    Linux干貨 2015-04-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-23 09:18

    寫的不錯,內核編譯多我們來說作為我們基本了解即可,

欧美性久久久久