IBM System x3105 4347-22J にGeForce GT710を取り付けてみた。

IBM System x3105 4347-22J に玄人工房から発売されているnVidia Geforce GT710 搭載グラフィック拡張カード(GF-GT710-E2GB/LP/P)を取り付けてみた。

このグラフィックカードは、センサーなしファン付きであり、PCI Express x8 スロットに取り付け可能なモデルとなっている*1

取り付け

ブラケット抑えのブラスチックに経年劣化があるので、壊さないように注意深く作業する。
マザーボード基板の取り付け位置に個体差があるので案の定というか斜めって接触不良で認識できないこともありえるので、エッジ両端の刺さり具合に注意する。
基盤を取り付けたら、ボタン電池交換をしてC-MOSクリアをして、BIOSデフォルトロードを実施する。
増設グラフィックカードが認識されていないと内蔵グラフィックから出力があるが、認識がうまくゆくと増設グラフィックのみの出力となった。

ベンチマークテスト

UbuntuのAPTリポジトリにてglmark2というベンチマークテストが配信されていたので、インストールしてみた。

Package: glmark2
Version: 2014.03+git20150611.fa71af2d-0ubuntu7
Priority: optional
Section: universe/misc
Origin: Ubuntu
Maintainer: Ubuntu Developers 
Original-Maintainer: Alexandros Frantzis 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1,086 kB
Depends: libc6 (>= 2.27), libgcc-s1 (>= 3.0), libgl1, libjpeg8 (>= 8c), libpng16-16 (>= 1.6.2-1), libstdc++6 (>= 5.2), libx11-6, glmark2-data (= 2014.03+git20150611.fa71af2d-0ubuntu7)
Homepage: https://launchpad.net/glmark2
Download-Size: 294 kB
APT-Manual-Installed: yes
APT-Sources: http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
Description: OpenGL 2.0 X11 benchmark
 A benchmark for OpenGL (ES) 2.0 that uses only the OpenGL ES 2.0 compatible
 API. It contains tests for standard OpenGL (ES) 2.0 features, such as vertex
 arrays, VBOs, texturing and shaders.
 .
 This package contains the OpenGL 2.0 variant of the benchmark for X11.

ということで、ターミナルウィンドウより

glmark2

とコマンドラインを入力すると、800x600のウィドウが開いてアニメーションがレンダリングされ、ターミナルウィンドウ内に以下の結果が得られる。

=======================================================
    glmark2 2014.03+git20150611.fa71af2d
=======================================================
    OpenGL Information
    GL_VENDOR:     NVIDIA Corporation
    GL_RENDERER:   GeForce GT 710/PCIe/SSE2
    GL_VERSION:    4.6.0 NVIDIA 440.64.00
=======================================================
[build] use-vbo=false: FPS: 1648 FrameTime: 0.607 ms
[build] use-vbo=true: FPS: 2722 FrameTime: 0.367 ms
[texture] texture-filter=nearest: FPS: 2042 FrameTime: 0.490 ms
[texture] texture-filter=linear: FPS: 2026 FrameTime: 0.494 ms
[texture] texture-filter=mipmap: FPS: 2207 FrameTime: 0.453 ms
[shading] shading=gouraud: FPS: 1889 FrameTime: 0.529 ms
[shading] shading=blinn-phong-inf: FPS: 1897 FrameTime: 0.527 ms
[shading] shading=phong: FPS: 1866 FrameTime: 0.536 ms
[shading] shading=cel: FPS: 1876 FrameTime: 0.533 ms
[bump] bump-render=high-poly: FPS: 1371 FrameTime: 0.729 ms
[bump] bump-render=normals: FPS: 2621 FrameTime: 0.382 ms
[bump] bump-render=height: FPS: 2540 FrameTime: 0.394 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1552 FrameTime: 0.644 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 779 FrameTime: 1.284 ms
[pulsar] light=false:quads=5:texture=false: FPS: 2309 FrameTime: 0.433 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 668 FrameTime: 1.497 ms
[desktop] effect=shadow:windows=4: FPS: 1119 FrameTime: 0.894 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 208 FrameTime: 4.808 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 238 FrameTime: 4.202 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 252 FrameTime: 3.968 ms
[ideas] speed=duration: FPS: 2054 FrameTime: 0.487 ms
[jellyfish] : FPS: 1156 FrameTime: 0.865 ms
[terrain] : FPS: 134 FrameTime: 7.463 ms
[shadow] : FPS: 1699 FrameTime: 0.589 ms
[refract] : FPS: 305 FrameTime: 3.279 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1895 FrameTime: 0.528 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1842 FrameTime: 0.543 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1895 FrameTime: 0.528 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1844 FrameTime: 0.542 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1842 FrameTime: 0.543 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1844 FrameTime: 0.542 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1844 FrameTime: 0.542 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1842 FrameTime: 0.543 ms
=======================================================
                                  glmark2 Score: 1576 
