LoginSignup
3
3

More than 5 years have passed since last update.

FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(ZYBO-Examples)

Last updated at Posted at 2016-05-02

注意(2017年9月20日追記)

この記事は Linux Kernel 4.4 時点に投稿したものであり、古い内容が含まれています。Linux Kernel 4.10 以降、FPGA 関連は大きく進歩しました。詳しくは「Linux Kernel 4.10 でのFPGAのサポート事情」を参照してください。

はじめに

「FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(ブートイメージの提供) @Qiita」で、ZYBO 用の Device Tree Overay と FPGA Manager に対応した Linux Kernel と Debian8 RootFS を紹介しました。

ここでは、そのシステム上で動作する実例をいくつか紹介します。
いずれの実例もかつて Qiita に投稿したものです。実例の詳細は記事を参照してください。

ダウンロード

github から次のようにダウンロードしてください。
現時点の最新バージョンは v0.3.3 です。チェックアウトしてください。
なお、いくつかのイメージファイルはかなり大きいので、Git LFS(Large File Storage)を使っています。
お使いの環境に git-lfs がインストールされている必要があります。

shell$ git clone git://github.com/ikwzm/FPGA-SoC-Linux
shell$ cd FPGA-SoC-Linux
shell$ git checkout v0.3.3
shell$ git lfs pull

インストール

target/zynq-zybo/examples-001.tgz にアーカイブされているので、ターゲットシステムのどこかに展開してください。
ここでは、/home/fpga/examples に展開しているものとします。

udmabuf_test

以下の記事で紹介した実例です。

udmabuf_test は FPGA 部は使わないので、FPGA Manager は使いません。

スクリプトには ruby の rake を使っています。ここでは Rakefile の説明はしませんので、詳細を知りたい方は Rakefile を見てください。

fpga@debian-fpga:~/examples/udmabuf_test$ rake -T
rake test[buffer_size]             # udmabuf test
rake test_all                      # udmabuf test all (buffer_size_list = [...
rake udmabuf:install[buffer_size]  # Install udmabuf
rake udmabuf:uninstall             # Uninstall udmabuf

device tree overlay を使うためには super user 権限が必要です。sudo を使って実行してください。

