前段时间想在扬创utu2440的ARM9开发板上交叉编译QT4程序,用arm-linux-gcc
3.4.1版本的编译器对Qtopia4.3.3进行交叉编译后移植到开发板上却发现不能正确运行,查看utu2440用户手册,需要采用3.3.2版本
的GCC编译QT程序,然而采用这个版本的编译器编译完Qtopia4.3.3后字体和图标都非常的小(具体原因未知,详见另一篇文章)。细想一下用
3.4.1版本编译的程序运行错误的原因,提示是库链接错误,可能开发板上原有的共享链接库还是arm-linux-gcc
3.3.2自带的,于是试着更新一下,干脆一并把文件系统更新了,原有的busybox版本也太旧了。
从busybox.net
下
载最新版的 Busybox1.13.2, 配置好交叉编译环境,这次采用arm-linux-gcc 3.4.1,
解压busybox源码包,执行make menuconfig进行配置,这里一定需要改的有:BusyBox Setting->Build
Options->Cross Compiler
prefix,将它的值设为arm-linux-。此外,最好对Busybox进行静态编译,省去不少麻烦,于是选中Build BusyBox as
a static binary。其余的选项可根据需要自行选择,在Installation
Options里可以选择BusyBox生成路径,默认为./_install。介于选中Miscoellaneous Utilities
-> taskset可能会出现问题[1]
, 因此我没有选中这个选项。
保
存配置,make,如果出现找不到crypt m库的错误提示Trying libraries: crypt m Library crypt is
needed, can't exclude it (yet) Library m is needed, can't exclude it
(yet) Final link with: crypt m,可以不必理会,直接make
install,然后在./_install下可以找到bin sbin usr三个目录以及linuxrc。还需要建立一些新的目录,执行mkdir
dev etc home lib mnt opt proc sys tmp var。将共享链接库文件拷贝到lib下,具体的命令是
sudo cp /usr/local/arm/3.4.1/arm-linux/lib/* lib
写inittab文件,这个文件是Linux启动时init进程寻找的主要文件,采用BusyBox缺省配置:
::sysinit:/etc/init.d/rcS
::askfirst:-bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
sysinit的意思是为init提供初始化命令行的路径。
askfirst主要用途是减少系统上执行的终端应用程序的数量,会在控制台上显示"Please press Enter to active this console"的信息,并在系统重新启动进程之前等待用户按下"Enter"键
ctrlaltdel:当按下Ctrl+Alt+Del组合键时运行的进程
shutdown和restart类似。
在Busybox1.13.2中采用mdev代替了udev, mdev 是通过 init 进程来启动的,在使用 mdev 构造 /dev
目录之前,init 至少要用到设备文件/dev/console、 /dev/null ,所以建立这两个设备文件。[2]
cd dev
sudo mknod console c 5 1
sudo mknod null c 1 3
编写/etc/fstab
proc /proc proc defaults 0 0
tmpfs /dev tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
编写/etc/init.d/rcS
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#
# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP
##################################
/bin/mount -a
echo "Starting mdev..."
#支持热插拨 [3]
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
##################################
mkdir /dev/pts
/bin/mknod /dev/pts/0 c 136 0
/bin/mknod /dev/pts/1 c 136 1
/bin/mknod /dev/pts/2 c 136 2
/bin/mknod /dev/pts/3 c 136 3
/bin/mknod /dev/pts/4 c 136 4
/bin/mknod /dev/pts/5 c 136 5
/bin/mount -t devpts devpts /dev/pts
ln -s /dev/ts0 /dev/h3600_tsraw
mknod /dev/buttons c 254 0
mkdir /dev/fb
ln -s /dev/fb0 /dev/fb/0
mkdir /dev/v4l
ln -s /dev/video0 /dev/v4l/video0
/sbin/hwclock -s
hostname -F /etc/sysconfig/HOSTNAME
/sbin/ifconfig lo 127.0.0.1
#config network by manual work
/sbin/ifconfig eth0 192.168.1.168
到此,一个最基本的文件系统就做好了。
做成yaffs映象
mkyaffsimage _install utu2440.yaffs
烧到开发板上,再做一些小的调整就可以了。
如果需要做域名解析,新建/etc/resolv.conf,内容为nameserver DNS服务器地址。
参考资料
[1]成功使用busybox制作yaffs根文件系统 http://blog.chinaunix.net/u2/77911/showart_1218594.html
[2]busybox-1.7.0制作yaffs根文件系统http://linux.chinaunix.net/techdoc/system/2008/08/23/1027174.shtml
[3]mdev的使用方法和原理 http://blog.csdn.net/hugerat/archive/2008/12/03/3437099.aspx
[4]<嵌入式Linux系统开发技术详解--基于ARM>,孙纪坤 张小全编著,人民邮电出版社
分享到:
相关推荐
在utu2440开发板上制作yaffs2根文件系统的详细步骤
自己写的 utu2440a(汇文教育)开发板 SDRAM内存初始化程序,详细说明见readme, 水平有限,欢迎多提意见 无积分也可以去git下载 https://github.com/caivao/S3C2440A_sdram_init 内存初始化成功后, blink led(GPF4 ~ ...
开发板硬件手册-utu2440-S-V4.1.pdf 开发板硬件手册-utu2440-S-V4.1.pdf 开发板硬件手册-utu2440-S-V4.1.pdf
前一段时间买了个杨创的板子,把原理图传上来了,希望大家用得着。 时间 原理图utu2440-F-V4.1.rar orcad和pads
这是扬创科技公司推出的三星2440开发板UTU2440-F-T5的原理图,供大家参考!
北京扬创科技utu2440-F开发板光盘带的基于linux2.6.13内核版本的S3C2440上CS8900网卡驱动源码
YC2440utuMAINBOARDGuild扬创科技开发三星2440平台系统板指导
这是扬创2440开发板的驱动源代码,是板子提供商的,正确无误。基本上2440驱动 都一样。里面是十几个驱动源码。我研究过
在linux系统下使用终端烧写扬创UTU2440-F的板子NANK FLASH的软件,速度比较慢,一般用来烧写BOOTLOADER的文件,之后可以使用BOOTLOADER进行其它文件烧写。 把BOOTLOADER生成的BIN文件放在Jflash目录下,如:u-boot....
S3C2440 U-Boot在UTU-2440F开发板上的移植
2440 扫描键盘驱动,验证过,保证好用,适用2.6.24内核
简要介绍了Botloader的工作原理,介绍了U—Boot基于$3C2440A开发板上使用NANDFLASH进行启动的移植步骤,对移植工作进行了分析,并对移植后的U—...目前,U—Boot可以稳定工作,为内核以及文件系统的移植奠定了基础。
、OpenCV1.0.0移植到ARM_(utu2440).详细文档,一步步说明
基于ARM9的Qtopia在utu2440上的移植及其应用开发,学术论文,有一定参考价值
Qtopia-core-opensource-4.3.3在utu2440上的移植
linux-2.6.29.1在utu2440开发板上的移植(含LCD驱动移植)
本手册适用于扬创科技YC2440-F,YC2440-SBC,utu2440-s,utu2440-F等系列2440开发板产品,详细产品信息请参见公司网站:http://www.yctek.com/
自己配置的根文件系统,在utu2440开发板上运行良好,附带配置过程说明
s3c2440 uc/os-II 扬创开发板
扬创utu2440板子上的声卡驱动(for linux2.6.26.5) 最新的linux内核在dma和semaphore结构上有一些变化,所以声卡驱动做了一些修改,保证能运行。Have fun! 2008.10.12 add: 将文件s3c_uda1341.c中的调用access_ok()...