FC2カウンター FPGAの部屋 Linux

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”を試してみる1(FPGA-SoC-Linux のクローン)

ikwzm さんの”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”を試してみようと思う。

Device Tree Overlay+FPGA Managerが使用できれば、SDSoC でビットストリームとアプリケーションソフトが作れれば、すでに動作しているLinux 上でリブートすること無しにいくらでも試すことができるし、”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”もこのままの状態で起動したら、Device Tree Overlay+FPGA Managerでハードウェアとそのデバイスツリーを使ってFPGA を使うことができるはずだ。つまりLinux は動作しながら、FPGAでアクセラレーションできるわけだ。という理由でやってみることにした。
参考資料

FPGA+SoC+LinuxでDevice Tree Overlayを試してみた
”FPGA+SoC+LinuxでFPGA Managerを試してみた


まずは、”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”で指定されているように、Git LFS(Large File Storage)を自分のVirtualBox 上のUbuntu 16.04 に追加します。
sudo apt-get install git-lfs
PYNQ_Linux_ikwzm_1_170325.png

git-lfs が無いと言われてしまう。
GitHub のgit-lfs/git-lfs の Installation を見るとUbuntu での git-lfs のインストール方法が書いてあった。その手順に従ってUbuntu 16.04 上で git-lfs のインストールを行う。

sudo apt-get install python-software-properties
PYNQ_Linux_ikwzm_2_170325.png

Yをクリックしてインストールを進めると、python-software-properties がインストールできた。
sudo add-apt-repository ppa:git-core/ppa
PYNQ_Linux_ikwzm_3_170325.png

PYNQ_Linux_ikwzm_4_170325.png

ppa をインストールすることができた。
この後で、sudo apt-get update をするように書いてあるが、忘れてしまった。最後にsudo apt-get updatesudo apt-get upgrade を実行しておいたが、これで良いかどうか?よくわからない?

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
PYNQ_Linux_ikwzm_5_170325.png

sudo apt-get install git-lfs
PYNQ_Linux_ikwzm_6_170325.png

git lfs install
PYNQ_Linux_ikwzm_7_170325.png

これで git lfs がインストールできた。

さて、ikwzm さんのFPGA-SoC-Linux をクローンする。
git clone git://github.com/ikwzm/FPGA-SoC-Linux
cd FPGA-SoC-Linux
ls

PYNQ_Linux_ikwzm_8_170325.png

FPGA-SoC-Linux ディレクトリの下には12個のファイルまたはディレクトリがあった。
PYNQ_Linux_ikwzm_10_170325.png

git checkout v0.3.0
PYNQ_Linux_ikwzm_11_170325.png

git lfs pull
PYNQ_Linux_ikwzm_12_170325.png

FPGA-SoC-Linux ディレクトリの下のファイルまたはディレクトリが 9 個に減った。
PYNQ_Linux_ikwzm_13_170325.png

FPGA-SoC-Linux/target/zynq-pynqz1/boot ディレクトリのファイルを示す。
PYNQ_Linux_ikwzm_14_170325.png

boot.bin や u-boot, デバイスツリーの dts と dtb, uEnv.txt, zImage などが入っていた。
  1. 2017年03月26日 06:01 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

ZYBOのUbuntuでMicro SDのMS DOSの第1パーティションをマウントする

ZYBO で動作しているUbuntu でMS DOS(FAT フォーマット)第1パーティションをマウントできて書き換えられれば、Micro SDカードを外さなくてもBOOT.bin や devicetree.dtb などを書き換えて、再度ブートすることでハードウェアの環境を書き換えることができるだろう?ということでやってみた。

まずは、lsblk でMicro SDの各パーティションの情報を見た。
ZYBO_Ubuntu_mount_1_170113.png

マウント用のディレクトリ zybo_boot を /mnt の下に作成した。mkdir zybo_boot
ZYBO_Ubuntu_mount_2_170113.png

mmcblk0p1 がマウントしたいMS DOS のFATフォーマットのドライブのようだ。これの実体は /dev にあった。
ZYBO_Ubuntu_mount_3_170113.png

起動時に実行される /etc/rc.local にマウント コマンドを書く。 vi /etc/rc.local
ZYBO_Ubuntu_mount_4_170113.png

/etc/rc.local に mount -t vfat -o rw /dev/mmcblk0p1 /mnt/zybo_boot コマンドを書いた。
ZYBO_Ubuntu_mount_5_170113.png

これで、reboot すると、/mnt/zybo_boot にMicro SDカードの第1パーティションのドライブがマウントされた。
ZYBO_Ubuntu_mount_6_170113.png
  1. 2017年01月13日 17:30 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

Linux の C 言語でノンブロッキングキー入力をする

Linux の C 言語でノンブロッキングキー入力をする方法を探していたのだが、「mfumiの日記」さんの「Cでnon-blocking IO」に書いてあったコードで見事、ノンブロッキングキー入力ができました。ありがとうございました。