fpga@debian-fpga:~/examples/udmabuf_test$ sudo rake test_all
[ 3696.748485] udmabuf amba:udmabuf0: driver probe start.
[ 3696.757511] udmabuf udmabuf0: driver installed
[ 3696.763209] udmabuf udmabuf0: major number   = 245
[ 3696.767922] udmabuf udmabuf0: minor number   = 0
[ 3696.772562] udmabuf udmabuf0: phys address   = 0x1f100000
[ 3696.777910] udmabuf udmabuf0: buffer size    = 1048576
[ 3696.783062] udmabuf amba:udmabuf0: driver installed.
./udmabuf_test
phys_addr=0x1f100000
size=1048576
check_buf()
sync_mode=0, O_SYNC=0, time = 0.491947 sec
sync_mode=0, O_SYNC=1, time = 0.491604 sec
sync_mode=1, O_SYNC=0, time = 0.491924 sec
sync_mode=1, O_SYNC=1, time = 2.134751 sec
sync_mode=2, O_SYNC=0, time = 0.491645 sec
sync_mode=2, O_SYNC=1, time = 1.435540 sec
sync_mode=3, O_SYNC=0, time = 0.491528 sec
sync_mode=3, O_SYNC=1, time = 1.435055 sec
sync_mode=4, O_SYNC=0, time = 0.491507 sec
sync_mode=4, O_SYNC=1, time = 0.491931 sec
sync_mode=5, O_SYNC=0, time = 2.134731 sec
sync_mode=5, O_SYNC=1, time = 2.134084 sec
sync_mode=6, O_SYNC=0, time = 1.434684 sec
sync_mode=6, O_SYNC=1, time = 1.434833 sec
sync_mode=7, O_SYNC=0, time = 1.434657 sec
sync_mode=7, O_SYNC=1, time = 1.434910 sec
clear_buf()
sync_mode=0, O_SYNC=0, time = 0.045331 sec
sync_mode=0, O_SYNC=1, time = 0.045379 sec
sync_mode=1, O_SYNC=0, time = 0.045188 sec
sync_mode=1, O_SYNC=1, time = 0.851686 sec
sync_mode=2, O_SYNC=0, time = 0.045237 sec
sync_mode=2, O_SYNC=1, time = 0.050361 sec
sync_mode=3, O_SYNC=0, time = 0.045287 sec
sync_mode=3, O_SYNC=1, time = 0.050279 sec
sync_mode=4, O_SYNC=0, time = 0.045153 sec
sync_mode=4, O_SYNC=1, time = 0.045099 sec
sync_mode=5, O_SYNC=0, time = 0.851646 sec
sync_mode=5, O_SYNC=1, time = 0.851606 sec
sync_mode=6, O_SYNC=0, time = 0.050234 sec
sync_mode=6, O_SYNC=1, time = 0.050196 sec
sync_mode=7, O_SYNC=0, time = 0.050199 sec
sync_mode=7, O_SYNC=1, time = 0.050185 sec
dtbocfg.rb --remove udmabuf0
[ 3718.839929] udmabuf udmabuf0: driver uninstalled
[ 3718.845018] udmabuf amba:udmabuf0: driver unloaded
[ 3719.263016] udmabuf amba:udmabuf0: driver probe start.
[ 3719.275397] udmabuf udmabuf0: driver installed
[ 3719.279786] udmabuf udmabuf0: major number   = 245
[ 3719.284533] udmabuf udmabuf0: minor number   = 0
[ 3719.289134] udmabuf udmabuf0: phys address   = 0x1f100000
[ 3719.296928] udmabuf udmabuf0: buffer size    = 2097152
[ 3719.302647] udmabuf amba:udmabuf0: driver installed.
./udmabuf_test
phys_addr=0x1f100000
size=2097152
check_buf()
sync_mode=0, O_SYNC=0, time = 0.983583 sec
sync_mode=0, O_SYNC=1, time = 0.983444 sec
sync_mode=1, O_SYNC=0, time = 0.983642 sec
sync_mode=1, O_SYNC=1, time = 4.268731 sec
sync_mode=2, O_SYNC=0, time = 0.983318 sec
sync_mode=2, O_SYNC=1, time = 2.869847 sec
sync_mode=3, O_SYNC=0, time = 0.983497 sec
sync_mode=3, O_SYNC=1, time = 2.869770 sec
sync_mode=4, O_SYNC=0, time = 0.983390 sec
sync_mode=4, O_SYNC=1, time = 0.983825 sec
sync_mode=5, O_SYNC=0, time = 4.268297 sec
sync_mode=5, O_SYNC=1, time = 4.268084 sec
sync_mode=6, O_SYNC=0, time = 2.869399 sec
sync_mode=6, O_SYNC=1, time = 2.869416 sec
sync_mode=7, O_SYNC=0, time = 2.869743 sec
sync_mode=7, O_SYNC=1, time = 2.869450 sec
clear_buf()
sync_mode=0, O_SYNC=0, time = 0.097197 sec
sync_mode=0, O_SYNC=1, time = 0.097964 sec
sync_mode=1, O_SYNC=0, time = 0.098398 sec
sync_mode=1, O_SYNC=1, time = 1.702990 sec
sync_mode=2, O_SYNC=0, time = 0.097596 sec
sync_mode=2, O_SYNC=1, time = 0.100492 sec
sync_mode=3, O_SYNC=0, time = 0.098152 sec
sync_mode=3, O_SYNC=1, time = 0.100473 sec
sync_mode=4, O_SYNC=0, time = 0.098084 sec
sync_mode=4, O_SYNC=1, time = 0.098616 sec
sync_mode=5, O_SYNC=0, time = 1.703060 sec
sync_mode=5, O_SYNC=1, time = 1.702889 sec
sync_mode=6, O_SYNC=0, time = 0.100379 sec
sync_mode=6, O_SYNC=1, time = 0.100378 sec
sync_mode=7, O_SYNC=0, time = 0.100373 sec
sync_mode=7, O_SYNC=1, time = 0.100369 sec
dtbocfg.rb --remove udmabuf0
[ 3763.026470] udmabuf udmabuf0: driver uninstalled
[ 3763.031704] udmabuf amba:udmabuf0: driver unloaded
[ 3763.436120] udmabuf amba:udmabuf0: driver probe start.
[ 3763.453990] udmabuf udmabuf0: driver installed
[ 3763.458355] udmabuf udmabuf0: major number   = 245
[ 3763.463201] udmabuf udmabuf0: minor number   = 0
[ 3763.467737] udmabuf udmabuf0: phys address   = 0x1f100000
[ 3763.473155] udmabuf udmabuf0: buffer size    = 4194304
[ 3763.478240] udmabuf amba:udmabuf0: driver installed.
./udmabuf_test
phys_addr=0x1f100000
size=4194304
check_buf()
sync_mode=0, O_SYNC=0, time = 1.966676 sec
sync_mode=0, O_SYNC=1, time = 1.966749 sec
sync_mode=1, O_SYNC=0, time = 1.966512 sec
sync_mode=1, O_SYNC=1, time = 8.535471 sec
sync_mode=2, O_SYNC=0, time = 1.966281 sec
sync_mode=2, O_SYNC=1, time = 5.737825 sec
sync_mode=3, O_SYNC=0, time = 1.966355 sec
sync_mode=3, O_SYNC=1, time = 5.737796 sec
sync_mode=4, O_SYNC=0, time = 1.966330 sec
sync_mode=4, O_SYNC=1, time = 1.966444 sec
sync_mode=5, O_SYNC=0, time = 8.535642 sec
sync_mode=5, O_SYNC=1, time = 8.535291 sec
sync_mode=6, O_SYNC=0, time = 5.737536 sec
sync_mode=6, O_SYNC=1, time = 5.737562 sec
sync_mode=7, O_SYNC=0, time = 5.737549 sec
sync_mode=7, O_SYNC=1, time = 5.737493 sec
clear_buf()
sync_mode=0, O_SYNC=0, time = 0.198774 sec
sync_mode=0, O_SYNC=1, time = 0.199124 sec
sync_mode=1, O_SYNC=0, time = 0.199739 sec
sync_mode=1, O_SYNC=1, time = 3.405121 sec
sync_mode=2, O_SYNC=0, time = 0.199249 sec
sync_mode=2, O_SYNC=1, time = 0.200841 sec
sync_mode=3, O_SYNC=0, time = 0.198967 sec
sync_mode=3, O_SYNC=1, time = 0.200908 sec
sync_mode=4, O_SYNC=0, time = 0.198965 sec
sync_mode=4, O_SYNC=1, time = 0.198842 sec
sync_mode=5, O_SYNC=0, time = 3.405104 sec
sync_mode=5, O_SYNC=1, time = 3.404993 sec
sync_mode=6, O_SYNC=0, time = 0.200748 sec
sync_mode=6, O_SYNC=1, time = 0.200731 sec
sync_mode=7, O_SYNC=0, time = 0.200737 sec
sync_mode=7, O_SYNC=1, time = 0.200746 sec
dtbocfg.rb --remove udmabuf0
[ 3850.516220] udmabuf udmabuf0: driver uninstalled
[ 3850.521949] udmabuf amba:udmabuf0: driver unloaded

