トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2024-1

1
謹賀新年
2
3
Tgif で日本語入力
4
5
6
7
8
9
原稿執筆
10
11
12
ダメダメ
13
14
「模倣と創造」
15
VMware 16.2.4 / Ubuntu 22.04
16
KB5034441
17
18
19
打ち合せ
20
21
22
23
24
25
26
27
28
PYNQ いろいろ
29
RECONF研
30
31
/ /
日付を選択して表示ボタンをクリックするとジャンプできます.
また,xを指定すると指定した年月の日記の一覧が表示されます.

2024-1-29

RECONF研

発表はなんとかかんとか,聞いてもらう人の時間をいただいてもよい程度の形にはできたなかな,と.
VLD研との合同研究会ということで,懇親会では少し分野違いの人とも,あれこれお話しできて楽しかった.

2024-1-28

PYNQ いろいろ

sshやシリアルコンソールで接続したPYNQ環境でFPGAのコンフィギュレーションをしたかったので,

source /usr/local/share/pynq-venv/bin/activate
export BOARD=ZCU111
export XILINX_XRT=/usr

としてPythonで,

from pynq import Overlay
overlay = Overlay("base.bit") 

と,するなど.

また,PLに接続されたDRAMにアクセスしたかったので,

/dts-v1/;
/plugin/;
/ {
    /*reserved memory*/
    fragment@4 {
        target-path = "/";
        overlay4: __overlay__ {
            reserved-memory {
                ranges;
                reserved {
                    reg = <0x04 0x00 0x01 0x00>;
                };
            };
        };            
    };
};

というdram.dtsoを用意して,

xilinx@pynq:~$ dtc -I dts -O dtb -o dram.dtbo dram.dtso -q
root@pynq:/home/xilinx# sudo -s
root@pynq:/home/xilinx# mkdir /sys/kernel/config/device-tree/overlays/dram
root@pynq:/home/xilinx# ls /sys/kernel/config/device-tree/overlays/dram
dtbo  path  status
root@pynq:/home/xilinx# cat /sys/kernel/config/device-tree/overlays/dram/status
unapplied
root@pynq:/home/xilinx# cat dram.dtbo > /sys/kernel/config/device-tree/overlays/dram/dtbo
root@pynq:/home/xilinx# cat /sys/kernel/config/device-tree/overlays/dram/status
applied

とか.
dtsoファイルの

                    reg = <0x04 0x00 0x01 0x00>;

は,0x4_0000_0000から0x1_0000_0000を対象にすることを意味している.
これで,Cからなら

   int mem;
   if((mem = open("/dev/mem", O_RDWR)) < 0) {
       perror("open");
       return EXIT_FAILURE;
   }
   
   volatile unsigned int *dram;
   dram = (volatile unsigned int *)mmap(NULL,
                                        0x100000000llu,
                                        PROT_READ | PROT_WRITE,
                                        MAP_SHARED,
                                        mem,
                                        0x400000000llu);

としてアクセスしたり,Pythonで,

buffer = pynq.allocate((2**19,), dtype='u4', target=ol.ddr4_0)
buffer[0:10] # 読む
buffer[0:10] = [0xcafe0000 + i for i in range(10)] # 書く
buffer.flush() # フラッシュ
buffer.freebuffer() # 解放

とかして,アクセスできる.

参考:

2024-1-19

打ち合せ

いろいろとやらないといけないことが積み上がってきたけど,
今日は打合せの一日.

2024-1-16

KB5034441

Windows10でKB5034441のアップデートに0x80070643エラーで失敗するなあと思ったらサポートがでてた.
KB5034441: Windows 10 バージョン 21H2 および 22H2 用 Windows 回復環境の更新プログラム
回復パーティションに空き容量が必要だそうで,回避にはパーティションのサイズ変更が必要とのこと.
手順は
KB5028997: WinRE 更新プログラムをインストールするためにパーティションのサイズを手動で変更する手順
に.
指示通りやって,アップデートの再試行で成功.

2024-1-15

VMware 16.2.4 / Ubuntu 22.04

カーネルアップデートのたびにカーネルモジュールを自分でビルドしないといけなくて面倒...
そろそろ17系にアップグレードするか,いっそVirtualBoxにするか.

git clone https://github.com/mkubecek/vmware-host-modules
cd vmware-host-modules
git checkout workstation-16.2.4
make
sudo make install

