Docker ブリッジ接続
- VirtualBoxのブリッジ接続と同じようにホストと同じセグメントにDockerコンテナを作成する
- ホストのデフォルトゲートウェイとサブネットを確認
```bash
$ def_gw=$(ip route | egrep "^default" | awk '{print $3}')
$ netdev=$(ip route | egrep "^default" | awk '{print $5}')
$ subnet=$(ip route | egret "^[0-9].*$netdev" | awk '{print $1}')
$ docker network create -d bridge --subnet $subnet --gateway $def_gw br0
```
- Dockerコンテナ作成時にIPアドレスと使用するネットワークを指定して作成
```bash
$ ping 192.168.0.36
: IPアドレスが存在しないことを確認
$ docker create -it --net br0 --ip 192.168.0.36 debian
```
- ネットワーク環境によっては--dnsオプションを使用する必要があるかもしれない
- 既に手動でブリッジネットワークを作成していた場合、IPアドレス範囲が重複するとかなんとかいうエラーが出るので既存のブリッジネットワークを削除する必要があるかもしれない
Linux Kernel Document Build方法
概要
linux/Documentation/配下にLinux カーネルのドキュメントが存在する。
ドキュメントはrStで書かれており、sphinxでビルドできる。
ビルドされたものは、https://www.kernel.org/doc/html/v4.11/doc-guide/sphinx.htmlとかで公開されている。(これはv4.11当時のドキュメント)
ここでは、Macでドキュメントをビルドする方法を紹介する。
手順
sphinxをインストール
pip3 install sphinx
automake
をインストール(Makefileの実行に必要)brew install automake
[Option]
sphinx_rtd_theme
,graphviz
,ImageMagick
をインストール(ドキュメントがかっこよくなるらしい)pip3 install sphinx_rtd_theme brew install graphviz ImageMagick # ubuntuの場合はImageMagickではなく、imagemagick
ビルド
cd linux/ make htmldocs
Documentation/output
にドキュメントが生成される。 WSLの場合はsudo apt install attr
してからsetfattr -n system.wsl_case_sensitive -v 1 <dir>
でlinuxカーネルリポジトリ内の全フォルダで大文字小文字を区別するように設定する必要がある。
おまけ
- html以外の形式でもビルドできる。
cscope.out
のビルドmake cscope
- Dashに取り込む。
Linuxへの参加のきっかけとしてDocument書いてみるのもアリなのかも。 日本語翻訳記事もちらほらあるので需要はありそう。
- sphinx version2からは FS#62332 : [linux] [python-sphinx] Cannot build the kernel に紹介されているpatchを適用しないとビルドできない
Yoga book meets Remote Desktop
Yoga book meets Remote Desktop
I bought Yoga book Android 3 days ago.
It is a very prety device.
It is light, smoose, and powerful.
Halo keyboard is better than I think.
However, I was disappointed a bit to use Typora, my favorite Markdown editer.
But, I think ... with using Remote Desktop to my Linux, I can use Typora on my Yoga book.
I tried it.
Preparation of Linux host
install and run xrdp
sudo apt install xrdp sudo systemctl enable xrdp sudo systemctl start xrdp
Connection from Yoga book to Linux
install aRDP on Yoga book( I cannot use Microsoft RDP client for this purpose.)
run aRDP and configure it.
Then you can connect to your Linux.
(on aRDP, i cannot input in Japanese, so this article was wrriten in English)
Arduino Nanoと人感センサHC-SR501
外出/帰宅時に玄関が真っ暗になるので靴を探すのがつらかったので、Arduinoと人感センサで足元を照らす装置を作ってみました。 材料さえあればハンダ付け含めて一時間ちょいで作れるのでおすすめです。
部品
使った部品は全てWishで購入しました。 おそらく、パチもんですが、特に回路に違いなどはなかったので問題無いと思います。
- Arduino Nano
- ボードサポートはArduino Nano/w ATMega328を使用
- 人感センサ HC-SR501
- LED
- 適当な奴
実装
回路
回路ってほどのもんではないですが・・・・・・
HC-SR501の
接続します。
LEDを
接続します。
コード
#define LED PD3 #define HumanSensor PD2 void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); pinMode(HumanSensor, INPUT); } void loop() { int isHuman = digitalRead(HumanSensor); if(isHuman == HIGH) { digitalWrite(LED,HIGH); Serial.println("There are some human.\n"); } else { Serial.println("There are no human.\n"); digitalWrite(LED,LOW); } delay(300); }
非常に単純なコードです。
HC-SR501は人間を感知した際に、HIGHを出力するため、上のようにif文を使わずに
void loop() { int isHuman = digitalRead(HumanSensor); digitalWrite(LED, isHuman); delay(300); }
としてもよいですが、全ての人感センサがHIGHを出してくれるとも限らないので、
if文で分岐したほうが後々別の人感センサを使いたくなったときに変更が楽でしょう。
delayが300msなのは、人感センサの反応時間が最小でも0.3s(らしい)からです。
実装してしまうと大変楽なのですが、最初は人感センサがHIGHを出すのかLOWを出すのか
わからなかったので、そこが面倒でした。
デバッグ中は人間(自分)が近くにいるので、自分に反応しないように人感センサを箱に入れたりしないといけないのも面倒でした・・・・・・
以上、GWのミニ工作でした。