uio_irq_sample

以下の記事で紹介した実例です。

スクリプトには ruby の rake を使っています。ここでは Rakefile の説明はしませんので、詳細を知りたい方は Rakefile を見てください。

fpga@debian-fpga:~/examples/uio_irq_sample$ rake -T
rake devicetree:install    # Install device tree
rake devicetree:uninstall  # Uninstall device tree
rake fpga:install          # Install fpga
rake install               # Install fpga and devicetrees
rake uninstall             # Uninstall fpga and devicetrees

rake install で、FPGA と Device Tree をインストールします。
インストールには super user 権限が必要です。sudo を使って実行してください。

fpga@debian-fpga:~/examples/uio_irq_sample$ sudo rake install
dd if=design_1_wrapper.bit of=/dev/fpgacfg0 bs=1M
1+1 records in
1+1 records out
2083852 bytes (2.1 MB) copied, 0.0518765 s, 40.2 MB/s
dtbocfg.rb --install uio_irq_sample --dts devicetree.dts
[ 5257.752033] udmabuf amba:pump-udmabuf4: driver probe start.
[ 5257.771542] udmabuf udmabuf4: driver installed
[ 5257.775914] udmabuf udmabuf4: major number   = 245
[ 5257.780743] udmabuf udmabuf4: minor number   = 0
[ 5257.785287] udmabuf udmabuf4: phys address   = 0x1f100000
[ 5257.790707] udmabuf udmabuf4: buffer size    = 4194304
[ 5257.795790] udmabuf amba:pump-udmabuf4: driver installed.
[ 5257.801731] udmabuf amba:pump-udmabuf5: driver probe start.
[ 5257.819306] udmabuf udmabuf5: driver installed
[ 5257.823698] udmabuf udmabuf5: major number   = 245
[ 5257.828442] udmabuf udmabuf5: minor number   = 1
[ 5257.833085] udmabuf udmabuf5: phys address   = 0x1f500000
[ 5257.838424] udmabuf udmabuf5: buffer size    = 4194304
[ 5257.843584] udmabuf amba:pump-udmabuf5: driver installed.

