lvnkae
lvnkae
9 posts
github  youtube  twitter
Don't wanna be here? Send us removal request.
lvnkae · 2 months ago
Text
Ubuntu 24.04にWDC-150SU2Mを挿し、APモードで使用する
Ubuntu22.04から24.04にアップデートし、ELECOMの無線LANアダプタWDC-150SU2MをWiFi親機として使用できるmoduleを入れ直した際に問題(build error)が生じたので対応方法を書き残しておく
環境
対応moduleのインストール
環境
Tumblr media Tumblr media
対応moduleのインストール
標準(linux-headers-xxxx-generic)でr8188euというmoduleがインストールされており、USBにWDC-150SU2Mを挿すと読み込まれるが、このmoduleはAPモードに対応していない(子機としては使用可)ため、有志が改修したrtl8188euを新たにインストールする必要がある。
手順
1.gitからmoduleを一式持ってくる
git clone https://github.com/ivanovborislav/rtl8188eu.git
2.build時にerrorが出ないよう4ファイル修正
 /os_dep/linux/ioctl_cfg80211.c
line 5397 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0) + struct cfg80211_ap_update *params) +#else struct cfg80211_beacon_data *info) +#endif
line 5400 _adapter *adapter = (_adapter *)rtw_netdev_priv(ndev); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 7, 0) + struct cfg80211_beacon_data *info = ¶ms->beacon; +#endif
 /os_dep/linux/os_intfs.c
strlcpyをstrscpyに置換(5箇所)
 /os_dep/linux/usb_intf.c
line 350 -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 8, 0))
 /os_dep/linux/wifi_regd.c
