Ubuntu 14.04 LTS での Kicad with Scripting Support のコンパイル

ボードを面付けするのにkicadPanelizerを使いたかったが,先日インストールしたKicadはPythonでのスクリプト機能がオフになっているようなので,再インストールを試みたところ,パッケージの問題でハマったのでメモ.

1)kicad-install.sh の以下のOPTSの行のコメントアウトを外し,有効にする.

# Python scripting, uncomment to enable
OPTS="$OPTS -DKICAD_SCRIPTING=ON -DKICAD_SCRIPTING_MODULES=ON -DKICAD_SCRIPTING_WXPYTHON=ON"


2)スクリプトを実行すると,おそらく Ubuntu 14.04 LTS の場合は以下のエラーが出て実行が中断してしまう.
E: Unable to locate package python-wxgtk3.0-dev
E: Couldn't find any package by regex 'python-wxgtk3.0-dev'


これは Ubuntu 14.04 LTS の標準リポジトリに上記ライブラリが無いためで,以下のようにリポジトリを追加し,"$ sudo apt-get update"をする.
$ sudo add-apt-repository ppa:adamwolf/kicad-trusty-backports
This PPA contains backports to Trusty so KiCad can continue to work properly.
More info: https://launchpad.net/~adamwolf/+archive/ubuntu/kicad-trusty-backports
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmposdg_ukj/secring.gpg' created
gpg: keyring `/tmp/tmposdg_ukj/pubring.gpg' created
gpg: requesting key 697B014A from hkp server keyserver.ubuntu.com
gpg: /tmp/tmposdg_ukj/trustdb.gpg: trustdb created
gpg: key 697B014A: public key "Launchpad PPA for Adam Wolf" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK

参考リンク:
https://launchpad.net/~adamwolf/+archive/ubuntu/kicad-trusty-backports

3)kicad-install.sh を実行してインストールすれば完了.Version Informationを見れば,KICAD_SCRIPTING=ONになってるはず.
※再インストールをの場合,一度ソースを消してクリーンインストールしないと,KICAD_SCRIPTING=OFFのままになることがあるので注意する.私はこれで数時間悩みました.

Comments

Kicadインストール

VMware上のUbuntu 14.04 LTSへKicadをインストールしたので,インストール手順をメモっておく.

インストール


ここからヘルプスクリプト(kicad-install.sh)をダウンロードし,実行する.インストール最中に度々(y/n)が出てくるけど,全部yで進める.私の環境ではだいたい40分程度(ほとんどソースファイルのダウンロード)かかった.

インストール後はターミナルで kicad と打つとソフトウェアが起動.

フットプリントライブラリはローカルリポジトリを参照するように変更


まず,ライブラリのローカルリポジトリを作成する
cd ~/kicad_sources/kicad.bzr/scripts
./library-repos-install.sh --install-or-update

フットプリントテーブルの参照先を変える.
cp /usr/local/share/kicad/template/fp-lib-table.for-pretty ~/.config/kicad/fp-lib-table 
export KISYSMOD=$HOME/kicad_sources/library-repos/

KISYSMODを.bashrcなどの環境設定に組み込めば,次回からライブラリがローカルリポジトリを参照するようになる.

参考:
Kicad Tutorial 12/2014 - Part 1/12 - Installing Kicad

Comments

MacからのSSH接続が途切れないようする

最近ターミナルからSSHでZedboard上のLinuxへ接続して作業することが多いが,少しの間(多分30分くらい?)ターミナルから離れ,再度戻ってくると"Broken pipe"というエラー出力が出てSSH接続が途切れていて困っていたが,以下の記述を
~/.ssh/config に書くことで(ファイルが無い場合は作成)で解決した.

Host *
ServerAliveInterval 120


参考URL:
http://askubuntu.com/questions/127369/how-to-prevent-write-failed-broken-pipe-on-ssh-connection
Comments

TeXShopでdvipdfmxmkを使えるようにする

TeXで文章を書く際に私はTeXShopを使っているのですが,目次や参照ラベルを更新する際に手作業でコンパイルを複数回実行するのがわずらわしいと常々感じていました.タイプセットにpdflatexmkが含まれているものの,日本語のtexファイルをコンパイルするとエラーが出てコンパイルできません.どうしたものかと悩んでいたところ dvipdfmkxmk をいじれば出来るようなので,やってみました.
ちなみにMacの作業環境は OSX 10.9.4, MacTeX2014, TeXShop 3.41です.

1) 無効になっているdvipdfmxmkを有効にする.以下のコマンドでdvipdfmxmk.engineをコピーします.
$ cp ~/Library/TeXShop/Engines/Inactive/Latexmk/dvipdfmxmk.engine ~/Library/TeXShop/Engines/

2) ~/Library/TeXShop/bin/tslatexmk/dvipdfmxmkrc の latex コマンドを platex へ変更する.
# DO NOT EDIT OR COPY THIS FILE. TEXSHOP WILL AUTOMATICALLY UPDATE IT
# special latexmk settings for Herb Schulz
#$latex = 'latex --shell-escape --synctex=1 --file-line-error %O %S';
$latex = "platex $TSUserCompileOptions --synctex=1 --file-line-error %O %S";
$dvipdf = "dvipdfmx %O -o %D %S";
#$dvips = 'dvips -R0 %O -o %D %S';
#$dvips_pdf_switch = '-Poutline';
#$ps2pdf = 'ps2pdf %O %S %D';
#$ps2pdf = 'ps2pdf -dAutoRotatePages=\/None %O %S %D';

# if a bbl file is present but the generating bib file isn't available don't run bibtex. --- default in latexmk 4.13
#$bibtex_use = 1;


3) TeXShopを起動してタイプセットでdvipdfmxmkを選んで実行すれば完了です.

補足1:デフォルトのタイプセットをdvipdfmxmkにするには,タイプセットの設定画面で以下のようにすればOK.
dvipdfmxmk

補足2:なお,PDFの画像を取り込む際に行うextractbbもTeXShopで自動で実行させるには,奥村先生のTeX Wiki内の「
texmf.cnf への extractbb などの追加」が参考になります.
Comments

Xillybusを使ってLチカやってみた

自作PLをLinux上から操作するのにデバドラ書くのが大変...とこぼしていたら同僚がXillybus使ってみたらとアドバイスをくれたので,Xillybus使ってLチカをやってみました.Xillybusを使うと,/dev以下に定義されているread/writeポートを使ってLinux上から自作PLにアクセスできるため,AXI busの設定,Device Treeの変更,デバドラ等,面倒な(というかやり方がまだわかってない)作業をしなくてすむとのこと.そして幸いなことに学術目的の利用は無料.

Zedboardだと,
Xillinuxという既にXillybus組み込み済みのLinux Distributionがあるので,それを利用する.インストールはGetting Startの資料を読んでその通りにやるだけだが,Vivado 2014.2で試したら,XillybusのIPにロックがかかっているらしく,合成がうまくいかなかったので,指示通りVivado 2014.1で合成した.

やったことは3つ.
  • PSからのメッセージに従いLEDをチカらせるled_if.vをプロジェクトに追加する
  • xillydemo.vでloopbackになっている8bit幅のFIFOを2つに分け,間にled_ifを接続する.もちろん合成も.改変後のxillydemo.vはこれ
  • Xillybusを使ってLチカさせるCプログラム(led_fifo8.c)を作成する

CプログラムはZedboard上にある8個のLEDを右から順に点灯させるようにし,
さらにLEDに設定した値をフィードバックしてコンソールに表示させるようにした.
以下にled_fifo8.cを記す.

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdint.h>

int main(int argc, char *argv[]) {

int fdr, fdw, i;
unsigned char t;
unsigned char p, q;

fdr = open("/dev/xillybus_read_8", O_RDONLY);
fdw = open("/dev/xillybus_write_8", O_WRONLY);

if ((fdr < 0) || (fdw < 0)) {
perror("Failed to open Xillybus device file(s)");
exit(-1);
}

for (i = 0; i < 8; i++)
{
t = 1 << i;
write(fdw, &t, sizeof(t)+1);
read(fdr, &p, sizeof(p));
read(fdr, &q, sizeof(q));
printf("Send: 0x%02x Retn: 0x%02x 0x%02x\n", t, p, q);
sleep(1);
}

close(fdr);
close(fdw);

return 0;
}

次にコンパイルだが,'-static'オプションなしだと実行できなかったので,以下の様に静的リンクで行った.
$ arm-xilinx-linux-gnueabi-gcc led_fifo8.c -o test -static


以下がZedboard上で動いているXillinuxでの実行結果である.
root@localhost:~# ./test 
Send: 0x01 Retn: 0x00 0x01
Send: 0x02 Retn: 0x04 0x02
Send: 0x04 Retn: 0x04 0x04
Send: 0x08 Retn: 0x04 0x08
Send: 0x10 Retn: 0x04 0x10
Send: 0x20 Retn: 0x04 0x20
Send: 0x40 Retn: 0x04 0x40
Send: 0x80 Retn: 0x04 0x80

ご覧の通り,フィードバック時にx00と0x04が混入されてしまっている(読み出しの変数を2個にしているのはそのため).
私がxillydemo.vに加えたFIFOを操作するインタフェースの記述がおかしいのか,
はたまたLinuxでは0x04(ASCIIのEOT)がテキストの最後に付加されてしまうからか,
理由はまだわかっていないので,有識者にコメントを頂けたらと思っています.
Comments