99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式Linux內(nèi)核編譯步驟和經(jīng)驗(yàn)

Q4MP_gh_c472c21 ? 2018-03-05 14:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、準(zhǔn)備工作

a) 首先,你要有一臺(tái)PC(這不廢話么^_^),裝好了Linux

b) 安裝好GCC(這個(gè)指的是host gcc,用于編譯生成運(yùn)行于pc機(jī)程序的)、make、ncurses等工具。

c) 下載一份純凈的Linux內(nèi)核源碼包,并解壓好。

注意,如果你是為當(dāng)前PC機(jī)編譯內(nèi)核,最好使用相應(yīng)的Linux發(fā)行版的源碼包。

不過(guò)這應(yīng)該也不是必須的,因?yàn)槲以谖业腇edora 13上(其自帶的內(nèi)核版本是2.6.33.3),就下載了一個(gè)標(biāo)準(zhǔn)的內(nèi)核linux-2.6.32.65.tar.xz,并且順利的編譯安裝成功了,上電重啟都OK的。不過(guò),我使用的.config配置文件,是Fedora 13自帶內(nèi)核的配置文件,即/lib/modules/`uname -r`/build/.config

d) 如果你是移植Linux到嵌入式系統(tǒng),則還要再下載安裝交叉編譯工具鏈。

例如,你的目標(biāo)單板CPU可能是arm或mips等cpu,則安裝相應(yīng)的交叉編譯工具鏈。安裝后,需要將工具鏈路徑添加到PATH環(huán)境變量中。例如,你安裝的是arm工具鏈,那么你在shell中執(zhí)行類似如下的命令,假如有類似的輸出,就說(shuō)明安裝好了。

[root@localhost linux-2.6.33.i686]# arm-linux-gcc --version

arm-linux-gcc (Buildroot 2010.11) 4.3.5Copyright (C) 2008 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

注:arm的工具鏈,可以從這里下載:回復(fù)“ARM”即可查看。

二、設(shè)置編譯目標(biāo)

在配置或編譯內(nèi)核之前,首先要確定目標(biāo)CPU架構(gòu),以及編譯時(shí)采用什么工具鏈。這是最最基礎(chǔ)的信息,首先要確定的。

如果你是為當(dāng)前使用的PC機(jī)編譯內(nèi)核,則無(wú)須設(shè)置。

否則的話,就要明確設(shè)置。

這里以arm為例,來(lái)說(shuō)明。

有兩種設(shè)置方法():

a) 修改Makefile

打開(kāi)內(nèi)核源碼根目錄下的Makefile,修改如下兩個(gè)Makefile變量并保存。

ARCH := armCROSS_COMPILE := arm-linux-

注意,這里cross_compile的設(shè)置,是假定所用的交叉工具鏈的gcc程序名稱為arm-linux-gcc。如果實(shí)際使用的gcc名稱是some-thing-else-gcc,則這里照葫蘆畫瓢填some-thing-else-即可??傊?,要省去名稱中最后的gcc那3個(gè)字母。

b) 每次執(zhí)行make命令時(shí),都通過(guò)命令行參數(shù)傳入這些信息。

這其實(shí)是通過(guò)make工具的命令行參數(shù)指定變量的值。

例如

配置內(nèi)核時(shí)時(shí),使用

make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig

編譯內(nèi)核時(shí)使用

make ARCH=arm CROSS_COMPILE=arm-linux-

注意,實(shí)際上,對(duì)于編譯PC機(jī)內(nèi)核的情況,雖然用戶沒(méi)有明確設(shè)置,但并不是這兩項(xiàng)沒(méi)有配置。因?yàn)槿绻脩魶](méi)有設(shè)置這兩項(xiàng),內(nèi)核源碼頂層Makefile(位于源碼根目錄下)會(huì)通過(guò)如下方式生成這兩個(gè)變量的值。

SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \-e s/arm.*/arm/ -e s/sa110/arm/ \-e s/s390x/s390/ -e s/parisc64/parisc/ \-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \-e s/sh[234].*/sh/ )

