本帖最后由 FSL_TICS_ZJJ 于 2014-5-7 10:24 编辑
第一次用 iMX6 的处理器,第一次用 Linux ,才开始学习。
基本情况:
host:ubuntu 12.04 LTS,安装 NFS和TFTP服务;
采用LTIB编译的内核镜像,用的是 L3.0.35-4.1.0-130816;
开发板:FSL原厂的SabreSD,处理器是 IMX6DL;
用 TFTP 的方式加载 kernel ,用 NFS 方式加载 ROOTFS,启动正常;
正常调试:
已经通过访问字符设备的方式 使用串口收发正常;
使用套接字的方式访问以太网接口,收发正常;
通过LTIB,配置内核,添加了与CAN 有关的驱动模块,编译,
添加 libsocketcan 和 canutils,并且 ./ltib -p libsocketcan.spec -f 以及 ./ltib -p canutils.spec -f
目前存在的问题:回环模式能发不能收,正常模式发送就会导致 BUS-OFF
目前发现问题如下:
(1) Chip scan failed
(2) 启动过程中注册的flexcan.1 ,而不是正常的 flexCAN.0 ,我采用 cansend can0 ,发送应该就会错误,但不知道如何纠正。
root@freescale ~$ dmesg | grep can
Chip scan failed
vcan: Virtual CAN interface driver
flexcan netdevice driver
flexcan imx6q-flexcan.1: device registered (reg_base=ea9a8000, irq=143)
can: controller area network core (rev 20090105 abi 8)
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
flexcan imx6q-flexcan.1: writing ctrl=0x0e312005
flexcan imx6q-flexcan.1: flexcan_set_bittiming: mcr=0x5980000f ctrl=0x0e312005
flexcan imx6q-flexcan.1: flexcan_chip_start: writing mcr=0x7de2020f
flexcan imx6q-flexcan.1: flexcan_chip_start: writing ctrl=0x0e31ec55
flexcan imx6q-flexcan.1: flexcan_chip_start: reading mcr=0x6de2020f ctrl=0x0e31ec55
第一次用linux 和imx6。可能问题比较初级,还请大家赐教一二。谢谢啦
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这样一改,启动就不能完成,报告如下:
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
..............................
...............
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
应该是 bootargs_base 设置有问题了,导致 NFS 挂载失败。
主要的环境变量设置如下:
bootargs_base=setenv bootargs ${bootargs} console=ttymxc3,115200
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs nfsroot=${serverip}:${nfsroot} ip=${ipaddr}:${serverip}:${gate}:${mask}::eth0:off,v2,tcp
bootcmd_net=run bootargs_base bootargs_nfs;tftpboot${loadaddr}${kernel};bootm
bootcmd=run bootcmd_net
楼主你好,关于添加flexcan driver,你可以查看一下All Boards FlexCAN。希望对你有帮助。
这个看过好多次。最开始也是按照这个文档做的,添加了 libsocketcan 和 canutils,编译的镜像,也是不行。
问题就是楼上描述的
在 uboot 的环境变量里面,添加 can0=1 ,确实可以看到 flexCAN.0 的驱动被注册,但系统启动不了啦,报告NFS挂载有问题。
怀疑是 bootargs_base 设置不对,但怎么样才能又 can0=1,又确保 nfs 正确呢?
公司也是要我先开始熟悉评估这个平台,目前就我一个人干,只能不断 google ,唉
结贴:
******
原因: 在 sabre ai 板上,CAN1 的TXD 与 以太网的 ENET_MDC 复用的。我启用 CAN1,就会关闭以太网,用 NFS 方式挂载的 ROOTFS 就用不了,启动就不行。
解决:要么不用NFS,通过写 SD 卡进行调试,要么就看看能不能启用 can2,就还可以用 NFS。
一周热门 更多>