制作PV8900开发板的linux系统镜像

烧写到开发板上的文件包括以下3个:

l tcboot.rom --------------------------(bootloader)

l linux.rom ------------------------------(Linux kernel)

l ramdisk.rom --------------------------( 作为根文件系统的ramdisk)

1, 建立开发环境

用户在使用PV8900进行开发前,必须先搭建好ARM Linux交叉开发环境。下面以ubuntu操作系统为例,介绍交叉开发环境的搭建,其它Linux系统的操作与ubuntu系统类似。

1) 把光盘中\PV8900\Linux\compiler目录下的armv6_codesourcery.tar.bz2文件copy到ubuntu的/opt/目录,然后运行如下命令

$ su

$ cd /opt/

$ tar –jxvf armv6_codesourcery.tar.bz2

2) 添加环境变量

export PATH=/opt/armv6/codesourcery/bin:$PATH

用户可把它写入用户目录的.barsrc文件中,那么系统启动的时候自动

完成环境变量的添加,查看路径可以使用echo $PATH命令

3) 确认开发环境,目前使用的版本为4.3.2

$ arm-none-linux-gnueabi-gcc -v

Using built-in specs.

Target: arm-none-linux-gnueabi

……

Thread model: posix

gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)

2, 编译Kernel

Linux的BSP代码在光盘的\PV8900\Linux\source目录下,文件名为LINUX_BSP_yymmdd-RxxxBxxx.tar.bz2,yymmdd表示这个版本发布的日期,R和B后面的数字是TELECHIPS的内部版本号。 比如LINUX_BSP_100705-R0191B3463.tar.bz2表示这是2010年07年05日发布的版本。

用tar解压到指定的目录后(根据需要自己指定目录),可以看到以下目录:

bootloader drivers kernel ramdisk toolchain util

进入kernel目录,ls可以看到patch-linux-2.6.28-xxxx的文件,再把光盘的\PV8900\Linux\source目录下linux-2.6.28.tar.bz2的文件解压到这个kernel目录下,然后调用

patch –p0 < patch-linux-2.6.28-XXXXXX-RXXXXBXXXX

(注意:这里的patch-linux-2.6.28-XXXXXX-RXXXXBXXXX会把补丁打到linux-2.6.28-tcc文件夹里面,所以linux-2.6.28.tar.bz2解压后的文件夹linux-2.6.28要改名为linux-2.6.28-tcc,打完补丁后在把名字改回来。)

把patch打到标准的Linux kernel里面。

然后就可以编译内核了:

$ cd linux-2.6.28

$ make tcc8900_defconfig

$ make menuconfig

$ make

$ ./tcc_mkrd.sh

就会生成最终的linux.rom。

需要进行更多的内核开发,可以参考光盘PV8900\Linux\Documnets目录下TCC8900_BSP_LINUX_USERS_GUIDE.pdf,以及其它文档。

3, 编译Bootloader

TCC8900 bootloader is tcboot. (bootloader/tcboot/)

Clean compiled objects to rebuild.

$ make distclean

[RM] *.o *.a

[RM] Target Undefine

[RM] *.srec *.bin *.map *.hex *.rom

Enter the following commands to configure tcboot. It will be shown “Target Define: TCC8900.

TCC8900 option is compatible with TCC9100 and TCC9200

SRAM_M_SIZE : 128 or 256 (Refer to DDR TYPE of Chapter 3.2 Version of TCC8900)

REVISION : TCC_R_AX or TCC_R_XX (Refer to Chapter 3.1 Version of TCC8900)

$make

Undefined Telechips Target...

HOWTO:

-> TCC8900> make tcc8900 KERNEL_START_OFFSET=0x300000 SDRAM_M_SIZE=256 REVISION=TCC_R_AX

$make tcc8900 KERNEL_START_OFFSET=0x300000 SDRAM_M_SIZE=256 ₩ REVISION=TCC_R_AX

[RM] *.o *.a

[RM] Target Undefine

