NVIDIA TX2 (Ubuntu 16.04)上安装CUDA 8.0

使用如下方式安装:

$ cd ~ 

$ wget http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/013/linux-x64/cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb

$ sudo dpkg -i cuda-repo-l4t-8-0-local_8.0.84-1_arm64.deb

$ sudo apt-get update

$ sudo apt-get install cuda-toolkit-8-0

至于如何获取最新的NVIDIA TX2上使用的CUDA 8.0版本的下载地址,请访问Jetson Download Center,下载目前最新的JetPack 3.1。执行之后在存储目录下的repository.json中找到最新的下载链接即可。当然也可以让JetPack 3.1自动下载完成最新的CUDA 8.0版本到指定目录。

NVIDIA TX2 (Ubuntu 16.04)上安装ROS

首先编辑安装源

$ sudo vim /etc/apt/sources.list

找到如下内容

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial universe
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted

deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security universe
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security multiverse

开启universe源,修改为:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ports.ubuntu.com/ubuntu-ports/ xenial universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial universe
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted

deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security universe
# deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security multiverse

然后更新源

$ sudo apt-get update

然后执行如下安装脚本:

#!/bin/bash
sudo apt-get update 
sudo apt-get upgrade -y --force-yes
sudo apt-get autoremove -y

# 必须先安装boost ,否则,整个安装过程会失败,应该是apt的BUG
sudo apt-get -y install libboost-all-dev

UBUNTU_VERSION=`lsb_release -c -s`
ROS_DISTRO=hydro

if [ $UBUNTU_VERSION = trusty ] || [ $UBUNTU_VERSION = saucy ] ; then
  ROS_DISTRO=indigo
elif [ $UBUNTU_VERSION = xenial ] ; then
  ROS_DISTRO=kinetic
fi

ROS_PACKAGES="python-rosinstall ros-$ROS_DISTRO-robot-state-publisher ros-$ROS_DISTRO-cmake-modules ros-$ROS_DISTRO-freenect-stack ros-$ROS_DISTRO-openni-launch ros-$ROS_DISTRO-camera-info-manager-py"

echo "deb http://packages.ros.org/ros/ubuntu $UBUNTU_VERSION main" | sudo tee /etc/apt/sources.list.d/ros-latest.list
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-$ROS_DISTRO-desktop-full -y
sudo rosdep init
rosdep update
sudo apt-get install $ROS_PACKAGES -y --force-yes

参考链接


Ubuntu 16.04上使用crosstool-ng编译Nvidia TX2上使用的boost库

目前在Nvidia TX2上尝试安装ROS Kinetic的时候发现依赖libboost-all-dev,但是自带的源http://ports.ubuntu.com下面没有合适的源,尽管在universe源下面包含libboost-all-dev ,但是实际安装的时候发现安装不上。

因此尝试手工编译最新的boost安装包,建立自己的源。

首先,编译安装最新的crosstool-ng,如下:

$ sudo apt-get install git

$ sudo apt-get install gperf

$ sudo apt-get install bison

$ sudo apt-get install flex

$ sudo apt-get install texinfo

$ sudo apt-get install help2man

$ sudo apt-get install gawk

$ sudo apt-get install libncurses5-dev

$ cd ~

$ git clone https://github.com/crosstool-ng/crosstool-ng.git

$ cd crosstool-ng

$ git checkout crosstool-ng-1.23.0

$ ./bootstrap

$ ./configure --prefix=/usr/local

$ make

$ sudo make install

$ cd ~

$ mkdir tx2

$ cd tx2

#用树莓派的模板作为参考模板即可
$ cp ~/crosstool-ng/samples/aarch64-rpi3-linux-gnueabi/crosstool.config .config

$ ct-ng oldconfig

#默认一路回车即可,如果使用图形界面配置执行 ct-ng menuconfig
 
$ unset LD_LIBRARY_PATH

$ ct-ng build

生成的工具链在~/x-tools/aarch64-rpi3-linux-gnueabi目录下,编译的时候,指定编译工具即可。

安装编译依赖

$ sudo apt-get install devscripts

$ sudo apt-get install cdbs

$ sudo apt-get install python-dev

$ sudo apt-get install libbz2-dev

接着,下载并编译最新的代码

#!/bin/bash
export DEBVERSION=1.58.0-1
if [ ! -d "boost_1_58_0" ]; then
    wget "http://nchc.dl.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.tar.bz2" -O boost_1_58_0.tar.bz2
    tar xjvf boost_1_58_0.tar.bz2
