本人是嵌入式软件专业,除了学习STM32单片机之外,我还自学了u-boot的移植,文件系统的制作,以及Linux内核的移植,在学习嵌入式linux过程中也做了一些笔记,最近整理了一下,分享给大家,也供自己以后温习。今天分享的是环境搭建,用的是ubuntu12.04版本,交叉编译工具用的是gcc-4.6.4版本,随后可以把文件资料上传,有兴趣的朋友可以下载。
1、硬件组成
微处理器 arm (A M R) x86 ppc
晶振
外存
内存
外围设备
2、软件组成
uboot bios
linux win7
文件系统 ext2 ext3 ext4
freeRTOS ucos
3、交叉编译工具安装
1、编译工具获取
http://mirrors-usa.go-parts.com/gcc/releases/
2、crosstool-ng
http://crosstool-ng.org/download/crosstool-ng/
3、通过厂商获取编译工具
编译工具安装
一种、
1. 进入家目录
执行 $ cd ~
2. $ vi .bashrc
3. 在最后一行 添加
export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4 (后面的路径是自己编译工具的路径)
4. 保存退出, 重启终端即可生效
$ arm-linux-gcc -v
如果出现
gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002)
编译配置成功
二种、
1. 进入 etc 目录
执行 $ cd /etc
2. $ vi profile
3. 在最后一行 添加
export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4 (后面的路径是自己编译工具的路径)
4. 保存退出, 有用户登录 即可生效
$ arm-linux-gcc -v
如果出现
gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002)
编译配置成功
三种、
1. 进入 etc 目录
执行 $ cd /etc
2. $ vi environment
3. 在引号里面添加 路径
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesA:/home/linux/toolchain/gcc-4.6.4"
4. 重启虚拟机 是可以生效的
测试方式 同上
网络配置
1、编译-》 虚拟网络编译器-》更改设置-》VMnet0->桥接到-》可以上网的网卡
2、虚拟机-》设置-》硬件-》网络适配器-》自定义-》VMnet0->确定
3、右上角 网络图标
4、1 wired -> 选择 mac 地址 2 ipv4 自动获取IP
NAT
1、虚拟机-》设置-》硬件-》网络适配器-》自定义-》VMnet8->确定
2、右上角 网络图标
3、1 wired -> 选择 mac 地址 2 ipv4 自动获取IP
4、安装tftp 软件
1、配置网络 (必须可以上网)
2、apt-get install tftpd-hpa 安装 tftp 服务端
3、apt-get install tftp-hpa 安装 tftp 客户端
配置
$ sudo vi /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/linux/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-c -s -l"
# 代表注释
重启
修改完配置文件 必须要 重启 tftp 服务
$ service tftpd-hpa restart
linux@ubuntu:~$ sudo service tftpd-hpa restart
tftpd-hpa stop/waiting
tftpd-hpa start/running, process 3518
linux@ubuntu:~$
测试
$ tftp 127.0.0.1 // 启动 tftp 客户端
> put xxxx // 文件上传
> q // 退出 tftp 客户端
$ tftp 127.0.0.1
> get uImage // 下载uImage
> q
5、安装 nfs 软禁
1、配置网络 (必须可以上网)
2、sudo apt-get install nfs-kernel-server 安装 nfs 服务端
3、dpkg -s nfs-kernel-server 软件是否安装
4、mkdir /rootfs ; touch a.c
配置 nfs
$ sudo vi /etc/export
/rootfs * (rw,sync,no_subtree_check,no_root_squash)
在最末尾 添加 一行
重启服务
$ sudo service nfs-kernel-server restart
测试
1、 创建挂载点
$ mkdir -p /home/linux/mnt
2、执行挂载命令
$ sudo mount -t nfs 127.0.0.1:/rootfs /home/linux/mnt
3、
$ ls /home/linux/mnt
linux@ubuntu:~/mnt$ ls
a.c
4、解除挂载
$ sudo umount /home/linux/mnt