linux 核心移植(基本框架)

2021-05-24 11:16:22 字數 2295 閱讀 4843

一.獲得linux原始碼

二.解壓系統原始碼

解壓命令

gzip -v rootfile   壓縮乙個檔案rootfile

gunzip rootfile.gz  解壓縮乙個檔案

tar命令

既可以壓縮檔案也可以解壓縮檔案,

決定於tar命令後面所跟引數

-a將檔案新增到現有的tar包

-c表示建立新的tar包

-t列出tar包中的內容

-x從tar包中解壓檔案

-f指定tar檔案的名稱

-j用bzip2/bunzip2來壓縮和解壓tar包,字尾為.tar.bz2

-z用gzip/gunzip來壓縮和解壓tar包,字尾為.tar.gz

&tar –xvf xx.tar  -c /usr/local

展開此壓縮檔案,並釋放到/usr/local

三.在系統中新增對arm的支援

修改makefile檔案,新增對arm體系的支援

四.修改平台輸入時鐘,新增對開發板的支援

五.製作針對於開發板的配置單

&make menuconfig

配置完成後儲存配置單

六.修改機器碼

機器碼需要與bootloader中的機器碼一致

七.編譯映象

&make zimage

映象所存的位置是在核心中配置好的,如果需要更改zimage需要更改核心中的配置選項

以上僅僅是能夠引導了,因為還未做nand flash方面的移植 八.

nand flash驅動移植

修改源**新增u_boot kernel 和檔案系統的讀取起始位址

修改nand flash讀寫匹配時間(可以不做這件事)

新增對大容量的nand flash分割槽的支援

新增對應的驅動配置,make menuconfig

根據nand flash的大小,新增相應容量支援,

&make zimage 編譯核心,

核心的編譯完成

移植yaffas 檔案系統

一.獲取yaffas原始碼

獲取yaffas補丁

解壓補丁,打上補丁

二.在配置單中新增對yaffas的支援

三.編譯出核心

這樣yaffas檔案系統就算是移植完畢了,下一步就是製作yaffas檔案系統了

製作檔案系統,首先要用busybox編譯出檔案系統所用的應用程式,然後再做檔案系統

一,編譯busybox

1.獲得busybox原始碼

修改並配置busybox(主要是新增對交叉編譯和arm架構的支援)

(遇到錯誤編譯不過去;有關於網路變數的重定義;)

解決方法:根據錯誤找到原始碼,修改原始碼或者修改配置單不選擇該項;

因為此錯誤跟network有關,我不能確定具體跟哪一項有關所以,我將所有跟網路有關的選項去掉,問題暫時解決

2.&make;make install編譯並安裝busybox

3.構建檔案系統

新建檔案目錄root_2.6.25.4

構建框架,複製busybox生成的-install下的資料夾bin sbin usr linuxrc

到root_2.6.25.4

&cp  -引數source   dest

-a檔案屬性,許可權,內容,照原樣複製

-b如果目標檔案存在,就創造乙個備份

-r如果有子目錄,子目錄同樣複製

-f如果目的地有重複檔案,則覆蓋

-l 複製符號鏈結

複製多個檔案命令

&cp -引數source1 source2  source3 。。。。dest

&cp –rf    source+*

建立dev  etc   home  lib   opt   mnt  proc  root       sys

tmp    var    web   

在usr 下建立lib 和share

4.新增內容

在dev目錄下新增兩個特殊裝置檔案

&mknod console c 5 1

&mknod null  c 1 3

etc目錄存放系統配置檔案

在etc下新增特定的檔案及內容

建立各個不同的資料夾並新增不同的內容

建立完基本的檔案框架

進行編譯

&makeyaffasimage_2 root_2.6.25.4 root_2.6.25.4.bin

根檔案系統製作完成

之後還有各種驅動的移植

驅動只有移植進核心才能起到作用

————————————————————————————嵌入式的開始

linux核心移植

1.基本開發環境 u boot版本 u boot 2012.04.01 假設u boot已經移植好 linux平台 虛擬機器下ubuntu 14.04 交叉編譯工具 gcc 4.4.3 arm開發板 mini2440 cpu s3c2440 sdram 64m,nor flash 2m,nand f...

Linux核心移植

實驗步驟 1 準備工作 2 修改頂層makefile 3 修改falsh 分割槽 4 配置編譯核心 下面以linux2.6.30.4核心移植到gec2440為例 cd linux 2.6.30.4 解壓後會在當前目錄下生成乙個linux 2.6.30.4 的核心原始碼目錄 安裝交叉工具鏈,然後修改環...

linux3 4 2核心移植詳解(二) 移植核心

解壓進入核心頂層目錄 tar xjf linux 3.4.2.tar.bz2 修改頂層makeflie arch arm cross compile arm linux 執行make s3c2410 defconfig會出現 configuration written to config 此時將預設...