本文共 5866 字,大约阅读时间需要 19 分钟。
创建一个ARM目录 mkdir /disk/A9 -p 接下来你需要准备以下的东西 1、arm-linux-gcc-4.5.1 交叉编译器 2、linux-3.5-tiny4412 内核 3、rootfs_qtopia_qt4-20140124.tar.gz QT文件系统 (做好的) 4、busybox-1.22.1.tar.bz2 文件系统原码 busybox 5、uboot_tiny4412-20130729.tgz uboot 6、arm-qte-4.8.5-20131207.tar.gz QT原码 ARM
7、uboot_tiny4412-20130729.tgz 对应的4412uboot源码
8、minicon 串口
9、安装dnw ,需要上网搜索dnw下载并安装到系统
10、一张SD卡、一条串口线、一根dnw线、一根网线
好了,该准备的我们都准备好了,接下来看如何把开发环境搭建好。 1.安装交叉编译器 cd /disk/A9 tar -xvf arm-linux-gcc-4.5.1 ls opt FriendlyARM cp opt/FriendlyARM /opt -r ls /opt/FriendlyARM/toolschain/4.5.1/bin/拷 /opt/FriendlyARM/toolschain/4.5.1/bin/ vim ~/.bash_profile在PATH=$PATH:$HOME/bin下面加上 PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin/保存退出 ctrl +Alt + backspace 注销测试是否安装成功 arm- tab tab 可以列出所有的交叉编译器就成功 2.编译uboot cd /disk/A9 tar -xvf uboot_tiny4412-20130729.tgz cd uboot_tiny4412 make tiny4412_config make 生成u-boot.bin u-boot 文件 3.将编好的u-boot.bin烧写到SD卡 1>插入SD卡 2>D卡 dd if=/dev/zero of=/dev/sdb bs=1024 count=102400 3>烧写 cd /disk/A9/uboot_tiny4412/sd_fuse make cd tiny4412 ./sd_fusing.sh /dev/sdb烧写完毕配置minicom
在命令行中输入: minicom -s ┌─────[configuration]──────┐ │ Filenames and paths │ File transferprotocols │ Serial port setup <== 选择这一项 │ Modem and dialing │ Screen and keyboard │ Save setup as dfl │ Save setup as.. │ Exit │ Exit from Minicom └──────────────────────────┘ 按如图所示配置 ┌───────────────────────────────────────────────────────────────────────┐ │ A - Serial Device : /dev/ttyUSB0 │ B - Lockfile Location : /var/lock │ C - Callin Program : │ D - Callout Program : │ E - Bps/Par/Bits : 115200 8N1 │ F - Hardware Flow Control : No │ G - Software Flow Control : No │ │ Change which setting? └───────────────────────────────────────────────────────────────────────┘改成这样 enter Save setup as dfl 保存成默认 Exit 退出退出minicom ctrl + a + q 退出然后开机界面可以看到以下打印信息: U-Boot 2010.12 (Oct 13 2015 - 11:03:50) for TINY4412 CPU: S5PC220 [Samsung SOC on SMPPlatform Base on ARM CortexA9] APLL = 1400MHz, MPLL = 800MHz Board: TINY4412 DRAM: 1023 MiB vdd_arm: 1.2 vdd_int: 1.0 vdd_mif: 1.1 BL1 version: N/A (TrustZone EnabledBSP) Checking Boot Mode ... SDMMC REVISION: 1.1 MMC Device 0: 3724 MB MMC Device 1: 7456 MB MMC Device 2: N/A *** Warning - using default environment Net: No ethernet found. Hit any key to stop autoboot: 0 TINY4412 # 内核移殖编好内核 zImage 给uboot引导 cd /disk/A9 ls linux-3.5-tiny4412 tar -xvf linux-3.5-tiny4412 cd linux-3.5 cp tiny4412_linux_defconfig .config make最后出现 OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready编译成功 arch/arm/boot/zImage安装DNW cd /disk/A9/dnw-linux make make install一 . 利用dnw方式下载内核 1> minicom中 dnw 0x40008000 2> PC中 cd /disk/A9/linux-3.5 dnw arch/arm/boot/zImage成功下载内核到板子 3>引导内核 ==> 启动内核 bootm 0x40008000 二 . SD卡下载内核 1> 关电取出SD卡,并将PC机上的内核zImage拷到SD卡上的第一个分区 fat32 2> 将SD卡插入开发板并且开机 3> 查看SD卡上的内核 fatls mmc 0:1 / //查看第0个MMC设备 第一个分区 的分区目录 4> 读取SD卡上的内核 fatload mmc 0:1 0x40008000 zImage 5> 引导内核 bootm 0x40008000三 . 自动读取SD卡上的内核并且启动在minicom中 set bootcmd "fatload mmc 0:10x40008000 zImage;bootm 0x40008000" save reset 查看是否会自动启动内核四. movi 内核启动 1> DNW下载内核到板子uboot 地址0x40008000 2>写内核 movi write kernel 0 0x40008000 3> 设置自动启动 set bootcmd "movi read kernel 0 0x40008000;bootm 0x40008000" 4> reset 自动启动内核烧写文件系统 1> 网络文件系统 cd /disk/A9 tar -xvf busybox-1.22.1.tar.bz2 cd busybox-1.22.1 make defconfig //默认配置 make menuconfig Busybox Settings ---> [*] Build BusyBox as a static binary (no shared libs) │ [*] Build BusyBox as a positionindependent executable (NEW) │ [ ] Force NOMMU build │ [ ] Build shared libbusybox (NEW) │ [*] Build with Large File Support (for accessing files > 2 GB) │ (arm-linux-) Cross Compiler prefix 保存退出 make -j4 make install 会生成一个目录 _install制作文件系统 cd /disk/A9 mkdir filesystem cd /disk/A9/filesystem cp /disk/A9/busybox-1.22.1/_install/* .-r mkdir etc dev opt sys tmp mnt lib proc mkdir etc/init.d vim etc/init.d/rcS添加 mount -t ramfs none /dev mount -t sysfs none /sys mount -t proc none /proc mount -t tmpfs none /tmp /sbin/mdev -s保存退出 vim etc/inittab添加 ::sysinit:/etc/init.d/rcS ttySAC0::askfirst:-/bin/sh保存退出 vim etc/profile添加 export PS1="[root @ cjy \W ] #"保存退出 mknod dev/console c 5 1 cp /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/* ./lib -r cd ..给权限 chmod 777 filesystem -R发布文件系统 vim /etc/exports添加 /disk/A9/filesystem *(rw,sync,no_root_squash)保存退出检查文件系统是否已经发布 showmount -e 192.168.88.xxx //板子上配置IP还有bootargs set gatewayip 192.168.88.1 set ipaddr 192.168.88.x //板子的IP set serverip 192.168.88.xxx //PC机IP save set bootargs "root=/dev/nfsnfsroot=192.168.88.xxx:/disk/A9/filesystem ip=192.168.88.x console=ttySAC0,115200 lcd=S70 ctp=2" save reset 查看是否进入文件系统 //************************************************************ SD卡文件系统 一> 将/disk/A9/filesystem 拷到 SD卡上的 第四个分区 板子 1> 保存nfsbootargs set nfsbootargs $bootargs save 2> set bootargs "root=/dev/mmcblk0p4console=ttySAC0,115200 lcd=S70 ctp=2" save 3> reset 查看是否进入SD卡文件系统 二> 先进入网络文件系统 挂载出SD卡的第四个分区 mount /dev/mmcblk0p4 /mnt 打包现有的文件系统 cd /disk/A9/filesystem tar -cf nfs.tar * tar -xvf nfs.tar -C /mnt umount /mnt 板子 2> set bootargs "root=/dev/mmcblk0p4console=ttySAC0,115200 lcd=S70 ctp=2" save 3> reset 查看是否进入SD卡文件系统 最后一个 将文件系统直接烧录到板子上的mmc 1. 将uboot烧写进去 dnw E4412_N.bl1.bin 先进入SD卡的uboot 2. emmc open 1 // 1板子上的MMC 0x40008000从哪里读 0起始块地址 0x10大小 3. mmc write 1 0x40008000 0 0x10 dnw bl2.bin 4. mmc write 1 0x40008000 0x10 0x1C dnw u-boot.bin 5. mmc write 1 0x40008000 0x300x1F6 6. emmc close 1 7. 段电,拔SD卡,选择NAND启动,上电看是否进入板子MMCuboot 烧写MMC 内核 dnw arch/arm/boot/zImage movi write kernel 0 0x40008000 set bootcmd "movi read kernel 00x40008000;bootm 0x40008000" save //分区板子上的MMC fdisk -p 0 查看分区信息 创建分区 fdisk -c 1000 500 500 直接进入网络文件系统 set bootargs"root=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" save 进入系统之后 mount /dev/mmcblk0p2 /mnt tar -xvf nfs.tar -C /mnt chmod 777 /mnt/ -R umount /mnt u-boot内 set bootargs"root=/dev/mmcblk0p2 console=ttySAC0,115200 lcd=S70 ctp=2" save reset 启动MMC内的文件系统
转载地址:http://bwbsa.baihongyu.com/