嵌入式linux环境搭建1-Ubuntu14.04
环境及结论
- 大环境的搭建思路可参考嵌入式linux环境搭建-主机端
- gateway ip
10.0.0.138
- PC windows: win10 64bit, ip
10.0.0.98
- PC linux(最终版本): ubuntu server 16.04 32 bit, ip
10.0.0.100
- Embedded Linux: jz2440v3 ip
10.0.0.111
- gateway ip
- 探索嵌入式linux环境搭建的各方案可行性.
- 使用环境: Ubuntu 14.04.5 LTS 32bit 桌面版 (安装在win10的虚拟机内)
- 成功验证了win10作为NFS服务器. 两个linux作为NFS客户端, 三者文件共享的方案
- 最终遇到了gcc编译器的坑, 就决定换到CentOS系统练练手.
- 在win 10 下使用虚拟机安装在win10下, 略过不表.
- 实验结论:
- win10(非企业版)下, 没有找到nfs客户端. 因此没法使用 ubuntu做NFS服务器 的方案
- ubuntu下安装samba来支持windows文件共享, 失败告终. 因此没法使用 ubuntu使用samba来支持windows文件共享 的方案
- linux不允许把NFS挂载过来的文件再使用NFS服务共享出去. 因此没法使用 交叉使用上述方案
- 还好, 最终 windows做NFS服务器 成功了
安装必要的软件
# 查看 make 和 gcc 工具 (非交叉编译用) |
设置静态IP
个人更喜欢用静态IP, 这样putty的设置更直观方便.
如果要使用动态IP, 可以设置 windwos 的 HaneWIN, 用-range
来指定nfs客户端的网址段
刚开始怎么样都不能上外网, 突然按照下面的顺序就好了… 原因不明
sudo vim /etc/network/interfaces |
安装nfs服务(服务器/客户端)
最终方案里, windows下用了HaneWIN 做NFS服务器, 虚拟机ubuntu下安装客户端就可以了.
这里为了做实验, nfs服务器和客户端都安装了, 可以参考:
How To Set Up an NFS Mount on Ubuntu 14.04
nfs 客户端的安装
# 安装 nfs 客户端软件 |
nfs 服务器的安装
实际上没有用到linux的nfs服务器功能, 最终用的是windows下的HaneWIN给开发板提供的nfs服务!!!
因为最后测试下来, linux不允许把NFS挂载过来的文件再使用NFS服务共享出去.
# 虚拟机ubuntu 安装服务器, 供开发板端使用nfs. |
其它实验
win10(非企业版)下, 没有找到nfs客户端. 因此无法让linux当nfs服务器, win10做nfs客户端.
ubuntu下安装samba来支持windows文件共享, 失败告终
安装ssh服务, 用putty远程登录
# 安装ssh服务 |
安装 u-boot-tools 工具
安装 u-boot-tools, 内核编译后生成uImage使用.
# 安装 mkimage |
安装 mkyaffs2image 工具
该工具用于制作文件系统镜像文件
文件系统烧录到开发板flash时需要使用镜像文件
sudo cp mkyaffs2image /bin/ # 拷贝到bin |
安装及使用交叉编译工具gcc
在 arm-linux-gcc 4.3.2 上走的比较远, 结果证明遇到坑了!
建议不要尝试最新版本的编译器, 老老实实使用开发板提供的 gcc-3.4.5-glibc-2.3.6
编译器版本.
安装 arm-linux-gcc 4.3.2
# 直接拷贝解压 arm-linux-gcc-4.3.2.tar.bz2 |
如果希望sudo超级账户也能用 make 指令 (没有测试过)
sudo -s # 登录超级账户 |
遇到问题并解决, 结果是坑
下面列出使用 arm-linux-gcc 4.3.2
编译u-boot遇到问题时的解决方法
所谓顺利, 是因为没有报错, 生成的文件可以烧录, 启动.
加上引号, 是因为最后证明这些生成文件是有问题的, 会导致整个嵌入式系统某些部分无法正常工作.
最后在编译测试驱动用的C文件时, 编译出来的可执行文件在开发板上不可执行,
才想到可能是编译器问题而尝试着换回到 3.4.5 版本. 并连同内核全部重新编译了.
换回去后, 之前一度认为的源码有问题的fs也能成功加载了, 真是个巨坑…
# 如果用gcc 4.3.2, 则版本太新, 编译错误. 可以使用自带的arm-none-linux-gnueabi |
原创于 DRA&PHO