ARCH?= $(SUBARCH)CROSS_COMPILE ?=

經(jīng)過(guò)上面的代碼,ARCH變成了PC編譯機(jī)的arch,即SUBARCH。因此,如果PC機(jī)上uname -m輸出的是ix86,則ARCH的值就成了i386。

而CROSS_COMPILE的值,如果沒(méi)配置,則為空字符串。這樣一來(lái)所使用的工具鏈程序的名稱,就不再有類似arm-linux-這樣的前綴,就相當(dāng)于使用了PC機(jī)上的gcc。

最后再多說(shuō)兩句,ARCH的值還需要再進(jìn)一步做泛化。因?yàn)閮?nèi)核源碼的arch目錄下,不存在i386這個(gè)目錄,也沒(méi)有sparc64這樣的目錄。

因此頂層makefile中又構(gòu)造了一個(gè)SRCARCH變量,通過(guò)如下代碼,生成他的值。這樣一來(lái),SRCARCH變量,才最終匹配到內(nèi)核源碼arch目錄中的某一個(gè)架構(gòu)名。

SRCARCH := $(ARCH)

ifeq ($(ARCH),i386) SRCARCH := x86endif

ifeq ($(ARCH),x86_64) SRCARCH := x86endififeq ($(ARCH),sparc64) SRCARCH := sparcendififeq ($(ARCH),sh64) SRCARCH := shendif

三、配置內(nèi)核

內(nèi)核的功能那么多,我們需要哪些部分,每個(gè)部分編譯成什么形式(編進(jìn)內(nèi)核還是編成模塊),每個(gè)部分的工作參數(shù)如何,這些都是可以配置的。因此,在開(kāi)始編譯之前,我們需要構(gòu)建出一份配置清單,放到內(nèi)核源碼根目錄下,命名為.config文件,然后根據(jù)此.config文件,編譯出我們需要的內(nèi)核。

但是,內(nèi)核的配置項(xiàng)太多了,一個(gè)一個(gè)配,太麻煩了。而且,不同的CPU架構(gòu),所能配置的配置項(xiàng)集合,是不一樣的。例如,某種CPU的某個(gè)功能特性要不要支持的配置項(xiàng),就是與CPU架構(gòu)有關(guān)的配置項(xiàng)。所以,內(nèi)核提供了一種簡(jiǎn)單的配置方法。

以arm為例,具體做法如下。

a) 根據(jù)我們的目標(biāo)CPU架構(gòu),從內(nèi)核源碼arch/arm/configs目錄下,找一個(gè)與目標(biāo)系統(tǒng)最接近的配置文件(例如s3c2410_defconfig),拷貝到內(nèi)核源碼根目錄下,命名為.config。

注意,如果你是為當(dāng)前PC機(jī)編譯內(nèi)核,最好拷貝如下文件到內(nèi)核源碼根目錄下,做為初始配置文件。這個(gè)文件,是PC機(jī)當(dāng)前運(yùn)行的內(nèi)核編譯時(shí)使用的配置文件。

/lib/modules/`uname -r`/build/.config

這里順便多說(shuō)兩句,PC機(jī)內(nèi)核的配置文件,選擇的功能真是多。不編不知道,一編才知道。Linux發(fā)行方這樣做的目的,可能是想讓所發(fā)行的Linux能夠滿足用戶的各種需求吧。

b) 執(zhí)行make menuconfig對(duì)此配置做一些需要的修改,退出時(shí)選擇保存,就將新的配置更新到.config文件中了。

注意-1,我們執(zhí)行此操作時(shí),內(nèi)核打開(kāi)了一組配置項(xiàng)集合,讓我們進(jìn)行配置。這一組配置項(xiàng)集合,是由我們前面設(shè)置的CPU架構(gòu)決定的。說(shuō)得細(xì)一點(diǎn),配置系統(tǒng)打開(kāi)arch/arm/Kconfig文件(make menuconfig執(zhí)行時(shí)能看到有一行“scripts/kconfig/mconf arch/arm/Kconfig”這樣的打印),這個(gè)文件又包含了其他內(nèi)核子系統(tǒng)的Kconfig文件(文件名也可能是其他名字),其他子系統(tǒng)的Kconfig文件,再層層包含下層的Kconfig文件,從而生成了全部的配置項(xiàng)集合。而每一項(xiàng)配置項(xiàng),當(dāng)前設(shè)定的值(例如,是編進(jìn)內(nèi)核,還是編譯成模塊,或者也可能是一項(xiàng)參數(shù)),則是由內(nèi)核源碼根目錄下的.config文件生成的。

