5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412

一、安装交叉编译工具

交叉编译工具的版本:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

1. 切换到 root 用户:su
2. 解压

$  tar -xvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /

交叉编译工具默认路径(pwd):/opt/FriendlyARM/toolschain/4.5.1/bin
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第1张图片
3. 将交叉编译器添加到环境变量中
(1). 临时:在终端执行如下命令

$  export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

(2). 永久:添加到开机启动文件中

$  vim /etc/profile
# 写到 profile 文件的最后一行,保存退出
$  export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

4. (可选)如果是 Ubuntu 64 位系统,则需要安装支持32位的库

$  apt-get install lib32ncurses5 lib32z1

5. 验证是否成功

$  arm-linux-gcc -v

5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第2张图片

二、U-Boot 编译

1. U-Boot 的版本:uboot_tiny4412-sdk1506.tar.bz2
2. 解压

$  tar -jxvf uboot_tiny4412-sdk1506.tar.bz2

3. 切换到解压后的目录

$   cd uboot_tiny4412-sdk1506

4. 编译 U-Boot

# 清除临时目标文件
$  make clean
# 选型, 选择开发板对应的配置文件
$  make Tiny4412_config 
# 编译
$  make

清除
选型
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第3张图片

5. 编译 BL2 制作工具

$  cd sd_fuse/

$  make

5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第4张图片
6. 烧写到 SD 卡
(1). SD 卡分区(SD-Flasher.exe)
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第5张图片
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第6张图片
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第7张图片

(2). 将 U-Boot 镜像烧写到SD卡
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第8张图片
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第9张图片
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第10张图片

$  cd tiny4412/
# 主机识别到 SD 卡后,VMware 中”虚拟机“ ”可移动设备“,找到 SD 卡,点击断开与主机链接
$  ls /dev/   (mmcblk0)

$  ./sd_fusing.sh /dev/mmcblk0 

5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第11张图片

三、编译内核

1. 内核版本:linux-3.5-20141114.tar
2. 解压内核

$  tar -xvf linux-3.5-20141114.tar

3. 在顶层目录修改makefile,指定交叉编译工具

$  cd linux-3.5

$  vim Makefile

# 修改 197 行
$ CROSS_COMPILE ?= arm-linux-

5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第12张图片
4. 修改 kernel/timeconst.pl 文件

$  vim kernel/timeconst.pl

5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第13张图片
5. 安装编译内核所需的库

$  apt-get update
$  apt-get upgrade

$  apt-cache search ncurses

$  apt-get install libncurses5-dev

6. 运行 make menuconfig ,产生 .config 文件

$  make menuconfig

7. 复制 Tiny4412 的原厂配置文件到 .config 文件中

$  cp tiny4412_linux_defconfig .config 

8. 去掉内核保护机制

$  make menuconfig
# System Type --->
#    [] Support TrustZone-enabled Trusted... 去掉(*)这一项,内核保护机制

5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第14张图片

9. 编译内核

$  export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

$  make zImage

10. 烧写内核镜像到 SD 卡

$  cd arch/arm/boot

$  dd iflag=dsync oflag=dsync if=./zImage of=/dev/mmcblk0 seek=1057

5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第15张图片
11. 开发板上电,接入串口,验证结果
5.1.2.Linux 设备驱动程序开发环境搭建 —— 基于Tiny4412_第16张图片

你可能感兴趣的:(Linux,设备驱动程序开发,笔记,linux,arm开发,运维)