日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

(二)linux内核镜像制作

發布時間:2025/3/8 linux 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (二)linux内核镜像制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(一)目的

在進行嵌入式開發的時候,我們往往會先在電腦上安裝交叉編譯器,然后編譯目標板上的代碼,最后把代碼下載到電路板中,嵌入式系統組成包括:BootLoader+kernel+filesystem+application,前面我們已經制作好了BootLoader,這一節我們制作一個kernel鏡像

(二)工具

  • linux-3.5版本內核
  • Ubuntu 16.04
  • linux交叉編譯環境(我已經安裝過,沒有安裝的可以下載arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)

這里說明一點我們獲取linux內核一般可以從linux官方獲取,或者從開發板的廠商那獲取,我比較推薦第二種,因為第一種還需要我們進行有關硬件的配置

(三)操作流程

1、將linux-3.5-20141114.tar拷貝到Linux系統中

2、解壓linux-3.5-20141114.tar

tar -xvf linux-3.5-20141114.tar

3、進入解壓后的目錄

make menuconfig:打開配置界面,若無法打開需要安裝庫 apt install ncurses-dev


運行make menuconfig打開上面的窗口可以進行內核功能的刪減
按下面的步驟修改一個地方:

System Type ---> [ ] Support TrustZone-enabled Trusted Execution Environment //按空格取消該模塊

4、修改內核的頂層Makefile
因為最終內核運行到arm開發板,編譯需要在PC端,所以需要使用到交叉編譯器,在Makefile里指定交叉編譯器為arm-linux-

5、拷貝Linux3.5目錄下的tiny4412_linux_defconfig為默認配置文件

cp tiny4412_linux_defconfig .config

6、編譯內核

make -j8

若出現一下錯誤:

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373. /driver/linux-3.5/kernel/Makefile:133: recipe for target 'kernel/timeconst.h' failed make[1]: *** [kernel/timeconst.h] Error 255 make[1]: *** 正在等待未完成的任務....

修改kernel/timeconst.pl的373行:

if (!defined(@val)) {@val = compute_values($hz);} 為 if (@val) {@val = compute_values($hz);}

7、燒寫內核到SD卡

編譯完成會提示:Kernel: arch/arm/boot/zImage is ready

將SD卡插入讀卡器并連接到Ubuntu

cd arch/arm/boot dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdb seek=1057

大概持續40秒

8、驗證是否燒寫成功
將SD卡拔出插到自己的開發板上驗證,啟動后在串口里會提示內核啟動的流程即為成功

總結

以上是生活随笔為你收集整理的(二)linux内核镜像制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。