linux核心維護的前期準備工作

2021-07-04 00:16:20 字數 2612 閱讀 8106

sudo apt-get install vim libncurses5-dev gcc make git exuberant-ctags

建立倉庫目錄:

mkdir -p git/kernels; cd git/kernels
同步核心原始碼到倉庫:

git clone -b staging-next git:

複製對應的config檔案為".config"到核心原始碼目錄,其中"uname -r"為獲取核心版本的命令。

cd ~/git/kernels/staging

cp /boot/config-'uname -r'* .config

修改配置 

使用如下make方式的一種進行配置:

1)如果.config不存在,執行make config/menuconfig時的預設設定由固化在各個kconfig檔案中各項目的預設值決定。   

2)如果.config存在,執行make config/menuconfig時的預設設定即是當前.config的設定,若對設定進行了修改,.config將被更新。  

3)arch/arm/defconfig是乙個預設的配置檔案,make defconfig時會根據這個檔案生成當前的.config。  

4)arch/arm/configs資料夾中有許多命名為***_defconfig的配置檔案,如果執行make ***_defconfig,當前.config檔案會由***_defconfig檔案生成。   

5)make oldconfig時的預設設定即是當前.config的設定,只有新屬性需要手動設定,並且備份當前.config檔案為.config.old,如若make config/menuconfig設定不當可用於恢復先前的.config。  

6)"make silentoldconfig"時的預設設定即是當前.config的設定,同時公升級依賴屬性。   

7)"make olddefconfig"時的預設設定即是當前.config的設定,但新屬性設定為預設值,不再提醒。

8)「make menuconfig「基於文字的彩色選單、單選列表、對話方塊。

如果使用多核處理器,則可以在make時指定多核來加快編譯速度,make -jx (x為用於編譯的核心數)

make 

或者make -jx

要安裝核心,需要公升級grub配置檔案或者使用installkernel指令碼,執行這個指令碼會安裝核心到/boot/,安裝模組到/lib/modules/x.y.z(x.y.z類似於3.1.5),並且公升級檔案 /boot/grub/grub.conf。十分幸運,ubuntu提供了這樣的指令碼,位於/sbin/installkernel。

可以使用如下指令,執行這個指令碼

sudo make modules_install install

或者su -c "make modules_install install"

linux儲存了舊的和新的核心,所以在新核心執行出錯時,我們可以引導執行舊的核心。引導程式grub可以讓我們選擇執行新的或舊的核心。

有些linux發行版本預設跳過grub引導選項介面,直接引導預設的核心。

我們可以通過如下操作,設定系統啟動時進入grub引導選項介面。 

sudo vim /etc/default/grub
刪除如下兩行

grub_hidden_timeout=0 

grub_hidden_timeout_quiet=true

如下配置項,用於配置grub引導選項介面的顯示時間。

grub_timeout=0
配置完成後,使用如下指令公升級grub。

sudo update-grub2
安裝email傳輸客戶端 

sudo apt-get install esmtp

安裝基於文字介面的email客戶端

sudo apt-get install mutt
如果需要使用git傳送郵件的命令傳送郵件,那就必須安裝git-email軟體包

sudo apt-get install git-email

安裝圖形化介面git工具

sudo apt-get install gitk

在 git/kernels/staging/ 資料夾裡,執行如下指令建立原始碼索引工程

make tags
建立索引後,為了是vim可以使用該索引工程,需要在 /etc/vim/vimrc 檔案新增如下內容

set tags=/"生成tags的路徑"/tags

例如:set tags=~/git/kernels/staging/tags

ctags的詳細使用方法,見

本博文翻譯於

軟體構建的前期準備

注 第三章 三思而行 前期準備 首先要明確 專案質量的關鍵不在於後期的測試工作,測試只是佔專案的完整質量,排查bug的一小部分,它不會糾正製造的 乙個錯誤的產品 所以關鍵在於軟體構建活動之前的問題定義和需求分析。小系統,風險低,需求簡單 中型系統,存在風險 大型系統,風險高,需求變化大 在構建之前,...

linux 核心編譯準備

在編譯linux核心之前必須做一些準備工作,首先準備的是linux作業系統,另外要注意 核心源 不要放在 usr src linux 資料夾下 這個資料夾下有很多系統庫,會和源 發生衝突 編譯linux核心需要在linux完成。有些人也許會迷惑,用linux編譯linux系統,這不是雞和蛋的問題嗎,...

(五)使用GitHub的前期準備

建立賬號成功後將得到乙個個人的公開頁面url ssh 為 secure shell 的縮寫。從客戶端來看,ssh提供兩種級別的安全驗證。第一種級別 基於口令的安全驗證 只要你知道自己帳號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密,但是不能保證你正在連線的伺服器就是你想連線的伺服器。可能會...