注意-2,即使你不需要對(duì)配置進(jìn)行任何修改,都務(wù)必請(qǐng)執(zhí)行一下make menuconfig,然后進(jìn)入配置界面后直接退出并保存。不然的話,后面的編譯可能會(huì)遇到問(wèn)題。筆者就遇到過(guò)這個(gè)問(wèn)題。筆者猜測(cè)原因可能是,初始的配置文件是基于老版本的內(nèi)核做的,新版本的內(nèi)核可能新增了一些基礎(chǔ)功能項(xiàng),從而導(dǎo)致功能項(xiàng)之間的依賴關(guān)系發(fā)生了變化。例如,老的配置文件中選中的一個(gè)功能項(xiàng),在新版內(nèi)核中的實(shí)現(xiàn),可能依賴了更多的其他功能項(xiàng)。因此需要對(duì)舊的初始配置文件進(jìn)行一些調(diào)整,從而保證各個(gè)功能項(xiàng)的依賴條件得到滿足。經(jīng)過(guò)make menuconfig之后,筆者發(fā)現(xiàn),.config文件的內(nèi)容的確發(fā)生了變化。

四、編譯內(nèi)核

編譯本身很簡(jiǎn)單,對(duì)于2.6版本以上的內(nèi)核,執(zhí)行如下一條命令就搞定了。

make

我們不妨花點(diǎn)時(shí)間,理解一下內(nèi)核編譯的機(jī)制。

a) 內(nèi)核如何使用config文件

前面生成了.config文件,這是個(gè)文本文件,其中都是一些類似如下的內(nèi)容:

CONFIG_YENTA_ENE_TUNE=yCONFIG_YENTA_TOSHIBA=yCONFIG_PD6729=mCONFIG_I82092=m

CONFIG_MTDRAM_ERASE_SIZE=128

能看出,有些是設(shè)置了將某個(gè)功能編譯進(jìn)內(nèi)核,有些是設(shè)置了將某個(gè)功能編譯成模塊,有些是設(shè)置了某個(gè)功能的某個(gè)參數(shù)。

這個(gè)文件的語(yǔ)法,其實(shí)就是定義makefile變量的語(yǔ)法。沒(méi)錯(cuò),這就是makefile。

當(dāng)我們執(zhí)行make開(kāi)始編譯內(nèi)核的時(shí)候,編譯系統(tǒng)還會(huì)生成另一個(gè)config文件,那就是include/config/auto.conf。里面的內(nèi)容和.config類似,只是內(nèi)容少了一些。

內(nèi)核編譯的時(shí)候,頂層Makefile(位于源碼根目錄下),會(huì)包含上述config文件。

這樣就獲得了相應(yīng)的makefile變量,從而知道如何編譯內(nèi)核的各個(gè)部分。

從頂層makefile中,可以看到如下代碼:

ifeq ($(dot-config),1)# Read in config-include include/config/auto.conf

但是,這兩個(gè)config文件的關(guān)系如何,到底會(huì)包含哪個(gè),在下也沒(méi)有理清...

b) 內(nèi)核如何編譯各個(gè)子系統(tǒng)或模塊

從上一步知道,通過(guò)config文件,內(nèi)核頂層makefile已經(jīng)生成了大量的makefile變量。

另一方面,每個(gè)子系統(tǒng)或模塊,他們的源碼目錄中,都有一個(gè)Makefile,其中定義了本子系統(tǒng)或模塊所需要編譯的內(nèi)容。

