コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2020年12月3日 >>> 2020年11月20日
link もっと後

2020年12月3日

Zephyrのcollaboratorその2

目次: Zephyr

ZephyrのWatchdogのCollaboratorになりました。先日(2020年11月17日の日記参照)CollaboratorになったRISC-VもWatchdogも、元々メンテナーが不在の領域です。

発端はSiFive HiFive1を買った記念にWatchdogドライバを書いたら、割とあっさり動いたので、PRを送ったことです。送ったまでは良かったのですが、メンテナーが不在でした。またこのパターン……。

Zephyrは周辺ドライバが充実しているのが売りですが、メンテナーは不足気味です。今ならサブシステムのCollaboratorくらいなら、何の実績もなくても気前良く追加してくれます。

RTOS興味ある人はいかがですか?

編集者:すずき(2023/09/24 12:00)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2020年11月23日

調子が良くないWindows 10

目次: Windows

最近ノートPCというかWindows 10の調子が良くなくて、いきなりハングアップしてCtrl+Alt+Delすら受け付けなくなったり、タスクバーの文字が全部消えて操作できなくなったり、謎の動きをしています。

おかしくなると大抵操作不能で、そのまま電源を切るしかありませんが、今日のヘンテコ現象はちょっと違っていてスクリーンショットを取れました。


Wi-Fiのグラフがおかしくなった

Wi-Fiの有効、無効を切り替えても直らず、PCを再起動したら直りました。いったい何だったんでしょうね?

編集者:すずき(2023/09/24 12:47)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2020年11月22日

OpenSSLのAESアクセラレータを強制的に無効にする

たまに必要になって、いつも調べなおしている気がするので、早く探せるようにメモしておきます。

OpenSSLはAESなどいくつかの処理でハードウェアアクセラレータを使うように実装されています。基本的には /proc/cpuinfoのフラグを見て自動的に設定しますが、たまにアクセラレータを強制的に有効or無効にしたくなるときがあります。

OpenSSL: ARM系CPUの機能フラグを上書きできる箇所

void OPENSSL_cpuid_setup(void)
{
    const char *e;
    struct sigaction ill_oact, ill_act;
    sigset_t oset;
    static int trigger = 0;

    if (trigger)
        return;
    trigger = 1;

    if ((e = getenv("OPENSSL_armcap"))) {
        OPENSSL_armcap_P = (unsigned int)strtoul(e, NULL, 0);    //★これ
        return;
    }

ソースコード(OpenSSLのGitHubへのリンク)をみると、OPENSSL_armcapという環境変数でCPUの持つ機能フラグを好きな値で上書きできることがわかります。

実際使ってみよう

ROCKPro64(Rockchip RK3399, Cortex-A72 + Cortex-A53)で測ってみます。

ROCKPro64でのベンチマーク結果
# AESアクセラレータON

$ openssl speed -evp aes-128-gcm

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     168921.74k   499845.48k   837985.11k  1005767.68k  1070077.27k  1046943.06k


# AESアクセラレータOFF

$ OPENSSL_armcap=0 openssl speed -evp aes-128-gcm

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm      46764.84k    51727.58k    53175.72k    53730.99k    54086.31k    54220.12k

OFFにするとどのサイズでもほぼ同じ速度になり、いかにもソフトウェア処理っぽい結果になります。アクセラレータのON/OFFが効いていそうですね。

編集者:すずき(2020/11/23 16:23)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2020年11月21日

Zephyrのダウンロードとモジュール

目次: Zephyr

Zephyrは本体(GitHubへのリンク)と、モジュールに分かれています。

モジュールを1つも使わなくてもZephyrは動きますが、sanitycheckを実行するときモジュールに依存したテストでビルドエラーが出て、ノイズになってしまいます。

Zephyrのモジュール管理

Zephyrはwestという独自のモジュール管理ツールを持っています。インストール方法は公式ドキュメント(Installing west - Zephyr Project Documentation)にあるとおりです。

westのインストール
$ pip3 install --user -U west

Zephyrとモジュールのダウンロード方法も公式ドキュメント(Getting Started Guide - Zephyr Project Documentation)にあるとおりの手順です。

Zephyrのダウンロード(公式手順)
$ mkdir work
$ cd work

$ west init
$ west update

非常に楽ですね。

今まで使っていたZephyrにモジュールだけ足したい

あまり推奨されるやり方ではないですが、今まで使っていた「素の」Zephyrのツリーを再利用して、モジュールだけ追加したい場合はどうしたら良いでしょうか?

ポイントはwest initで生成される .west/configというファイルを手動で作ることです。workというディレクトリに今まで使っていたZephyrのコードがあるとします。

westのコンフィグファイルを作る
$ cd work

$ west topdir

FATAL ERROR: no west workspace found from "/home/username/work"; "west topdir" requires one.
Things to try:
  - Change directory to somewhere inside a west workspace and retry.
  - Set ZEPHYR_BASE to a zephyr repository path in a west workspace.
  - Run "west init" to set up a workspace here.
  - Run "west init -h" for additional information.

$ mkdir .west
$ cat > .west/config
[manifest]
path = zephyr
file = west.yml

$ west topdir

/home/username/work

コンフィグを作ってwest topdirが動作したら、west updateも実行できるようになっているはずです。モジュールは数が多く手動でダウンロードすると大変ですが、westに持ってきてもらえば楽ですね。

編集者:すずき(2023/09/24 12:01)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2020年12月3日 >>> 2020年11月20日
link もっと後

管理用メニュー

link 記事を新規作成

<2020>
<<<12>>>
--12345
6789101112
13141516171819
20212223242526
2728293031--

最近のコメント5件

  • link 21年9月20日
    すずきさん (11/19 01:04)
    「It was my pleasure.」
  • link 21年9月20日
    whtさん (11/17 23:41)
    「This blog solves my ...」
  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」

最近の記事3件

  • link 23年4月10日
    すずき (11/15 23:48)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年11月6日
    すずき (11/15 23:47)
    「[Ubuntu 24.04 LTS on ThinkPad X1 Carbon Gen 12] 目次: Linux会社ではTh...」
  • link 24年11月11日
    すずき (11/15 23:26)
    「[Pythonのテストフレームワーク] 目次: Python最近Pythonを触ることが増えたのでテストについて調べようと思い...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/19 01:04