【OK210试用体验】嵌入式linux开发环境搭建 - 在线问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【OK210试用体验】嵌入式linux开发环境搭建

ycdhonker ( 楼主 ) 2015-8-8 13:40:13  只看该作者 倒序浏览
本帖最后由 ycdhonker 于 2015-8-8 13:50 编辑


  拿到开发板之后,第一步就是搭建好开发环境,在OK210上上建立能运行Linux系统,包括了创建启动用的TF卡,编译生成bootloader(MLO和u-boot.bin),编译生成内核镜像文件(uImage或zImage文件),创建rootfs(Linux根文件系统)等工作。这些工作需要在一台配置ARM交叉编译环境的Linux系统上完成。尽管官方的一键烧写非常方便,但是还是比较喜欢使用最一般的方法对TF开分区,放入MLO,uboot uImage文件启动系统,
下面分步完成整个系统的建立过程,直至Linux系统在开发板上boot起来,进入shell命令行。
1:建立ARM嵌入式开发环境
利用ARM交叉编译环境,可以x86系统上,编译ARM处理器上可执行的目标代码。主要用于编译开发板上的bootloader、内核镜像,以及其它ARM可执行程序。
具体步骤:
(1)在VMware10.0上创建一个虚拟机,安装发行版的ubunt​u10.04系统,因为10.04版本是基于2.6内核的,很多网上资料也是基于2.6.32的,所以使用起来比较方便一些,建立好ARM嵌入式开发环境。

(2)安装arm-linux-gcc,建立ARM交叉编译环境(需要root权限)
    1、下载arm-linux-gcc-4.3.2.tgz压缩包
    2、tar -xzvf arm-linux-gcc-4.3.2.tgz,自动解压至/user/local/arm/目录下。ARM交叉编译器的所有可执行程序在/usr/local/arm/4.3.2/bin/目录下。
    3、配置root用户环境变量,修改/etc/bash.bashrc文件
                 #vi /etc/bash.bashrc
                 在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin
    4、测试arm-linux-gcc -v,会执行编译器,正常显示版本信息表示已安装配置成功

2 uboot编译与移植移植过程就是在新的U-Boot代码中增加与S5PV210开发板CPU级和Board级代码,使之能够在210开发板上面运行。
    1下载U-Boot源码
    2.修改相应的文件代码
    3.编译U-Boot
      U-Boot是universalbootloader,也就是通用的bootloader。它存在于nandflash或者SD卡中,它是在开机上点之后,操作系统起来之前用来引导的一个程序。U-boot的主要作用是进行内存的初始化、CPU的初始化、串口初始化等一系列的初始化工作,完成这些之后,再将操作系统加载到内存中,从而运行起来。
     U-Boot源码文件下包括一些目录文件和文本文件,这些文件可分为”与平台相关的文件”和”与平台无关的文件”,其中common文件夹下的文件就是与平台无关的文件;与平台相关的文件又分为CPU级相关的文件和与板级相关的文件:arch目录下的文件就是与CPU级相关的文件,而board、drivers、include等文件夹下的文件都是与板级相关的文件。我们在移植的过程中,需要修改的文件也就是这些与平台相关的文件。

3:创建Linux内核镜像uImage

Linux发行版已融入对OMAP处理器和bb的支持,因此,可以直接下载最新的Linux发行版内核源码,自己编译生成内核镜像。

具体步骤:

(1)从www.kernel.org下载最新的Linux发行版源码

(2)编译生成uImage文件
    1、修改Makefile文件中以下两行
        ARCH            ?= arm
        CROSS_COMPILE   ?= arm-linux-
    2、编译生成uImage
        执行make mrproper,清除编译环境中残留的配置
        执行make **_defconfig,进行配置。  
        执行make menuconfig或make xconfig,根据用户需求增加一些特定的功能配置
        最后,执行make uImage,编译生成uImage文件
   3、编译生成内核模块
        内核启动过程中,在挂载文件系统后,需要加载系统所需的内核模块,这些模块通过内核源码编译生成,具体过程如下:
        执行make modules,编译所需的内核模块
        执行make INSTALL_MOD_PATH=rootfs路径 modules_install,安装内核模块至rootfs所在路径下
        注意,缺少与内核版本对应的内核模块,将导致Linux启动出错。

