TQ2440使用手册

Posted guqinglei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TQ2440使用手册相关的知识,希望对你有一定的参考价值。

TQ2440使用手册

版本次 修改内容 修改人员
V1 新建 刘倪

一:开发环境的配置

见嵌入式开发环境的构建

二:uboot的编译与移植

2.1 配置uboot

参看u-boot-2014.04移植手册(TQ2440)

2.2 配置uboot驱动

参看第二部分内容以及

2.3编译uboot

2.3.1 uboot文件说明

? 为了节省时间,直接使用了国嵌提供的uboot_tq2440,并且尝试了网上提供的文件。分别为:

  • uboot_tq2440:国嵌提供,编译OK,使用查看U-boot使用手册;
  • jz2440:里面有u-boot-1.1.6与u-boot-1.1.6_100ask24x0;分别为韦山东提供的文件与补丁,打补丁方式为,进入u-boot-1.1.6根目录,运行patch p1 > ../u-boot-1.1.6_100ask24x0.patch,uboot使用为 make 100ask24x0_config,但是make时存在问题;
  • u-boot-1.1.6_20100601为csdn中的文件使用为make EmbedSky_config,同样make有问题。

2.3.2 编译uboot_tq2440

  • 解压,进入uboot_tq2440目录
  • 清理编译文件和配置文件,make clean(清理编译文件),make distclean(清理配置文件)。该步没有做后编译会出问题
  • 配置uboot. make TQ2440_config
  • 编译uboot. make

2.3.4 uboot使用

  • 在norflash模式下,把u-boot.bin(该文件就是在uboot_tq2440中)下载到开发板nandflash
  • 使用sudo dnw u-boot.bin

4.在nandflash下,学习uboot的简单命令

三 内核的编译与移植

3.1 x86平台内核配置与移植

3.1.1 清理配置文件

make distclean

3.1.2 配置linux内核

配置方式:

make config配置——文本交互;

make menuconfig配置——界面交互。

3.1.3 编译内核代码

make zImage V=1 
make bzImage V=1

编译好的内核位于arch//boot/目录下

3.1.4 编译内核模块

? 将编译好的内核模块,从内核源代码目录复制至/lib/modules下**,为打包做好准备

3.1.5 编译根文件系统,制作init ramdisk

    mkinitrd initrd-$version $version 

3.1.6 安装内核与文件系统

cp arch/x86/boot/bzImage /boot/vmlinuz-$version
cp initrd-$version /boot/
修改/etc/grub.conf

3.2.RAM平台内核配置与移植

3.2.1 清理配置文件

make distclean

3.2.2 进行配置  

make config配置——文本交互;
make menuconfig配置——界面交互。

这里两种方式都是为了生成.config配置文件。这里为了方便,直接将配置好的文件config-file拷贝到linux内核代码目录中,并改为.config;在执行

make menuconfig ARCH=arm

注意:如果不是通过命令行复制.config,最好重新打开终端。同时注意要将.config中的CONFIG_INITRAMFS_SOURCE改为空或者为自己开发板建立根目录地方(/home/guqinglei/Writing_code/TQ2440/rootfs)。还要注意把 Device Drivers 选项下的看门狗(Watchdog Timer Support)关掉,否则开发板进入文件系统之后,过一段时间又自动重新启动。

3.2.3 编译RAM内核

make uImage ARCH=arm CROSS_COMPILE=arm-linux-

生成的文件在arch/arm/boot/uImage

  • zImage和uImage的区别

3.2.4 编译内核模块

见下一节内容

3.2.5 安装根文件系统

见下一节内容

3.3.安装下载内核

  1. 将来文件从arch/arm/boot/uImage拷贝到tftp挂载目("/home/guqinglei/Wring_code/TQ2440/tftpboot")
  2. 下载内核:tftp 0x31000000 uImage
  3. 测试内核启动:bootm ox31000000
  4. 启动内核
  • 交叉开发时,开机自动通过tftp下载文件:
