Openwrt 設定3 adblock

adblock 導入

LAN内端末全てにadblockを提供するため、adblock パッケージを導入
packages/net/adblock/files/README.md at master · openwrt/packages · GitHub

導入方法

  1. System->Softwareをクリック
  2. Update listsをクリックしてアップデート
  3. luci-app-adblockをインストール*1
  4. luci-app-adblock Web管理画面
    Services-> adblock をクリック
  5. Startup Trigger InterfaceにWANを選択。
    これでインターフェース起動後にadblock自動起動する。 *2
  6. フィルタ編集(必要なら)
    1. gzip -d /etc/adblock/adblock.sources.gz
    2. vi /etc/adblock/adblock.sources で編集
    3. gzip /etc/adblock/adblock.sources
  7. フィルタ更新のため,Refresh Timer ボタンから、restart/reload を設定

DNS Report 機能

ブロックしたドメインを知りたい場合は、tcpdump-mini を入れる。

E-Mail Notification機能

report mail にて、DNS Report と同様の内容をメールする
'msmtp' のインストールとその設定が必要。ルータの稼働状況がわかるので設定。

メールは、Googleアカウントの「アプリ パスワード」を生成を利用するのがお手軽かもしれない
Googleアカウントのアプリパスワード設定手順について - ファクス - Panasonic

account adb_notify
auth on
tls on
tls_starttls on
from めーる@gmail.com
host smtp.gmail.com
port 587
user めーる@gmail.com
password パスワード

*1:依存するadblockも一緒に入る

*2:/etc/config/adblock に option adb_trigger 'wan'が追加される

Openwrt 設定2

設定

管理用設定

  1. System -> Router Password タブにて設定
  2. SSH Access タブ
    inerface を lan のみを選択

タイムゾーン設定

  1. System -> System
  2. General Setting タブのTimezone を Asia/Tokyo を選択してSave

systemlog にエラーの対処

daemon.err odhcpd[1616]: Failed to send to ff02::1%lan@br-lan (Operation not permitted) といったメッセージが記録される。
ipv6 を利用しないため、不要パッケージを削除

  1. System -> Software
  2. Installed タブを選択
  3. 以下を削除
    • odhcp6c を削除
    • odhcpd-ipv6only

pppoe 設定変更

  1. Network -> Interfaces を選択
  2. pppoe-wan -> edit をクリック
  3. General Setting タブ内
      • Protocol -> PPPoE を選択
      • PAP/CAHP username
      • PAP/CAHP password

dhcp設定変更

  1. Network -> Interfaces を選択
  2. lan(br-lan) Edit をクリック
  3. General Settings タブ
    IPv4 address でネットワークアドレス変更可能(192.168.10.1./24など)
  4. Advanced Setting タブ
    IPv6 assignment length -> disable に設定
  5. DHCP Server タブ内 General Setup
      • Start DHCPで利用する範囲を設定
      • Start 開始するアドレス 100 なら、192.168.10.100 から開始
      • Limit 提供する数 120 なら、 192.168.10.219 までとなる
  6. DHCP Server タブ内 IPv6 Settings
      • RA-Service -> disable
      • DHCPv6-Service -> disable
      • NDP-Proxy -> disable

定期的な再起動

30 4 * * * sleep 70 && touch /etc/banner && reboot

参考 [OpenWrt Wiki] Scheduling tasks with cron

Openwrt 設定1 Firewall

Model: ELECOM WRC-1750GST2
Firmware Version: OpenWrt 23.05.2

firewall設定

Webインターフェースで設定する場合、sshで接続しておくことで、設定失敗してWebインターフェースに接続できなくなった場合、fw4 stop を入力して停止すると再設定が可能

  1. Network -> Firewall を選択
  2. General Setting ( ) Enable Sys-flood protection をチェック
  3. Input,Output,Forward を reject に設定
  4. Routing/NAT Offloading
    Software flow offloading にチェック
    Hardware flow offloading にチェック
  5. Zones
    • lan-> wan
      • input,output,forwardを rejectに設定
        lan側端末は応答を待たせないために拒否を通知する
    • wan-> REJECT
      • input,output,forwardを dropに設定
        wan側のパケットには応答しない
  6. traffice rules タブ
    既存設定を全て削除して以下を追加
