本来centos的系统,用着挺不错的,毕竟稳定,奈何公司最近接了一个项目,要求使用Cortex A55内核,Linux系统,本质实际上使用arm架构,而通常的centos系统默认情况下都是X86的。
初次拿到系统,发现装的是ubuntu的,试了下后发现有点不习惯的,怕后续的配置下还会遇到不一样的地方,所以让系统厂商重新装了centos7。
接下来拿到新系统后,正式开始配置,结果也遇到了很多坑,下面说一些关键性的东西,也为自己留个备注:
目录
1.IP配置
正常修改完IP之后,重启服务,报错:
code=exited status=6
Failed to start LSB: Bring up/down networking
网上搜索一番之后,大多数的方法都是大同小异,但是状态码都不是6,后面终于找到一个关于status=6的说明。
解释如下:
如果不存在特定的文件,即/etc/sysconfig/network,那么运行的/etc/rc.d/init.d/network脚本将立即出错,状态为6,即network可以为空 但是必须存在。
所以手动创建一个空的network之后,问题解决。
2.java配置
修改完IP之后,使用远程工具,开始配置java。
一开始没注意,拿以前的包解压,配置环境变量之后验证:java -version,直接报错。
后面才反映过来是内核不同,然后又是一番搜索,找到了支持arm64的包
替换掉之后,java环境可正常使用。
附jdk历史版本下载地址:Java Archive | Oracle
3.mysql配置
这次有了防备,直接下了aarch64支持的包,和arm64是一样的。
附mysql下载地址:MySQL :: Download MySQL Community Server (Archived Versions)
附安装连接:arm架构安装mysql5.7 - 码农教程
远程使用Navicat的时候报了个错10060,防火墙的原因,关闭即可。
4.fastDFS及nginx配置
按照正常流程安装下来之后,发现fastDFS不可用,最后找到一篇说明:
按照说明中的指定版本和对应配置文件的修改之后,fastDFS可正常使用
nginx常规配置即可
5.串口配置
因为项目上会使用到串口通信,所以需要配置串口环境,之前一直使用的都是RXTX,按照正常流程配置:
RXTXcomm.jar放在$JAVA_HOME/jre/lib/ext中
librxtxSerial.so放在$JAVA_HOME/jre/lib/amd64中
结果程序启动之后,报错。
网上的解释是需要重新在arm架构下编译RXTX。
附编译连接一:【linux】Ubuntu aarch64编译安装RXTX进行串口通信_arm rxtx_svt_井木的博客-优快云博客
结果编译完成后,仍然报错,最后发现是版本原因,之前用的2.1.7,后面使用2.2,编译完成后,可用。
附编译连接二:
银河麒麟龙芯mips64架构集成RXTX串口通讯兼容问题_十年一梦惊觉醒的博客-优快云博客
附RXTX下载地址:Download - Rxtx
这里还遇到一个问题,关于串口名称的,通常情况下,linux下的串口名称都是ttyS开头的,但是本次拿到的系统下的名称不是这个。
网上找到一段说明:
于是给所有的串口名称,配置了名为ttyS开头的软连接,问题解决。
6.浏览器配置
以上环境配置好之后,因为项目上使用的是谷歌chrome,但是centos自带的是火狐Firefox,兼容性上有差异,尝试安装该内核下支持centos7的chrome,无果。
最后想到了360浏览器,内核也是chromium。而且cpu占用率在top命令下看,也确实比Firefox低不少。
附360浏览器下载地址:360安全浏览器
选择其它版本的arm架构下的包即可。
7.触摸屏及虚拟键盘配置
因为项目上需要使用到触摸屏,还需要配置一番,心累……
触摸屏,使用厂商提供的校准软件在windows下校准一下,在Linux上可直接用。
虚拟键盘,网上搜了一下之后,发现常用的ibus(支持输入法切换,貌似不带虚拟键盘功能),fcitx5(不支持),florence(安装成功,使用的时候崩溃)
附linux安装包下载地址一:https://pkgs.org/
附liunx安装包下载地址二:Welcome to the RPM repository on fr2.rpmfind.net
最后想到一个办法,在360浏览器上安装扩展软件,结果发现在linux下扩展商店自带的都不可用。
然后去chrome插件商店搜寻,找到之后,添加到360上,可用。
附chrome插件商店地址:小羽插件 - Chrome扩展插件商店,优质crx应用下载,提供Chrome浏览器离线安装包
至此,整个环境基本搭建完成。
总结,arm架构下,对ubuntu熟悉的还是用ubuntu吧,支持较好,对ubuntu不熟的,也可以参考下本篇文章。
另外,centos的话,能用x86的一定要用X86,省很多事儿。