アフィリエイト広告を利用しています
ファン
検索
<< 2023年12月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
最新記事
(12/20)KI cad インストールしてみよう
(04/11)【JAVA】チョロメを外部から動作させます。 幽霊が操作してるような
(07/29)spartan3 を cy7c68013 のバルクライトで シリアルコンフィグしてみた
(07/28)ブログ村に参加してみた。いまとのころブログ村からはだれもこない^^;
(07/28)PIC16F1503 を使ってみようかな?? MPLAB 内部クロック
(07/01)からっぽのつぎ のページ きっとはげ に なんか作用するかも
(05/06)GCEでワードプレス 第2 困ったのでやり直し手順
(05/05)https://certbot.eff.org/lets-encrypt/centosrhel7-apache をみてハマったこと
(04/28)フェドラ をつかって switchbot をアクセス する。  ? 未解決
(04/02)【オープンVPN】setsebool -P openvpn_enable_homedirs 1 でうごいた
(04/01)【QT5】わからないのでタイムアウトで自動でキャンセルボタン押すメッセージボックスつくってみた
(03/31)qt5よくわからんのだが メッセージボックスの OKスイッチをタイマーで押してみた。
(03/09)【boost】message queue 使い方 目も目も
(03/08)【バカの一つ覚え】ユニークID作成とそのちょっとした応用
(03/04)【パソコン】【GPIO】いったいこれは?
(02/26)【VHDL入門】ABZ信号から Hsync Vsyncを作り出してみよう その2
(02/26)【VHDL入門】ABZ信号から Hsync Vsyncを作り出してみよう その1
(02/26)【VHDL入門】速度比較 エンコーダーABZ相 ソースファイル付き
(02/25)【VHDL入門】ロータリーエンコーダABZ 出力のサンプル 200Mhz動作?
(02/23)【VHDL入門】UART 送受信繰り返しのテストベンチ作成してみたい
最新コメント
カテゴリーアーカイブ
プロフィール
有象無象さんの画像
有象無象
はげはじめました 禿増されます。励ましのコメントお待ちしてます。  
プロフィール

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2020年12月23日

opencv gforce 1050i で動作しました。

gforce 1050i のデバイスドライバのバージョンが低い 450 なんちゃらで 困ったのだ。

そこで 作業は   スーパーユーザになったまま 行う  ダイレクトに作業に直球を投げる

CUDA11.0 を採用 これにともない

条件 CUDA11.0 gcc 9 以下 未満? 確認不足だが  gcc-8.4.0 そして OPENCVの ビルドをする。 テスト  

gcc を下げる  gcc-8.4.0 https://ftp.gnu.org/gnu/gcc/ から

gcc-8.4.0.tar.gz wget https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/ tar zxvf gcc-8.4.0.tar.gz cd gcc-8.4.0 ./contrib/download_prerequisites make -j20 make install -j20

コマンドラインで CUDA11.0をインストール ドライバは入れない

フェドラなのだが CENTOS7で 例のあれを 11.0をダウンロードする。   RUN のタイプだ。
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run sudo sh cuda_11.0.2_450.51.05_linux.run
 ここでRUNするのだが ドライバーはインストールしない これは別途 起動時のドライバーをいれる  

nouveauをとりはずす

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)_20201217.img sudo dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r) sudo bash -c 'echo "blacklist nouveau" >> /etc/modprobe.d/modprobe.conf' sudo bash -c 'echo "blacklist nouveau" >> /etc/modprobe.d/nouveau_blacklist.conf' sudo bash -c 'echo "options nouveau modeset=0" >> /etc/modprobe.d/nouveau_blacklist.conf'

gforce 1050ti のドライバを入手

どうにかしてこれを入手 https://download.nvidia.com/XFree86/Linux-x86_64/450.80.02/ にある。 よくわからんが これが geforce 1050ti の最新版なのかな? まぁいいややっちゃえ NVIDIA-Linux-x86_64-450.80.02.run  ランレベル3 でコンソール立ち上げして これをインストールする。 よくわからんので cuda とか  nvidia の レポジトリといか は 一度取っ払って素の フェドラで行う

OPENVCVを  gcc-8.4.0 でビルド