=======================================================

このスコアが早いのか遅いのか知り得る術もないのであるけど、実行中において普通に3D CGのアニメーションが再生できているので、古くて遅いコンピュータも画面だけは普通の速さになった気がする。

なおウィンドウサイズを変更してテストしてみたい場合は、--size WxH若しくは--fullscreenのオプションが利用できる。またその他オプションについて詳細はmanを参照されたし。

ちなみに1680x1050での結果は以下の通り

glmark2 --fullscreen
=======================================================
    glmark2 2014.03+git20150611.fa71af2d
=======================================================
    OpenGL Information
    GL_VENDOR:     NVIDIA Corporation
    GL_RENDERER:   GeForce GT 710/PCIe/SSE2
    GL_VERSION:    4.6.0 NVIDIA 440.64.00
=======================================================
[build] use-vbo=false: FPS: 909 FrameTime: 1.100 ms
[build] use-vbo=true: FPS: 1064 FrameTime: 0.940 ms
[texture] texture-filter=nearest: FPS: 864 FrameTime: 1.157 ms
[texture] texture-filter=linear: FPS: 861 FrameTime: 1.161 ms
[texture] texture-filter=mipmap: FPS: 878 FrameTime: 1.139 ms
[shading] shading=gouraud: FPS: 834 FrameTime: 1.199 ms
[shading] shading=blinn-phong-inf: FPS: 834 FrameTime: 1.199 ms
[shading] shading=phong: FPS: 833 FrameTime: 1.200 ms
[shading] shading=cel: FPS: 834 FrameTime: 1.199 ms
[bump] bump-render=high-poly: FPS: 767 FrameTime: 1.304 ms
[bump] bump-render=normals: FPS: 1013 FrameTime: 0.987 ms
[bump] bump-render=height: FPS: 986 FrameTime: 1.014 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 479 FrameTime: 2.088 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 227 FrameTime: 4.405 ms
[pulsar] light=false:quads=5:texture=false: FPS: 627 FrameTime: 1.595 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 222 FrameTime: 4.505 ms
[desktop] effect=shadow:windows=4: FPS: 359 FrameTime: 2.786 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 180 FrameTime: 5.556 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 230 FrameTime: 4.348 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 213 FrameTime: 4.695 ms
[ideas] speed=duration: FPS: 720 FrameTime: 1.389 ms
[jellyfish] : FPS: 410 FrameTime: 2.439 ms
[terrain] : FPS: 56 FrameTime: 17.857 ms
[shadow] : FPS: 676 FrameTime: 1.479 ms
[refract] : FPS: 152 FrameTime: 6.579 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 907 FrameTime: 1.103 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 878 FrameTime: 1.139 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 907 FrameTime: 1.103 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 907 FrameTime: 1.103 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 863 FrameTime: 1.159 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 907 FrameTime: 1.103 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 907 FrameTime: 1.103 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 907 FrameTime: 1.103 ms
=======================================================
                                  glmark2 Score: 679 
=======================================================

デフォルトの解像度の時に比べて、桁違いに演算時間を要していることが分かる。
単純なテストであっても一部60fpsを割り込んでいる結果も見受けられるので、現時点のシステム構成では解像度の調整がアニメーションの前提条件となる。

蛇足

今回はlubuntu 20.04で試用してみたが、CUDA開発環境 10.2(のテンソルフロー関係)がclang8(gcc8)およびPython 3.6に依存している。これがまた非常に頭の痛くなる問題点をよびおこし、OpenMPのバージョンが1つだけしか存在できないのにLLVMのバージョンが複数存在するといった目の当てられない状況に招き入れてくれる。
CUDA環境を優先させてOS環境を構築するならば18.04系のバージョンを選択したほうが手っ取り早い。

フリーウェアの囲碁ソフトAya ver. 6.43 をWindowsタブレットPCで遊んでみた。

フリーウェアの囲碁ソフトAya ver. 6.43 で遊んでみた。


もう長らくメンテナンスされていないので、Windows XP時代のまんまのバージョンということもあり、 新しいWindowsでは互換性の問題が生じる場合がR。
例えばWindows 8.1 で走らすには、解凍したアプリケーションのアイコンを選択して右クリックしてポップアップするメニューより「送る」→「デスクトップ(ショートカットを作成)」の手順でショートカットを作っておき、ショートカットのアイコンを選択して右クリックしてプロパティの互換性タブより互換性の調整をする必要がある。とりあえず互換性タブにある「互換性モードでこのプログラムを実行する:」にチェックを入れてメニューからWindows 7を選択して「OK」をクリックする。以後ショートカットから起動させて様子を見てみるとよい。

当時は初代Pentium4 2.4GHz では、重たいアプリケーションの一つにあげることもできたのだが、今日のパソコンでは廉価なタブレットPCクラスでもほぼ待ち時間のストレスなくサクサクと遊べるようになった。

