てるてるぼうず の軒下

この記事の内容は私個人の主観であり、所属する組織とは関係がありません。続けられるように頑張りマス。

DIY ~こんなの作りました~⓶



昨年お義父さんにロードバイクを頂いた。結構なお値段のするものとのこと。
ロードバイクをどこに置くべきか?
家の駐輪スペースには家族の自転車が所せましと止められており、簡易的な屋根はあるもののほぼ野ざらし大切なロードバイクを置くには適していない。
インターネットでロードバイクの置き場を調べてみると、家の中に置くもしくはかけておくものらしい。。。
我が家でもそのような場所はあるのか?すごく悩んだ。結果、玄関スペースしか場所はなさそうだ。
では、その置き方。
玄関という場所を有効に利用するためには壁掛けにするしかない。
いざ、運用する時に自分の背丈を考えるとそれほど高い位置に掲げられない。
なんかよい方法はないのか。。。
ねこ吉さんのブログでかっこ良いロードバイク保管法が記されている。これしかない。これなら背丈のない私でも高い位置にロードバイクを掲げることができる。
ロードバイクを天井から吊るす保管法 – ねこ吉のブログ

では、どうやって仕掛けをつくるのか?
ねこ吉さんの絵では、けっこう大掛かりな仕掛けが要りそうだ。
玄関にこの仕掛けはできないなぁ。あと、家にはできるだけ穴を空けたくない。
ここですごく悩んだ。3ヶ月ほど悩んだ。
結論は平安伸銅工業さんの ラブリコ(labrico)を使い、2x4材の柱を作りL型棚受けを使って滑車を付けることにした。

大まかな設計は進んできたが、あと問題なのはウチの壁の幅木。

これがあると、2x4材をピタリと壁にくっつけることができない。ここでも思案した。
対応は幅木の高さと同じ角材を土台とし敷いた。こんな感じ。

これで土台は整ったので、あとは柱を立てて。。。

L型棚受けを付ける。このL型棚受けは、折り畳みしきのものを採用。(過重はバッチリ)

あとは、滑車部分を付ける。
滑車部分をできるだけ天井に近いところに持っていきたいので下駄を敷く。また、L型棚受けから外れないようにこんな工夫もして。。。


完成!


玄関にむきだしのロードバイクを置くのも結構かっこイイかなとか思ったけど、チェーンになにかが絡まるとか、ふとした拍子にロードバイクが汚れるのも嫌なのでカバーをかけてみた。こんな感じ。



かかった費用

モノ 価格 購入元 備考
2x4材(SPF 2×4×8F 約38×89×2440mm) x 2(柱) x 1(天井部分のあて木) ¥4,224 コーナン pro.kohnan-eshop.com
土台の角材(ホワイトアッシュ) ¥3,376 木材DIY通販サイト|ウッディヨネダ
woodyyoneda-shop.com
折り畳み式L型棚受け ¥2,399 AMAZON
Amazon | Sumnacon 2本セット 棚受け ブラケット おりたたみ アイアン 木の板 ブラケット 棚 支え L型 おしゃれ 耐荷重60kg ネジなし (L, ブラック) | 棚受
滑車 ¥15,300(当時) AMAZON www.amazon.co.jp
自転車カバー ¥2,550(当時) AMAZON
www.amazon.co.jp

DIY ~こんなの作りました~①

コロナ禍のためリモートワーク中心となっており、モニター1枚だとどうにも作業効率が上がらない。 もう1枚モニターを付け足したいと思っていたけど、私の机は壁に取り付けられた備え付けのものなので、クランプ式のモニターアームが付けられない。
そんな時、 ラブリコ+モニターアームを使ってキッチン・ダイニングでTVが見れるモニターをすっきり導入 | Do育 という記事を見た。 「そうだ!柱を立ててそこにモニターアームを付ければ良いんだ」ということで窓枠に2x4材で柱を立てて、冒頭のように念願のモニターアームを付けてみた。
以下では、その道のりをお見せする。
1. もともとの窓枠
縦長・ハンドル式開閉(これが後に問題となる。。。)

