- まずディレクトリをつくる
sudo mkdir -p /opt/chroot/fedora30/var/lib/rpm sudo rpm --root /opt/chroot/fedora30/var/lib/rpm --initdb
- パッケージをインストールする
wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-release-30-1.noarch.rpm wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-release-common-30-1.noarch.rpm wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-repos-30-1.noarch.rpm wget ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/30/Everything/x86_64/os/Packages/f/fedora-gpg-keys-30-1.noarch.rpm sudo rpm --root /opt/chroot/fedora30 --nodeps -ivh fedora-release-30-1.noarch.rpm fedora-release-common-30-1.noarch.rpm fedora-repos-30-1.noarch.rpm fedora-gpg-keys-30-1.noarch.rpm
- 必要となる設定ファイルをつくる
sudo mkdir -p /opt/chroot/fedora30/{dev,etc} sudo cp -a /dev/{null,stderr,stdout,stdin,zero,random,urandom} /opt/chroot/fedora30/dev/ sudo cp /etc/{resolv.conf,localtime} /opt/chroot/fedora30/etc/ - yumでbashとdnfをインストールする
sudo yum --nogpgcheck --installroot=/opt/chroot/fedora30/ install bash dnf
- chrootして、他のパッケージをインストールする
sudo chroot /opt/chroot/fedora30/ dnf install packages...
2020-04-04
RHEL7にFedora 30のchroot環境をつくる
2020-03-29
timeoutコマンドで設定したタイムリミットをキャンセルするには
timeoutコマンドを使用すると、任意のコマンドの実行時間を制限することができる。
例えば、
timeout 30 sleep 1hは、
sleep 1hというコマンドを実行し、30秒経つとTERMシグナルを送る。
一度設定したタイムリミットを延ばしたくなった場合、以下のようにするとよい。
kill -s SIGKILL PIDまたは、
kill -s SIGSTOP PIDなお、PIDは
timeoutプロセスの方のPIDである。
後者の場合、SIGCONTを送れば、ストップしていた時間は延長されずにタイムリミットが経てばTERMシグナルが送られる。
2020-03-28
tcpdumpを一般ユーザーで実行する設定
Tcpdumpを
sudoなしで一般ユーザーから実行するための設定方法を説明する。
-
まず
/usr/sbin/tcpdumpが実行できるユーザーを限定する。sudo groupadd pcapgroup sudo usermod -a -G pcapgroup user sudo chgrp pcapgroup /usr/sbin/tcpdump sudo chmod 750 /usr/sbin/tcpdump
もしwheelでよければ、1行目のgroupaddは要らない。 -
ケーパビリティを
/usr/sbin/tcpdumpに設定する。sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
参考
2020-03-23
RolandのミキサーM-200iのREACポートのオーディオをLinuxマシンで録音
Rolandという浜松にある音響機器メーカーが出しているM-200iというオーディオミキサーがある。
このミキサーには、REACポートというディジタル音声を40チャネル出力するポートが備わっている。
ステージボックスとの接続や他のミキサーとの接続に使用するポートで、Ethernetパケットに音声情報を載せて送るようになっている。
Windows用には、このポートを通して録音するソフトが出ている。
Mac OS X用には、サードパーティからREAC driverというGPL3のツールが出ている。
どちらもLinuxでは使用できないので、REAC driverのソースを参考に、Linuxで動くものを作成し始めた。
REAC driverのようなカーネル空間で動くオーディオドライバにすると扱いやすいのだろうが、そこまでするのは大変なので、ユーザー空間で動かすプログラムをつくることにした。
Linuxのsocketをつかってプログラムを書いてみたが、パケットロスを回避するのが難しく断念、最終的に、tcpdumpでファイルに保存しておき、後処理をすることにした。
- まず、M-200iのREACポートとLinuxマシンとをLANケーブルで接続する。
(1 Gbpsでリンクすることを期待していたのだが、dmesgを見るとなぜか100 Mbpsでリンクしていた。)
e1000e: enp0s31f6 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None e1000e 0000:00:1f.6 enp0s31f6: 10/100 speed: disabling TSO
今回はストレートケーブルを使って、スイッチングハブなどを介さずに接続した。 - 以下のように
tcpdumpでキャプチャし、ファイルに保存する。このとき、オプション-Bでカーネル上のバッファサイズを大きく取っておく。今回使用した環境 (Intel Core i7-7700 + H270) では、256MiBに設定したらようやくパケットロスしなくなった。$ tcpdump -i enp0s31f6 -B 262144 -w a.pcap
このときtcpdumpはパケットロスしたと報告するのだが、次のステップでパケットを解析すると、音声情報が載ったパケットのロスは無かった. - そのあと、自作のプログラムで、チャネルを選択して24-bit WAVE形式に変換する。プログラム自体はそのうちGitHubで公開するかもしれない。
$ reacrecorder --save-channels 21,22,39,40 --save-wav-24 --load-pcap-file a.pcap
2020-01-02
カイロ比較
寒い季節に入り、外出時にカイロを持ちたくなる。色々な種類のカイロを比較し、コストの点でどれが良いか考えてみる。
7800mAh × 3.6V = 28Wh
ジュールになおすと、
28Wh × 3600s/h = 101kJ
になる。
というわけで、充電1回あたりの電気代は0.03円になる。
リチウムイオン電池は、高温で使用するとあまり寿命が持たないという点も考慮するべきで、例えば1シーズン4ヶ月毎日使用し、2年間こわれないとすると、240回使用できることになる。
本体価格3000円の場合は、1回あたりのコストは
3000円 / 240 = 12.5円
になる。
スイッチがついており使用したいときだけ発熱できる。
640円/500ml × 12.5ml = 16円
となる。
火口は1シーズン毎に取り替えが推奨されている。742円で販売されており、4ヶ月毎日 (120日) 使用すると仮定し、
742円 / 120 = 6.2円
が1回あたり火口のコストになる。
本体は何年でも使用できるようなので、1回あたりコストには含めない。合計で、22円/回になる。
ガソリンの比重が0.737g/ml、発熱量が47kJ/gなので、熱量は
12.5ml × 0.737g/ml × 47kJ/g = 433kJ
である。
なお、白金カイロstandard (miniの2倍) は使い捨てカイロの13倍の熱量とのことなので、使い捨てカイロの熱量は60-70kJであろうと考える。
燃料を使用するので、健康上・安全上の注意が必要である。燃料を飲まない、吸わない、火気の無い場所で保管・給油する。
いちど発熱が始まると、燃料を使い切るまで発熱し続ける。電気カイロのようにon/offを繰り返すような使い方 (通勤・通学の行きと帰りだけ使用するなど) には不便かもしれない。
広告
使い捨てカイロ
鉄を袋の中で徐々に参加させることで発熱する。 まとめ買いすれば、1個あたり20円くらい。電気カイロ
リチウムイオン電池に充電しておき、内蔵のヒーターにより発熱する。 ラインナップが豊富だが、 今回は7800mAhで3000円のものを比較に取り上げる。 蓄えられるエネルギーは、オイル充填式カイロ
ベンジン (ナフサ、ガソリンとも呼ばれる) を白金触媒により酸化させることで発熱する。酸化反応を開始するために最初だけ火で加熱させるが、使用中に炎が出ているわけではない。 白金カイロminiを例に比較する。持続時間12時間で他のカイロと比較しやすいので。 燃料は500ml入が640円くらいで販売されているので、1回あたり12.5ml使用する場合の1回あたりのコストは、いちど発熱が始まると、燃料を使い切るまで発熱し続ける。電気カイロのようにon/offを繰り返すような使い方 (通勤・通学の行きと帰りだけ使用するなど) には不便かもしれない。
比較
コスト、熱量など、表にまとめる。 熱量の点ではオイル充填式カイロが最も高い。この比較では白金カイロminiだが、standardは2倍になる。また、コスト1円あたりの熱量で比べても、オイル充填式カイロの方が良い。| 使い捨てカイロ | 電気カイロ | オイル充填式カイロ | |
|---|---|---|---|
| 時間 | 12h | 12h | 12h |
| 1回あたりコスト | 20円 | 13円 | 22円 |
| 本体価格 | n/a | 3000円 | 2400円 |
| 質量 | 40g | 250g | 70g |
| 1回あたり熱量 | 60-70kJ | 100kJ | 433kJ |
| 熱量/コスト | 3.3kJ/円 | 8.0kJ/円 | 19kJ/円 |
使用シナリオ
使用するシナリオを想定し、どのカイロが良いか考えてみる。通勤・通学
朝・夕方に1時間づつなど、断続的な使用であれば、電気カイロが良いだろう。使用するときだけonにすれば良い。 初期費用は使い捨てカイロより高いが、上記の例では150回使用すれば使い捨てカイロと同じコストになる。レジャーなど
もし継続的にカイロを使用する必要が無いのであれば、使い捨てカイロが良いだろう。外の仕事
外で働くなど長時間にわたってカイロを使用したいのであれば、オイル充填式カイロが良いと思う。 いちど発熱が始まると燃料を使い切るまで発熱し続ける。途中で止めるわけにはいかない。広告
2019-03-02
Xperia Z5にFacebookアプリをインストールできない
Messenger, Messenger Lite, Facebook Lite などをインストールしようとすると、いずれもエラーコード 910 で失敗した。
サードパーティからAPKをダウンロードして、
adb installをつかってインストールすると良いという記事を見つけたので試してみたが、
以下のエラーで結局できなかった。
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION: Package com.facebook.mlite attempting to redeclare permission com.facebook.permission.prod.FB_APP_COMMUNICATION already owned by com.facebook.appmanager]どうやら、プリインストールされている
com.facebook.appmanager が悪いようだ。
ここまで調べて、インストールは諦めることにした。
もともとインストールしようとした同期は、ブラウザでMessengerにアクセスすると、アプリのインストールを促されて使用できなくなったからだ。
ブラウザをDesktop siteモードにすると、Messengerにアクセスできるので、回避策になる。
2018-11-02
pip install --userでインストールしたパッケージをprocmailで使用する
ホームディレクトリにPIPをつかってパッケージをインストールすると、
.local/lib/の下に展開される。
ところが、このディレクトリはSELinuxのコンテクストがunconfined_u:object_r:gconf_home_t:s0になっており、問題が生じる。
例えば、ProcmailからPythonを呼び出し、その中でモジュールをインポートしようとすると、以下のようなエラーメッセージが出る。
以下はBeautifulSoupを使用した例。
Traceback (most recent call last): File "/tmp/a.py", line 3, inとりあえず以下のコマンドで問題を回避する。from bs4 import BeautifulSoup ImportError: cannot import name 'BeautifulSoup'
$ chcon -R unconfined_u:object_r:user_home_t:s0 .local/lib/python3.4/site-packages/
登録:
投稿 (Atom)