CANable USB转CAN适配器固件的安装(ubuntu20.04)

CANable USB转CAN适配器固件和驱动的安装(以candlelight和pcan为例)ubuntu20.04

candlelight

candlelight是什么

  • Candlelight是CANable设备的固件之一,用于将CANable设备转换为本机CAN设备,无需使用slcand。它允许CANable设备直接在Linux系统上以本机CAN设备的形式出现,并且与SocketCAN一起使用,无需额外的驱动程序或转换工具。

  • 这意味着你可以直接使用Linux上的标准CAN工具(如can-utils)和Wireshark等来与CAN总线进行交互。

  • 以下是Candlelight固件的主要特点和功能:

  1. 本机CAN设备支持:Candlelight固件使得CANable设备可以在Linux系统上直接以本机CAN设备的形式出现,而无需使用slcand来创建虚拟串口。

  2. 高性能:与使用串口线固件相比,使用Candlelight固件可以获得更高的性能,因为slcand被完全绕过。

  3. 与SocketCAN兼容:Candlelight固件与SocketCAN兼容,因此可以与Linux系统上的SocketCAN框架集成,并且可以使用所有标准的can-utils命令行工具进行通信和分析。

  4. Wireshark集成:由于Candlelight固件与SocketCAN兼容,因此你可以使用Wireshark等网络分析工具直接捕获和分析CAN总线上的数据流。

  5. 不支持FD帧:目前,CANable 2.0的Candlelight固件不支持FD(Flexible Data-Rate)帧,这意味着它只能处理标准的CAN帧,无法处理高速数据传输的FD帧。

固件安装与更新

  • 用镊子短接boot引脚,上点后进入bootloader
使用网页应用程序更新candlelight
  • 以访问CANable更新程序站点,通过简单的步骤来更新CANable设备。网页应用程序提供了一个易于使用的界面,指导用户完成更新过程。

  • 地址:https://canable.io/updater/canable1.html

在这里插入图片描述

  1. 准备CANable设备

    • 首先,将CANable设备上的"Boot"跳线移动到引导位置,或者在CANable Pro上按住"Boot"按钮,然后将设备插入计算机。
  2. 选择并更新固件

    • 接下来,用户需要在网页中选择要刷新的固件版本,并点击下方的"Connect and Update"按钮。

    在这里插入图片描述

    • 这将触发与CANable设备的连接,并开始更新固件。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端键入ifconfig -a,识别到can0,则固件安装成功。

    在这里插入图片描述

使用linux下的dfu-util安装更新固件candlelight

在Linux系统下更新和安装固件可以通过以下步骤完成:

1. 安装dfu-util
sudo apt-get update
sudo apt-get install dfu-util
2.安装gcc-arm-none-eabi和CMake
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi cmake
3.获取用于烧录的二进制镜像文件
  • 解压candlelight源码文件
tar xvf candleLight_fw.tar.bz2
  • 进入candleLight_fw目录
cd candleLight_fw
  • 创建bulid目录并进入(如果本来就有build要先删除)
mkdir build
cd build
  • 使用 CMake 生成 Makefile,指定交叉编译的工具链文件
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/gcc-arm-none-eabi-8-2019-q3-update.cmake
  • 编译
make
  • 编译完之后,可看到镜像candleLight_fw\build\candleLight_fw.bin

在这里插入图片描述

在这里插入图片描述

4. 刷新设备固件

一旦dfu-util安装完成,你可以使用以下命令来刷新CANable设备的固件:

sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D candleLight_fw.bin

这个命令会将指定的固件文件(candleLight_fw.bin)传输到设备的固件存储位置,并刷新设备的固件。

在这里插入图片描述

5. 完成更新

刷新固件后,确保将CANable设备上的"启动"跳线移回到原始位置,并重新插入或拔出设备。这样你就成功地更新了设备的固件。

在这里插入图片描述

  • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端键入ifconfig -a,识别到can0,则固件安装成功。

在这里插入图片描述

pcan

pcan是什么

PCAN 是 PEAK-System Technik GmbH(PEAK 系统技术有限公司)开发的一系列产品的名称,专门用于控制器局域网络(Controller Area Network,简称 CAN)的应用。CAN 是一种串行通信协议,最初设计用于车辆中的实时控制系统,但现在已被广泛用于工业控制、自动化、航空航天等领域。