AYAにハンディ5の置石でを与えている。ということで終局の図

結果は人間の圧勝である。以下は棋譜

(;
GM[1]SZ[19]
PB[Aya 6.34]
PW[You]
DT[2016-09-22]
RE[W+247.5]
HA[5]KM[6.5]TM[]RU[Japanese]PC[]EV[]GN[]AP[Aya 6.34]
C[Time Aya=13:22(RM=7,DM=4),18:13]
C[Intel(R) Atom(TM) CPU  Z3735F @ 1.33GHz]
C['T' means expended time per a move. Aya's own extension.]
AB[dd][pd][jj][dp][pp]
;W[qc]T[ 2];B[pc]T[ 3];W[qb]T[ 1];B[lc]T[ 2];W[pb]T[ 2];B[qg]T[ 5]
;W[qe]T[ 2];B[pk]T[ 7];W[qi]T[ 3];B[pi]T[10];W[qj]T[ 2];B[pj]T[ 8]
;W[qk]T[ 1];B[pm]T[ 9];W[qm]T[ 4];B[mq]T[10];W[pn]T[10];B[gq]T[10]
;W[mn]T[ 6];B[nl]T[10];W[pl]T[24];B[ll]T[10];W[kn]T[ 5];B[om]T[10]
;W[on]T[ 4];B[lo]T[10];W[ln]T[ 2];B[mo]T[10];W[qq]T[10];B[qp]T[10]
;W[rq]T[ 2];B[rp]T[10];W[pq]T[ 1];B[sp]T[10];W[sq]T[ 6];B[op]T[10]
;W[oq]T[ 1];B[of]T[10];W[nc]T[ 3];B[gc]T[10];W[jc]T[11];B[ke]T[10]
;W[je]T[ 2];B[kf]T[10];W[jf]T[ 3];B[jg]T[10];W[ne]T[17];B[hf]T[10]
;W[he]T[ 2];B[if]T[10];W[ie]T[ 1];B[fe]T[10];W[gf]T[ 3];B[qn]T[10]
;W[rm]T[10];B[ol]T[10];W[ql]T[ 1];B[nn]T[10];W[qo]T[ 3];B[mg]T[10]
;W[ge]T[16];B[po]T[10];W[rn]T[ 3];B[kp]T[ 9];W[no]T[ 7];B[np]T[ 9]
;W[nm]T[ 3];B[ib]T[ 8];W[jb]T[ 1];B[fd]T[10];W[nf]T[ 3];B[md]T[10]
;W[nd]T[ 1];B[pe]T[10];W[qd]T[ 5];B[dk]T[ 8];W[ng]T[ 2];B[og]T[10]
;W[nh]T[ 5];B[nj]T[10];W[mi]T[ 5];B[jm]T[10];W[jn]T[ 2];B[mk]T[10]
;W[ph]T[ 3];B[oh]T[10];W[qh]T[ 3];B[mf]T[10];W[kd]T[ 4];B[me]T[10]
;W[ld]T[ 2];B[ni]T[10];W[mh]T[ 1];B[km]T[10];W[lj]T[11];B[jo]T[10]
;W[in]T[ 2];B[gj]T[10];W[gh]T[ 5];B[hg]T[10];W[hh]T[ 7];B[ki]T[10]
;W[kh]T[16];B[jh]T[10];W[lg]T[ 4];B[hi]T[ 8];W[ih]T[ 3];B[ig]T[10]
;W[gg]T[ 1];B[kg]T[ 9];W[lh]T[ 2];B[ch]T[ 7];W[eg]T[ 7];B[di]T[10]
;W[cg]T[ 1];B[mc]T[10];W[ii]T[ 7];B[ji]T[10];W[ij]T[ 2];B[jk]T[10]
;W[il]T[ 2];B[ik]T[10];W[jl]T[ 5];B[kk]T[10];W[im]T[ 5];B[li]T[10]
;W[mj]T[ 2];B[hk]T[10];W[io]T[ 6];B[lf]T[10];W[hc]T[ 5];B[hb]T[10]
;W[ic]T[ 1];B[bj]T[ 5];W[fj]T[ 4];B[hj]T[10];W[fl]T[ 2];B[fi]T[10]
;W[fk]T[ 6];B[nb]T[10];W[ob]T[ 3];B[na]T[ 6];W[oc]T[ 2];B[kl]T[ 4]
;W[mm]T[ 6];B[bd]T[ 6];W[gi]T[ 7];B[fh]T[10];W[fg]T[ 2];B[ej]T[10]
;W[dh]T[ 5];B[ei]T[10];W[bg]T[ 7];B[ci]T[10];W[bh]T[ 3];B[df]T[10]
;W[dg]T[ 2];B[dm]T[10];W[iq]T[ 5];B[ai]T[10];W[bi]T[ 3];B[kb]T[10]
;W[ja]T[ 3];B[ml]T[ 6];W[kc]T[ 8];B[cf]T[10];W[bf]T[ 2];B[ah]T[10]
;W[be]T[ 2];B[ae]T[10];W[ce]T[ 9];B[cd]T[10];W[de]T[ 1];B[jr]T[ 9]
;W[ir]T[ 1];B[nr]T[10];W[or]T[ 1];B[ip]T[ 9];W[jq]T[ 2];B[jp]T[10]
;W[kq]T[ 2];B[hp]T[ 9];W[lq]T[ 3];B[lr]T[ 9];W[lp]T[ 2];B[mp]T[10]
;W[kr]T[ 2];B[ks]T[10];W[gr]T[ 2];B[js]T[10];W[hr]T[ 6];B[db]T[10]
;W[er]T[ 6];B[gl]T[10];W[fm]T[ 3];B[la]T[10];W[ka]T[ 4];B[eq]T[ 8]
;W[fr]T[ 4];B[sn]T[10];W[ro]T[ 2];B[cr]T[ 8];W[dr]T[ 4];B[hm]T[10]
;W[ho]T[ 5];B[is]T[10];W[lb]T[160];B[gn]T[10];W[go]T[ 3];B[fq]T[10]
;W[cq]T[ 2];B[ko]T[10];W[fn]T[ 2];B[gm]T[10];W[eo]T[12];B[oi]T[10]
;W[ok]T[ 9];B[fb]T[10];W[mb]T[ 3];B[do]T[ 3];W[co]T[ 5];B[ms]T[10]
;W[os]T[ 3];B[cn]T[ 4];W[cp]T[ 2];B[hq]T[10];W[bn]T[ 4];B[ap]T[10]
;W[bq]T[ 4];B[bl]T[10];W[bm]T[ 2];B[dq]T[10];W[br]T[ 2];B[ak]T[ 2]
;W[cm]T[ 1];B[cl]T[ 5];W[dn]T[ 2];B[ef]T[ 1];W[ee]T[ 3];B[ff]T[ 1]
;W[ed]T[ 2];B[ec]T[ 1];W[gd]T[ 1];B[fc]T[ 1];W[af]T[ 5];B[ad]T[ 1]
;W[em]T[ 8];B[dl]T[ 1];W[am]T[ 3];B[ia]T[ 0];W[ma]T[ 3];B[al]T[ 0]
;W[ag]T[11];B[aj]T[ 0];W[hs]T[ 6];B[oo]T[ 0];W[nn]T[ 1];B[el]T[ 0]
;W[fp]T[ 6];B[ek]T[ 1];W[gp]T[ 2];B[eh]T[ 1];W[gk]T[12];B[tt]T[ 0]
;W[hl]T[ 5];B[tt]T[ 0];W[ep]T[ 2];B[lm]T[ 0];W[ns]T[ 7];B[tt]T[ 0]
;B[tt]T[74];B[tt]T[ 0])

Ubuntu 15.04 (Vivid Vervet) 上でFreeCADのビルド

Ubuntu 15.04 (Vivid Vervet) 上でFreeCADのビルド。

“FreeCAD maintainers”team の FreeCAD Daily Builds リポジトリの追加。

sudo apt-add-repository ppa:freecad-maintainers/freecad-daily
sudo apt-get update

依存関係のあるパッケージを導入。

 sudo apt-get build-dep freecad
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  autotools-dev cmake cmake-data debhelper dh-apparmor gfortran gfortran-4.9
  gir1.2-gtk-2.0 icu-devtools libatk1.0-dev libavcodec-dev libavcodec56
  libavformat-dev libavformat56 libavresample-dev libavresample2 libavutil-dev
  libavutil54 libboost-atomic1.55-dev libboost-atomic1.55.0
  libboost-chrono1.55-dev libboost-chrono1.55.0 libboost-date-time-dev
  libboost-date-time1.55-dev libboost-dev libboost-filesystem-dev
  libboost-filesystem1.55-dev libboost-graph-dev libboost-graph1.55-dev
  libboost-graph1.55.0 libboost-iostreams-dev libboost-iostreams1.55-dev
  libboost-program-options-dev libboost-program-options1.55-dev
  libboost-program-options1.55.0 libboost-python-dev libboost-python1.55-dev
  libboost-python1.55.0 libboost-regex-dev libboost-regex1.55-dev
  libboost-regex1.55.0 libboost-serialization-dev
  libboost-serialization1.55-dev libboost-serialization1.55.0
  libboost-signals-dev libboost-signals1.55-dev libboost-signals1.55.0
  libboost-system1.55-dev libboost-test1.55-dev libboost-test1.55.0
  libboost-thread-dev libboost-thread1.55-dev libboost-thread1.55.0
  libboost1.55-dev libcairo-script-interpreter2 libcairo2-dev libcoin80
  libcoin80-dev libcv-dev libdc1394-22 libdc1394-22-dev libdrm-dev
  libeigen3-dev libexpat1-dev libf2c2 libf2c2-dev libfltk-cairo1.3
  libfltk-forms1.3 libfltk-gl1.3 libfltk-images1.3 libfltk1.3 libfltk1.3-dev
  libfontconfig1-dev libfreeimage-dev libfreeimage3 libfreetype6-dev
  libgdk-pixbuf2.0-dev libgfortran-4.9-dev libgfortran3 libgl1-mesa-dev
  libgl2ps-dev libgl2ps0 libglib2.0-dev libglu1-mesa-dev libgsm1 libgtk2.0-dev
  libgtkglext1 libgts-0.7-5 libgts-bin libgts-dev libharfbuzz-dev
  libharfbuzz-gobject0 libice-dev libicu-dev libilmbase-dev libjasper-dev
  libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblzma-dev
  libmp3lame0 liboce-foundation-dev liboce-foundation10 liboce-modeling-dev
  liboce-modeling10 liboce-ocaf-dev liboce-ocaf-lite-dev liboce-ocaf-lite10
  liboce-ocaf10 liboce-visualization-dev liboce-visualization10 libode-dev
  libode1 libopencv-calib3d-dev libopencv-calib3d2.4 libopencv-core-dev
  libopencv-core2.4 libopencv-features2d-dev libopencv-features2d2.4
  libopencv-flann-dev libopencv-flann2.4 libopencv-highgui-dev
  libopencv-highgui2.4 libopencv-imgproc-dev libopencv-imgproc2.4
  libopencv-legacy-dev libopencv-legacy2.4 libopencv-ml-dev libopencv-ml2.4
  libopencv-objdetect-dev libopencv-objdetect2.4 libopencv-ocl-dev
  libopencv-ocl2.4 libopencv-video-dev libopencv-video2.4 libopenexr-dev
  libopenjpeg5 libpango1.0-dev libpcre3-dev libpcrecpp0 libpixman-1-dev
  libpng12-dev libpthread-stubs0-dev libpyside-dev libpyside-py3-1.2
  libpyside1.2 libpython-dev libpython2.7-dev libqt4-dev libqt4-dev-bin
  libqt4-opengl-dev libqtwebkit-dev libraw1394-dev libschroedinger-1.0-0
  libshiboken-dev libshiboken-py3-1.2 libshiboken1.2 libsm-dev
  libsoqt-dev-common libsoqt4-20 libsoqt4-dev libspnav-dev libspnav0
  libswscale-dev libswscale3 libtbb2 libtcl8.5 libtiff5-dev libtiffxx5
  libtk8.5 libtool libva1 libx11-dev libx11-xcb-dev libx264-142 libxau-dev
  libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev
  libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-shm0-dev
  libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxcomposite-dev
  libxcursor-dev libxdamage-dev libxdmcp-dev libxerces-c-dev libxerces-c3.1
  libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxmu-dev
  libxmu-headers libxpm-dev libxrandr-dev libxrender-dev libxshmfence-dev
  libxss-dev libxt-dev libxvidcore4 libxxf86vm-dev libzipios++-dev
  libzipios++0c2a mesa-common-dev oce-draw po-debconf python-cxx-dev
  python-dev python2.7-dev qt4-dev-tools qt4-linguist-tools qt4-qmake swig
  swig2.0 tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev x11proto-composite-dev
  x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev
  x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev
  x11proto-render-dev x11proto-scrnsaver-dev x11proto-xext-dev
  x11proto-xf86vidmode-dev x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev
  zlib1g-dev
アップグレード: 0 個、新規インストール: 243 個、削除: 0 個、保留: 0 個。
126 MB のアーカイブを取得する必要があります。
この操作後に追加で 621 MB のディスク容量が消費されます。
続行しますか? [Y/n] 

apt-get build-depで解決できないパッケージの導入

sudo apt-get install libcoin80-doc shiboken pyside-tools python-matplotlib doxygen graphviz netgen netgen-headers ccx

デバグシンボルの導入

sudo apt-get install libicu52-dbg libatk1.0-dbg libboost-dbg \
libcairo2-dbg libdc1394-22-dbg libdrm-nouveau2-dbg libdrm-radeon1-dbg \
libdrm2-dbg libfltk1.3-dbg libfontconfig1-dbg libfreeimage3-dbg \
libgdk-pixbuf2.0-0-dbg libgfortran3-dbg libgl1-mesa-glx-dbg \
libgl1-mesa-dri-dbg libgl2ps0-dbg libglib2.0-0-dbg libgsm1-dbg \
libgtk2.0-0-dbg libgtkglext1-dbg libgts-dbg libice6-dbg \
libjpeg-turbo8-dbg libjpeg8-dbg libopenjpeg5-dbg libpango1.0-0-dbg \
libpcre3-dbg libpixman-1-0-dbg libpython-dbg libqt4-dbg \
libqtwebkit4-dbg libraw1394-11-dbg libsm6-dbg libtbb2-dbg \
libtcl8.5-dbg libtk8.5-dbg libxau6-dbg libxcb-dri2-0-dbg \
libxcb-dri3-0-dbg libxcb-glx0-dbg libxcb-present0-dbg \
libxcb-randr0-dbg libxcb-shape0-dbg libxcb-shm0-dbg libxcb-sync1-dbg \
libxcursor1-dbg libxdamage1-dbg libxdmcp6-dbg libxext6-dbg \
libxfixes3-dbg libxft2-dbg libxi6-dbg libxinerama1-dbg libxmu6-dbg \
libxpm4-dbg libxrandr2-dbg libxrender1-dbg libxss1-dbg libxt6-dbg \
libxxf86vm1-dbg zlib1g-dbg libxcb-xfixes0-dbg libxcb1-dbg \
libxcomposite1-dbg libxcursor1-dbg python-matplotlib-dbg

バージョン管理ツールの導入

sudo apt-get install git rabbitvcs-nautilus rabbitvcs-gedit 

GitHubで公開されているFreeCADソースツリーのクローンを作る。

mkdir ~/FreeCAD
cd ~/FreeCAD
git clone https://github.com/FreeCAD/FreeCAD.git

ビルドディレクトリを作って、cmakeを実行する。

mkdir build
cd ~/FreeCAD/build
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_FEM_NETGEN=ON ../FreeCAD/

あとはいつものようにmakeする。

Windows 8 / 8.1でシステムファイルチェッカー

Windows 8 / 8.1でシステムファイルチェッカーSFCツールでシステムのチェック。*1

Microsoft (R) Windows (R) Resource Checker Version 6.0
Copyright (C) Microsoft Corporation. All rights reserved.

すべての保護されたシステム ファイルの整合性をスキャンして、間違ったバージョンを
正しい Microsoft バージョンに置換します。

SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=<ファイル>] [/VERIFYFILE=<ファイル>]
    [/OFFWINDIR=<オフライン Windows ディレクトリ> /OFFBOOTDIR=<オフライン起動デ
ィレクトリ>]

