HP Envy 13-ay1052AU x360では、他のWindowsが起動しているPCでUSB stickにBIOSイメージを書き込み、HP Envy-ay1052AU x360でWindowsを起動させることなく BIOSをアップデートできる。 具体的には、 HP Communityの記事にあるように、USB stickを接続した状態で、WindowsキーとBキーを押しながら電源ボタンを押して起動させ3秒間電源ボタンを押したままにし、電源ボタンを離して更にWindowsキーとBキーを3秒間押したままにして、 その後に全てのキーを離してやると、USB stickにあるBIOSアップデートイメージを書き込んでくれる。 ただし、BIOSの設定項目は全て初期化されてしまうので、再度設定し直す必要がある。
Bose Noise Cancelling Headphones 700 UCを購入した
Jabra Move WirelessというBluetoothヘッドセットを使っていたのだが、電池の持ちが著しく悪くなって来たし、 音質もSBCしかサポートしていないようで、良いような気はしない。 しかし、ヘッドセットとしては、HD Voiceに対応していて、最低限の性能は持っている。
一度、ノイズキャンセリング機能を体験してみたかったので、 Bose Noise Cancelling Headphones 700 UCを購入してみた。 ここで、UCというのは、Creative BT-W3のようなBluetoothオーディオアダプターが付属しているということを示している。
Bluetoothと独自の2.4GHz通信の両方をサポートしているヘッドセットを探していたのだが、Bose Noise Cancelling Headphones 700 UCはそれに近いかもしれない。 だが、Creative BT-W3と比較して特にHands-free profileでの通話の場合にどうなのか分かっていない。 Bluetooth接続の場合、HD Voiceには対応しているようだ。
ノイズキャンセリングは非常に有用で、既にこれなしで音を聞くのはないような気がしている。ちなみに、Android相手のA2DPの場合にはAACが利用されるようだ。 NetBSD/amd64 10.99.2でも付属のBluetoothオーディオアダプターは正常に利用できる。
pkgsrc/multimedia/mplayerで、/dev/audio以外で音を再生する
NetBSDで、pkgsrc/multimedia/mplayerで音を再生するのに、複数あるデバイスから1つを指定したい。
オーディオバックエンドはOSSとする。OSSはLinuxでは既に廃れているようなので、ウェブ上ではほぼ例は見つからない。
以下のようにすると/dev/audio2
で音を再生できた。
$ mplayer -ao oss:/dev/audio2 test.mkv
ちなみに、sunバックエンドもNetBSDで利用できる。この場合の設定はOSS同様で以下のようにすれば良かった。
$ mplayer -ao sun:/dev/audio2 test.mkv
pdftocairoで、PDFファイルをJPEGやPNGファイルに変換する
PDFファイルをJPEGファイルにするには、GhostScriptを利用するというのが古くからの方法だと思うのだが、
分かりにくかった記憶があるし、満足した結果が得られたこともなかったような気がする。
GhostScriptをちゃんと理解していないからだろう。
だが、PDFファイルの1ページを1つのJPEGファイルやPDFファイルにしたい場合は存在する。
Popplerはcairoを使っていて、
その一部であるpdftocairoコマンドを使うと、簡単に満足できる品質のJPEGファイルやPNGファイルを得ることができた。
pkgsrcだと、print/poppler-utils
パッケージに含まれている。
HP Envy 13-ay1052AU x360のブート時のメニュー選択
ほぼMaintenance and Service Guideに書かれているのだが、 すぐに分からなくなってしまうので、書き留めておく。
- F2
- Startup CHeckということで、診断メニューを表示する。HP PC Diagnostics UEFIがHP_TOOLSというディスクラベルのドライブに用意してあれば、リッチな診断を実施できる。
- F9
- Change Boot Orderということで、一時的に起動デバイス等を選択する画面を表示する。
- F10
- BIOS Setup Optionsということで、BIOS設定画面を表示する。
- F12
- Network Bootということで、PXE bootができるようだ。試していない。
ESCキーを押せば、メニューが表示されるので、細かく覚えておく必要はないかもしれない。
Asterisk 16で、内線端末間で番号通知をする
ここまでで、複数のソフトフォンで発着信できるようになっているのだが、内線番号を相互に通知することはできていなかった。
どういう方法が一番適切であるか良く分からないのだが、pjsip.conf
とiax.conf
で指定すれば
内線番号を相互に通知することはできた。
pjsip.conf
の場合には、以下のようにした。endpointの設定でcalleridを追加している。
; 内線: baresip+ [fire8] type = aor max_contacts = 1 qualify_frequency = 60 remove_existing = yes [fire8] type = auth auth_type = userpass username = fire8 password = password [fire8] type = endpoint transport = transport-udp context = default disallow = all allow = ilbc,ulaw,alaw,gsm,g729,g723 aors = fire8 auth = fire8 ;outbound_auth = fire8 dtmf_mode = rfc4733 force_rport = yes ice_support = no rtp_symmetric = yes direct_media = no rewrite_contact = yes device_state_busy_at = 1 callerid="104" <104>
iax.conf
も似たような設定で、calleridを追加した。
[general] match_auth_username=yes iaxcompact=yes allow=all ; 電話機との接続 [user1] ; Android smartphone type=friend username=user1 secret=password1 context=default canreinvite=no host=dynamic qualify=no callerid="101" <101> [ryoonwinpc] ; Zoiper for Windows type=friend username=user2 secret=password2 context=default canreinvite=no host=dynamic qualify=no callerid="103" <103>
Asterisk 16に収容したFusion IP-Phone SMARTの2回線への接続に、PJSIPを利用する
Asteriskとソフトフォンの間の通信をchan_sipからPJSIPに変更したのだが、 AsteriskとFusion IP-Phone SMART 2回線分の通信はchan_sipのままだった。 これもPJSIPにして問題ないはずなので、変更してみた。
まずは、sip.conf
に相当する内容をpjsip.conf
に移植する。
現在のsip.conf
の内容は以下のようになっている。
[general] match_auth_username=yes ; 同じsmart.0038.netに複数のアカウントを持っているので。 ; 外線着信のため register => 5XXXXXXX:password1@fusion1/5XXXXXXX register => 5YYYYYYY:password2@fusion2/5YYYYYYY ; 外線 [fusion1] type=friend username=5XXXXXXX fromuser=5XXXXXXX secret=password1 host=smart.0038.net fromdomain=smart.0038.net context=default insecure=port,invite canreinvite=no dtmfmode=inband qualify=yes allow=!all,ilbc,g729,gsm,g723,ulaw,alaw allowguest=no host=dynamic [fusion2] type=friend username=5YYYYYYY fromuser=5YYYYYYY secret=password2 host=smart.0038.net fromdomain=smart.0038.net context=default insecure=port,invite canreinvite=no dtmfmode=inband qualify=yes allow=!all,ilbc,g729,gsm,g723,ulaw,alaw allowguest=no host=dynamic
これをpjsip.conf
に移植して行く。
まずは変更点を示す。
@@ -1,8 +1,16 @@ +[general] +match_auth_username = yes + +[system] +type = system +disable_rport = yes + [transport-udp] type = transport protocol = udp -bind = 0.0.0.0:5070 ; 5060 portはchan_sipと競合する。 +bind = 0.0.0.0 +; 外線: ひかり電話 [hikari-denwa] type = registration transport = transport-udp @@ -19,7 +27,7 @@ password = 0003_password [hikari-trunk] type = aor -contact = sip:10.81.0.1 +contact = sip:3@10.81.0.1 [hikari-trunk] type = endpoint @@ -38,3 +46,81 @@ dtmf_mode = inband type = identify endpoint = hikari-trunk match = 10.81.0.1 + + + +; 外線: Fusion SMART IP 1 +[fusion1] +type = registration +transport = transport-udp +outbound_auth = fusion1 +server_uri = sip:smart.0038.net +client_uri = sip:5XXXXXXX@smart.0038.net +retry_interval = 0 +auth_rejection_permanent = no + +[fusion1] +type = auth +auth_type = userpass +username = 5XXXXXXX +password = password1 + +[fusion1] +type = aor +contact = sip:5XXXXXXX@smart.0038.net +qualify_frequency = 5 + +[fusion1] +type = endpoint +transport = transport-udp +context = default +from_user = 5XXXXXXX +from_domain = smart.0038.net +outbound_auth = fusion1 +disallow = all +allow = ilbc,g729,gsm,g723,ulaw,alaw +aors = fusion1 + +[fusion1] +type = identify +match = 61.213.230.153 ; IPアドレス +endpoint = fusion1 + + + +; 外線: Fusion SMART IP 2 +[fusion2] +type = registration +transport = transport-udp +outbound_auth = fusion2 +server_uri = sip:smart.0038.net +client_uri = sip:5YYYYYYY@smart.0038.net +retry_interval = 0 +auth_rejection_permanent = no + +[fusion2] +type = auth +auth_type = userpass +username = 5YYYYYYY +password = password2 + +[fusion2] +type = aor +contact = sip:5YYYYYYY@smart.0038.net +qualify_frequency = 5 + +[fusion2] +type = endpoint +transport = transport-udp +context = default +from_user = 5YYYYYYY +from_domain = smart.0038.net +outbound_auth = fusion2 +disallow = all +allow = ilbc,g729,gsm,g723,ulaw,alaw +aors = fusion2 + +[fusion2] +type = identify +match = 61.213.230.153 ; IPアドレス +endpoint = fusion2
全体としては、以下のようになる。
[general] match_auth_username = yes [system] type = system disable_rport = yes [transport-udp] type = transport protocol = udp bind = 0.0.0.0 ; 外線: ひかり電話 [hikari-denwa] type = registration transport = transport-udp outbound_auth = hikari-trunk server_uri = sip:10.81.0.1 client_uri = sip:3@10.81.0.1 retry_interval = 60 [hikari-trunk] type = auth auth_type = userpass username = 0003 password = 0003_password [hikari-trunk] type = aor contact = sip:3@10.81.0.1 [hikari-trunk] type = endpoint transport = transport-udp context = default disallow = all allow = ulaw outbound_auth = hikari-trunk aors = hikari-trunk direct_media = no from_user = 3 from_domain = 10.81.0.1 dtmf_mode = inband [hikari-trunk] type = identify endpoint = hikari-trunk match = 10.81.0.1 ; 外線: Fusion SMART IP 1 [fusion1] type = registration transport = transport-udp outbound_auth = fusion1 server_uri = sip:smart.0038.net client_uri = sip:5XXXXXXX@smart.0038.net retry_interval = 0 auth_rejection_permanent = no [fusion1] type = auth auth_type = userpass username = 5XXXXXXX password = password1 [fusion1] type = aor contact = sip:5XXXXXXX@smart.0038.net qualify_frequency = 5 [fusion1] type = endpoint transport = transport-udp context = default from_user = 5XXXXXXX from_domain = smart.0038.net outbound_auth = fusion1 disallow = all allow = ilbc,g729,gsm,g723,ulaw,alaw aors = fusion1 [fusion1] type = identify match = 61.213.230.153 ; IPアドレス endpoint = fusion1 ; 外線: Fusion SMART IP 2 [fusion2] type = registration transport = transport-udp outbound_auth = fusion2 server_uri = sip:smart.0038.net client_uri = sip:5YYYYYYY@smart.0038.net retry_interval = 0 auth_rejection_permanent = no [fusion2] type = auth auth_type = userpass username = 5YYYYYYY password = password2 [fusion2] type = aor contact = sip:5YYYYYYY@smart.0038.net qualify_frequency = 5 [fusion2] type = endpoint transport = transport-udp context = default from_user = 5YYYYYYY from_domain = smart.0038.net outbound_auth = fusion2 disallow = all allow = ilbc,g729,gsm,g723,ulaw,alaw aors = fusion2 [fusion2] type = identify match = 61.213.230.153 ; IPアドレス endpoint = fusion2
extensions.conf
では、以下の抜粋のように変更すれば良い。
ここではログも出力するようにしている。
; 発信 ;; Fusion SMARTalk 1の場合には9で発信する。 -exten => _9.,1,Set(CALLERID(num)=${MYNUMBER}) +exten => _9.,1,NoOp(Fusion1で発信9) +exten => _9.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _9.,n,Set(CALLERID(name)=${MYNUMBER}) -exten => _9.,n,Dial(SIP/${EXTEN:1}@fusion1,120,T) +exten => _9.,n,Dial(PJSIP/${EXTEN:1}@fusion1,120,T) +exten => _9.,n,Hangup() ;; Fusion SMARTalk 2の場合には8で発信する。 -exten => _8.,1,Set(CALLERID(num)=${MYNUMBER}) +exten => _8.,1,NoOp(Fusion2で発信8) +exten => _8.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _8.,n,Set(CALLERID(name)=${MYNUMBER}) -exten => _8.,n,Dial(SIP/${EXTEN:1}@fusion2,120,T) +exten => _8.,n,Dial(PJSIP/${EXTEN:1}@fusion2,120,T) +exten => _9.,n,Hangup() ;; ひかり電話の場合には7で発信する。 -exten => _7.,1,Set(CALLERID(num)=${MYNUMBER}) +exten => _7.,1,NoOp(ひかり電話で発信7) +exten => _7.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _7.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _7.,n,Dial(PJSIP/${EXTEN:1}@hikari-trunk) +exten => _7.,n,Hangup()
Asterisk 16で、ソフトフォンとの間をPJSIPによる通信に変更する
Asteriskに接続している一部のクライアントはIAX2で通信するようにしたのだが、 もう1台はZoiPerではなくbaresip+を使っているので、 IAX2にすることはできない。 そこで、この端末についてもchan_sipではなくPJSIPに乗り換えることにした。
PJSIP自体は、既にひかり電話のホームゲートウェイに接続するのに利用しているので、それも合わせて、以下のように設定すれば良い。
PJSIPでAsteriskにregisterするには、Asterisk 16はデータベースを使えるようになっている必要がある。
pkgsrc/comms/asterisk16の場合には、標準ではSQLite3が利用され、/var/db/asterisk/astdb.sqlite3
にデータベースファイル
が置かれている。
今回は、なぜかこのデータベースファイルの所有者が別ユーザーになっており、SQL errorが起きていたのを無視していたため、
端末がAsteriskにregisterできなかった。ユーザーIDとパスワードの認証までは通過できるのだが、着信できない状態になってしまった。
pjsip.conf
は、以下のようにした。
[general] match_auth_username = yes [system] type = system disable_rport = yes [transport-udp] type = transport protocol = udp bind = 0.0.0.0 ; 外線: ひかり電話 [hikari-denwa] type = registration transport = transport-udp outbound_auth = hikari-trunk server_uri = sip:10.81.0.1 client_uri = sip:3@10.81.0.1 retry_interval = 60 [hikari-trunk] type = auth auth_type = userpass username = 0003 password = 0003_password [hikari-trunk] type = aor contact = sip:3@10.81.0.1 [hikari-trunk] type = endpoint transport = transport-udp context = default disallow = all allow = ulaw outbound_auth = hikari-trunk aors = hikari-trunk direct_media = no from_user = 3 from_domain = 10.81.0.1 dtmf_mode = inband [hikari-trunk] type = identify endpoint = hikari-trunk match = 10.81.0.1 ; 内線: baresip+ on Amazon Kindle Fire HD 8 gen10 [fire8] type = aor max_contacts = 1 qualify_frequency = 60 remove_existing = yes [fire8] type = auth auth_type = userpass username = fire8 password = user3_password [fire8] type = endpoint transport = transport-udp context = default disallow = all allow = ilbc,ulaw,alaw,gsm,g729,g723 aors = fire8 auth = fire8 ;outbound_auth = fire8 dtmf_mode = rfc4733 force_rport = yes ice_support = no rtp_symmetric = yes direct_media = no rewrite_contact = yes device_state_busy_at = 1
これに合わせて、extensions.confも変更し、発信・着信できるようにする。
[default] ;include => stdexten ; 着信 ;; 内線 ;;; 自動応答 exten => 1290,1,Playback(demo-congrats) ; 動作チェック用 ;;; 各端末 exten => 101,1,Dial(IAX2/user1,20,rt) exten => 103,1,Dial(IAX2/user2,20,rt) exten => 104,1,Dial(PJSIP/fire8,20,rt) ;; 外線 exten => 55863768,1,Deal(IAX2/user1&IAX2/user2&PJSIP/fire8,20,rt) exten => 53077771,1,Dial(IAX2/user1&lIAX2/user2&PJSIP/fire8,20,rt) exten => s,1,Dial(IAX2/user1&IAX2/user2&PJSIP/fire8) ; 発信 ;; Fusion SMARTalkの場合には9で発信する。 exten => _9.,1,NoOp(Fusion発信9) exten => _9.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _9.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _9.,n,Dial(PJSIP/${EXTEN:1}@fusion1,120,T) exten => _9.,n,Hangup() ;; Fusion SMARTalkの場合には8で発信する。 exten => _8.,1,NoOp(Fusion発信8) exten => _8.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _8.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _8.,n,Dial(PJSIP/${EXTEN:1}@fusion2,120,T) exten => _9.,n,Hangup() ;; ひかり電話の場合には7で発信する。 exten => _7.,1,NoOp(ひかり電話で発信7) exten => _7.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _7.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _7.,n,Dial(PJSIP/${EXTEN:1}@hikari-trunk) exten => _7.,n,Hangup()
Asterisk 16で、ソフトフォンとの間をIAX2プロトコルによる通信に変更する
これまで、NetBSD/amd64 9上で動かしているpkgsrc/comms/asterisk16では、SIPソフトフォンとの間については、chan_sipによるSIPを利用していた。 しかし、既にchan_sipの利用は推奨されていないようだ。 後継となるPJSIPについては、既にひかり電話のためにNTT東日本から借りているホームゲートウェイに接続するのに利用していた。 3台のソフトフォンのうち、2台はZoiPerなので、IAX2を利用できる。 この分はIAX2にしてしまおう。
IAX2の設定は、iax.conf
に記載すれば良い。
chan_sipと似た感じで記入でき、簡単である。
[general] match_auth_username=yes iaxcompact=yes allow=all ; 電話機との接続 [user1] ; Android smartphone type=friend username=user1 secret=user1_password1 context=default canreinvite=no host=dynamic qualify=no [user2] ; Zoiper for Windows type=friend username=user2 secret=user2_password2 context=default canreinvite=no host=dynamic qualify=no
extensions.conf
でも、IAX2を使って着信させるための通信をするのを指定する。
[default] ;include => stdexten ; 着信 ;; 内線 exten => 1290,1,Playback(demo-congrats) ; 動作チェック用 exten => 101,1,Dial(IAX2/user1,20,rt) exten => 103,1,Dial(IAX2/user2,20,rt) ;; 外線 exten => 55863768,1,Dial(IAX2/user1&IAX2/user1,20,rt) exten => 53077771,1,Dial(IAX2/user1&IAX2/user2,20,rt) exten => s,1,Dial(IAX2/user1) ; 発信 ;; 1回線目のFusion SMARTalkの場合には9で発信する。 exten => _9.,1,NoOp(Fusion発信9) exten => _9.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _9.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _9.,n,Dial(PJSIP/${EXTEN:1}@fusion1,120,T) exten => _9.,n,Hangup() ;; 2回線目のFusion SMARTalkの場合には8で発信する。 exten => _8.,1,NoOp(Fusion発信8) exten => _8.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _8.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _8.,n,Dial(PJSIP/${EXTEN:1}@fusion2,120,T) exten => _9.,n,Hangup() ;; ひかり電話の場合には7で発信する。 exten => _7.,1,NoOp(ひかり電話で発信7) exten => _7.,n,Set(CALLERID(num)=${MYNUMBER}) exten => _7.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _7.,n,Dial(PJSIP/${EXTEN:1}@hikari-trunk) exten => _7.,n,Hangup()
sip.conf
とpjsip.conf
の内容は、前回と大差はない。
無料のVMware ESXi 8.0のライセンスを取得する
VMwareのウェブサイトを見たら、VMware ESXi 8.0がリリースされていた。 しかし、無料で入手できるような表示にはなっていないように見える。
VMware ESXiの無料での提供は止めてしまったのかと思ったのだが、そうでもないようだ。Free ESXi 8.0 - How to Download and get License Keysによると、 Evaluationを申し込むと、これまで提供されて来たような無料のライセンスが提供されるらしい。
実際に、Customer Connectにログインして、Product Evaluation Center for VMware vSphere Hypervisor 8のページへ行き、License&Downloadのタブへ移動して、 Registerの青色のボタンをクリックして自分についての情報を入力し(基本的にはアカウントの情報が既に入力済みだったが、必須項目で抜けているものもあった)、 評価版の申し込みを完了すると、VMware vSphere Hypervisor 8 Licenseという表示に、無期限のESXi 8.0のライセンスが表示されるようになる。 同様に、インストールのためのISOイメージファイルもダウンロードできるようになる。
ライセンスを割り当てた後の表示は以下のようになる。期限は定められていないことが分かる。「Up to 8-way virtual SMP」という機能の制限は これまでと変わっていないはずである。
MSI製Z79-S01というマザーボードで、NVMe SSDから起動できる条件
Z79-S01というのは、OEM製品のようで、BIOSアップデーターも提供されない。残念な気がする。 MeltdownとかSpectreとかも無視なのかと悲しい気持ちにもなる。
とは言っても、安定しているのかもしれないし、設定項目は結構たくさんある。 NVMe SSDを挿せるM.2端子が1つのみあるのだが、Fast BootオプションをOffにすると、 NVMe SSDからは一切起動できなくなる。
普通のマシンでのFast Bootであれば何も関係ないような気がするが、実際Z79-S01については そういう状態だった。
オフライン状態で、ローカルグループにActive Directoryユーザーを追加する
Windows 10 ProでActive Directoryでセットアップされているマシンで、 ドメインコントローラーにアクセスできない状態、つまり、オフラインの 状態で、ローカルグループ(手元のPCのグループ)のAdministratorsに Active Directoryのユーザーを追加したいと思った。
特に工夫もなく、以下のようにコマンドラインで実行すれば良い。
> net localgroup LOCALGROUP DOMAINUSERID /addこれで、ローカルのLOCALGROUPグループに、DOMAIN\DOMAINUSERIDユーザーを 追加できる。
iPhoneから、MTP経由で写真をコピーする際に、「MACまたはPCに転送」の「元のフォーマットのまま」と「自動」が切り替わるタイミング
pkgsrc/graphics/libheifで利用できるlibheif-1.13.0ではうまく扱えないiPhone XRのiOS 15で撮影した.HEIC画像がある。 とりあえずやりたいことはJPEG形式に変換することなので、いつもは「元のフォーマットのまま(Keep Originals)」に設定している写真アプリの 「MACまたはPCに転送」の設定を「自動(Automatic)」にしてみることにした。 これは、「設定アプリ→写真→MACまたはPCに転送」あるいは「Settings app→Photos→TRANSFER TO MAC OR PC」のようにたどると設定できる。
これUSB to Lightningケーブルをつないている状態でも設定変更できるが、実際にJPEGファイルがMTP経由でPCから見えるようになるのは、 USB to Lightningケーブルをつなぎ直した後からだった。
IA16なGCCのint、long、ポインターのサイズを確認する
GCCはIA16 (8086で始まる16ビットのIntelアーキテクチャー)をサポートするようになっているが、int型、long型、ポインター型のサイズがどうなっているのか理解していなかった。 GCCのオンラインマニュアルでのx86の-m16オプションの説明を読むと、 -m16でも-m32と同様にint型、long型、ポインター型は全て32ビットであるらしい。 それを確認するには、以下のようにすれば良さそうだ。
まず、以下のようなC言語のソースコードsizeof.cを作成する。
$ cat sizeof.c int main(void) { int int_size = sizeof(int); int long_size = sizeof(long); int pointer_size = sizeof(void *); return 0; }
これをコンパイルして、オブジェクトファイルsizeof.oを生成する。
$ gcc -m16 -c sizeof.c
これをディスアセンブルする。すると、$0x4というのが代入される部分が3箇所あることが分かる。 つまり、4バイト=32ビットがint型、long型、ポインター型のサイズであることが分かる。
$ objdump -d sizeof.o sizeof.o: file format elf32-i386 Disassembly of section .text: 00000000 <main≶: 0: 66 55 push %bp 2: 66 89 e5 mov %sp,%bp 5: 66 83 ec 10 sub $0x10,%sp 9: 67 66 c7 45 fc 04 00 movw $0x4,-0x4(%di) 10: 00 00 add %al,(%eax) 12: 67 66 c7 45 f8 04 00 movw $0x4,-0x8(%di) 19: 00 00 add %al,(%eax) 1b: 67 66 c7 45 f4 04 00 movw $0x4,-0xc(%di) 22: 00 00 add %al,(%eax) 24: 66 b8 00 00 mov $0x0,%ax 28: 00 00 add %al,(%eax) 2a: 66 89 ec mov %bp,%sp 2d: 66 5d pop %bp 2f: 66 c3 retw
Amazon Fire HD 8 (第10世代)にMozilla Firefox for Androidをインストールする
Amazon Fire HD 8 (第10世代)を利用しているのだが、 デフォルトでAmazon Silkというウェブブラウザーにはあまり慣れられない。 これはGoogle Chrome for Androidを別名でリリースしているものだと思うのだが、そもそもGoogle Chromeも使い慣れていないので、使いにくい。
いつも利用しているMozilla Firefox for Androidは、Amazon Appstoreでは提供されていないようだ。 Mozilla Firefox for Androidは、Fenixという名前で、GitHubで.apkファイルが公開されている。 Amazon Fire HD 8 (第10世代)のFireOS 7.3.2.6は、32ビットARMなAndroidをベースにしているようで、64ビットARM (arm64-v8a)な.apkファイルはインストールできなかった。 armeabi-v7aな.apkファイル をインストールすると、少なくとも私の利用している機能は、自動アップデートを除き、正常に利用できた。 Mozilla Firefox for Androidを利用しているAndroidスマートフォンがあるので、アップデートには気付けそうなので、手作業でアップデートすれば良いのかもしれない。
これで相当にAmazon Fire HD 8 (第10世代)を使う機会が増えそうだ。
Amazon Fire HD 8 (第10世代)でPDFファイルを閲覧する
Amazon Fire HD 8 (第10世代)を利用しているのだが、 PDFファイルを閲覧するアプリがAmazon Appstoreいないように見えた。 実際にPDFファイルを閲覧しようとして提案されるのは、デフォルトでインストールされているKindleアプリだった。 Kindleアプリで十分に閲覧可能なので、有用なPDFファイルビューアーアプリは存在しないのかもしれない。
Amazon Fire HD 8 (第10世代)で、Microsoft OneNoteアプリを利用する
Amazon Fire HD 8 (第10世代)で、Microsoft Officeアプリを利用する話を 書いたが、手書きノートをとるのを試そうと、Microsoft OneNoteアプリもインストールすることにした。 結果としては、静電容量式のスタイラスペンでの書き込みは、反応速度はそこまで悪くはないものの、あまり使いやすいようなイメージを持てなかった。
Microsoft OneNoteアプリは、初回起動時にMicrosoft Officeアプリ同様に言語ファイルをダウンロードしようとするのだが、これが毎回失敗する。 Amazon Appstoreの日本語のレビューでは、あるバージョンでは言語ファイルのダウンロードには失敗しなくなったようなのだが、 少なくとも2023年1月1日現在では、毎回失敗し、日本語のユーザーインターフェイスは利用できない。英語のユーザーインターフェイスを利用することとなる。
HP Envy 13-ay1052AU x360のBIOSをWindowsを起動させずに更新する
HP Envy 13-ay1052AU x360では、他のWindowsが起動しているPCでUSB stickにBIOSイメージを書き込み、HP Envy-ay1052AU x360でWindowsを起動させることなく BIOSをアップデートできる。 具体的には、 ...
-
Apache TomcatのフロントエンドにApche httpdを設置している環境がある。 Apache httpdとApache Tomcatの間は、AJP接続をしている。 Apache Tomcatを9.0.34にアップデートしたとこと、以下のようなエラーになってAJP接...
-
OCNをISPとして、回線はフレッツで利用しているのだが、IPoEなIPv6は使えるようになっているのだが、IPv4 over IPv6は利用できていない。 自分の環境でIPv4 over IPv6が使えるかどうか良く分からなかったので、使えるかどうかの確認方法を書いて...
-
Microsoft Windows 10で使っているHP ProBook 450 G3とG5があるのだが、このマシンの内蔵キーボードにはscroll lockキーがない。 しかし、何らかのタイミングでscrool lockキーが押されてしまう現象があった。 試してみると、Fn+...