中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于Linux 內(nèi)核配置系統(tǒng)淺析

        關(guān)于Linux 內(nèi)核配置系統(tǒng)淺析

        作者: 時(shí)間:2012-08-29 來(lái)源:網(wǎng)絡(luò) 收藏

        8) Source 語(yǔ)句

        source /word/

        /word/ 是文件名,source 的作用是調(diào)入新的文件。

        3.3 缺省

        支持非常多的硬件平臺(tái),對(duì)于具體的硬件平臺(tái)而言,有些就是必需的,有些就不是必需的。另外,新增加功能的正常運(yùn)行往往也需要一定的先決條件,針對(duì)新功能,必須作相應(yīng)的配置。因此,特定硬件平臺(tái)能夠正常運(yùn)行對(duì)應(yīng)著一個(gè)最小的基本配置,這就是缺省配置。

        中針對(duì)每個(gè) ARCH 都會(huì)有一個(gè)缺省配置。在向代碼增加了新的功能后,如果新功能對(duì)于這個(gè) ARCH 是必需的,就要修改此 ARCH 的缺省配置。修改方法如下(在 內(nèi)核根目錄下):

        備份 .config 文件

        cp arch/arm/deconfig .config

        修改 .config

        cp .config arch/arm/deconfig

        恢復(fù) .config

        如果新增的功能適用于許多的 ARCH,只要針對(duì)具體的 ARCH,重復(fù)上面的步驟就可以了。

        3.4 help file

        大家都有這樣的經(jīng)驗(yàn),在配置 Linux 內(nèi)核時(shí),遇到不懂含義的配置選項(xiàng),可以查看它的幫助,從中可得到選擇的建議。下面我們就看看如何給給一個(gè)配置選項(xiàng)增加幫助信息。

        所有配置選項(xiàng)的幫助信息都在 document.tion/Configure.help 中,它的格式為:

        給出本配置選項(xiàng)的名稱(chēng), 對(duì)應(yīng)配置變量, 對(duì)應(yīng)配置幫助信息。在幫助信息中,首先簡(jiǎn)單描述此功能,其次說(shuō)明選擇了此功能后會(huì)有什么效果,不選擇又有什么效果,最后,不要忘了寫(xiě)上如果不清楚,選擇 N(或者)Y,給不知所措的用戶(hù)以提示。

        4. 實(shí)例

        對(duì)于一個(gè)開(kāi)發(fā)者來(lái)說(shuō),將自己開(kāi)發(fā)的內(nèi)核代碼加入到 Linux 內(nèi)核中,需要有三個(gè)步驟。首先確定把自己開(kāi)發(fā)代碼放入到內(nèi)核的位置;其次,把自己開(kāi)發(fā)的功能增加到 Linux 內(nèi)核的配置選項(xiàng)中,使用戶(hù)能夠選擇此功能;最后,構(gòu)建子目錄 Makefile,根據(jù)用戶(hù)的選擇,將相應(yīng)的代碼編譯到最終生成的 Linux 內(nèi)核中去。下面,我們就通過(guò)一個(gè)簡(jiǎn)單的例子--test driver,結(jié)合前面學(xué)到的知識(shí),來(lái)說(shuō)明如何向 Linux 內(nèi)核中增加新的功能。

        4.1 目錄結(jié)構(gòu)

        test driver 放置在 drivers/test/ 目錄下:

        $cd drivers/test

        $tree

        .

        |-- Config.in

        |-- Makefile

        |-- cpu

        | |-- Makefile

        | `-- cpu.c

        |-- test.c

        |-- test_client.c

        |-- test_ioctl.c

        |-- test_proc.c

        |-- test_queue.c

        `-- test

        |-- Makefile

        `-- test.c

        4.2 配置文件

        1) drivers/test/Config.in

        #

        # TEST driver configuration

        #

        mainmenu_option next_comment

        comment 'TEST Driver'

        bool 'TEST support' CONFIG_TEST

        if [ $CONFIG_TEST = y ]; then

        tristate 'TEST uSER-space interface' CONFIG_TEST_USER

        bool 'TEST CPU ' CONFIG_TEST_CPU

        fi

        endmenu

        由于 test driver 對(duì)于內(nèi)核來(lái)說(shuō)是新的功能,所以首先創(chuàng)建一個(gè)菜單 TEST Driver。然后,顯示 TEST support,等待用戶(hù)選擇;接下來(lái)判斷用戶(hù)是否選擇了 TEST Driver,如果是(CONFIG_TEST=y),則進(jìn)一步顯示子功能:用戶(hù)接口與 CPU 功能支持;由于用戶(hù)接口功能可以被編譯成內(nèi)核模塊,所以這里的詢(xún)問(wèn)語(yǔ)句使用了 tristate(因?yàn)?tristate 的取值范圍包括 y、n 和 m,m 就是對(duì)應(yīng)著模塊)。

        2) arch/arm/config.in

        在文件的最后加入:source drivers/test/Config.in,將 TEST Driver 子功能的配置納入到 Linux 內(nèi)核的配置中。

        4.3 Makefile

        1)drivers/test/Makefile

        # drivers/test/Makefile

        #

        # Makefile for the TEST.

        #

        SUB_DIRS :=

        MOD_SUB_DIRS := $(SUB_DIRS)

        ALL_SUB_DIRS := $(SUB_DIRS) cpu

        L_TARGET := test.a

        export-objs := test.o test_client.o

        obj-$(CONFIG_TEST) += test.o test_queue.o test_client.o

        obj-$(CONFIG_TEST_USER) += test_ioctl.o

        obj-$(CONFIG_PROC_FS) += test_proc.o

        subdir-$(CONFIG_TEST_CPU) += cpu

        include $(TOPDIR)/Rules.make

        clean:

        for dir in $(ALL_SUB_DIRS); do make -C $$dir clean; done

        rm -f *.[oa] .*.flags

        drivers/test 目錄下最終生成的目標(biāo)文件是 test.a。在 test.c 和 test-client.c 中使用了 EXPORT_SYMBOL 輸出符號(hào),所以 test.o 和 test-client.o 位于 export-objs 列表中。然后,根據(jù)用戶(hù)的選擇(具體來(lái)說(shuō),就是配置變量的取值),構(gòu)建各自對(duì)應(yīng)的 obj-* 列表。由于 TEST Driver 中包一個(gè)子目錄 cpu,當(dāng) CONFIG_TEST_CPU=y(即用戶(hù)選擇了此功能)時(shí),需要將 cpu 目錄加入到 subdir-y 列表中。

        2)drivers/test/cpu/Makefile

        # drivers/test/test/Makefile

        #

        # Makefile for the TEST CPU

        #

        SUB_DIRS :=

        MOD_SUB_DIRS := $(SUB_DIRS)

        ALL_SUB_DIRS := $(SUB_DIRS)

        L_TARGET := test_cpu.a

        obj-$(CONFIG_test_CPU) += cpu.o

        include $(TOPDIR)/Rules.make

        clean:

        rm -f *.[oa] .*.flags

        3)drivers/Makefile

        ……

        subdir-$(CONFIG_TEST) += test

        ……

        include $(TOPDIR)/Rules.make

        在 drivers/Makefile 中加入 subdir-$(CONFIG_TEST)+= test,使得在用戶(hù)選擇 TEST Driver 功能后,內(nèi)核編譯時(shí)能夠進(jìn)入 test 目錄。

        4)Makefile

        ……

        DRIVERS-$(CONFIG_PLD) += drivers/pld/pld.o

        DRIVERS-$(CONFIG_TEST) += drivers/test/test.a

        linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