接下來(lái),make工具就可以帶著頂層makefile中生成的大量的makefile變量,一層層進(jìn)入到各個(gè)子系統(tǒng)或模塊所在的目錄中去,去實(shí)現(xiàn)各目錄中Makefile中定義的內(nèi)容的編譯。

而這些目錄中的Makefile可以說(shuō)是非常簡(jiǎn)單。

如果某個(gè)目錄下,只有一個(gè)模塊hello,此模塊只有一個(gè).c文件,例如xxx.c。那么其Makefile的全部?jī)?nèi)容只有如下一行。

obj-$(CONFIG_HELLO) := hello.o

如果hello模塊,由main.c a.c b.c三個(gè)文件構(gòu)成,則Makefile也只需要兩行內(nèi)容。

obj-$(CONFIG_HELLO) := hello.o

hello-objs := main.o a.o b.o

如果一個(gè)目錄下存放了多個(gè)模塊的C文件,別是hello、hello2、hello3。hello模塊的構(gòu)成:main.c a.c b.chello2模塊的構(gòu)成:main2.c a2.c b2.chello3模塊的構(gòu)成:hello3.c此時(shí),Makefile只需要5行內(nèi)容。

obj-$(CONFIG_HELLO)+= hello.o

obj-$(CONFIG_HELLO2)+= hello2.o

obj-$(CONFIG_HELLO3)+= hello3.o

hello-objs := main.o a.o b.ohello2-objs := main2.o a2.o b2.o

由于頂層Makefile中帶有大量的變量,因此,子目錄內(nèi)Makefile中的$(CONFIG_HELLO)變量經(jīng)過(guò)解析后,會(huì)變成y或m。這樣的話,每個(gè)子目錄中的Makefile經(jīng)過(guò)解析后,等于只是定義了一個(gè)變量,變量名為obj-m或obj-y。

變量obj-m或obj-y的值,則是一串.o文件的列表。表中每一項(xiàng),代表一個(gè)功能項(xiàng)。如果變量名為obj-m,則此功能被編譯成模塊。如果變量名為obj-y,則此功能被編進(jìn)內(nèi)核。

c) 內(nèi)核代碼中,如何知道某個(gè)功能有沒(méi)有配置,配置成了什么形式

當(dāng)我們執(zhí)行make開(kāi)始編譯內(nèi)核的時(shí)候,編譯系統(tǒng)還會(huì)生成一個(gè)C語(yǔ)言頭文件

include/generated/autoconf.h

這個(gè)文件中都是類似如下的內(nèi)容:

#define CONFIG_DM9000 1

#define CONFIG_DM9000_DEBUGLEVEL 4

#define CONFIG_SND_RAWMIDI_SEQ_MODULE 1

第一行,是說(shuō)明用戶選擇了將DM9000這個(gè)驅(qū)動(dòng)編進(jìn)內(nèi)核,第二行是此驅(qū)動(dòng)的一個(gè)參數(shù)。如果用戶選擇的是將DM9000編譯成模塊,則第一行的內(nèi)容就變成如下形式了。

#define CONFIG_DM9000_MODULE 1

有了這個(gè)頭文件,某個(gè)內(nèi)核源碼的.c文件中如果包含了這個(gè)頭文件,通過(guò)#ifdef CONFIG_XXX就可以知道用戶有沒(méi)有配置XXX功能了。

好了,內(nèi)核編譯機(jī)制,就講到這里了^_^

五、安裝內(nèi)核

a) 為當(dāng)前PC機(jī)安裝內(nèi)核

依次執(zhí)行如下兩條命令,分別完成模塊和內(nèi)核的安裝。

make modules_install

make install

然后打開(kāi)boot/grub/grub.conf,會(huì)看到里面多出了一個(gè)條目。

將其中的timeout修改為5,以便開(kāi)機(jī)時(shí)有5秒的時(shí)間選擇啟動(dòng)哪一個(gè)內(nèi)核。

最后,重啟電腦。在bootloader界面出現(xiàn)時(shí),選擇啟動(dòng)新內(nèi)核即可。

b) 為嵌入式系統(tǒng)安裝內(nèi)核

