Ubuntu 16.04.3系统VirtualBox-5.0.40使用USB设备

Ubuntu版本:16.04.3

Oracle VirtualBox版本:5.0.40

问题:

USB 2.0 is currently enabled for this virtual machine. However, this requires the Oracle VM VirtualBox Extension Pack to be installed.Please install the Extension Pack from the VirtualBox download site. After this you will be able to re- enable USB 2.0. It will be disabled in the meantime unless you cancel the current settings changes.

这是在设置启用USB时提示的错误。关于如何启用UbuntuOracle VM VirtualBoxUSB功能 (Oracle VM VirtualBox设置USB启用USB控制器启用USB 2.0 ECHI控制器)--如果你没有安 装Oracle VM VirtualBox Extension Pack的话,那么这时就会弹出一个提示框,提示上面给出的那段英文提示。

继续阅读Ubuntu 16.04.3系统VirtualBox-5.0.40使用USB设备

Ubuntu 14.04.5系统安装Docker-1.6.2操作基础镜像

执行如下命令安装:

$ sudo apt-get update

#日志位于 /var/log/upstart/docker.log
#解决无法启动 "Shutting down daemon due to errors: Error loading docker apparmor profile: exec: "/sbin/apparmor_parser": stat /sbin/apparmor_parser: no such file or directory ()"
$ sudo apt-get install apparmor

$ sudo apt-get install -y docker.io

启动服务:

$ sudo service docker start

测试服务是否正常:

$ sudo docker run hello-world

创建基础镜像:

$ cd ~

$ mkdir basic_docker

$ cd basic_docker

$ touch Dockerfile

接下来,就是Dockerfile里面的内容了:

#从基础镜像派生,基础镜像从Docker官网下载
FROM ubuntu:14.04

#镜像所有者
MAINTAINER www.mobibrw.com

#安装命令,安装镜像需要的软件
RUN apt-get update && apt-get install -y php5

构建Docker镜像:

#注意 -t 参数指定镜像名,后面可以用":"来指定版本号 比如 “-t basic_docker:1.0"
#创建好的镜像的默认存放路径为"/var/lib/docker"
$ sudo docker build -t basic_docker .

#创建完成后,查看机器上已经创建的镜像列表
$ sudo docker images

运行刚刚创建好的镜像:

#执行之后,当前Shell被切换到了Docker内部的Shell中

$ sudo docker run -t -i basic_docker /bin/bash

导出刚刚创建好的镜像:

$ sudo docker save basic_docker > basic_docker.tar

其他机器上加载我们导出的镜像:

$ sudo docker load --input basic_docker.tar

删除不再使用的镜像:

#停止所有的container,这样才能够删除其中的images
$ sudo docker stop $(sudo docker ps -a -q)
#删除所有container解除对镜像的引用
$ sudo docker rm $(sudo docker ps -a -q)

#创建完成后,查看机器上已经创建的镜像列表 
$ sudo docker images

$ sudo docker rmi ${IMAGE ID}

#想要删除untagged images,也就是那些id为<None>的image的话可以用,注意 awk部分必须是单引号'
$ sudo docker rmi $(sudo docker images | grep "^<none>" | awk '{print $3}')

如果运行时报错:

Error response from daemon: Cannot start container 915xxxxxxxxxx: [8] System error: mountpoint for devices not found

则尝试安装:

$ sudo apt-get install cgroup-bin

参考链接


Ubuntu 14.04.5编译安装OpenCV-2.4.13.5

  • 获取源代码
$ cd ~

$ git clone https://github.com/opencv/opencv.git

$ cd opencv

$ git checkout 2.4.13.5
  • 安装依赖库
$ sudo apt-get install -y cmake

#借助系统自带的opencv简化依赖安装步骤
$ sudo apt-get install -y libopencv-dev
  • 编译源代码
$ cd ~

$ cd opencv

$ mkdir build

$ cd build

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

$ make -j 10

如果要生成DEB安装包,则上面的命令修改成

$ cd opencv

$ mkdir build

$ cd build

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CPACK_BINARY_DEB=ON ..

$ make -j 10

$ sudo make install

$ sudo cpack runs

#最后在当前目录下生成DEB安装包
  • 替换已经安装的版本
$ sudo make install
  • 编译出错的处理

如果执行cmake时候出现如下错误信息

CMake Error at CMakeLists.txt:11 (message):
  

  FATAL: In-source builds are not allowed.

         You should create separate directory for build files.



-- Configuring incomplete, errors occurred!

