0、引言
在前期成功自定义编译Kria Robotics Stack(KRS)后,一直没有在kv260上跑起来,硬件自boot之后就一直停掉,现象如下:
很明显,是加载linux内核失败!!!
经历过五六次失败以后,各种方式都试了,换机器编译,多次重编译之后,偶然间在一次重编译之中,最后一步的生成SD_Image过程中发现需要管理员用户权限,后来推测是不是权限的原因导致生成的镜像不完整,或者根本就没完成,那肯定就运行不起来了。
具体这个过程就不一一列举了,相信玩这个的伙伴们也可能会碰到类似问题,如果你看到这个没出问题,那么恭喜你,这篇闭坑文章就可以跳过了。如果你也碰到了,那就继续往下看看吧。
这里把成功编译版本,截图复述一下,可能不全面,只覆盖了部分过程。
1、前提
1、Ubuntu20.04.4安装 Kria Robotics Stack(KRS)_mamak426的博客-CSDN博客
2、补充:解决Ubuntu20.04.4安装KRS时无法下载github代码问题_mamak426的博客-CSDN博客
请按照上述两篇文章及官方文档接着继续编译。
接前期编译操作步骤如下:
$ cd ~/krs_ws # head to your KRS workspace
# prepare the environment
$ source /tools/Xilinx/Vitis/2021.2/settings64.sh # source Xilinx tools
$ source /opt/ros/rolling/setup.bash # Sources system ROS 2 installation
$ export PATH="/usr/bin":$PATH # FIXME: adjust path for CMake 3.5+
# build the workspace
$ colcon build --merge-install #
# source the workspace as an overlay
$ source install/setup.bash
编译过程如上
以上完成基本编译。之后,
2、PC主机运行hello_xilinx实例
$ source install/setup.bash # source the overlay workspace
$ ros2 run publisher_xilinx member_function_publisher
[INFO] [1618407842.800443167] [minimal_publisher]: Publishing: 'Hello, Xilinx! 0'
[INFO] [1618407843.300407127] [minimal_publisher]: Publishing: 'Hello, Xilinx! 1'
[INFO] [1618407843.800389187] [minimal_publisher]: Publishing: 'Hello, Xilinx! 2'
ctrl +c 停止之后,说明没有编译问题了,请进入下一步——生成kv260镜像。
3、编译kv260镜像
选择启用kv260系统
$ colcon acceleration select kv260
判断是否成功启用,看到输出kv260*,说明对了
$ colcon acceleration list
kv260*
生成kv260包
$ colcon build --build-base=build-kv260 --install-base=install-kv260 --merge-install --mixin kv260 --packages-select publisher_xilinx
打包过程很快,请静候
生成的路径如下
生成可在kv260直接运行的镜像:
$ colcon acceleration linux vanilla --install-dir install-kv260
官方明示:~/krs_ws/acceleration/firmware/select/sd_card.img路径下的就是可在kv260上执行的镜像。
参考官方 gthese instructions 页面手册,完成sd卡的镜像烧写,此处一万步,略略略,参考该链接即可。
注意此处需要使用sudo管理员密码,但问题就出在这,生成的镜像不行,如开头的截图
启动不起来呀!!!
分析原因:权限问题吧,貌似一切问题都可以归纳为这个问题,毕竟官方讲了,只要你这么做肯定是没问题的,出了问题可能跟官方操作系统是ubuntu20.04.3,环境些许不同所致吧。
4、问题解决
尝试使用sudo -i管理员用户进行编译:如下:
sudo -i
cd /home/alinx/krs_ws_beta
重新执行
$ colcon acceleration linux vanilla --install-dir install-kv260
我是所有上述所有编译操作来了一遍,其实只需要上面这一步即可。
如此生成的镜像是可以上板子执行的,亲测成功。
5、上板子kv260执行
省略,省略,省略
最后
PetaLinux 2020.2.2 xilinx-k26-starterkit-2020_2.2 ttyPS0
xilinx-k26-starterkit-2020_2 login:
首次需要使用用户名:petalinux,密码自己设置,我就用万能root,再次输入密码确认即可,进入,啊,爽!
6、支持人见人爱的jupyterlab
主机PC,打开浏览器,输入上图中的
即可在主机浏览器访问kv260上的jupyterlab运行环境
软件python程序员最熟悉了,亲民套装吧
kv260上,直接运行ROS2,如下:
$ source /usr/bin/ros_setup.bash # source the ROS 2 installation
$ . /ros2_ws/local_setup.bash # source the ROS 2 overlay workspace
$ ros2 run publisher_xilinx member_function_publisher # launch the hello_xilinx example
[INFO] [1618478074.116887661] [minimal_publisher]: Publishing: 'Hello, Xilinx! 0'
[INFO] [1618478074.611878275] [minimal_publisher]: Publishing: 'Hello, Xilinx! 1'
[INFO] [1618478075.112175121] [minimal_publisher]: Publishing: 'Hello, Xilinx! 2'
成功跑起来,好了,到此为止!