2. 窓枠の足元
図中の赤枠に示したように少し凸凹があり、2x4材をそのまま立てることができない。

そのため、この凸凹をゴム版で埋め合わせできるようにした。

3. 窓枠の横枠
図中の赤枠に示したように窓の横っちょにも凸凹があり、2x4材をぴったりと窓枠につけることができない。

そのため、2x4材を以下の図のように削った。削る際、2x4材を購入した近くのコーナン様で大工道具のルーターをお借りして工作室にて時間をかけて削り出しを行った。ありがとう❢コーナン様❢

4. スターボルトとアジャスターベース
窓枠の足元のように窓枠の天井部分もやはり凸凹があり、ラブリコのような平面を押し上げて固定するといった器具が使えない。そのため、以下の図のようなスターボルトとアジャスターベースを使うことにした。

5. アクシデント❢

窓の開閉が回転ハンドル式。このままではハンドルが回転しない。 はて、どうしたものか。。。
6. 対策

回転ヤスリを手に入れ、ハンドルの通る部分を削ることにした。
7. 完成

窓枠に2x4材で作った柱を立て(倒れないようにつっかえ棒をし)、モニターアームを付けて完成❢

かかった費用
モノ 価格 購入元 備考
2x4材 ??? コーナン pro.kohnan-eshop.com
ゴム版 ??? コーナン  
アジャスタ―ボルトとベース ??? コーナン  
モニターアーム 15,300(当時) AMAZON www.amazon.co.jp

Raspberry Pi 開発環境構築(Windows編)

Raspberry Pi 開発環境構築(Windows編)

ラズパイ開発環境構築のゴールとして2段階の状態を目指します。

  1. PC(Windows)とSSH連携起動
  2. Raspberry Pi 単体起動

1. Windows PC の準備

環境
  まずRaspberry Pi 用OSのイメージ作成を目的としたツール、初期設定のためのSSH接続ツールやVNC(Virtual Network Computing)クライアントツールをWindows10へインストールします。

1.1. 圧縮解凍ソフトウェア(7-Zip) インストール

  入手した圧縮ファイルを解凍します。
こちら7-Zip形式で各環境用のインストーラがあります。 各々の環境にあったインストーラをダウンロードし、インストールを実行してください。
https://sevenzip.osdn.jp/"7-Zip"

1.2. マイクロSDカードのフォーマットソフトウェア(SDFormatter)インストール

  マイクロSDカードをフォーマットします。
こちらインストーラがありますので、ダウンロード後インストールします。
https://www.sdcard.org/jp/downloads/formatter/"SDFormatter 5.0.1"

1.3. マイクロSDカードへのライティングソフトウェア(Win32DiskImager)インストール

  マイクロSDカードにイメージファイルを書き込みます。
こちらインストーラがありますので、ダウンロード後インストールします。
https://ja.osdn.net/projects/sfnet_win32diskimager/

1.4. ネットワーク接続自動設定ソフトウェア(Bonjour)インストール

  ネットワーク接続をIPアドレスではなく、ホスト名により可能にします。
こちらインストーラがありますので、ダウンロード後インストールします。
https://support.apple.com/kb/DL999?locale=ja_JP

1.5. VNCクライアントソフトウェア(Real VNC Viewer)インストール

  ネットワーク上のコンピュータを遠隔操作します。
こちらインストーラがありますので、ダウンロード後インストールします。
https://www.realvnc.com/en/connect/download/viewer/

1.6. USB Ethernet/RNDIS Gadgetドライバ インストール

raspberry pi zero をWindows10マシンとUSBケーブルで接続し電力確保すると同時にwindows10マシンからraspberry pi を制御できるようにします。
こちらにRNDIS(Remote Network Driver Interface Specificaton)ドライバのインストーラがありますので、ダウンロード後インストールします。 http://www.catalog.update.microsoft.com/Search.aspx?q=Acer%20Netchip%20RNDIS%20Ethernet%20Gadget

