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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux3.4.2移植总结(s3c2440)

發布時間:2023/12/10 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux3.4.2移植总结(s3c2440) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境:Linux version 3.5.0-23-generic (buildd@komainu)
(gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) )
ubuntu12

目標板:JZ2440
待移植內核:3.4.2
交叉編譯器:arm-linux-gcc-4.3.2

1.
make s3c2410_defconfig //使用默認配置

2.
修改時鐘頻率
linux-3.4.2/arch/arm/mach-s3c24xx/mach-smdk2440.c

公板上用的晶振和JZ2440的不一樣,不修改會導致串口輸出異常等 static void __init smdk2440_map_io(void) {s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));s3c24xx_init_clocks(12000000); //改為12Ms3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs)); }

3.
修改分區信息
inux-3.4.2/arch/arm/mach-s3c24xx/common-smdk.c

分區大小要和uboot的對應,否則會出錯

我修改nand分區如下

/* NAND parititon from 2.4.18-swl5 */static struct mtd_partition smdk_default_nand_part[] = {[0] = {.name = "Boot Agent",.size = SZ_256K,.offset = 0,},[1] = {.name = "params",.offset = MTDPART_OFS_APPEND,.size = SZ_128K,},[2] = {.name = "kernel",.offset = MTDPART_OFS_APPEND,.size = SZ_2M,},[3] = {.name = "rootfs",.offset = MTDPART_OFS_APPEND,.size = MTDPART_SIZ_FULL,} };

這是我內核分區后啟動打印的信息

4.
由于JZ2440使用的是nand flash所以我們使用yaffs文件系統,3.4.2默 認沒有支持yaffs,我們要自己移植,具體就不描述了,提一句的是注意yaffs版本和內核版本匹配,否則會出現
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b 錯誤 (具體解決和分析我會在后期博文寫)

我使用是xshell,如果出現內核啟動出現亂碼可以試試設置下環境變量
set bootargs root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200

這里要提一句,我用arm-unknown-linux-gnueabi-gcc-4.6.3 編譯時,內核會卡在
Uncompressing Linux… done, booting the kernel.
Booting Linux on physical CPU 0
估計是編譯器版本太高

System Type ---> (0) S3C UART to use for low-level messages 這個表示使用串口0打印信息如果使用其他板子,要注意下這里。

完事后內核就ok了

/*******************************************************/ 這里說下我文件系統制作的坑1.注意文件的權限,最好給make install 后的文件夾給個chmod 777 xxx 的權限 2.在指定編譯器時最好直接修改MakefileCROSS_COMPILE ?= arm-linux-ARCH ?= arm 3.如果是動態鏈接的話我是復制了編譯器目錄/arm-none-linux-gnueabi/libc/armv4t/lib里的庫啟動成功的

總結

以上是生活随笔為你收集整理的linux3.4.2移植总结(s3c2440)的全部內容,希望文章能夠幫你解決所遇到的問題。

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