月: 2024年6月
MONTHLY ARCHIVE
wake on lanの実現方法の一つ
背景
wake on lan(以降wol)を、機種変前のスマホを使って実現しようとしていたが外出中にスマホがスリープ?してしまい、外出先からwolが出来ない。そこでスマホを使わずraspberry pi(以降raspi)を使う別の方法を考えた。
前提条件
- raspiにsylpheedがインストール済み
- sylpheedから周期的にポーリング受信可能なメールアドレスあり(私の場合自宅サーバー上)
- raspiにwakeonlanがインストール済み
sylpheedでの設定
sylpheedでメッセージ受信したらコマンド実行 に一般設定で設定する
例:
/home/pi/tools/wolmail.sh
他に、2分ごとにメールをチェックする様にした。自宅サーバーでなければ、5分ごととかもう少し間隔を長めにした方が良いかもしれない。 起動までに時間がかかるが。
メール受信時に実行するシェル
wolmail.shを以下の様にした。試行錯誤で書いたものなので効率の良くないコードではあるが。
#!/bin/bash
ls -trl /home/pi/Mail/inbox | tail -1 >/home/pi/logs/wolsh.log
cat /home/pi/logs/wolsh.log | awk '{printf("/home/pi/Mail/inbox/%s\n",$9)}' >/home/pi/logs/woltemp
prefile=/home/pi/logs/woltemp
while read filename
do
cat $filename |awk -f /home/pi/tools/wolmail.awk
done < ${prefile}
wolsh.log、woltempは作業用のファイル
Pathは、念のためフルパスで記述。 sylpheedの受信メールはMail/inboxにあった。最新のものを使用。9番目のフィールドが該当メールのファイル名(数字)であった。
wakeonmailするためのawkスクリプト
awkスクリプトを、wolmail.awkとして下記の様に作成した。
BEGIN{
}
{
if (NF >=2 ) {
if ($1 == "wolkeyword") {
for (i=2;i<=NF;i++) {
if ($i=="aaaaa") system("/home/pi/tools/wol-aaaaa.sh")
if ($i=="bbbbb") system("/home/pi/tools/wol-bbbbb.sh")
if ($i=="ccccc") system("/home/pi/tools/wol-ccccc.sh")
}
}
}
}
END{
print "wol sent end" > "/home/pi/logs/wol_mail_status"
}
wol-xxxxx.shは、wakeonlanコマンドのためのシェル
また、上記は3台に対応
wol用のメール
subjectもしくは本文内に、wolkeyword xxxxx の様に記述してメールする事で良い
無線lanカードのドライバーを入れていたらwake on lanが使えなくなったので再設定
再度調べて、今回は次のサイトを参考にして対処した。
https://blog.janjan.net/2022/08/10/ubuntu-wake-on-lan-settings
現状確認
sudo ethtool enp5s0 | grep -i wake
Wake-on: d になっていた。
Wake-on: g でないとダメとの事。
設定用ファイル作成
nano mytools/wakeonlan.sh で、下記内容のファイル作成
#!/bin/sh
/sbin/ethtool -s enp5s0 wol g
その後、実行属性を与える
sudo chmod +x mytools/wakeonlan.sh
サービスを登録
登録用ファイル作成
sudo nano /etc/systemd/system/wakeonlan.service
[Unit]
Description=Enable Wake-On-LAN
[Service]
Type=simple
ExecStart=/home/myhomename/mytools/wakeonlan.sh
Restart=always
[Install]
WantedBy=multi-user.target
namename はあなたのlogin名
サービスの登録
sudo systemctl enable wakeonlan.service
sudo systemctl start wakeonlan.service
再起動しておしまい
おまけ web経由で切断
電源onだけでは、RDPか何かを許可しない限り電源を切れない。そこでcockpitをインストール
sudo apt install cockpit
sudo systemctl enable cockpit.socket
sudo ufw allow 9090/tcp
これで、webに9090ポートでアクセスするとcockpitが起動しweb経由でいろいろ出来る
ubuntuで、「認証が必要です。システムポリシーによりwi-fiスキャンが阻止されます」が繰り返される。それへの対処
参考にしたサイト
対処
以下の内容を /etc/polkit-1/localauthority/ 配下の pklaファイルとして作成記述
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manage>
ResultAny=no
ResultInactive=no
ResultActive=yes
[Allow Package Management all Users]
Identity=unix-user:*
Action=org.debian.apt.*;io.snapcraft.*;org.freedesktop.packagekit.*;com.ubuntu.>
ResultAny=yes
ResultInactive=yes
ResultActive=yes
[Allow WiFi Scan all Users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.wifi.scan
ResultAny=yes
ResultInactive=yes
ResultActive=yes
私の場合は、まとめて以下で作ってしまった。
sudo nano /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
反映
sudo systemctl restart NetworkManager
別PCで使っていたIntel dual band wifi AC-7265無線lanカードをubuntuマシンに移す
経緯
別PCで無線lanカードを210NGW機種に交換したので、それまで使っていたAC7265が余った。それで、ubuntu 2204LTSで使っていたPCに装着する事にした。装着して立ち上げたがwifiのSSIDが出てこない。そこで、driverが無いのだと思い以降の事を行った。正しいかどうかはわからないが、とろあえず動いているのでよしとする。
ドライバーのインストール
wget https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7265-ucode-25.30.14.0.tgz
tar -xzvf iwlwifi-7265-ucode-25.30.14.0.tgz
sudo cp iwlwifi-7265-ucode-25.30.14.0/iwlwifi-7265-14.ucode /lib/firmware
sudo cp iwlwifi-7265-ucode-25.30.14.0/iwlwifi-7265D-14.ucode /lib/firmware
sudo apt install --reinstall linux-firmware
sudo reboot
ubuntuマシンでwake on lanを有効にする
問題点
BIOSでwolを有効にしても、それだけではwolが動作しなかった。ネットで調べたところ下記のwebページの様な設定も必要との事だった
参考webサイト
'https://nantonaku-shiawase.hatenablog.com/entry/2021/12/01/001652
Miracast出来なかったので対応できた事例
背景
自作及びBTO PCでmiracast動作しなかった。苦戦した結果なんとか動作した例もあるので備忘録として残す
なお、ノートPC,タブレット、スマホからはMiracastは出来ていました。
事例1
マザボ ASUS Prime H570-Plus
CPU Intel i5-11440
グラボ RTX3060
OS Windows10 Home
wifiドングルをTP-LINKの(品名忘れた)Realtek RTL8188EUで苦戦。
wifiドングルをTP-LINK Archer nano T2U に替えたところ、2.4GHzで成功。
5GHzでは、ダメ
事例2
マザボ ASUS Prime H270-Plus
CPU Intel i7-7700
グラボ GTX1060
OS Windows10 Pro
wifiはPCIボードにIntel dualband wireless AC-7265を刺している
Miracastダメ
Realtek RTL8188EUでもダメ
T2Uでもダメ
グラボのdriverを、nvidiaのサイトから最新版をダウンロードし更新した
(NVIDIA Studio ドライバー ver. 555.85)
AC7265 ダメ
RTL8188EU ダメ
T2u 2.4GHzで成功
結局
wifiドングルを交換し、グラボのドライバー更新でMiracast出来る場合あり。
但し、AIやcudnn、tensorなどを使用している場合は、バージョン間の相性があるのでドライバー更新も簡単には出来ないかも