(参照元)
USB 1本とSDカードライタだけでできるUSB OTGを用いたRapsberry Pi Zero WH のセットアップ

2. PC(Windows)とSSH連携起動

Macによりラズパイ専用OSであるRaspbianmicroSDカードに書き込む方法を記載します

2.1. OSイメージダウンロード

  Raspbianダウンロード元 : https://www.raspberrypi.org/downloads/raspbian/

2.2. ドライブの識別

microSDカードをminiSDカードアダプタに挿して、SDカードリーダーライターを Windows10 PC に接続すると自動的にドライブレターが割り当てられます。(下図ではFドライブ) f:id:teruterubohz:20200623153419j:plain

2.2.1. SDカードフォーマット

  「1.2. マイクロSDカードのフォーマットソフトウェア インストール」で準備したSDFormatterを使い、SDカードをフォーマットします。
※フォーマット対象カードを確認後、フォーマットを実施してください。 f:id:teruterubohz:20200623155528j:plain   フォーマット完了後、以下のダイアログが表示されます。 f:id:teruterubohz:20200623160023j:plain

2.3. OSイメージ書き込み

  「1.3. マイクロSDカードへのライティングソフトウェア インストール」で準備したWin32DiskImagerを使い、 事前にダウンロードしておいたraspbianイメージをmicroSDカードに書き込みます。
f:id:teruterubohz:20200623161231j:plain

2.4. OTG設定

  config.txt と cmdline.txt の編集をします

2.4.1. config.txt 編集

  「config.txt」をテキストエディタで開き、最終行 にdtoverlay=dwc2と追記します。 f:id:teruterubohz:20200623165242j:plain

f:id:teruterubohz:20200623170240j:plain

2.4.2. cmdline.txt 編集

  「cmdline.txt」をテキストエディタで開き、ファイル内の中間あたりにあるrootwaitとquietの間にmodules-load=dwc2,g_etherを追加します。 f:id:teruterubohz:20200623165449j:plain

f:id:teruterubohz:20200623171056j:plain

2.5. SSH設定

  「ssh」(拡張子なし)を作成し、SDカードを取り出します。 f:id:teruterubohz:20200623171436j:plain

2.6. Raspberry Pi SSH連携起動

f:id:teruterubohz:20200601010425j:plainraspberry piをPCとmicroUSBケーブルで上図のように接続し、LED点灯が落ち着くまで約2分ほど待ちます。その後、以下のコマンドを使ってラズパイと接続します。

  Tera Term を起動し、ホスト:raspberrypi.local とSSH接続します。 f:id:teruterubohz:20200623174901j:plain

  下記画面で「続行(C)」を押します。 f:id:teruterubohz:20200623175022j:plain

  以下の画面でユーザ名:piパスフレーズraspberry と入力し、「OK」を押します。 f:id:teruterubohz:20200623175049j:plain

  ログインできると以下のようになります。 f:id:teruterubohz:20200623174912j:plain

2.7. Raspberry Pi インターネット接続確認

  まず自身のIPアドレスを確認したいので[raspberrypi.local]に対して ping を打ってみます。その後、Raspberry Pi がインターネットに接続されていることを確認するため GoogleDNS サーバ(8.8.8.8 or 8.8.4.4)に対して ping を打ってみます。
※-cオプション:ping の回数

f:id:teruterubohz:20200601002731p:plain

2.8. Raspberry Pi システム更新

sudo apt-get update
sudo apt-get upgrade

2.9. Raspberry Pi ソフトウェア設定

SSH接続ができたら次のコマンドで raspberry pi の設定を行います。

pi@raspberrypi:~ $ sudo raspi-config

f:id:teruterubohz:20200601011423p:plainraspberry pi 設定画面

2.9.1. カメラ有効化

[5 Interfacing Options] f:id:teruterubohz:20200601013730p:plain

[P1 Camera] f:id:teruterubohz:20200601013739p:plain

[Yes] f:id:teruterubohz:20200601013743p:plain

[OK] f:id:teruterubohz:20200601013747p:plain

