AN889の日記

組込みエンジニアのブログ

【ZynqMP】Linux版XICのプロキシー設定

XILINX社提供のXIC(Xilinx Information Center)は同社SDK(VivadoやVitisなど)のインストール状態を管理するツールですが、これのLinux版の話です。 プロキシー環境下だと毎回起動時にプロキシー設定画面が表示され、いちいちプロキシー設定する必要がありました。

XIC - Change Proxy Settings

なんとかならないかと、XICのインストールディレクトリーを調べると、設定ファイルらしきものがありました。 /opt/Xilinx/xic/tps/lnx64/jre11.0.11_9/conf/net.properties(私は/opt下にインストールしています)です。
このファイルで下記のように設定したところ、設定画面が表示されなくなりました(IPアドレスとポート番号はご自身の環境に合わせて設定ください)。

http.proxyHost=IPアドレス
http.proxyPort=ポート番号
# http.nonProxyHosts=localhost|127.*|[::1]

https.proxyHost=IPアドレス
https.proxyPort=ポート番号

ftp.proxyHost=IPアドレス
ftp.proxyPort=ポート番号
# ftp.nonProxyHosts=localhost|127.*|[::1]

【Yocto】NXP QorIQプロセッサ向け64ビットLinux

NXPのQorIQシリーズのT1024/14プロセッサーは64ビットなので、64ビットLinuxを試しました。 4.19*1は正常に動きました。
4.14*2はSPIフラッシュアクセスでカーネルエラーになります。本家*3のppc64関連のパッチを当てましたがダメでした。

未解決です。

【Yocto】NXP QorIQプロセッサ向けLinuxでのCONFIG_SMP

NXPのQorIQシリーズのT1014プロセッサー*1は一コアなので、これのLinuxビルドでカーネルコンフィギュレーションのCONFIG_SMP(Symmetric Multi-Processing support)を無効にしたところ、ネットワークが使えなくなりました。 QorIQシリーズにはDPAA(Data Path Acceleration Architecture)というネットワーク高速化処理機構があります。DPAAはいくつかの機能から構成されるのですが、このうちのBMAN(Buffer manager)とQMAN(Queue manager)が CONFIG_SMP 無効で使えなくなるためでした。ドライバーの初期化が失敗します。カーネルログです。

bman_portal ff4000000.bman-portal: unable to set IRQ affinity
bman_portal ff4000000.bman-portal: init_pcfg: Portal failure on cpu 0
bman_portal ff4000000.bman-portal: portal init failed
qman_ccsr ffe318000.qman: Allocated PFDR 0x3c000000 0x2000000
qman_portal ff6000000.qman-portal: unable to set IRQ affinity
qman_portal ff6000000.qman-portal: init_pcfg: Portal failure on cpu 0
qman_portal ff6000000.qman-portal: portal init failed
fsl_dpa dpaa-ethernet.0: failing probe due to bman portals probe error

カーネルバージョン4.14*2で具体的に説明します(4.19*3も同じです)。 BMAN、QMANのドライバーはdrivers/soc/fsl/qbman/にあります。BMANドライバーの初期化失敗までの流れです。

bman_portal.c: bman_portals_probed() 
 ↓
bman_portal.c: init_pcfg()
 ↓
bman.c: bman_create_affine_portal()
 ↓
bman.c: bman_create_portal()
 ↓
dpaa_sys.h: dpaa_set_portal_irq_affinity() の irq_can_set_affinity() 呼出しが偽でエラー

このirq_can_set_affinity()include/linux/interrupt.hで宣言されてますが、CONFIG_SMP 無効だと

static inline int irq_can_set_affinity(unsigned int irq)
{
    return 0;
}

と実装されているためです。 QMANドライバーも同じくこの関数呼び出しでエラーになります。

一コアだから CONFIG_SMP 無効にしたいところですが仕方ないですね。

【Windows】無線LANデバイス QCA9377 の2.4GHz