fi
cd boost_1_58_0

:<<BLOCK
'export DEBVERSION=1.60.0-1
if [ ! -d "boost_1_60_0" ]; then
 wget "http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2" -O boost-all_1.60.0.orig.tar.bz2
 tar xjvf boost-all_1.60.0.orig.tar.bz2
fi
cd boost_1_60_0
'
BLOCK

#Build DEB
rm -rf debian
mkdir -p debian
#Use the LICENSE file from nodejs as copying file
touch debian/copying
#Create the changelog (no messages needed)
dch --create -v $DEBVERSION --package libboost-all ""
#Create copyright file
touch debian
#Create control file
cat > debian/control <<EOF
Source: libboost-all
Maintainer: LongSky <wangqiang1588@sina.com>
Section: misc
Priority: optional
Standards-Version: 3.9.2
Build-Depends: debhelper (>= 8), cdbs, libbz2-dev, zlib1g-dev

Package: libboost-all
Architecture: arm64
Depends: \${shlibs:Depends}, \${misc:Depends}, libboost-all (= $DEBVERSION)
Description: Boost library, version $DEBVERSION (shared libraries)

Package: libboost-all-dev
Architecture: any
Depends: libboost-all (= $DEBVERSION)
Description: Boost library, version $DEBVERSION (development files)

Package: libboost-build
Architecture: any
Depends: \${misc:Depends}
Description: Boost Build v2 executable
EOF
#Create rules file
cat > debian/rules <<EOF 
#!/usr/bin/make -f
%:
	dh \$@
override_dh_auto_configure:
	./bootstrap.sh
override_dh_auto_build:
	./b2 link=static,shared -j 1 --prefix=`pwd`/debian/libboost-all/usr/
override_dh_auto_test:
override_dh_auto_install:
	mkdir -p debian/libboost-all/usr debian/libboost-all-dev/usr debian/libboost-build/usr/bin
	./b2 link=static,shared --prefix=`pwd`/debian/libboost-all/usr/ install
	mv debian/libboost-all/usr/include debian/libboost-all-dev/usr
	cp b2 debian/libboost-build/usr/bin
	./b2 install --prefix=`pwd`/debian/libboost-build/usr/ install
EOF
#Create some misc files
echo "8" > debian/compat
mkdir -p debian/source
echo "3.0 (quilt)" > debian/source/format
#Build the package
nice -n19 ionice -c3 debuild -b -d -uc -us

注意,对于boost-1.58来说,当时的代码是没有检测ARM64的功能的,当年也没有ARM64的芯片。因此需要修改{boost_root}/libs/config/checks/architecture/arm.cpp里面的代码,增加ARM64的判断

#if !defined(__arm__) && !defined(__thumb__) && \
    !defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \
    !defined(_ARM) && !defined(_M_ARM)
#error "Not ARM"
#endif

调整为

#if !defined(__arm__) && !defined(__thumb__) && \
    !defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \
    !defined(_ARM) && !defined(_M_ARM) && !defined(__aarch64__)
#error "Not ARM"
#endif

参考链接


使用ffmpeg来将mp4视频转换成gif格式图片

Ubuntu 16.04下使用

$ sudo apt-get install ffmpeg

安装ffmpeg工具。

$ ffmpeg -i S70131-15433307.mp4 -s 272x480 -b:v 200k output1.mp4

-s用于设定分辨率,-b:v设定视频比特率来压缩大小

$ ffmpeg -ss 2 -t 5 -i output1.mp4 -s 272x480 -r 15 output1.gif

-ss 2 -t 5,从第2秒的地方开始,往后截取5秒钟, -r用于设定帧数. 通常Gif15帧左右就比较流畅了

$ convert output1.gif -fuzz 20% -layers Optimize output2.gif

设置fuzz因子可以将相近的颜色视为相同的颜色,这样就可以抵消抖动和色彩压缩的影响。
-fuzz选择多少能取得最大的压缩效果,同时对画质的影响可以接受,则需要耐心地尝试。

参考链接


使用ffmpeg来将mp4视频转换成gif格式图片

Ubuntu 16.04.3在使用GeForce GTX 970显卡的电脑上无法安装以及启动的解决方法

最近在一台安装了GeForce GTX 970显卡的机器上,一直无法安装Ubuntu 16.04.3系统的时候,一直卡住在如下界面:

继续阅读Ubuntu 16.04.3在使用GeForce GTX 970显卡的电脑上无法安装以及启动的解决方法

16款荣放(RAV4)2.0版加装飞歌导航G6S二代异响消除

当时买RAV4的时候,展车是改装了10.2存屏幕的,当时脑子一冲动,就要求4S店加装,结果就是这个飞歌导航G6S二代。

刚刚安装好,还是不错的,但是半年左右的样子,就开始出现异响,后来声音越来越大,一直吱吱吱的不停,都有些神经衰弱了。

于是手工拆开,自己动手解决异响问题。

继续阅读16款荣放(RAV4)2.0版加装飞歌导航G6S二代异响消除

HP ProLiant MicroServer Gen8升级BIOS

注意,升级BIOS,不需要创建启动U盘,更不需要安装Windows系统,只需要网页端通过iLO操作即可实现。

iLO 当前的版本分为硬件版本软件版本

  • 硬件版本目前主要是 iLO 4 和 iLO 5,后者是 Gen10 在使用。登录 iLO 管理后台页面的头部会提示你 iLO4/5。
  • 软件版本目前 iLO 4 的最新版本是 2.73.2,iLO 5 因为用不上没有做了解。在 iLO 管理后台登录界面上会有一行小字提示。

可以根据 升级 HP MicroServer Gen8 iLO 秘笈 的介绍,从HPE官网搜索并下载BIOS文件(官网建议下载Windows 版本的升级包,里面文件解压缩后最少),也可以从本站下载BIOS固件 iLO2.5 或者 HP Gen8 BIOS 20190404

iLO2.5 解压缩完成后,其中的cp031064 gen8 bios 2015.11.02.exe就是我们需要升级的BIOS固件。

HP Gen8 BIOS 20190404 解压缩出来的`cp039540.exe`也是我们需要升级的BIOS固件,这个是目前最新的版本

我们用7z等解压缩软件,解压缩出里面的文件,iLO 2.5中的`CPQJ0612.F62` 或者 HP Gen8 BIOS 20190404 中的`CPQJ0613.684` 就是我们的升级文件,两者都可以,一般建议用最新的 HP Gen8 BIOS 20190404  里面的文件。

继续阅读HP ProLiant MicroServer Gen8升级BIOS

HP ProLiant MicroServer Gen8升级到iLO4 2.54/2.73/2.82.5

iLOIntegrated Ligths-out的简称,是HP服务器上集成的远程管理端口,它是一组芯片内部集成vxWorks嵌入式操作系统,通过一个标准RJ45接口连接到工作环境的交换机。只要将服务器接入网络并且没有断开服务器的电源,不管HP服务器的处于何种状态(开机、关机、重启),都可以允许用户通过网络进行远程管理。简单来说,iLO是高级别的远程KVM系统,可以将服务器的显示信息显示在本地,并且使用本地的键盘鼠标控制、操作服务器,并可以将本地的光盘镜像、文件夹作为虚拟光驱映射并加载到服务器中。使用iLO,可以完成低层的BIOS设置、磁盘RAID配置、操作系统的安装等底层的工作,并且可以在完成系统安装后实现系统的远程控制与管理。

iLO 当前的版本分为硬件版本软件版本

  • 硬件版本目前主要是 iLO4 和 iLO 5,后者是 Gen10 在使用。登录 iLO 管理后台页面的头部会提示你 iLO4/5。
  • 软件版本目前 iLO4 的最新版本是 2.73.2,iLO5 因为用不上没有做了解。在 iLO 管理后台登录界面上会有一行小字提示。

iLO 2.73版本新增了基于`HTML5`的远程控制台,比以前方便多了,建议升级这个版本。

可惜HP官网上并没有在明显的位置找到iLO的升级文件下载的地方,可参考 升级 HP MicroServer Gen8 iLO 秘笈 的介绍,自己搜索下载需要的版本。也可依赖网友们共享已经下载完成的更新文件。

继续阅读HP ProLiant MicroServer Gen8升级到iLO4 2.54/2.73/2.82.5

Linux下编辑ISO文件的方法

我们知道Windows下有类似UltraISO的这样的软件可以用来编辑ISO文件,可引导ISO也没有问题。近来在Linux下玩的比较多,正好要改个ISO,于是就开始找Linux下有没有类似的软件。

Ubuntu软件中心里有一款叫ISOMaster的软件,可以创建和修改ISO文件。

继续阅读Linux下编辑ISO文件的方法