サンプルプログラム(sample1,sample2)をコンパイル

fpga@debian-fpga:~/examples/uio_irq_sample$ rake
gcc  -o sample1 sample1.c
gcc  -o sample2 sample2.c
fpga@debian-fpga:~/examples/uio_irq_sample$ ./sample1
time = 0.022111 sec
time = 0.022158 sec
time = 0.022040 sec
time = 0.022147 sec
time = 0.022094 sec
time = 0.022021 sec
time = 0.022118 sec
time = 0.022119 sec
time = 0.022078 sec
time = 0.022076 sec
fpga@debian-fpga:~/examples/uio_irq_sample$ ./sample2
time = 0.022132 sec
time = 0.022015 sec
time = 0.022190 sec
time = 0.022070 sec
time = 0.022135 sec
time = 0.022116 sec
time = 0.022134 sec
time = 0.022103 sec
time = 0.022103 sec
time = 0.022095 sec

終わったら 必ず uninstall して device tree を削除してください。

fpga@debian-fpga:~/examples/uio_irq_sample$ sudo rake uninstall
dtbocfg.rb --remove uio_irq_sample
[ 5559.550963] udmabuf udmabuf5: driver uninstalled
[ 5559.556676] udmabuf amba:pump-udmabuf5: driver unloaded
[ 5559.563018] udmabuf udmabuf4: driver uninstalled
[ 5559.569580] udmabuf amba:pump-udmabuf4: driver unloaded

accumulator

以下の記事で紹介した実例です。

スクリプトには ruby の rake を使っています。ここでは Rakefile の説明はしませんので、詳細を知りたい方は Rakefile を見てください。

fpga@debian-fpga:~/examples/accumulator$ rake -T
rake fpga:install     # Install fpga
rake install          # Install fpga and devicetrees
rake run              # run
rake uninstall        # Uninstall fpga and devicetrees
rake zptty:install    # Install zptty device driver
rake zptty:uninstall  # Unnstall zptty device driver

rake install で、FPGA と Device Tree をインストールします。
インストールには super user 権限が必要です。sudo を使って実行してください。

fpga@debian-fpga:~/examples/accumulator$ sudo rake install
dd if=design_1_wrapper.bit of=/dev/fpgacfg0 bs=1M
1+1 records in
1+1 records out
2083852 bytes (2.1 MB) copied, 0.0528286 s, 39.4 MB/s
dtbocfg.rb --install zptty0 --dts zptty0-zynq-zybo.dts
[ 6032.783171] zptty 43c10000.zptty: ZPTTY Driver probe start
[ 6032.788851] zptty 43c10000.zptty: driver installed
[ 6032.793622] zptty 43c10000.zptty: device name    = zptty0
[ 6032.798945] zptty 43c10000.zptty: private record = ddfffc00 (332bytes)
[ 6032.805495] zptty 43c10000.zptty: major number   = 246
[ 6032.810574] zptty 43c10000.zptty: minor number   = 0
[ 6032.815567] zptty 43c10000.zptty: regs resource  = [mem 0x43c10000-0x43c10fff flags 0x200]
[ 6032.823806] zptty 43c10000.zptty: regs address   = e15b8000
[ 6032.829325] zptty 43c10000.zptty: irq resource   = [irq 161 flags 0x404]
[ 6032.836047] zptty 43c10000.zptty: tx buf size    = 128
[ 6032.841166] zptty 43c10000.zptty: rx buf size    = 128
fpga@debian-fpga:~/examples/accumulator$ ruby test.rb
OK : reg = 1; add(6625) => 6626; reg = 6626
OK : reg = 6626; add(9833) => 16459; reg = 16459
OK : reg = 16459; add(7280) => 23739; reg = 23739
OK : reg = 23739; add(3535) => 27274; reg = 27274
OK : reg = 27274; add(5848) => 33122; reg = 33122
OK : reg = 33122; add(9770) => 42892; reg = 42892
OK : reg = 42892; add(2771) => 45663; reg = 45663
      :
    (中略)
      :