2.9.2. VNC有効化

[5 Interfacing Options] f:id:teruterubohz:20200601013730p:plain

[P3 VNC] f:id:teruterubohz:20200601014330p:plain

[Yes] f:id:teruterubohz:20200601014339p:plain

[OK] f:id:teruterubohz:20200601015137p:plain

2.9.3. VNC解像度変更

[Advanced Options] f:id:teruterubohz:20200601015640p:plain

[5 Resolution] f:id:teruterubohz:20200601015644p:plain

[DMT Mode 51 1600x1200 60Hz 4:3]※適切な設定を選択 f:id:teruterubohz:20200601015649p:plain

[OK] f:id:teruterubohz:20200601015655p:plain

Raspberry Pi 単体起動

  1. Wi-Fi設定
  2. Raspberry Pi 起動

Raspberry Pi 開発環境構築(Mac編)

Raspberry Pi 開発環境構築(Mac編)

ラズパイ開発環境構築を目指します。

  1. PC(Mac)とSSH連携起動
    PCとRaspberry Pi のUSBポートをUSBケーブルでUSB OTG(On The Go) 接続 (USBポートで電力を確保しつつssh接続) f:id:teruterubohz:20200524162803j:plain
  2. Raspberry Pi 単体起動
    電源を確保・Wi-Fi接続しつつモニタ、キーボード、マウスを接続し、Raspberry Pi 単体で起動

f:id:teruterubohz:20200607144909j:plain

1. PC(Mac)とSSH連携起動

Macによりラズパイ専用OSであるRaspbianmicroSDカードに書き込む方法を記載します

1.1. OSイメージダウンロード

Raspbianダウンロード元 : https://www.raspberrypi.org/downloads/raspbian/

1.2.Mac ドライブの識別

microSDカードをminiSDカードアダプタに挿してMacのSDカードスロットに挿入。microSDカードが認識されるとMac画面に新たに認識されたドライブのアイコンが現れます。(例ではboot)

SDカードのドライブ名を確認するために次のコマンドでファイルシステム名やドライブ名を確認します。

mac:〜$df -ah

このコマンドの実行結果としてファイルシステムリストが表示されます。そしてこの中に/Volumes/bootが表示されるレコードがあります。

/dev/disk2s1   252Mi   53Mi  199Mi    22%       0          0  100%   /Volumes/boot

これより/dev/disk2s1と示された/dev/disk2が該当ドライブと分かる。ここでディスク識別を間違えるとmicroSDをフォーマットするつもりが関係のないディスク領域を削除してしまうので、十分に注意しましょう。

1.2. SDカードフォーマット

  FAT32、ディスク名をRPIとして、以下のコマンドでmicroSDカードをフォーマットします。

mac:〜$ diskutil eraseDisk FAT32 RPI /dev/disk2
・・・
Finished erase on disk2

Finished erase on disk2と表示されフォーマット完了。
以下のコマンドでアンマウントします。

mac:〜$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

1.3. OSイメージ書き込み

事前にダウンロードしておいたraspbianイメージを以下のコマンドでmicroSDカードに書き込みます。
書き込み時間の目安

mac:〜$ sudo dd bs=32m if=2020-02-13-raspbian-buster.img of=/dev/rdisk2 conv=sync
Password:
3612+0 records in
3612+0 records out
3787456512 bytes transferred in 194.471355 secs (19475652 bytes/sec)

書き込み時間

SDカード バッファリングサイズ 書き込み時間(秒)
UHSスピードクラス 1 32 597
UHSスピードクラス 1 1 1244
スピードクラス 10 1 310
スピードクラス 2 32 1041
スピードクラス 2 1 1039

1.4. OTG設定

config.txt と cmdline.txt の編集をします

1.4.1. config.txt 編集
mac:〜$ sudo nano /Volumes/boot/config.txt

ファイルの最後にdtoverlay=dwc2と追記し保存(ctrl+x → Yes)します。

1.4.2. cmdline.txt 編集
mac:〜$ sudo nano /Volumes/boot/cmdline.txt

