嵌入式开发实验笔记(六)

移植新的(3.4.2)内核至开发板中

date: 2018年1月25日

1.下载并初步编译

  1. 解压并修改Makefile
vim Makefile + 195
- ARCH ?= $(SUBARCH)
- CROSS_COMPILE = $(CONFIG_CROSS_COMPILE: "%" = %)

+ ARCH ?= arm
+ CROSS_COMPILE = arm-linux-
  1. 使用默认配置进行初次编译
make s3c2410_defconfig (可以在 arch/arm/configs 中查看相关配置文件)
make uImage

# 期间报错Can't use 'defined(@array)' (Maybe you should just omit the 
# defined()?) at kernel/timeconst.pl line 373
# 解决方案:进入 kernel/timeconst.pl line 373
- if (!defined(@val)) {
+ if (!(@val)) {
  1. 修改代码支持 JZ2440
/* arch/arm/mach-s3c24xx/mach-s3c2440.c line 165 */
-   s3c24xx_init_clocks(16934400);
+   s3c24xx_init_clocks(12000000);
  1. 修改分区表
/* arch/arm/mach-s3c24xx/common-smdk.c line 111:(static struct mtd_partition smdk_default_nand_part[] ) */
// 更改为:
static struct mtd_partition smdk_default_nand_part[] = {
    [0] = {
        .name   = "bootloader",
        .size   = SZ_256K,
        .offset = 0,
    },
    [1] = {
        .name   = "params",
        .offset = MTDPART_OFS_APPEND,
        .size   = SZ_128K,
    },
    [2] = {
        .name   = "kernel",
        .offset = MTDPART_OFS_APPEND,
        .size   = SZ_1M * 3,
    },
    [3] = {
        .name   = "rootfs",
        .offset = MTDPART_OFS_APPEND,
        .size   = MTDPART_SIZ_FULL,
    },
};
  1. nfs 下载文件时出现如下错误:
T T *** ERROR: Cannot umount

解决方法: 在主机的 /etc/hosts 中加入如下内容:

# 开发板IP      nfs文件目录
192.168.1.17  /path/to/nfs_root/
  1. 文件系统启动之后出现如下报错:
Attempted to kill init! exitcode=0x00000004

原因及解决方法:

报错码 0x00000004 即为 SIGILL --- 非法指令;而产生非法指令的原因是,我们在编译时用的是
arm-none-linux-guneabi。 其中eabi的意思是指可执行层应用程序二进制接口,所以内核也需要
支持这种接口

make menuconfig  # search EABI
Kernel Features
    [*]USE the ARM EABI to compile the kernel # y to select
make uImage

编译支持yaffs2

  1. 下载yaffs2 源码
  2. 依据yaffs2 提供的README 来将yaffs2 拷到内核之中:
./patch_ker.sh c m /path/to/kernel
  1. 配置添加yaffs2支持
make menuconfig
#  如果提示类似fs/yaffs2/Kconfig:131: unknown option "If"的错误,可以把
# fs/yaffs2/Kconfig文件中的help选项后的说明文字的空行删除。
# 配置选项的路径如下: 
# File systems/Miscellaneous file systems/ yaffs2
make uImage
  1. 挂载无法运行的错误(我没有遇到)
/* u-boot: drivers/mtd/nand/nand_util.c line 518 */
- if (!need_skip && !(flags & WITH_DROP_FFS))
+ if (!need_skip && !(flags & WITH_DROP_FFS) && !(flags & WITH_YAFFS_OOB))

裁剪

make menuconfig
System Type
    Samsung S3C24xx Supports
        # 去掉无关的soc

PS: 自己改变分区大小,无法启动,报错信息如下

NAND read: device 0 offset 0xa0000, size 0x200000

 2097152 bytes read: error
## Booting kernel from Legacy Image at 72000000 ...
   Image Name:   Linux-2.6.30
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1939156 Bytes =  1.8 MB
   Load Address: 70008000
   Entry Point:  70008000
   Verifying Checksum ... Bad CRC or data
Error: Can't get kernel image!

解决方案

  1. 问题出现的原因是因为,烧写内核和文件系统的地方出现了坏块,导致无法正确识别到 kernel
    文件
  2. 解决方法:就是利用 “ nand scrub” 命令将坏块清除掉然后重新编译
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容

  • 月底了订单就会少很多,因为月初各个办事处都要结账,相对来说订的人就比较少,月初订的人比较多,就会比较忙。 刚接手了...
    红猪猪阅读 218评论 11 6
  • 文 / 烛伊wlx 你好啊,冬天的问候总是显得比其他时候更热络,或许是窗外的大风,让人不得不自己暖和起来。冬天了,...
    烛伊wlx阅读 422评论 3 4
  • 因为熊大熊二的阻止,光头强一直都没有能在狗熊岭靠砍树,获得丰厚的报酬和更好的事业。于是他思虑良久决定离开狗熊岭,去...
    立爽阅读 336评论 0 2
  • 又一年的高考过去了,虽然同自己并没有多大关系,但偶尔翻个朋友圈相册还是能领略不少高考段子的。其中有个段子可谓流行了...
    落音吹羽阅读 1,260评论 0 1