OK : reg = -4997637; add(-9940) => -5007577; reg = -5007577
OK : reg = -5007577; add(-3887) => -5011464; reg = -5011464
NoMethodError
ArgumentError
ArgumentError

最後の3行のエラーは、メソッド名や引数を間違えたときにエラーになることを検査しているので気にしないでください。

終わったら 必ず uninstall して device tree を削除してください。

fpga@debian-fpga:~/examples/accumulator$ sudo rake uninstall
dtbocfg.rb --remove zptty0
[ 6258.046383] zptty 43c10000.zptty: driver removed

fibonacci

以下の記事で紹介した実例です。

スクリプトには ruby の rake を使っています。ここでは Rakefile の説明はしませんので、詳細を知りたい方は Rakefile を見てください。

fpga@debian-fpga:~/examples/fibonacci$ rake -T
rake fpga:install     # Install fpga
rake install          # Install fpga and devicetrees
rake run              # run
rake uninstall        # Uninstall fpga and devicetrees
rake zptty:install    # Install zptty device driver
rake zptty:uninstall  # Unnstall zptty device driver

rake install で、FPGA と Device Tree をインストールします。
インストールには super user 権限が必要です。sudo を使って実行してください。

fpga@debian-fpga:~/examples/fibonacci$ sudo rake install
dd if=design_1_wrapper.bit of=/dev/fpgacfg0 bs=1M
1+1 records in
1+1 records out
2083852 bytes (2.1 MB) copied, 0.140482 s, 14.8 MB/s
dtbocfg.rb --install zptty0 --dts zptty0-zynq-zybo.dts
[ 6688.904316] zptty 43c10000.zptty: ZPTTY Driver probe start
[ 6688.909991] zptty 43c10000.zptty: driver installed
[ 6688.914806] zptty 43c10000.zptty: device name    = zptty0
[ 6688.920124] zptty 43c10000.zptty: private record = ddffac00 (332bytes)
[ 6688.926729] zptty 43c10000.zptty: major number   = 246
[ 6688.931787] zptty 43c10000.zptty: minor number   = 0
[ 6688.936792] zptty 43c10000.zptty: regs resource  = [mem 0x43c10000-0x43c10fff flags 0x200]
[ 6688.945022] zptty 43c10000.zptty: regs address   = e17bc000
[ 6688.950538] zptty 43c10000.zptty: irq resource   = [irq 161 flags 0x404]
[ 6688.957255] zptty 43c10000.zptty: tx buf size    = 128
[ 6688.962341] zptty 43c10000.zptty: rx buf size    = 128
fpga@debian-fpga:~/examples/fibonacci$ ruby test.rb
0 => 0
1 => 1
2 => 1
3 => 2
4 => 3
5 => 5
6 => 8
7 => 13
8 => 21
9 => 34
10 => 55
11 => 89
12 => 144
13 => 233
14 => 377
15 => 610
16 => 987
17 => 1597
18 => 2584
19 => 4181
20 => 6765
21 => 10946
22 => 17711
23 => 28657
24 => 46368
25 => 75025
26 => 121393
27 => 196418
28 => 317811
29 => 514229
30 => 832040
31 => 1346269
32 => 2178309
33 => 3524578
34 => 5702887
35 => 9227465
36 => 14930352
37 => 24157817
38 => 39088169
39 => 63245986
40 => 102334155
41 => 165580141
42 => 267914296
43 => 433494437
44 => 701408733
45 => 1134903170
46 => 1836311903
47 => 2971215073
48 => 4807526976
49 => 7778742049
50 => 12586269025
51 => 20365011074
52 => 32951280099
53 => 53316291173
54 => 86267571272
55 => 139583862445
56 => 225851433717
57 => 365435296162
58 => 591286729879
59 => 956722026041
60 => 1548008755920
61 => 2504730781961
62 => 4052739537881
63 => 6557470319842
64 => 10610209857723
65 => 17167680177565
66 => 27777890035288
67 => 44945570212853
68 => 72723460248141
69 => 117669030460994
70 => 190392490709135
71 => 308061521170129
72 => 498454011879264
73 => 806515533049393
74 => 1304969544928657
75 => 2111485077978050
76 => 3416454622906707
77 => 5527939700884757
78 => 8944394323791464
79 => 14472334024676221
80 => 23416728348467685
81 => 37889062373143906
82 => 61305790721611591
83 => 99194853094755497
84 => 160500643816367088
85 => 259695496911122585
86 => 420196140727489673
87 => 679891637638612258
88 => 1100087778366101931
89 => 1779979416004714189
90 => 2880067194370816120

