嵌入式Linux核心編譯
實驗環境
VMware Workstation Player
Ubuntu16。04
s5p4418-kitkat。tar。bz2。aa 、 s5p4418-kitkat。tar。bz2。ab、android-patch。tgz、arm-2009q3。tar。bz2系統原始碼壓縮包
【注意】虛擬機器安裝分配硬碟記憶體應當50G以上。
Linux核心配置與編譯
將系統原始碼(
s5p4418-kitkat。tar。bz2。aa
、
s5p4418-kitkat。tar。bz2。ab
、
android-patch。tgz
、
arm-2009q3。tar。bz2
)上傳到虛擬機器
/tmp
目錄下
建立資料夾
/usr/local/src/s4418
,並設定其許可權為777
解壓目標檔案
$ cd /usr/local/src/s4418$ cat /tmp/s5p4418-kitkat。tar。bz2。a* |tar jxv$ tar jxvf /tmp/android-patch。tgz$ tar zxvf /tmp/arm-2009q3。tar。bz2
解壓成功之後
/usr/local/src/s4418
目錄如下:
進入
s5p4418-kitkat
資料夾下,開始編譯
u-boot
$ cd /usr/local/src/s4418/s5p4418-kitkat$ 。/mk -u
等待一段時間,成功編譯之後,即可在
/usr/local/src/s4418/s5p4418-kitkat/out/release
目錄下生成映象檔案
ubootpak。bin
開始進行核心配置,複製
drivertest
將提供的
drivertest
複製到
/usr/local/src/s4418/s5p4418-kitkat/kernel/drivers
資料夾內
修改
drivers/Kconfig
修改
/usr/local/src/s4418/s5p4418-kitkat/kernel/drivers/Kconfig
檔案,新增以下內容:
> source “drivers/drivertest/Kconfig”
修改
kernel/drivers/Makefile
檔案
修改
/usr/local/src/s4418/s5p4418-kitkat/kernel/drivers/Makefile
檔案,新增以下內容:
> Obj-$(CONFIG_DRIVER_VMALLOC) += drivertest/
在kernel目錄下使用
make menuconfig
重新配置核心,其中包括過載我們編寫的新裝置
myalloc
,具體設定分支時:
Device drivers– > DRIVER KMALLOC support
,選擇新增
myalloc
裝置。在選擇
DRIVER KMALLOC support
後,按空格鍵使得
<*>
出現,表示選擇該驅動。
Device drivers
目錄如下:
從
Device drivers
目錄,選擇
DERIVER KMALLOC support
展開後如下圖所示,按空格鍵,使
<*>
出現:
編譯Linux核心
首先進入到
kernel
資料夾下,執行以下命令:
$ export PATH=。。/uboot/tools:$PATH$ cp arch/arm/configs/x4418_defconfig 。config
然後使用以下命令進行編譯:
$ make uImage ARCH=arm CROSS_COMPILE=。。/prebuilts/gcc/linux-x86/arm/arm-eabi-4。7/bin/arm-eabi-
編譯成功後,會在在
/usr/local/src/s4418/kernel/arch/arm/boot/
目錄下看到編譯生成的映象檔案
uImage
。
可能遇到的問題
如果提示
make menuconfig
命令找不到,可以使用以下命令安裝
$ sudo apt-get install libncurses5$ sudo apt-get install libncurses5-dev
【文章福利】
最後小編自己整理了一些個人覺得比較好的linux核心學習書籍、影片資料共享在群檔案裡面,有需要的可以私信暗號
【核心】
自行新增免費領取哦!!!(含影片教程、電子書、實戰專案及程式碼)
原文連結:https://blog。csdn。net/liuyh73/article/details/89176769