This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
I2Cを活用していきたいね、SPI はCS の影響で n + 3 になってしまうけど I2C なら 2 なので
make ってやったらビルドして実験した結果を SQLite3 や csv に書いて Python でそれ読み出して matplotlib でグラフにする,とかいうの書きがち
特に何を作るというわけではないけどセンサーを複数同時に使ったりすると足りないことがあるかもしれないというだけ(杞憂である可能性が高い)
This account is not set to public on notestock.
This account is not set to public on notestock.
TeX じゃなくて LaTeX だと思うし LaTeX 書くだけならかんたんだから大丈夫。TeX 言語の闇は避けていきましょう
This account is not set to public on notestock.
This account is not set to public on notestock.
Maix で Max なの。いや Max と読みかけて「いやいや i が入ってるな,なんて読むんだ」っていつも思ってたけど
まあ bootloader が hex で書かれてるだけマシだなあ。Windows の kFlash とか謎の exe を解体するとこから始まりそうでそれはやりたくなかったし
Shigezone で Maix Bit ボード単体の取扱が開始したっぽいよな(1600円)
どっちにしても Maix Bit ほしいねえになてり(ブレッドボードに刺せると取り回しがよくて便利なので)
まあ KPU 使わないなら 0x 80600000 以降の 2MB は完全に空きになるので、リンカスクリプトなりを書き換えて 8MB RAM として扱ってよいという情報は得られた
前段として tokenizer で token に分割して,そのあと lexer で token が構成してる文法的な木構造を解析・構築して,その木構造を中間表現に変換してから舐めていって順次実行する,とやると多少スマートになるけど tokenizer とかは泥臭くなりがち。
This account is not set to public on notestock.
Raspberry Pi みたいに爆発的人気で(あの)broadcom が VideoCore IV の初期化コード公開したりしたようなミラクルないと reverse engineering 死ぬほど頑張ってようやく大した情報が出てこないみたいになりそう
UEFI で結構遊んだりしてて得た経験として,そゆの気になりはするけど結局 NDA の向こう側なので観測できる範囲の知識でなんとかするしかないという諦観
リンカスクリプトで書いてるとおりそのアドレスにマップされるようにコード書いたらエントリポイントから素直に起動はしてるんだしあんまりそこの実装を深堀りしても開発に役立つ知識は手に入らないと思う。知的好奇心というならわかる。
kflash に ISP 用ブートローダー(恐らく)の バイナリが圧縮されてhex化されてハードコードされて、これの中身が今のところ一番知りたい。多分普通にSPI Flash から 0x80000000以降 にコピーしてるだけな気がするけど
https://github.com/kendryte/kflash.py/blob/master/kflash.py#L298
This account is not set to public on notestock.
そもそもサンプルの顔認識データが ファイル名に 0x300000 って書いてあって実際にこのアドレスにファームウェアコードとセットで kFlash 使って焼いて使うのでまあはい
K210でQuake 1を動かしてる人がいた(すごい)けどこれですら bin ファイルは500KBもいってないし、 MaixPy の bin が 1.5MB なので、使い切る前に性能限界が来る
CNN用の学習済みモデルをFlashから直接読む機能があるからそれのためにFlashが16MBも用意してあるのかな
あとはファームウェアのバイナリ自体をロードする IPL がどうなってるかとかは Sipeed か Kendryte に聞かないとわからんけど。
で,そのバイナリのスタートアップルーチンがこれなので,少なくともメモリレイアウトとかはどうすればいいかは多少これで推測できる。 >> kendryte-standalone-sdk/crt.S at Maixpy-dev · sipeed/kendryte-standalone-sdk https://github.com/sipeed/kendryte-standalone-sdk/blob/Maixpy-dev/lib/bsp/crt.S
この SDK を使ってビルドされる MaixPy がファームウェアとして書き込まれて起動されるけど,そのとき使われるリンカスクリプトたぶんこれなのであれ >> kendryte-standalone-sdk/kendryte.ld at Maixpy-dev · sipeed/kendryte-standalone-sdk https://github.com/sipeed/kendryte-standalone-sdk/blob/Maixpy-dev/lds/kendryte.ld
SRAMに読み出すのか?それだとSRAM領域全部使えなくなりそうというかそもそも16MBも乗らない
K210 はメインのプログラムを別の Flash から読み出さないといけないっぽいんだけどその後がようわからん
Kyash のカードに IC と EMV contactless 付く? >> 新しいKyash Cardはじまる|Kyash(キャッシュ) https://kyash.co/kyashcard/?utm_source=crm&utm_medium=inapp&utm_campaign=kyashcard
というか自分でコード書いて cpuid みたいな命令で確認したら早いか。RISC-V の cpuid みたいなんあるの
S なしで U/M の privilege,特記するほどのこともなく RISC-V で標準なのではという気がしてきた
Sony PSP の MMU が memory address space isolation はしないけど privilege を user/kernel で切り替えるだけはやる,みたいなのを思い出した
おまさのりさんの言う通りmultiple privilege level ってのは M/U のことっぽいな
べつにネットワークファイルシステムじゃなくて WSL 内部でやってるようなファイルシステムの仕組みを Windows kernel に実装する,でもイケるはずなんだけど,分散 OS として様々な計算資源にネットワーク透過でアクセスするために設計された 9P は枯れてる上にかなり都合がいいので便利に使われてるんですね
9P 経由じゃなくても %APPDATA% 以下の隠しディレクトリを漁ると WSL のディレクトリパスの実体が出てくるけど,9P で wrap されてる I/F を通さず直接 NTFS のつもりでアクセスすると ACL がブッ壊れて WSL 環境作り直しとかになるので 9P 経由で,ということになっている
This account is not set to public on notestock.
GPD MicroPC の DMI の vendor string が Default string からちゃんとメーカー名やモデル名に置き換えられたらしいので,もしかして OneMix 2S でも UEFI の更新とかないかな,と思ったわけですよ。中国の公式サイトみてみたらバイナリが軒並み全て百度网盘で配布されてて,百度のアカウント作るには中国の携帯電話番号が必要で,eSender で誤魔化そうとしたけど期限切れててパスポート番号とか登録しなおしだった。で,パスポートは今家にあるのでおわり。
Intel って新しい命令とか出たときも simulator 必ず出してたし Intel RST にもなんかそういうのないかなと思ったら存在はしてた >> https://www.intel.co.jp/content/www/jp/ja/support/articles/000006618/server-products.html
This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
cockpit 入れてるけど最近は prometheus で metric みるようになったからあんま使わなくなった(元から使ってないだろとか言わないでね
This account is not set to public on notestock.
肉食主義者もたぶん居ると思うけどヴィタミンが不足するので確実に死ねるはず?ただ生肉食べるとヴィタミン B が摂れると思うので肉食だけだと生肉食を強いられるのヴィーガンより分が悪いな……
逆ヴィーガンいないのかな
「肉だけあれば人間生きていける!!!野菜や炭水化物も不要!!!」みたいな
@charsiuCat bottom up には面白かったけど論文としてはなんでその architecture にしたんだよがぜんぜん書いてなくてめっちゃ辛かった。たぶん先にモノが出来ちゃってて逆算して論文書いたからだろうけど……
@charsiuCat ちなみに SkyBridge は seL4 や Fiasco.OC,それと Google の Fuchia に使われてる Zircon と比較して,Zircon は他の既存のやつにある fast path が無いから syscall が seL4 とかに比べても遅いってボコってた。
@charsiuCat マイクロカーネルだと IPC が……がデメリットだけど,これは 80s や 90s の主張で,現代ではマイクロカーネル高速化手法は多種多様にある(上海交通大学の Prof. Haibo Chen のとこがやってた SkyBridge とか)からこれには当たらない,という仕立てだった。
@charsiuCat Google だからやってやれないことはないと思うけど kernel 差し替えるのにいちいち live migration するか app 止めたりしなきゃいけないのは辛いしだからといって DPDK で userland implementation とかやるとアプリごととかで DC の全ノード差し替えるのも面倒だしで,マイクロカーネル的手法かつ RDMA とかも対応してると実装が集約できるし userland implementation にできるし,加えて Pony Express API という仕組み用意してるから Unix domain socket や shared memory みたいな Unix 伝統の仕組みで bandwidth management とかの制御もできる便利な framework が作れてうれしい!みたいなハナシだった
京都に日本法人がある RISC-V ボード作ってる会社。なるほど。 >> Symmathics Zero RISC-V About - Symmathics https://www.symmathics.com/index.php/symmathics-zero-risc-v-about/
著作権侵害物写り込む「スクショ」はOK 文化庁が転換 - ライブドアニュース https://news.livedoor.com/article/detail/17441298/
This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
rust-vmm はあくまで kvm wrapper と user-space VMM 実装ぽいよね。まあ QEMU みんなしんどいと思ってそう(しんどい
Windows も Hyper-V 向けの準仮想化 driver は標準に持ってるだろうにあれを virtio 準拠にしたりはしないんだからアレ。
This account is not set to public on notestock.
virtio-fs >> kernel/git/torvalds/linux.git - Linux kernel source tree https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2d1d25d0a224
EROFS >> On-disk format robustness requirements for new filesystems [LWN.net] https://lwn.net/Articles/796687/
The 5.4 kernel has been released [LWN.net] https://lwn.net/Articles/805462/
virtio を hardware で実装してしまうハナシ。確かにどの OS も driver 持ってるしなあ(xv6 でさえ!)>> Virtio without the "virt" [LWN.net] https://lwn.net/Articles/805235/
Android の Binder という IPC 機構に 0-day が >> Bad Binder: Android In-The-Wild Exploit (Project Zero) [LWN.net] https://lwn.net/Articles/805321/
AMD SEV みたいなのでゲスト視点の TCB から user-space VMM 排除,できるなら host kernel や kvm もそうしていきたいと。Intel の Jun Nakajima の発表。へえ。 >> Enhancing KVM for guest protection and security [LWN.net] https://lwn.net/Articles/805114/
Alibaba, AWS, CloudBase, Google, Intel, Red Hat がやってるらしい。おもしろい。 >> GitHub - rust-vmm/community: rust-vmm community content https://github.com/rust-vmm/community
ホスト分けることほぼない気がしてる。万が一物量系攻撃食ってもそいつだけ被害受けて他はノーダメにするために一個リバースプロキシを置いてるので
ワイルドカードにするとホスト分けるとき証明書を共有する必要が発生したりしない?
私それが嫌でサブドメインごとに個別の証明書にしてる
DigitalOcean 上で試して 5 回の試行だと中央値で 14~22% 遅くなってるとのこと >> UnixBenchでDockerのベンチマークとってみた - Qiita https://qiita.com/ariarijp/items/9434258faec356ebc76f
seccomp で syscall を filter してるあたりも overhead だけどそこらへんは Unixbench の結果ググれば定量的なデータすぐ出てきそう
あー権限確認といえばシステムコール辺りでちょっとコスト乗ってくるのか?
Google の,「DC やってると host networking かつこれをガンガン更新しなきゃなんだけど kernel 開発できるヤツ少ないしつらいから microkernel の server みたいなのを Linux にのっけて kernel bypass や RDMA もイケるやつ作った!……のを社内で 3 年実運用してたんです」という先月の論文 >> Snap: a Microkernel Approach to Host Networking – Google AI https://ai.google/research/pubs/pub48630/
docker だと何も考えてなければ bridge network なので overhead はかなりデカいし host network しても複数 node で vxlan とか使って L2 overlay するとかなり遅くなる。とはいえ k8s の calico みたく L3 native で複数 node の network 組むやり方もあるわけでやり様はある,というカンジ
This account is not set to public on notestock.
そういえばビットマップフォントなんだけど Rockbox で使われてる TTF をビットマップフォントにするやつそのまま借りてきたら捗りそう。あるいは FontForge で BDF 形式にしてしまう。
Maixduino の USB-UARTインターフェース、(一部では有名な) CH552T が FT2232 ごっこをしているみたいですね
まあいいや,とりあえず MaixPy とその repo. の submodule になってる Kendryte SDK を読めば bare-metal 遊びに不足はなさそうなので触るときはそうしよう。今日はもう寝ようね。
FTDI の USB-TTL 紛失したからこのまえ Amazon で安い USB-TTL 買ったら,自称 PL2303HX なやつで Windows 10 で動かすの大変で失敗した
いやわかりやすいドキュメント用意してくれってハナシではあるけど,実際 Wiki とか充実はしてるんだけど,細かい内部挙動とかわからんくて結局実装読むのがとかになる
こう,QEMU とか option とその挙動みるの実装読むのが一番早かったりして,逆向きに推定してくのよくあるよ……
ソースコードから逆向き(?)に推定していかなければならないの、新しい体験だ(そうせざるを得ない現場は他にはいくらでもありそうだけど)
レベルメーターみたいなことをやりたい人がテープLEDを接続するとボード上のマイクでウニョニョできる的なやつかもしれない
なるほどそうっぽい?じゃあこっちの SK9822 向けのコードはなんなんだ?どっかに RGB LED もボードに載ってる?
僕がST7789と推定したのはここですね
https://github.com/sipeed/MaixPy/blob/master/components/drivers/lcd/src/st7789.c
Maixduino 附属 LCD の datasheet >> https://www.pololu.com/file/0J1234/sk9822_datasheet.pdf
MaixPy のコード読んでて思ったけどチップとかの知識ないはないなりにサクっと用意されてるアプリのコードからアタリつけてハード仕様把握する能力は昔よりついてる気がしてきた。
This account is not set to public on notestock.
あとその辿った元の MaixPy のコードにばっちし SK9822 って書いてあった >> MaixPy/sipeed_sk9822.c at master · sipeed/MaixPy https://github.com/sipeed/MaixPy/blob/master/components/kendryte_sdk/src/sipeed_sk9822.c
Maixduino の SPI 触るのに参考にできるやつだ >> kendryte-standalone-sdk/spi.c at Maixpy-dev · sipeed/kendryte-standalone-sdk https://github.com/sipeed/kendryte-standalone-sdk/blob/Maixpy-dev/lib/drivers/spi.c
これ 3300 円で秋葉原にあって,まだ Shigezone に在庫あったから代理購入できますよ(Amazon でも買えるが高め。まあ送料考えたらトントンかも
This account is not set to public on notestock.
見てるリポジトリが違った回だった(僕が見てたのは Kenderyte のオリジナルリポジトリだった)
https://github.com/kendryte/kendryte-standalone-sdk/tree/develop/lib
なんか driver の code めっちゃあったから >> sipeed/kendryte-standalone-sdk https://github.com/sipeed/kendryte-standalone-sdk/tree/Maixpy-dev/lib/drivers
Standalone の SDK に普通に FreeRTOS 含まれてた >> sipeed/kendryte-standalone-sdk https://github.com/sipeed/kendryte-standalone-sdk/tree/Maixpy-dev/lib/freertos
FreeRTOS に限らず RTOS の実装あんまり知らんけどこの前読んだ Rockbox がよく考えたら proprietary な SoC にそういう OS 実装してるようなもんだから似てる
なんかここらへんの実装読んでいけばべつに LCD の controller わからなくても触れそうだしソースコード豊富なだけでもめっちゃ優しいのではになってきた
ここらへんになんかないかなおもったけど KPU 触るあたりが blob になってて渋い顔してる。privileged mode 変えたりするのアリそうなのに >> sipeed/MaixPy https://github.com/sipeed/MaixPy/tree/master/components/kendryte_sdk/libs
K210 の特権サポートがどんなもんなのか探っているけどS拡張というわけではなさそうかなあ
あんまりこゆボード遊びの経験ないから全般的に知識不足してる気がしてきた(私一人だと LED の controller にあたりを付けるとこで挫折してたかも
はてなブログに投稿しました
Sipeed Maixduino と OLED モジュール (SSD1331) を使って漢字を表示する - 壁ツェーン https://kb10uy.hateblo.jp/entry/2019/11/26/172552
ここ 3 日ぐらい格闘してた内容を書きました
付属のディスプレイ: TFT液晶(QVGA、制御は恐らくST7789)
僕の写真に映ってるの: OLED(96x64、SSD1331)
knowledge辺りと混同していたのかprivilegeをpriviledgeで覚えていた(昔はpriviledgeでもよかったらしいけれど)
K210,RV64IMAC に加えてさっき kb10uy さんが書いてた“Support for different privilege levels to improve safety”らしい
データシートじっくり読んでないけどK210って組み込み向けだしMとUのような
さて、 K210 のデータシートにはこんな一文があってですね
"Support for different privilege levels to improve safety"
そうだ!この研究気になってたし,これ使って RISC-V エミュレータ実装してみれば ISA めっちゃ理解できそう! >> A Retargetable System-Level DBT Hypervisor | USENIX https://www.usenix.org/conference/atc19/presentation/spink
Sはpriviledged ISAなのでuser ISAの方には載ってない