チューリングマシンで状態 (state) を Q で表したのが初出ではないかとのこと.モンロー計算機やミーリマシンも Q を状態に使っているがは時代はもっと後らしい.Q は quanta から来ていて,光子や量子など物質やエネルギーが持つ最小の離散的単位 (単数が Quantum,複数形が Quanta) から来ているのではないか,とのこと.
2026年10月15日木曜日
2026年10月4日日曜日
Virtuoso で三角形を描く (polygon)
Polygon で任意角度の図形作成する
1. Virtuoso Layout Suite で Shift + P キーを押す.
2. マウスを右ダブルクリックして設定画面を開く
3. モードを anyAngle に選択して Hide を選択.
4. 3つの頂点を順にクリックして三角形を描く.終点はダブルクリック.
三角形を描くときは,画面上部の dx dy を見ると見やすい.
2. マウスを右ダブルクリックして設定画面を開く
3. モードを anyAngle に選択して Hide を選択.
4. 3つの頂点を順にクリックして三角形を描く.終点はダブルクリック.
三角形を描くときは,画面上部の dx dy を見ると見やすい.
Gemini が教えてくれたのだが,引用元サイトの「あなた人間ですか」チェックを突破して教えてくれたので,すごいなと思うなど.
2026年10月3日土曜日
bind mount のススメ?
計算機兼 NAS にある /home を計算機でマウントする際,今は一度 /nfs/home にマウントして,/mnt/home/user を /home/user に symbolic link して実現していた.
% cat fstab
xxx.xxx.xxx.xxx:/home /nfs/home
% ln -s /mnt/home/user /home/user
こうするとアクティブなユーザーのみ /home 配置できるのでいいかなと思っていたが,readlink -f するとオリジナルのパスが表示されるので,プログラム (Virtuosoとか) や計算機によってパスが変わってしまう問題がある.
NAS兼計算機の場合
% readlink -f /home/user
/home/user
NFSで読んでいる計算機の場合
% readlink -f /home/user
/nfs/home/user
こういうときは,symbolic link ではなくて bind mount の方がいいみたい.
% cd /home
% mkdir user
% mount -bind /nfs/home/user /home/user
こうすると readlink -f しても bind mount したパスが表示される
% readlink -f /home/user
/home/user
fstab に書くには以下のような感じ
/nfs/home/user /home/user none bind 0 0
2026年9月19日土曜日
RHEL9 で madam によるソフトウエア RAID を使う dracut --force --regenerate-all
大筋は Rocky 9 の時と同じなのだが,再起動するとアレイが壊れてしまう (Rocky 9 では再起動前にアレイが壊れた).RAID アレイ構築後初期のディスク構成と変わるので initramfs を再構築するために dracut をしないといけない.
ここで
% dracut --force
では不十分で,
% dracut --force --regenerate-all
すれば,再起動しても RAID アレイを元通り読めることがわかった.
という重要な話が RedHat のドキュメントにみあたらない (?) という罠であった.
RAIDアレイ組んだらまず再起動して再稼働できるかチェックせよ,というのは重要なんだな.データをある程度置いた状態で再起動させたから復旧にえらく時間がかかった.本番稼働前でよかったけれど.
2026年9月11日金曜日
HSPICE のServer/Client モードの Server の再起動に時間がかかるようになった?
HSPICE Server/Client モードにて,昔は問題なく使えていたスクリプトが異常な動作をするようになった.やっていることは簡単で,
% hspice -CC -port 25000 -share share.sp -stop 0.3
% hspice -CC -port 25000 target1.sp
% hspice -CC -port 25000 target2.sp
% hspice -CC -port 25000 target3.sp
...
% hspice -CC -K -port 25000
というのを for ループでぶん回すのだが,
% hspice -CC -K -port 25000
でサーバー KILL を確認しても,
% hspice -CC -port 25000 -share share.sp -stop 0.3
>info: ***** The specified port 25000 is not available now.
と表示されて HSPICE Server が起動しない.しばらく待つと Server が起動する.
% lsof -i :25000
しても LISTEN していないのに,よくわからない.KILL してから再起動まで20秒ぐらい待つと動く.for ループを3つに分割してサーバー立ち上げ・KILL は最初と最後に1回のみにすれば動くのだが,手動で止めたときにまた適切な時間待たないといけないし,わすれそうだし,困ってます.
2026年9月4日金曜日
Calibre が AlmaLinux 8.10 Threadripper 2990wx の環境ででうごかない (grub で numa=off)
表題の通りで,Threadripper 2990wx は CentOS 7 の時は快調だったのだが,AlmaLinux 8.10 にしてからすんなり動かないツールが多い.その一つが Calibre で実行すると
% calibre -drc -hier TEST.cal > TEST.log
% calibre -drc -hier -turbo 1 TEST.cal > TEST.log
% calibre -drc -hier -turbo 2 TEST.cal > TEST.log
set_mempolicy: Invalid argument
%
という感じで,マルチ CPU 実行させると死んでしまう.どうもこのメッセージは NUMA を使うときに出るらしく,2990wx は4つの CCD が OS から4つの NUMA デバイスと認識されるもうち2つしかメモリに直接アクセスできないという変態 CPU なので,Calibre がメモリのない CCD にメモリアロケーションをしようとして死んでいる可能性がある.
一方で NUMA なんて BIOS で指定した記憶無いんだけれど,と思いつつ BIOS の Memory Interleave を変えても4 NUMA デバイスとして認識されて困っていた.
で,自分で調べてもわからなかったので,今更ながら ChatGPT にログをぶち込みながら2時間ぐらい相談したら,grub で numa=off すると OS として NUMA オフにして 1 NUMA デバイスとして認識できるらしい.今回は
・Alma Linux 8.10 (kernel 4.18)という古い backport を含む Linux Kernel
・NUMA を独自実装し全 NUMA デバイスがメモリを持っていると決めつけているCalibre
・2990wx という変態 CPU
・BIOS で NUMA/UMA 制御ができない ASRock X399 Taichi
のクアッドコンボでダメだったらしい.
ということで,
% sud vim /etc/default/grub # numa=offにする
% sudo grub2-mkconfig -o /boot/grub2/grub.cfg
ということで無事 -turbo が起動するようになりました.ChatGPTすごいな.
2026年8月20日木曜日
2026年8月12日水曜日
MUNIN を使って計算機を監視する
サーバーはLinux Mint,監視対象は Alma Linux 8 です.
クライアント(監視される)側の設定
サーバー(監視)側の設定
あとはブラウザで http://localhost/munin に接続するとよい.なぜか FireFox ではだめで Chrome でないといけなかった.(http接続ができない?)
いろいろはまったこと
munin-node を入れるのだが,nothing provides perl(Digest::SHA1) と言われてしまう.
→PowerTools のリポジトリを有効にすればよいらしい.
ブラウザで http://localhost/munin/ にアクセスしても "Unable to connect" と表示される.また手動で munin を動かしてもプラグインがないと言われる.
→ Firewall-cmd でポートを開けていない.空ける設定にしたあと firewall-cmd reload していない
Telnet で接続を試しても "connection closed by foreign host" と表示され接続が閉じられる.
→munin-node 側の /etc/munin-node.conf が間違っていた.具体的には munin サーバーの IP アドレスが間違っていた
追記:RHEL9 で MUNIN を使う
epel 入れる必要がありました.
2026年8月5日水曜日
VNC を AlmaLinux 8.10 に導入したときにはまったこと
・ポートを空ける
% firewall-cmd --permanent --add-port=5901/tcp
% firewall-cmd --reload
% firewall-cmd --list-all
% firewall-cmd --reload
% firewall-cmd --list-all
・Polkitの設定を変更
カラーマネジメントとパッケージマネジメントの更新を全ユーザに対し許可する.
% sudo vi /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
% sudo vi /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
[Allow Package Management all Users]
Identity=unix-user:*
Action=org.debian.apt.*;io.snapcraft.*;org.freedesktop.packagekit.*;com.ubuntu.update-notifier.*
ResultAny=no
ResultInactive=no
ResultActive=yes
2026年8月4日火曜日
Xfce のデフォルトターミナルを変える
Xfce のデフォルトターミナルは [メニュー]→[設定]→[デフォルトアプリケーション] で変更できる.こうするとデスクトップ右クリックで「端末で開く」のデフォルトを変える事ができる.よく忘れるのでメモ.
Linux Mint 21.2 Victoria Xfce Edition を使っているのだが,Terminalの選択肢が悩ましい.
- デフォルトの Xfce Terminal はものすごく重い.ログが大量に出たり,Window を掴んでグリグリすると xrdp の CPU 使用率が100%になりすべてがカクカクしだす.(Intel N97 が非力説もある)
- Gnome-terminal は軽量なのだが,一日経つとプロファイルが初期化されてしまう.Window を触った瞬間に黒背景が白背景になるので一瞬でムスカにされてしまう.
なので Kitty にしてみた.設定が奥深くてよくわからないのだけれど,ひとまずなんとか使えそうだ.
(1) ssh 接続先で backspace や Ctrl-U が効かない
正確には消えるが画面にログが残る.ログイン先の環境変数を
% TERM=xterm
にする.
2026年8月3日月曜日
RHEL9.7 に Virtuoso Studio を入れる
インストール先は RedHat Enterprisse Linux Server 9.7 です.Virtuoso のバイナリを起動して,表示される不足しているシェアードライブラリを入れていく.結局以下を入れればよかったよ.
ところが
Qt の xcb 関係のエラーが出た.プラグインが使っている共有ライブラリがそろっているか ldd で調べればよいらしい.
ここで "not found" になっているシェアードライブラリを入れればよい.dnf provides で聞いて回った結果以下を入れればよかったよ.
こういうのってバージョン依存を回避するために CAD のバイナリに入っているものじゃないんだね.
2026年8月2日日曜日
Cadence のライセンスサーバーを立てる
インストール先は RedHat Enterprisse Linux Server 9.7 です.tcsh ksh が必要です.
Licesnseセットアップ
LUC25.01.002/doc/license/Cadence_License_Server_Diagnostics_Utilities.html を見ながらやってみる.
ユーザーアカウント cdsmgr を作成することが推奨されているみたい.
% sudo useradd cdsmgr
% sudo passwd cdsmgr
LUC25.01.002/share/license 以下にライセンスサーバー関係のバイナリがあるみたい../lic_config を起動する.-xを付けないとデフォルト,-xを付けるとカスタムできるらしいが,挙動は変わらない気がする...
% cd LUC25.01.002/share/license
% ./lic_config
(1) 最初にCadenceツールのインストールディレクトリを聞いてくる.デフォルトにする.
(2) ここにtools を作るか聞いてくる.作らせる.
ところがホスト ID (MACアドレス) は正しく認識できているのに,ライセンスファイルがここにないと表示される.lic_config を見ると,"^license."をライセンスファイルとして認識するらしい,がもらったライセンスファイルは"License_*"だ.名前を書きかえる.
% mv License_なんちゃら.txt license.dat.2027.dat
% ./lic_config
今度はライセンスファイルを認識したが,「Validなものは SERVER,DAEMON,FEATUREしかないはずでこのライセンスファイルはおかしい」と言ってくる.たしかにライセンスファイルには行頭が"USE_SERVER"で始まっている箇所がある.これもらったものなんだけれど...
lic_config を見ると "$linetype" != "USE_SERVER" かつ "$linetype" != "#" and "$linecont" == "1" の条件でエラーメッセージを出して異常終了するらしい.goto error をコメントアウトして継続させてしまおう.
% vi lic_config
# goto error <- コメントアウト
% ./lic_config
....
You have just configured the license files and the daemon startup script.
と表示された,セットアップはできたみたい.いいのか.
Lisence 登録
lic_config によってデーモンの起動ファイルができているので,rc.lic を /etc にコピーする.rc.lic は書き換えられているのでマニュアルの指示に手動で書き換える必要は無い.
% sudo cp re.lic /etc/re.lic
(マニュアルは rclic.sample を /etc/rc.lic にコピーしろとあるが間違いなはず)
所有者を変える
% sudo chown cdsmgr /etc/re.lic
パーミッションを変える
% sudo chmod 6744 /etc/rc.lic
inittabに登録する
% sudo echo "cds::once:sh /etc/rc.lic" >> /etc/inittab
Lisence 起動
ユーザー cdsmgr になって実行する
% su cdsmgr
% /etc/rc.lic
2026年8月1日土曜日
Synopsys のライセンスサーバーを立てる
Synopsys のライセンスサーバーを Linux Mint で立てます.RHEL 系しか保証されていないけれど,結果的には全く問題なかったよ.
Synopsys Common Licensing を入れるためにまず Synopsis Installer を入れる.ダウンロードしたバイナリに実行権限を付け,実行.
% chmod +x SynopsysInsterller.run
% ./SynopsysInsterller.run
実行中にインストールディレクトリを聞かれるので指定する.
次に,Synopsys Installer を使って Synopsys Common Licensing を入れる.
% ./installer/installer
バイナリのダウンロード先,インストール先のルートディレクトリ,Site IDを入れる.
Synopsys Common Licensing を使ってライセンスサーバーを立てる.ライセンスファイルを開き,hostname1 を置換してライセンスサーバーの名前にする.
% sed -e "s/hostname1/servername/gc" license_org.txt > ~/synopsys/license.txt
ライセンスファイルは scl_root/admin/license に配置する.
% ln -s ~/synopsys/license.txt scl_root/admin/license
ライセンスサーバー起動
% scl_root/linux64/bin/lmgrd -c scl_root/admin/license/license.txt
FlexNet が起動した.止めてみよう.
% scl_root/linux64/bin/lmdown -c scl_root/admin/license/license.txt
このベンダーのライセンス止めていいのか聞いてくるので y で止める.
ここからは Keysight を参考にする.ライセンスサーバーをサービスとして登録する.systemctl に登録するためのファイルを作成する.
% sudo vim /lib/systemd/system/synopsis-license.service
multi-user モードで起動させるので,systemd の所定の位置にスタティックリンクを張る.
% sudo ln -s /lib/systemd/system/synopsys-license.service /etc/systemd/system/multi-user.target.wants/synopsys-license.service
有効にする.
% sudo systemctl daemon-reload
% sudo systemctl enable synopsys-license.service
% sudo systemctl start synopsys-license.service
% sudo systemctl status synopsys-license.service
これで active (running) になっていればOK.
環境変数を設定して,
export SNPDLMD_LICENSE_FILE=27030@servername
この状態で別の terminal を開いて,
% ./lmutil lmstat -a
を実行時にライセンスが正常に見えていればOK.
2026年7月31日金曜日
Keysight のライセンスサーバーを立てる
Keysight のライセンスを取り上げられてしまったので,個別にライセンスサーバーを立てることになってしまった.
ここでは LinuxMint に立てることにする.FlexNet のライセンスサーバーをKeysightダウンロードする.解凍した物の中に PDF があるので基本的にはその PDF 通りに設定すればよい.
ライセンスファイルを確認する.ここで
SERVER this_host MACADDRESS 27009
の MACADDRESS がマシンの MAC アドレスと一致しているか確認する.ケースインセンシティブ.27009 はポート番号で,27000~27009 の値となっている.
今回のライセンスはフローティングとのことだが,ライセンスファイルは PDF の "Example 5: Floating license (borrowable)" の様に floating と書かれていないが大丈夫みたい.
VENDOR_STRING=005056905d85 vendor_info="DESCRIPTION=MyProduct, floating, permanent license(MYFEATURE1 coun" \
ライセンスファイルを所定の位置に配置する.Linuxの場合
/var/opt/keysight/licensing/licenses/server
の server がライセンスファイル.なおマニュアルのパスは誤字っている.
試しにライセンスサーバーを起動してみる.
% ./lmgrd -c /var/opt/keysight/licensing/licenses/server -l
この状態で別の terminal を開いて,
% ./lmutil lmstat -a
を実行する時に,ライセンスが正常に見えていればひとまずOK.
ライセンスサーバーをシャットダウンしよう.
% ./lmutil lmdown -c /var/opt/keysight/licensing/licenses/server
ライセンスサーバーをサービスとして登録する.
systemctl に登録するためのファイルを作成する.
% sudo vim /lib/systemd/system/keysight-license.service
multi-user モードで起動させるので,systemd の所定の位置にスタティックリンクを張る.
% sudo ln -s /lib/systemd/system/keysight-license.service /etc/systemd/system/multi-user.target.wants/keysight-license.service
有効にする.
% sudo systemctl daemon-reload
% sudo systemctl enable keysight-license.service
% sudo systemctl start keysight-license.service
% sudo systemctl status keysight-license.service
これで active (running) になっていればOK.
この状態で別の terminal を開いて,
% ./lmutil lmstat -a
を実行する時に,ライセンスが正常に見えていればOK.
クライアントからの Listen を許可するために Firewall に許可を出す.LinuxMint は ufw を使う.
% sudo ufw status
ここで 27009 が開いていない場合,ポートを開放する.
% sudo ufw allow 27009
ただ私の環境ではこれではだめで,思い切ってFirewallを切らないとだめだった.
% sudo ufw disable
クライアントは,環境変数 AGILEESOFT_LICENSE_FILEを指定してやればよい.
% export AGILEESOFT_LICENSE_FILE=<port>@<ipaddr>
この状態で lmstat でライセンスが見えたら OK.
% lmstat -a
2026年3月4日水曜日
Calibre をサポート外 OS で動かしたい (その2)
Calibre は OS ごとにバイナリが最適化されている(とういう事になっている)が,最適でない OS でも手持ちの Calibre を動かしたい.しかし,Calibre 実行時に calibre_vco で実行環境のチェックが入ってしまい,最適でないと
% calibrewb
Invalid operating system environment
と表示されて実行できない.
Calibre の実行環境は
${MGC_HOME}/pkgs/icv_calenv.aoi/pvt/calibre_host_info
でチェックされているので,RHEL7 系と仮装したいのであれば,本ファイルを編集し最終行 (test -n うんぬん) 直前に2行
OS_VENDOR=redhat
OS_MAJOR_REV=7
test -n ....
と書いてやればチェックをすり抜ける事ができる.
このサイトの人は RHEL 系でない Ubuntu で各種 CAD を動かそうとしているので勇者過ぎる.
そういえば昔似たようななことをしたなぁ,と思ったらしていた.
今回は AlmaLinux8 (RHEL8系) で aoi バイナリ (RHEL7) を動かそうとしているので,/etc/lsb-release 編集はできないなぁ.
2026年3月3日火曜日
IIC-OSIC環境を使ってLibreLaneを実行する:RISC-Vを動かしてみよう (2026年2月版)
前回まではチュートリアルだったので,今回は応用編として RISC-V コアを実装してみよう.使う題材は Harris&Harris の RISC-V コア,これは SystemVerilog で書かれているので,Verilog に実装しなおしてみる.
RISC-V コアの準備
主な変更点は,
・RISC-V コアとテストベンチを分離,命名ルールを simulate.sh に合わせる([回路].v,[回路]_tb.v)
・入出力ポートの定義を Verilog に変更
・logic を適切に wire に
・always_comb,always_ff を適切に変更
・一部 case 文を always から function に
・メモリのアラインメントが不親切だったので明示的にした.具体的には
rd = RAM[a[31:2]];
を
rd = RAM[{2'b0,a[31:2]}];
へ MSB側 をゼロ埋め.
はまったのはジャンプ命令が正しく動かなかったり,always 文で書いた組み合わせ回路のセンシティブビットの指定が不十分だったり,という点であった.Verilog 素人なので2~3日ぐらいかかった.こんなやつが授業で Verilog 教えるってマジ?
シミュレーションが正しく動くと,テストベンチでは DataAdr = 100 の時に WriteData が 25 であるか判定し,正しければ "Simulation succeeded",正しく終了しない場合は "Simulation failed" と表示される.
$ cd kvic_226007_ws25-main/verilog/tb
$ sh simulate.sh riscv_top
Yosysによる合成
src ディレクトリに移動し,yosys_stats.sh を実行してみる.
$ cd ../src
$ ln -s ../tb/riscv_top.txt # 命令メモリの中身をリンク
$ sh yosys_stats.sh riscv_top
実行するとログが出てくる.
まあまあな数のセルが使われている.一番大きいのはDFFベースのメモリだろう.
LibreLaneによる配置配線
実行前に変更すべきなのは config.json と pin_order.cfg.それぞれ config.json は次の通り,
pin_order.cfg は次の通り変更する.
この地点で試しに実行してみたら,合成の地点で
と規定のサイズ (160 um x 100 um = 16000 um^2)を超えてしまい,
Utilizationでかすぎ,と失敗してしまう.なので config.json 中の面積を
0 0 160 100
から
0 0 320 300
として,合成時の Utilization が 40% 程度にしてみた.そのほかの制約は変えず,Sky130 対象に合成制約 20 ns = 50 MHz とし LibreLane を実行してみる.
$ ./run_librelane.sh
しばらく待つと処理が終わり,OpenROAD での配置配線結果が出力される.
レイアウトを見るとポートは East と West に固めたはずが他にも配置されてしまっている.DRC/LVS はパスしたが,Antenna 違反が発生していた.
使われたセルの統計データは次の通りであった.
DFF (dfxtp_1,dfrtp_1,dfrtp_2) が820個しかないのは,命令メモリが ROM になって最適化されてしまったためと思われる.おそらくゲートがVDD/VSS に接続されてしまったのでアンテナ違反が発生しているのだろう.このあたりはきちんとしたメモリがほしいものだ.
2026年3月2日月曜日
IIC-OSIC環境を使ってLibreLaneを実行する:チュートリアルを動かしてみよう (2026年2月版)
IIC-OSIC の環境を使って LibreLane による配置配線を試みる.
IIC-OSIC のインストール
基本的には土谷先生の方法でよい.
IIC-OSIC ツールの実行
基本的には公式ビデオを参考にすればよいのだが,いろいろ不完全なので補足を入れていく.
まずは Tutorial ファイルをダウンロードする.動画のスライド p17 のファイルをダウンロードする.
このとき Docker 内に最終的にファイルを置かないといけないので,Docker 内の Ubuntu でFireFox などでダウンロードするか,
C:\Users\[ユーザー名]\eda\designs
に Explorer からアクセスすると Ubuntu の起動時のディレクトリにアクセスできる.
Verilog シミュレーションと yosys による合成
verilog ディレクトリに移動する
$ cd /foss/designs/kvic_336007_ws25-main/verilog
シミュレーションは tb ディレクトリで実行する.
$ cd tb
$ sh ./simulate.sh counter
simulate.sh の引数である [回路名] に対し,verilog/src/[回路名].v,verilog/tb/[回路名]_tb.vを探し,verilator で LINT,iverilog で Verilog シミュレーション,波形ファイル生成([回路名]_tb.vcd),gtkwave で波形を表示できる.
3 bit カウンターとして動いている事を確認する.
次に合成する.src ディレクトリの yosys_stats.sh を実行する.
$ cd ../src
$ sh ./yosys_stats.sh counter
実行すると,yosys にょって
read_verilog
proc (process をnetlistに変換)
opt (簡単な最適化)
flatten (階層展開)
techmap (テクノロジマッピング)
stat (回路の統計情報表示)
が実行される.ただしここでのテクノロジマッピングは特定のプロセスライブラリではなくyosys の持つ仮想ライブラリで合成されるようだ.
LibreLaneによる配置配線
次に LibreLane で配置配線を行う.
$ cd ../../librelane
run_librelane.sh に実行権限を与えて実行してみる.
$ chmod +x run_librelane.sh
$ ./run_librelane.sh
run_librelane.sh では,テクノロジライブラリを指定 (sky130A),LibreLane による実行,LibreLane の実行結果を OpenROAD で開く.
LibreLane の全体設定ファイルは config.json で,回路名,Verilog 記述の場所,シリコン面積,SDC などの設定,IO ピンの順番などを指定できる.
(逆に言うと,この程度しかカスタマイズの余地はないのか)
実行結果は runs/RUN_[日付]_[時間]/ 内部に処理ステップに沿って以下のように格納される.
2026年1月30日金曜日
卒論前に物が壊れるジンクス
卒論のシーズンは何かとものが壊れがちで一般的には学生のパソコンが壊れるのだが,今回新たに「教員室の蛍光灯がきちんと点かなくなる」事態が発生した.しかも事務室の閉室後の金曜夕方に,である.
写真だとよくわからないけれど,実際は暗くてとても作業できない.卒論とはかくも過酷な挑戦なわけである.
(えーん暗いよー)
登録:
投稿 (Atom)







