嵌入式之路–核心啟動參數解析

來源:互聯網
上載者:User
文章目錄
  • 一、核心獲得啟動參數的四種形式
  • 二、核心啟動參數的格式與含義
  • 三、參考資料

 

核心啟動參數解析

原創聲明:作者保留一切權力,轉載請註明出處。

所有資料均來源於互連網,若侵犯了您的權利,請告知,作者一定修正之。

一、核心獲得啟動參數的四種形式

>>>>>>>>> 引用

[1]Linux系統 kernel參數傳遞方式詳細解析

1、最常用的方式,就是在 make config裡修改“ General Setup”子功能表中的“ Defaultkernel command string”選項,通過修改這個選項來修改 include/linux/autoconf.h檔案中的 CONFIG_CMDLINE宏。

 

2、有的時候為了省去 make menuconfig的時間,並且核心命令也是固定的,就可以寫死核心 arch/arm/setup.c檔案 default_command_line,這個變數本來是初始化為 CONFIG_CMDLINE的。

 

3、除了方法 1之外,另外一種正規的方法就是將核心命令寫入核心參數表中,然後通過 start_kernel()->setup_arch()->parse_tags()->parse_tag()->parse_tag_cmdline()函數來將核心參數表中的核心命令覆蓋 default_command_line變數(當然你首先得有核心參數表)。

 

4、最後,有的板子會採取直接將核心命令通過 bootloader傳遞給核心

<Q001>怎樣傳遞呢?

<A001>[2]核心參數問題

    在 UBOOT中使用 bootm命令可以將參數傳遞給核心(其實就是將參數放到 DRAM_BASE+0x00000100處,然後核心從此處讀取)。

     DRAM_BASE+0x00000100處是否有 TAG LIST,有的話從此處讀取;

若沒有,則使用 default_command_line,這個就是在配置核心 make menuconfig的時候設定的,即 CONFIG_CMDLINE。

>>>>>>>>> 引用

 

二、核心啟動參數的格式與含義

命令列的格式類似於下面的樣子

CONFIG_CMDLINE="mem=64M console=ttySAC0 root=/dev/ram initrd=0xc0800000,0x00800000 ramdisk_size=2048 rw"

 

<Q002>每個關鍵字分別代表什麼含義,系統怎樣解析呢?

<A002>從原理上,簡單地講,核心是做字串解析。首先對整個字串按空格分隔開,每個子串又由等號分隔。等號左邊是系統預定義的關鍵字,等號右邊是對應關鍵字解析函數的參數。

>>>>>>>>> 引用

[3]Linux核心啟動參數詳解

所有型如“ name= value”參數,如果沒有被上面所述的設定函數 [指系統預定義關鍵字的解析函數 ]接收,將被解釋為系統啟動後的環境變數,

比如“ TERM=vt100”就會被作為一個啟動時參數。

 

所有沒有被核心設定函數接收也沒又被設定成環境變數的參數都將留給 init進程處理,比如“ single”。

>>>>>>>>> 引用

 

<Q003> 系統已經支援哪些關鍵字,即其含義是什嗎?

<A003>

最詳盡的解釋無疑來自《 Linux Kernel in a Nutshell》 一書,第九章。

下面是國內部落格轉載的一個串連地址。

[4]Linux Kernel in a Nutshell  

 

 

你還可以添加自訂的啟動參數和對應的解析函數。

[5]增加自訂的核心啟動參數

三、參考資料

[1]Linux系統 kernel參數傳遞方式詳細解析

http://www.bitscn.com/os/linux/200710/116553.html

[2]核心參數問題
http://linux.chinaunix.net/techdoc/system/2007/08/25/966304.shtml

[3]Linux核心啟動參數詳解 http://edu.codepub.com/2009/1213/18715.php

[4]Linux Kernel in a Nutshell  
http://blog.chinaunix.net/u2/76263/showart_1212604.html

[5]增加自訂的核心啟動參數
http://linux.chinaunix.net/techdoc/install/2009/08/31/1133192.shtml

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.