嵌入式linux环境搭建2-CentOS7
参考链接
https://draapho.github.io/2017/02/19/1706-linux-centos7/
原文
环境及结论
大环境的搭建思路可参考嵌入式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
目的是尝试不同linux系统下的环境搭建
使用环境: CentOS7 64bit (安装在win10的虚拟机内)
kernel make 失败
彻底死机一次
没法直接安装 u-boot-tools
彻底放弃! 转战Ubuntu
不知是 centos 做 2440 的交叉编译兼容性不好, 还是64bit linux的兼容性不好. 或者两者皆有!
安装必要的软件
静态ip, 安装向导时, 就设置了.
yum install net-tools # to use ifconfig or use ip addr
yum install bzip2 # bz2压缩格式
yum install patch
yum install gcc
64位系统要安装了32位程序, 安装如下软件
yum install glibc.i686
yum install libstdc++.so.6
安装nfs客户端
可以参考: NFS server and client installation on CentOS 7
安装nfs工具, 服务器和客户端都装这个
yum install nfs-utils
创建用于mount的节点
mkdir -p /mnt/nfs/study
mkdir -p /mnt/nfs/work
启动服务
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock # No such file or directory, 但没影响
systemctl enable nfs-idmap # No such file or directory
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
手动mount
mount -t nfs 10.0.0.98:/study /mnt/nfs/study/
mount -t nfs 10.0.0.98:/work /mnt/nfs/work/
确认结果
df -kh
设置为开机自动加载
vi /etc/fstab
# ===== 文件内容, 加入如下两句 =====
10.0.0.98:/study /mnt/nfs/study nfs defaults 0 0
10.0.0.98:/work /mnt/nfs/work nfs defaults 0 0
# ===== 结束修改, 保存退出vim =====
// 建立软连接(快捷方式)
cd /home/user/
sudo ln -s /mnt/nfs/study study
sudo ln -s /mnt/nfs/work work
安装 mkyaffs2image
该工具用于制作文件系统镜像文件
文件系统烧录到开发板flash时需要使用镜像文件
cp mkyaffs2image /bin/ # 拷贝到bin
chmod +x /bin/mkyaffs2image # 增加可执行权限
mkyaffs2image # 测试是否可用
安装及使用交叉编译工具gcc
安装 arm-linux-gcc-3.4.5
使用指定的 arm-linux-gcc-3.4.5-glibc-2.3.6. 不要用新版本, 有坑.
安装 gcc
mv arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 /usr/local/arm/
cd /usr/local/arm/
tar -xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2
添加路径到环境变量
vi /etc/bashrc
# ===== 文件内容, 末尾加入如下语句 =====
if [ -d /usr/local/arm/gcc-3.4.5-glibc-2.3.6 ] ; then
PATH=/usr/local/arm/gcc-3.4.5-glibc-2.3.6/bin:"${PATH}"
fi
# ===== 结束修改, 保存退出vim =====
测试安装结果
source /etc/bashrc # 不重启更新PATH
echo $PATH # 查看PATH
arm-linux-gcc -v # 测试是否安装成功
遇到问题
在centos下, 内核 make clean 会报错: Makefile‘混和的隐含和普通规则’
我想还是因为 2440 内核文件使用的makefile太老了. 和centos兼容性不好.
按下述方法改了一点后, 最后make还是失败了. 因而放弃 centos 系统.
修改根目录下的 Makefile
/ %/: prepare scripts FORCE
改成: ----->
/: prepare scripts FORCE
%/: prepare scripts FORCE
把:
config %config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
改成: ----->
config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
%config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2024-01-06 如何让Dec-C++支持C++11