終わったら 必ず uninstall して device tree を削除してください。

fpga@debian-fpga:~/examples/accumulator$ sudo rake uninstall
dtbocfg.rb --remove zptty0
[ 6813.229984] zptty 43c10000.zptty: driver removed

zundoko

以下の記事で紹介した実例です。

スクリプトには ruby の rake を使っています。ここでは Rakefile の説明はしませんので、詳細を知りたい方は Rakefile を見てください。

fpga@debian-fpga:~/examples/zundoko$ rake -T
rake fpga:install     # Install fpga
rake install          # Install fpga and devicetrees
rake run              # run
rake uninstall        # Uninstall fpga and devicetrees
rake zptty:install    # Install zptty device driver
rake zptty:uninstall  # Unnstall zptty device driver

rake install で、FPGA と Device Tree をインストールします。
インストールには super user 権限が必要です。sudo を使って実行してください。

fpga@debian-fpga:~/examples/zundoko$ sudo rake install
dd if=design_1_wrapper.bit of=/dev/fpgacfg0 bs=1M
1+1 records in
1+1 records out
2083852 bytes (2.1 MB) copied, 0.0517575 s, 40.3 MB/s
dtbocfg.rb --install zptty0 --dts zptty0-zynq-zybo.dts
[ 7031.439152] zptty 43c10000.zptty: ZPTTY Driver probe start
[ 7031.444918] zptty 43c10000.zptty: driver installed
[ 7031.451161] zptty 43c10000.zptty: device name    = zptty0
[ 7031.456487] zptty 43c10000.zptty: private record = ddff7800 (332bytes)
[ 7031.464387] zptty 43c10000.zptty: major number   = 246
[ 7031.470179] zptty 43c10000.zptty: minor number   = 0
[ 7031.475065] zptty 43c10000.zptty: regs resource  = [mem 0x43c10000-0x43c10fff flags 0x200]
[ 7031.484630] zptty 43c10000.zptty: regs address   = e19c0000
[ 7031.490821] zptty 43c10000.zptty: irq resource   = [irq 161 flags 0x404]
[ 7031.497446] zptty 43c10000.zptty: tx buf size    = 128
[ 7031.503876] zptty 43c10000.zptty: rx buf size    = 128
fpga@debian-fpga:~/examples/zundoko$ ruby zundoko.rb
["ZUN", "ZUN", "DOKO", "ZUN", "ZUN", "ZUN", "ZUN", "DOKO", "KI.YO.SHI!"]
fpga@debian-fpga:~/examples/zundoko$ ruby zundoko.rb
["ZUN", "ZUN", "DOKO", "DOKO", "DOKO", "DOKO", "ZUN", "ZUN", "ZUN", "ZUN", "ZUN", "ZUN", "DOKO", "KI.YO.SHI!"]
fpga@debian-fpga:~/examples/zundoko$ ruby zundoko.rb
["ZUN", "ZUN", "DOKO", "ZUN", "ZUN", "ZUN", "DOKO", "ZUN", "ZUN", "DOKO", "DOKO", "DOKO", "DOKO", "DOKO", "ZUN", "ZUN", "ZUN", "DOKO", "DOKO", "DOKO", "ZUN", "DOKO", "DOKO", "DOKO", "DOKO", "ZUN", "DOKO", "ZUN", "DOKO", "ZUN", "ZUN", "ZUN", "ZUN", "DOKO", "KI.YO.SHI!"]
fpga@debian-fpga:~/examples/zundoko$ ruby zundoko.rb
["DOKO", "ZUN", "ZUN", "DOKO", "DOKO", "DOKO", "ZUN", "DOKO", "DOKO", "ZUN", "DOKO", "ZUN", "ZUN", "ZUN", "DOKO", "DOKO", "DOKO", "ZUN", "ZUN", "ZUN", "DOKO", "ZUN", "DOKO", "ZUN", "ZUN", "ZUN", "ZUN", "DOKO", "KI.YO.SHI!"]

終わったら 必ず uninstall して device tree を削除してください。

fpga@debian-fpga:~/examples/zundoko$ sudo rake uninstall
dtbocfg.rb --remove zptty0
[ 7146.706619] zptty 43c10000.zptty: driver removed
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3