git clone https://github.com/itseez/opencv.git git clone https://github.com/itseez/opencv_contrib.git で ゲットして mkdir build cd build  opencv にこんなコンフィグ
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_TESTS=ON -D WITH_PYTHON=ON -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D PYTHON_DEFAULT_EXECUTABLE=python3 -D WITH_MKL=ON -D WITH_CUDA=ON -D CUDA_FAST_MATH=ON -D WITH_CUBLAS=ON -D WITH_CUDNN=ON -D WITH_NVCUVID=OFF -D OPENCV_DNN_CUDA=OFF -D BUILD_opencv_cudaimgproc=OFF -D BUILD_EXAMPLES=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D Qt5_DIR=/opt/Qt/5.15.1/gcc_64/lib/cmake/Qt5 -D WITH_OPENGL=ON -D CMAKE_C_COMPILER=/usr/local/bin/gcc ..
CMAKE_C_COMPILER を キチンとしていする。 乱暴に上書きで 8.4.0をインストールした  丁寧なひとは コンパラバージョンわければいい。  さっき インストールした CUDAの11.0 だが gefoece は網羅している。
Pascal (CUDA 8 and later) SM60 or SM_60, compute_60 – Quadro GP100, Tesla P100, DGX-1 (Generic Pascal) SM61 or SM_61, compute_61– GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4, Discrete GPU on the NVIDIA Drive PX2 SM62 or SM_62, compute_62 – Integrated GPU on the NVIDIA Drive PX2, Tegra (Jetson) TX2

2020年12月22日

フェドラlinuxのライブdvdをモディファイして 自分勝手なライブCDをつくるのだ。へっへっへ

実は 私 ダラダラアップデートします。
https://plaza.rakuten.co.jp/sukumo/diary/201806090001/
に 昔書きなぐったのだ。
 これは 私です すっかり書いたこともわすれてた。 ログインの方法も忘れた ユーザー名も パスワードもわからぬ ^^;
 うごくかな 試してみよう ちょっと間違いみつけたけど きにしない。
https://download.fedoraproject.org/pub/fedora/linux/releases/33/Spins/x86_64/iso/Fedora-Xfce-Live-x86_64-33-1.2.iso

をゲットしてやってみる。

書きなぐったときに まちがってるのがこれ