這就不是一句兩句能說(shuō)清的了,具體問(wèn)題大家自己具體參考相關(guān)資料吧^_^

對(duì)于一般的arm單板,常見(jiàn)的方法是,PC機(jī)通過(guò)SecureCrt連接單板串口,通過(guò)網(wǎng)線連接單板網(wǎng)口,PC機(jī)上啟動(dòng)tftp服務(wù)器,把內(nèi)核映像zImage文件放到tftp下載目錄中。重啟單板,SecureCrt中看到u-boot啟動(dòng)倒計(jì)時(shí)的時(shí)候,按任意鍵進(jìn)入u-boot交互界面。然后在這個(gè)界面下,通過(guò)相關(guān)命令下載內(nèi)核映像zImage文件,然后通過(guò)命令將下載的zImage燒寫到單板的FLASH中。最后重啟單板即可。

至于模塊的安裝,則很簡(jiǎn)單,通過(guò)如下一條命令搞定

make -C /path/to/kernel_src_dir modules_install INSTALL_MOD_PATH=/path/to/rootfs_dir

上面的命令執(zhí)行后,模塊就已經(jīng)安裝到目標(biāo)系統(tǒng)的根文件系統(tǒng)中了 。

當(dāng)然,上面的根文件系統(tǒng)只是按一定的結(jié)構(gòu)組織起來(lái)的一組目錄與文件,他還需要被打包成具體的文件系統(tǒng)格式(如CramFS,squashfs,jffs2等),然后燒寫到flash中才能最終使用^_^。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5149

    文章

    19659

    瀏覽量

    317351