私のDELL製ノートPCの無線LANバイスQualcomm製QCA9377なのですが、これの2.4GHzがいけてません。
不意に切れて数分後に復旧という現象が出ます。
Wi-Fiは5GHzを使うのでまぁいいです。
が、困るのがBluetoothマウスです。Bluetoothも2.4GHzなので、Bluetoothマウス使用中にマウスが使えなくなります。最新ドライバーでも解決しません。
購入当初に症状出たので、デバイス不具合かもと思いDELLへ連絡してPC交換しましたが、交換機でも症状出ました。交換機でも症状出たことDELLへ報告しましたが、DELLではどうしようもないと匙を投げられました。
なので、このデバイスそのものがいけてないのでしょう。

仕方ないので、Bluetoothマウスを諦め、USBレシーバーの無線マウスを使っています。

【Windows】ブルースクリーン DRIVER_POWER_STATE_FAILURE 対応

私はWindows 10を使ってるのですが、ある日から急にWindowsがフリーズようになりました。
ChromeでいろいろWebページを閲覧してると急にマウスカーソルの動きが鈍くなったかと思うと、その後すぐマウスもキーボードも無反応になり、Windowsがフリーズしました。そのまま数分放っておくとブルースクリーンBSOD、Blue Screen of Death)で DRIVER_POWER_STATE_FAILURE が表示されました。ブルースクリーンにならずリセットする場合もあります。
発生に規則性なく、Windows起動してすぐであったり、24時間経過後であったりします。

DRIVER_POWER_STATE_FAILURE でお困りの方は世間に多くおられるようで、その対策方法もネットにいろいろあります。
このエラーは電源関係なので、それら対策の中の電源関係であるWindowsデバイスドライバーの省電力機能無効を試しましたが、変わらず症状出ます。ネット使用中に発生するので、無線LANドライバーを疑ってそのドライバーの省電力機能無効が効果あると期待したのですがダメでした。無線LANドライバーを再インストールしてもダメ。
Chrome使用中に発生するので、Chrome拡張機能(特にセキュリティーソフト)を無効にしてもダメ。
挙句に、Chrome使用中でなく、テキストエディターでファイル編集中にも発生しました。

ハードウェアに何か問題あるかもと、ハードウェアテストしても問題なし。

もうお手上げ。Windowsの再インストールか、いやいや面倒。

ここでふと気づきました。BIOS更新してから症状出始めたなと。で、BIOS設定を確認しました。私のノートPCはAMD製CPUを搭載しているのですが、「PowerNow!」なる項目が有効になってます。これは何かと調べたら「AMDの開発したCPUに搭載されている省電力技術」とあります*1。これが悪さしてるかもと思い、これを無効にしました。無効にしてから1週間経過しましたが、症状出ません。
治ったかも...、今のところはそう思っています。
同様の症状で「PowerNow!」無効で解決された方もいらっしゃるので。

www.dell.com

あと、この症状出てからWindows起動時の「ようこそ画面」でかなり待たされるようになりました。強制リセットによる %USERPROFILE%\AppData\Local\Temp の肥大化が原因でした。Tempフォルダー内のファイル削除で(一部ファイルはシステム使用中で削除できませんが)解決しました。

 

[追記1]
ダメですね、再発しました。発生頻度はかなり下がりましたが。
残念。

 

[追記2]
管理者モードのコマンドプロンプトで、下記実行しました。

DISM.exe /Online /Cleanup-image /Restorehealth
sfc /scannow
netsh winsock reset

加えて、マウスの付属ソフトを更新しました。私のマウスはエレコム製ですが、マウスアシスタントというソフトを使うので、これを更新しました。
1週間経過しましたが、今のところ症状出ません。

 

[追記3]
ダメですね、再発しました。発生頻度はかなり下がりましたが。
「追記2」から1週間です。

 

[追記4]
まだ解決していません。
イベントビューアーで症状出た時間のログを調べたところ、「ディスプレイ ドライバー amdwddmg が応答を停止しましたが、正常に回復しました。」とあったので、これをネット検索したところ、同様の症状で困ってる方が多くおられました。ほとんどの方が未解決です。

また、