cp -a tmp3 LIVECDIMG
たぶんだだしくは
cp -a tmp3/* LIVECDIMG


初心者というか わかにくいのが バインドをしてマウントするくだりだ。
mount -o bind /dev/ zzrootfs/dev/
mount -o bind /proc/ zzrootfs/proc/
mount -o bind /tmp/ zzrootfs/tmp/
mount -o bind /run/ zzrootfs/run/
mount -o bind /home/liveuser zzrootfs/temp これは例です パソコンの開発環境を CHROOTしたあとみせたい場合に 適当に共有フォルダをつくるときにこんなことします。


これがすんだら chroot で 入ってみる
chroot zzrootfs
なぜ zzrootfs としたかというと 小指二回zz をうってタブを打てば入力できるから aarootfs でもよかったのだが。。。
 CHROOTしたあとは tmp に入ると 親のパソコンの/tmp が見えるこれが 共有フォルダになるので便利

これからおこなうわけのわからない作業の助けになるのが https://github.com/Swordfish90/cool-retro-term
だ CHROOTして





gcc 8.4.0をソースからビルドする。^^;

https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/
 に移動して ダウンロードする。
wgt https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.gz

こんな感じ tar zxvf で展開して
./contrib/download_prerequisites
./configure --disable-multilib

make -j20
make install -j10

こんな感じ

 
posted by 有象無象 at 17:54| Comment(0) | TrackBack(0) | C++

fedora カーネルビルド

しばらく かきかえながらすすめます。 だらしなくアップデートします。 準備
dnf builddep -y kernel dnf install -y numactl-devel pesign dnf install fedpkg fedora-packager rpmdevtools ncurses-devel pesign dnf install -y rpmdevtools
そして なんらかのカーネルをダウンロードする。 今回は linux-5.4.85 をつかうことにした
make mrproper  まずこれを実行 これは クリーニング屋の名前らしい きれいにお掃除という話だ。 make olddefconfig O=../build cd ../build make menuconfig make -j18 make modules_install make install
自己責任で コンフィグを勝手にはる。 mkdir build cd build
別の準備   dnf -y install qemu-kvm libvirt virt-install dnf -y install virt-manager KVMでテストするから  fedroa33VmDesktop.png
posted by 有象無象 at 07:49| Comment(0) | TrackBack(0) | C++

2020年12月21日

QTで CUDAするとき の注意点

QT5で CUDA するときの注意 


ビルドのときも書いたけど
cmake のオプションは 
 
-D Qt5_DIR=/opt/Qt/5.15.1/gcc_64/lib/cmake/Qt5 \


LD_LIBRARY_PATH は?
 
LD_LIBRARY_PATH も つかうかな 例えば
export LD_LIBRARY_PATH=/usr/local/lib64 とか いるかもね!

失敗するよ こんなのかかないで Mat img = imread(":/TempIcons/logo.png");
 
 OPNCV は QTのリソースなんか 読めないので 一度

   QFile file(":/TempIcons/logo.png); //な感じで まず QTに読ませましょう
cv::Mat m; //MAtを定義して
if(file.open(QIODevice::ReadOnly))// リードオンリーでよみます。
{
qint64 sz = file.size(); //ファイルサイズを取得して
std::vector buf(sz);   // あれして なにして
file.read((char*)buf.data(), sz);
m = cv::imdecode(buf, flag); // ここが肝心 mにぶっこむ 
return m;
}else


int main()
{//using namespace std;
cv::Mat img =loadFromQtResouce(":/img/Lenna.png");//玲奈ちゃんをよみこみます。
if (img.empty()){std::cout << "couldn't read the image." < timeSpan = t1 - t0;
printf("CPU = %.3lf [msec]\n", timeSpan.count() * 1000.0 / NUM_REPEAT);
cv::imshow("CPU", imgDst);
std::cout<< std::endl;
}
// else
{
cv::cuda::GpuMat imgGpuSrc, imgGpuDst;
cv::Mat imgDst;
const auto& t0 = std::chrono::steady_clock::now();
for (int i = 0; i < NUM_REPEAT; i++) {
imgGpuSrc.upload(img);
cv::cuda::resize(imgGpuSrc, imgGpuDst, cv::Size(300, 300));
imgGpuDst.download(imgDst);
}
const auto& t1 = std::chrono::steady_clock::now();
std::chrono::duration timeSpan = t1 - t0;
printf("GPU = %.3lf [msec]\n", timeSpan.count() * 1000.0 / NUM_REPEAT);
std::cout<< std::endl;
cv::imshow("GPU", imgDst);
}

cv::waitKey(0);
return 0;
}










CUDA つき OPENCVの ビルドインストール

CUDA OPENCV


四の五のいわずに 2つギットで ダウンロード

git clone https://github.com/itseez/opencv.git
git clone https://github.com/itseez/opencv_contrib.git

ビルド前に PNG ライブラリとか FFMPGEとか入れておく



dnf install libpng-devel ffmpeg-devel

他定番
dnf install -y git gcc bzip2 bzip2-devel openssl openssl-devel readline readline-devel sqlite-devel
dnf install -y cmake libjpeg-devel libtiff-devel libpng-devel jasper-devel
dnf install -y mesa-libGL-devel libXt-devel libgphoto2-devel nasm libtheora-devel
dnf install -y autoconf automake gcc-c++ libtool yasm openal-devel blas blas-devel atlas atlas-devel lapack lapack-devel
yum install -y tbb-devel



WITH_CUDA=ON いれて ビルドするので CUDAのSDKが うまくインストールされていないと
失敗する。 というか cudaなしが作られる  エラーでとまってれたらいいのにぃ グスン



CMAKE で ビルド環境をつくるんだってさ なんだかわからんけど


 dnf install cmake      をインストール
さっきのディレクトリで 呪文を発行する。
  このとき CMAKEの オプションが重用  
 CUDA あり とCUDA ナシを作ってみよう 

cd opencv
mkdir WithCuda_build
mkdir WithOutCuda_build

CUDAありを作ってみる QT5使うから


cd WithCuda_build

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_TESTS=ON \
-D WITH_PYTHON=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON_DEFAULT_EXECUTABLE=python3 \
-D WITH_MKL=ON \
-D WITH_CUDA=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUBLAS=ON \
-D WITH_CUDNN=ON \
-D WITH_NVCUVID=OFF \
-D OPENCV_DNN_CUDA=OFF \
-D BUILD_opencv_cudaimgproc=ON \
-D BUILD_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D Qt5_DIR=/opt/Qt/5.15.1/gcc_64/lib/cmake/Qt5 \
-D WITH_OPENGL=ON ..

make -j30
make -j$(nproc)
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig


cd ..

CUDAなしを作ってみる QT5使うから


cd WithOutCuda_build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local/opencvWOCUda \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_TESTS=ON \
-D WITH_PYTHON=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D PYTHON_DEFAULT_EXECUTABLE=python3 \
-D BUILD_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D CMAKE_PREFIX_PATH=/opt/Qt/5.15.1 \
-D Qt5_DIR=/opt/Qt/5.15.1/gcc_64/lib/cmake/Qt5 ..
..


こっちはにたようなもの

$(nproc) は プロセッサーの数 8プロセッサなら 30ぐらいぶっこんでもいい ^^;



バージョンチェック


https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

cat /proc/driver/nvidia/version
nvcc --version



2020年12月18日

NVIDIA Driver Install Remove nouveau

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf update -y

sudo dnf install xorg-x11-drv-nvidia akmod-nvidia
sudo dnf install xorg-x11-drv-nvidia-cuda
sudo dnf install acpi

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)_20201217.img
sudo dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r)
sudo bash -c 'echo "blacklist nouveau" >> /etc/modprobe.d/modprobe.conf'
sudo bash -c 'echo "blacklist nouveau" >> /etc/modprobe.d/nouveau_blacklist.conf'
sudo bash -c 'echo "options nouveau modeset=0" >> /etc/modprobe.d/nouveau_blacklist.conf'


リブートするのだ。

2020年12月09日

RGBーHRVーCMYKー 相互変換 ツール だよん

RGBーHRVーCMYK プログラムは専門外だから ネット見ながら書いた
露骨にこのページにプログラム貼り付けてる。 あーはずかしい!!
CSV にRGB入れて ドロップすれば RGBHSVCMYKの CSV吐き出します。 便利かなぁ? ドロップに画像を落とすと・・・・ こまるのだ。実はドロップに画像落とすとどっかに表示される。  サンプルの RGBをクリックすると サンプルのCSVがダウンロードされる これを ドロップの箱に落とすと あら不思議 ドタバタと変換して RGBならないHSVCMYKのCSVが取り出せる。
こんにちは!!
カラーコード
カラーコード :#
RGB値 CSVをドロップ
sampleRGB.csv
R :
G :
B :
HRV値
H :
S :
V :
H範囲設定: S,V値の範囲 :
CMYK値
C :
M :
Y :
K :

2020年11月06日

php7.3  centos 8

次のURLにあるようにインストールすること

https://blog.remirepo.net/post/2019/09/24/CentOS-8-repository

yum install --enablerepo=remi php-mysql


2020年11月05日

svftpd のインストール

yum -y install vsftpd

vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO
local_root=/usr/share/nginx/html
use_localtime=YES
seccomp_sandbox=NO
pasv_enable=YES

pasv_enable=YES
pasv_address=xxx.xxx.xxx.xxx
pasv_min_port=5000
pasv_max_port=5030

//////////////注意 パッシブモードをつかうので
 パッシブアドレスを セットすること


vi /etc/vsftpd/chroot_list
ここにCHROOTしない つまり特権ユーザーを書く これ注意


setsebool -P ftpd_full_access on
firewall-cmd --add-service=ftp --permanent
firewall-cmd --permanent --add-port=5000-5030/tcp
firewall-cmd --reload


/////ユーザーを追加する。
adduser ftp-user
passwd ftp-user
gpasswd -a ftp-user nginx











phpの動作チェック その前に

まず自分のページを HTTPS にしましょう
letsencrypt をつかいます これはぐぐってくだされ。 例えばこれを/rootに放置しませう。

sudo su
cd
git clone https://github.com/certbot/certbot.git
cd certbot
./certbot-auto

認証がすんだら 自分のサイトの頭に鍵マーク がでます。
おそらく ファイヤーウォールで 80を許可しておかないと 認証とおりません。
認証が済んだら 一度 443も閉じておきましょう 途中だれかにみられるので

nginx.conf
index index.php;

server {
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}

/etc/php-fpm.d/www.conf
user = nginx # nginx
group = nginx  # nginx
listen = /var/run/php-fpm/www.sock #
listen.owner = nginx  # nginx にする
listen.group = nginx  # nginx にする



phpinfo.php

2020年11月04日

GCEコンソールから SSH キーをいれる。

GCEコンソールから SSH キーをいれる。

VMインスタンス.png
VMインスタンスSSH公開鍵をいれる場所.png
Vmインスタンスの編集ボタン.png
とにかく このあたりに いれるところがある 
キーを入れろみたいなところがあった そこには 公開鍵 Linuxで作成の場合 .pub拡張子のをコピペだ

2020年10月22日

libexpect c++ アンドロイドスタジオデバッグの接続#2

また 書きなぐりです。
 実は LINUXのスクリプト全然わかりません。
 QTを使っています ここではライブラリとしてQTをつかって 正規表現を間借りしています。
 ブーストなどつかってもほぼおなじでしょうけど QTなそのままつかえる利点があります。

今回のスクリプト? Cで書いたのですが これで 無線ランにつないでアンドロイドをデバッグするという話です。
 
 そこで C++で expect というライブラリーつかって 
乱暴に練り込みみたいなことしていますが 
 やってることは単純で
int fd=exp_spawnl(bin_sh_string ,bin_sh_string ,NULL);
 このスポーンは 意味的には 卵が孵化するみたいな いみっぽいです。
 地獄の使い なども スポーンなのでしょうけど ただ生まれるみたいな

ここで シェルを起動します。 fd に数字が入りますこの なんだかわからないディスクリプタを使います。
retv=exp_expectl(fd,exp_regexp,"\\$",120, exp_end);
 これも乱暴に 120なんてマジック番号いれています。 プロンプトみつけると120を返してきます。

次に アンドロイドの 接続のための adbを起動して 
adb    shell ip addr  
 なものを起動します。 これやると どひゃーみたいな のがでてきますので
 フィルターで 消して 
/opt/android-sdk/platform-tools/adb shell ip addr "|" grep inet "|" grep global
を C++から実行します。

この程度フィルターすると こんなのが帰ってきます。

inet 192.168.7.141/24 brd 192.168.7.255 scope global wlan0
inet 10.0.0.169/30 scope global tun0

 さらに
/opt/android-sdk/platform-tools/adb shell ip addr "|" grep inet "|" grep global "|" cut -f6 -d \" \"
程度フィルタすると


192.168.7.141/24
10.0.0.169/30

 アンドロイドにあれこれアドレスがついていますが 
 無線ランは 192からのアドレスでした。
 10からのは アンドロイドがVPNにつながってる関係です。
 153から始まるものも出てましたけどけしました。 これはおそらくグローバルIPです
 あと IPの6もでてましたけど これも 都合でけしました。
 
 まで まとまってきます。 さらに /24 とかこれを削ります。
/opt/android-sdk/platform-tools/adb shell ip addr "|" grep inet "|" grep global "|" cut -f6 -d \" \" "|" cut -d "/" -f 1
 これを C言語で書くときに \ とか ” をエスケープして書きますそうすると
使えます。

ライトで おそらく STDINに書き込むことになるのでしょう。
write(fd,cmd.c_str(),cmd.size());

そして 結果のプロンプトを検出して いきます。
今回は ローカルの 192から始まるものを使いたかったのでこれもマジック番号でとりだしました。
    QRegExp r("192\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
if(r.indexIn(list.at(i))>=0) { TargString=r.cap(0); }
 この部分かな

ちゃらとやりたかったので これでアンドロイドデバイスのアドレスをみつけます。
 これを 5555みたいなポートでつないで
 取り出したアドレスと :5555でつないで ちゃんちゃんと

なぜ無線ランにつなぎたかったかというと USBカメラをつなぎたかったので
 デバッグポートがつかえなくなります。だから無線ランです。

 お役にたつかしら ?????



#include <QApplication>
#include <expect.h>
#include <iostream>
#include <fstream>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <QDebug>
int main(int argc, char *argv[])
{
int fd;
int retv;
char bin_sh_string[] = "/bin/sh";
fd=exp_spawnl(bin_sh_string ,bin_sh_string ,NULL);
if(fd<0){return 0;}
retv=exp_expectl(fd,exp_regexp,"\\$",120, exp_end);
std::string cmd="/opt/android-sdk/platform-tools/adb shell ip addr \"|\" grep inet \"|\" grep global \"|\" cut -f6 -d \\\" \\\" \"|\" cut -d \"/\" -f 1 \n ";
write(fd,cmd.c_str(),cmd.size());
retv=exp_expectl(fd,exp_regexp,"\\$",120, exp_end);

QString temp = QString::fromLocal8Bit(exp_buffer);
QStringList list = temp.split(QRegExp("\n|\r\n|\r"));
QString TargString="";
for ( int i=0; i < list.size();i++ )
{
QRegExp r("192\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");

if(r.indexIn(list.at(i))>=0) { TargString=r.cap(0); }
}

cmd="/opt/android-sdk/platform-tools/adb tcpip 5555 \n ";
write(fd,cmd.c_str(),cmd.size());
retv=exp_expectl(fd,exp_regexp,"\\$",120, exp_end);
qDebug()<<"1"<<exp_buffer<<"retv="<<retv<<";";
cmd="/opt/android-sdk/platform-tools/adb connect "+TargString.toStdString()+":5555 \n";
write(fd,cmd.c_str(),cmd.size());
retv=exp_expectl(fd,exp_regexp,"\\$",120, exp_end);
qDebug()<<"2"<<exp_buffer<<"retv="<<retv<<";";

/*
return 0;
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
*/
}

