なんとなくlinkタグつけてRSS対応してみました。
最近、Webの巡回も面倒になってきたのでchrome拡張のfeedbroを使っています。
同期は取れないけど、リアルタイムに同期する必要もないし気が向いたときにExportしてImportすれば良いし…。
]]>WSL2上でこんな風に見えているはずである。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 256G 0 disk
sdb 8:16 0 339.7M 1 disk
sdc 8:32 0 256G 0 disk /
まずはPowerShellからデバイスをマウントする
PS C:\Users\hidemi> GET-CimInstance -query "SELECT * from Win32_DiskDrive"
DeviceID Caption Partitions Size Model
-------- ------- ---------- ---- -----
\\.\PHYSICALDRIVE0 CSSD-M2B2TPG3VNF 3 2000396321280 CSSD-M2B2TPG3VNF
\\.\PHYSICALDRIVE1 Force MP600 1 2000396321280 Force MP600
ここでForce MP600のデバイスをmountしたい場合、PowerShellを管理者モードで起動して下記のコマンドを実行する
PS C:\Users\hidemi> wsl --mount \\.\PHYSICALDRIVE1 --bare
WSL2上でlsblkすると次のようにsddが追加される。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 256G 0 disk
sdb 8:16 0 339.7M 1 disk
sdc 8:32 0 256G 0 disk /
sdd 8:48 0 1.8T 0 disk
└─sdd1 8:49 0 1.8T 0 part
あとはmountするだけである。
$ sudo monunt /dev/sdd1 /mnt
]]>単純なシステムのデバッグの時にUARTを使うことが多いのですがUARTって実際に使える最大ボーレートってどれくらいなんだろうと調査してみた。
通常、115,200bpsを最大であることが記載されていることが多いけど、スピードさえ間に合えば上限は超えていいわけで、ホスト側のターミナル・ツールとデバイス側が設定できる範囲とハードウェア側で物理的に動く範囲までは使えるということになる。
TeraTermでは115,200bps以上の設定はタブで用意されているのは230,400、460,800、921,600の約1Mbps弱までの3つです。これ以上は出来ないのかと思っていたけど、手入力すれば使えます。
minicomはminicom -s
で設定を開いて確認することができます。プリセットで230,400、460,800、921,600の他には500,000、576,000、1,000,000、1,152,000、1,500,000、2,000,000、2,500,000、3,000,000、3,500,000、4,000,000の4Mbpsまで500kbps刻みで用意されています。
筆者がよく使うFTDIのFT231Xは最大3Mbpsまで設定することが可能です。
10Mbpsぐらいまででるものがあるようです。
実機上の最大ボーレートは設計次第です。
最近の開発ではUARTって、おまけみたいなところが大きいから基板上で引きまわしたとして、実際に使える最大ボーレートは1~10Mbpsってところが妥当なところなのかな?
]]>ここではWindowsのWSLからVScodeでACRiのサーバーにログインする環境を整えます。
それは筆者の普段のFPGA開発スタイルがVScodeだけでソフトウェア開発と変わりないからです。GUIを使ってFPGA開発を行っている方もいますが筆者はGUIを使用しません(使用するのはごく稀にです)。
ACRiとはアダプティブコンピューティング研究推進体であり、ACRiが運営するFPGA利用環境を無償で利用できます。ACRiが運営しているサーバー上でFPGAのツールを使用して論理合成や配置配線を行い、評価ボードを使用して実機で動作確認を行うことができます。 利用に関する手続きや条件については次のリンクから確認してください。
下図のように自分のPC(Client)からACRiのサーバにアクセスするのですがせっかくなら全部VScodeで済むようにしたい。そうすると、WindowsからファイルをコピーするのにWinSCPなどのツールを使うこともなくなります。コマンド入力のためのターミナルも別々に開く必要もなくなります。
これを実現するだけであれば、WindowsのスタートメニューからVScodeを起動して、VScodeでコマンドパレットを開いて、Remote-SSHすればいいだけですがACriのホストに繋げるにはコマンドパレットではちょっと面倒なのでWindows Terminalから接続できるようにします、
まずはACRiで使用するサーバーを予約しなければいけません。
ここではvs114というサーバーを予約したことにします。
もし、sshpassやsshがインストールされていないのであれば、次のようにインストールしておきます。
sudo apt install sshpass ssh
WSL上から次のようにコマンドを実行します。
sshpass -p PASSWORD ssh -o ProxyCommand="sshpass -p PASSWORD ssh -W SERVERNAME:%p USERNAME@gw.acri.c.titech.ac.jp" USERNAME@SERVERNAME
PASSWORD = サーバーにログインするパスワード(Webログインのパスワードではない) USERNAME = ACRiで登録したユーザー名 * SERVERNAME = 予約したサーバー名(ここではvs114)
サーバーへのログインに成功すれば、次のようにプロンプトまで進みます。
$ sshpass -p PASSWORD ssh -o ProxyCommand="sshpass -p PASSWORD ssh -W vs114:%p USERNAME@gw.acri.c.titech.ac.jp" USERNAME@vs114
Warning: No xauth data; using fake authentication data for X11 forwarding.
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-193-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sat Nov 26 22:16:31 JST 2022
System load: 0.02 Processes: 119
Usage of /: 36.9% of 39.07GB Users logged in: 0
Memory usage: 12% IP address for enp0s3: 172.16.11.14
Swap usage: 0%
* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch
119 packages can be updated.
2 updates are security updates.
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
Last login: Fri Nov 25 22:35:57 2022 from 172.16.2.4
USERNAME@vs114:~$
これができれば、あとはVScodeでremote-SSHするだけです。
WSLの.ssh/configに次のように追加します。
Host vs114
ProxyCommand sshpass -p PASSWORD ssh -W vs114:%p USERNAME@gw.acri.c.titech.ac.jp
User USERNAME
これでssh vs114
を実行したときはパスワードを1回だけ尋ねてくるだけでサーバーにログインできます。
もうひとつ重要なのがWindows側にも.ssh/config
を追加しておきます。具体的にはC:\Users\USERNAME\.ssh\config
に上記の設定を追加しておきます。Windows側にはsshpassコマンドがないので次のようにsshpassを外して設定します。
Host vs114
ProxyCommand ssh -W vs114:%p USERNAME@gw.acri.c.titech.ac.jp
User USERNAME
VScodeでssh接続する前にsshcodeというコマンドを作成します。次のようにnanoなどのエディターを開いてsshcodeを作りましょう。
nano sshcode
sshcodeの中身はこんな感じのスクリプトです。
#!/bin/bash
# 引数: Host:Directory
location="$1"
if [ "$location" = "" ]; then
echo "usage: $0 <host:path>"
exit 1
fi
# HostとDirectoryを分割
host=${location%%:*}
dir=${location##*:}
if [ "$host" = "$dir" ]; then
dir=""
fi
# Directoryがない場合はHome
home=""
if [ "$dir" = "" -o "${dir:0:1}" != "/" ]; then
home="$(ssh $host pwd)/"
fi
# ssh with VScode
path="$home$dir"
code --folder-uri "vscode-remote://ssh-remote+$host$path"
sshcodeはPATHの通っているところに置いてください。
次のようにssh接続します。
sshpass -p PASSWORD sshcode vs114
そうするとコマンドパレットで2回、パスワードを尋ねてくるので入力するするとVScodeが立ち上がります。
初回だけ、パスワードは合計4回と起動後にVScodeサーバーをインストールするので時間がかかります。
VScodeの左のアクティビティバーのエクスプローラを開くと、ssh接続コマンドで指定したディレクトリをワークスペースとして開くことができます(上記のコマンドではディレクトリをしていないのでホームが表示されている)。bashはVScodeを起動してから"ターミナル"-"新しいターミナルを開く"でターミナルを開いています(ショートカットで開いても良い)。
ディレクトリを指定してssh接続する場合は次のようにディレクトリを指定して接続します。
sshpass -p PASSWORD sshcode vs114:/home/USERNAME/FPGA_PROJECT
WSLからssh接続のコマンドを使用していますが起動するVScodeはWindows側のVScodeであって、VScodeがサーバーにssh接続するのはWSLのsshではなく、Windowsのsshを使用します。さらにACRiのサーバーへの接続はgw.acri.c.titech.ac.jp(fserv4)
を踏み台としてアクセスします。
図にすると下図のようなアクセスでVScodeが起動した後はWindows上でのアクセスに変わります。そのために、Windows側の.ssh/config
も設定したのでした。
サーバーにアクセスしなくてもサーバーと踏み台は同じストレージが見えるのでVScodeは踏み台にアクセスして、そこからターミナルを開いてサーバーにsshしてもいいんだけど…。
sshcodeコマンド+VScodeはACRiでなくても普段の環境でも使用可能です。合成マシンを別のLinuxサーバーとかで行っているという環境であれば、同じように使えます。
]]>3カ月ぐらいブログを書いていなかったようですね。
バックエンドで使っているparsedown.phpをv1.6 → v1.8にアップデートしました。
ブログの見た目を若干、変更しました。
CSSもgithub.cssに変更しました。
]]>