原文標(biāo)題:超實(shí)用!一位嵌入式高手摸索出的Linux內(nèi)核編譯步驟和經(jīng)驗(yàn)

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式Linux學(xué)習(xí)步驟

    NFS服務(wù) 下載Bootloader和內(nèi)核 嵌入式Linux應(yīng)用軟件開(kāi)發(fā)流程熟悉嵌入式系統(tǒng)概念以及開(kāi)發(fā)流程 建立嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境制作cro
    發(fā)表于 05-04 15:01

    嵌入式Linux學(xué)習(xí)步驟

    服務(wù) 配置NFS服務(wù) 下載Bootloader和內(nèi)核 嵌入式Linux應(yīng)用軟件開(kāi)發(fā)流程熟悉嵌入式系統(tǒng)概念以及開(kāi)發(fā)流程 建立嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境
    發(fā)表于 03-24 10:41

    嵌入式linux學(xué)習(xí)步驟

    內(nèi)核 嵌入式Linux應(yīng)用軟件開(kāi)發(fā)流程熟悉嵌入式系統(tǒng)概念以及開(kāi)發(fā)流程 建立嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境制作cross_gcc工具鏈
    發(fā)表于 10-25 10:12

    嵌入式Linux學(xué)習(xí)步驟

    系統(tǒng)概述 交叉編譯 配置TFTP服務(wù) 配置NFS服務(wù) 下載Bootloader和內(nèi)核 嵌入式Linux應(yīng)用軟件開(kāi)發(fā)流程熟悉嵌入式系統(tǒng)概念以及
    發(fā)表于 07-03 00:56

    嵌入式linux學(xué)習(xí)步驟

    嵌入式Linux應(yīng)用軟件開(kāi)發(fā)流程熟悉嵌入式系統(tǒng)概念以及開(kāi)發(fā)流程 建立嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境制作cross_gcc工具鏈 編譯并下載U-boot
    發(fā)表于 09-08 11:51

    嵌入式linux內(nèi)核編譯的相關(guān)資料分享

    嵌入式linux內(nèi)核編譯,啟動(dòng)1、編譯步驟1.1生成配置文件的方式1.2
    發(fā)表于 12-20 07:54

    嵌入式linux系統(tǒng)的學(xué)習(xí)步驟

    Bootloader和內(nèi)核 嵌入式Linux應(yīng)用軟件開(kāi)發(fā)流程熟悉嵌入式系統(tǒng)概念以及開(kāi)發(fā)流程 建立嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境制作cross_gcc工具
    發(fā)表于 07-23 13:59 ?1079次閱讀

    嵌入式linux學(xué)習(xí)步驟

    服務(wù) 下載Bootloader和內(nèi)核 嵌入式Linux應(yīng)用軟件開(kāi)發(fā)流程熟悉嵌入式系統(tǒng)概念以及開(kāi)發(fā)流程 建立嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境制作cross_
    發(fā)表于 07-24 10:56 ?552次閱讀

    嵌入式linux內(nèi)核編譯步驟

    編譯嵌入式Linux內(nèi)核都是通過(guò)make的不同命令來(lái)實(shí)現(xiàn)的,它的執(zhí)行配置文件是Makefile。Linux
    發(fā)表于 06-19 09:30 ?3045次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b><b class='flag-5'>內(nèi)核</b>的<b class='flag-5'>編譯</b><b class='flag-5'>步驟</b>

    嵌入式LINUX系統(tǒng)內(nèi)核內(nèi)核模塊調(diào)試

    嵌入式LINUX系統(tǒng)內(nèi)核內(nèi)核模塊調(diào)試(嵌入式開(kāi)發(fā)和硬件開(kāi)發(fā))-嵌入式
    發(fā)表于 07-30 13:55 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>LINUX</b>系統(tǒng)<b class='flag-5'>內(nèi)核</b>和<b class='flag-5'>內(nèi)核</b>模塊調(diào)試

    嵌入式】構(gòu)建嵌入式Linux系統(tǒng)(uboot、內(nèi)核、文件系統(tǒng))

    嵌入式Linux系統(tǒng)知識(shí)架構(gòu)及層次嵌入式Linux系統(tǒng)構(gòu)成及啟動(dòng)略析嵌入式Linux三劍客之ub
    發(fā)表于 10-20 18:20 ?42次下載
    【<b class='flag-5'>嵌入式</b>】構(gòu)建<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系統(tǒng)(uboot、<b class='flag-5'>內(nèi)核</b>、文件系統(tǒng))

    嵌入式linux編譯 ko,嵌入式linux:編譯linux驅(qū)動(dòng)模塊

    嵌入式系統(tǒng)應(yīng)用中,嵌入式linux是非常重要的一個(gè)方面,而linux驅(qū)動(dòng)編譯又是嵌入式
    發(fā)表于 11-01 16:31 ?9次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b><b class='flag-5'>編譯</b> ko,<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>:<b class='flag-5'>編譯</b><b class='flag-5'>linux</b>驅(qū)動(dòng)模塊

    Linux嵌入式Linux系統(tǒng)的移植(上篇:交叉編譯器、連接方式)

    的移植要點(diǎn)搭建交叉開(kāi)發(fā)環(huán)境bootloader的選擇與移植kernel的設(shè)置、編譯、移植和調(diào)試根文件系統(tǒng)的制作嵌入式Linux系統(tǒng)的移植基本步驟確定目標(biāo)機(jī)、主機(jī)的連接方式安裝交叉
    發(fā)表于 11-01 16:57 ?15次下載
    【<b class='flag-5'>Linux</b>】<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系統(tǒng)的移植(上篇:交叉<b class='flag-5'>編譯</b>器、連接方式)

    嵌入式Linux內(nèi)核編譯

    實(shí)驗(yàn)環(huán)境VMware Workstation PlayerUbuntu16.04kernel-3.2.tar.bz2Linux內(nèi)核編譯在ubuntu上編譯
    發(fā)表于 11-01 17:07 ?19次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>的<b class='flag-5'>內(nèi)核</b><b class='flag-5'>編譯</b>

    嵌入式linux開(kāi)發(fā)的基本步驟有哪些?

    嵌入式Linux開(kāi)發(fā)是一個(gè)復(fù)雜的過(guò)程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動(dòng)開(kāi)發(fā)、應(yīng)用程序開(kāi)發(fā)等多個(gè)方面。以下是嵌入式Linux開(kāi)發(fā)的基本步驟
    的頭像 發(fā)表于 09-02 09:11 ?1233次閱讀