IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育


Linux內核配置與編譯

分享到:
           

    1.內核配置

    編譯內核之前要先配置。為了正確、合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,主要有以下4個方面需要考慮。

    ● 尺寸小。自己定制內核可以使代碼尺寸減小,運行將會更快。
    ● 節省內存。由于內核部分代碼永遠占用物理內存,定制內核可以使系統擁有更多的可用物理內存。
    ● 減少漏洞。不需要的功能編譯進入內核可能會增加被系統攻擊者利用的機會。
    ● 動態加載模塊。根據需要動態地加載模塊或者卸載模塊,可以節省系統內存。但是,將某種功能編譯為模塊方式會比編譯到
       內核內的方式速度要慢一些。

    Linux內核源代碼支持20多種體系結構的處理器,還有各種各樣的驅動程序。因此,在編譯前必須根據特定平臺配置內核源代碼。Linux內核有上千個配置選項,配置相當復雜。所以,Linux內核源代碼組織了一個配置系統。

    Linux內核配置系統可以生成內核配置菜單,方便內核配置。配置系統主要包含Makefile、Kconfig和配置工具,可以生成配置接口。配置接口是通過工具來生成的,工具通過Makefile編譯執行,選項則是通過各級目錄的Kconfig文件定義的。

    Linux內核配置命令有make config、make menuconfig和make xconfig,它們分別是字符接口、ncurses光標菜單和X-window圖形窗口的配置接口。字符接口配置方式需要回答每一個選項提示,逐個回答內核上千個選項幾乎是行不通的;圖形窗口的配置接口很好,光標菜單也方便實用。例如,執行make xconfig,主菜單接口如圖1.5所示。


圖1.5 配置內核

    2.內核編譯

    (1)下載內核源碼。

    從//www.kernel.org/pub/Linux/kernel/v2.6/Linux-2.6.14.tar.bz2下載Linux-2.6.14內核(或者更高的版本)至/source/kernel目錄。解開壓縮包,并進入內核源碼目錄,具體過程如下:

    $ tar jxvf Linux-2.6.14.tar.bz2
    $ cd Linux-2.6.14

    (2)修改內核目錄樹根下的Makefile,指明交叉編譯器:

    $ vim Makefile

    找到ARCH和CROSS_COMPILE,修改:

    ARCH = arm
    CROSS_COMPILE = arm-linux-gcc

    (3)設置環境變量:

    $ export PATH=$PATH:/usr/local/arm/3.3.2/bin

    (4)配置內核產生.config文件:

    $ cp arch/arm/configs/smdk2410_defconfig .config

    (5)輸入內核配置命令,進行內核選項的選擇,命令如下:

    $ make menuconfig

    命令執行成功以后,會看到如圖1.6所示的界面。其實我們在圖1.5中看到過同樣功能的界面,那個圖也是內核選項配置界面,只不過那個界面在X-window下才能執行。


圖1.6 內核選項配置界面

    在各級子菜單項中,選擇相應的配置時,有3種選擇,它們代表的含義分別如下。

    ● Y:將該功能編譯進內核。
    ● N:不將該功能編譯進內核。
    ● M:將該功能編譯成可以在需要時動態插入到內核中的模塊。

    如果使用的是make xconfig,使用鼠標就可以選擇對應的選項。如果使用的是make menuconfig,則需要使用回車鍵進行選取。

    在每一個選項前都有個括號,有的是中括號,有的是尖括號,還有的是圓括號。用空格鍵選擇時可以發現,中括號中要么是空,要么是“*”;而尖括號中可以是空、“*”和“M”。這表示前者對應的項要么不要,要么編譯到內核中;后者則多一樣選擇,可以編譯成模塊。而圓括號的內容是要你在所提供的幾個選項中選擇一項。

    在編譯內核的過程中,麻煩的事情就是配置這步工作了。初次接觸Linux內核的開發者往往弄不清楚該如何選取這些選項。實際上,在配置時,大部分選項可以使用其默認值,只有小部分需要根據用戶不同的需要選擇。選擇的原則是將與內核其他部分關系較遠且不經常使用的部分功能代碼編譯成為可加載模塊,這有利于減小內核的長度,減少內核消耗的內存,簡化該功能相應的環境改變時對內核的影響;不需要的功能就不要選;與內核關系緊密而且經常使用的部分功能代碼直接編譯到內核中。

    (6)執行下面的命令開始編譯:

    $ make zImage

    在編譯過程中會出現一些錯誤,可以看到錯誤發生在/drivers/video/console中。有時是因為我們選擇了“VGA text console”選項,去掉這個選項即可。這個選項在“Device Driver”→“Graphics Support”→“console display driver support”下。

    總之,這類錯誤是由于內核配置不當引起的,不需要修改內核源碼。

    如果按照默認的配置,沒有改動的話,編譯后系統會在arch/arm/boot目錄下生成一個zImage文件,這個文件就是剛剛生成的內核文件。我們需要把它加載到開發板中運行,加以驗證。

    (7)下載Linux內核。加載到開發板的方式是通過U-Boot提供的網絡功能,直接下載到開發板的內存中。首先把內核復制到tftp服務器的根目錄下(見tftp配置文件說明)。在我們的實驗中,這個目錄在/tftpboot下,所以我們在內核源碼目錄中直接執行下面命令:

    $ cp arch/arm/boot/zImage /tftpboot

    啟動開發板,在U-Boot界面下輸入下面一組命令:

    FS2410# printenv (查看當前開發板的環境變量)
    FS2410# setenv ipaddr 192.168.1.134 (設置開發板的IP地址為192.168.1.134)
    FS2410# setenv serverip 192.168.1.23 (設置開發主機的IP地址為192.168.1.23)
    FS2410# setenv bootargs console=ttySAC0,115200 (設置終端為串口1,波特率115200)
    FS2410# saveenv (保存環境變量)
    FS2410# ping 192.168.1.23 (測試網絡是否暢通)

    如果網絡暢通,執行下面的命令下載內核:

    FS2410#tftp 30008000 zImage (把Linux內核下載到開發板內存的30008000地址處)
    FS2410#go 30008000 (啟動內核)

    此時可以在超級終端中觀察到內核的啟動現象,不過內核在此時還不會成功啟動,因為還需要做一些其他的移植工作。

    本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》

   熱點鏈接:

   1、Linux內核結構介紹
   2、Linux內核主要功能介紹
   3、Linux內核模塊程序結構
   4、如何分析Linux內核源碼
   5、嵌入式linux內核的五個子系統

