设为首页 加入收藏

TOP

OK6410_Linux系统系统移植 和 驱动加载(一)
2014-11-24 12:33:35 来源: 作者: 【 】 浏览:0
Tags:OK6410_Linux 系统 移植 驱动 加载

第一、先来说说Uboot。


因为是参考飞凌提供的Uboot来 自己制作uboot 的,所以做起来能够简单一些, 飞凌的uboot是 仿照三星 smdk6410 这个板子主体来做的。而我们现在到的通用Uboot,里面就有这一个函数体,Makefile 里有这一项smdk6410_config : uconfig


@$(MKCONFIG) $(@:_config=) arm s3c64xx smdk6410 samsung s3c6410


如果你需要改成自己的板载文件的话,也可以借鉴百度文库“我的arm_linux移植笔记.pdf”这篇博文,不过如果你也是飞凌的OK6410,或者其他ARM11,系列开发板的话,我这人不建议你去修改这一项,因为,飞凌无论是 uboot 还是后面的内核(飞凌提供的内核有 2.6.28 和2.6.36.2) 都是依赖于smdk6410,后面我会写到。 移植Uboot的 另外需要修改的文件就是include文件,在一些通用的uboot 在 include/configs/ 下面会有一个smdk6410.h 的文件。 有关于 ./cpu/samsung/smdk6410/start.S的修改,你都可以参考一下网友的资源,其实也可以直接下载一些网友已经制作好了的开发板对应的uboot,来使用,或者学习他的源码,就可以事半功倍。所以我在详细描述了,


第二、根文件系统的制作


根文件系统预备知识
嵌入式Linux中都需要构建根文件系统,构建根文件系统的规则在FHS(Filesystem Hierarchy Standard)文档中,下面是根文件系统顶层目录。
目录 内容
bin 存放所有用户都可以使用的、基本的命令。
sbin 存放的是基本的系统命令,它们用于启动系统、修复系统等。
usr 里面存放的是共享、只读的程序和数据。
proc 这是个空目录,常作为proc文件系统的挂载点。
dev 该目录存放设备文件和其它特殊文件。
etc 存放系统配置文件,包括启动文件。
lib 存放共享库和可加载块(即驱动程序),共享库用于启动系统、运行根文件系统中的可执行程序。
boot 引导加载程序使用的静态文件
home 用户主目录,包括供服务账号锁使用的主目录,如FTP
mnt 用于临时挂接某个文件系统的挂接点,通常是空目录。也可以在里面创建空的子目录。
opt 给主机额外安装软件所摆放的目录。
root root用户的主目录
tmp 存放临时文件,通常是空目录。
var 存放可变的数据。
2.2、构建根文件按系统
2.2.1、建立根文件系统目录
进 入到/opt/studyarm目录,新建建立根文件系统目录的脚本文件create_rootfs_bash,使用命令chmod +x create_rootfs_bash改变文件的可执行权限,./create_rootfs_bash运行脚本,就完成了根文件系统目录的创建。
#!/bin/sh
echo "------Create rootfs directons start...--------"
mkdir rootfs
cd rootfs
echo "--------Create root,dev....----------"
mkdir root dev etc boot tmp var sys proc lib mnt home
mkdir etc/init.d etc/rc.d etc/sysconfig
mkdir usr/sbin usr/bin usr/lib usr/modules


echo "make node in dev/console dev/null"
mknod -m 600 dev/console c 5 1
mknod -m 600 dev/null c 1 3

mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp


mkdir var/lib var/lock var/run var/tmp


chmod 1777 tmp
chmod 1777 var/tmp


echo "-------make direction done---------"
改变了tmp目录的使用权,让它开启 sticky位,为tmp目录的使用权开启此位,可确保tmp目录底下建立的文件,只有建立它的用户有权删除。尽管嵌入式系统多半是单用户,不过有些嵌入 式应用不一定用root的权限来执行,因此需要遵照根文件系统权限位的基本规定来设计。
2.2.2、建立动态链接库
动态链接库直接用友善之臂的,先解压友善之臂的根文件包,拷贝lib的内容到新建的根文件目录lib内。
cd /mnt/hgfs/share
tar –zxvf root_qtopia.tgz –C /opt/studyarm
cp –rfd /opt/studyarm/root_qtopia/lib/* /opt/studyarm/rootfs/lib/*
2.2.3 交叉编译Bosybox
Bosybox是一个遵循GPL v2协议的开源项目,它在编写过程总对文件大小进行优化,并考虑了系统资源有限(比如内存等)的情况,使用Busybox可以自动生成根文件系统所需的bin、sbin、usr目录和linuxrc文件。
1、解压busybox
cd /mnt/hgfs/share
tar –zxvf busybox-1.13.3.tar.tgz –C /opt/studyarm
2、进入源码,修改Makefile文件:
cd /opt/studyarm/busybox-1.13.3
修改:
CROSS_COMPILE =arm-linux- //第164行
ARCH =arm //第189行
3、配置busybox
输入make menuconfig进行配置
(1)、Busybox Settings--->
General Configuration--->
[*] Show verbose applet usage messages
[*] Store applet usage messages in compressed form
[*] Support –install [-s] to install applet links at runtime
[*] Enable locale support(system needs locale for this to work)
[*] Support for –long-options
[*] Use the devpts filesystem for unix98 PTYs
[*] Support writing pidfiles
[*] Runtime SUID/SGID configuration via /etc/busybox.config
[*] Suppress warning message if /etc/busybox.conf is not readable
Build Options--->
[*] Build BusyBox as a static binary(no shared libs)
[*] Build with Large File Support(for accessing files>2GB)
Installation Options->
[]Don’t use /usr
Applets links (as soft-links) --->
(./_install) BusyBox installation prefix
Busybox Library Tuning --->
(6)Minimum password legth
(2)MD5:Trade Bytes for

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇WL-167G、R73/RT2571F 、USB 网卡.. 下一篇OK6410、2.6.36.2 USB_host 支持

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 安装及连接-腾 (2025-12-25 06:20:28)
·MySQL的下载、安装、 (2025-12-25 06:20:26)
·MySQL 中文网:探索 (2025-12-25 06:20:23)
·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)