则应该是在代码根目录下直接执行过cmake,导致根目录下生成了CMakeCache.txt,需要删除CMakeCache.txt再次执行编译即可。

相关链接


Ubuntu 14.04.5源代码编译ROS Indigo并建立自己的DEB安装源

正常情况下我们使用已经编译好的ROS安装包来安装配置默认的ROS环境,就可以比较好的完成工作了。具体参考Ubuntu14.04安装和配置ROS Indigo

但是在某些情况下,比如,我们需要替换或更新里面的某些默认安装包的版本(比如OpenCV)。

这种情况下,我们就只能重新从源代码开始编译,或者构建自己的安装源了。

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential

$ sudo rosdep init

$ rosdep update

$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws

$ export ROS_VER_NAME=indigo
$ export OS_VER_NAME=trusty

#如果是全部重新编译,则删除整个src目录再进行操作
$ rosinstall_generator desktop_full --rosdistro $ROS_VER_NAME --deps --wet-only --tar > $ROS_VER_NAME-desktop-full-wet.rosinstall

$ wstool init -j8 src $ROS_VER_NAME-desktop-full-wet.rosinstall

$ rosdep install --from-paths src --ignore-src --rosdistro $ROS_VER_NAME -y

$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

#如果想一步到位,安装到最终目录,请执行如下命令,主要是 --install-space /opt/ros/$ROS_VER_NAME
# sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/$ROS_VER_NAME

上面的操作是生成完整的文件,然后再拷贝到需要安装的最终目录(--install-space /opt/ros/$ROS_VER_NAME指定),但是并没有生成DEB格式的安装包。

如果我们需要建立自己的安装源,那么参照上面的操作,并且正常编译完成后,使用下面的步骤编译安装包:

$ export ROS_VER_NAME=indigo 
$ export OS_VER_NAME=trusty

#如果要生成deb安装包,需要按照顺序操作
$ sudo apt-get install python-bloom

#编译并安装基础核心模块
#-----------------------catkin-------------------------------
$ cd ~/ros_catkin_ws/src/catkin/

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME

$ fakeroot debian/rules binary

#需要安装,后续的模块编译依赖前面编译的模块
$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-catkin*.deb

#部分Python模块依赖我们刚刚编译的模块,把路径加入,否在后续模块编译会报错
$ export PYTHONPATH=$PYTHONPATH:/opt/ros/indigo/lib/python2.7/dist-packages

#-----------------------genmsg-------------------------------
$ cd ~/ros_catkin_ws/src/genmsg/

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME 

$ fakeroot debian/rules binary

$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-genmsg*.deb


#-----------------------genpy-------------------------------
$ cd ~/ros_catkin_ws/src/genpy/ 

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME 

$ fakeroot debian/rules binary 

$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-genpy*.deb


#-----------------------gencpp------------------------------- 
$ cd ~/ros_catkin_ws/src/gencpp/ 

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME 

$ fakeroot debian/rules binary 

$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-gencpp*.deb


#-----------------------genlisp------------------------------- 
$ cd ~/ros_catkin_ws/src/genlisp/ 

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME 

$ fakeroot debian/rules binary 

$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-genlisp*.deb


#-----------------------message_generation------------------------------- 
$ cd ~/ros_catkin_ws/src/message_generation/

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME

$ fakeroot debian/rules binary

$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-message-generation*.deb

#-----------------------message_runtime------------------------------- 
$ cd ~/ros_catkin_ws/src/message_runtime/

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME

$ fakeroot debian/rules binary

$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-message-runtime*.deb

........................................................................

#-----------------------std_msgs------------------------------- 
$ cd ~/ros_catkin_ws/src/std_msgs/

$ bloom-generate rosdebian --os-name ubuntu --os-version $OS_VER_NAME --ros-distro $ROS_VER_NAME

$ fakeroot debian/rules binary

$ sudo dpkg -i ~/ros_catkin_ws/src/ros-$ROS_VER_NAME-std-msgs*.deb

至于如何建立自己的源,请参考:建立自己的apt-get源

对于替换OpenCV重新编译的情况,参考Ubuntu 14.04.5编译安装OpenCV-2.4.13.5,然后执行sudo apt-get remove libopencv-dev&&sudo apt-get autoremove && rm -rf ~/ros_catkin_ws/install_isolated 删除已经安装好的OpenCV以及临时文件,然后重新编译ROS源代码。最后可以从~/ros_catkin_ws/install_isolated/share/cv_bridge/cmake/cv_bridgeConfig.cmake中看到已经链接刚刚编译安装的OpenCV版本了。

参考链接