#setenv bootcmd tftp 0x31000000 uImage \; bootm 0x31000000
#saveenv
  • 开机自动从nand flash中读取内核:
#nand write 0x31000000 400000 500000(内核下载在0x31000000后)
#setenv bootcmd nand read 0x31000000 400000 500000 \; bootm 0x31000000
#saveenv       

四.文件系统的编译与移植

4.1 根文件系统的制作

4.1.1 建立根文件系统目录

#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/lib usr/sbin lib/modules

4.1.2 建立根文件系统目录

#cd rootfs/dev
 #mknod -m 666 console c 5 1
 #mknod -m 666 null c 1 3

4.1.3 加入配置文件

#tar etc.tar.gz
#mv etc/* rootfs文件夹 -rf

4.1.4 添加内核模块——安装常用的驱动模块

#cd linux源文件目录
#make modules ARCH=arm CROSS_COMPILE=arm-linux-
#make modules_install ARCH=arm INSTALL_MOD_PATH=根目录所在文件夹(/home/guqinglei/Writing_code/TQ2440/rootfs)

通过/home/guqinglei/Writing_code/TQ2440/rootfs/lib/modules/2.6.30.4-EmbedSky/kernel/drivers可以查看有没有安装驱动可以确定是否安装成功。

4.1.5 编译/安装busybox——安装系统执行命令

  • 配置busybox

    cd busybox-1.13.3/ 
    make clean
    make distclean
    make menuconfig
    • Busybox Settings ->build Options->选中 “Build busybox as a static binary”,->将ross Compiler prefix (静态链接)设置为arm-linux-
    • Installation Options->选中 “Don‘t use /usr”(选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统) ->将Busybox Installation Prefix设为/home/guqinglei/Writing_code/TQ2440/ rootfs(表明编译后的busybox的安装位置)
  • 编译、安装busybox

    make
    make install

    通过查看/home/guqinglei/Writing_code/TQ2440/rootfs/bin是否存在内核常用命令,可以判断该步是否成功

2.挂载文件系统

4.2.1 创建Initramfs的软链接

#cd /home/guqinglei/Writing_code/TQ2440/rootfs
#ln –s ./bin/busybox init

或者:

#cd /home/guqinglei/Writing_code/TQ2440/rootfs/bin
#ln –s busybox ../init

4.2.2 文件系统

  • 使用Initramfs文件系统

    • 编译内核
    #cd 进入linux源代码目录
    #make clean
    #make menuconfig

    进入general setup->Initial RAM filessystem and RAM disk...填入rtoof路径(/home/guqinglei/Writing_code/TQ2440/rootfs)

    #make uImage ARCH=arm CROSS_COMPILE=arm-linux-
    • 设置uboot环境变量
    #setenv bootargs noinitrd console=ttySAC0,115200
    #saveenv

    备注:不知道为什么还是进不去文件系统

  • 使用NFS文件系统

    • 编译内核
    #cd 进入linux源代码目录
    #make clean
    #编译内核      
    #make menuconfig

    进入general setup->取消Initial RAM filessystem and RAM disk...
    返回主界面,进入file systems->选择network file systems->选择root file systems on NFS

    #make uImage ARCH=arm CROSS_COMPILE=arm-linux-
    • 设置uboot环境变量
    #setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.0.119:/home/guqinglei/Writing_code/TQ2440/rootfs,proto=tcp,nfsvers=3 ip=192.168.0.110:192.168.0.119:192.168.0.1:255.255.255.0::eth0:off    
    #saveenv
    • 将uImage拷贝到tftp挂载目录,下载内核。

?

以上是关于TQ2440使用手册的主要内容,如果未能解决你的问题,请参考以下文章

TQ2440使用DNW烧录配置流程详解

S3C2440_时钟和电源管理_阅读开发手册记录

基于设备树的TQ2440的中断

移植 uboot2012.04.01 到tq2440--建立自己的开发板

我是天嵌s3c2440的板子,现在Linux移植,一直按厂家手册做的,可是make menuconfig的时候总是出现如下错误

移植Python2到TQ2440