問題背景:本人開發板使用的是迅為iTOP4412精英版,額外購買的CAN/485模塊,如下圖:

但是插上模塊之后,在終端使用ifconfig can0命令發現開發板讀不到CAN設備,顯示“ifconfig: SIOCGIFFLAGS: No such device”。如下圖:

在重新配置內核后,可以讀出CAN的設備來了。如下圖

配置方法如下:
(1)打開官方搭建好環境的Ubuntu,進入內核目錄
(2)在內核目錄下輸入命令“make menuconfig”進入內核配置界面

(3)因為CAN總線是GPIO上SPI的復用,所以首先要配置SPI。
首先進入“Device Drivers”;

再進入“SPI Support”

選中“GPIO-based Bitbanging SPI Master”和“Samsung S3C64XX series type SPI”

取消選中“RC522 Module driver support”(防止占用CAN端口)

(4)回到主界面,進入“Networking Support”

進入“CAN bus system support”

進入“Can Device Drivers”
選中“Platform CAN drivers with Netlink support”,“CAN bit-timing calculation”,“Microchip MCP251x SPI CAN controllers”三項。

(5)退出內核配置界面,詢問是否保存對話框選擇“Yes”。
(6)使用“make zImage”編譯內核后,將內核燒寫進開發板即可。
