NVIDIAのドライバをすべて削除してから最新のものにする
$ sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
$ sudo apt-get update
$ sudo apt-get remove nvidia-*
$ sudo apt-get install nvidia-current nvidia-settings
$ sudo stop gdm
これでうまく止まらない場合は
$ sudo vi /etc/init.d/grub
GRUB_CMDLINE_LINUX_DEFAULT=のところにtextを追加
$ sudo reboot
LLVMとClangをインストールする基本的な方法
LLVMとClangのソースをここからダウンロード
両方のファイルを解凍して,Clangの方の中身をLLVMフォルダの中のtools/clang/にコピー
$ ./configure
$ make -j2
$ sudo make install
C++でプログラムを書いているときに,クラスの中でスレッドを実行して並列処理を行いたくなった。
Boostという便利なライブラリを使って,これを実現します。
#include <boost/thread.hpp>
#include <boost/bind.hpp>
class hoge{
private:
thr_func(int a);
func(){
int b;
boost::thread thr(boost::bind(&hoge::func, this, b);
thr.join();
}
};
Boostの使い方とかはここを参照fit-PC2iはAtomという非力なCPUを使用しているので,できるだけCPU負荷を減らしてあげる必要があります.
でないと録画がうまくいかない可能性がありますし,省電力PCでCPUを常時使いまくってるのもどうなの?ってのがあるからです.
実はgcc-4.5からAtomの最適化オプションが提供されていて,これを追加してあげるだけでも処理負荷が1/3になったりします.
ぶっちゃけ,このためにここでgcc-4.5.3を入れましたw
ここを参考にやっていきます.(kinumi様ありがとうございます
といってもやることは同じなんですけどねw
$ vi FSUSB2N/Makefile
この中に最初から書かれている下の二つの行を削除
CXX = g++
CXXFLAGS = -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25)
その後下を追加
CXX = /usr/local/gcc-4.5.3/bin/g++
CXXFLAGS = -O3 -mfpmath=sse -msse -msse2 -msse3 -mtune=atom -march=atom -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25)
CC = /usr/local/gcc-4.5.3/bin/gcc
CFLAGS = -O3 -mfpmath=sse -msse -msse2 -msse3 -mtune=atom -march=atom -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25)
$ make
$ sudo cp recfsusb2n /usr/local/bin/
恵安株式会社から発売されているKTV-FSUSB2をrecfsusb2nを使ってLinuxで地デジを録画できるようにします.
それぞれがどういうものなのかっていうのは各サイトおよびグーグル先生に聞いてみてください.
まず,KTV-FSUSB2は買ってきていろいろ準備をしておきます.
次に,recfsusb2nの設定をページに記載されている順番でつらつらやっていきます.
まず,デバイスを外した状態で使用するための環境を作っていきます.
$ sudo apt-get install g++
$ sudo apt-get install libboost-thread-dev libboost-filesystem-dev
$ sudo groupadd video
$ gpasswd -a 使いたいユーザ名 video
$ sudo vi /lib/udev/rules.d/89-tuner.rules
で、以下を追加
# FSUSB2N
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0511", ATTRS{idProduct}=="0029", MODE="0664", GROUP="video"
$ udevadm control --reload-rules
$ lsusb -d 0511:
これを実行してなにか入れば,無事に認識できています
$ tar zxvf recfsusb2n-0.9.2.tar.gz
$ cd FSUSB2N
$ make
$ sudo cp recfsusb2n /usr/local/bin/
$ recfsusb2n -bv 24 40 test.ts
公式から適当なバージョンのgccソースを持ってくる.
これを解凍して,configureを実行するとgmp,mpfr,mpcが必要だ!!って怒られるので,それらもソースからインストールします.
それぞれに依存関係があるので,gmp,mpfr,mpcの順番で入れていきます.
3つとも下の手順で大丈夫です.
./configureの途中で止まった場合は,必要なファイルが足りていないので,何が足りていないのかを調べてそれをインストールしてから再度実行
$ cd 解凍したフォルダ
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
$ cd gccのフォルダ
$ ./configure --with-gmp=/usr/local/ --with-mpfr=/usr/local/ --with-mpc=/usr/local/ --prefix=/usr/local/gcc-4.5.3
$ make
$ sudo make install
$ sudo ldconfig
$ sudo ln -s /usr/local/gcc-4.5.3/bin/gcc /usr/local/bin/gcc-4.5.3
$ sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'
$ sudo apt-get update
$ sudo aptitude install sun-java6-jdk
$ gcc -v
で,インストールしたバージョンになっていれば大丈夫ですWindows用のキーボードだとAの左横がcapsになっていて,普段使っている感じでLinuxをいじれない。。。
ひじょーに使いにくい!!
という訳で,capsはあんまり使わないだろうから,ctrlに置き換えてしまいます.
$ sudo vi /etc/rc.local
exit 0より上に下のどちらかを追加する.私の場合だと下でうまく動きました
dumpkeys | sed -e 's/CtrlL_Lock/Control/' | loadkeys
dumpkeys < /dev/tty1 | sed 's/^\(keycode[ | ][ | ]*58[ | ]*=\).*$/\1 Control/' | loadkeys
レポジトリの追加とかで便利なadd-apt-repositoryコマンドがUbuntu10.04 Serverには入っていないみたいなので,これをいれます.
$ sudo apt-get install python-software-properties
$ sudo apt-get update
以前Ubuntuをインストールしましたが,なにを思ったのかやっぱりServer版にしよう!!ってなってしまい,再度インストールしましたb
まぁ,基本的にインストールは設定したいところを設定して,入れたいものを入れる感じで大丈夫なんですが,(わからない人はデフォルトで大丈夫だと思います。
インストールが一通り終わってからのaptの設定周辺で落ちる落ちる;;
結果からいうと,Ethernetドライバがカーネルパニックを引き起こしてました.(これだから蟹さんはーーー。。r8169ドライバで不具合報告多数
なので,Ethernetケーブルを引っこ抜いてネットワークの設定は後から手動で設定するようにして,無事にインストールすることができました.
無事インストールが完了してもこのままだとネットが使えないので,まずEthernetドライバを入れます.
その辺りはここを参照
デフォルトでインストールされたRealtekのドライバ(R8169)が不調で,負荷をかけるとカーネルパニックで落ちてしまうという現象が発生.
調べてみると,R8169の不具合が結構報告されているので,R8111用のものに入れ替えます.(fit-PC2iはもともとR8111を使っていたはず
ソースをここからダウンロードして,解凍したファイルの中にあるautorun.shを実行します
$ tar jxvf r8186-8.025.00.tar.bz2
$ cd r8186-8.025.00
$ sudo ./autorun.sh
$ sudo cp /boot/initrd.img-`uname -r` /boot/initrd.img-`uname -r`.bak
$ sudo mkinitramfs -o /boot/initrd.img-`uname -r` /lib/modules/`uname -r`
$ sudo reboot
$ sudo add-apt-repository ppa:gma500/ppa $ sudo apt-get update $ sudo apt-get install poulsbo-driver-2d poulsbo-driver-3d poulsbo-config $ sudo reboot
$ wget -c http://fit-pc2.com/download/ubuntu/files/xorg.conf $ sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.orig $ sudo mv xorg.conf /etc/X11/xorg.conf $ sudo chown root:root /etc/X11/xorg.conf
LinuxのIPアドレスを固定するには,/etc/network/interfacesを編集します.
変更したいポートのところを,指定したい値に書き換えます.
$ sudo vi /etc/network/interfaces
自動IPのとき
auto eth0
iface eth0 inet dhcp
固定IPのとき
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
sudo /etc/init.d/networking restart
たまにGUIで作業したいので,デスクトップ版を入れたけどGUIは基本的には使わない.
なので,Xを停止させます.
/etc/default/grubを編集するだけなので,ちゃちゃっとやってしまいます.
$ sudo vi /etc/default/grub
中に記述されている
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
を以下に変更する
GRUB_CMDLINE_LINUX_DEFAULT="text"
$ sudo update-grub
$ startx
読みたいものを毎回スクロールして探すのはめんどくさいので,トップにタイトルの一覧を表示させる.
<b:if cond='data:blog.pageType != "item"'>
<ul id='post-title-navigation'><span>このページの記事一覧</span> <b:loop values='data:posts' var='post'>
<li>
<b:if cond='data:post.link'>
<data:post.dateHeader/> - <a expr:href='data:post.link'><data:post.title/></a>
<b:else/>
<b:if cond='data:post.url'>
<data:post.dateHeader/> - <a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<data:post.dateHeader/> - <data:post.title/>
</b:if>
</b:if>
</li>
</b:loop> </ul>
</b:if>
OpenCVはWillow Garageが開発を行っているライブラリ。
最近では,画像処理だけでなく機械学習まわりも強化されているため,ひじょーに便利なライブラリです。
私がここ最近書いたプログラムは,ほとんどがこのライブラリに依存している状態ですw
OpenCV2.3のバグをとった2.3.1がリリースされたし,使いたい関数もあるのでバージョンをあげるぜーー
また2.3からOpenNIをサポートしているので,kinectの距離画像とかも簡単に取れて遊びたい放題♫
まず,公式からOpenCV2.3.1.tar.bz2をダウンロード
ダウンロードしたらそれを解凍しておく。
$ tar jxvf OpenCV2.3.1.tar.bz2
$ sudo apt-get install cheese coriander \
cmake pkg-config g++ build-essential \
mencoder mplayer \
libgtk2.0-0 libgtk2.0-dev \
libjpeg-dev libpng-dev libtiff-dev libjpeg62 libjpeg62-dev libjpeg62-dbg \
ffmpeg libavcodec-dev libavcodec52 libavformat-dev libavformat52 libswscale-dev libavfilter-dev \
libdc1394-22 libdc1394-22-dev \
python2.6 python2.6-dev python-numpy \
libtbb2 libtbb-dev \
libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-0 libgstreamer-plugins-base0.10-dev
$ sudo ldconfig
次にcmakeをして,必要なパッケージが入っているかを確認する。
$ cd OpenCV2.3.1/
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON -D WITH_TBB=ON -D WITH_GTK=ON -D BUILD_EXAMPLES=ON .
-- General configuration for opencv 2.3.1 =====================================
--
-- Built as dynamic libs?: YES
-- Compiler: /usr/bin/c++
-- C++ flags (Release): -Wall -pthread -march=i686 -ffunction-sections -O3 -DNDEBUG -fomit-frame-pointer -msse -msse2 -mfpmath=387 -DNDEBUG
-- C++ flags (Debug): -Wall -pthread -march=i686 -ffunction-sections -g -O0 -DDEBUG -D_DEBUG -ggdb3
-- Linker flags (Release):
-- Linker flags (Debug):
--
-- GUI:
-- GTK+ 2.x: YES
-- GThread: YES
--
-- Media I/O:
-- ZLib: YES
-- JPEG: TRUE
-- PNG: TRUE
-- TIFF: TRUE
-- JPEG 2000: TRUE
-- OpenEXR: NO
-- OpenNI: NO
-- OpenNI PrimeSensor Modules: NO
-- XIMEA: NO
--
-- Video I/O:
-- DC1394 1.x: NO
-- DC1394 2.x: YES
-- FFMPEG: YES
-- codec: YES
-- format: YES
-- util: YES
-- swscale: YES
-- gentoo-style: YES
-- GStreamer: YES
-- UniCap: NO
-- PvAPI: NO
-- V4L/V4L2: 1/1
-- Xine: NO
--
-- Other third-party libraries:
-- Use IPP: NO
-- Use TBB: YES
-- Use ThreadingFramework: NO
-- Use Cuda: NO
-- Use Eigen: YES
--
-- Interfaces:
-- Python: YES
-- Python interpreter: /usr/bin/python2.6 -B (ver 2.6)
-- Python numpy: YES
-- Java: NO
--
-- Documentation:
-- Sphinx: NO
-- PdfLaTeX compiler: /usr/bin/pdflatex
-- Build Documentation: NO
--
-- Tests and samples:
-- Tests: YES
-- Examples: YES
--
-- Install path: /usr/local
--
-- cvconfig.h is in: /home/user/Downloads/OpenCV-2.3.1
-- -----------------------------------------------------------------
最後にmakeしてインストールをすれば終了
$ make -j2
$ sudo make install
$ sudo ldconfig
$ cd sample/c/
$ sh build_all.sh
Kinectで遊びたい人は,OpenNIを入れる必要があります.
そのへんのインストールはこっちで.