https://support.borndigital.co.jp/hc/ja/articles/360000574634-%E9%95%B7%E3%81%84%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E8%A8%88%E7%AE%97%E3%81%A7GPU%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%81%8C%E3%82%AF%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%81%99%E3%82%8B/

softantenna.com

を参考に下記レジストリーキーを追加しましたが、ダメでした。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers: TdrDelay = 60, TdrDdiDelay = 60
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Dwm: OverlayTestMode = 5

AMDのサイトから最新のグラフィックスドライバーを入れましたが、ダメです。

www.amd.com


この症状出たときに、別PCから症状発生中のPCにping打ったところping応答あるので、動いてはいるようです。画面が固まっているだけのよう。

解決の見込みなさそうなので、Windows 11へ近々更新しようと思っています。
また報告します。

 

[追記5]
Windows 11へはまだ更新していません。
イベントビューアーで管理イベントを調べていたところ、
Realtek PCIe FE Family Controller is disconnected from network.”
という警告がありました。
これは有線ネットワークアダプターに関するもので、ネット検索したところ、このような情報がありました。

www.dell.com

これを参考に省電力に関する項目を無効にしました。

Power Saving Mode:無効
省電力型イーサネット(EEE):無効

この設定が関係あるのかわかりませんが、今のところ症状出ません。
有線ネットワークは使ってないのですが...。

 

[追記6]
ダメですね、再発しました。
Windows 11に更新したのですが...。

【Yocto】NXP QorIQプロセッサ向けLinuxビルドでのカーネルコンフィギュレーション変更

組込みLinux移植(ポーティング)ではプロセッサーメーカー提供のSDKを使うことが多いですが、それに含まれるLinuxカーネルコンフィギュレーションはそのプロセッサーの評価基板(リファレンスボード)用になっています。自分達の開発基板(カスタムボード)とは周辺デバイスが異なるので、開発基板のLinuxカーネルコンフィギュレーションは開発基板に合わせて変更します。
QorIQ向けLinuxのYoctoレシピファイル、例えば
meta-freescale/recipes-kernel/linux/linux-qoriq_4.14.bb
では

DELTA_KERNEL_DEFCONFIG ?= ""  

と DELTA_KERNEL_DEFCONFIG という変数が定義されています。
これにカーネルコンフィギュレーションを定義したファイルを指定することで、カーネルコンフィギュレーションを変更できます。

linux-qoriq_4.14.bbappend 例

DELTA_KERNEL_DEFCONFIG_append = " bsp.cfg"

bsp.cfg例

CONFIG_SUSPEND=n
CONFIG_PCI=n
CONFIG_SCSI=n
CONFIG_ATA=n

【TRACE32】ローターバッファ社製デバッガーソフトウェアTRACE32の備忘録

ローターバッファ社製デバッガーソフトウェアTRACE32でU-BootやLinuxデバッグするときの設定例などです。

識別子

~~: TRACE32 システムフォルダー
~~~: temporary フォルダーへの接頭辞
~~~~:カレントフォルダー

U-Bootデバッグ

  1. イメージファイルとソースパスの設定例
    Data.LOAD.Elf \\host\path\to\prj\tmp\work\machine\u-boot\ver\build\u-boot /gnu /nocode /STRIPPART 11.
    sYmbol.SourcePATH \\host\path\to\prj\tmp\work\machine\u-boot\ver\git
    STRIPPARTでイメージファイルへのパス全て削除します。上記だとbuildまでの数です。\が区切り文字です。先頭の\\は1と数えます。

Linuxデバッグ

  1. イメージファイルとソースパスの設定例
    Data.LOAD.Elf \\host\path\to\prj\tmp\work\machine\linux\ver\build\vmlinux /gnu /nocode /STRIPPART 4.
    sYmbol.SourcePATH \\host\path\to\prj\tmp\work-shared\machine\kernel-source
    STRIPPARTでvmlinux中のシンボル情報のパス(vmlinux へのパスではない)を指定分削除し、それをsYmbol.SourcePATHに付加したパスが当該ソースパスとなります。yoctoのパス構成の場合は4で良いと思います。