Ê÷Ý®ÅÉ£¨Raspberry Pi£©ÒѳÉΪPCÁìÓòÒ»¿î¼Û¸ñÇ×Ãñµ«¹¦ÄÜÇ¿´óµÄ¹¤¾ß¡£Ê÷Ý®Åɵ¥°å¼ÆËã»úÒ×ÓÚǶÈë¡¢ÉèÖüòµ¥Çҷdz£Áé»î£¬¹ã·ºÓ¦ÓÃÓÚ¸÷ÖÖϵͳÖС£
¼¼Êõ²©¿Í
°²×°Ö¸ÄÏ|ÔÚÊ÷Ý®ÅÉPCÉϰ²×°LinuxcanºÍLinuxÇý¶¯³ÌÐò
ÔÆº£ÓÎÏ· LinuxÇý¶¯³ÌÐòºÍSDK¿ª·¢°üÖ§³Ö°²×°ÔÚÊ÷Ý®ÅɲÙ×÷ϵͳÉÏ£¬ÈÃÄúµÄÊ÷Ý®ÅÉϵͳҲÄÜʹÓÃÔÆº£ÓÎÏ·Ó²¼þ¡£°²×°¹ý³ÌÓë»ùÓÚARMµÄLinux PCÀàËÆ£¬µ«´æÔÚһЩ¹Ø¼ü²îÒì¡£±¾ÎĽ«½éÉܳ£¹æÄÚºËÄ£¿éºÍ¶¯Ì¬ÄÚºËÄ£¿é£¨DKMS£©µÄÇý¶¯°²×°·½·¨¡£
µÚÒ»²½ÊÇ×¼±¸Ê÷Ý®ÅɲÙ×÷ϵͳ¡£Ê×ÏÈÆôÓÃÔ´Âë°ü£¬·½·¨ÊÇÈ¡ÏûsourcesÁбíÖÐdeb-srcÐеÄ×¢ÊÍ£¬²¢Ê¹Óá°sudo¡±ÃüÁîÈ·±£ÒÔ¹ÜÀíԱȨÏÞÔËÐУ¬ÈçÏÂËùʾ£º
%sudo sed -i ‘s/^#deb-src/deb-src/’ /etc/apt/sources.list.d/raspi.list
½ÓÏÂÀ´£¬°²×°¹¹½¨¹¤¾ßºÍÄÚºËÍ·Îļþ£¬²¢È·±£°²×°µÄÄÚºËÍ·ÎļþΪ×îа汾¡£
%sudo apt update
%sudo apt install build-essential raspberrypi-kernel-headers
Èç¹ûÄúÉÐδÏÂÔØÔÆº£ÓÎÏ· LinuxÇý¶¯³ÌÐòºÍSDK¿ª·¢°ü£¬ÇëÔÚÕâÀïÏÂÔØ¡£ÔÚÖÕ¶Ë´°¿ÚÖУ¬ÄúÐèҪʹÓÃÒÔÏÂÃüÁî½âѹÎļþ£º
%tar -xzf linxuxcan_X_XX_XXX.tar.gz
tar³ÌÐòÓÃÓÚÌáȡѹËõµÄtarÎļþ¡£ÆäÖУ¬¡°x¡±ÃüÁîÓÃÓÚ½âѹ£¬¡°z¡±ÃüÁîÓÃÓÚÆôÓÃgzipѹËõ£¨ÒòΪ¸ÃÎļþÒѱ»Ñ¹Ëõ£¬ÐèÒª½âѹËõ£©£¬¡°f¡±ÃüÁîÔò¸æÖªtar³ÌÐòÏÂÒ»¸ö²ÎÊýÊǹ鵵ÎļþÃû¡£X_XX_XXXÊÇÄúËùÏÂÔØµÄÇý¶¯³ÌÐòºÍSDKµÄ°æ±¾ºÅ¡£
´ò¿ª½âѹ.tar.gzÎļþËùÔÚµÄĿ¼£¬ÕÒµ½linuxcanÎļþ¼Ð¡£½øÈë”linuxcan”Ŀ¼ºó£¬ÔËÐУº
%make
%sudo make install
ĬÈÏÇé¿öÏ£¬PCIeºÍÐéÄâCANÇý¶¯³ÌÐò¾ùδ°²×°¡£ÕâÊÇÒòΪÄú¿ÉÄܲ»Ï£ÍûÔÚÆô¶¯Ê±¼ÓÔØÕâЩÇý¶¯£¬ÌرðÊǵ±Äú²»´òËãʹÓÃËüÃÇʱ¡£ÕâÑù¿ÉÒÔ¼õÉÙÉ豸Æô¶¯Ê±¼ÓÔØµÄ×é¼þ¡£
Èç¹ûÄúÏ£Íû°²×°²¢¼ÓÔØÐéÄâCANºÍPCIeÇý¶¯³ÌÐò£¬ÔòÐèÒªÔËÐУº
%sudo make load
Èç¹ûÄúʹÓõÄÊDz»Ö§³ÖPCIeµÄ¾ÉÖ÷°å£¬ÔòÐèÒª¶Ô¡°sudo¡±ÃüÁîʹÓá°-E¡±²ÎÊý£¬ÒÔ±£Áô»·¾³±äÁ¿¡£Èç¹ûÓÉÓÚÄúµÄÖ÷°åûÓÐPCIeµ¼Ö°²×°³öÏÖÎÊÌ⣬ÄÇôÎÒÃÇÐèÒªÉèÖá°KDIR¡±ºÍ¡°KV_NO_PCI¡±ÕâÁ½¸ö»·¾³±äÁ¿¡£
$ sudo -E make install
ʹÓö¯Ì¬ÄÚºËÄ£¿éÖ§³Ö£¨DKMS£©
Èç¹ûÄúÏ£ÍûʹÓö¯Ì¬ÄÚºËÄ£¿éÖ§³Ö£¨DKMS£©£¬´Ó¶ø±ÜÃâÔÚÄں˸üкóÖØÐ°²×°Çý¶¯³ÌÐò£¬¿ÉÒԲο¼ÒÔϲ½Öè¡£
È·±£Ê÷Ý®ÅÉÄÚºËÍ·Îļþ¸üе½×îа汾£¬È»ºó°²×°DKMS¡£
%sudo sed -i ‘s/^#deb-src/deb-src/’ /etc/apt/sources.list.d/raspi.list
%sudo apt update
%sudo apt install build-essential raspberrypi-kernel-headers
%sudo apt install dkms
¸ÃÃüÁÔÚÄúµÄϵͳÉÏÏÂÔØ²¢°²×°DKMSÈí¼þ°ü¡£°²×°Íê³Éºó£¬ÔËÐÐÒÔÏÂÃüÁî°²×°¼æÈÝDKMSµÄÇý¶¯³ÌÐò£º
%make dkms
%sudo make dkms_install
×ܶøÑÔÖ®£¬ÔÚÊ÷Ý®ÅÉÉϰ²×°Çý¶¯³ÌÐòÓëÔÚÆäËûLinuxϵͳÉϰ²×°²¢ÎÞÌ«´ó²îÒ죬ֻÊÇÐèҪעÒâÄÚºËÍ·ÎļþÊÇ·ñÕýÈ·¡£³ýÁË¿ÉÒÔ°²×°LinuxcanÖ®Í⣬Äú»¹¿ÉÒÔÔÚÊ÷Ý®ÅÉÉÏʹÓÃSocketCAN¡££¨×¢Ò⣺ÔÚPCÉϰ²×°Çý¶¯³ÌÐò½«»á½ûÓÃSocketCANÇý¶¯³ÌÐò£¬ÒÔ±ÜÃâ³åÍ»¡£ÔÚÆäËûLinux PCÉϰ²×°LinuxcanÒ²ÊÇÈç´Ë¡££©
ËüÄÜΪÄú´øÀ´Ê²Ã´°ïÖú£¿
µ¥°å¼ÆËã»úÔÚÈ˹¤ÖÇÄܺÍǶÈëʽϵͳÖÐÈÕÒæÆÕ¼°¡£Äܹ»ÔÚÕâЩϵͳÉϰ²×°Ôƺ£ÓÎÏ·Çý¶¯³ÌÐò£¬ÎªÔƺ£ÓÎÏ·²úÆ·Ó¦ÓÃÓÚ¸ü¶àÐÂÐË¡¢ÓÐȤµÄ»·¾³ÖпªÆôÁË»úÓö¡£ÄúÒ²¿ÉÒÔÔÚ»ùÓÚARMµÄLinuxϵͳÉϰ²×°Ôƺ£ÓÎÏ· CanKing 7£¬¹¹½¨ÊôÓÚÄú×Ô¼ºµÄµ¥°åCAN×ÜÏß¼à¿ØÏµÍ³¡£Äú»¹¿ÉÒÔͨ¹ý¼Ó×°HATÀ©Õ¹°å£¬ÎªÄúµÄÊ÷Ý®ÅÉÔö¼ÓM.2½Ó¿Ú¹¦ÄÜ£¬²¢Ê¹ÓÃÔÆº£ÓÎÏ· M.2 PCIe 4xCAN°å¿¨À´ÊµÏÖ°åÔØCAN¹¦ÄÜ¡£

Adam Raymer
Adam RaymerÊÇÔÆº£ÓÎÏ· AB¹«Ë¾µÄÒ»ÃûÏÖ³¡Ó¦Óù¤³Ìʦ£¬Î»ÓÚÃÀ¹úµ×ÌØÂɸ½½ü¡£Adam¶¨ÆÚÓë¿Í»§±£³ÖÁ¼ºÃ¹µÍ¨£¬ÊÇÎÒÃÇÈ«ÇòÖ§³ÖÍŶÓÖеĻîÔ¾³ÉÔ±Ö®Ò»¡£