ファイル内の中間あたりにあるrootwaitとquietの間にmodules-load=dwc2,g_etherを追加します。

mac:〜$ dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=15ca46a5-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles

1.5. SSH設定

/Volumes/boot/配下にsshと言う名前の空ファイルを作成し、SDカードを取り出します。

mac:〜$ touch /Volumes/boot/ssh 
mac:〜$ sudo diskutil eject /dev/disk2

1.6. Mac側設定

[]-[システム環境設定]-[共有]を開き、[インターネット共有]を選択し[RNDIS/Ethernet Gadget]を選択します。
※[インターネット共有]に[RNDIS/Ethernet Gadget]が表示されなければ、[]-[このMacについて]-[ソフトウェア・アップデート…]

f:id:teruterubohz:20200510003303p:plain

1.7. Raspberry Pi SSH連携起動

f:id:teruterubohz:20200601010425j:plainraspberry piをPCとmicroUSBケーブルで上図のように接続し、LED点灯が落ち着くまで約2分ほど待ちます。その後、以下のコマンドを使ってラズパイと接続します。

ssh pi@raspberrypi.local
※パスワードは raspberry

上記コマンドを打った時に以下のようなエラーを発生する場合があります。これは過去の接続キー情報が残っているために出力されるエラーとのことです。 f:id:teruterubohz:20200524154421p:plain

以下のコマンドでSSHキーを再生成すると良いようです。

$ ssh-keygen -R raspberrypi.local

1.8. Raspberry Pi インターネット接続確認

  まず自身のIPアドレスを確認したいので[raspberrypi.local]に対して ping を打ってみます。その後、Raspberry Pi がインターネットに接続されていることを確認するため GoogleDNS サーバ(8.8.8.8 or 8.8.4.4)に対して ping を打ってみます。
※-cオプション:ping の回数

f:id:teruterubohz:20200601002731p:plain

1.9. Raspberry Pi システム更新

sudo apt-get update
sudo apt-get upgrade

1.10. Raspberry Pi ソフトウェア設定

SSH接続ができたら次のコマンドで raspberry pi の設定を行います。

pi@raspberrypi:~ $ sudo raspi-config

f:id:teruterubohz:20200601011423p:plainraspberry pi 設定画面

1.10.1. カメラ有効化

[5 Interfacing Options] f:id:teruterubohz:20200601013730p:plain

[P1 Camera] f:id:teruterubohz:20200601013739p:plain

[Yes] f:id:teruterubohz:20200601013743p:plain

[OK] f:id:teruterubohz:20200601013747p:plain

1.10.2. VNC有効化

[5 Interfacing Options] f:id:teruterubohz:20200601013730p:plain

[P3 VNC] f:id:teruterubohz:20200601014330p:plain

[Yes] f:id:teruterubohz:20200601014339p:plain

[OK] f:id:teruterubohz:20200601015137p:plain

1.10.3. VNC解像度変更

[Advanced Options] f:id:teruterubohz:20200601015640p:plain

[5 Resolution] f:id:teruterubohz:20200601015644p:plain

[DMT Mode 51 1600x1200 60Hz 4:3]※適切な設定を選択 f:id:teruterubohz:20200601015649p:plain

[OK] f:id:teruterubohz:20200601015655p:plain

Raspberry Pi 単体起動

  1. Wi-Fi設定
  2. Raspberry Pi 起動

学習メモ:[改訂新版]プロのためのLinuxシステム構築・運用技術 第6章 Linuxサーバーの問題判別

第6章 Linuxサーバーの問題判別

6.1 問題判別の基礎

Linuxサーバー管理者がとるべき調査について以下のように進め方を整理し、各項目について解説してくれています。

順序 調査名 説明
1 初期調査 問題が発生しているシステムから、問題判別の基礎資料を収集する
2 基本情報の収集 インターネット、その他の情報原から問題判別に有用と思われる情報を収集する
3 詳細調査 収集した基礎資料と関連情報をもとに、問題の原因を発見するためのより詳細な情報の収集・分析を行う
4 専門家へのエスカレーション 適切な専門家に情報を伝達し、支援を依頼する

