<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3326432116592463682</id><updated>2024-08-29T19:13:10.380+09:00</updated><category term="ARM"/><category term="BeagleBoard"/><category term="Cortex-A8"/><category term="Clang"/><category term="OpenOCD"/><category term="LLVM"/><category term="ARM7"/><category term="OMAP3530"/><category term="Flyswatter"/><category term="JTAG"/><category term="msys2"/><category term="Apache2"/><category term="BeagleBone"/><category term="Eclipse"/><category term="FPGA"/><category term="Vivado"/><category term="ZynqBerry"/><category term="AM335x"/><category term="FT2232"/><category term="FTDI"/><category term="GDB"/><category term="HDL"/><category term="Raspberry Pi"/><category term="Sierra"/><category term="Tincan"/><category term="XDS100v2"/><category term="git"/><category term="gitolite3"/><category term="macOS"/><category term="openssl"/><category term="自作OS"/><title type='text'>Thieves of BeagleBoard</title><subtitle type='html'>BeagleBoard, BeagleBoneに自作OSを組み込むための実装実験記録</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-302583459371322906</id><published>2018-09-20T19:32:00.001+09:00</published><updated>2018-09-20T19:32:57.977+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="ARM7"/><category scheme="http://www.blogger.com/atom/ns#" term="Clang"/><category scheme="http://www.blogger.com/atom/ns#" term="Cortex-A8"/><title type='text'>ARMクロスコンパイル用clang その4</title><content type='html'>久々に確認したらllvmがバージョン 7になっていた。&lt;br /&gt;
手持ちのARM clang クロスコンパイラはバージョン3.8ベース。&lt;br /&gt;
大分最新から古くなっているので再度作成することにする。&lt;br /&gt;
&lt;br /&gt;
■作成対象&lt;br /&gt;
自作OSのビルドが目的なので&lt;br /&gt;
target-triple が arm-none-eabi のbaremetal ARMクロスコンパイラ&lt;br /&gt;
&lt;br /&gt;
■インストール先&lt;br /&gt;
/opt/arm-none-eabi-clang&lt;br /&gt;
&lt;br /&gt;
■ソースコード一式展開&lt;br /&gt;
&lt;a href=&quot;http://clang.llvm.org/get_started.html&quot;&gt;Getting started&lt;/a&gt;に従ってllvm本体とclang, lldそれぞれのソースコードを展開する。 &lt;br /&gt;
libcxxはOSのライブラリ依存だが、独自OSにはそれがまだ無いのでこの時点では導入しない。&lt;br /&gt;
compiler-rtはLLVM/Clangのビルドとは別に独立して行うのでllvmソースツリー内に展開しない。&lt;br /&gt;
&lt;br /&gt;
■ビルド&lt;br /&gt;
(clang+llvm)&lt;br /&gt;
&lt;br /&gt;
cmake
 &amp;lt;llvm-7.0.0.src path&amp;gt; -DCMAKE_CROSSCOMPILING=True 
-DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=ARM 
-DCMAKE_INSTALL_PREFIX=/opt/arm-none-eabi-clang -DLLVM_TARGET_ARCH=ARM 
-DLLVM_DEFAULT_TARGET_TRIPLE=arm-none-eabi -DCLANG_DEFAULT_LINKER=lld 
-DCLANG_DEFAULT_RTLIB=compiler-rt 
-DDEFAULT_SYSROOT=/opt/arm-none-eabi-clang&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/302583459371322906/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2018/09/armclang-4_20.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/302583459371322906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/302583459371322906'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2018/09/armclang-4_20.html' title='ARMクロスコンパイル用clang その4'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-7089908693710948664</id><published>2018-03-27T17:54:00.001+09:00</published><updated>2018-03-27T17:55:20.368+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="FPGA"/><category scheme="http://www.blogger.com/atom/ns#" term="HDL"/><category scheme="http://www.blogger.com/atom/ns#" term="Vivado"/><category scheme="http://www.blogger.com/atom/ns#" term="ZynqBerry"/><title type='text'>Zynqberry FPGA開発</title><content type='html'>&lt;a href=&quot;https://thieves-of-beagles.blogspot.jp/2018/03/zynqberry-fpga.html&quot;&gt;開発環境構築&lt;/a&gt;からの続き&lt;br /&gt;
&lt;br /&gt;
■参考サイト&lt;br /&gt;
&lt;a href=&quot;https://www.trenz.jp/tutorial/zynqberry-tutorial/&quot;&gt;ZynqBerryチュートリアル&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
■プロジェクトの作成&lt;br /&gt;
リファレンスデザインソースに生成されたvivado_create_project_guimode.cmdを実行する。いろいろとログが出力された後に下記のVivado開発環境が立ち上がる。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXu4ffRi7Jpgrr3_bi3d_HazbhFVFogSC-AHYLebnTbaV4kNBp49wflIM_9CIrT9PNhxCpxKRV2XjGE1IJTpTurGjVNf9DYgAGsdgxgSXJ1KWVKqoL8FxGMVeBtsDfcbRpsCtnaKYovJ3e/s1600/vivado_main.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1037&quot; data-original-width=&quot;1443&quot; height=&quot;229&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXu4ffRi7Jpgrr3_bi3d_HazbhFVFogSC-AHYLebnTbaV4kNBp49wflIM_9CIrT9PNhxCpxKRV2XjGE1IJTpTurGjVNf9DYgAGsdgxgSXJ1KWVKqoL8FxGMVeBtsDfcbRpsCtnaKYovJ3e/s320/vivado_main.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
■IP編集&lt;br /&gt;
左メニューの[Flow Navigator]-[IP INTEGRATOR]-[Open Block Design]を選択する。&lt;br /&gt;
下記のように初期設定のブロック図が表示される。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZMpiHOJh-sarHm3bOP12O4ejNzAtp3qcB_Rqcc6qQeulvC6bDtZuhSPZf19mfkTu838aBZhYYvC-4n8eytfO-Je_0VqXoFgrpmF6LjuEw_sSn42F63Yqp-rImlt4p6cf9pkpwhyphenhyphenjpu44L/s1600/primary_ip.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;545&quot; data-original-width=&quot;751&quot; height=&quot;232&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZMpiHOJh-sarHm3bOP12O4ejNzAtp3qcB_Rqcc6qQeulvC6bDtZuhSPZf19mfkTu838aBZhYYvC-4n8eytfO-Je_0VqXoFgrpmF6LjuEw_sSn42F63Yqp-rImlt4p6cf9pkpwhyphenhyphenjpu44L/s320/primary_ip.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
自作IPの作成方針として理解したのは2通り。１つはAXI4対応IPとする方法、もう１つは汎用IPとして作成しAXI4-GPIOと接続する方法。&lt;br /&gt;
いずれにしてもAXI4と接続しないとARMのアドレス空間経由で操作できない。&lt;br /&gt;
&lt;br /&gt;
①AXI4対応IP作成方法&lt;br /&gt;
上部メニューの[Tools]-[Create And Package New IP]を選択する。&lt;br /&gt;
下記ダイアログにおいて「Create a new AXI4 peripheral」を選択しNext。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7eyGHe3oUMyUmzYV6llB20nonwNna0xVt7Soo7sl0qsPLMOkRf6CD1Fa-grLZ1Xs9P57B4NChWchOA55xqhag8qdaBCqBP_EhaM1OGr7rSXLeyFC9szdpFZqeFOoFdLzteNebFE8jkEmi/s1600/new_axi4_ip.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;572&quot; data-original-width=&quot;842&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7eyGHe3oUMyUmzYV6llB20nonwNna0xVt7Soo7sl0qsPLMOkRf6CD1Fa-grLZ1Xs9P57B4NChWchOA55xqhag8qdaBCqBP_EhaM1OGr7rSXLeyFC9szdpFZqeFOoFdLzteNebFE8jkEmi/s320/new_axi4_ip.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Peripheral Detail画面が表示されるのでIPの名前や保存場所を指定する。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnWBcZ4vMK0-NBxISsEO0HfISfxtVJsud0Hgnm58HSDYODfvLx0Z1aAP9f0w4lv9q9AD0-zYPYPbvVVPttn95n6Guul0Ug9Y1v5MghJx-y31U4kY0S2-ynbVdQ0NM25jeyXhLgLa4DTnr/s1600/ip_detail.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;572&quot; data-original-width=&quot;842&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifnWBcZ4vMK0-NBxISsEO0HfISfxtVJsud0Hgnm58HSDYODfvLx0Z1aAP9f0w4lv9q9AD0-zYPYPbvVVPttn95n6Guul0Ug9Y1v5MghJx-y31U4kY0S2-ynbVdQ0NM25jeyXhLgLa4DTnr/s320/ip_detail.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
別ウィンドウでIPのサブプロジェクトが開けば成功&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1J2MhquG6Bh2buZ7rj8mKFBPRl1HyJ9TxiIYfV4l5bd1TV7PavqHjWKsq3hAm6NAwwIRa7cjBY3trpRUnIhvgt0h1AtHzNoboXc-cDSRsiiIKeqWl3y7bbVqmANN1DtFAJhGQZj9n-WKu/s1600/vivado_sub.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1037&quot; data-original-width=&quot;1443&quot; height=&quot;229&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1J2MhquG6Bh2buZ7rj8mKFBPRl1HyJ9TxiIYfV4l5bd1TV7PavqHjWKsq3hAm6NAwwIRa7cjBY3trpRUnIhvgt0h1AtHzNoboXc-cDSRsiiIKeqWl3y7bbVqmANN1DtFAJhGQZj9n-WKu/s320/vivado_sub.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
成功するとAXI I/Fドライバのひな型とC言語のドライバスタブが生成される。&lt;br /&gt;
Sourcesウィンドウの[Design Sources]-[IP名]を選択するとVHDLのコードが生成されているのがわかる。&lt;br /&gt;
エディタで開いて最下部に「Add user logic here」と記載されているところに自分のロジックを組み込めばOK。&lt;br /&gt;
&lt;br /&gt;
②自作汎用IPの組み込み&lt;br /&gt;
[PROJECT MANAGER]-[Add Sources]し、ダイアログから[Add or create design sources]を選択する。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzXs58lfCJR3Ox7hmocqLkyWtUhfeVLxtffrYrC0SkTYpkTjXkukb3ZNFuc0eSunZQQ2Rx0LR-BsxI-Jnmm4yZ7JFB9Vk47hme-c4uEfJ9NhgnKQOIndogm6XKNGLwBFSf49RqgirkEGjw/s1600/add_design.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;572&quot; data-original-width=&quot;842&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzXs58lfCJR3Ox7hmocqLkyWtUhfeVLxtffrYrC0SkTYpkTjXkukb3ZNFuc0eSunZQQ2Rx0LR-BsxI-Jnmm4yZ7JFB9Vk47hme-c4uEfJ9NhgnKQOIndogm6XKNGLwBFSf49RqgirkEGjw/s320/add_design.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
下部の[Create File]ボタンを押して作成するHDLソースファイルを指定する。&lt;br /&gt;
File TypeにHDLの種類(VHDL, Verilog, SystemVerilogなど)、File nameにソースファイル名を指定する。&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgItqL6I5UVRePEZWyHkqRSCzWcw-6hBa4vqRaJFArUtHimq9yvbXSsXwXQ64xOgeO0jJJJI-CSTKqJnEi8F5Z8fmrtodD2kf8_nE3f4aOO1gfAi_NJ2N2PAa5N62IUgJ72h_lGmaqXSsLP/s1600/def_module.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;442&quot; data-original-width=&quot;612&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgItqL6I5UVRePEZWyHkqRSCzWcw-6hBa4vqRaJFArUtHimq9yvbXSsXwXQ64xOgeO0jJJJI-CSTKqJnEi8F5Z8fmrtodD2kf8_nE3f4aOO1gfAi_NJ2N2PAa5N62IUgJ72h_lGmaqXSsLP/s320/def_module.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
次の画面で入出力ポートを設定すると自動でソースファイルのひな型が生成される。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
■プロジェクト設定&lt;br /&gt;
自作IP毎のサブプロジェクト作成について&lt;br /&gt;
デフォルトでは編集時にサブプロジェクトを作成し、編集後に自動で削除されるようになっている。&lt;br /&gt;
&lt;br /&gt;
毎回サブプロジェクトを作成、削除するのが手間であれば自動削除しないように設定できる。&lt;br /&gt;
左メニュー[Flow Navigator]-[PROJECT MANAGER]-[Setting]から[Project Setting]-[IP]-[Packager]を選択する。&lt;br /&gt;
設定画面の[Delete project after packaging]のチェックを外すと自動削除を無効にできる。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0WEHMv84kZpvcwV1AmDQh7wUm666NKkhUyCfV25utYNcec1ZqTZZSLlQr3ThpkBwzb2VUh1ZgNdeLYOceiavzxq2zpCsnY1CtD0me1VvtRZzogQ1dsi09PoPQ1V2QHKW-9nXWkyKriWum/s1600/package_manage.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;743&quot; data-original-width=&quot;836&quot; height=&quot;284&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0WEHMv84kZpvcwV1AmDQh7wUm666NKkhUyCfV25utYNcec1ZqTZZSLlQr3ThpkBwzb2VUh1ZgNdeLYOceiavzxq2zpCsnY1CtD0me1VvtRZzogQ1dsi09PoPQ1V2QHKW-9nXWkyKriWum/s320/package_manage.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/7089908693710948664/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2018/03/zynqberry-fpga_27.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7089908693710948664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7089908693710948664'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2018/03/zynqberry-fpga_27.html' title='Zynqberry FPGA開発'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXu4ffRi7Jpgrr3_bi3d_HazbhFVFogSC-AHYLebnTbaV4kNBp49wflIM_9CIrT9PNhxCpxKRV2XjGE1IJTpTurGjVNf9DYgAGsdgxgSXJ1KWVKqoL8FxGMVeBtsDfcbRpsCtnaKYovJ3e/s72-c/vivado_main.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-7748905310145834911</id><published>2018-03-19T14:03:00.000+09:00</published><updated>2018-03-23T19:30:55.960+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="FPGA"/><category scheme="http://www.blogger.com/atom/ns#" term="Raspberry Pi"/><category scheme="http://www.blogger.com/atom/ns#" term="Vivado"/><category scheme="http://www.blogger.com/atom/ns#" term="ZynqBerry"/><title type='text'>Zynqberry FPGA開発環境構築</title><content type='html'>■手順概要&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;リファレンスデザインのダウンロード&lt;/li&gt;
&lt;li&gt;Xilinx Vivadoのインストール&lt;/li&gt;
&lt;li&gt;プロジェクトの作成&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
■リファレンスデザインのダウンロード&lt;br /&gt;
&lt;a href=&quot;https://shop.trenz-electronic.de/en/TE0726-03M-ZynqBerry-Zynq-7010-in-Raspberry-Pi-form-factor?path=Trenz_Electronic/Modules_and_Module_Carriers/special/TE0726/Reference_Design/&quot;&gt;Trenz electronic Zynqberryダウンロードサイト&lt;/a&gt;&lt;br /&gt;
ここからリファレンスデザインをダウンロードする&lt;br /&gt;
&lt;br /&gt;
2018/3時点で最新バージョンは2017.4&lt;br /&gt;
&lt;a href=&quot;http://www.trenz-electronic.de/fileadmin/docs/Trenz_Electronic/Modules_and_Module_Carriers/special/TE0726/Reference_Design/2017.4/test_board/te0726-test_board-vivado_2017.4-build_06_20180216205357.zip&quot;&gt;te0726-test_board-vivado_2017.4-build_06_20180216205357.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
これを適当なフォルダに展開する。&lt;br /&gt;
空白を含まないフォルダパスが望ましい。&lt;br /&gt;
&lt;br /&gt;
■Xilinx Vivadoのインストール&lt;br /&gt;
リファレンスデザインの対象バージョンが2017.4なのでVivadoも同じバージョンをダウンロード、インストールする。&lt;br /&gt;
バージョンが合っていないと論理合成できないことがある&lt;br /&gt;
またインストールするフォルダはデフォルトのC:\Xilinxが望ましい。&lt;br /&gt;
リファレンスデザインのプロジェクト作成batファイルがC:\Xilinxにインストールされているのを前提にしているため &lt;br /&gt;
&lt;br /&gt;
■リファレンスデザインの展開&lt;br /&gt;
ダウンロードしたリファレンスデザインを解凍すると直下に_create_win_setup.cmdというスクリプトがある。&lt;br /&gt;
これをコマンドプロンプトから実行&lt;br /&gt;
&lt;br /&gt;
-------------------------TE Reference Design---------------------------&lt;br /&gt;
--------------------------------------------------------------------&lt;br /&gt;
-- (c)&amp;nbsp; Go to CMD-File Generation (Manual setup)&lt;br /&gt;
-- (d)&amp;nbsp; Go to Documentation (Web Documentation)&lt;br /&gt;
-- (x)&amp;nbsp; Exit Batch (nothing is done!)&lt;br /&gt;
-- (0)&amp;nbsp; Create minimum setup of CMD-Files and exit Batch&lt;br /&gt;
-- (1)&amp;nbsp; Create maximum setup of CMD-Files and exit Batch&lt;br /&gt;
----&lt;br /&gt;
Select (ex.:&#39;0&#39; for min setup):&lt;br /&gt;
&lt;br /&gt;
このような選択が表示されるので1を選択する。&lt;br /&gt;
するとプロジェクト作成に必要なスクリプト群が生成される。&lt;br /&gt;
&lt;br /&gt;
■プロジェクト対象ボードの選択&lt;br /&gt;
生成されたスクリプト群にあるdesign_basic_setting.cmdを編集する。&lt;br /&gt;
(編集箇所)&lt;br /&gt;
@set PARTNUMBER=LAST_ID&lt;br /&gt;
&amp;nbsp;&amp;nbsp; LAST_IDを手持ちのボードに合わせる。選択できるボードの種類はboard_filesディレクトリのTE0726_board_files.csvに記載されている。&lt;br /&gt;
　ここでは手元にあるte0726-03mを選択しておく。&lt;br /&gt;
　LAST_IDのままにしておくと自動的にte0726-03-07s-1cが選択されたことになる。 &lt;br /&gt;
&lt;br /&gt;
@set SWAPP=NA&lt;br /&gt;
　NAを作成するプロジェクト名に変える &lt;br /&gt;
&lt;br /&gt;
■プロジェクトの作成&lt;br /&gt;
生成されたスクリプト群の中からvivado_create_project_guimode.cmdを実行する。&lt;br /&gt;
するとzynqberryのハード設定で初期化された状態でVivadoアプリケーションが立ち上がる。&lt;br /&gt;
立ち上がったらメニューのFile-&amp;gt;Save Project Asで好きな場所に保存する。&lt;br /&gt;
以降はこのプロジェクトを編集して回路設計と合成を行う&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/7748905310145834911/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2018/03/zynqberry-fpga.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7748905310145834911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7748905310145834911'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2018/03/zynqberry-fpga.html' title='Zynqberry FPGA開発環境構築'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-4259487416794921380</id><published>2017-01-01T20:47:00.004+09:00</published><updated>2017-01-02T17:45:55.272+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BeagleBone"/><category scheme="http://www.blogger.com/atom/ns#" term="FT2232"/><category scheme="http://www.blogger.com/atom/ns#" term="FTDI"/><category scheme="http://www.blogger.com/atom/ns#" term="JTAG"/><category scheme="http://www.blogger.com/atom/ns#" term="macOS"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenOCD"/><category scheme="http://www.blogger.com/atom/ns#" term="Sierra"/><category scheme="http://www.blogger.com/atom/ns#" term="XDS100v2"/><title type='text'>Mackbook Pro(Late 2016, macOS Sierra 10.12.2)でOpenOCD</title><content type='html'>新しく今年発売のMacbook Proを購入したのでBeagleBoneをOpenOCDでデバッグする環境を構築&lt;br /&gt;
&lt;br /&gt;
■必要なソフトのインストール&lt;br /&gt;
・Xcode, gcc command line tool&lt;br /&gt;
　AppStore経由でXcodeのインストール&lt;br /&gt;
　command line toolはXcodeのメニューからインストール&lt;br /&gt;
&lt;br /&gt;
・Homebrew&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;a href=&quot;http://brew.sh/index_ja.html&quot;&gt;http://brew.sh/index_ja.html&lt;/a&gt;&lt;br /&gt;
&amp;nbsp; 上記サイトを見ながらhomebrewをインストールする&lt;br /&gt;
&lt;br /&gt;
・OpenOCD&lt;br /&gt;
&amp;nbsp; ターミナルから brew install openocd&lt;br /&gt;
&amp;nbsp; で依存関係まで含めてインストールされる&lt;br /&gt;
&lt;br /&gt;
■Kernel Extension設定変更&lt;br /&gt;
&amp;nbsp; BeagleBone搭載のデバッガはTI XDS100v2&lt;br /&gt;
&amp;nbsp; これはMacに接続するとUSBデバイス FT2232(vendor id: 0x403, product id: 0x6010)と認識される&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;macOS SierraにはFTDIのドライバが標準で入っているらしく接続すると以下４つのTTYデバイスが/dev に作成される&lt;br /&gt;
&lt;br /&gt;
cu.usbserial-TIWD9YJWA&lt;br /&gt;
cu.usbserial-TIWD9YJWB&lt;br /&gt;
tty.usbserial-TIWD9YJWA&lt;br /&gt;
tty.usbserial-TIWD9YJWB
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; ただ、この状態だとOpenOCDが接続できない。&lt;br /&gt;
&amp;nbsp; OpenOCDはlibftdi-&amp;gt;libusb経由でUSB interface0のXDS100v2に接続しようとするが既にTIWD9YJWAというTTYデバイスとして使用してしまっているからである。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; そこでmacOS Sierraの標準FTDIドライバがinterface0にドライバを適用しないようにする&lt;br /&gt;
&lt;br /&gt;
/System/Library/Extensions/AppleUSBFTDI.kext/Contents/Info.plist の以下の部分を削除する&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;AppleUSBEFTDI-6010-0&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;dict&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;CFBundleIdentifier&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;com.apple.driver.AppleUSBFTDI&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;IOClass&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;AppleUSBFTDI&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;IOProviderClass&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;IOUSBHostInterface&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;InputBuffers&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;8&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;OutputBuffers&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;16&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;bConfigurationValue&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;1&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;bInterfaceNumber&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;0&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;idProduct&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;24592&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;idVendor&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;1027&amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}
span.s1 {font-variant-ligatures: no-common-ligatures}
span.s2 {font-variant-ligatures: no-common-ligatures; color: #5e34ff}
&lt;/style&gt;






















&lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span class=&quot;s1&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;dict&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
削除する前に一応 cp Info.plist Info.plist.org とでもしてバックアップを取っておくと良い&lt;br /&gt;
&lt;br /&gt;
ちなみに/System/以下のファイルはSIPを無効にしないとchmodで書き込み権限を付与しても編集できない。&lt;br /&gt;
SIPを無効にするにはcommand+Rを押しながら起動または再起動してリカバリーモードから行う&lt;br /&gt;
リカバリーモードで起動したらメニューから[ユティリティ]-[ターミナル]を選択し、ターミナルからcsruti disableとする&lt;br /&gt;
Info.plist の編集が終わったら再びリカバリーモードから csrutil enableとして保護機能を有効化するのを忘れずに。&lt;br /&gt;
&lt;br /&gt;
■OpenOCD起動&lt;br /&gt;
　AppleUSBFTDIのInfo.plistを編集した後に再起動するか、モジュールのunload, loadをするとinterface0のTIWD9YJWAが作成されなくなる。&lt;br /&gt;
　この状態でOpenOCDが接続可能となる&lt;br /&gt;
&lt;br /&gt;
　openocd -f board/ti_beaglebone.cfg&lt;br /&gt;
&lt;br /&gt;
　で接続することができる。さらに&lt;br /&gt;
&lt;br /&gt;
　screen /dev/tty.usbserial-TIWD9YJWB 115200&lt;br /&gt;
&lt;br /&gt;
　とすることでinterface1はシリアルUARTでデバイスと通信が可能である。&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/4259487416794921380/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2017/01/mackbook-prolate-2016-macos-sierra.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/4259487416794921380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/4259487416794921380'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2017/01/mackbook-prolate-2016-macos-sierra.html' title='Mackbook Pro(Late 2016, macOS Sierra 10.12.2)でOpenOCD'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-3276691116428842209</id><published>2016-10-31T18:24:00.000+09:00</published><updated>2018-01-25T16:22:12.761+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="Clang"/><category scheme="http://www.blogger.com/atom/ns#" term="LLVM"/><title type='text'>ARMクロスコンパイル用clang その3</title><content type='html'>前々からautoconfではなく、cmakeでのビルドを推奨していたLLVMだが、ついにautoconfのサポートが無くなってしまった。&lt;br /&gt;
そこでcmakeでのARMクロスコンパイラのビルド方法を記載しておく。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(1)LLVM(Clang含む)のソースコード一式を適当なフォルダに展開する&lt;br /&gt;
　展開の仕方は公式の&lt;a href=&quot;https://clang.llvm.org/get_started.html&quot;&gt;Getting started&lt;/a&gt;を参照 &lt;br /&gt;
(2)LLVMのフォルダとは別の場所にビルドフォルダを作成し移動する.&lt;br /&gt;
(3)以下のようにcmakeを実行すればMakefileが生成される&lt;br /&gt;
&lt;br /&gt;
cmake &amp;lt;LLVMフォルダパス&amp;gt; -DCMAKE_CROSSCOMPILING=True -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=&quot;ARM;AARCH64&quot; -DCMAKE_INSTALL_PREFIX=&amp;lt;ビルドしたバイナリのインストール先パス&amp;gt; -DLLVM_TARGET_ARCH=ARM -DLLVM_DEFAULT_TARGET_TRIPLE=arm-none-eabi&lt;br /&gt;
&lt;br /&gt;
(4)make; make install&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/3276691116428842209/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/10/armclang-3.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3276691116428842209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3276691116428842209'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/10/armclang-3.html' title='ARMクロスコンパイル用clang その3'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-2438091731108030440</id><published>2016-08-11T13:57:00.002+09:00</published><updated>2016-08-11T15:22:36.771+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="Clang"/><category scheme="http://www.blogger.com/atom/ns#" term="LLVM"/><category scheme="http://www.blogger.com/atom/ns#" term="msys2"/><title type='text'>ARMクロスコンパイル用clang その2</title><content type='html'>&lt;a href=&quot;http://thieves-of-beagles.blogspot.jp/2015/08/armclang.html&quot;&gt;ARMクロスコンパイル用clangの続き&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
普段使っているのがWindowsなのでWindows上でもARMクロスコンパイルclangを作成して見る&lt;br /&gt;
自作OS向けなのでベアメタルビルドでOK。&lt;br /&gt;
ライブラリ無しのコンパイラのみなのでビルドはシンプル。&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
■準備&lt;/div&gt;
&lt;div&gt;
msys2 32bit版を導入&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(1) &lt;a href=&quot;https://msys2.github.io/&quot;&gt;https://msys2.github.io/&lt;/a&gt; から msys2-i686-[hhhhmmdd].exe をダウンロードして実行する&lt;/div&gt;
&lt;div&gt;
(2) メニューからMinGW-w64 Win32 shellを選択してターミナルを出す&lt;/div&gt;
&lt;div&gt;
(3) ターミナルからシステムアップグレード&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;pacman -Syu --noconfirm&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(4) ターミナルを1度閉じる&lt;/div&gt;
&lt;div&gt;
(5) エクスプローラから C:\msys32\mingw32.exe を実行する&lt;/div&gt;
&lt;div&gt;
　　アップグレードするとメニューからのターミナル起動ショートカットがなぜか効かなくなるので直接実行&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(6) clangビルドに必要なパッケージをインストール&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;pacman -S base-devel&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;mingw-w64-i686-toolchain python --noconfirm&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
■binutils, clangをビルド&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &lt;a href=&quot;https://drive.google.com/file/d/0ByuVJZEfzCRlenRzODl0dURXV00/view?usp=sharing&quot;&gt;&amp;nbsp;ビルド用スクリプトbuild-arm-clang.sh&lt;/a&gt;を用意&lt;br /&gt;
&lt;br /&gt;
(使用方法)&lt;br /&gt;
&amp;nbsp; build-arm-clang.sh [binutilsバージョン] [llvm/clangバージョン]&lt;br /&gt;
&amp;nbsp; 何も指定しないとbinutils-2.27, llvm-3.8.1 になる&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/2438091731108030440/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/08/armclang-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2438091731108030440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2438091731108030440'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/08/armclang-2.html' title='ARMクロスコンパイル用clang その2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-2061928598728147855</id><published>2016-07-30T15:53:00.000+09:00</published><updated>2016-07-30T15:53:07.373+09:00</updated><title type='text'>Nginx + Redmine</title><content type='html'>■前提&lt;br /&gt;
nginx, Redmine(ruby, bundler, unicorn含む）はインストール済みとする&lt;br /&gt;
&lt;br /&gt;
■nginxの設定&lt;br /&gt;
/etc/nginx/sites-available のサーバー設定に以下を追加&lt;br /&gt;
&lt;br /&gt;
upstream unicorn {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; server unix:[redmineインストールパス]/tmp/unicorn.sock fail_timeout=0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {} の中に locationを追加&lt;br /&gt;
&lt;br /&gt;
location /redmine {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; alias [redmineインストールパス]/public;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; try_files $uri/index.html $uri.html $uri @unicorn;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
location @unicorn {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; proxy_set_header Host $http_host;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; proxy_redirect off;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; proxy_pass http://unicorn;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
■Redmineの設定&lt;br /&gt;
sub-uri /redmine で動作するように若干変更&lt;br /&gt;
&lt;br /&gt;
[redmineインストールパス]/config/routes.rb の以下の部分を変更&lt;br /&gt;
&lt;br /&gt;
(変更前)&lt;br /&gt;
Rails.application.routes.draw do&lt;br /&gt;
&amp;nbsp; root :to =&amp;gt; &#39;welcome#index&#39;, :as =&amp;gt; &#39;home&#39;&lt;br /&gt;
&amp;nbsp; ・&lt;br /&gt;
　・&lt;br /&gt;
　・&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
(変更後)&lt;br /&gt;
Redmine::Utils::relative_url_root=&quot;/redmine&quot;&lt;br /&gt;
&lt;br /&gt;
Rails.application.routes.draw do&lt;br /&gt;
scope Redmine::Utils::relative_url_root &amp;nbsp;do&lt;br /&gt;
&amp;nbsp; root :to =&amp;gt; &#39;welcome#index&#39;, :as =&amp;gt; &#39;home&#39;&lt;br /&gt;
&amp;nbsp; ・&lt;br /&gt;
　・&lt;br /&gt;
　・&lt;br /&gt;
end&lt;br /&gt;
&lt;div&gt;
end&lt;/div&gt;
&lt;br /&gt;
■Redmineの起動&lt;br /&gt;
&lt;div&gt;
cd [redmineインストールパス]&lt;/div&gt;
&lt;div&gt;
bundle exec unicorn -c config/unicorn.rb -E production -D&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
これでunicorn経由でRedmineがデーモン状態で立ち上がる&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
■nginx再起動&lt;br /&gt;
service nginx restart&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/2061928598728147855/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/07/nginx-redmine.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2061928598728147855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2061928598728147855'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/07/nginx-redmine.html' title='Nginx + Redmine'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-814627762672067215</id><published>2016-02-14T02:37:00.000+09:00</published><updated>2016-02-14T02:37:25.808+09:00</updated><title type='text'>Gitoliteサーバ</title><content type='html'>■サーバ設定&lt;br /&gt;
・/var/lib/gitolite3/.gitolite.rc&lt;br /&gt;
&amp;nbsp; UMASK 0700がデフォルト(rwx --- ---)。&lt;br /&gt;
　redmine等の管理システムからリポジトリ参照したい場合は0027(rwxr-x---)としてグループからの読み込みも許可しておく&lt;br /&gt;
&amp;nbsp; こうしないとgit でpushするたびにredmineからリポジトリ参照できなくなる&lt;br /&gt;
&lt;br /&gt;
App 13972 stderr: fatal: Failed to resolve HEAD as a valid ref.&lt;br /&gt;
App 13972 stderr: fatal: Not a valid object name HEAD:&lt;br /&gt;
&lt;br /&gt;
こんな感じのエラーログが出る。&lt;br /&gt;
&lt;br /&gt;
■ユーザー追加&lt;br /&gt;
・Unixユーザー追加&lt;br /&gt;
&lt;div&gt;
&amp;nbsp; useradd [ユーザーID]&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; passwd [ユーザーID]&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
・SSHキーペア生成&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; ssh-keygen -t rsa -b 2048&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; パスフレーズ入力して作成完了&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; id_rsa(秘密鍵), id_rsa.pub(公開鍵)の2つが生成される。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
･gitoliteに追加&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; gitolite.conf のアクセスリポジトリにユーザーと権限追加&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; keydirフォルダに公開鍵を追加&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/814627762672067215/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/gitolite.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/814627762672067215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/814627762672067215'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/gitolite.html' title='Gitoliteサーバ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-7724515878917838462</id><published>2016-02-14T02:36:00.001+09:00</published><updated>2016-07-28T17:06:05.433+09:00</updated><title type='text'>ubuntu 14.04 + nginx + SSL立ち上げ</title><content type='html'>■apt準備&lt;br /&gt;
&lt;div&gt;
/etc/apt/sources.list に以下を追加&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
deb http://nginx.org/packages/ubuntu/ trusty nginx&lt;/div&gt;
&lt;div&gt;
deb-src http://nginx.org/packages/ubuntu/ trusty nginx&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
■パッケージインストール&lt;/div&gt;
&lt;div&gt;
apt-get update&lt;/div&gt;
&lt;div&gt;
apt-get install nginx&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
■設定&lt;br /&gt;
nginxのサイト設定は以下のどちらかのフォルダに設定することが出来る。&lt;br /&gt;
/etc/nginx/conf.d&lt;br /&gt;
/etc/nginx/sites-available&lt;br /&gt;
&lt;br /&gt;
運用方針は人それぞれだが共通設定をconf.dに置き、サイト設定はsites-availableに置く。&lt;br /&gt;
有効にするサイト設定は/etc/nginx/sites-enabled/からシンボリックリンクを貼る&lt;br /&gt;
&lt;br /&gt;
(1)サーバー共通設定作成&lt;/div&gt;
&lt;div&gt;
/etc/nginx/conf.d/default.conf を拡張子を変えて保存&lt;/div&gt;
&lt;div&gt;
/etc/nginx/conf.d/example_ssl.confを拡張子を変えて保存&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
/etc/nginx/conf.d/default.conf を新たに作成し中身を以下にする&lt;br /&gt;
&lt;br /&gt;
========== ここから ==========&lt;br /&gt;
server {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; listen 80;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; listen [::]:80;&lt;br /&gt;
&lt;br /&gt;
# httpへのアクセスをhttpsへリダイレクトする&lt;br /&gt;
# &amp;nbsp; &amp;nbsp;return 301 https://$host$request_uri; &amp;nbsp; &amp;nbsp; &amp;lt;= 後でコメントをはずす&lt;br /&gt;
}&lt;br /&gt;
========== ここまで ==========&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
(2)PFS用パラメータを生成&lt;br /&gt;
mkdir /etc/nginx/ssl&lt;br /&gt;
cd /etc/nginx/ssl&lt;br /&gt;
openssl dhparam 2048 -out dhparam.pem&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
■サイト設定&lt;br /&gt;
(1)サイト設定の有効化&lt;br /&gt;
/etc/nginx/nginx.confの末尾に以下を追加&lt;br /&gt;
&lt;br /&gt;
include /etc/nginx/sites-enabled/*;&lt;br /&gt;
&lt;br /&gt;
(2)サイト設定の作成&lt;/div&gt;
&lt;div&gt;
/etc/nginx/sites-available/defaultのコピーを作成する&lt;br /&gt;
&lt;br /&gt;
root および server_name を適宜設定&lt;br /&gt;
apache2からの移行ならroot は /var/www/html で良いかもしれない&lt;br /&gt;
&lt;br /&gt;
(3)サイト設定の有効化&lt;br /&gt;
cd /etc/nginx/sites-enabled&lt;br /&gt;
ln -s /etc/ngingx/sites-available/&amp;lt;（2）でコピーしたサイト&amp;gt;&lt;br /&gt;
&lt;br /&gt;
■let&#39;s encryptインストール&lt;br /&gt;
sudo su&lt;br /&gt;
cd /usr/share &amp;nbsp;&amp;lt;= どこか適当な場所でよい&lt;br /&gt;
git clone https://github.com/letsencrypt/letsencrypt&lt;br /&gt;
cd letsencrypt&lt;br /&gt;
./letsencrypt-auto --help&lt;br /&gt;
&lt;br /&gt;
依存関係が自動でインストールされてヘルプが表示されれば成功&lt;br /&gt;
&lt;br /&gt;
■証明書取得&lt;br /&gt;
./letsencrypt-auto certonly --webroot -w &amp;lt;WEBファイルルートフォルダ&amp;gt; -d &amp;lt;サイトドメイン名&amp;gt; -d www.&amp;lt;サイトドメイン名&amp;gt; -m &amp;lt;管理者メールアドレス&amp;gt; --agree-tos&lt;br /&gt;
&lt;br /&gt;
www.&amp;lt;サイトドメイン名&amp;gt;オプションは必要に応じて。無くてもいい。&lt;br /&gt;
取得に成功すると /etc/letsencrypt/live/&amp;lt;ドメイン名&amp;gt;/に証明書ファイルが保存される。&lt;br /&gt;
保存されるのは以下4ファイル&lt;br /&gt;
&lt;br /&gt;
cert.pem&lt;br /&gt;
chain.pem&lt;br /&gt;
fullchain.pem　&lt;br /&gt;
privkey.pem&lt;br /&gt;
&lt;br /&gt;
■nginx SSL設定&lt;br /&gt;
(1)SSL設定&lt;br /&gt;
/etc/nginx/sites-available/ssl を作成し中身を以下にする&lt;br /&gt;
&lt;br /&gt;
========== ここから ==========&lt;br /&gt;
&lt;div&gt;
server {&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; listen 443 ssl;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;listen [::]:443 ssl;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; server_name &amp;lt;サーバーのドメイン名&amp;gt;;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; root &amp;lt;WEBファイルルートフォルダ&amp;gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; index index.html;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ssl_certificate &amp;nbsp; &amp;nbsp; &amp;nbsp;/etc/letsencrypt/live/&amp;lt;ドメイン名&amp;gt;/fullchain.pem;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ssl_certificate_key &amp;nbsp;/etc/letsencrypt/live/&amp;lt;ドメイン名&amp;gt;/privkey.pem;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ssl_session_cache shared:SSL:1m;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ssl_session_timeout &amp;nbsp;5m;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; # サーバ側の暗号化スイートを優先する&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ssl on;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; # SSLプロトコルを安全なものだけ指定&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; # 暗号化アルゴリズムはサーバーが指定.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ssl_prefer_server_ciphers on;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; # 具体的に使うアルゴリズム以外は無効に設定&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ssl_ciphers &amp;nbsp;EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!EXPORT:!DES:!3DES:!MD5:!RC4:!DSS:!SHA1;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;# Perfect Forward Security (PFS)用パラメータ&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;ssl_dhparam /etc/nginx/ssl/dhparam.pem;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; #&amp;nbsp;Online Certificate Status Protocol(OCSP)有効化&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ssl_stapling on;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ssl_stapling_verify on;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;resolver 8.8.8.8;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; # HTTP Strict Transport Security(HSTS)有効化&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;add_header Strict-Transport-Security &#39;max-age=31536000; includeSubDomains;&#39;;&lt;br /&gt;
}&lt;/div&gt;
&lt;div&gt;
========== ここまで ==========&lt;br /&gt;
&lt;br /&gt;
(2)80ポートの扱い変更&lt;br /&gt;
最初に作成した/etc/nginx/conf.d/default.confの末尾のコメントをはずしポート80へのhttpアクセスはポート443のhttpsにリダイレクトする&lt;br /&gt;
&lt;br /&gt;
この設定はお好みで。80をふさぐ場合は設定そのものを消す&lt;br /&gt;
&lt;br /&gt;
■nginx起動&lt;br /&gt;
service nginx restart&lt;br /&gt;
&lt;br /&gt;
■セキュリティ状態の確認&lt;br /&gt;
https://www.ssllabs.com/ssltest/index.html&lt;br /&gt;
ドメイン名を入力してテストしてもらう&lt;br /&gt;
&lt;br /&gt;
■let&#39;s encrypt 証明書自動更新&lt;br /&gt;
/etc/cron.monthly/letsencrypt.shを作成&lt;br /&gt;
&lt;br /&gt;
========== ここから ==========&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
/usr/share/letsencrypt/letsencrypt-auto renew --force-renew&lt;br /&gt;
service nginx reload&lt;br /&gt;
========== ここまで ==========&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/7724515878917838462/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/ubuntu-1404-nginx-ssl.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7724515878917838462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7724515878917838462'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/ubuntu-1404-nginx-ssl.html' title='ubuntu 14.04 + nginx + SSL立ち上げ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-684700252755349839</id><published>2016-02-14T01:44:00.003+09:00</published><updated>2016-02-14T01:44:50.069+09:00</updated><title type='text'>[Grails] postgresql エラーメッセージ</title><content type='html'>例外発生時に文字化け&lt;br /&gt;
&lt;br /&gt;
■対策&lt;br /&gt;
メッセージのロケール設定が悪いため発生。日本語だと厳しいので英語化&lt;br /&gt;
&lt;br /&gt;
Windows:&lt;br /&gt;
C:\Program Files\PostgreSQL\9.1\data\postgresql.conf&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
/etc/pgsql/postgresql.conf&lt;br /&gt;
&lt;br /&gt;
lc_messages = &#39;Japanese_Japan.932&#39; となっているのを lc_messages=&#39;C&#39; にする&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/684700252755349839/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/grails-postgresql.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/684700252755349839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/684700252755349839'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/grails-postgresql.html' title='[Grails] postgresql エラーメッセージ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-7873784650291441378</id><published>2016-02-14T01:44:00.002+09:00</published><updated>2016-02-14T01:44:38.895+09:00</updated><title type='text'></title><content type='html'>■Grails 2.4.0&lt;br /&gt;
・2.3.xからの変更点&lt;br /&gt;
　 upgradeコマンドが無くなった。&lt;br /&gt;
　 →バージョンアップはset-application-versionコマンドで行うこと&lt;br /&gt;
　　　またはapplication.propertiesを開いてバージョンを手動で上げる。このファイルを保存すると自動でアップデートが走り出す。&lt;br /&gt;
&lt;br /&gt;
■spring-security-core&lt;br /&gt;
・1.xからの変更点 &lt;br /&gt;
　パッケージが変更。grails.plugin.springsecurity.annotation.Securedが基本になった&lt;br /&gt;
　さらにメソッドに対してのみ@Securedアノーテーションが使用可能に。&lt;br /&gt;
　→web flowに対して設定できなくなった。さてどうしよう。&lt;br /&gt;
&lt;br /&gt;
　Login/LogoutControllerがプラグイン埋め込みになった。自動生成スクリプトが無くなった。&lt;br /&gt;
　→自作のControllerに変更は可能。Config.groovyで指定するらしい&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/7873784650291441378/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/grails-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7873784650291441378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7873784650291441378'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/grails-2.html' title=''/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-3813751258841510314</id><published>2016-02-14T01:44:00.001+09:00</published><updated>2016-02-14T01:44:21.443+09:00</updated><title type='text'>Ubuntu 12.04 へのドメイン名の反映</title><content type='html'>■さくら VPS設定&lt;br /&gt;
&lt;div&gt;
・ドメイン名登録&lt;/div&gt;
&lt;div&gt;
　コントロールパネル画面右上の「ネームサーバ登録」を選択。取得したドメイン名をテキストフィールドに入力して送信。&lt;/div&gt;
&lt;div&gt;
　そうすると自動でさくらのDNSに登録される。&lt;/div&gt;
&lt;div&gt;
　www. mail. などのサブドメインも登録してくれる。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
・逆引き登録&lt;/div&gt;
&lt;div&gt;
　コントロールパネルの右「設定」から「ホスト名逆引き登録」を選択&lt;/div&gt;
&lt;div&gt;
　標準ホスト名にチェックが付いているが、カスタムに変更して取得したドメイン名を入力する&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
■Ubuntu設定&lt;/div&gt;
&lt;div&gt;
　12.04からresolverの設定方法が変更になったらしい。&lt;/div&gt;
&lt;div&gt;
　/etc/network/interfaces にresolver情報も記述する.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
iface eth0 inet static&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; address ****&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; netmask ****&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; network ****&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; broadcast ****&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gateway ****&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # dns-* options are implemented by the resolvconf package, if installed&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dns-nameservers ****&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dns-search ****&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
という形に記述する。dns-nameservers にはさくらVPSのDNSサーバアドレスを記述&lt;/div&gt;
&lt;div&gt;
dns-search にはサーバが所属するドメインを複数記述する。&lt;/div&gt;
&lt;div&gt;
通常はhostname -f で取得できる結果と同じものを指定する。&lt;/div&gt;
&lt;div&gt;
単一のドメインに所属であれば、dns-domainを書けば良いらしい。&lt;/div&gt;
&lt;div&gt;
一応、さくら標準のホスト名でも検索できるように2つのドメインを指定&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/3813751258841510314/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/ubuntu-1204.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3813751258841510314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3813751258841510314'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/ubuntu-1204.html' title='Ubuntu 12.04 へのドメイン名の反映'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-4492729173693877393</id><published>2016-02-14T01:44:00.000+09:00</published><updated>2016-02-14T01:44:04.308+09:00</updated><title type='text'>[番外編] Tomcat ログ出力</title><content type='html'>■Tomcatログ設定&lt;br /&gt;
ローテーションはtomcatでは行わない&lt;br /&gt;
&lt;br /&gt;
設定 /usr/java/tomcat/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Valve className=&quot;org.apache.catalina.valves.AccessLogValve&quot; directory=&quot;logs&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;prefix=&quot;localhost_access_log.&quot; suffix=&quot;.txt&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pattern=&quot;%h %l %u %t &amp;amp;quot;%r&amp;amp;quot; %s %b&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resolveHost=&quot;false&quot; &lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;rotatable=&quot;false&quot;&lt;/b&gt;&lt;/span&gt; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
■ログローテーション&lt;br /&gt;
&amp;nbsp;logrotate に任せる。&lt;br /&gt;
&lt;br /&gt;
設定 /etc/logrotate.d/tomcat&lt;br /&gt;
&lt;br /&gt;
/var/log/tomcat/*.out {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; copytruncate&lt;br /&gt;
&amp;nbsp; &amp;nbsp; missingok&lt;br /&gt;
&amp;nbsp; &amp;nbsp; notifempty&lt;br /&gt;
&amp;nbsp; &amp;nbsp; compress&lt;br /&gt;
&amp;nbsp; &amp;nbsp; rotate 8&lt;br /&gt;
&amp;nbsp; &amp;nbsp; weekly&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
(意味)&lt;br /&gt;
copytruncate --- コピー元ログはローテーション後に切り詰める&lt;br /&gt;
missingok &amp;nbsp; &amp;nbsp; &amp;nbsp; --- ログが無くてもエラーにしない&lt;br /&gt;
notifempty &amp;nbsp; &amp;nbsp; --- ログが空の場合はローテーションしない&lt;br /&gt;
compress &amp;nbsp; &amp;nbsp; &amp;nbsp;--- ローテーションファイルは圧縮&lt;br /&gt;
rotate 8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--- ローテーションは8回分保存&lt;br /&gt;
weekly &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--- ローテーションは週1回実行&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/4492729173693877393/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/tomcat.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/4492729173693877393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/4492729173693877393'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2016/02/tomcat.html' title='[番外編] Tomcat ログ出力'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-6914880278203454776</id><published>2015-08-11T15:03:00.000+09:00</published><updated>2015-08-11T15:03:21.064+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="Clang"/><category scheme="http://www.blogger.com/atom/ns#" term="LLVM"/><title type='text'>ARMクロスコンパイル用clang</title><content type='html'>■ソース取得&lt;br /&gt;
・binutils&lt;br /&gt;
&lt;a href=&quot;http://ftp.gnu.org/gnu/binutils/&quot;&gt;http://ftp.gnu.org/gnu/binutils/&lt;/a&gt;&lt;br /&gt;
上記から最新バージョンのtarアーカイブ取得&lt;br /&gt;
&lt;br /&gt;
・LLVM他 &lt;br /&gt;
gitで取得&lt;br /&gt;
&lt;br /&gt;
git clone http://llvm.org/git/llvm&lt;br /&gt;
cd tools&lt;br /&gt;
git clone http://llvm.org/git/clang&lt;br /&gt;
git clone http://llvm.org/git/lldb&lt;br /&gt;
&lt;br /&gt;
■ビルド&lt;br /&gt;
・binutils&lt;br /&gt;
cd binutils&lt;br /&gt;
mkdir build&lt;br /&gt;
../configure --target=arm-eabihf --enable-threads --enable-shared&lt;br /&gt;
make; make install&lt;br /&gt;
&lt;br /&gt;
(注意)&lt;br /&gt;
../configure --target=arm-eabihf --enable-targets=arm とするとエラー発生&lt;br /&gt;
複数ARM用のビルド設定は出来ない様子&lt;br /&gt;
&lt;br /&gt;
・clang, llvm, lldb&lt;br /&gt;
cd llvm&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
&lt;br /&gt;
../configure --target=arm-eabihf --enable-threads --enable-shared --enable-optimized --disable-assertions --with-abi=aapcs-vfp --with-cpu=cortex-a9 --with-float=hard --with-fpu=neon&lt;br /&gt;
make; make install&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/6914880278203454776/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/08/armclang.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/6914880278203454776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/6914880278203454776'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/08/armclang.html' title='ARMクロスコンパイル用clang'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-68809158688216892</id><published>2015-08-05T21:18:00.001+09:00</published><updated>2015-08-05T21:20:47.632+09:00</updated><title type='text'>ドメイン名の取得とサーバー証明書</title><content type='html'>■経緯&lt;br /&gt;
　VPSのサーバー証明書を取るのに必要になった&lt;br /&gt;
　→さくらVPSのデフォルトドメインでKingSSLのサーバー証明書を取ろうとしたらフィッシング審査ではじかれたため&lt;br /&gt;
　→sakura.ne.jpがかつてフィッシングサーバとして使われたからか？&lt;br /&gt;
&lt;br /&gt;
■取得先&lt;br /&gt;
&lt;strike&gt;　お名前どっとこむ&lt;/strike&gt;&lt;br /&gt;
&lt;strike&gt;&amp;nbsp;　割と安いしメジャーな様子&lt;/strike&gt;&lt;br /&gt;
　→安いと思いきや罠あり。Whois代行がドメイン登録時は無料だが更新後から1000円/年かかる&lt;br /&gt;
　　これはドメイン更新費用より高く割に合わない&lt;br /&gt;
&lt;br /&gt;
　ムームードメイン&lt;br /&gt;
　　こちらもメジャーなうえ、Whois代行が無料。&lt;br /&gt;
　　登録時の費用はお名前ドットコムより高いが更新も考えるとこちらの方が安い&lt;br /&gt;
&lt;br /&gt;
(補足)&lt;br /&gt;
&amp;nbsp;お名前ドットコムもムームードメインもどちらもGMOのグループ会社&lt;br /&gt;
　サービス内容については大差無い &lt;br /&gt;
&lt;br /&gt;
■取得契約内容&lt;br /&gt;
・TLD(Top Level Domain): 値段と目的で .workにする&lt;br /&gt;
・Whois代行: ON&lt;br /&gt;
&amp;nbsp; Whois代行とはドメイン取得所在地、所有者情報を個人名から登録代行業者に変更すること&lt;br /&gt;
&lt;br /&gt;
■契約後の設定&lt;br /&gt;
・さくらVPSドメイン設定から取得したドメイン名を登録&lt;br /&gt;
　その際にさくらのDNSサーバアドレスが表示されるので控えておく&lt;br /&gt;
　今回はns1.dns.ne.jp, ns2.dns.ne.jp だった&lt;br /&gt;
&lt;br /&gt;
・ムームードメインの設定から外部DNSを使用を選択&lt;br /&gt;
　さくらのDNSサーバアドレス2つを登録する&lt;br /&gt;
&lt;br /&gt;
■SSLサーバ証明書&lt;br /&gt;
・秘密鍵生成&lt;br /&gt;
　　openssl genrsa -des3 -out [秘密鍵ファイル名] 4096&lt;br /&gt;
　　鍵にパスフレーズをつけないのであれば-des3オプションは不要&lt;br /&gt;
&lt;br /&gt;
・CSR生成&lt;br /&gt;
　　openssl req -new -key [秘密鍵ファイル名] -out [出力CSRファイル名.csr]&lt;br /&gt;
&lt;br /&gt;
・証明書要求&lt;br /&gt;
　今回はKingSSLにした。安いので&lt;br /&gt;
　申し込みページのCSR欄に生成したCSRをエディタで表示した内容をコピーペーストする&lt;br /&gt;
&lt;br /&gt;
　簡易ドメイン審査が行われた後にドメイン宛にメールが送られる。&lt;br /&gt;
　送り先アドレスはpostmaster@やwebmaster@が選択できる&lt;br /&gt;
　サーバー側でpostfixを動作させてメールを受け取れるようにしておくこと&lt;br /&gt;
　念のため/etc/aliases でローカルアカウントと外部メールの両方に転送しておくといいかもしれない&lt;br /&gt;
　/etc/aliasesの転送先はカンマ区切りで複数指定できる&lt;br /&gt;
&lt;br /&gt;
・申し込み後に承認確認メールが来るので承認URLをブラウザで開いて確定する&lt;br /&gt;
　確定後に証明書情報が送られてくる。&lt;br /&gt;
&lt;br /&gt;
■クライアント証明書&lt;br /&gt;
・秘密鍵生成&lt;br /&gt;
　openssl  genrsa  -out [キーファイル名] 4096&lt;br /&gt;
&lt;br /&gt;
・CSR生成&lt;br /&gt;
&amp;nbsp; openssl req -new -key [キーファイル名] -out [CSRファイル名]&lt;br /&gt;
&lt;br /&gt;
・署名&lt;br /&gt;
&amp;nbsp; openssl ca -in [CSRファイル名] -config /etc/ssl/openssl.cnf -out [クライアント証明書ファイル名]&lt;br /&gt;
&lt;br /&gt;
■はまった点&lt;br /&gt;
　メールを外部転送しなかったので添付ファイルを開くのに苦労した。&lt;br /&gt;
　コマンドラインからメールを開くにはbase64 contentの部分だけ抜き出してファイル保存をする&lt;br /&gt;
　そして以下のコマンドで復号する&lt;br /&gt;
&amp;nbsp; openssl base64 -d -in &amp;lt;infile&amp;gt; -out &amp;lt;outfile&amp;gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/68809158688216892/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/08/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/68809158688216892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/68809158688216892'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/08/blog-post.html' title='ドメイン名の取得とサーバー証明書'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-2977460738499551614</id><published>2015-07-23T01:18:00.001+09:00</published><updated>2015-07-23T01:18:27.474+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="Clang"/><category scheme="http://www.blogger.com/atom/ns#" term="LLVM"/><category scheme="http://www.blogger.com/atom/ns#" term="msys2"/><title type='text'>msys2 - clang作成</title><content type='html'>■準備&lt;div&gt;
以下のパッケージをインストール。64bit版を想定&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
・mingw-w64-x86_64-toolchain&lt;/div&gt;
&lt;div&gt;
　→32ビットにしたいならmingw-w64-i686-toolchain&lt;/div&gt;
&lt;div&gt;
・diffutils&lt;/div&gt;
&lt;div&gt;
・git&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
■llvmファイル一式取得&lt;/div&gt;
&lt;div&gt;
適当なワークフォルダに移動してgitで取得&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
git clone http://llvm.org/git/llvm&lt;/div&gt;
&lt;div&gt;
cd tools&lt;/div&gt;
&lt;div&gt;
git clone http://llvm.org/git/clang&lt;/div&gt;
&lt;div&gt;
git clone http://llvm.org/git/libcxx&lt;/div&gt;
&lt;div&gt;
cd ../projects&lt;/div&gt;
&lt;div&gt;
git clone http://llvm.org/git/compiler-rt&lt;/div&gt;
&lt;div&gt;
cd ..&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
■ビルド&lt;/div&gt;
&lt;div&gt;
ARMクロスコンパイルもしたいのでx86, x86_64, arm, arm64をターゲットとしてビルドする&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
mkdir build&lt;/div&gt;
&lt;div&gt;
cd build&lt;/div&gt;
&lt;div&gt;
../configure --enable-targets=x86_64,x86,arm,aarch64 --disable-assertions --enable-optimized&lt;/div&gt;
&lt;div&gt;
make; make install&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/2977460738499551614/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/07/msys2-clang.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2977460738499551614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2977460738499551614'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/07/msys2-clang.html' title='msys2 - clang作成'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-3900503143788764030</id><published>2015-07-23T01:09:00.001+09:00</published><updated>2015-07-23T01:18:45.814+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="msys2"/><title type='text'>msys2インストール</title><content type='html'>■インストール後アップデート&lt;br /&gt;
pacman -Suy&lt;br /&gt;
&lt;br /&gt;
もし下記エラーが出る場合は&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;error: GPGME error: No data
error: GPGME error: No data
error: GPGME error: No data&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;rm -r /var/lib/pacman/sync
pacman -Syuf&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;アップデート後はターミナルを再起動する &lt;/code&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/3900503143788764030/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/07/msys2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3900503143788764030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3900503143788764030'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/07/msys2.html' title='msys2インストール'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-8998470862910859608</id><published>2015-04-29T22:52:00.000+09:00</published><updated>2015-04-29T22:52:45.551+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache2"/><title type='text'>Apache2のセキュリティ設定(基本)</title><content type='html'>■ヘッダ情報削減&lt;br /&gt;
・HTTPレスポンスヘッダのサーバ情報を減らす&lt;br /&gt;
&amp;nbsp;/etc/apache2/conf-available/security.conf&lt;br /&gt;
&lt;br /&gt;
ServerTokens OS　→ &amp;nbsp;ServerTokens Prod&lt;br /&gt;
ヘッダにApacheやOSのバージョン情報を入れない&lt;br /&gt;
&lt;br /&gt;
・ヘッダ識別子非表示&lt;br /&gt;
&amp;nbsp;ServerSignature On &amp;nbsp;→ &amp;nbsp;ServerSignature Off&lt;br /&gt;
&lt;br /&gt;
■Apacheトップページの非表示&lt;br /&gt;
http://ドメイン名/ で表示されるApacheのサンプルページの非表示&lt;br /&gt;
&lt;br /&gt;
/etc/apache2/conf-available/security.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /&amp;gt;&lt;br /&gt;
&amp;nbsp; AllowOverride None&lt;br /&gt;
&amp;nbsp; Order Deny,Allow&lt;br /&gt;
&amp;nbsp; Deny from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これがコメントアウトされていたらはずす。無ければ追記&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/8998470862910859608/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/04/apache2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/8998470862910859608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/8998470862910859608'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/04/apache2.html' title='Apache2のセキュリティ設定(基本)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-9007958400916495065</id><published>2015-04-29T22:51:00.000+09:00</published><updated>2015-04-29T22:53:09.032+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache2"/><category scheme="http://www.blogger.com/atom/ns#" term="git"/><category scheme="http://www.blogger.com/atom/ns#" term="gitolite3"/><category scheme="http://www.blogger.com/atom/ns#" term="openssl"/><title type='text'>[Ubuntu] Gitolite3 + Apache2 + SSLクライアント認証</title><content type='html'>■目的&lt;br /&gt;
自分で立てたgitサーバーに対してhttps プロトコルでクライアント認証アクセスする&lt;br /&gt;
&lt;br /&gt;
■インストール&lt;br /&gt;
Apache2はインストール済みとする&lt;br /&gt;
&lt;br /&gt;
・Gitolite3インストール&lt;br /&gt;
&amp;nbsp; apt-get install gitolite3&lt;br /&gt;
　インストール中に管理者の公開鍵パスを要求されるので適当にSSHログインできる公開鍵を指定する&lt;br /&gt;
　→これは後で変更も可能なので適当でOK&lt;br /&gt;
&lt;br /&gt;
　インストールが完了するとGitolite3のファイル群は /usr/share/gitolite3&lt;br /&gt;
　環境は /var/lib/gitolite3 に作成される。&lt;br /&gt;
&lt;br /&gt;
■Apache2準備&lt;br /&gt;
まずはApache2の準備&lt;br /&gt;
&lt;br /&gt;
・ apache-suexec-custom のインストール&lt;br /&gt;
&amp;nbsp; &amp;nbsp;apt-get install apache-suexec-custom&lt;br /&gt;
&amp;nbsp; &amp;nbsp;a2enmod suexec&lt;br /&gt;
&lt;br /&gt;
・mod_cgid 有効化&lt;br /&gt;
&amp;nbsp; a2enmod cgid&lt;br /&gt;
&lt;br /&gt;
・gitolite ラッパースクリプト用意&lt;br /&gt;
&amp;nbsp; DocumentRoot が /var/www だとしたら /var/www/git というフォルダを作成する。&lt;br /&gt;
&amp;nbsp; ここにスクリプトを追加する。 &amp;nbsp;gitolite-suexec-wrapper.sh とする。&lt;br /&gt;
　→スクリプトを置くフォルダは/var/www/git でなくても良いが、DocumentRootで指定したフォルダのサブフォルダでないとsuexecがスクリプトを実行できないので注意&lt;br /&gt;
&lt;br /&gt;
(gitolite-suexec-wrapper.sh)&lt;br /&gt;
===============================================================================&lt;br /&gt;
&amp;nbsp; #!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; export GIT_PROJECT_ROOT=&quot;/var/lib/gitolite3/repositories&quot;&lt;br /&gt;
&amp;nbsp; export GITOLITE_HTTP_HOME=&quot;var/lib/gitolite3&quot;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; exec /usr/share/gitolite3/gitolite-shell&lt;br /&gt;
===============================================================================&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; chown gitolite3:gitolite3 gitolite-suexec-wrapper.sh&lt;br /&gt;
&amp;nbsp; chmod +x /var/gitolite/gitolite-suexec-wrapper.sh&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; として所有者、実行権限を変更する。&lt;br /&gt;
&lt;br /&gt;
・SSLクライアント認証設定&lt;br /&gt;
&amp;nbsp; VirtualHost の設定に以下を追加&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
SSLEngine on&lt;br /&gt;
SSLCertificateFile &amp;lt;サーバー証明書のパス&amp;gt;&lt;br /&gt;
SSLCertificateKeyFile &amp;lt;サーバ秘密鍵のパス&amp;gt;&lt;br /&gt;
SSLCACertficateFile &amp;lt;CA証明書のパス&amp;gt;&lt;br /&gt;
SSLVerifyClient require&lt;br /&gt;
SSLUserName SSL_CLIENT_S_DN_CN&lt;br /&gt;
&lt;br /&gt;
SuexecUserGroup gitolite3:gitolite3&lt;br /&gt;
ScriptAlias /git /var/www/git/gitolite-suexec-wrapper.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /git&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Order allow,deny&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Allow from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
===============================================================================&lt;br /&gt;
&lt;br /&gt;
CAはオレオレCAで良い。SSLUserName設定はクライアント証明書のCNをユーザー名として扱うことの宣言。&lt;br /&gt;
環境変数REMOTE_USERもこれによって証明書CNに置き換わる。&lt;br /&gt;
&lt;br /&gt;
■Gitolite3準備&lt;br /&gt;
次にGitolite3側の準備&lt;br /&gt;
&lt;br /&gt;
・リポジトリアクセス権設定&lt;br /&gt;
Gitolite3のインストールによってgitolite-admin リポジトリが自動で生成されているはず。&lt;br /&gt;
まずはこれをローカルでclone する。そして conf/gitolite.conf を編集する。&lt;br /&gt;
例えばtesting リポジトリの設定が以下のようになっていたら&lt;br /&gt;
&lt;br /&gt;
repo testing&lt;br /&gt;
&amp;nbsp; &amp;nbsp; RW+ &amp;nbsp; &amp;nbsp;= @all&lt;br /&gt;
&lt;br /&gt;
↓&lt;br /&gt;
&lt;br /&gt;
repo testing&lt;br /&gt;
&amp;nbsp; &amp;nbsp; RW+ &amp;nbsp; &amp;nbsp;= @all&lt;br /&gt;
&amp;nbsp; &amp;nbsp; R &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= daemon&lt;br /&gt;
&lt;br /&gt;
というようにdaemonユーザーに対してRead権限を付与する。こうしないとApacheからGitolite3管理のリポジトリが読み出せない。Apacheからアクセスしたい全てのリポジトリにR = daemonを付与する。&lt;br /&gt;
変更したらcommit, push して反映&lt;br /&gt;
&lt;br /&gt;
また当然であるが、クライアント証明書のCNと同じ名前のアクセス権限がリポジトリに設定されている必要がある。例えば、developというメンバーがクライアント認証でアクセスする場合にはtesting リポジトリの例で言うと&lt;br /&gt;
&lt;br /&gt;
repo testing&lt;br /&gt;
&amp;nbsp; &amp;nbsp; RW &amp;nbsp; &amp;nbsp;= develop&lt;br /&gt;
&amp;nbsp; &amp;nbsp; R &amp;nbsp; &amp;nbsp; &amp;nbsp;= daemon&lt;br /&gt;
&lt;br /&gt;
とする。このときtestingリポジトリにApacheからはクライアント証明書のCNがdevelopでないとリポジトリにアクセスできない。&lt;br /&gt;
&lt;br /&gt;
■クライアント側設定&lt;br /&gt;
・git設定ファイルの変更&lt;br /&gt;
(Linux)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; ~/.gitconfig&lt;br /&gt;
&lt;br /&gt;
(Windows)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; C:/Users/&amp;lt;ユーザー名&amp;gt;/.gitconfig&lt;br /&gt;
&lt;br /&gt;
以下の設定を追記する&lt;br /&gt;
===============================================================================&lt;br /&gt;
[http]&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;sslCert = &amp;lt;クライアント証明書ファイルパス&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;sslKey = &amp;lt;クライアント秘密鍵ファイルパス&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;sslCaInfo = &amp;lt;CA証明書ファイルパス&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;sslVerify = false&lt;br /&gt;
===============================================================================&lt;br /&gt;
&lt;br /&gt;
最後のsslVefiry = false はオレオレCAの場合に必要。ちゃんと認証機関からCA証明書を取得しているなら不要。&lt;br /&gt;
&lt;br /&gt;
■実行&lt;br /&gt;
以上の設定が完了していれば以下のコマンドでリポジトリの取得が可能なはず。&lt;br /&gt;
&lt;br /&gt;
git clone https://&amp;lt;ドメイン名&amp;gt;/git/&amp;lt;リポジトリ名&amp;gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/9007958400916495065/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/04/ubuntu-gitolite3-apache2-ssl.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/9007958400916495065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/9007958400916495065'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2015/04/ubuntu-gitolite3-apache2-ssl.html' title='[Ubuntu] Gitolite3 + Apache2 + SSLクライアント認証'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-3324343692891783713</id><published>2014-06-15T18:23:00.001+09:00</published><updated>2016-02-13T01:23:50.735+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AM335x"/><category scheme="http://www.blogger.com/atom/ns#" term="ARM"/><category scheme="http://www.blogger.com/atom/ns#" term="BeagleBone"/><category scheme="http://www.blogger.com/atom/ns#" term="Cortex-A8"/><category scheme="http://www.blogger.com/atom/ns#" term="JTAG"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenOCD"/><title type='text'>Beagle Boneのデバッグ</title><content type='html'>■openocd 0.7.0&lt;br /&gt;
openocd -f scripts/board/ti_beaglebone.cfg -c &quot;init&quot; -c &quot;reset init&quot; -c &quot;arm core_state arm&quot;&lt;br /&gt;
&lt;br /&gt;
上記コマンドでopenocdが接続できる。&lt;br /&gt;
最後のコマンドはThumbモードからARMモードにするだけなので無くてもいい。&lt;br /&gt;
&lt;br /&gt;
接続できない場合はopenocd ドライバフォルダにあるftdi2232ドライバのインストールをまず行う。&lt;br /&gt;
ドライバは自動認識しないので手動インストールでopenocdドライバフォルダにあるinfファイルを選択し、texas instrument xds100v2を選択してインストールする。&lt;br /&gt;
&lt;br /&gt;
上記の方法でgdbからデバッグできるが、それには前提がある。&lt;br /&gt;
それはBeagleBone付属のＳＤカードからブートした後である。&lt;br /&gt;
ただしLinuxは起動してはいけない。&lt;br /&gt;
&lt;br /&gt;
U-Bootが起動してLinuxロードの前にキー操作をしてU-Bootコンソールの状態に止めておく。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
■gdb&lt;br /&gt;
Eclipseでgdbを使ってHardware Debuggingを行う際の注意。&lt;br /&gt;
Window-Preference-Run/Debug-Launching-Default Launchers-GDB Hardware Debuggingの設定&lt;br /&gt;
Eclipseのバージョンによってはこの設定がGDB(DSF) Hardware Debugging Launcherになっている。&lt;br /&gt;
しかしOpenOCD-gdbでデバッグする場合はLegacy GDB Hardware Debugging Launcherの設定でないとうまく動作しない。&lt;br /&gt;
&lt;br /&gt;
■おまけ&lt;br /&gt;
U-Bootコンソールの起動を待ってからデバッグする理由&lt;br /&gt;
最初はDDRの初期化が行われていない。&lt;br /&gt;
したがってデバッグするプログラムをメモリにロードできないからである。&lt;br /&gt;
それでもロードしようとすると jtag-dap sticky error が発生する。&lt;br /&gt;
&lt;br /&gt;
ＳＤカードでのブートなしにロードしようとする場合はopenocd起動時にメモリの初期化コマンドを追加する必要がある。&lt;br /&gt;
その方法は調査中。&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/3324343692891783713/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2014/06/beagle-bone.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3324343692891783713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3324343692891783713'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2014/06/beagle-bone.html' title='Beagle Boneのデバッグ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-3928695227210685143</id><published>2013-05-14T13:50:00.001+09:00</published><updated>2013-05-14T13:50:26.864+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Clang"/><category scheme="http://www.blogger.com/atom/ns#" term="LLVM"/><title type='text'>ビルド環境移行 - clang準備</title><content type='html'>CodeSourcery のgcc環境からclangへ乗り換えを検討する。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
■Clangダウンロード&lt;br /&gt;
&amp;nbsp; &lt;a href=&quot;http://llvm.org/releases/download.html#3.2&quot;&gt;LLVMのClangサイト&lt;/a&gt;から最新版Ver. 3.2のダウンロード&lt;br /&gt;
　&lt;a href=&quot;http://llvm.org/releases/3.2/clang+llvm-3.2-x86-mingw32-EXPERIMENTAL.tar.gz&quot;&gt;&lt;i&gt;Experimental&lt;/i&gt; Clang Binaries for Mingw32/x86&lt;/a&gt;が対象ファイル&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
■準備&lt;br /&gt;
&amp;nbsp; まずClangを動作させるのに必要なMinGWをインストールする。&lt;br /&gt;
&lt;br /&gt;
　注意すべきは&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;必ずC:/MinGWにインストール&lt;/b&gt;&lt;/span&gt;すること。&lt;br /&gt;
　現状のMinGW版Clangは上記フォルダにMinGWがあることがハードコードされている。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; 次にClangが使うgccのライブラリの準備&lt;br /&gt;
　現状Clang Ver. 3.2のWindowsビルドがサポートしているgccライブラリのバージョンは以下の通り&lt;br /&gt;
　4.3.0, 4.4.0, 4.5.0, 4.5.2, 4.6.1, 4.6.2&lt;br /&gt;
　&lt;br /&gt;
　これはclangのソースコード /clang/lib/Frontend/InitHeaderSearch.cpp L400あたりにハードコードされている。&lt;br /&gt;
&amp;nbsp; そこでMsysプロンプトから以下のコマンドを実行して該当バージョンのgccインストール&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;mingw-get install gcc=4.6.2-1&lt;br /&gt;
&amp;nbsp;mingw-get install g++=4.6.2-1&lt;br /&gt;
&lt;br /&gt;
　既に4.7.0とかがインストールされていてエラーになってしまった場合は下記&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;mingw-get upgrade gcc=4.6.2-1&lt;br /&gt;
&amp;nbsp;mingw-get upgrade g++=4.6.2-1&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
■インストール&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;ダウンロードしたClangのファイル一式を適当な場所に展開するだけ。&lt;br /&gt;
&amp;nbsp;/binフォルダにパスを通しておく&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;以下コマンドで動作確認&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; clang --version&lt;br /&gt;
&lt;br /&gt;clang version 3.2 (tags/RELEASE_32/final)&lt;br /&gt;Target: i686-w64-mingw32&lt;br /&gt;Thread model: posix&lt;br /&gt;
&lt;br /&gt;
と出たらインストール成功&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/3928695227210685143/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/05/clang.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3928695227210685143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3928695227210685143'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/05/clang.html' title='ビルド環境移行 - clang準備'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-2983219711928472600</id><published>2013-03-31T01:11:00.001+09:00</published><updated>2013-06-08T22:32:11.825+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BeagleBoard"/><category scheme="http://www.blogger.com/atom/ns#" term="Flyswatter"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenOCD"/><title type='text'>Flyswatter2 - OpenOCD 0.6.1</title><content type='html'>TincanTools Flyswatter2 とOpenOCD 0.6.1 によるJTAGデバッグについて&lt;br /&gt;
&lt;br /&gt;
起動コマンドは以下になる&lt;br /&gt;
openocd -f scripts/interface/flyswatter2.cfg -f scripts/board/ti_beagleboard.cfg&lt;br /&gt;
&lt;br /&gt;
だが、これはうまく起動できない場合が多い。&lt;br /&gt;
実行すると以下のようなエラーメッセージが表示される。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;http://openocd.sourceforge.net/doc/doxygen/bugs.html&lt;br /&gt;
Info : only one transport option; autoselect &#39;jtag&#39;&lt;br /&gt;
RCLK - adaptive&lt;br /&gt;
Warn : omap3530.dsp: huge IR length 38&lt;br /&gt;
RCLK - adaptive&lt;br /&gt;
trst_only separate trst_push_pull&lt;br /&gt;
Info : max TCK change to: 30000 kHz&lt;br /&gt;
Info : RCLK (adaptive clock speed)&lt;br /&gt;
Error: couldn&#39;t read enough bytes from FT2232 device (0 &amp;lt; 81)&lt;br /&gt;
Error: couldn&#39;t read from FT2232&lt;br /&gt;
in procedure &#39;runtest&#39;&lt;br /&gt;
Error: JTAG scan chain interrogation failed: all ones&lt;br /&gt;
Error: Check JTAG interface, timings, target power, etc.&lt;br /&gt;
Error: Trying to use configured scan chain anyway...&lt;br /&gt;
Error: couldn&#39;t read enough bytes from FT2232 device (0 &amp;lt; 2)&lt;br /&gt;
Error: couldn&#39;t read from FT2232&lt;br /&gt;
Warn : Bypassing JTAG setup events due to errors&lt;br /&gt;
RCLK - adaptive&lt;br /&gt;
Error: couldn&#39;t read enough bytes from FT2232 device (0 &amp;lt; 81)&lt;br /&gt;
Error: couldn&#39;t read from FT2232&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
これはJTAG adaptive clockという仕組みがうまくbeagleboardとかみ合わない場合に発生するらしい。&lt;br /&gt;
詳しくは&lt;a href=&quot;http://www.tincantools.com/wiki/OpenOCD_Troubleshooting:_JTAG_TAP_SCRATCH&quot;&gt;TincanToolsの説明&lt;/a&gt;を参照&lt;br /&gt;
&lt;br /&gt;
エラーが発生してしまう場合はTincanToolsが公開している&lt;a href=&quot;http://www.tincantools.com/w/images/a/a9/omap3530_norclk.cfg&quot;&gt;adaptive clockを無効にした設定ファイル&lt;/a&gt;&lt;a class=&quot;internal&quot; href=&quot;http://www.tincantools.com/w/images/a/a9/omap3530_norclk.cfg&quot; style=&quot;background-color: white; background-image: none; color: #5a3696; font-family: sans-serif; font-size: 19px; line-height: 19.046875px; text-align: -webkit-center; text-decoration: none;&quot; title=&quot;omap3530 norclk.cfg&quot;&gt;omap3530_norclk.cfg&lt;/a&gt;を用いる。&lt;br /&gt;
ダウンロードした設定ファイルは OpenOCDフォルダ/scripts/target/omap3530_norclk.cfgに保存&lt;br /&gt;
&lt;br /&gt;
この設定ファイルを使って以下のコマンドで起動する&lt;br /&gt;
openocd -f scripts/interface/flyswatter2.cfg -f scripts/target/omap3530_norclk.cfg -c &quot;init&quot; -c &quot;reset init&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
以下のようなメッセージが表示されたら無事に起動&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)&lt;br /&gt;
Licensed under GNU GPL v2&lt;br /&gt;
For bug reports, read&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;http://openocd.sourceforge.net/doc/doxygen/bugs.html&lt;br /&gt;
Info : only one transport option; autoselect &#39;jtag&#39;&lt;br /&gt;
DEPRECATED! use &#39;adapter_khz&#39; not &#39;jtag_khz&#39;&lt;br /&gt;
adapter speed: 1000 kHz&lt;br /&gt;
Warn : omap3530.dsp: huge IR length 38&lt;br /&gt;
trst_only separate trst_push_pull&lt;br /&gt;
Info : max TCK change to: 30000 kHz&lt;br /&gt;
Info : clock speed 1000 kHz&lt;br /&gt;
Info : JTAG tap: omap3530.jrc tap/device found: 0x0b7ae02f (mfg: 0x017, part: 0xb7ae, ver: 0x0)&lt;br /&gt;
Info : JTAG tap: omap3530.dap enabled&lt;br /&gt;
Info : omap3530.cpu: hardware has 6 breakpoints, 2 watchpoints&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011140&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011150&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x54011150&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x540111c0&lt;br /&gt;
Error: JTAG-DP STICKY ERROR&lt;br /&gt;
Error: MEM_AP_CSW 0x80000042, MEM_AP_TAR 0x540111c0&lt;br /&gt;
DEPRECATED! use &#39;adapter_khz&#39; not &#39;jtag_khz&#39;&lt;br /&gt;
adapter speed: 1000 kHz&lt;br /&gt;
Info : JTAG tap: omap3530.jrc tap/device found: 0x0b7ae02f (mfg: 0x017, part: 0xb7ae, ver: 0x0)&lt;br /&gt;
Info : JTAG tap: omap3530.dap enabled&lt;br /&gt;
Error: cortex_a8_mmu: target not halted&lt;br /&gt;
Runtime Error: embedded:startup.tcl:20:&lt;br /&gt;
in procedure &#39;omap3530.cpu&#39;&lt;br /&gt;
in procedure &#39;ocd_bouncer&#39;&lt;br /&gt;
at file &quot;embedded:startup.tcl&quot;, line 20&lt;br /&gt;
&lt;br /&gt;
Warn : omap3530.cpu: ran after reset and before halt ...&lt;br /&gt;
Info : number of cache level 2&lt;br /&gt;
Error: cache l2 present :not supported&lt;br /&gt;
Error: mpdir not in multiprocessor format&lt;br /&gt;
target state: halted&lt;br /&gt;
target halted in ARM state due to debug-request, current mode: Supervisor&lt;br /&gt;
cpsr: 0xa00001d3 pc: 0x80e88508&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/2983219711928472600/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/03/flyswatter2-openocd-061.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2983219711928472600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/2983219711928472600'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/03/flyswatter2-openocd-061.html' title='Flyswatter2 - OpenOCD 0.6.1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-7408212857766804683</id><published>2013-01-29T11:12:00.000+09:00</published><updated>2013-01-29T11:12:43.716+09:00</updated><title type='text'>[番外編] Tomcat SSL通信</title><content type='html'>■Tomcat7でSSL通信&lt;br /&gt;
(1)SSLサーバ証明書要求&lt;br /&gt;
&amp;nbsp; ・秘密鍵生成&lt;br /&gt;
　　openssl genrsa -des3 -out [秘密鍵ファイル名] 4096&lt;br /&gt;
&lt;br /&gt;
　・CSR生成&lt;br /&gt;
　　openssl req -new -key [秘密鍵ファイル名] -out [出力CSRファイル名.csr]&lt;br /&gt;
&lt;br /&gt;
(2)サーバ証明書発行依頼&lt;br /&gt;
&amp;nbsp;・エンジョイSSLを使用。&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://www.e-ssldirect.com/product/rapidssl.php&quot;&gt;http://www.e-ssldirect.com/product/rapidssl.php&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;・CSRをテキスト表示して申込フォームに貼り付け&lt;br /&gt;
&amp;nbsp; &amp;nbsp; openssl req -noout -text -in [CSRファイル名] &lt;br /&gt;
&lt;br /&gt;
(3)証明書受取&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 指定した管理者メールアドレス(例えば webmaster@ホスト名)でメールを受け取れるようにする&lt;br /&gt;
　一時的にでOK&lt;br /&gt;
&lt;br /&gt;
　受け取ったメールアドレスに発行するためのURLが書いてあるのでそのページを見る&lt;br /&gt;
　そうすると審査が完了して証明書が発行される。&lt;br /&gt;
&lt;br /&gt;
　見に行ったページにサーバ証明書、中間CA証明書が書いてあるのでコピーして保存&lt;br /&gt;
&lt;br /&gt;
(4)証明書ファイル作成&lt;br /&gt;
&amp;nbsp; サーバ証明書、中間CA証明書、秘密鍵を1つにまとめたPKCS12形式ファイルを作成&lt;br /&gt;
　openssl pkcs12 -export -in [サーバ証明書ファイル] -inkey [秘密鍵] -certfile [中間CA証明書] -out [出力ファイル] &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; PEM形式にしたい場合&lt;br /&gt;
&amp;nbsp; openssl pkcs12 -in [上記出力ファイル] -out [ファイル名.pem]&lt;br /&gt;
&lt;br /&gt;
(5)Tomcat設定&lt;br /&gt;
&amp;nbsp;&amp;nbsp; [Tomcat Dir]/conf/server.xml&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;Connector&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; port=&quot;443&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protocol=&quot;HTTP/1.1&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scheme=&quot;https&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; secure=&quot;true&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keystoreFile=&quot;[PKCS12形式のキーストアファイル]&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keystorePass=&quot;[キーストアパスワード]&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keystoreType=&quot;PKCS12&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(6) 443ポート空け&lt;br /&gt;
&lt;br /&gt;
(7)Tomcat再起動&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/7408212857766804683/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/01/tomcat-ssl.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7408212857766804683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7408212857766804683'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/01/tomcat-ssl.html' title='[番外編] Tomcat SSL通信'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-7812604136109052320</id><published>2013-01-26T11:16:00.001+09:00</published><updated>2013-01-29T11:25:17.467+09:00</updated><title type='text'>[番外編] メールサーバ構築</title><content type='html'>■postfixによるSMTPサーバ(CentOS)&lt;br /&gt;
(1)インストール&lt;br /&gt;
&amp;nbsp;&amp;nbsp; yum install postfix&lt;br /&gt;
&lt;br /&gt;
(2)動作設定&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/postfix/main.cf&lt;br /&gt;
&lt;br /&gt;
&lt;table&gt;
  &lt;thead&gt;
&lt;tr&gt;
      &lt;th&gt;設定項目&lt;/th&gt;
      &lt;th&gt;内容&lt;/th&gt;
    &lt;/tr&gt;
&lt;/thead&gt;
  &lt;tbody&gt;
&lt;tr&gt;
      &lt;td&gt;ホスト名&lt;/td&gt;
      &lt;td&gt;myhostname = [自分のホスト名]&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
      &lt;td&gt;ドメイン名設定&lt;/td&gt;
      &lt;td&gt;mydomain = [自分のドメイン名]&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
      &lt;td&gt;メール送信先&lt;/td&gt;
      &lt;td&gt;myorigin = $myhostname&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
      &lt;td&gt;メール受信設定&lt;/td&gt;
      &lt;td&gt;inet_interfaces = all&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
      &lt;td&gt;メールの最終目的地&lt;/td&gt;
      &lt;td&gt;mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
      &lt;td&gt;リレー許可ドメイン&lt;/td&gt;
      &lt;td&gt;relay_domains = $mydestination&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
      &lt;td&gt;メール保存先&lt;/td&gt;
      &lt;td&gt;home_mailbox = Maildir/&lt;/td&gt;
    &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
(3)ポート設定&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 25番ポート空ける&lt;br /&gt;
&lt;br /&gt;
(4)alias設定&lt;br /&gt;
　postmaster, webmaster等の特別アカウントへのメールは通常rootに転送される&lt;br /&gt;
　これを本来のwebmasterユーザーで受信したい場合の設定&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; /etc/aliases の以下の記述をコメントアウト&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webmaster: root&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; newaliases コマンドで反映&lt;br /&gt;
&lt;br /&gt;
(5)MTA(Message Transfer Agent)確認＆切り替え&lt;br /&gt;
　複数のメール配信ソフトがインストールされている場合に行う。 &lt;br /&gt;
&amp;nbsp; 確認: alternatives --display mta&lt;br /&gt;
&amp;nbsp; 変更: alternatives --config mta &lt;br /&gt;
&lt;br /&gt;
(6)起動&lt;br /&gt;
&amp;nbsp;&amp;nbsp; /etc/init.d/postfix start&lt;br /&gt;
&lt;br /&gt;
■dovecotによるPOP3、IMAPサーバ構築&lt;br /&gt;
(1)インストール&lt;br /&gt;
&amp;nbsp;&amp;nbsp; yum install dovecot&lt;br /&gt;
&lt;br /&gt;
(2)動作設定&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/dovecot/conf.d/10-main.cf&lt;br /&gt;
&amp;nbsp; &amp;nbsp; /etc/dovecot/conf.d/auth-system.cf&lt;br /&gt;
&lt;br /&gt;
(3)ポート設定&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 110番ポート空ける&lt;br /&gt;
&lt;br /&gt;
(4)起動&lt;br /&gt;
&amp;nbsp;&amp;nbsp; /etc/init.d/dovecot start&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/7812604136109052320/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/01/smtp.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7812604136109052320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/7812604136109052320'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2013/01/smtp.html' title='[番外編] メールサーバ構築'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3326432116592463682.post-3832772182163894123</id><published>2012-08-10T00:10:00.000+09:00</published><updated>2012-08-17T12:18:21.025+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BeagleBoard"/><category scheme="http://www.blogger.com/atom/ns#" term="Cortex-A8"/><category scheme="http://www.blogger.com/atom/ns#" term="OMAP3530"/><title type='text'>ターミナル入力・・・・UART+MMU+割り込み(2)</title><content type='html'>続き。&lt;br /&gt;
&lt;br /&gt;
■仮想メモリ割り当て&lt;br /&gt;
設計したメモリマップにしたがって固定のページテーブルを作成する &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
■割り込み初期化手順&lt;br /&gt;
(1)CPUのIRQ割り込みハンドラを登録&lt;br /&gt;
(2)CPUの割り込み有効化&lt;br /&gt;
　asm (&quot;cpsie i&quot;);　でIRQ有効化&lt;br /&gt;
&lt;br /&gt;
(3)UARTにクロック供給&lt;br /&gt;
(4)UARTのIRQハンドラを登録 &lt;br /&gt;
(5)UARTのIRQ出力有効化&lt;br /&gt;
　受信割り込みのみ有効化する。&lt;br /&gt;
&amp;nbsp; &lt;a href=&quot;http://www.ti.com/jp/litv/pdf/spruf98v&quot;&gt;OMAP3530仕様書&lt;/a&gt;の2693ページ 17.6.1 UART/IrDA/CIRレジスタ　IER_REGを参照&lt;br /&gt;
&amp;nbsp; IER_REGに１(RHR_ITビット)を書き込み &lt;br /&gt;
&lt;br /&gt;
■割り込みハンドラ&lt;br /&gt;
IRQハンドラだけ作成&lt;br /&gt;
IRQ以外の割り込みは使用しないのでnop&lt;br /&gt;
ハンドラではレジスタをスタックに保存してIRQ処理に飛ぶ&lt;br /&gt;
&lt;br /&gt;
.extern interruptHandler&lt;br /&gt;
.global interruptVector&lt;br /&gt;
&lt;br /&gt;
_irq_entry:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; stmfd sp!, {r0 - r12, lr};&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r0, #6;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; bl interruptHandler;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ldmfd sp!, {r0 - r12, lr};&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; subs pc, lr, #4;&lt;br /&gt;
&lt;br /&gt;
interruptVector:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Invalid code&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Software Service.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Prefetch Abort&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Data Abort&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr pc, =_irq_entry;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; nop;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Fast IRQ&lt;br /&gt;
&lt;br /&gt;
■UART割り込みハンドラ&lt;br /&gt;
　UARTドライバの割り込みハンドラでは割り込み時にRHRから１文字読み取ってバッファに記録&lt;br /&gt;
&lt;br /&gt;
■サンプル&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/file/d/0ByuVJZEfzCRlVmVMbW9GRkYtZUE/edit&quot;&gt;ソースコード&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://thieves-of-beagles.blogspot.com/feeds/3832772182163894123/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://thieves-of-beagles.blogspot.com/2012/08/uartmmu2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3832772182163894123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3326432116592463682/posts/default/3832772182163894123'/><link rel='alternate' type='text/html' href='http://thieves-of-beagles.blogspot.com/2012/08/uartmmu2.html' title='ターミナル入力・・・・UART+MMU+割り込み(2)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>