一.獲得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 此時將預設...