4:建立Linux rootfs
rootfs的也是系统非常重要的一部分。Linux内核启动后,必须挂载rootfs,然后从rootfs中加载其它所需的内核模块,启动各种系统服务。rootfs有问题的话,启动过程会出现各种诡异的错误。在尝试了多个rootfs并失败后,最后在一个ARM Fedora 12的rootfs上成功完成了整个启动过程。下面是基于该rootfs的建立过程:
    1、下载ARM Linux rootfs
        下载地址:http://ftp.arm.linux.org.uk/pub/armlinux/fedora/rootfs/
        下载其中的rootfs-f12.tar.bz2压缩包,分两步解压
            bzip2 -d rootfs-f12.tar.bz2
            tar xvf rootfs-f12.tar,解压至rootfs-f12目录下
    2、安装已编译好的内核模块
        STEP 3编译生成了内核模块后,执行安装,rootfs路径设置为rootfs-f12的绝对路径(假设在/root下)
        执行make INSTALL_MOD_PATH=/root/rootfs-f12 modules_install
    3、配置root免口令登录
        系统的Login工具使用了以下3个配置文件:/etc/group、/etc/passwd和/etc/hosts,分别修改如下:
        [root@localhost etc]# vi group
            root:x:0:root
        [root@localhost etc]# vi passwd
            root::0:0:root:/root:/bin/bash
         [root@localhost etc]# vi hosts
            127.0.0.1       localhost
    4、配置串口终端
配置的目的是使shell命令行提示符通过ttyO2串口终端设备输出。该rootfs中默认未进行配置,需要手工添加,否则在启动完rc.local服务后,屏幕将无任何后续输出,出现挂死的假象。具体配置过程如下:
    vi /etc/securetty,添加一行ttyO2
    vi /etc/event.d/ttyO2,创建ttyO2文件,添加如下内容:
            start on stopped rc1
            start on stopped rc2
            start on stopped rc3
            start on stopped rc4
            start on stopped rc5

            stop on shutdown

            respawn
            exec /***in/agetty -L ttyO2 115200 vt100

5:建立启动用的TF卡
OK210可以通过多种方式启动Linux系统,如通过Nandflash、TF卡或者通过NFS网络启动。本人选择采用TF卡启动的方式。因此,需要准备一张空白TF卡,在其之上建立双分区:一个FAT32分区和一个EXT3(或EXT4)分区。FAT32分区用于存放bootloader、Image文件和一些boot参数相关的文件。EXT3分区用于存放Linux的Root filesystem。
具体步骤如下:
    1、TF卡分区
        将TF通过读卡器连接到Linux开发环境上,找到挂载的设备,如本人系统上挂载为/dev/sdb。按照http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat 教程完成分区。
        完成分区后,重新挂载TF卡。在/media下可以看到FAT32和EXT3两个分区目录。
    2、复制bootloader和uImage至FAT32分区
         注意,MLO必须存放在FAT32分区的第一个扇区,因此,首先第一步就是把MLO文件拷贝到FAT32分区中。然后,再将u-boot.bin、boot.scr、uImage文件都一股脑拷到FAT32分区即可。
    3、复制rootfs至EXT3分区
        将rootfs-f12下的所有目录都复制到EXT3分区中。


6:在OK210启动Linux系统
具体步骤:
    1、配置Putty串口终端   
    在加电启动OK210前,将OK210的串口连接到PC上。在设备管理器中找到新的串口设备,确定其工作的端口,比如COM1。
    从http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe下载putty程序,启动Putty。​
    如下配置putty:


完成后,点击Open按钮,打开终端。
    2、启动OK210
将制作完成的TF卡插入到OK210上,然后加电启动,启动过程中的所有输出会输出到串口终端上,直至提示输入用户名和密码。输入root并回车,进入shell,至此OK210上的嵌入式Linux系统就算成功完成了。





0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-12-22 16:40 , Processed in 0.432415 second(s), Total 37, Slave 26 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表