ページ

2019年12月13日金曜日

【HHKB】 Happy Hacking Keyboard Hybrid Type-S 開封の儀.〜世界一のキーボードは宇宙一のキーボードになった.〜

HHKBの最新モデル(かつフラッグシップモデル)Hybrid Type-Sが我が家にも届きました.

2019年12月8日日曜日

Raspberry Pi を 5.0GHz 無線アクセスポイント及びルーターにする


IPv4 over IPv6に対応させた記事に纏め直しています.こちらを参照ください.
WM×LI: Raspberry Pi を楽天ひかりのIPv4 over IPv6(DS-Lite・Xpass)に対応したルーターにする



【2020年7月24日追記】IPv6 に対応させました.
【2021年2月10日追記】DNS サーバも併用させました.

ようやく日本でも注文可能になったので早速,Raspberry Pi 4 を購入した.メモリ 4.0GB 搭載.Bluetooth 対応など,かなり機能が拡張されたが,個人的に熱いのは 5.0GHz帯の無線LANに対応したことだ.

今回はそのメリットを活かして,以前作成した無線LANルーターを 5.0GHz に対応させつつ,当時の欠点の克服,さらに今までに獲得したノウハウも詰め込んでいく.

一方,残念なことに5.0GHzの無線LAN に非対応の機器も僅かながら稼働中のため,USBドングルで拡張させ,2.4GHz の無線LAN も同時に動かす.

まず以前作成したルーターについては,下記の記事に残してある.
WM×LI: Raspberry Pi をルーター&無線LANルーター化する

このときは,eth0(WAN側の有線),eth1(LAN側の有線),wlan0(LAN側の無線) をすべて別セグメントに設定していたが,LAN側の有線と無線は同じセグメントにしたほうが便利なことが多い.長らくその手法がわからなかったが,ひょんなことから作成したラズパイのスイッチングハブ(下記,記事参照)を応用すれば,簡単に作れることがわかった.
WM×LI: Rapberry Pi をスイッチングハブ化する 【bridge-utils】

また,起動時の設定で cron の @reboot を使用していたが,/etc/rc.local に記述するほうが簡単なのでそちらを採用する.

前置きが長くなったが,ここから設定方法について記載していく.

最終型は以下の構成だ.
 WAN側(eth0) :ラズパイにある有線LANポート.スイッチングハブと接続する.
 LAN側(eth1) :USB-NICで拡張した有線LANポート.WAN側のモデムと接続し,DHCPで自動的にIPアドレスを取得する.
 LAN側(wlan0):ラズパイにある無線LANポート.5.0GHz 無線LANアクセスポイントとして動作させる.
 LAN側(wlan1):USBドングルで拡張した無線LANポート.2.4GHz 無線LANアクセスポイントとして動作させる.
 Bridge(br0) :eth1,wlan0,wlan1をつなぐブリッジ.192.168.100.1/24に設定する.

 br0 に DPCPサーバー を設定し,接続した機器には自動でIPアドレスを振るように設定.

2019年10月3日木曜日

Raspberry Pi に Redmine を導入する

会社でRedmineを使用しているので,自宅でも使いたくなりラズパイに導入してみることにした.ネットで色々と調べてみるといくつかの手順が見つかったが,apache2,git,subversion,ruby,imagemagick 等をインストールし,データベースの設定を変更,Redmine の公式(?)リポジトリからソースをチェックアウトしてきてビルドする手順に落ち着いた.

2019年9月28日土曜日

Rapberry Pi をスイッチングハブ化する 【bridge-utils】

こんな代物を作ってどんなメリットがあるか具体的には何も思いついていないが,Raspberry Pi に USB の NIC を接続すことで LANポートを2個に増設しブリッジ接続してみた.要するに Raspberry Pi のスイッチングハブ化だ.

最初に必要なソフトとして,bridge-utilsをインストールする.
# apt install bridge-utils

2019年6月8日土曜日

Raspberry Pi にデータベースを構築する【MySQL,MariaDB】

【2021.2.7 記事修正】

データベースとしては,使い慣れたMySQLを選択したかったが,Raspbian では MariaDB(MySQL互換) が推奨されているので,MariaDB で構築する.

■インストール及び起動
(1)MariaDB をインストールする.(コマンドでは,mysqlと書いているが,mariadbが導入される.)
$ sudo apt install default-mysql-client default-mysql-server

(2)MariaDB を起動する.(コマンドでは,mysqlと書いているが,mariadbが起動する)
$ sudo systemctl restart mysql

2019年6月2日日曜日