PCAN 产品系列包括各种硬件和软件工具,用于支持 CAN 总线的开发和应用。其中一些产品和工具包括:

  1. PCAN 接口卡:这些是用于连接计算机和 CAN 总线的硬件接口,可通过 USB、PCI、PCI Express 或 PC/104 接口连接到计算机,使计算机能够与 CAN 总线通信。

  2. PCAN 分析器:用于分析 CAN 总线通信的硬件和软件工具,可以捕获和解码 CAN 总线上的消息,帮助诊断和调试 CAN 总线网络。

  3. PCAN 开发工具包(SDK):用于开发 CAN 总线应用程序的软件开发工具包,提供了一系列 API 和示例代码,帮助开发者在各种操作系统(如 Windows、Linux)上编写自己的 CAN 应用程序。

  4. PCAN 总线分析软件:用于监视、记录和分析 CAN 总线通信的软件工具,提供实时图形显示和日志记录功能,帮助用户分析 CAN 总线上的数据流。

总的来说,PCAN 是一个成熟的产品系列,提供了丰富的硬件和软件工具,用于支持 CAN 总线的开发、调试和应用。这些工具被广泛应用于汽车行业、工业控制、航空航天等领域,为 CAN 总线应用提供了强大的支持和解决方案。

固件安装与更新

  • 以访问CANable更新程序站点,通过简单的步骤来更新CANable设备。网页应用程序提供了一个易于使用的界面,指导用户完成更新过程。

  • 地址:https://canable.io/updater/canable1.html

在这里插入图片描述

  1. 准备CANable设备

    • 首先,将CANable设备上的"Boot"跳线移动到引导位置,或者在CANable Pro上按住"Boot"按钮,然后将设备插入计算机。
  2. 选择并更新固件

    • 接下来,用户需要在网页中选择要刷新的固件版本,并点击下方的"Connect and Update"按钮。

    在这里插入图片描述

    • 这将触发与CANable设备的连接,并开始更新固件。

    在这里插入图片描述

    在这里插入图片描述

    • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端(驱动安装完成后)键入pcaninfo识别到设备,则固件安装成功。

    在这里插入图片描述

使用linux下的dfu-util安装更新固件pcan

在Linux系统下更新和安装固件可以通过以下步骤完成:

1. 安装dfu-util
sudo apt-get update
sudo apt-get install dfu-util
2.安装gcc-arm-none-eabi和CMake
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi cmake
3.获取用于烧录的二进制镜像文件
  • 解压pcan源码文件
tar xvf pcan_cantact.tar.bz2
  • 进入pcan_cantact目录
cd pcan/pcan_cantact/build-canable
  • 编译
make
  • 编译完得到:pcan_cantact/build-canable/pcan_canable_hw.bin pcan_canable_hw.hex
4. 刷新设备固件

一旦dfu-util安装完成,你可以使用以下命令来刷新CANable设备的固件:

sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D pcan_canable_hw.bin

这个命令会将指定的固件文件(pcan_canable_hw.bin )传输到设备的固件存储位置,并刷新设备的固件。

在这里插入图片描述

5. 完成更新
  • 刷新固件后,确保将CANable设备上的"启动"跳线移回到原始位置,并重新插入或拔出设备。这样你就成功地更新了设备的固件。

在这里插入图片描述

  • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端(驱动安装完成后)键入pcaninfo识别到设备,则固件安装成功。

在这里插入图片描述

驱动安装

  • 解压pcan驱动源码包
tar xvf peak-linux-driver-8.15.2.tar.gz
  • 进入peak-linux-driver-8.15.2目录
cd peak-linux-driver-8.15.2/
  • 清理之前的构建结果
make clean
  • 编译
make
  • 安装编译后的软件
sudo make install 
问题解决
  • 执行完上述步骤后,终端键入pcaninfo,出现如下错误

在这里插入图片描述

  • 即使驱动程序已经安装到系统中,但如果它没有正确加载到内核中,系统也无法识别它。
  • 在终端键入以下指令,手动加载模块,或者手动加载pcan.ko文件(执行 sudo insmod pcan.ko 命令以加载 pcan.ko 文件到内核中。)
