搭建开发板环境(4)

1、Hosting environment:VMare Ubuntu10.04 

2、Cross-compiling environment:arm-2009q3.tar.bz2

3、Development board:QT6410

4、nanflash:K9F2G08(256M)

5、linux -version:Linux-2.6.39

6、uboot-version:u-boot-2010.06

-------cramfs文件系统之安装内核模块,在QT6410移植linux-2.6.39 笔记(二)-添加NANDFLASH分区  ( 见  ) 的基础上重新配置内核并编译

root@bootloader:/home/eilian/development/Linux/linux-2.6.39#make menuconfig

加入文件系统的支持                                
  │ │        File systems  --->  

  │ │    [*] Miscellaneous filesystems  --->    

  │ │    <*>   Compressed ROM file system support (cramfs)    #支持cramfs   

  <*>   yaffs2 file system support                                              #支持yaffs2
  │ │    -*-     512 byte / page devices                                 

配置好后保存退出

root@bootloader:/home/eilian/development/Linux/linux-2.6.39#make uImage

root@bootloader:/home/eilian/development/Linux/linux-2.6.39#make modules ARCH=arm CROSS_COMPILE=arm-linux-

root@bootloader:/home/eilian/development/Linux/linux-2.6.39#make modules_install ARCH=INSTALL_MOD_PATH=/home/eilian/development/rootfs

至此文件系统已完善,再接下来就是要将roots压缩成cramfs                     
-------- 编译cramfs制作工具
下载cramfs-1.1.tar.gz。然后执行

root@bootloader:/home/eilian/development/Tools#tar zxvf cramfs-1.1.tar.gz

root@bootloader:/home/eilian/development/Tools/cramfs-1.1#make
编译完成之后,会生成mkcramfs和cramfsck两个可执行文件,其中mkcramfs工具是用来创建cramfs文件系统的,而cramfsck工具则用来进行cramfs文件系统的释放以及检查。将这两个文件拷贝到/usr/local/bin目录下,方便使用.

root@bootloader:/home/eilian/development/Tools/cramfs-1.1#cpmkcramfs /usr/local/bin

root@bootloader:/home/eilian/development/Tools/cramfs-1.1#cpcramfsck /usr/local/bin

---------mkcramfs的命令格式
mkcramfs [-h] [-e edition] [-i file] [-n name] dirname outfile
mkcramfs的各个参数解释如下:
-h:            显示帮助信息
-e edition:设置生成的文件系统中的版本号
-i file:        将一个文件映像插入这个文件系统之中(只能在Linux2.4.0以后的内核版本中使用)
-n name:  设定cramfs文件系统的名字
dirname:  指明需要被压缩的整个目录树
outfile:     最终输出的文件

cramfsck的命令格式:
cramfsck [-hv] [-x dir] file
cramfsck的各个参数解释如下:
-h:           显示帮助信息
-x dir:      释放文件到dir所指出的目录中
-v:           输出信息更加详细
file:         希望测试的目标文件

--------压缩rootfs根文件系统生成 cramfs

root@bootloader:/home/eilian/development#mkcramfs ./rootfs ./cramfs

---------通过SD卡一键烧写将cramfs烧写到NANDFLASH中
当前,NandFlash分区情况如下:
-------------------------------------------------------------------------------------------------------------
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Creating 4 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000100000 : "Bootloader"
0x000000100000-0x000000600000 : "Kernel"
0x000000600000-0x000007e00000 : "User"
0x000007e00000-0x000010000000 : "File System"
-------------------------------------------------------------------------------------------------------------

值得注意的事:修改uboot中启动参数
setenv bootargs 'root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200'
注意:启动参数里没有写上init=/linuxrc,所以启动默认是按照busybox的配置文件来进行的.


另一个要注意的就是:如果没SD卡怎么办?怎么一键烧写,身边有个朋友说,没SD卡那还烧个毛。。。。。。。

好了这样做,同理打开超级终端(uboot已烧入nand的第一分区)

U-Boot 2010.06 (Dec 12 2011 - 18:39:28) for QT6410
**********************************************
**    u-boot-2010.06                     
**    Updated for QT6410 Board         
**    Version 1.0 (11-12-15)           
**    Author: eilian                   
**    blog:
**    E-mail: 305075262@qq.com         
**********************************************
CPU:     S3C6410@667MHz
         Fclk = 667MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)
Board:   QT6410
DRAM:  128 MiB
NAND:  256 MiB
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
Net:   dm9000
Hit any key to stop autoboot:  0

QT6410#

将上面制作好的cramfs通过tftp服务下载到DDR(放心这个cramfs只有9M,DDR有128M呢),再把cramfs从内存中写入nandflash,操作如下

QT6410# tftp 50000000 cramfs

写nand前需要先擦除nand,我们需要将cramfs写到nandflash的0x000000600000-0x000007e00000

QT6410#nand erase 0x000000600000 0x000007e00000

QT6410#nand write 50000000 0x000000600000 12000000

将DDR中50000000处的cramfs 写入nandflash,写到那个地方?0x000000600000开始处

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfxyd.html