name protocol source source-port dest dest-port
LAN-CPU(TCP) TCP lan バイス 22 53 80 443
LAN-CPU(UDP) UDP lan バイス 53 67 123
LAN-CPU(ICMP) ICMP lan バイス
CPU-LAN(TCP) TCP バイス 22 53 80 443 lan
CPU-LAN(UDP) UDP バイス 53 67 123 lan
CPU-WAN(TCP) TCP バイス wan 53 80 443
CPU-WAN(UDP) UDP バイス wan 53 123
CPU-WAN(ICMP) ICMP バイス wan
LAN-WAN(TCP) TCP lan wan 80 443
LAN-WAN(UDP) UDP lan wan 123 443
LAN-WAN(Swichbot) TCP lan wan 8883
LAN-WAN(icloud ) TCP lan wan 5223
LAN-WAN(Exchage) TCP lan wan 587 993 995 143 25
LAN-WAN(Teams) UDP lan wan 3478 3479 3480 3481
LAN-ANY(file) TCP/UDP lan 137 138 139 445 2049 any zone action:reject
LAN-ANY TCP/UDP lan any zone action:drop

メモ

emacs org-mode用の画像貼り付るための設定

クリップボード画像を貼付けするための設定
利用環境は、windows10 + emacs 27.1

Take Screenshots Straight into Org Files in Emacs on Win10

上記を参考にして、若干手直し。
- 保存ファイル名の temp-filename は、\のエスケープを追加
- 保存ファイル名、パスに日本語が含まれるとエラーで画像の保存がNGとなる

;;
;; My Function for Screenshots
;;
(defun my-org-screenshot ()
  "Take a screenshot into a time stamped unique-named file in the
same directory as the org-buffer and insert a link to this file."
  (interactive)

  (setq temp-filename
    (concat
      (make-temp-name
        (concat "images\\"
          (file-name-sans-extension (buffer-name))
          "_"
          (format-time-string "%Y%m%d_%H%M%S_")) ) ".png"))

;;  (shell-command "snippingtool /clip") ;; 有効にするとツールで範囲指定した箇所を取り込みできる
  (shell-command (concat "powershell -command \"Add-Type -AssemblyName System.Windows.Forms;if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {$image = [System.Windows.Forms.Clipboard]::GetImage();[System.Drawing.Bitmap]$image.Save('"temp-filename"',[System.Drawing.Imaging.ImageFormat]::Png); Write-Output 'clipboard content saved as file'} else {Write-Output 'clipboard does not contain image data'}\""))
  (insert (concat "[[file:" temp-filename "]]"))
  (org-display-inline-images))

