İçeriğe geç
GPIO ve Donanım

A20 CAN bus kullanımı (can4linux)

Banana Pi BPI-M1+ · Bananian 15-01 üzerinde can4linux sürücüsünü derleyip A20'nin CAN denetleyicisini kullanın.

Bu topluluk örneği (selqcir) Bananian 15-01 ile hazırlanmıştır. A20 CAN modülü hakkında ayrıntı: https://dl.linux-sunxi.org/A20/CAN%20Bus1.pdf.

  1. bananian-1501.img'yi 8 GB SD karta yazın, bananian-config ile kök dosya sistemini genişletin ve paketleri güncelleyin:
    apt-get install git
    apt-get update
    apt-get upgrade
    reboot
  2. Kernel kaynağını ve derleme araçlarını indirin:
    git clone https://github.com/Bananian/linux-bananapi
    apt-get install build-essential u-boot-tools uboot-mkimage
    apt-get install libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev
    apt-get install subversion
  3. Kerneli derleyin (menuconfig açılınca kaydetmeden çıkın):
    cd linux-bananapi
    make menuconfig
    zcat /proc/config.gz > /root/linux-bananapi/.config
    make uImage modules
    make INSTALL_MOD_PATH=output modules_install
  4. Mevcut modül/firmware ve uImage dosyalarını yedekleyip yenileriyle değiştirin:
    mv /lib/modules /lib/modules.old
    mv /lib/firmware /lib/firmware.old
    mv /root/linux-bananapi/output/lib/modules /lib/modules
    mv /root/linux-bananapi/output/lib/firmware /lib/firmware
    mount /dev/mmcblk0p1 /mnt
    cd /mnt
    mv uImage uImage.old
    mv /root/linux-bananapi/arch/arm/boot/uImage /mnt
    reboot
  5. Derleme bağlantısını oluşturun, can4linux'u indirip derleyin:
    cd /lib/modules/3.4.104/
    ln -s /root/linux-bananapi build
    cd ~
    svn checkout https://svn.code.sf.net/p/can4linux/code/trunk can4linux-code
    cd /root/can4linux-code/can4linux/
    make TARGET=BANANAPI
  6. Modülü kurup her açılışta yüklenmesini sağlayın:
    insmod can4linux.ko
    cp can4linux.ko /lib/modules/3.4.104/kernel/net/can/
    depmod -A -v
    modprobe -v can4linux
    echo "" >> /etc/modules ; echo "can4linux" >> /etc/modules
    reboot
  7. Python örneğini hazırlayın, pyCan-example.py içinde cihaz numarasını ve hızı ayarlayın, CAN alıcı-vericiyi bağlayıp test edin:
    apt-get install swig
    apt-get install python-dev
    cd can4linux-code/can4linux-examples/
    # setting the device number
    device = 0
    defaultBaudrate = '250'
    python pyCan-example.py