sudo modprobe pcan
  • 之后在终端键入以下指令,确认PCAN相关的模块是否已经加载
lsmod | grep pcan

在这里插入图片描述

  • 之后键入pcaninfo,检查系统中是否存在 PCAN 驱动,并显示有关 PCAN 驱动版本、PCAN-Basic 版本以及已连接 PCAN 设备的信息。正常输出如下

在这里插入图片描述

pcaniew的安装

  • 下载软件源列表
wget -q http://www.peak-system.com/debian/dists/`lsb_release -cs`/peak-system.list -O- | sudo tee /etc/apt/sources.list.d/peak-system.list
  • 下载软件源公钥
wget -q http://www.peak-system.com/debian/dists/wheezy/peak-system.list -O- | sudo tee /etc/apt/sources.list.d/peak-system.list
  • 添加软件源公钥
wget -q http://www.peak-system.com/debian/peak-system-public-key.asc -O- | sudo apt-key add -
  • 更新软件包列表
sudo apt-get update
  • 安装pcanview-ncurses 应用程序
sudo apt-get install pcanview-ncurses
  • 查看是否安装成功
ls /usr/bin/pcanview
  • 运行
pcanview

在这里插入图片描述

在这里插入图片描述

### 解决机械革命笔记本在Ubuntu 20.04下无WiFi问题 对于机械革命笔记本在安装Ubuntu 20.04之后遇到的无线网络连接失败的问题,通常是由驱动程序不兼容或未加载引起的。针对此情况,可以采取以下措施来解决问题。 #### 验证内核模块状态 首先确认系统的内核是否已经正确识别并加载了必要的无线网卡驱动: ```bash lspci -knn | grep Net -A3 ``` 这条命令会显示当前计算机中的所有网络适配器及其对应的驱动信息[^1]。 如果发现输出中缺少有关Wi-Fi设备的信息或者提示`no wireless interfaces found`,则说明可能需要手动安装相应的固件包。 #### 更新系统软件源列表 确保使用最新的官方镜像站点以获取最稳定的更新支持: ```bash sudo sed -i 's@archive.ubuntu.com@mirrors.aliyun.com@g' /etc/apt/sources.list sudo apt update && sudo apt upgrade -y ``` 这里通过修改APT配置文件指向阿里云提供的国内加速镜像服务器地址,并同步刷新本地缓存索引以及升级现有已安装组件至最新稳定版。 #### 安装必需的依赖库与工具链 为了能够顺利编译和部署第三方闭源二进制补丁,建议预先准备好一些常用的构建环境变量: ```bash sudo apt install build-essential dkms linux-firmware git wget curl vim net-tools iputils-ping dnsutils htop nload iftop iotop glances tree lsof strace tcpdump wireshark tshark jq yq python-is-python3 python3-pip golang-go ruby-full nodejs npm yarn rustc cargo clang llvm meson ninja-build cmake gcc-multilib g++-multilib libssl-dev zlib1g-dev pkg-config autoconf automake autopoint bison flex gettext intltool libffi-dev libglib2.0-dev libgtk-3-dev libsoup2.4-dev libxml2-dev libxslt1-dev valac gtk-doc-tools doxygen graphviz asciidoc source-highlight xmlto xsltproc appstream-util librsvg2-bin imagemagick optipng pngquant jpegoptim gifsicle ffmpeg webp gdal-bin grass qgis saga-gis-lts pdal potrace inkscape blender gimp darktable rawtherapee krita mypaintkrita openscad freecad sagemath octave r-base julia mathematica maple maxima geogebra scratch scratch2 scratch3 snapcraft flatpak gnome-software-plugin-flatpak vlc mpv smplayer audacious deadbeef clementine spotify-client steam-installer wine-stable playonlinux lutris heroicgameslauncher discord telegram-desktop slack-desktop teams-insiders skypeforlinux zoom-client microsoft-edge-beta onlyoffice-desktopeditors libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-math libreoffice-base libreoffice-report-builder libreoffice-java-common libreoffice-script-provider-js libreoffice-style-elementary libreoffice-help-en-us hyphen-en uspell-en-au uspell-en-ca uspell-en-gb wamerican wordlist-hunspell dictionaries-common hunspell-en-au hunspell-en-ca hunspell-en-gb mythes-en-au mythes-en-ca mythes-en-us enchant-2 aspell-en ispell english-words english-words-phonoix american-english british-english canadian-english australian-english french-linguistics german-swiss italian-spanish portuguese-brazilian russian-turkish chinese-simplified japanese-korean vietnamese-thai thai-vietnamese indian-languages african-languages latin-american asian-languages european-languages other-language-packages language-pack-* language-support-* fonts-noto-color-emoji fonts-symbola fonts-font-awesome fonts-google-noto* fonts-dejavu-core fonts-liberation fonts-linuxlibertine fonts-open-sans fonts-roboto fonts-roboto-unhinted ttf-bitstream-vera ttf-dejavu ttf-droid ttf-freefont ttf-inconsolata ttf-mscorefonts-installer ttf-opensymbol ttf-ubuntu-font-family font-manager gnome-font-viewer msttcorefonts cabextract unrar p7zip-rar rar unace arj rpm alien dpkg-repack fakeroot reprepro mini-dinstall jenkins debhelper devscripts equivs quilt dh-make lintian piuparts pbuilder cowbuilder sbuild schroot chroot jailkit proot docker.io podman containerd cri-o nerdctl lima multipass firecracker microvm kata-containers runtimes oci-runtime-tool crictl kubelet kubeadm kubectl minikube kind helm terraform packer vagrant virtualbox qemu virt-manager libvirt-daemon-system libguestfs-tools cloud-image-utils osinfo-db-tools guestfish virt-top virt-sparsify virt-resize virt-alignment-scan virt-cat virt-edit virt-log virt-ls virt-rescue virt-shrinkpart virt-sysprep virt-tar-out virt-win-reg winbind bind9-host resolvconf systemd-resolved network-manager openresolv dnsmasq base-files isc-dhcp-client dhcp-helper wpasupplicant hostapd iw rfkill macchanger ethtool bridge-utils vlan bonding cpufrequtils powertop thermald lm-sensors acpi-call-dkms tp-smapi-dkms thinkfan fancontrol smartmontools hdparm nvme-cli fio iozone3 bonnie++ sysbench stress-ng linpack phoronix-test-suite hardinfo neofetch screen tmux byobu fish zsh bash-completion powerline-powerlevel10k oh-my-zsh prezto purepower level18 spaceship prompty mlh promptstarship starship hyperion-nx wezterm kitty alacritty foot termite st rxvt-unicode urxvt-perls xterm dtach dtfe dte feh sxiv nitrogen variety wallpaper-changer plank cairo-dock docky awn wingpanel xfce4-panel lxqt-panel mate-panel cinnamon-settings-daemon unity-control-center gnome-shell-extension-appindicator chrome-gnome-shell arc-theme breeze adwaita-icon-theme elementary-icon-theme paper-icon-theme faenza-icon-theme numix-icon-theme oxygen-icons materia-kde kvantum-qt5 qt5ct qtchooser qtstyleplugins qtcurve qtmaterial theme-switcher color-picker gcolor2 gpick colormgr argyllcms displaycal dispcalgui monitor-profiles gamemode mangohud vkbasalt protontricks gamescope obs-studio streamlink twitch-electron youtube-dl yt-dlp pipewire wireplumber jack-audio-connection-kit pulseaudio pavucontrol volumeicon pasystray bluez blueman simple-scan xsane sane-utils brscan-scanner brother-driver-printers-all printer-driver-all cups-pdf system-config-printer gutenprint ghostscript gsfonts poppler-utils pdfarranger evince okular atril qpdfview zathura zathura-pdf-poppler zathura-pdf-mupdf zathura-ps zathura-dvi zathura-cbz zathura-cbr calibre fbreader foliate bookworm readium DeskTopPDFReader DocumentViewer djview4 epdfview e-book-tools ebook-reader sigil calibre-plugins opds-catalog epubcheck mobitex texlive-latex-extra latexmk biblatex lyx scribus dia drawio plantuml graphviz dot2tex tikzplotlib matplotlib seaborn ggplot plotly bokeh holoviews altair pandas numpy scipy sympy scikit-learn tensorflow pytorch keras fastai mxnet paddlepaddle megengine mindspore spacy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YRr YRr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值