Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9963
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 42
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-06 13:55
个人简介

专注嵌入式系统移植20年~

文章分类

全部博文(5)

文章存档

2015年(4)

2014年(1)

我的朋友

分类: 嵌入式

2015-12-04 10:54:46

OVERVIEW

     本人使用的开发板为讯为Exynos 4412的pop精英板,若使用其他型号开发板,请适当调整参数。

     在开始移植前请参考用户手册自行搭建编译环境,由于uboot.bin不会更改,所以仍使用讯为官方给的u-boot文件:u-boot-iTop-4412.bin。

STEP

1. 编译Linux内核

    进入Linux内核源码文件夹,我们在config_for_ubuntu_hdmi配置文件上进行更改,修改内核选项:

点击(此处)折叠或打开

  1. # cp config_for_ubuntu_hdmi .config
  2. # make menuconfig

   更改的地方有两处:
   首先,我需要把文件系统放在tf卡中,所以修改Boot Option为

点击(此处)折叠或打开

  1. console=ttySAC2,115200 root=/dev/mmcblk1p2 init=/linuxrc rootfstype=ext4

  其次,添加系统串口输出支持,

点击(此处)折叠或打开

  1. CONFIG_DEVTMPFS=y
  2. CONFIG_DEVTMPMOUNT=y
  3. CONFIG_VGA_CONSOLE=y
  4. CONFIG_UNIX98_PTYS=y

  这里如果不添加这几个选项,系统将找不到串口的设备描述符,且持续输出错误信息:

点击(此处)折叠或打开

  1. INIT: Id "c4" respawning too fast: disabled for 5 minutes
  2. INIT: Id "s0" respawning too fast: disabled for 5 minutes
  3. INIT: Id "c6" respawning too fast: disabled for 5 minutes

  修改完成后,在Ubuntu命令行中执行下面的命令:

点击(此处)折叠或打开

  1. # make

  编译完成后,在源码文件夹“arch” –>“arm” –>“boot” 文件夹下会生成镜像文件 “zImage”。

2. 给TF卡分区

  下载mkcard.sh,将TF卡接入Ubuntu系统,输入Linux命令:

点击(此处)折叠或打开

  1. # fdisk -l

  可以看到TF卡的设备描述符为/dev/sdb,使用mkcard.sh将TF卡分区:

点击(此处)折叠或打开

  1. # chmod +x mkcard.sh
  2. # ./mkcard.sh /dev/sdb

  再次查看分区表,可以发现TF已经被分成了两个分区。在Ubuntu系统中新建两个目录,并将TF卡的两个分区挂载上去:

点击(此处)折叠或打开

  1. # mkdir /mnt/p1
  2. # mkdir /mnt/p2
  3. # mount /dev/sdb1 /mnt/p1
  4. # mount /dev/sdb2 /mnt/p2

3. 复制Linux内核文件

  在TF卡的第一分区中新建文件夹sdupdate,并将刚刚编译好的内核文件zImage拷贝进去:

点击(此处)折叠或打开

  1. # mkdir /mnt/p1/sdupdate
  2. # cp zImage /mnt/p1/sdupdate/

4. 准备文件系统

  从镜像网站()下载arm的gentoo stage3的压缩包,如stage3-armv7a-20151117.tar.bz2(不需要hardfloat)。在Ubuntu系统下解压到TF卡的4G分区中,命令如下:

点击(此处)折叠或打开

  1. #tar xjpf stage3-armv7a-20151117.tar.bz2 -C /mnt/p2

  修改文件系统的配置项:

(1) 设置fstab

点击(此处)折叠或打开

  1. # nano /mnt/p2/etc/fstab

  修改/boot 的格式为vfat,并注释掉最后一行/dev/fd0。

(2) 设置默认用户root的密码

点击(此处)折叠或打开

  1. # openssl passwd -1

  输入密码2次,系统会给出一个加密后的字符串”xxxx”,复制该字符串,打开文件/mnt/p2/etc/shadow,将root所在行替换成如下形式:

点击(此处)折叠或打开

  1. root:xxxx:14698:0:::::

  “xxxx”是你刚刚复制的字符串,“14698”是一个固定值。

(3) 设置串口

点击(此处)折叠或打开

  1. # nano /mnt/p2/etc/inittab

  将s0所在行修改如下:

点击(此处)折叠或打开

  1. s0:12345:respawn:/sbin/agetty 115200 ttySAC2 vt100

5. 烧写内核文件

  启动开发板,进入u-boot阶段,在超级终端或minicom中输入下面的命令:

点击(此处)折叠或打开

  1. # sdfuse flash kernel zImage

6. 重启开发板

点击(此处)折叠或打开

  1. # reset

  Gentoo系统,重启后就可以在开发板上运行起来了。

阅读(718) | 评论(3) | 转发(0) |
0

上一篇:随手记(持续更新中...)

下一篇:没有了

给主人留下些什么吧!~~

Seira_L2016-07-27 09:43:54

M_O_Bz:问几个问题咯:你用的内核代码和相关的配置是哪里下载的,还有就是你用到的mkcard.sh等脚本是哪里下载的?

那个内核配置是讯为公司给的

回复 | 举报

Seira_L2016-07-27 09:38:52

M_O_Bz:问几个问题咯:你用的内核代码和相关的配置是哪里下载的,还有就是你用到的mkcard.sh等脚本是哪里下载的?

内核代码和相关配置实用的是ubuntu-precise的内核,mkcard.sh脚本来自于pandaboard移植gentoo的官网http://dev.gentoo.org/~armin76/arm/pandaboard/。

回复 | 举报

M_O_Bz2016-04-07 11:10:39

问几个问题咯:你用的内核代码和相关的配置是哪里下载的,还有就是你用到的mkcard.sh等脚本是哪里下载的?