でいいかと思いきや,カーネルが 6.5.0-14 で,gcc-12 が必要とのこと.

sudo apt update
sudo apt install gcc-12 g++-12

でビルド.ビルド時のエラーは,

を参考に対応.

2024-1-14

「模倣と創造」

佐宗さんの模倣と創造 13歳からのクリエイティブの教科書

  • 創造力は鍛えられる.大人でも.
  • 子供の創造力を壊さないように,大人も創造力を鍛える必要がある
  • 自分が主語の時間をすごす
  • 余白を作る

っていうのが,すごく刺さった.

2024-1-12

ダメダメ

いろいろと,とてもダメダメだった.
いろいろとたてなおさねば.

2024-1-9

原稿執筆

1月RECONF研の技報執筆.
いつものように〆切間際になって,ようやく.

2024-1-3

Tgif で日本語入力

生活環境は,fcitx-mozcなUbuntu 22.04.
これにaptでインストールしているTgifではIMでの日本語入力ができてないどころか,
コピペしようとしても文字化けしてペーストできなかった.
というわけで,

を参考に,先人の日本語パッチあててTgifをビルド.

% wget --no-check-certificate https://bourbon.usc.edu/tgif/ftp/tgif/tgif-QPL-4.2.5.tar.gz
% mkdir tgif-patches; pushd tgif-patches
% wget --no-check-certificate https://bourbon.usc.edu/tgif/ftp/tgif/patches/tgif-QPL-4.2-patch5a.gz
% wget --no-check-certificate https://bourbon.usc.edu/tgif/ftp/tgif/patches/tgif-QPL-4.2-patch5b.gz
% wget https://ayapin-film.sakura.ne.jp/Tgif/Srcs/tgif-utf8conv2euc.patch
% wget https://ayapin-film.sakura.ne.jp/Tgif/Srcs/tgif-textcursor-a-urasim.patch
% popd
% tar xvf tgif-QPL-4.2.5.tar.gz
% cd tgif-QPL-4.2.5
% patch -b -p0 < ../tgif-patches/tgif-QPL-4.2-patch5a
% patch -b -p0 < ../tgif-patches/tgif-QPL-4.2-patch5b
% patch -b -p0 < ../tgif-patches/tgif-utf8conv2euc.patch
% patch -b -p0 < ../tgif-patches/tgif-textcursor-a-urasim.patch

で,Makefile.inに,-D_HAS_STREAMS_SUPPORT -DENABLE_NLS を追加して

% ./configure --prefix=/usr/local/
% make

としてビルド.
locale.hがないとかstropts.hが邪魔とかに起因するコンパイルエラーがでるので適宜修正してビルド.
終わったら,

% sudo make install

でインストールして,$HOME/.Xresources に

Tgif.Lang: ja_JP.eucJP
Tgif.Modifiers: false
Tgif.ConvSelection: _JAPANESE_CONVERSION
Tgif.DoubleByteInputMethod: xim
Tgif.*IMProtocol: fxitx
Tgif.DefaultSingleByteFont:     Helvetica
Tgif.DefaultColorIndex:         0
Tgif.UseNKF: true
Tgif.CopyAndPasteJIS: true
Tgif.PreeditType: overthespot
Tgif.HKUShowFontChar:           \244\244
Tgif.GBShowFontChar:            \271\372
Tgif.RyuminShowFontChar:        \244\242
Tgif.GothicBBBShowFontChar:     \244\316

とか書いたものをxrdbで読み込んで,

% XMODIFIERS=@im=fcitx LANGUAGE=ja_JP LANG=ja_JP.EUC-JP LC_ALL=ja_JP.EUC-JP LC_CTYPE=ja_JP.EUC-JP /usr/local/bin/tgif

として実行.
これで,日本語入力モードを有効にできるようになった.
...が,入力してもテキストボックスに入らない.
コード眺めてみると,そもそも,text.c の,DrawText関数の時点で入力した文字列を取得できていない模様.
とりあえず,ペーストでだけでも日本語入ればいいや,と割り切ることにして,
text.cでペーストのハンドリングしてる箇所で無理矢理 UTF-8 → EUC-JP 変換することにした.

text.c(22)

2024-1-1

謹賀新年

2023年の振り返りを踏まえて,2024年はもっと主体的に楽しく活動したいな,と.