2009年09月02日 午後のコーダのコンパイルエラー & 浮動小数点演算例外です
_ 午後のコーダのコンパイルエラー & 浮動小数点演算例外です
Slackware-12.2に午後のコーダをインストールした時のメモ。
まず普通にビルドしてみる。
- tar xvzf petit313.tgz
- cd petit313
- ./configure
- make
で、エラー発生。
engine/i386/fftsse.nas:26: error: invalid character in floating-point constant exponent: 'F' make: *** [fftsse.o] エラー 1
アセンブラ(nasm)の仕様変更っぽい。対策は以下。
diff -cr petit313.ORG/engine/i386/fftsse.nas petit313/engine/i386/fftsse.nas *** petit313.ORG/engine/i386/fftsse.nas Sun Oct 5 09:50:37 2003 --- petit313/engine/i386/fftsse.nas Wed Sep 2 10:56:40 2009 *************** *** 23,36 **** Q_SQRT2 dd 1.41421356237, 1.41421356237, 1.41421356237, 1.41421356237 Q_1 dd 1.0, 1.0, 1.0, 1.0 ! costab dd 9.238795325112867e-01F, 9.238795325112867e-01F, 9.238795325112867e-01F, 9.238795325112867e-01F ! dd 3.826834323650898e-01F, 3.826834323650898e-01F, 3.826834323650898e-01F, 3.826834323650898e-01F ! dd 9.951847266721969e-01F, 9.951847266721969e-01F, 9.951847266721969e-01F, 9.951847266721969e-01F ! dd 9.801714032956060e-02F, 9.801714032956060e-02F, 9.801714032956060e-02F, 9.801714032956060e-02F ! dd 9.996988186962042e-01F, 9.996988186962042e-01F, 9.996988186962042e-01F, 9.996988186962042e-01F ! dd 2.454122852291229e-02F, 2.454122852291229e-02F, 2.454122852291229e-02F, 2.454122852291229e-02F ! dd 9.999811752826011e-01F, 9.999811752826011e-01F, 9.999811752826011e-01F, 9.999811752826011e-01F ! dd 6.135884649154475e-03F, 6.135884649154475e-03F, 6.135884649154475e-03F, 6.135884649154475e-03F align 32 revLongInit db 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 --- 23,36 ---- Q_SQRT2 dd 1.41421356237, 1.41421356237, 1.41421356237, 1.41421356237 Q_1 dd 1.0, 1.0, 1.0, 1.0 ! costab dd 9.238795325112867e-01, 9.238795325112867e-01, 9.238795325112867e-01, 9.238795325112867e-01 ! dd 3.826834323650898e-01, 3.826834323650898e-01, 3.826834323650898e-01, 3.826834323650898e-01 ! dd 9.951847266721969e-01, 9.951847266721969e-01, 9.951847266721969e-01, 9.951847266721969e-01 ! dd 9.801714032956060e-02, 9.801714032956060e-02, 9.801714032956060e-02, 9.801714032956060e-02 ! dd 9.996988186962042e-01, 9.996988186962042e-01, 9.996988186962042e-01, 9.996988186962042e-01 ! dd 2.454122852291229e-02, 2.454122852291229e-02, 2.454122852291229e-02, 2.454122852291229e-02 ! dd 9.999811752826011e-01, 9.999811752826011e-01, 9.999811752826011e-01, 9.999811752826011e-01 ! dd 6.135884649154475e-03, 6.135884649154475e-03, 6.135884649154475e-03, 6.135884649154475e-03 align 32 revLongInit db 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80
- make
- make install
でインストールは完了。
gogo input.wav output.mp3
みたいに実行すると、「浮動小数点演算例外です」のエラーで異常終了する。
gogo 浮動小数点演算例外です で検索すると、
./configure --enable-debug && make && make install
でインストールすると正常に動くとの情報を得る。しかし必要も無いのに --enable-debug を付けるのはやはり気持悪いので、別の対策を考えた。
で、おそらくgccの最適化の問題であろうと推測して、以下のようにコンパイルオプションを修正してみたら、うまく行った。
diff -cr petit313.ORG/configure petit313/configure *** petit313.ORG/configure Sun May 23 01:07:58 2004 --- petit313/configure Wed Sep 2 11:01:52 2009 *************** *** 1346,1352 **** ;; *) # default ! OPTIMIZATION="-O3 -fomit-frame-pointer -ffast-math \ -funroll-loops" ;; esac --- 1346,1352 ---- ;; *) # default ! OPTIMIZATION="-O -fomit-frame-pointer \ -funroll-loops" ;; esac
最初、-ffast-mathだけを外して、うまく行くかに思えたが、何度か実行していると「浮動小数点演算例外です」が出るようになってしまった。そこで-O3を-Oにして、最適化を遠慮がちにすると安定した。
おそらく上記の対応ではエンコーディングが本来の速度より遅くなると思われるが、動かん事には仕方が無いので...。
上記の修正を加えた後に、当然 ./configure からビルドし直す。
2010年09月02日 液晶の輝度制御 for TOSHIBA Dynabook
_ 液晶の輝度制御 for TOSHIBA Dynabook
まず東芝ノートパソコン用ACPIモジュールをロードする。
# modprobe toshiba_acpi
VGA出力ONは
# echo 'crt_out : 1' > /proc/acpi/toshiba/video
VGA出力OFFは
# echo 'crt_out : 0' > /proc/acpi/toshiba/video
LCD出力のON
# echo 'lcd_out : 1' > /proc/acpi/toshiba/video
LCD出力のOFF
# echo 'lcd_out : 0' > /proc/acpi/toshiba/video
TV出力のON
# echo 'tv_out : 1' > /proc/acpi/toshiba/video
TV出力のOFF
# echo 'tv_out : 0' > /proc/acpi/toshiba/video
LCDの輝度調整
# echo 'brightness : N' > /proc/acpi/toshiba/lcd
Nは0〜7の数字。0が一番暗く、7が一番明るい。
参考ページ : http://www.geocities.co.jp/SiliconValley/3680/LOnL5-6.html
2023年09月02日 マイナンバーカード with smart card reader(IDBridge CT30) on Windows11 on vmplayer-16.2.3 on Slackware64-14.2
_ まずは、pcsc-lite-1.9.1
pcsc-lite-1.9.1をインストール(slackbuild)し、/usr/sbin/pcscdを起動するように設定。
/etc/rc.d/rc.local
if [ -x /usr/sbin/pcscd ] then /etc/rc.d/rc.pcscd start echo "Starting pcscd." fi
Linuxホスト側でカードリーダを認識。
$ lsusb ... snip ... Bus 003 Device 005: ID 08e6:3437 Gemalto (was Gemplus) GemPC Twin SmartCard Reader ... snip ...
ただし、vmplayerでは認識せず...
_ で、いろいろ試したこと...
- VMware-Player-Full-16.2.3-19376536.x86_64.bundleの再インストール
- pcsc-tools-1.4.27をインストール(slackbuild)
- pcsc-perl-1.4.14をインストール(slackbuild)
- ccid-1.4.21をインストール(slackbuild)
- opensc-0.21.0をインストール(slackbuild)
ホスト再起動後、Windows11 on vmplayer on Slackware64-14.2でカードリーダを認識。
[vmplayer] -> [Virtual Machine] -> [Removal Devices] -> [Shared Gemalt PC Twin Reader] -> [Connect]
無事マイナポータルにログインも成功!
ただし、上記の全てが必要というわけでは無いと思われるが...とりあえず動いたので良しとする。
追記 2014.11.02 カードの内容にアクセスできるか確認するコマンド
pkcs11-tool --list-objects --login