6.2 カーネルダンプの取得

Linuxが想定外の異常によりカーネルパニックを発生した場合、物理メモリ―内にある情報を「カーネルダンプ」により出力する機能があります。このカーネルダンプを用いて想定外の異常について解消する手がかりを得ることができます。ここではカーネルダンプの設定方法を記載してくれています。

6.3 パフォーマンスの問題判別

  サーバー運用中、パフォーマンスが想定していたものよりも得られないという状況が起こりえます。そのような時の問題判別手順についてここでは解説してくれています。

6.4 緊急モードによる障害対応

  ルートファイルシステムの内容が破損し、サーバーが正常に起動しなくなるような場合に「緊急モード」でサーバーを起動し、ルートファイルシステムの状態を確認する方法があります。ここでは、その方法について解説してくれています。

学習メモ:[改訂新版]プロのためのLinuxシステム構築・運用技術 第5章 Linuxの内部構造

第5章 Linuxの内部構造

5.1 プロセス管理

Linuxプロセス実行時に問題が発生した場合、その実行状態を確認することが推奨されています。 そのプロセスシグナルとして以下のようなものがあります。

シグナル名 シグナル番号 デフォルトの処理内容
HUP 1 プロセスのリスタート
INT 2 プロセスの終了(通常終了)
KILL 9 プロセスの終了(強制終了)
QUIT 3 プロセスの終了(coreダウンぷ出力)
TERM 15 プロセスの終了(通常終了)
STOP 19 プロセスの一時停止
CONT 18 プロセスの一時停止からの復帰
CHILD 17 子プロセスの終了通知

プロセス状態に応じてこれらのシグナルやコマンドを用いることにより、Linuxを制御する方法を解説してくれています。

5.2 メモリー管理

Linuxのメモリー管理は基本的にx86アーキテクチャをもとに設計されました。それをx64に拡張して現在の形になっています。このメモリー管理により物理メモリ―を適切に割り当てると同時にswap領域を生かすことで、実メモリー以上のメモリー容量を利用できる仕組みを解説してくれています。

5.3 ファイルシステム管理

Linuxファイルシステム基礎知識として、以下にLinuxの特殊ファイルシステムがあります。

ファイルシステム 説明
procfs カーネル、およびカーネルモジュール(デバイスドライバー)の情報を参照したり、設定変更を行うためのファイルシステム。/proc にマウントされる
sysfs システムに接続したデバイスの情報を参照したり、設定変更を行うためのファイルシステム。/sysにマウントされる
devfs 物理デバイスにアクセスするための「デバイスファイル」を配置するファイルシステム。/devにマウントされる

また、通常のファイルシステムとしてもext4, XFSなどがあります。それぞれのサポート上限は50TB, 500TBです。ここでは、ファイルシステムの仕組みやその機能等を解説してくれています。

学習メモ:[改訂新版]プロのためのLinuxシステム構築・運用技術 第4章 Linuxのネットワーク管理

第4章 Linuxのネットワーク管理

4.1 IPネットワーク

  サーバー群を構築・運用する上で最も重要な要素の1つとなります。IPネットワークの中でパケットが転送される仕組みを説明し、L2スイッチ(スイッチングハブ相当)、L3スイッチ(ルーター相当)を使った構築の基礎知識と基礎技術を解説してくれています。

4.2 Linuxのネットワーク設定

  4.1を受けてさらにLinuxを使った設定方法やアプライアンスとの接続、さらにチーミングやVLAN設定方法を解説してくれています。

4.3 高度なネットワーク設定

  転送経路上でパケットを通信相手にとどける際に高信頼性通信を保証するTCP、信頼性よりも軽量を優先するUDPといったプロトコルがあります。これらのプロトコルを使ってソケット通信を実現しています。ここでは、このソケット通信の概要やTCPセッション状態遷移などを解説してくれています。