[国嵌攻略][150][实际嵌入式系统环境搭建]

时间:2020-12-01 18:58:21

bootloader环境搭建

1.解压bootloader

tar zxvf uboot_mini2440.tar.gz

 

2.清除bootloader

cd uboot_mini2440

make distclean

 

3.配置bootloader

make mini2440_config

 

4.设置启动环境变量

4.1.设置flash下载并启动内核

配置bootloader/include/configs/mini2440.h中的CONFIG_BOOTCOMMAND

nand read 31000000 60000 500000;bootm 31000000

4.2.设置yaffs挂载根文件系统

配置bootloader/include/configs/mini2440.h中的CONFIG_BOOTARGS

noinitrd console=ttySAC0,115200 init=/linuxrc root=/dev/mtdblock2

 

5.编译bootloader

make ARCH=arm CROSS_COMPILE=arm-linux-

 

 

 

rootfs环境搭建

1.创建系统目录

mkdir rootfs

cd rootfs

mkdir bin dev etc lib mnt proc sbin sys tmp usr var

mkdir usr/bin usr/lib usr/sbin lib/modules

 

2.创建设备文件

cd dev

mknod -m 666 console c 5 1

mknod -m 666 null c 1 3

 

3.添加配置文件

tar zxvf etc.tar.gz

cp -rf etc/* rootfs/etc/

 

4.添加系统工具

4.1.解压busybox

tar zxvf busybox-1.13.3.tar.gz

4.2.清除busybox

cd busybox-1.13.3

make distclean

4.3.配置busybox

make menuconfig

busybox settings->build options->[*]build busybox as a static binary

busybox settings->build options->(arm-linux-)cross compiler prefix

busybox settings->installation options->[*]don’t use /usr

busybox settings->installation options->(.../rootfs)busybox installation prefix

4.4.编译busybox

make

4.5.安装busybox

make install

 

 

 

kernel环境搭建

1.解压kernel

tar zxvf linux-mini2440.tar.gz

 

2.清除kernel

cd linux-mini2440

make distclean

 

3.配置kernel

3.1.加载配置文件

make menuconfig ARCH=arm

load an alternate configuration file->.config->exit->save

3.2.配置文件系统

make menuconfig ARCH=arm

device drivers-><*>memory techology device(MTD) support

->[*]MTD partitioning support

3.3.配置内核分区

配置kernel/arch/arm/mach-s3c2440/mach-mini2440.c中的mtd_partition

static struct mtd_partition friendly_arm_default_nand_part[] = {

    [0] = {

        .name   = "u-boot",

        .offset = 0x00000000,

        .size   = 0x00040000,

    },

    [1] = {

        .name   = "kernel",

        .offset = 0x00060000,

        .size   = 0x00500000,

    },

    [2] = {

        .name   = "rootfs",

        .offset = 0x00560000,

        .size   = MTDPART_SIZ_FULL,

    }

};

 

4.编译kernel

4.1.复制mkimage工具

cp .../uboot_mini2440/tools/mkimage /bin

4.2.编译kernel

make uImage ARCH=arm CROSS_COMPILE=arm-linux-

 

5.编译kernel模块

make modules ARCH=arm CROSS_COMPILE=arm-linux-

 

6.安装kernel模块

make modules_install ARCH=arm INSTALL_MOD_PATH=.../rootfs

 

7.压缩文件系统

./mkyaffs2image .../rootfs rootfs.img

 

8.下载bootloader

8.1.PC安装USB驱动

insmod usb.ko

8.2.开发板等待下载

usbsalve 1 31000000

8.3.PC开始USB上传

./dnw u-boot.bin 30100000

8.4.开发板擦除nand

nand erase 0 40000

8.5.开发板烧写nand

nand write 31000000 0 40000

 

9.下载kernel

9.1.开发板等待下载

usbsalve 1 31000000

9.2.PC开始USB上传

./dnw uImage 31000000

9.3.开发板擦除nand

nand erase 60000 500000

9.4.开发板烧写nand

nand write 31000000 60000 500000

 

10.下载rootfs

10.1.开发板等待下载

usbsalve 1 31000000

10.2.PC开始USB上传

./dnw rootfs.img 31000000

10.3.开发板擦除nand

nand erase 560000

10.4.开发板烧写nand

nand write.yaffs 31000000 560000 [flie size]