/SCANNOW        すべての保護されたシステム ファイルの整合性をスキャンして、
                可能な場合には問題のあるファイルを修復します。
/VERIFYONLY     すべての保護されたシステム ファイルの整合性をスキャンします。
                修復操作は実行されません。
/SCANFILE       参照されたファイルの整合性をスキャンして、問題が識別された
                場合はファイルを修復します。完全パス <ファイル> を指定します
/VERIFYFILE     <ファイル> で指定された完全パスを持つファイルの整合性を確認
                します。修復操作は実行されません。
/OFFBOOTDIR     オフライン修復の場合は、オフライン起動ディレクトリの場所を
                指定します。
/OFFWINDIR      オフライン修復の場合は、オフライン Windows ディレクトリの場所を
                指定します。

e.g.

        sfc /SCANNOW
        sfc /VERIFYFILE=c:\windows\system32\kernel32.dll
        sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDI
R=d:\windows
        sfc /VERIFYONLY

ということで、ウィンドウズのロゴを右クリックしてコマンドプロンプト CMD (管理者)を開いてコマンドを

sfc /scannow

と入力してSFCを実行する。しばらくすると結果でる。

システム スキャンを開始しています。これにはしばらく時間がかかります。

システム スキャンの検証フェーズを開始しています。
検証 100% が完了しました。

