Pandora Pocket

IT系と日常系の備忘録。三日坊主。

RaspberryPiにDHCPサーバーを構築する

一般家庭ならDHCP機能はルーターが受け持ってくれるので、DHCPサーバーなんて立てる必要がないです。

が、一般の家庭じゃない我が家としましては、DHCPサーバーもルーターとは別に管理したいな、と。
NURO光のルーター(F660A)だと、固定アドレス割り当てがやりにくくて・・・。

今回は以前SoftEtherをインストールしたRaspberryPiに構築することにしました。

続きを読む

Surface Pro他タブレットPCでディスプレイの電源を切るとスリープになる問題の対応

前回こんなアプリを作ったわけなんですが、

実際に使いたかったSurface Pro3でこのアプリを使ってディスプレイの電源を切ると、ディスプレイのみならず本体自体がスリープモードに入ってしまい、意味をなさないことが判明しました。

原因

これはWindowsの機能であるInstantGo(旧Connected Standby)によるもの。
ディスプレイを閉じた場合や電源ボタンを押して画面を消した状態でもWiFiの接続を維持し、メール等の受信をできるようにする機能なんですが、私の用途だと邪魔な機能。

InstantGoが有効かどうかはコマンドプロンプトpowercfg /a を実行し、 スタンバイ(S0低電力アイドル)ネットワークに接続されています と表示されていたら有効と判定できます。

対策

InstantGoは画面から無効化できないので、レジストリをいじる必要があります。

HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\Control\Power 配下に CsEnabled という値があるので、これを1から0に値変更し、再起動することでInstantGoが無効化されます。

Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power
Entry: CsEnabled
Type: REG_DWORD
Data: 0 ( 無効)1 ( 有効)

なお、Surface Pro3をUSBリカバリメディアで初期化し、Windowsバージョンが1511の状態で上記レジストリをいじった後、1911にアップグレードした段階で設定がクリアされていたので、Windowsのアップグレードを行った場合はこの設定を再度行う必要がありそうです。

また、この設定をしたうえでディスプレイの電源を切り、タイマー等でディスプレイの電源をオンにした際、ロック画面が表示されることがありますが、こちらに関してはグループポリシーの コンピューターの構成 > 管理用テンプレート > コントロールパネル > 個人設定 > ロック画面を表示しない を有効にするか、レジストリから HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization のNoLockScreenの値を1に設定することでロック画面が無効化されます。

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization
Entry: NoLockScreen
Type: REG_DWORD
Data: 0 ( ロック画面有効)1 ( ロック画面無効)

参考サイト

ParcelでバンドルしたJavaScriptの関数を直接呼び出すときの方法

HTMLのフォームにonSubmitでJavaScriptを呼ぶように実装してたんですが、HTMLファイルに直接JavaScriptを記載していたり、生のJavaScriptファイルを読ませていた時はうまく動くのに、Parcelを通したJavaScriptファイルだと Uncaught ReferenceError となってしまい、実行されない問題が発生。

ググったところそれっぽい情報を発見。

生のJavaScriptファイルがこんな感じの内容だったとして、

Parcelを通すとこんなファイルが生成されます。

モジュール化されることでメソッドがグローバルに定義されなくなるので、onSubmit="hogehogeMethod()"と呼んでも失敗すると。

であればグローバル下に引きずり出してやればいいと。

というわけで、

こんな感じで、

window.メソッド名 = メソッド名;

というようにグローバルに定義してやればonClickやonSubmitといったイベントハンドラから呼び出すことが可能。

指定時間にディスプレイの電源をオンオフするだけのミニツールを作るなどした

普段テーブルの端にSurface Proを置き、Twitterクライアントを常時起動させつつ、音楽を再生したりしています。
朝起きた時に夜中のツイートもささっと流し読みしたいので24時間電源を入れっぱなしなのですが、使っていない時間ずっとディスプレイがつきっぱなしなのは電気代がもったいない。かといって電源設定でディスプレイの電源を切る時間を設定すると、普段見たいときにいちいち画面タップするなりしないといけないので面倒。

というわけで、指定した時間にディスプレイの電源をオンオフするだけの機能を持ったタスクトレイ常駐アプリを作りました。

続きを読む

Raspberry Pi 4でUSBブートするための備忘録

追記(2020/06/24)

RaspberryPi 4でも正式にUSBメモリー単体ブートに対応しました。

以下は古い情報になります。

Raspberry Pi 3までは(途中から)MicroSDブートでなくUSBメモリー単体でのブートが可能になってましたが、Raspberry Pi 4は構成が変わったため、現時点でのファームウェアではUSBブートができません。

MicroSDはUSBメモリー以上に劣化が激しいので極力常時利用する際には利用したくない。

そこで、ブートに必要なデータだけをMicroSDに配置し、実際のLinux(今回はRaspbian)をUSBメモリーに配置することで、ブート処理だけMicroSDで行う疑似USBブートを行うようにします。

  • 追記(2020/06/24)
  • 用意するもの
  • パーティションの作成
  • Raspbianの領域をUSBメモリーへコピー
  • fstab更新
  • cmdline.txt編集
  • バックアップ
  • 参考サイト
続きを読む