kernel 2.6.23.9 移植到 S3C2412平臺
我使用的不是SMDK2412的開發(fā)板,而是公司已經(jīng)出貨的2412的機器,原來用的是自己的一個OS,現(xiàn)在打算在他上面運行l(wèi)inux.
編譯2.6的內(nèi)核,需要比較新的gcc, 我暫時能找到的新版arm-linux-gcc也就是3.4.1。,之前用arm-none-linux-eabi-gcc 4.1編出來的zImage好大,基本不能用。對于開發(fā)工具和內(nèi)核版本,我覺得還是越新越好(穩(wěn)定版),否則可能會遇到一些稀奇古怪的問題。
1.修改Boot
使用公司原有的Boot, 在Boot啟動Kernel的時候,加入的參數(shù)設(shè)定,然后用公司專用的usb更新工具燒錄kernel到flash中,啟動機器以后顯示了一堆亂碼,在啟動參數(shù) console=ttySAC0后面加上了,115200,設(shè)定波特率以后一切OK.
2.MTD分區(qū):修改文件common-smdk.c , 修改其中的MTD設(shè)備的分區(qū)。
新的kernel里面已經(jīng)有了默認(rèn)分區(qū)表,我們只要根據(jù)我們需要來做部分修改就可以,我的nand有512MB, 我目前只是將前面的2M分給boot,kernel, 緊接下來的4M分給rootfs,打算暫時加載一個 簡單的cramfs。其他的nand都還沒有用。
3.取消NAND驅(qū)動中的ECC讀校驗,以及壞塊監(jiān)測部分, 因為NAND操作部分,boot和kernel有一些不同。
重啟以后,mount root分區(qū)失敗,還打出了I/O 錯誤。 關(guān)閉了ECC校驗,修改了pc工具的燒錄地址以后,ok. 這都是因為我們的燒錄工具使用的地址表示方法和ecc的方式有一些不同。
4.燒錄 root 文件系統(tǒng)。
拿了一個在kernel2.4 2440 上用過得cramfs直接來用,提示找不到dev/console, 上網(wǎng)查了一遍,應(yīng)該是因為現(xiàn)在新版的kernel去掉了devfs的緣故,為了先快速的有一個可執(zhí)行環(huán)境,所以在網(wǎng)上找了一個現(xiàn)成的,已經(jīng)自己建立好節(jié)點的cramfs,里面的busybox版本也比較新。
開機運行,總算見到了親愛的shell.
posted on 2008-01-28 23:30 菌子 閱讀(1179) 評論(2) 編輯 收藏 引用 所屬分類: Linux