在 ROS Noetic 中使用带 GPU 支持的 PCL

前言 ROS Noetic 中自带的 PCL 1.10 并没有 GPU 支持。如果想要启用 GPU/CUDA 支持的话,只能自己编译。 然而与 OpenCV 类似,ROS 使用了 pcl_ros, pcl_conversions 等包作为 PCL 与 在 ROS 的接口,使用自编译版本的 PCL 需要修改这些包的设置,较为麻烦。 以下是在 ROS 中使用自编译(带 GPU 支持)版本 PCL 的完整步骤。 编译 PCL 最新版 PCL (PCL 1.14.0) 若启用 gpu 支持,需要 CUDA Toolkit v9.2+ 同时,因为使用了 ccmake,需要安装 cmake-curses
阅读更多

Gentoo 中安装 GNU Octave 的注意事项

在 Gentoo 安装 octave 时,如果只使用官方默认的 USE,你会惊喜的发现 pkg 是无法下载软件包的: 1 support for URL transfers was disabled when Octave was built 这是因为 Gentoo 在对 ocatve 配置的 USE 中,没有加上对 curl 的支持,导致 pkg 无法使用 URL 下载软件包。 如果需要使用 pkg 安装软件包,需要为 octave 单独加上 USEcurl。 在/etc/portage/package.use中,加上: sci-mathematics/octave curl
阅读更多

LFS 搭建 7 内核与 GRUB

现在进入最后一部分,内核与 GRUB 的安装。 构建 Linux 内核 先解压: 1 2 tar -xvf linux-5.13.12.tar.xz cd linux-5.13.12 清理源码树,虽然才解压没什么必要: make mrproper 配置 此处使用: make menuconfig 原来我一直想使用 arch 的配置然后oldconfig,但试了很多次后机器启动一直失败。 配置选项说明参见金步国的博客:http://www.jinbuguo.com/kernel/longterm-linux-kernel-options.html 虽然是 4.4 的,但大部
阅读更多

LFS 搭建 6 系统配置

现在正式进入系统配置阶段。 网络配置 这里使用 systemd-networkd 和 systemd-resolved 因为我需要远程登录,因此此处选择静态 ip: 静态 IP 配置 这里还不知道目标机器网卡接口名,这个值可以用于大部分有线接口,其他参数自行替换。 1 2 3 4 5 6 7 8 9 cat > /etc/systemd/network/10-eth-static.network << "EOF" [Match] Name=en* [Network] Address=192.168.1.105/24 Gateway=192.168.1.1 DNS=192.168.1
阅读更多

LFS 搭建 5 正式构建 (2)

现在继续构建剩下的软件包。 构建软件包 Inetutils-2.1 1 2 tar -xvf inetutils-2.1.tar.xz cd inetutils-2.1 configure 1 2 3 4 5 6 7 8 9 10 ./configure --prefix=/usr \ --bindir=/usr/bin \ --localstatedir=/var \ --disable-logger \ --disable-whois \
阅读更多

LFS 搭建 4 正式构建 (1)

在临时系统构建完成后,从现在开始,就进入正式构建阶段。 根据 LFS 手册,绝大多数包在编译时都不使用静态库,且一般都会在 configure 中直接关闭,不过 gcc 之类需要的除外。 在现阶段我并没有移植包管理器的打算,也许以后有时间我会出一篇将 Portage 移植到 LFS 的教程吧。 :D 进入 Chroot 环境 每次登录,都要检查$LFS: echo $LFS 首先先挂载/dev和内核虚拟文件系统 1 2 3 4 5 mount -v --bind /dev $LFS/dev mount -v --bind /dev/pts $LFS/dev/pts mount -v
阅读更多

LFS 搭建 3 Chroot 以及构建额外工具

现在开始就要 chroot 了,同时现在开始用户也要从lfs到root。 不过这个顺序相比 9.0 差别太大了吧…… 那么,现在就su吧。 记得设置$LFS: export LFS=/mnt/lfs 改变 LFS 系统目录的所有者 毕竟一个正常的系统其系统文件所有者不可能是lfs 1 2 3 4 chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools} case $(uname -m) in x86_64) chown -R root:root $LFS/lib64 ;; esac 准备虚拟内核文件系统 首先需要建立 dev
阅读更多

LFS 搭建 2 构建临时系统

准备工作做完之后,就要开始搭建临时工具链了。 但说是工具链,其实还包括一些其他工具。 开始前的准备 首先当然是登录lfs用户。 之后检查下$LFS是否设置正确。 echo $LFS 之后,需要检查以下部分是否正确设置,虽然大部分都不需要刻意留意,但不排除像我这样有特殊习惯的用户会不满足以下条件。 1. shell 用的是 bash。 不过目前大部分 shell 都是兼容 bash 的,比如我用的 zsh。 2. sh 符号链接到 bash。 这个绝大多数发行版都满足。 3. /usr/bin/awk符号链接到 gawk。 这个也不用在意 4. /usr
阅读更多

LFS 搭建 1 准备工作

那么,现在就正式开始。 目前目标机的硬盘在宿主机的位置为/dev/sdb。 分区 目前的分区方案如下 分区位置大小类型(挂载点)/dev/sdb1256MEFI 分区/dev/sdb24Gswap/dev/sdb3剩余部分/现在采用 parted 进行分区 1 2 3 4 5 6 # parted /dev/sdb (parted) mklabel gpt (parted) mkpart ESP fat32 1M 257M (parted) set 1 boot on (parted) mkpart primary linux-swap 257M 4353M (parted) m
阅读更多

LFS 的搭建 0 前言

前言 其实一开始要搭建 LFS 时,我是拒绝的。 但奈何自己手贱加学校的教务系统出问题,我同时选择了操作系统和操作系统课程设计。 而正常情况下是不能同时选择的。 而操作系统课程设计的大作业,就是搭 LFS。 也罢,这也是我的终极目标,虽然早了点,时间还被一大堆大作业和实验报告占满了,还有 ddl 催命。 于是,我就只能硬着头皮上了。 选择的版本 秉承要安装就要最新版的原则,我选择了最新的11.0 对了,是 systemd 版本的。 不过根据现在 LCTT 的进度,中文版最新到 9.0,因此 11.0 的版本只能硬啃生肉。 当然,不同版本之间差距应该并不大,所以我会参考中文最新版的就是了。
阅读更多