以下的问题及其解决办法是基于优龙FS2410开发板,不定期更新
=============================================================
开发学习环境说明:
系统: Fedora22(64位)
开发板:优龙FS2410
参考书籍:《嵌入式Linux C语言应用程序设计(修订版)》 华清远见嵌入式培训中心 孙琼 编著
=============================================================
1、笔记本没有RS232接口,因此在测试开发板时,发现不管连接RJ45网口还是USB或并口都没反应(理论上来说,上电后接USB,至少在PC端都应该有驱动安装的提示),就以为开发板是坏的
解决办法:在与优龙技术员咨询的过程中知道,只能通过串口RS232与PC连接,在串口中设置开发板的BIOS,才能正常使用。
2、笔记本等电脑没有RS232接口
解决办法:开发板上提供RS232公口,又提供了母-母连接线,因此只需要再买个10来块的USB转RS232即可
(USB-RS232公)-(母-母)-(开发板公口),在winPC端打开超级终端等串口工具,连接上后,重启开发板,在串口工具就能显示BIOS的选项,接下来的设置请参考开发手册
参考手册链接:以上传CSDN,还在审核,稍后更新
3、在64系统里执行32位程序出现/lib/ld-linux.so.2:
bad ELF interpreter: No such file or directory(在Fedora64位OS下,使用arm-linux-gcc出现的错误)
解决方法:安装下glic即可
sudo yum install glibc.i686(注意,一定要加.i686)
4、开发板提供的3.3.2交叉编译工具一直安装失败
开发指南的指导安装流程如下:
a、解压cross-3.3.2.tar.bz2得目录3.3.2
tar -jxv -f cross-3.3.2.tar.bz2
b、拷贝目录3.3.2及其目录下所有内容到/usr/local/arm/3.3.2
cp -r ~/3.3.2 /usr/local/arm/
c、修改PATH
vi /etc/bashrc
在最后添加一行:
export PATH=/usr/local/arm/3.3.2/bin:$PATH
d、检查是否安装成功
bash下执行命令:arm-linux-gcc -v #查看gcc的版本,如果正确修改PATH和安装3.3.2工具,则可用tab进行命令补充
那么我的问题来了,我按照一步一步操作,也正确查看到gcc版本,在尝试用arm-linux-gcc编译嵌入式linux内核却出现各种各样的问题,例如缺少32位的库,例如头文件编译不过(T_T),可惜我只记录了最后解决不了的一个问题。详见如下:
cc1: error: unrecognized command line option “-mapcs-m32”
cc1: error: unrecognized command line option “-malignment-traps"
经过find 发现cc1是一个二进制文件...网上说的解决办法是把这些“-mapcs-m32”“-malignment-traps"参数去掉就好了...
最后解决办法:
改装32位fedora
21(注意,我原先是64位fedora23,试过装32位fedora23,可能版本太新?依然不行,无奈装了就版本)
改装完后按照步骤来我是一点问题都没了,直接编译内核成功。
附上fedora官方各个版本下载ftp连接:http://archive.fedoraproject.org/pub/
5、哭死,改装系统前nfs能用,改装完后nfs不能使用,nfs安装方法网络有一大把,自己搜索
我的/etc/exports配置如下
home/GMPY/NFS *(rw,sync,no_root_squash,no_all_squash,no_subtree_check)
nfs服务状态如下:#service nfs status
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled)
Active: active (exited) since Sun 2015-11-29 11:29:18 CST; 1h 3min ago
Process: 5635 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
Process: 5632 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
Process: 5629 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
Process: 5644 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 5642 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 5644 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
rpcblind服务状态如下:#service rpcblind status
Redirecting to /bin/systemctl status rpcbind.service
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; static)
Active: active (running) since Sun 2015-11-29 11:30:19 CST; 1h 3min ago
Process: 5697 ExecStart=/sbin/rpcbind -w ${RPCBIND_ARGS} (code=exited, status=0/SUCCESS)
Main PID: 5698 (rpcbind)
CGroup: /system.slice/rpcbind.service
└─5698 /sbin/rpcbind -w
防火墙已经关闭
在开发板mount -t nfs 192.168.1.1:/home/GMPY/NFS nfs/,错误提示如下:
mount: RPC: Unable to receive; ernfs warning: mount version older than kernel
NFS: mount program didn't pass remote address!
rno = Connection refused
mount: nfsmount failed: Bad file descriptor
mount: Mounting 192.168.1.1:/home/GMPY/NFS on /dev/shm/nfs failed: Invalid argument
解决办法:这个问题我突然就解决了...找不到原因,也不明确怎么解决的
只是改了下ip,改为192.168.0.10(PC),192.168.0.100(开发板)
但是在挂载时还是有提示错误(实际是已经挂在成功),且要等待一段时间:
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
lockd_up: makesock failed, error=-5
修改:经测试,挂在命令加上参数"-o nolock"即可无以上错误,且不用长时间等待挂载
例如:mount -t nfs -o nolock 192.168.1.1:/home/GMPY/NFS ~/nfs/
问题猜测:可能是接线接触不良?服务不知道哪里死机?开发板还没完全进入系统?(我是卡在QT触屏校准时按回车进入的命令行,印象中接通那一次,我是执行完了QT校准后,进入嵌入式LINUX的系统主界面,再按的Enter进入命令行就成了,但是我测试了下,复位后卡在QT也还是可以)