[RM] *.srec *.bin *.map *.hex *.rom

ADD define: KERNEL_START_OFFSET=0x300000 in include/def_tcc.h

ADD define: SDRAM_M_SIZE=256 in include/def_tcc.h

ADD define: TCC_R_AX in include/def_tcc.h

Target Define: TCC8900

$ make

….

[MK] tcboot.rom for TCC8900

image length: [0x000C2988] (797064 byte)

second crc: [0xA6CB9D0A]

first crc: [0x3769DB35]

Then the final image file tcboot.rom will be created.

4, 制作RAMDISK

Run tcc_mk_rootfs.sh to make a ramdisk. Ramdisk.rom is not offered anymore by default since LINUX BSP Version 1.6. .

$cd ramdisk

$tcc_mk_rootfs.sh

Refer to “TCC8900_BSP_LINUX_RAMDISK_GUIDE.pdf” for more information.

更多相关文章
  • android开发之win8上安装linux系统,搭建Android开发环境
    本文假设您不熟悉linux上搭建Android开发,为初学者准备. 一.为什么要学习linux编程? 众所周知,在企业实际开发中linux是十分重要的,多数的服务器是linux系统上搭建的.对于我们学习Android开发的人而言,Android的系统的底层也使用linux构架的,所以学习linux上 ...
  • ARM开发板系统移植uboot的编译
    本文和另外两篇姊妹篇都是为了说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果.其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发板上运行的uboot的方法步骤. 说明:笔者使用的开发平台RetHat linux系统,开发板Fri ...
  • 在2000年的5.6月间,nmap-hackers邮件列表中发起了最佳安全工具的评选活动,活动取得了成功,最终由1200名Nmap用户评选出了50个最佳安全工具,评选结果发布在insecure.org网站,得到了网友们的普遍认可.时隔三年,nmap-hackers邮件列表中又发起了同样的评选活动,1 ...
  • ARM开发板系统移植rootfs的制作
    前面两篇文章分别介绍了mini2440开发板上运行的bootloader和kernel,到这里系统启动后其实是停留在一个“僵死”的状态无法挂载根文件系统. 这里将介绍如何制作一个根文件系统,并且挂载到内核中即让内核能够访问到文件系统中的目录和文件.从用户的角度来看文件系统无非就是各个目录和文件,注意 ...
  • 


    		    友坚安卓210评估板linux系统调试10.1寸高清电容屏详解/s5pv210开发板
    友坚安卓210评估板linux系统调试10.1寸高清电容屏详解/s5pv210开发板 友坚安卓210评估板linux系统调试10.1寸高清电容屏详解/s5pv210开发板 友坚安卓210评估板linux系统调试10.1寸高清电容屏详解/s5pv210开发板 修改向导 1. 拷贝ssd2533_ts. ...
  • 我没有写过博客,这是我的第一篇博客,如果有些地方用词或表意不清楚的话,敬请原谅!闲话不多说了,下面开始步入正题! 在进行移植之前,要检查一下目标机(这里指6410开发板)与宿主机之间的接线问题,即串口线.网线是否正确连接,目标机的电源是否插好!在接线问题解决后,才能保证交叉编译正常进行! 个人理解, ...
  • 将大于4GB的U盘插入ubuntu主机 fdisk -l 得到U盘的盘符,假设为/dev/sdc dd bs=4M if=px2_linaro_ubuntu.img of=/dev/sdc 重新拔插U盘 fdisk -l 查看u盘分区表情况,存储ubuntu系统的分区应该是/dev/sdx3,对应到 ...
  • linux 3.4.103 内核移植到 S3C6410 开发板 移植失敗 (问题总结,日本再战!)
    linux 3.4.103 内核移植到 S3C6410 开发板 这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情.想立刻搞定,然后安安静静看书 & coding. 坑爹的事情就是一个多星期的时间搭进去了,还是没成功.我把我的移植失敗的经验留下来做为笔记,为下次做准 ...
一周排行