2020年10月19日

アンドロイドスタジオデバッグの接続

/opt/android-sdk/platform-tools/adb devices -l

とりあえず アンドロイドのデバッグモードをチエックしてみるが問題ない。
再起動するが 変化なし

ここで 
/opt/android-sdk/platform-tools/adb devices -l

/opt/android-sdk/platform-tools/adb kill-server
/opt/android-sdk/platform-tools/adb start-server

のーイフェクト ーーーーーー 

アンドロイド側で USBのデバッグを有効化が必要だ
 ./adb shell ip addr “|” grep inet “|” grep global
などで IPアドレスが取得できる

adb shell ip addr "|" grep inet "|" grep global "|" cut -f6 -d \" \" "|" cut -d "/" -f 1

ここで得た アドレス オレ場合は
192.168.10.116
adb shell ip addr “|” grep inet “|” grep global
inet 192.168.10.116/24 brd 192.168.10.255 scope global wlan0
この程度で みるとこんな情報がかえってくる これぐらいのほうがわかりやすい
adb tcpip 5555
adb connect 192.168.10.116:5555

2020年10月16日

anndoroid studio USBカメラをキャプチャしたとき ガミラス人の顔が写るんです

anndoroid studio USBカメラをキャプチャしたときの怪奇現象
青い 昔の ガミラス人の顔が写った。
 原因不明 パット見た感じ 赤と青が入れ替わったような画像がでてきてびっくり