crouton を使って Chromebook で Linux を使う話

残念ながら私の愛用している C100PA は,crostini に対応していないので,crouton を使って Linux 環境を構築する.

1.まずは,https://goo.gl/fd3zc にアクセスして,crouton をダウンロードする.

2.次に,crouton を使って,現在使用可能なディストリビューションとパッケージを確認する.
(このページを読んでいる人は,すでにデベロッパーモードにしていると思われるのでその辺の手順は省略する.)

ディストリビューションの確認
$ sudo sh -e ~/Downloads/crouton -r list
Recognized debian releases:
    potato! woody! sarge! etch! lenny! squeeze! wheezy jessie stretch buster sid
Recognized kali releases:
    moto! kali! sana! kali-rolling
Recognized ubuntu releases:
    warty! hoary! breezy! dapper! edgy! feisty! gutsy! hardy! intrepid! jaunty!
    karmic! lucid! maverick! natty! oneiric! precise! quantal! raring! saucy!
    trusty utopic! vivid! wily! xenial yakkety! zesty! artful* bionic*
Releases marked with ! are upstream end-of-life, and should be avoided.
Releases marked with * are unsupported, but may work with some effort.

メッセージに表示されているように,!マークと*マークは避けたほうが良いので,今回は ubuntu の xenial を選択する.

2019年5月26日日曜日

Subversionで直前のコミットを取り消す.

間違えてコミットしてしまった!という状況の回復.

まずは,作業ディレクトリを最新の状況にして,リビジョンを確認する.
$ svn update
Updating '.':
At revision 354.

リビジョン354を取り消して,353に逆マージする.(ここでは,リビジョン354でコミットしたClassAというクラスの作成を取り消している.最後のドットを忘れないように注意)
$ svn merge -r 354:353 .
--- Reverse-merging r354 into '.':
D    ClassA.h
D    ClassA.cpp
--- Recording mergeinfo for reverse merge of r354 into '.':
 U   .
--- Eliding mergeinfo from '.':
 U   .

これをコミットすれば作業完了(念の為,コミットする前にビルド&動作確認とかしておくと良い.)
$ svn commit 


また,ファイル単位で元に戻したいときは,以下のようにすればファイル単位での修正も可能.
$ svn merge -r 354:353 ClassA.h 
--- Reverse-merging r354 into 'ClassA.h':
D    ClassA.h
--- Recording mergeinfo for reverse merge of r354 into 'ClassA.h':
 U   ClassA.h
--- Eliding mergeinfo from 'ClassA.h':
 U   ClassA.h

以上.

2019年5月24日金曜日

OpenSSLで簡易的なファイルの暗号化/復号化

ファイルの暗号化・復号化を簡単にできないかとぐぐったらOpenSSLを使えば,一発でできることがわかったので,備忘録として残す.

暗号化
$ openssl enc -e -in INFILE -out OUTFILE -salt -k PASSWORD -aes-256-cbc 

復号化
$ openssl enc -d -in INFILE -out OUTFILE -salt -k PASSWORD -aes-256-cbc

以上.

2019年2月26日火曜日

【svnadmin dump】Subversionのリポジトリを別のサーバーに移行する.

svnserveを走らせているRaspberry Piに最新版のOSを再インストールするためなので,移行というよりバックアップ/リストアの方が近いが,やることは同じなのでサーバー間の移行として備忘録に残す.今回,使用するコマンドはsvnadmin dump及びsvnadmin load.実際の手順は以下の通り.

まず,リポジトリが保存してあるサーバでリポジトリをダンプする.
$ svnadmin dump ./repos/Project > svn.dump 

これを別のサーバーにコピー.(svn.dumpの容量が大きいときは先に圧縮したほうが良いだろう.)
$ scp svn.dump <別のサーバのIP>:~/

コピー先のサーバーでも同様にディレクトリを作成.その後,リポジトリを作成する.
$ mkdir -p repos/Project
$ svnadmin create ./repos/Project

最後にコピーしたダンプファイルを取り込む.
(途中,過去のコミット履歴が表示されるので,懐かしい気持ちで取り込みが完了するのを待つ.)
$ svnadmin load ./repos/Project < svn.dump

取り込みが完了したら,問題なく完了しているか試しにチェックアウトしてみる.
$ mkdir tmp
$ svn co file://localhost/[リポジトリを作成したパス]/repos/Project ./tmp/

調べる前はもっといろいろと手順があるかと思っていたが,とても簡単だった.サーバー間の移動だけでなく,リポジトリのバックアップをcronで回してみるのも便利だと思う.