Windows リソース保護により、破損したファイルが見つかりましたが、それらの
一部は修復できませんでした。詳細は CBS.Log windir\Logs\CBS\CBS.log に
含まれています。例: C:\Windows\Logs\CBS\CBS.log。ただし、オフライン
サービス シナリオでのログの記録は現在サポートされていません。

とか、エラーメッセージが出力される場合にはシステムのファイルが壊れている*2とのこと。
エラーの修復にはナレッジベース947821 DISM またはシステム更新準備ツールを使用して Windows の破損エラーを修正します。の手順を実行する。ナレッジベースの手順を施行してもにエラーが解消されない場合にはOSの再セットアップをするしかないとのこと。*3

FreeCAD 0.16.5565 (Git)で誤った選択の角度拘束を試みるとSIGSEGV

FreeCAD 0.16.5565 (Git)のスケッチャーワークベンチにおいて、線分の寸法拘束と線分を選択した状態で、角度拘束を試みるとSIGSEGVとなる。

確認方法

  1. FreeCADを起動する。
  2. 新規作成をクリックする。
  3. スケッチャーワークベンチをロードする。
  4. 新規スケッチを作成する。
  5. 線分を数本描く。
  6. 線分の端点にベースラインからの垂直拘束をする。
  7. ベースラインからの垂直拘束を1つと、線分を1つ選択した状態にする。
  8. 角度拘束を行う。
  9. SIGSEGVが発生して終了する。

