以下のようにAVRCP 1.3を選択することでPixel 10aでハンズフリー接続ができた。
- 「設定」>「デバイス情報」の順にタップする。
- 画面最下部にある「ビルド番号」を7回連続でタップ。
- 「設定」>「システム」>「開発者向けオプション」を開く。
- ネットワークの「Bluetooth」にある「Bluetooth AVRCP バージョン」をタップする。
- リストからAVRCP 1.3を選択する。
この日記の内容は果てしなく無責任・無保証です。(書かなくても分かるか)
以下のようにAVRCP 1.3を選択することでPixel 10aでハンズフリー接続ができた。
PRIMERGY TX1320 M2を手に入れました。
Debian GNU/Linux 13を入れて不都合なく使えています。
CPUもXeonだしリモート管理できるし普通のPCよりいいんですが、GPUがないためAIがらみで遊ぼうとすると辛いものがあります。
で、外付けGPUというものを作れるそうなので中古のグラボを外付けしてみました。
用意したのは以下の通り。
肝はDEG1の底の蓋を開けてディップスイッチを設定すること。組み込み系機器(Wi-Fi APなど)がネットワークに繋がらなくなったりフリーズしたりする症状が発生したのでWiresharkで覗いたところ、Windows 11マシンがやたら22222ポートと10004ポート、3289ポート宛にUDPでブロードキャストしていた。
Windows 10では起きていない感じだが詳細不明。
とりあえず発生しているマシンで以下のプログラムを管理者権限で動かしてもらい上記ブロードキャストを強制的に発信しないようにしてもらった。
下記のプログラムをコンパイルするにはVisual Studio 2022にて「コンソールアプリ(.NET Framework)Visual Basic」でプロジェクトを作ってCOMのNetFwTypeLibを参照する必要があります。
Imports NetFwTypeLib
Module Module1
'Private Const NET_FW_IP_PROTOCOL_ICMPv4 = 1
'Private Const NET_FW_IP_PROTOCOL_TCP = 6
Private Const NET_FW_IP_PROTOCOL_UDP = 17
Private Const NET_FW_ACTION_BLOCK = 0
'Private Const NET_FW_ACTION_ALLOW = 1
'Private Const NET_FW_RULE_DIR_IN = 1
Private Const NET_FW_RULE_DIR_OUT = 2
'Private Const NET_FW_PROFILE2_DOMAIN = 1
'Private Const NET_FW_PROFILE2_PRIVATE = 2
'Private Const NET_FW_PROFILE2_PUBLIC = 4
Private Const NET_FW_PROFILE2_ALL = &H7FFFFFFF
Public Sub BlockUDP(ByVal RuleName As String, ByVal RuleDescription As String, ByVal RulePort As Long)
Dim fwPolicy2 As Object = CreateObject("HNetCfg.FwPolicy2")
Dim NewRule As Object = CreateObject("HNetCfg.FWRule")
Dim RulesObject As Object = fwPolicy2.Rules
NewRule.Name = RuleName
NewRule.Description = RuleDescription
NewRule.Protocol = NET_FW_IP_PROTOCOL_UDP
NewRule.Direction = NET_FW_RULE_DIR_OUT
NewRule.RemotePorts = RulePort
NewRule.Grouping = "@firewallapi.dll,-23255"
NewRule.Profiles = NET_FW_PROFILE2_ALL
NewRule.Enabled = True
NewRule.Action = NET_FW_ACTION_BLOCK
Try
RulesObject.Add(NewRule)
Catch ex As Exception
WriteLine(ex.Message & vbNewLine & ex.StackTrace)
End Try
End Sub
Sub Main()
BlockUDP("Block 22222", "", 22222)
BlockUDP("Block 10004", "", 10004)
BlockUDP("Block 3289", "", 3289) 'ADD NEW
End Sub
End Module
@echo off cls rem ------------------------------------------------------------ rem ARPテーブル変化補足用バッチファイル rem ------------------------------------------------------------ rem ARPテーブルの変化をログに記録します。 cd /d %dp~0 title ARPテーブル変化確認 rem 初回エラー対策 echo\ > "PAST.TMP" rem メインループ :LOOP rem 日付日時取得 set TODAY=%DATE:~-10% set LOG=%TODAY:/=%.LOG echo %DATE:~-10% %TIME: =0% ARPテーブルの変化を確認中... echo\ rem ARPテーブル記録 arp -a | findstr 動的 >> "CURRENT.TMP" rem 比較実施 echo %DATE:~-10% %TIME: =0% >> %LOG% fc "PAST.TMP" "CURRENT.TMP" fc "PAST.TMP" "CURRENT.TMP" >> %LOG% rem 後処理 del "PAST.TMP" ren "CURRENT.TMP" "PAST.TMP" rem 10秒待つ timeout /T 10 /NOBREAK > NUL goto LOOP
https://www5b.biglobe.ne.jp/~kzfmsp/sylpheed/sylpheed-3.7-win32-darktheme.zip
一部変な表示があるけどキニシナイ!!
もう15年ぐらい使ってるんだっけSylpheed。
かんたんに設定できた。
Wineはバージョン8がKindle for PCに未対応のためあえて7系列をインストールする必要があるとのこと。
参考にしたサイト: https://qiita.com/nanbuwks/items/e075d939b00e341111d3
# dpkg --add-architecture i386
# mkdir -pm755 /etc/apt/keyrings
# wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
# wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bullseye/winehq-bullseye.sources
# apt-get update
# apt policy winehq-stable
(2023/05/19時点では7.0.2が利用可能)
# export WINEVERSION=7.0.2~bullseye-1
# apt-get install winehq-stable=$WINEVERSION wine-stable=$WINEVERSION wine-stable-amd64=$WINEVERSION wine-stable-i386=$WINEVERSION
# apt-mark hold winehq-stable
# apt-get install winetricks
$ winetricks --self-update
$ winetricks -q cjkfonts vcrun2013
$ wine KindleForPC-installer-1.40..65535.exe毎日3:00にVMwareホストを再起動するようにしているが、仮想マシンを起動しっぱなしにしている場合にホストをシャットダウンしたくないのでshutdown.exeのラッパーをVB.netで作った。
Module VMwareShutdownChecker
Sub Main()
Dim cmds As String() = System.Environment.GetCommandLineArgs
Dim cmdargs As String = String.Empty
If System.Environment.GetCommandLineArgs().Count = 1 Then
End
End If
For i = 1 To System.Environment.GetCommandLineArgs().Count - 1
cmdargs = cmdargs & " " & cmds(i).ToString
Next
Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
Dim shutdownflag As Boolean = True
For Each p As System.Diagnostics.Process In ps
Try
If InStr(p.ProcessName.ToUpper, "VMWARE-VMX") > 0 Then
shutdownflag = False
Exit For
End If
Catch ex As Exception
shutdownflag = False
Exit For
End Try
Next
If shutdownflag = True Then
Dim psi As New System.Diagnostics.ProcessStartInfo()
psi.FileName = "shutdown.exe"
psi.Arguments = cmdargs
System.Diagnostics.Process.Start(psi)
End If
End Sub
End Module
コマンドラインオプションはそのままshutdown.exeにわたすので同じものを設定する。
小物プログラムを作ってみました。
Windows付属のリモートデスクトップ(RDP)クライアントmstsc.exeと、
UltraVNCのクライアントvncviewer.exeを起動するだけのソフトです。
おまけでPingテストもつけてみました。
ダウンロードは右クリックして「名前を付けてリンク先のファイルを保存」を使用してください。
通信がHTTPなのでChromeでは警告が表示されます。
下段に表示されるダウンロード一覧から継続を選択することでダウンロードできます。
本来はUltraVNCのインストールが必要ですが、RemoteStarter.exeと同じフォルダにvncviewer.exeとvnchooks.dllを置くとそれを使えるようにしています。(多分うごく程度)
お約束ですがこのソフトウェアを使った結果に関しては無保証ということで。( ´∀`)
Imports System.Text
Imports System
Imports System.Net
Imports DotRas
Public Class Form1
Private Sub WriteSysRegDWORD(ByVal RegistoryKey As String, ByVal RegistoryComponent As String, ByVal RegistoryValue As Integer)
'DWORDでシステムレジストリ書き込み
Dim regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(RegistoryKey)
Try
regkey.SetValue(RegistoryComponent, RegistoryValue)
regkey.Close()
Catch
MsgBox(Reflection.MethodBase.GetCurrentMethod.Name & ":レジストリ操作に失敗しました。")
End Try
End Sub
Private Sub CreateVPNEntry()
Dim l2tp_user As String
Dim l2tp_pass As String
Do While True
l2tp_user = InputBox("ユーザー名を入力してください。")
If l2tp_user = "" Then
MsgBox("ユーザー名は必須項目です。")
Exit Do
End If
l2tp_pass = InputBox("パスワードを入力してください。")
If l2tp_pass = "" Then
MsgBox("パスワードは必須項目です。")
Exit Do
End If
Try
RasPhoneBook1.Open()
'エントリが登録済みだった場合は削除する
'(消さないとCreateVpnEntryに失敗する)
If RasPhoneBook1.Entries.Contains("MyVPNConnection") = True Then
RasPhoneBook1.Entries.Clear()
End If
'VPNのエントリ作成
Dim entry As RasEntry = RasEntry.CreateVpnEntry(
"MyVPNConnection",
"123.456.789.012",
RasVpnStrategy.L2tpOnly,
RasDevice.GetDeviceByName("(L2TP)", RasDeviceType.Vpn, False)
)
With entry
'切断するまでの待ち時間(秒)
.IdleDisconnectSeconds = 600
'接続再試行回数
.RedialCount = 5
'接続再試行間隔(秒)
.RedialPause = 60
'LCP拡張を使う
'(ヤマハルーターは無効にしたほうが良い)
.Options.DisableLcpExtensions = False
'ソフトウェア圧縮を使用するかどうか
.Options.SoftwareCompression = True
'暗号化が必要
.EncryptionType = RasEncryptionType.Require
.Options.RequireEncryptedPassword = True
.Options.RequireDataEncryption = True
'マルチリンクの無効化
'特に使っていないので無効化する
.Options.DoNotNegotiateMultilink = False
'認証プロトコル設定する
.Options.RequireChap = True
.Options.RequireEap = False
.Options.RequirePap = False
.Options.RequireMSChap = False
.Options.RequireMSChap2 = False
.Options.RequireMSEncryptedPassword = False
.Options.RequireSpap = False
.Options.RequireWin95MSChap = False
'自動再接続を有効にする
.Options.ReconnectIfDropped = True
'事前共有鍵を使用する
.Options.UsePreSharedKey = True
'VPN先のゲートウェイをデフォルトゲートウェイとして使用しないようにする
'(VPN用ネットワークが閉域な場合、有効にするとVPN接続中にほかのサイトにつながらなくなる)
.Options.RemoteDefaultGateway = False
'資格情報を保存する
.Options.CacheCredentials = True
'VPNのエントリを登録する
RasPhoneBook1.Entries.Add(entry)
'登録したVPNエントリに対して事前共有鍵を登録する
.UpdateCredentials(RasPreSharedKey.Client, "pre_shared_key")
'登録したVPNエントリに対してユーザー名とパスワードを登録する
.UpdateCredentials(New NetworkCredential(l2tp_user, l2tp_pass))
End With
Button1.Enabled = False
MsgBox("登録が完了しました。")
Catch
MsgBox("登録に失敗しました。")
End Try
Exit Do
Loop
End Sub
Private Sub AddRegEntry()
'IPSec NAT-Tを有効にするレジストリ設定(要再起動)
'Windowsではデフォルトで無効になっているため
WriteSysRegDWORD("SYSTEM\CurrentControlSet\Services\PolicyAgent", "AssumeUDPEncapsulationContextOnSendRule", 2)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'VPNの接続作成
CreateVPNEntry()
'レジストリの設定
AddRegEntry()
End Sub
End Class