更多新聞>> 

主站蜘蛛池模板: 镗铣头-铣头-数控铣头-高密市振飞机械制造有限公司 | 烘干机|烘干房|网带烘干机|滚筒烘干机|炒货机-河南曼瑞通机械有限公司 | 磨料磨具网_磨料磨具行业B2B门户开创者| 耐磨锤头|合金锤头|高铬耐磨锤头|破碎机锤头|双金属双液复合锤头_巩义东辰实业 合金耐磨锤头铸造厂 | 网站主页 - 河北天成药业股份有限公司 | 梦想加空间 - 一个程序猿的个人博客网站 | 油漆颜料砂磨机,油墨水砂磨机,水性涂料砂磨机-常州市奥能达机械设备有限公司 | 射频导纳物位开关|雷达液位计|安全光栅光幕传感器|音叉料位开关|两级跑偏开关|双向拉绳开关|纵向撕裂保护装置-山东卓信机械有限公司 | 学校洗碗机-郑州洗碗机厂家-商用洗碗机-郑州旭申环保科技有限公司 | 久久91精品久久91综合_国产亚洲自拍一区_国产精品第1页_亚洲高清视频一区_91成人午夜在线精品_亚洲国产精品网站在线播放_亚洲国产成人久久综合区_国产精品亚洲专区在线观看_免费视频精品一区二区三区 | 纳米砂磨机|纳米研磨机|实验室砂磨机-无锡市少宏粉体科技有限公司 | 深圳车牌识别系统厂家_人脸识别厂家_通道闸厂家_车位引导系统_智慧社区管理系统_深圳市利普诺科技有限公司官网 | 上海增晨贸易有限公司-PC端 | 液态硅胶制品厂家_液态硅胶包胶加工_LSR液态硅胶模具厂_液体硅胶注射成型_广东盈泰 | 惠普工作站_联想工作站_HPE服务器_H3C服务器-河南金铭科技有限责任公司 | 郑州空气能热水器,郑州空气能热水器经销商,郑州空气能热水器维修,郑州空气能热水器安装 | 江苏吉宏特专用汽车制造有限公司_联合吸污车-下水道管道清洗疏通车-综合养护吸排车 | 有机肥设备|有机肥生产线|有机肥料生产设备|河南通达重工科技有限公司 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 绝缘油介电强度测试仪|d33压电测试仪|准静态d33压电测量仪厂家直销-上海蓝巢电气有限公司【官网】 | 皮带清扫器-皮带聚氨酯合金空段输送带清扫器刮刀厂家-衡水格锐特机械科技有限公司 | 消字号牙膏代加工|面膜代加工|凝胶贴牌|漱口水贴牌-南京三盾药业有限公司-消字号牙膏代加工|面膜代加工|凝胶贴牌|漱口水贴牌-南京三盾药业有限公司 | 正规网上赚钱网站「百赚网」专注在家赚钱的网络赚钱平台 | 原子灰厂家—长兴宝迪环保科技有限公司【官网】 | 上海五相仪器仪表有限公司-鼓风干燥箱-拍击式无菌均质器生产厂家 | 气泡膜机_气垫膜机_缠绕膜机_瑞安市优特机械厂 | 机械设备回收_二手机器回收_设备拆除回收_广州益美机械设备回收公司 | 浙江日新电气有限公司| 气调包装机厂家-真空包装机价格-气调包装机-锁鲜包装机-江苏大江智能装备有限公司 | 烘干机_回转窑_破碎机_制砂机_洗砂机_球磨机-瑞光金属制品 | 长沙设计公司丨品牌策划设计服务丨画册设计-石青|长沙画册设计 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 阻垢剂|缓蚀剂|杀菌剂|分散剂|水处理剂|印染助剂|水处理药剂|造纸助剂|膜阻垢剂|缓蚀剂|HEDP|ATMP|螯合剂-山东凯瑞化学有限公司 水处理药剂生产厂家 | 南京自学考试网-南京自考报名 | 智慧园区平台_智慧园区智慧写字楼运营平台领导品牌 | 汽车漆|汽车油漆|工业油漆涂料|汽车漆加盟-佛山市科涂涂料有限公司 | 太阳能路灯生产厂家-郑州太阳能高杆灯价格-道路照明智能路灯-河南坤德照明 | 微型直流减速电机-直流永磁电机-直流永磁电机厂家-微型直流减速电机定制-东莞市鑫辉传动科技有限公司 - 鑫辉传动科技 | 河北热风机,电热暖风机,燃油暖风机,工业暖风机厂家安装,批发-河北嘉鹏冷暖风机有限公司 | 河南新华电脑学院-郑州电脑学校-计算机培训学校-郑州新华电脑学院 |