仕方がないので
 RとBを入替えて キャプチャしたら まともなような気がする。
 なんでだろう ♪ なんでだろう? ♪♪♪♪♪ なんでガミラス人♪ちゃんちゃんと

色だけ入替えてみた


このディレクトリに書くと google photo でみた時 ライブラリというアイコンをタップすると見えた
どこに保存されているのかしらないが google photo でみえたのでいいことし
public static final String DIRECTORY_NAME = "Pictures";

 キャプチャした画像を保存したい path 例としてはこんな感じだ
  String picPath = UVCCameraHelper.ROOT_PATH + DIRECTORY_NAME +"/cap" +    
         System.currentTimeMillis() + UVCCameraHelper.SUFFIX_JPEG;

  カメラから取り込まれた 画像データdata
  これは  public void onPreviewResult(byte[] nv21Yuv,int mWidth,int mHeight)
   からもらってきたものだ。 幅も高さも取り込まれたときにわかるのだ
 
   これらを JPEGにしたいのだが こんな調子でつくる
   カメラからは nv21Yuv の形式でデータがくると思ってたのだけど R,Bが入れ替わってるなぁ
   ここがなんでだろう ?なんでだろう? わからん
 とったデータを ファイルに書き込む
  
private void saveYuv2JpegUVCcammera(String path, byte[] data,int mWidth,int mHeight)
{
int[] mIntArray = new int[mWidth*mHeight];
{
decodeYUV420SP(mIntArray, data, mWidth, mHeight);
Bitmap bmpfromRGB = Bitmap.createBitmap(mIntArray, mWidth, mHeight, Bitmap.Config.ARGB_8888);

try {
FileOutputStream fos = new FileOutputStream(path);
bmpfromRGB.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}

ここからは 見てもわかんないのだけど yuv420を RGBにするらしい

  static public void decodeYUV420SP(int[] rgb, byte[] yuv420sp, int width, int height) {
final int frameSize = width * height;

for (int j = 0, yp = 0; j < height; j++) {
int uvp = frameSize + (j >> 1) * width, u = 0, v = 0;
for (int i = 0; i < width; i++, yp++) {
int y = (0xff & ((int) yuv420sp[yp])) - 16;
if (y < 0) y = 0;
if ((i & 1) == 0) {
v = (0xff & yuv420sp[uvp++]) - 128;
u = (0xff & yuv420sp[uvp++]) - 128;
}
int y1192 = 1192 * y;
int r = (y1192 + 1634 * v);
int g = (y1192 - 833 * v - 400 * u);
int b = (y1192 + 2066 * u);

if (r < 0) r = 0; else if (r > 262143) r = 262143;
if (g < 0) g = 0; else if (g > 262143) g = 262143;
if (b < 0) b = 0; else if (b > 262143) b = 262143;

// rgb[yp] = 0xff000000 | ((r << 6) & 0xff0000) | ((g >> 2) & 0xff00) | ((b >> 10) & 0xff);
rgb[yp] = 0xff000000 | ((b << 6) & 0xff0000) | ((g >> 2) & 0xff00) | ((r >> 10) & 0xff);
}
}
}
とにかく RとBをいれかえて ビットマップにして書き込みするとできた
だからいったいのなんなのだろう

2020年10月05日

コンピュータ誤動作はフェライトコア一択

コンピューターと誤動作


コンピュータが誤動作というのもあるでしょうけど コンピュータが出すノイズも迷惑なものです。
これは フェライトコアで桁外れに改善します。
これを買えといってるわけではなく こんなのドッカにあるよね という話です。

ソウテン フェライトリング AS157-125A トロイダルコア インジケータパート ブラック 鉄

価格:1,250円
(2020/10/6 07:44時点)
感想(0件)




 ノイズは数百分の一に 軽減できます。 ただし ノイズはdbという単位?
 要するに何桁減った とか 何桁増えたみたいな表現ですので
  100分の1のエネルギーなら 20db と言うようになるようです。
   2桁減った という意味の bの単位に デシリットルなんかにつかわれる dがついて
   十倍の数値であらわします。 例えば 24db ノイズが減ったというと 
   十進数で 2.4桁 減った 桁数に少数が付くという話です。
   無線屋は ノイズがエネルギーが半分になったことを3db下がったということがあります。
 ただ感覚的には3dbノイズが下がる つまり半分になったのは 誤差の範疇のイメージがおおきいようです。 ノイズが半減とか4分の1になったなんて 誤差 ということです
 やはり 対策といういうからには10dbは つまり10分1に以上にしないと意味がありません。   


 頭痛するのですが メーカーの資料は参照のこと
  https://www.onosokki.co.jp/HP-WK/c_support/newreport/decibel/dB.pdf
 むずかしくかれていますが 関数電卓で 10の2.4乗 を計算すると
 24dbノイズ低減の意味になって 具体的には 250分の1になったということになります。
 フェライトコアをの使い方は 別途後でこのページ更新します。

サウンドブラスターの音質にも影響がありますよ

クリエイティブ・メディア USBオーディオ USBサウンドブラスター Digital Music Premium HD r2 SB-DM-PHDR2

価格:11,544円
(2020/10/6 07:47時点)
感想(0件)




 ただ厄介なのは コンピュータのなかのあちこちでノイズが流れるので
 サウンドブラスターなどは USBケーブル と 電源にこれのフェライトコアを通すと
 音がよくなります。USBからついでに電源とってる場合は USBケーブルをフェライトコアに6ターンぐらいさせるといい感じになってきます。

 この時 ダメ出しですが コンピューターの電源にも入れてあげるといいでしょう。
 アース線 込で フェライトコアをいれても効果はあるのですが 
 より効果をだすには アース線は コアにとおさないように 
 家庭コンセントでは 2本の なんていうのでしょうかねぇ RSという言い方が普通ですか?
 要するに2本の行き帰りの電線だけフェライトコアを6ターンさせるといいでしょう。

 これがまた 巻きすぎると効果がない


 巻くと 効くという話なのですが 巻きすぎるとまた駄目になります。
 何事も程々に というわけです。 もしたくさん巻きたい場合は 2段階にすることです
 コンピューターに近い方の フェライトコアのターン数を 4とか 遠い方を6とか というふうに近い方のターン数を減らすと 効果が大きいです。
 コンピューター に近い方から2ターン 4ターン 6ターンなんて3段にするとぐぐっと効きます。

 たくさん巻くとだめな理由?

  それ気にしすぎです。そうしておけばいいという話です。
 細かいこというと 容量性結合というのを起こしてノイズが通過するのです。
 そして ターンも ゆったりと  きつく狭い範囲にキリキリ巻くとまたノイズが通過します。

 お試しあれ。 図式したほうがいいですか?

 とりあえず何らかの効果はありますが こんな巻き方はブロックするから効果がないわけじゃないが容量結合して駄目じゃんという巻き方の写真置いてみます。 
ダメダメ巻き方.png

 では いい巻き方あるの? って話ですが あんまりいい巻き方ってないです。
 巻けば ノイズをブロックするけど 巻けばノイズは通過する なんて 酷い話です。
 で どっちがマシ って話ですが

とってもマシ.png

 メルトガンで 止めてやった方がいいでしょう。
メルトガンってこんなやつです。現実にはダイソーでも売ってたと思います。


 ターン数は こんなモンですが もっと威力のある巻き方は 次の通り面倒くさいので
 写真はとりません 模式的に書いています。
面倒くさいのでコピペで勘弁.png

 こんな雰囲気です。 これと同じ要領で USBケーブルもやってみるといいでしょう。
 
 実は耳に聞こえないノイズであっても 半導体素子のベースというかゲートいうかが揺らされていると
 耳に聞こえる範囲の音に歪がでます。

 これを サウンドブラスターの 電源とUSBケーブルに施術すると
なんというか音の輪郭が締まって来ます。 
 高額な電源タップを買うよりは コスパがいいです。





2020年09月17日

linux folder と file  一括して別の属性をつける

 LINUXで フォルダの中身の属性を一括で変更したことがあります。
  例えばフォルダには X属性をつけてたいのですが ファイルにはxを付けたくないみたいな場合です

 find -type f でファイルだけをとりだし xargs で・・・
 find -type d でディレクトリだけをとりだし xargs で・・・

具体的には 
find -type f |xargs chmod 604
find -type d |xargs chmod 705

こんなでどうでしょう。

今日はgoogle gce でWORDPRESサーバーを準備します。

作ります

これブログなんだろうけど ちょっとづつこのページ直します。 まだいいざっくりしすぎです。ごめんなさい。 
ざっくりというとWORDPRSSを起動するるまでの 。。。

とりあえず nginx で PHP搭載して 次の画面はとりあえずでました。

5.png

とりあえずここまでの経緯を書いていきますが 

整理するのに ちょっと時間必要です。

1.png


2.png
3.png

とにかく つくります。
たぶん無料枠です。多分アメリカ西海岸のメモリ600MB程度のマイクロなプロセサを借りることにします。
つなぎます


ssh-keygen -t rsa -b 4096 -C "your_email@example.com" でどこかでキーをつくり SSHでつなぎます。
cd .ssh
cat id_rsa.pub >>authorized_keys

仮想マシンのアドレスともらってきて
 ssh でつなぎます。
つなぎたいコチラ側のPCのアドレス取得は
curl inet-ip.info
 そうすると 106.なんとかかんとかと取得できました。
authorized_keys に id_rsa.pub をいれて リモートのほうで id_rsa をしていして SSHでログインします。

メモリが小さすぎるので スワップファイルを搭載します

先程 ハードディスクを無料枠いっぱいの30GBつくりましたので
 この内の10GBを スワップに割り当てます。
#cd /
# sudo truncate -s10G swap
# sudo cp swap _swap --sparse=never
# sudo mkswap _swap
これってじゃまなので とりあえずルートに移動しまう
#sudo chmod 600 _swap
#sudo swapon _swap
free でみると スワップファイルができています。
次に mysql を搭載します。現実には あれですよ mariadb です。
sudo dnf install nginx

sudo dnf install mariadb-server mariadb
sudo dnf install wget
wordpress を搭載します。
sudo wget https://ja.wordpress.org/latest-ja.tar.gz

sudo dnf install php-fpm php nginx

PHP-FPMの設定を nginx ように変更する 
sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

listen.owner = nginx
listen.group = nginx

firewall-cmd --list-all-zones //ここで 私のコンピュータではtrusted が外部向けなので
sudo firewall-cmd --add-service=http --zone=trusted --permanent
sudo firewall-cmd --add-service=https --zone=trusted --permanent

sudo firewall-cmd --reload
sudo systemctl restart nginx
sudo systemctl restart php-fpm

 ここまでで 世界に 次分のHTTPのサイトがオープンです 無防備です
sudo dnf install git
sudo git clone https://github.com/certbot/certbot.git

firewall を 開けて認証させる また とりあえず閉じる

sudo systemctl start mariadb
sudo mysql
create database wpdb;
create user 'wpadmin'@'localhost' identified by 'SL9aCH9m0lrlMteAI2atOzGxtio0JG66'
パスワードは当然本物はちがうが 雰囲気をだすために なんか入れてみた。
grant all on wpdb.* to 'wpadmin'@'localhost';

///ちょっとよこみち
cd /usr/share/nginx
ll -Z
   で httpd_sys_content_t めっけ
sudo chcon -R -t httpd_sys_content_t *


///ここで確認しやすいように
nginx の 505エラーをちょっとけします
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
ll /usr/lib64/php/modules/ | grep mysql
あらら 拡張もモジュールが入っていません 
dnf list |grep php で調べます。 めぼしいもんをインストールします。ちゅうか
 sudo dnf install php-*

wp-config.png


wordpressinstal .png
雰囲気をだすためにパスワード そのままいれています すぐに変更しますけど


本日のところは以上です。 あと FTPサーバーはいってないのでアップデートできません。
 
 selinux も起動しています。 いい感じかも



2020年09月16日

nginxをhome以下ディレクトリユーザー仕様にしてPHPを使いたい。

PHPを使いたくて 自分のリナクス設定ではまったのでメモです。
# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
とでました。

/etc/nginx/default.d
にはいると php.confがありました。
 すべてのバージョンによってみんな設定がちがうのでなんともいえませんが

location ~ ^/~([^/]+)/(.+\.php)$ {
# location ~ \.(php|phar)(/.*)?$ {
alias /home/$1/public_html/$2;
# fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_index index.php;
include fastcgi_params;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-fpm;
}
で 動きました。 うごいたというだけで だからOKか否かは別です すみません。
×

この広告は30日以上新しい記事の更新がないブログに表示されております。