GDBの出力

Program received signal SIGSEGV, Segmentation fault.
0x00007fff7211ea2a in CmdSketcherConstrainAngle::activated (this=0x2670ec0, 
    iMsg=0)
    at /home/maho-maho/FreeCAD/FreeCAD/src/Mod/Sketcher/Gui/CommandConstraints.cpp:2620
2620	            if (geom1->getTypeId() == Part::GeomLineSegment::getClassTypeId() &&
(gdb) l
2615	
2616	        if (isEdge(GeoId2,PosId2)) { // line to line angle
2617	
2618	            const Part::Geometry *geom1 = Obj->getGeometry(GeoId1);
2619	            const Part::Geometry *geom2 = Obj->getGeometry(GeoId2);
2620	            if (geom1->getTypeId() == Part::GeomLineSegment::getClassTypeId() &&
2621	                geom2->getTypeId() == Part::GeomLineSegment::getClassTypeId()) {
2622	                const Part::GeomLineSegment *lineSeg1 = dynamic_cast<const Part::GeomLineSegment*>(geom1);
2623	                const Part::GeomLineSegment *lineSeg2 = dynamic_cast<const Part::GeomLineSegment*>(geom2);
2624	

info args
this = 0x2670ec0
iMsg = 0



#0  0x00007fff7211ea2a in CmdSketcherConstrainAngle::activated(int) (this=0x2670ec0, iMsg=0)
    at /home/maho-maho/FreeCAD/FreeCAD/src/Mod/Sketcher/Gui/CommandConstraints.cpp:2620
#1  0x00007ffff7369253 in Gui::Command::invoke(int) (this=0x2670ec0, i=0)
    at /home/maho-maho/FreeCAD/FreeCAD/src/Gui/Command.cpp:289
#2  0x00007ffff735cb93 in Gui::Action::onActivated() (this=0x283faf0)
    at /home/maho-maho/FreeCAD/FreeCAD/src/Gui/Action.cpp:93
#3  0x00007ffff736242b in Gui::Action::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x283faf0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffc130)
    at /home/maho-maho/FreeCAD/FreeCAD/build/src/Gui/moc_Action.cpp:49
#4  0x00007ffff4def1ec in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x28a4e00, m=m@entry=0x7ffff5e01540 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffc130) at kernel/qobject.cpp:3567
#5  0x00007ffff5305fd2 in QAction::triggered(bool) (this=this@entry=0x28a4e00, _t1=false) at .moc/release-shared/moc_qaction.cpp:276
#6  0x00007ffff5307b57 in QAction::activate(QAction::ActionEvent) (this=0x28a4e00, event=<optimized out>) at kernel/qaction.cpp:1257
#7  0x00007ffff56e38e3 in QAbstractButtonPrivate::click() (this=this@entry=0x28bbf00) at widgets/qabstractbutton.cpp:530
#8  0x00007ffff56e3a34 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) (this=0x28bc1c0, e=0x7fffffffc860) at widgets/qabstractbutton.cpp:1123
#9  0x00007ffff57a5b1a in QToolButton::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, e=<optimized out>) at widgets/qtoolbutton.cpp:723
#10 0x00007ffff535fdc8 in QWidget::event(QEvent*) (this=0x28bc1c0, event=0x7fffffffc860) at kernel/qwidget.cpp:8775
#11 0x00007ffff530c9bc in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x7521d0, receiver=receiver@entry=0x28bc1c0, e=e@entry=0x7fffffffc860) at kernel/qapplication.cpp:4570
#12 0x00007ffff531363f in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x28bc1c0, e=0x7fffffffc860) at kernel/qapplication.cpp:4113
#13 0x00007ffff72d710c in Gui::GUIApplication::notify(QObject*, QEvent*) (this=
    0x7fffffffd440, receiver=0x28bc1c0, event=0x7fffffffc860)
    at /home/maho-maho/FreeCAD/FreeCAD/src/Gui/Application.cpp:1552
#14 0x00007ffff4dda1cd in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7fffffffd440, receiver=receiver@entry=0x28bc1c0, event=event@entry=0x7fffffffc860) at kernel/qcoreapplication.cpp:955
#15 0x00007ffff5312c9f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (event=<optimized out>, receiver=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#16 0x00007ffff5312c9f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (receiver=receiver@entry=0x28bc1c0, event=event@entry=0x7fffffffc860, alienWidget=alienWidget@entry=0x28bc1c0, nativeWidget=nativeWidget@entry=0x27ea470, buttonDown=buttonDown@entry=0x7ffff5e3a578 <qt_button_down>, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:3178
#17 0x00007ffff538c9a2 in QETWidget::translateMouseEvent(_XEvent const*) (this=this@entry=0x27ea470, event=event@entry=0x7fffffffcbc0)
    at kernel/qapplication_x11.cpp:4632
#18 0x00007ffff538c24c in QApplication::x11ProcessEvent(_XEvent*) (this=0x7fffffffd440, event=event@entry=0x7fffffffcbc0) at kernel/qapplication_x11.cpp:3626
#19 0x00007ffff53b4ba2 in x11EventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x76f720, callback=0x0, user_data=0x0)
    at kernel/qguieventdispatcher_glib.cpp:146
#20 0x00007fffeddf0c3d in g_main_context_dispatch (context=0x76e3a0)
    at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:3122
#21 0x00007fffeddf0c3d in g_main_context_dispatch (context=context@entry=0x76e3a0) at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:3737
#22 0x00007fffeddf0f20 in g_main_context_iterate (context=context@entry=0x76e3a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:3808
#23 0x00007fffeddf0fcc in g_main_context_iteration (context=0x76e3a0, may_block=1) at /build/buildd/glib2.0-2.44.1/./glib/gmain.c:3869
#24 0x00007ffff4e0985e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x752840, flags=...)
    at kernel/qeventdispatcher_glib.cpp:450
#25 0x00007ffff53b4c66 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...)
    at kernel/qguieventdispatcher_glib.cpp:204
#26 0x00007ffff4dd8d21 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffcfa0, flags=...)
    at kernel/qeventloop.cpp:149
#27 0x00007ffff4dd9085 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffcfa0, flags=...) at kernel/qeventloop.cpp:204
#28 0x00007ffff4ddeb09 in QCoreApplication::exec() ()
    at kernel/qcoreapplication.cpp:1227
#29 0x00007ffff72d1b5a in Gui::Application::runApplication() ()
    at /home/maho-maho/FreeCAD/FreeCAD/src/Gui/Application.cpp:1852
#30 0x00000000004059fc in main(int, char**) (argc=1, argv=0x7fffffffddf8)
    at /home/maho-maho/FreeCAD/FreeCAD/src/Main/MainGui.cpp:235

望ましい挙動

これはユーザ誤操作である。ゆえに本来ありえない操作なので、適切な例外処理にてエラーメッセージを表示させることが望ましい。

環境

OS: Ubuntu 15.04
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.5565 (Git)
Build type: Debug
Branch: master
Hash: bd1fc886fe71fae148d955108feac804324e002b
Python version: 2.7.9
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

QSpiAccessible::accessibleEvent not handled: ”8008” obj: QObje

Ubuntu 14.04 上で、ビルドしたFreeCAD をターミナルからGDBで起動して眺めていたら・・・
アプリケーションのメニューコンテクストに関する挙動で

QSpiAccessible::accessibleEvent not handled: "8008" obj: QObject(0x0) " invalid interface!"

というエラーメッセージがでた。

googleでエラーメッセージをキーワードにして検索してみたら、うじゃうじゃ沢山ヒットした。

など。

どうやら qt-at-spi というパッケージがインストールされているとエラーが発生するようだ。

パッケージ: qt-at-spi                    
状態: インストールされていません
Multi-Arch: same
バージョン: 0.3.1-4fakesync1
優先度: 任意
セクション: misc
メンテナ: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
アーキテクチャ: amd64
展開サイズ: 523 k
依存: libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libqt4-dbus (>= 4:4.8.0),
        libqtcore4 (>= 4:4.8~), libqtgui4 (>= 4:4.8~), libstdc++6 (>= 4.1.1)
事前依存: multiarch-support
破損: qt-at-spi (!= 0.3.1-4fakesync1)
置換: qt-at-spi (< 0.3.1-4fakesync1)
説明: at-spi accessibility plugin for Qt
 A plugin to export Qt widgets over AT-SPI2.  This allows them to be read by
 accessibility tools such as the Orca screen reader.

ということで、qt-at-spi を remove して、FreeCAD を起動し直してみたらエラーメッセージを吐かなくなりました。

gnome-orca も削除

qt-at-spiを削除するとスクリーンリーダのOrcaが不調になるようなので gnome-orcaも削除する。
ちなにOrcaは計算リソースをとてつもなく消費するようで初代Coreプロセッサi7でも応答が悪くなるようだ。当分は敬遠である。

哲学大辞書1875頁上21行目7文字目の漢字は何?


鷲尾順敬「大慧宗杲」『哲学大辞書』大日本百科辭書編輯部、同文館(1911年)。の、1875ページ上21行目7文字目の漢字(右の取り込み画像を参照)が読めないのですけど、なんていう字なのでしょうか?
読めないところを〓で示しますと・・・

4年汴京に至り、咸平の大願功徳寺の普融平に依り、太宰王〓の府第にいる。

なのですけどぉ。

グリフの左側は业の下に、人偏+村、右側は甫になっているように見えます。
総画21ぐらいかな。

漢和辞典の引き方とか(笑)・・・
http://glyphwiki.org/ とか・・・
Unicodeなど・・・
なにか知っていることがありましたら、コメントください。