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();
    }
};
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を入れる必要があります.
そのへんのインストールはこっちで.