line 408 -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 8, 0))
3.ビルド/インストール
make sudo make install
4.DKMSのインストール
sudo git clone "https://github.com/ivanovborislav/rtl8188eu.git" /usr/src/rtl8188eu-5.13.3 sudo cp os_dep/linux/ioctl_cfg80211.c /usr/src/rtl8188eu-5.13.3/os_dep/linux/ sudo cp os_dep/linux/os_intfs.c /usr/src/rtl8188eu-5.13.3/os_dep/linux/ sudo cp os_dep/linux/usb_intf.c /usr/src/rtl8188eu-5.13.3/os_dep/linux/ sudo cp os_dep/linux/wifi_regd.c /usr/src/rtl8188eu-5.13.3/os_dep/linux/ sudo dkms add -m rtl8188eu -v 5.13.3 sudo dkms build -m rtl8188eu -v 5.13.3 sudo dkms install -m rtl8188eu -v 5.13.3
以降は22.04の時と同じ
※25/05/24追記
標準モジュールr8188euやrtl8xxxuが読み込まれてしまう場合は下記内容で.confファイルを作成し/etc/modprobe.d/に置けば回避できる
blacklist r8188eu blacklist rtl8xxxu
2 notes · View notes
lvnkae · 1 year ago
Text
Ubuntu 22.04にWN-G150UMを挿してもAPモードでの使用はできなかった
IODATAの無線LANアダプタWN-G150UMをubuntuに挿し、AP設定をするところまではできたが、端末(スマホ等)をWiFi接続しようとするとubuntuごと固まってしまい、実用に耐えなかった。備忘録として書き残しておくことにする。
環境
対応moduleのインストール
NetworkManagerでAP設定作成
再起動
参考サイト
備考
環境
Tumblr media Tumblr media
対応moduleのインストール
標準(linux-headers-xxxx-generic)でrtl8xxxuというmoduleがインストールされており、USBにWN-G150UMを挿すと読み込まれるが、このmoduleはAPモードに対応していない(子機としては使用可)ため、有志が改修した8192cuを新たにインストールする必要がある。
手順
1.gitからmoduleを一式持ってくる
git clone https://github.com/pvaret/rtl8192cu-fixes.git
2.DKMSのインストール
sudo dkms add ./rtl8192cu-fixes sudo dkms install 8192cu/1.11
3.moduleのリフレッシュ
sudo depmod -a
4. blacklist設定
標準moduleの無効化
sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/
NetworkManagerでAP設定作成
手順
1.NetworkManager起動
nm-connection-editor
2.WiFi設定作成
+ボタンを押して設定を新規作成する
Tumblr media
3.APモードを有効にする
接続名は何でも良いがnmcliコマンドで使うこともあるので半角の方が良さそう
モードは「ホットスポット」
デバイスはWN-G150UMに対応するものを選ぶ
Tumblr media
4.セキュリティ設定
お好みで。どれを選んでも駄目だったが。
Tumblr media
5. 保存して終了
再起動
OSを再起動し、APモードが有効になっているか確認
lsusb -t
正しくインストールできていればrtl8192cuになる(デフォルトはrtl8xxxu)
Tumblr media
iw list
有効になっていれば下記logが出力される(駄目ならAPがない)
Tumblr media
参考サイト
備考
当該moduleはubuntu13.10時代のもので、2年以上メンテナンスされておらず現在では非推奨となっている。22.04で動かなくてもしょうがない。
0 notes
lvnkae · 1 year ago
Text
Ubuntu 22.04にWDC-150SU2Mを挿し、APモードで使用する
ELECOMの無線LANアダプタWDC-150SU2Mをubuntuに挿し、PCをWiFi親機にできたので書き残しておく
環境
対応moduleのインストール
NetworkManagerでAP設定作成
再起動
参考サイト
備考
環境
Tumblr media Tumblr media
対応moduleのインストール
標準(linux-headers-xxxx-generic)でr8188euというmoduleがインストールされており、USBにWDC-150SU2Mを挿すと読み込まれるが、このmoduleはAPモードに対応していない(子機としては使用可)ため、有志が改修したrtl8188euを新たにインストールする必要がある。
手順
1.gitからmoduleを一式持ってくる
git clone https://github.com/ivanovborislav/rtl8188eu.git
2.ビルド/インストール
make sudo make install
3.DKMSのインストール
sudo git clone "https://github.com/ivanovborislav/rtl8188eu.git" /usr/src/rtl8188eu-5.13.3 sudo dkms add -m rtl8188eu -v 5.13.3 sudo dkms build -m rtl8188eu -v 5.13.3 sudo dkms install -m rtl8188eu -v 5.13.3
NetworkManagerでAP設定作成
手順
1.NetworkManager起動
nm-connection-editor
2.WiFi設定作成
+ボタンを押して設定を新規作成する
Tumblr media
3.APモードを有効にする
接続名は何でも良いがnmcliコマンドで使うこともあるので半角の方が良さそう
モードは「ホットスポット」
デバイスはWDC-150SU2Mに対応するものを選ぶ
Tumblr media
4.セキュリティ設定
お好みで。WPA&WPA2でのみ動作確認済み。
Tumblr media
5.保存して終了
再起動
OSを再起動し、APモードが有効になっているか確認
lsusb -t
正しくインストールできていればrtl8188euになる(デフォルトはr8188eu)
Tumblr media
iw list
有効になっていれば下記logが出力される(駄目なら何も出ない)
Tumblr media
参考サイト
Ubuntuをアクセスポイント化させて接続端末のDNSクエリログを記録する
備考
moduleの安全性は検証していない(できない)
別の有志のmoduleでは上手く行かなかった
0 notes
lvnkae · 1 year ago
Text
Ubuntu22.04にUSB無線LANアダプタを挿し、WiFiアクセスポイントにする
⭕ WDC-150SU2M
❌ WN-G150UM
0 notes
lvnkae · 3 years ago
Text
Google ChromeでWebGLエラーダイアログが出る場合の対処法
Chromeを107.0.5304.110へアップデートしたところWebGLが動作しなくなった。その解決法を書き残しておく。まずは「参考サイト」に従い対処を行い、それでもうまくいかない場合に試してみると解決するかもしれない。
発生したエラー
「Laya3D init error,must support webGL!」
参考サイト
ChromeでWebGLが使えない場合の対処法 https://bicstone.me/webgl-chrome
やったこと
"vulkan"の無効化
手順
1. chrome://flags/#enable-vulkanを開く 2. "Default"を"Disable"にへ変更
雑感
ChromiumではDefaultでもvulkanは無効だったが、Chromeでは有効になっていた。 107から仕様が変わったのかもしれない
0 notes
lvnkae · 3 years ago
Text
contextMenuを使ったChrome拡張機能のManifest V3対応
目標
Manifest V3環境のChrome拡張機能でcontextMenuに独自メニューを追加
状況に応じて文字列と表示(Visible)を切り替える
環境
Google Chrome: 99.0.4844.51 (64bit)
拡張機能の概要
ブログランキング/更新情報サイトから指定したブログを消す(非表示にする)拡張機能
ブログ要素(ブログそのものか記事へのリンク)のcontextMenuに独自メニュー「$(blog_name)をミュート」を追加
クリックすると当該ブログは非表示リストに登録され、二度と表示されなくなる
ソース
V2版:https://github.com/lvnkae/blog-collection-filter/tree/firefox
V3版:https://github.com/lvnkae/blog-collection-filter/tree/master
Manifest V2での実装
background.persistentはtrue(永続する)
[content_scripts]contextMenu状態変更要求messageをbackgroundへ送信
右クリック押下時(mousedownイベント)
カーソル下にある要素を調べ
ブログ要素(ブログそのものか記事へのリンク)だったら、contextMenuの独自メニューを「$(blog_name)をミュートする」に切り替え、visibleをonにするmessage
messageにはブログURL/ブログ名も乗せる
ブログ要素でなければvisibleをoffにするmessage
[background]独自メニューがクリックされたら通知messageをcontent_scriptsへ送信
contextMenus.createの"onclick"に登録したfunctionが起点
状態変更要求で受け取ったブログURL/ブログ名を保持しておき、通知に乗せる
[content_scripts]通知を受け取ったら非表示リスト(storage)へ登録
Manifest V3での変更点
background.service_workerに移行
background.scriptsおよびbackground.persistentが廃止された
background用jsの記述方法変更
background_root.jsを設けbackground用jsをimport、manifest.jsontと同じディレクトリに配置
background.service_workerには1ファイルしか指定できない
指定ファイルはmanifest.jsonと同じ位置に置く必要がある
contextMenus.createのタイミング変更
runtime.onInstalled.addListener、runtime.onStartup.addListenerの2箇所
service_workerは定期的に無効化される
有効化されるたびにスクリプトが読み直されるので、初期化タイミングでcreateすると多重生成になる
errorが出るだけで害はないが気持ち悪い
onInstalledは拡張機能インストール時、onStartupはchrome開始とバージョンアップで発火(らしい)
contextMenuのclicked-callback登録方法変更
contextMenus.onClicked.addListenerで登録
service_workerではcontextMenus.createの"onclick"使用不可
listenerはservice_worker無効化で捨てられるので、background初期化(スクリプト読み込み)時に毎回登録
background側でのパラメータ保持をstorageへ移行
content_scriptsから受信したパラメータをglobal-workにcopy、storage.local.setで保存
具体的にはブログURLとブログ名
background初期化(スクリプト読み込み)時にstorage.local.getでglobal-workへ取り出し
スクリプト内での参照はglobal-work
storageのget/setは非同期処理なのでできるだけ触りたくない
get完了前にset叩いたらどうなるの?とか
扱うパラメータが100byte程度なのにgetに15msecかかることもある
できればsetもservice_worker無効化時だけにしたいが、それをhookするイベントはなさそう
V2ではcontextMenuを管理するBGContextMenuController-classをinstance化しパラメータを持たせていた
service_workerは定期的に無効化されinstanceごと捨てられてしまうので❌
contextMenus.createに渡すidを固定文字列に変更
V2ではextentionIDを使用
background側では取得できずcontent_scriptsから来るmessageに付加されるものを利用
createのタイミング変更でmessageを待てなくなった
固定文字列でも意図的にかぶせてこられない限りはバッティングしないはず
独自メニューの切り替えタイミング変更
右クリック押下(mousedownイベント)→マウスカーソル移動(mosemoveイベント)
mousedownでは間に合わないケースが出てきた
具体的には、service_worker再有効化直後の右クリック
最初の1回だけ(最有効化からの経過時間に関係���く)mousedownでの状態変更messageが間に合わない
理由は不明
裏表通信とはいえ、カーソル移動のたびにmessageを出すのは罪が重そうなので、状態が変わった場合だけ送信
変化監視用にcontent_scriptsに状態を持たせたため、不具合具合の温床になった(案の定)
複数tabをまたいだ場合に状態が残ってしまったり
あちこち継ぎ接ぎを当てるハメになった、複雑化よくない
Manifest V3の留意点
service_workerは30秒で無効化される
performance.now()で複数回計測
"最後にスクリプトが動いてから"ではなく起動(onStartup)から30秒
何らか処理してたらさすがに待ってくれる?例えば大容量のstorage.local.set中(確認してない)
service_workerのデバッガ(DevTools)を開いていると無効化されないので注意が必要
service_worker無効化状態でbackgroundで何らか処理する必要が生じたら最有効化
本記事の拡張機能ではcontent_scriptsからのmessage受信とcontextMenu独自メニューclick
どちらもlistenerでhookされており、listenerは初期化(スクリプト読み込み)時にaddしているにも関わらず、初期化前に最有効化がstartするのは不思議
例えばcontextMenus.onClicked.addListenerをonInstalledでのみ叩くよう変更すると、service_worker再有効化後にcontextMenuのcliked-callbackが呼ばれない(=毎回捨てられている)
無効化の挙動がchrome98と99で違う?
[22/03/15 99.0.4844.51]content_scriptsが無い(=matchsに記載されたサイトを開いていない)と30秒で無効化、在ると5分強で無効化
[22/02/28 恐らく98.0.4758.102]何をしていても30秒で無効化されていた
この間変わったことといえばchromeのversionくらい
ダウングレードして確認…はさすがに面倒くさい
popupからbackgroundへ直接messageを送信できない
詳細(stackoverflow)
改めて確認したら普通に送信できている。chrome99で修正された?
0 notes
lvnkae · 7 years ago
Text
Android版FirefoxのアドオンをPCからリモートデバッグする(USB経由)
目標
Android版FirefoxをPCからUSB経由でリモートデバッグする
対象は自作アドオン
環境
PC
OS:Windows7 Professional 64bit
Firefox:55.0.3
スマホ
OS:Android 6.0.1
Firefox:60.0.1
事前準備
Android
開発者向けオプションを表に出す
ビルド番号 を7回タップ
設定 > 端末情報 > ソフトウェア情報 > ビルド番号
USBリモートデバッグを有効にする
設定 > 開発者向けオプション
一番上のスイッチをON
USBデバッグ をON
Android側Firefox
USBリモートデバッグを有効にする
設定 > 高度な設定
USB経由でリモートデバッグする をON
デバッグ開始手順
[PC]Firefox起動
[PC]WebIDE起動
Firefox上でShift+F8 または「ツール > Web開発 > WebIDE」
[スマホ]Firefox起動
スマホとPCをUSBケーブルで接続
[スマホ]USBデバッグ許可を求められるので許可する
[スマホ]リモート受信接続許可を求められるので許可する
[PC]WebIDEのUSBデバイスに端末(スマホ)名が表示されるのでクリックする
[スマホ]再度リモート受信接続許可を求められるので許可する
[PC]WebIDEの左下にスマホ側Firefoxのタブ名一覧が出るので、デバッグしたいタブを選択
[PC]WebIDEがデバッグ画面になるのでスマホ側で操作しながらブレーク貼るなりログを見るなりする
Tumblr media
開発中のアドオンをAndroid版Firefoxにインストールする
AMO(addons.mozilla.org)公開前のアドオンをAndroidでもテストしたい
(18年8月時点)Android版FirefoxにはAMOで審査を受け署名を済ませたアドオンしかインストールできない
Windows版はabout:debuggingから開発中アドオンを読み込めるので話が早いのだが…
AMOに非公開でアドオンを登録し、署名済みパッケージを生成することができる
非公開アドオン登録手順
AMOにログイン
開発者センター > 新しいアドオンを登録
自分自身で。 を選択し 続ける をクリック
ファイルを選択
アドオンパッケージ(.zip)を選択しアップロード
アドオンを署名
xpiファイルが生成されるのでダウンロード
PCでダウンロードした場合はAndroidへ転送
Firefoxからストレージを開きxpiファイルを読み込む
URLバーに  file://sdcard/Download/ と入力し、ファイラーからxpiファイルを選択する
確認を求められるので許可する
FAQ
Firefoxからストレージが開けない
設定 > アプリ > Firefox > 許可 から、ストレージ使用許可を与える必要がある。 デフォルトはOFFになってるはず。
アドオンアップロード時にエラーが出るが理由が示されない
ID重複、バージョン番号が小さい、manifestエラーなど理由が示されるものは従えば良いが「validation error」とだけ出る場合がある。githubで報告するよう促されるがやってられないのでいろいろ試してみよう。 効果があったのは文字・改行コードの統一。jsファイルとmanifestファイルをUTF-8(BOMなし)・改行コードLFで統一したところ回避された。混在していても通るときは通るのでおまじない程度の意味しかないが困ったらやってみてもいいかもしんない。
少しでも変更したらversion上げてパッケージを作り直す必要があるのは面倒臭すぎる
しゃあない。他に手がない。
0 notes
lvnkae · 7 years ago
Text
VisualStudio2015でtensorflow1.5.0rc1のsampleをC++ビルド
環境
OS:Windows7 Professional 64bit
CPU:Core i7-2600K
MEM:8GB
GPU:GeForce GTX560
HDD:1TB
目標
環境構築からsample(label_image)のGPU版ビルドまで
Pythonを使わずC++だけで完結させる
環境構築1
VisualStudio
2015以上必須(Community可)
2013はC++11には対応しているがconstexpr未対応なのでNG
2015はここから、2017で良ければこっちからインストール
日本語言語パックはここ
GeForce Game Ready Driver
CUDA9.0以降に対応したものが必要
更新をサボってない限り改めて入れる必要はない
Spectre/MeltDown対応された390.65以降を入れておけば間違いはない
Windows7 64bit用390.65はここからダウンロード、最新版はこっちから検索
CUDA Toolkit
CUDA9.0を入れる
9.1はtensorflow側が未対応なので多分NG
CuDNN
ここから最新版ではなくCUDA9.0に対応したものダウンロードする
Tumblr media
ログインを求められるので、NVIDIA Developer Programのアカウントを持っていなければ作成(Join)する
入力内容はエラーにならない範囲であればなんでもよい
ダウンロードできたら、CUDAをインストールしたフォルダに上書きする
例  cudnn-9.0-windows7-x64-v7.zipのcudaフォルダ以下を  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0フォルダ以下に上書き
環境構築2:tensorflowライブラリビルドに必要なもの
Git for Windows
ここから64bit用インストーラをダウンロード
VisualStudioインストール時、Gitを選択した場合はまとめてインストールされるので新たに入れる必要はない
MSYS2
cmakeを動かせるならなんでも良いが、手軽なのでMSYS2を採用
ここからインストーラをダウンロード  ※2018年2月10日時点の最新版はmsys2-x86_64-20170918.exe  ※諸々入れると5GBくらいにはなるので入れるドライブに注意
MSYS2 MinGW 64bitを開き、コマンドラインから必要なパッケージを追加
pacman -S mingw-w64-x86_64-cmake
環境構築3:tensorflowインストール
ここのSource code (zip) からtensorflow一式ダウンロード
適当なフォルダに展開
環境変数設定
変数名変数値(例)CUDA_PATHC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
cmake設定変更 ${installpath}/tensorflow/contrib/cmake/CMakeLists.txt
1. Python関連の設定を無効化する(要らないので)  tensorflow_BUILD_PYTHON_BINDINGSをONからOFFに変更  "#include(FindPythonInterp)"から"endif()"までの4行をコメントアウト   ※1.5.0-rc1では395~398行 2. GPUビルドを有効にする  tensorflow_ENABLE_GPUをOFFからONに変更 3. CPUのSIMD拡張命令セットを有効にする  どの命令セットが使えるかはCPUによって異なる  Core i7-2600KではAVXのみ有効だったので   option(tensorflow_WIN_CPU_SIMD_OPTIONS "Enables CPU SIMD instructions")  を   set(tensorflow_WIN_CPU_SIMD_OPTIONS "/arch:AVX" CACHE STRING "Enables CPU SIMD instructions")  に変更した
MSYS2 MinGW 64bitを開き、コマンドラインからcmakeを実行 ※Dドライブのlibフォルダに展開した場合の例
cd /d/lib/tensorflow-1.5.0-rc1/tensorflow/contrib/cmake/ cmake -G "Visual Studio 14 2015 Win64" .
ビルドに使うcl.exeを64bit版に変更
プロジェクトファイル(.vcxproj)を直接書き換える
ビルドオプションではないのでcmake設定ファイルにadd_definitionsしても効果はなかった
最初のImport Project行の下に下記を追加
<PropertyGroup>  <PreferredToolArchitecture>x64</PreferredToolArchitecture> </PropertyGroup>
とりあえずtf_core_kernels.vcxprojのみ
64bit版が必要なのはヒープ不足でビルド失敗するccファイルだけ
具体的には下記2ファイル  conv_ops_3d.cc  conv_grad_ops_3d.cc
公式でも話題になっていたが、この2ファイルだけめちゃめちゃビルドに時間がかかる
前述の環境で合計53分(26分+27分)かかった
ピーク時のcl.exe消費メモリは6.3G程度
ALL_BUILDでライブラリ全ビルドしようとするとここで引っかかる 分散ビルドでcl.exeが複数(前述の環境では9個)起動するため時間のかかるファイルがどんどん残り、メモリを馬鹿食いする
メモリ32GB以上の富豪環境なら問題ないかもしんない(16GBは多分苦しい)
label_imageのビルドと動作確認
tensorflowライブラリビルド
cmakeで生成したtensorflow.slnを開く
${installpath}/tensorflow/contrib/cmake/tensorflow.sln
ALL_BUILDで全ビルドするととんでもないことになるので個別でやる
label_imageに必要なライブラリは下記の通り
tf_cc_framework.libtf_cc_ops.libtf_core_cpu.libtf_core_direct_session.libtf_core_framework.libtf_core_gpu_kernels.libtf_core_kernels.libtf_core_lib.libtf_core_ops.libtf_protos_cc.libtf_stream_executor.lib
前述の環境でビルドにtf_core_gpu_kernels.libは1時間51分、tf_core_kernels.libは1時間52分(問題の2ファイルが53分/その他59分)要したので気長にやろう
VisualStudioでC++Win32コンソールアプリケーションプロジェクトを作成
ソースファイルにmain.ccを追加
${installpath}/tensorflow/examples/label_image/main.cc
"プリプロセッサの定義"設定 プロジェクトプロパティ > 構成プロパティ > C/C++ > プリプロセッサ
追加する定義注釈 WIN32COMPILER_MSVC_SCL_SECURE_NO_WARNINGSDebugのみNOMINMAX
"追加のインクルードディレクトリ"設定 プロジェクトプロパティ > 構成プロパティ > C/C++ > 全般 ※Dドライブのlibフォルダに展開した場合の例
追加するパス注釈 D:\lib\tensorflow-1.5.0-rc1D:\lib\tensorflow-1.5.0-rc1\tensorflow\contrib\cmake生成型のコードD:\lib\tensorflow-1.5.0-rc1\tensorflow\contrib\cmake\eigen\src\eigenD:\lib\tensorflow-1.5.0-rc1\tensorflow\contrib\cmake\protobuf\src\protobuf\srcProtocol BuffersD:\lib\tensorflow-1.5.0-rc1\tensorflow\contrib\cmake\nsync\install\include
"追加のライブラリディレクトリ"設定 プロジェクトプロパティ > 構成プロパティ > リンカー > 全般 ※Dドライブのlibフォルダに展開した場合の例
D:\lib\tensorflow-1.5.0-rc1\libD:\lib\tensorflow-1.5.0-rc1\tensorflow\contrib\cmakeC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib
"追加の依存ファイル"設定 プロジェクトプロパティ > 構成プロパティ > リンカー > 入力 ※Dドライブのlibフォルダに展開した場合のDebugビルド例
Debug\tf_core_gpu_kernels.libDebug\tf_protos_cc.libx64\cublas.libx64\cuda.libx64\cudart.libx64\cudnn.libx64\cufft.libx64\curand.libx64\cusolver.libfarmhash\src\farmhash\Debug\farmhash.libfft2d\src\fft2d\Debug\fft2d.libgif\src\gif-build\Debug\giflib.libjpeg\src\jpeg-build\Debug\libjpeg.liblmdb\src\lmdb-build\Debug\lmdb.libnsync\src\nsync\Debug\nsync.libpng\src\png-build\Debug\libpng12_staticd.libprotobuf\src\protobuf\Debug\libprotobufd.libsnappy\src\snappy\Debug\snappy.libsqlite\src\sqlite-build\Debug\sqlite.libtf_cc_framework.dir\Debug\tf_cc_framework.libtf_cc_ops.dir\Debug\tf_cc_ops.libtf_core_cpu.dir\Debug\tf_core_cpu.libtf_core_direct_session.dir\Debug\tf_core_direct_session.libtf_core_framework.dir\Debug\tf_core_framework.libtf_core_kernels.dir\Debug\tf_core_kernels.libtf_core_lib.dir\Debug\tf_core_lib.libtf_core_ops.dir\Debug\tf_core_ops.libtf_stream_executor.dir\Debug\tf_stream_executor.libzlib\install\lib\zlibstaticd.lib
一部ライブラリに全体リンク指定を付ける
どこからも参照されていないが意味のあるstatic変数(Factory、Registrarなど)が多数あるため、objがリンクで落とされないよう対処する
"追加のオプション"設定 プロジェクトプロパティ > 構成プロパティ > リンカー > コマンドライン
/WHOLEARCHIVE:tf_cc_framework.lib/WHOLEARCHIVE:tf_cc_ops.lib /WHOLEARCHIVE:tf_core_cpu.lib/WHOLEARCHIVE:tf_core_direct_session.lib /WHOLEARCHIVE:tf_core_framework.lib/WHOLEARCHIVE:tf_core_kernels.lib /WHOLEARCHIVE:tf_core_lib.lib/WHOLEARCHIVE:tf_core_ops.lib/WHOLEARCHIVE:tf_stream_executor.lib/WHOLEARCHIVE:libjpeg.lib
インクリメンタルリンクを無効にする
WHOLEARCHIVEと同時に使用した場合に不具合があるとのこと プロジェクトプロパティ > 構成プロパティ > リンカー > 全般 "インクリメンタルリンクを有効にする"を「いいえ」に変更
"作業ディレクトリ"設定 プロジェクトプロパティ > 構成プロパティ > デバッグ
tensorflowを展開したフォルダをそのまま設定 例  D:\lib\tensorflow-1.5.0-rc1
テストデータ取得 README.mdに従い、これをダウンロード、dataフォルダに展開
label_imageをビルドしてデバッグ開始
Tumblr media
参考サイト
https://qiita.com/YankeeDeltaBravo225/items/d40008f97797d6e88b71#_reference-1585f14b485c99cfde4f http://tadaoyamaoka.hatenablog.com/entry/2016/10/31/221101 http://umezawa.dyndns.info/wordpress/?p=6392
0 notes
lvnkae · 7 years ago
Text
てってってー てってってー てってってー てってってー てってってー てってってー てってってー てってってー てってってー てってってー てってってー てってってー
0 notes