私のコードではキー入力が見えた方が良いので、エコーバックは除いていないです。
このノンブロッキングキー入力のコードは、「2台の Zybot での隊列走行5(追従走行を試してみた)」の platoon_car1.cpp で使っていて、うまく動いています。
  1. 2016年12月01日 20:34 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

FPGA GO のXiltera ディストリビューションをビルドした

FPGAマガジンNo.12の「第4章 共通カスタムLinuxディストリビューションの開発」をやってみた1”でXiltera のビルドに失敗したので、ひでみさんのFPGA GO の 24 ページの Xiltera ディストリビューションをビルドしてみることにした。

ただし、、ひでみさんのFPGA GO では、Ubuntu 16.04 を使用していたが、私が使用しているのはUbuntu 14.04 だ。

最初の 28 ページの下準備は”FPGAマガジンNo.12の「第4章 共通カスタムLinuxディストリビューションの開発」をやってみた1”でやったのでパスした。

repo もすでにインストールされている。Ubuntu 14.04 では apt-get では repo のパッケージがなかった。

git clone git://github.com/aquaxis/build-xiltera.git
cd build-xitrea
を行った。
XA_Linux_build_8_161108.png

./bulid-xiltera.sh を行った。
XA_Linux_build_9_161109.png

エラーが出て進まない。やはりUbuntu 14.04 ではダメなのかな?
  1. 2016年11月12日 04:28 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

FPGAマガジンNo.12の「第4章 共通カスタムLinuxディストリビューションの開発」をやってみた1

FPGAマガジンNo.12 ARMコアFPGA×Linux初体験」の「第4章 共通カスタムLinuxディストリビューションの開発」をやってみることにした。
きっかけは、「Intel SoC FPGA デベロッパー・フォーラム」でDE0-Nano-SoC をもらってしまったので、何かやらねばということで、沿いう言えばひでみさんの記事のZynq とSoC FPGA 両対応でブートできるSDカードをやってみたかったんだっけ?ということで、試しにやってみることにした。
なお、売り物の記事の内容を実行してみているので、具体的な手順ははっきりと示さない。やってみたいと思ったら、FPGAマガジンNo.12 を購入してやってほしい。

環境はWindows 10 でVirtualBox 5.1.8 を動かして、そこにUbuntu 14.04 LTS を動作させている。それ上でビルドしている。

最初に49 ページ左カラム真ん中のYocto Project のビルドで必要なツール類をインストールした。
XA_Linux_build_1_161103.png

49ページ左下のrepo コマンドをダウンロードしたところだ。
XA_Linux_build_2_161103.png

図5 の repo sync が終了した。
XA_Linux_build_3_161103.png

図5 の cd poky; ls が終了したところだ。
XA_Linux_build_4_161103.png

49 ページ真ん中の ls conf が終了した。
XA_Linux_build_5_161103.png

Linux ディストリビューションのレシピ名を表示した。
XA_Linux_build_6_161103.png

図6 のcd tmp/deploy/sdk できなかった。tmp ディレクトリの下は cache しかなかった。
XA_Linux_build_7_161103.png

困ったな。どうしよう?
善後策を考える。
  1. 2016年11月03日 07:58 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

ZYBO 上のUbuntu 14.04 LTSで Geneay を使ってプログラミングをする

ZYBO 上のARM Cortex-A9 上のDigiletn Linux + Ubuntu 14.04 LTSで Zybot などの開発をしている。
ZYBO 上で エディタを起動してC, C++ などのソフトウェアを作っているが、いままでエディタには、gedit や gvim などを使ってきた。
どうも gedit も gvim も使いにくいので、もっと良いエディタがないかをネットで探したら、Geany が使えるということだった。

早速、sudo apt-get install geany で Geany をインストールしてみた。
Windows でも Geany を使っていたので、使いやすい。。。しかも、終了時のファイルを覚えているので、やりやすい。文字の補完もできるので、いうことなしだ。これを使うことにした。
Geany_1_160805.png

なお、上の画面は、ZYBO 上のLinux から X を Xming でWindows 上のウインドウに持ってきて表示している。
これで、自分のパソコンからZYBO のプログラミングが快適にできそうだ。
  1. 2016年08月05日 08:34 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

ZYBO をUbuntu 14.04 LTS にアップグレードした場合のエコーバック

ZYBO のRoot File System には、Linaro のUbuntu 12.10 Root FS を入れている。(Vivado and zybo linux勉強会資料3)
Ubuntu 12.10 をUbuntu 14.04 LTS にアップグレードしているのだが、アップグレードした当初は問題ないのだが、
apt-get update
apt-get upgrade
した後でTera Term などのシリアルポート経由のターミナルで、自分でタイプしたコマンドがターミナル上で表示されないという不具合があった。その解決方法を @YuuichiAkagawa さんに教えて頂いたので、書いておく。 @YuuichiAkagawa さん、ありがとうございました。

それは、「CTRL+D」キーを押して、再度、自動ログインすることだ。再度、自動ログインするとエコーバックされるようになった。
Ubuntu1404_echoback_1_160213.png
  1. 2016年02月13日 03:42 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0
»