(global-set-key "\C-cs" 'my-org-screenshot)

2022/6 までは、以下を利用。参考にしたリンクがあったはずだが見つからない。

;;
;; org-screenshot
;; orgファイルの保存場所にある images フォルダに orgファイル名+タイムスタンプ を保存
(defun org-screenshot ()
  (interactive)
  (setq tilde-buffer-filename
        (replace-regexp-in-string "/" "\\" (file-name-directory buffer-file-name) t t))
  (setq temp-filename
        (concat
         (make-temp-name
          (concat "images\\"
                  (file-name-sans-extension (buffer-name))
                  "_"
                  (format-time-string "%Y%m%d_%H%M%S_")) ) ".jpg"))
  (setq full-filename
        (concat tilde-buffer-filename temp-filename))

  ;; Windows: Irfanview
  (call-process "c:\\Program Files\\IrfanView\\i_view64.exe" nil nil nil (encode-coding-string (concat "/clippaste /convert=" full-filename ) 'sjis))
  (insert (concat "[[file:"  temp-filename "]]"))
  (org-display-inline-images))
(define-key ctl-x-map "p" 'org-screenshot)

qmkを自分でコンパイルする際のメモ

キーボード名/keymaps ディレクトに存在する via フォルダごとをコピー。
コピー先のkeymap.c を編集。以下は、私が追加した例

#include QMK_KEYBOARD_H

static uint32_t key_timer = 0;
static bool key_trigger = true;

// キーボード初期化後に呼ばれる関数
void keyboard_post_init_user(void) {
	//// LED発光を無効
	int i;
	for (i = 0; i <= 86; i++){
		rgblight_sethsv_at(HSV_BLACK, i);
	}
} 

// マクロキーコードの定義
enum custom_keycodes {
	HOGE = SAFE_RANGE,
	KEY_TIM,
};

// マクロ記述箇所
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
	switch (keycode) {
		case HOGE:
			if (record->event.pressed) {
				// when keycode HOGE is pressed
				SEND_STRING("https://qmk.fm/\n");
				SEND_STRING(SS_TAP(X_ENTER));
			} else {
				// when keycode HOGE is released
			}
			break;
		case KEY_TIM:
			if (record->event.pressed) {
				key_trigger ^= true;
				// 機能のON/OFF LEDで表示
				if (key_trigger) {
					rgblight_sethsv_at(HSV_GREEN, 0);    
				}else{
					rgblight_sethsv_at(HSV_BLACK, 0);  
				}
            }
			break; 	
	}
	return true;
}

void matrix_scan_user(void) { 
	// スクリーンセーバ抑止
	if (timer_elapsed32(key_timer) > 30000) { // 30 seconds
		key_timer = timer_read32();  // resets timer
		if (key_trigger) {
			tap_code(KC_MS_UP);
			tap_code(KC_MS_DOWN);
			tap_code(KC_MS_LEFT);
			tap_code(KC_MS_RIGHT);
		}else{
		}
	}
}

以下からの情報を参考にさせていただきました。
サリチル酸⌨️自キ温泉ガイド on Twitter: "なんとなく用途は思い浮かばないけれど、2分に一回10ピクセルだけマウスカーソルが動くようにPro Microに教え込んだ。
なんとなく仕事用PCで検証してみようと思う。"

QMK Firmware
GitHub - DIYCharles/MouseJiggler: MouseJiggler using arduino pro-micro

Microsoft Teams 会議で録画したデータを編集する方法

概要

会議で録画した動画を編集して、h264なmp4動画で保存したい
環境は、Windows10(64bit)

事前準備

FFmpegインスト―ル

  1. FFmpegをダウンロードする
  2. ダウンロードしたファイルを適当なフォルダに解凍しておく

ダウンロード方法は、以下が参考になります。
【Windows】Windows10にffmpegをインストールする - ソースに絡まるエスカルゴ

Aviutlインストール

  1. Aviutlと拡張編集プラグインを導入
  2. プラグイン「L-SMASH Works」の導入
  3. プラグイン「かんたんMP4出力」の導入

導入方法と操作説明は、以下が参考になります。
AviUtl初心者が最初に読むべきページ【導入から使い方まで】 | AviUtlの易しい使い方

動画編集方法

  1. 動画音声のサンプリングレートをffmpegで変換する

    ffmpeg.exe -i input.mp4 -vcodec copy -ar 44100 output.mp4


  2. 変換後の動画ファイルをAviutlにて編集する
    右下に表示される発表者の画像は、[設定]-> [クリッピング&リサイズの設定]でカットすることが可能

  3. AviutlにてMP4出力する
    かんたんMP4出力を利用。スライド+音声のみなら、画質は40~程度で十分。

補足

録画したデータ音声のサンプリング周波数は、44.1kHzや48kHzではない。
そのためか、Aviutlでmp4動画出力する際に無音になってしまうため、
FFmpegで音声のサンプリングレートを変換しています。