non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

PhantomjsをRaspberry Piでコンパイルできた

おはよございます。先週末は息子と隅田川で水上バスに乗ったkjunichiです。

PhantomjsをRaspberry Piでコンパイルできた

つまり、そのままではNGということ

build.shでCPU数のチェックで落ちてしまうので、対応が必要であった。

CPU_CORES=`grep -c ^processor /proc/cpuinfo`

を以下の様にコメントアウトしすることで、先に進める。

#CPU_CORES=`grep -c ^processor /proc/cpuinfo`                                                                       

あと、コンパイルするとライセンスの関係なのか、以下のファイルが無いとエラーになるので、入れておく。

       
  • pixman-arm-neon-asm.h
  • pixman-arm-neon-asm.S
mkdir src/qt/src/3rdparty/pixman
cd src/qt/src/3rdparty/pixman
wget http://qt.gitorious.org/qt/qt/blobs/raw/4.8/src/3rdparty/pixman/pixman-arm-neon-asm.h
wget http://qt.gitorious.org/qt/qt/blobs/raw/4.8/src/3rdparty/pixman/pixman-arm-neon-asm.S

あとはGstream関係のライブラリをapt-get installしていって 1日くらいかけてコンパイルが終わり、bin配下にphantomjsができる。 ちなみに、make installしてもとくにインストールされない臭い。

水上バスに乗ったよ

日本語フォントを表示するには

yahoo.co.jpなんかを試すとよくわかるのですが、2バイト文字が空白になってました。 解決方法にたどり着くまで、片っ端からapt-get installでそれっぽい日本語フォントを入れまくってました。。

IPAのフォントを~/.fonts配下に入れる。

FreeBSDとPhantomJSでスクリーンショットを撮る その2を参考にして以下みたいにするとよさそう。

mkfontdirとかは必要なくttfファイルさえおいておけばfontconfigが良きに計らってくれる模様。

wget http://ossipedia.ipa.go.jp/ipafont/IPAexfont00103.php
mv IPAexfont00103.php IPAexfont00103.zip
unzip IPAexfont00103.zip

mkdir -p ~/.fonts/ipa
cp IPAexfont00103/*.ttf ~/.fonts/ipa

/usr/share/fontsを無効にする

自前の~/.fontsディレクトリのみの指定が分からなかったので、 以下のように他のXクライアントにモロ影響でる暫定対応。

cd /usr/share
sudo mv fonts fonts.bak
sudo mkdir fonts
fc-cache -rfv

ちなみに、Raspberry Pi用のバイナリを公開している先人がいらっしゃいます

コンパイルの方法も親切に書いてくれていました。。

-aeberhardo / phantomjs-linux-armv6l

日本語出すのに苦労した

fontconfigなにそれ?って感じだった。俺がLinuxをデスクトップのメインOSとして使ってた頃は XFree86でTrueTypeがようやく使えるようになった時代だったんだ。

結果的に必要なライブラリたち

pi@raspberrypi ~/work/phantomjs $ ldd bin/phantomjs                                                                    
        /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0xb6f8d000)                                                       
        libgio-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgio-2.0.so.0 (0xb6e5e000)                                   
        libgstapp-0.10.so.0 => /usr/lib/arm-linux-gnueabihf/libgstapp-0.10.so.0 (0xb6e4a000)                           
        libgstinterfaces-0.10.so.0 => /usr/lib/arm-linux-gnueabihf/libgstinterfaces-0.10.so.0 (0xb6e33000)             
        libgstpbutils-0.10.so.0 => /usr/lib/arm-linux-gnueabihf/libgstpbutils-0.10.so.0 (0xb6e0a000)                   
        libgstvideo-0.10.so.0 => /usr/lib/arm-linux-gnueabihf/libgstvideo-0.10.so.0 (0xb6de9000)                       
        libgstbase-0.10.so.0 => /usr/lib/arm-linux-gnueabihf/libgstbase-0.10.so.0 (0xb6d8e000)                         
        libgstreamer-0.10.so.0 => /usr/lib/arm-linux-gnueabihf/libgstreamer-0.10.so.0 (0xb6cb4000)                     
        libgobject-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0xb6c65000)                           
        libgmodule-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgmodule-2.0.so.0 (0xb6c59000)                           
        libgthread-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so.0 (0xb6c4e000)                           
        libxml2.so.2 => /usr/lib/arm-linux-gnueabihf/libxml2.so.2 (0xb6b21000)                                         
        libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0xb6a3c000)                                     
        libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0xb69ba000)                                 
        libfontconfig.so.1 => /usr/lib/arm-linux-gnueabihf/libfontconfig.so.1 (0xb6985000)                             
        libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6979000)                                                 
        librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb696a000)                                                 
        libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb694b000)                                       
        libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb687e000)                                     
        libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb680d000)                                                   
        libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb67e4000)                                           
        libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb66b5000)                                                   
        /lib/ld-linux-armhf.so.3 (0xb6f9a000)                                                                          
        libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb6697000)                                                   
        libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0xb6674000)                                       
        libresolv.so.2 => /lib/arm-linux-gnueabihf/libresolv.so.2 (0xb6660000)                                         
        liborc-0.4.so.0 => /usr/lib/arm-linux-gnueabihf/liborc-0.4.so.0 (0xb65ec000)                                   
        libffi.so.5 => /usr/lib/arm-linux-gnueabihf/libffi.so.5 (0xb65d8000)                                           
        liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0xb65b1000)                                             
        libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0xb6570000)                                             
        libexpat.so.1 => /lib/arm-linux-gnueabihf/libexpat.so.1 (0xb6546000)                                           
pi@raspberrypi

関連記事

Raspberry Piで動かせた周辺機器など

SDカードリーダー

SDカード

関連記事