CodeSourcery のgcc環境からclangへ乗り換えを検討する。
■Clangダウンロード
LLVMのClangサイトから最新版Ver. 3.2のダウンロード
Experimental Clang Binaries for Mingw32/x86が対象ファイル
■準備
まずClangを動作させるのに必要なMinGWをインストールする。
注意すべきは必ずC:/MinGWにインストールすること。
現状のMinGW版Clangは上記フォルダにMinGWがあることがハードコードされている。
次にClangが使うgccのライブラリの準備
現状Clang Ver. 3.2のWindowsビルドがサポートしているgccライブラリのバージョンは以下の通り
4.3.0, 4.4.0, 4.5.0, 4.5.2, 4.6.1, 4.6.2
これはclangのソースコード /clang/lib/Frontend/InitHeaderSearch.cpp L400あたりにハードコードされている。
そこでMsysプロンプトから以下のコマンドを実行して該当バージョンのgccインストール
mingw-get install gcc=4.6.2-1
mingw-get install g++=4.6.2-1
既に4.7.0とかがインストールされていてエラーになってしまった場合は下記
mingw-get upgrade gcc=4.6.2-1
mingw-get upgrade g++=4.6.2-1
■インストール
ダウンロードしたClangのファイル一式を適当な場所に展開するだけ。
/binフォルダにパスを通しておく
以下コマンドで動作確認
clang --version
clang version 3.2 (tags/RELEASE_32/final)
Target: i686-w64-mingw32
Thread model: posix
と出たらインストール成功
2013年5月14日火曜日
2013年3月31日日曜日
Flyswatter2 - OpenOCD 0.6.1
TincanTools Flyswatter2 とOpenOCD 0.6.1 によるJTAGデバッグについて
起動コマンドは以下になる
openocd -f scripts/interface/flyswatter2.cfg -f scripts/board/ti_beagleboard.cfg
だが、これはうまく起動できない場合が多い。
実行すると以下のようなエラーメッセージが表示される。
Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
RCLK - adaptive
Warn : omap3530.dsp: huge IR length 38
RCLK - adaptive
trst_only separate trst_push_pull
Info : max TCK change to: 30000 kHz
Info : RCLK (adaptive clock speed)
Error: couldn't read enough bytes from FT2232 device (0 < 81)
Error: couldn't read from FT2232
in procedure 'runtest'
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: couldn't read enough bytes from FT2232 device (0 < 2)
Error: couldn't read from FT2232
Warn : Bypassing JTAG setup events due to errors
RCLK - adaptive
Error: couldn't read enough bytes from FT2232 device (0 < 81)
Error: couldn't read from FT2232
これはJTAG adaptive clockという仕組みがうまくbeagleboardとかみ合わない場合に発生するらしい。
詳しくはTincanToolsの説明を参照
エラーが発生してしまう場合はTincanToolsが公開しているadaptive clockを無効にした設定ファイルomap3530_norclk.cfgを用いる。
ダウンロードした設定ファイルは OpenOCDフォルダ/scripts/target/omap3530_norclk.cfgに保存
この設定ファイルを使って以下のコマンドで起動する
openocd -f scripts/interface/flyswatter2.cfg -f scripts/target/omap3530_norclk.cfg -c "init" -c "reset init"
以下のようなメッセージが表示されたら無事に起動
Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
DEPRECATED! use 'adapter_khz' not 'jtag_khz'
adapter speed: 1000 kHz
Warn : omap3530.dsp: huge IR length 38
trst_only separate trst_push_pull
Info : max TCK change to: 30000 kHz
Info : clock speed 1000 kHz
Info : JTAG tap: omap3530.jrc tap/device found: 0x0b7ae02f (mfg: 0x017, part: 0xb7ae, ver: 0x0)
Info : JTAG tap: omap3530.dap enabled
Info : omap3530.cpu: hardware has 6 breakpoints, 2 watchpoints
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011150
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011150
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x540111c0
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x540111c0
DEPRECATED! use 'adapter_khz' not 'jtag_khz'
adapter speed: 1000 kHz
Info : JTAG tap: omap3530.jrc tap/device found: 0x0b7ae02f (mfg: 0x017, part: 0xb7ae, ver: 0x0)
Info : JTAG tap: omap3530.dap enabled
Error: cortex_a8_mmu: target not halted
Runtime Error: embedded:startup.tcl:20:
in procedure 'omap3530.cpu'
in procedure 'ocd_bouncer'
at file "embedded:startup.tcl", line 20
Warn : omap3530.cpu: ran after reset and before halt ...
Info : number of cache level 2
Error: cache l2 present :not supported
Error: mpdir not in multiprocessor format
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0xa00001d3 pc: 0x80e88508
MMU: disabled, D-Cache: disabled, I-Cache: enabled
起動コマンドは以下になる
openocd -f scripts/interface/flyswatter2.cfg -f scripts/board/ti_beagleboard.cfg
だが、これはうまく起動できない場合が多い。
実行すると以下のようなエラーメッセージが表示される。
Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
RCLK - adaptive
Warn : omap3530.dsp: huge IR length 38
RCLK - adaptive
trst_only separate trst_push_pull
Info : max TCK change to: 30000 kHz
Info : RCLK (adaptive clock speed)
Error: couldn't read enough bytes from FT2232 device (0 < 81)
Error: couldn't read from FT2232
in procedure 'runtest'
Error: JTAG scan chain interrogation failed: all ones
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: couldn't read enough bytes from FT2232 device (0 < 2)
Error: couldn't read from FT2232
Warn : Bypassing JTAG setup events due to errors
RCLK - adaptive
Error: couldn't read enough bytes from FT2232 device (0 < 81)
Error: couldn't read from FT2232
これはJTAG adaptive clockという仕組みがうまくbeagleboardとかみ合わない場合に発生するらしい。
詳しくはTincanToolsの説明を参照
エラーが発生してしまう場合はTincanToolsが公開しているadaptive clockを無効にした設定ファイルomap3530_norclk.cfgを用いる。
ダウンロードした設定ファイルは OpenOCDフォルダ/scripts/target/omap3530_norclk.cfgに保存
この設定ファイルを使って以下のコマンドで起動する
openocd -f scripts/interface/flyswatter2.cfg -f scripts/target/omap3530_norclk.cfg -c "init" -c "reset init"
以下のようなメッセージが表示されたら無事に起動
Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
DEPRECATED! use 'adapter_khz' not 'jtag_khz'
adapter speed: 1000 kHz
Warn : omap3530.dsp: huge IR length 38
trst_only separate trst_push_pull
Info : max TCK change to: 30000 kHz
Info : clock speed 1000 kHz
Info : JTAG tap: omap3530.jrc tap/device found: 0x0b7ae02f (mfg: 0x017, part: 0xb7ae, ver: 0x0)
Info : JTAG tap: omap3530.dap enabled
Info : omap3530.cpu: hardware has 6 breakpoints, 2 watchpoints
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011150
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011150
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x540111c0
Error: JTAG-DP STICKY ERROR
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x540111c0
DEPRECATED! use 'adapter_khz' not 'jtag_khz'
adapter speed: 1000 kHz
Info : JTAG tap: omap3530.jrc tap/device found: 0x0b7ae02f (mfg: 0x017, part: 0xb7ae, ver: 0x0)
Info : JTAG tap: omap3530.dap enabled
Error: cortex_a8_mmu: target not halted
Runtime Error: embedded:startup.tcl:20:
in procedure 'omap3530.cpu'
in procedure 'ocd_bouncer'
at file "embedded:startup.tcl", line 20
Warn : omap3530.cpu: ran after reset and before halt ...
Info : number of cache level 2
Error: cache l2 present :not supported
Error: mpdir not in multiprocessor format
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0xa00001d3 pc: 0x80e88508
MMU: disabled, D-Cache: disabled, I-Cache: enabled
2013年1月29日火曜日
[番外編] Tomcat SSL通信
■Tomcat7でSSL通信
(1)SSLサーバ証明書要求
・秘密鍵生成
openssl genrsa -des3 -out [秘密鍵ファイル名] 4096
・CSR生成
openssl req -new -key [秘密鍵ファイル名] -out [出力CSRファイル名.csr]
(2)サーバ証明書発行依頼
・エンジョイSSLを使用。
http://www.e-ssldirect.com/product/rapidssl.php
・CSRをテキスト表示して申込フォームに貼り付け
openssl req -noout -text -in [CSRファイル名]
(3)証明書受取
指定した管理者メールアドレス(例えば webmaster@ホスト名)でメールを受け取れるようにする
一時的にでOK
受け取ったメールアドレスに発行するためのURLが書いてあるのでそのページを見る
そうすると審査が完了して証明書が発行される。
見に行ったページにサーバ証明書、中間CA証明書が書いてあるのでコピーして保存
(4)証明書ファイル作成
サーバ証明書、中間CA証明書、秘密鍵を1つにまとめたPKCS12形式ファイルを作成
openssl pkcs12 -export -in [サーバ証明書ファイル] -inkey [秘密鍵] -certfile [中間CA証明書] -out [出力ファイル]
PEM形式にしたい場合
openssl pkcs12 -in [上記出力ファイル] -out [ファイル名.pem]
(5)Tomcat設定
[Tomcat Dir]/conf/server.xml
<Connector
port="443"
protocol="HTTP/1.1"
scheme="https"
secure="true"
keystoreFile="[PKCS12形式のキーストアファイル]"
keystorePass="[キーストアパスワード]"
keystoreType="PKCS12"
/>
(6) 443ポート空け
(7)Tomcat再起動
(1)SSLサーバ証明書要求
・秘密鍵生成
openssl genrsa -des3 -out [秘密鍵ファイル名] 4096
・CSR生成
openssl req -new -key [秘密鍵ファイル名] -out [出力CSRファイル名.csr]
(2)サーバ証明書発行依頼
・エンジョイSSLを使用。
http://www.e-ssldirect.com/product/rapidssl.php
・CSRをテキスト表示して申込フォームに貼り付け
openssl req -noout -text -in [CSRファイル名]
(3)証明書受取
指定した管理者メールアドレス(例えば webmaster@ホスト名)でメールを受け取れるようにする
一時的にでOK
受け取ったメールアドレスに発行するためのURLが書いてあるのでそのページを見る
そうすると審査が完了して証明書が発行される。
見に行ったページにサーバ証明書、中間CA証明書が書いてあるのでコピーして保存
(4)証明書ファイル作成
サーバ証明書、中間CA証明書、秘密鍵を1つにまとめたPKCS12形式ファイルを作成
openssl pkcs12 -export -in [サーバ証明書ファイル] -inkey [秘密鍵] -certfile [中間CA証明書] -out [出力ファイル]
PEM形式にしたい場合
openssl pkcs12 -in [上記出力ファイル] -out [ファイル名.pem]
(5)Tomcat設定
[Tomcat Dir]/conf/server.xml
<Connector
port="443"
protocol="HTTP/1.1"
scheme="https"
secure="true"
keystoreFile="[PKCS12形式のキーストアファイル]"
keystorePass="[キーストアパスワード]"
keystoreType="PKCS12"
/>
(6) 443ポート空け
(7)Tomcat再起動
2013年1月26日土曜日
[番外編] メールサーバ構築
■postfixによるSMTPサーバ(CentOS)
(1)インストール
yum install postfix
(2)動作設定
/etc/postfix/main.cf
(3)ポート設定
25番ポート空ける
(4)alias設定
postmaster, webmaster等の特別アカウントへのメールは通常rootに転送される
これを本来のwebmasterユーザーで受信したい場合の設定
/etc/aliases の以下の記述をコメントアウト
webmaster: root
newaliases コマンドで反映
(5)MTA(Message Transfer Agent)確認&切り替え
複数のメール配信ソフトがインストールされている場合に行う。
確認: alternatives --display mta
変更: alternatives --config mta
(6)起動
/etc/init.d/postfix start
■dovecotによるPOP3、IMAPサーバ構築
(1)インストール
yum install dovecot
(2)動作設定
/etc/dovecot/conf.d/10-main.cf
/etc/dovecot/conf.d/auth-system.cf
(3)ポート設定
110番ポート空ける
(4)起動
/etc/init.d/dovecot start
(1)インストール
yum install postfix
(2)動作設定
/etc/postfix/main.cf
設定項目 | 内容 |
---|---|
ホスト名 | myhostname = [自分のホスト名] |
ドメイン名設定 | mydomain = [自分のドメイン名] |
メール送信先 | myorigin = $myhostname |
メール受信設定 | inet_interfaces = all |
メールの最終目的地 | mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain |
リレー許可ドメイン | relay_domains = $mydestination |
メール保存先 | home_mailbox = Maildir/ |
(3)ポート設定
25番ポート空ける
(4)alias設定
postmaster, webmaster等の特別アカウントへのメールは通常rootに転送される
これを本来のwebmasterユーザーで受信したい場合の設定
/etc/aliases の以下の記述をコメントアウト
webmaster: root
newaliases コマンドで反映
(5)MTA(Message Transfer Agent)確認&切り替え
複数のメール配信ソフトがインストールされている場合に行う。
確認: alternatives --display mta
変更: alternatives --config mta
(6)起動
/etc/init.d/postfix start
■dovecotによるPOP3、IMAPサーバ構築
(1)インストール
yum install dovecot
(2)動作設定
/etc/dovecot/conf.d/10-main.cf
/etc/dovecot/conf.d/auth-system.cf
(3)ポート設定
110番ポート空ける
(4)起動
/etc/init.d/dovecot start
登録:
投稿 (Atom)