為arm平台構建linux核心樹

2021-07-03 17:36:43 字數 1768 閱讀 8517

前面說到要編寫linux 2.6的驅動,必須建立核心原始碼樹,前面建立的原始碼樹是針對i686平台的,但是我麼嵌入式系統用的是arm平台,所以也要建立arm平台的核心原始碼樹。

第一步:先解壓源**

tar -jxvf linux-2.6.30.tar.bz2

第二步:進入剛才解壓後的目錄linux-2.6.30

cd linux-2.6.30

然後執行make mrproper命令,該命令確保源**目錄下沒有不正確的.o檔案以及檔案的互相依賴。

把檔案中的

arch ?= $(subarch)改為:

arch =arm

把 cross_compile ?=

改為 cross_compile   =arm-linux-

接著就是配置核心,可以使用下面命令中的乙個:

make config(基於文字的最為傳統的配置介面,不推薦使用)

make menuconfig(基於文字選單的配置介面)

make xconfig(要求qt被安裝)

make gconfig(要求gtk+被安裝)

配置內容可參考相關文獻。

第三步:配置過核心之後,就可以進行編譯了。執行以下命令中的一種:

make (生成乙個壓縮的核心影像)

make bzimage(生成乙個使用gzip壓縮的核心)

第四步:

執行make modules(編譯在核心配置時選中的模組)在此過程中可能會遇到某些模組不能編譯通過,把相應模組去除再執行

make modules_install安裝核心

安裝的核心在/lib/modules/2.6.30裡。

至此,針對arm平台的核心樹安裝完成。

核心最上層的makefile在核心編譯過程中起了決定性的作用,在編譯過程中遇到的許多問題都可以在裡面得到解決的思路,希望大家多看看。

在嵌入式系統載入模組時可能會遇到如下錯誤:

embedsky_hello: version magic '2.6.30.4 mod_unload armv4 ' should be '2.6.30.4-embedsky mod_unload armv4 '

insmod: cannot insert 'embedsky_hello.ko': invalid module format

出錯原因:模組版本與核心版本不匹配!

解決辦法:匯入預設配置資訊,進入menuconfig 繼續配置general config ->......local version -> 加入如下內容:「-embedsky 」退出儲存為 .config ,重新編譯核心,將embedsky_hello.ko複製到板子,然後再「#insmod embedsky_hello.ko,然後就congratulations,you succeed啦!

編譯的核心樹最好是生成開發板映象的核心,不然也會編譯出錯,在編譯開發板核心的時候可能會出現

in function 'cx88_audio_initdev':

drivers/media/video/cx88/cx88-alsa.c:806: error: implicit declaration of function 'snd_card_create'

出現這些錯誤的原因是核心配置時多選了幾項重複的模組,只要在device driver-->********** devices-->

video capture adapters中,或再v4l usb devices中去除cx88等模組

或者直接用embedsky的配置檔案

LINUX 構建LNMP平台

2.1 問題 沿用練習一,通過調整nginx服務端配置,實現以下目標 1.配置fast cgi支援php網頁 2.建立php測試頁面,測試使用php連線資料庫的效果 2.2 方案 使用2臺rhel7虛擬機器,其中一台作為lnmp伺服器 192.168.4.5 另外一台作為測試用的linux客戶機 1...

ARM核心板 迅為4412核心板 核心板中的小新潮

itop 4412核心板是迅為電子推出的一款高階四核核心板,配備三星exynos 4412四核處理器,主頻為1.4ghz,內建8gb儲存空間。該板設計小巧。配備三星自家電源管理晶元,具有9路dc dc和28路ldo輸出電源 在 20 至70 範圍的高低溫執行測試中執行良好 這款核心板不僅擁有強大的配...

arm平台linux移植ethtool工具

1.git.kernel.org pub scm network ethtool ethtool.git 2.tar xzf ethtool 3.15.tar.gz cd ethtool 3.15 3.原始碼中是沒有configure檔案的首先要編譯生成該檔案 4.依次執行 aclocal auto...