Ubuntu18.04でShotcutをインストールする
フリーの動画編集はopenshotを使用していたが、
Ubuntu18.04のPCのスペックが上がったので動画編集できるだろう。
ということで、簡単に導入できたShotcutを使用することにした。
作業環境
PC | Thinkpad T440s |
---|---|
CPU | Core i7 4600U |
メモリ | 12GB |
ドライブ | SSD 225GB |
GPU | GeForce GT 730M |
OS | Ubuntu18.04 |
作業内容
libsdl2-devをインストール
sudo apt install libsdl2-dev
snapでShotcutをインストール
sudo snap install shotcut --classic
めちゃ簡単。
実は、libsdl2-libをいれていなくてインストールできたけど
動かない・・・ってずっと諦めていたが
このサイトで解決できました。
www.admintome.com
以上。
DockerのコンテナでOpenCV(python)開発環境を構築する
前回、DockerのコンテナでOpenCV(C++)を実行できるようにしました。
今回はそのpython版です。
作業環境
・Ubuntu18.04.1
・Docker-ce 18.06.1
作業内容
OpenCVビルド用パッケージのインストール
docker container run -it --rm ubuntu:16.04 apt update apt install -y --no-install-recommends make cmake gcc g++ unzip wget build-essential zlib1g-dev libffi-dev libssl-dev apt clean
python3のインストール
ここにpythonのソースが置かれている。
現在の最新の安定版は「3.7.0」。「3.7.1」はまだRC版のようだ。
PYTHON_VERSION="3.7.0" wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz tar zxf Python-${PYTHON_VERSION}.tgz cd Python-${PYTHON_VERSION} ./configure make altinstall
リンクを作成
python3.7.0は/usr/local/binにある。
ln -s /usr/local/bin/python3.7 /bin/python3 ln -s /usr/local/bin/pip3.7 /bin/pip3
python3 を起動してみる。
python3
numpy, pillow(PIL)のインストール
インストールされているか確認
pip3 install --upgrade pip pip3 list
インストール
pip3 install numpy pillow
*******************************************************************
python3の環境ができたので、一旦イメージにcommitしておく。
・ctl+p、ctl+qでコンテナを起動させたまま抜ける
・docker container ls でコンテナのIDを確認
・docker container commit [コンテナID] [作成するイメージ名]
・docker image ls でイメージできたか確認
コンテナにはdocker container attach [コンテナID]で入ることができる。
********************************************************************
OpenCVのインストール
関連パッケージのインストール
apt update apt install --no-install-recommends -y build-essential cmake nano \ ca-certificates unzip wget \ pkg-config \ libgtk2.0-dev \ libjpeg-dev libpng-dev \ ffmpeg libavcodec-dev libavformat-dev libavresample-dev libswscale-dev \ libv4l-dev \ libtbb-dev apt clean
OpenCVのインストール
OPENCV_VERSION="3.4.3" mkdir -p /tmp/opencv && cd /tmp/opencv wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip unzip ${OPENCV_VERSION}.zip -d . mkdir /tmp/opencv/opencv-${OPENCV_VERSION}/build && cd /tmp/opencv/opencv-${OPENCV_VERSION}/build/ cmake -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D WITH_FFMPEG=ON -D WITH_TBB=ON .. | tee /tmp/opencv_cmake.log make -j "$(nproc)" | tee /tmp/opencv_build.log make install | tee /tmp/opencv_install.log
pythonでOpenCVのバージョン確認
python3 #python起動 import cv2 cv2.__version__
無事に環境構築ができたようです。
コンテナは消す前にcommitしましょう。
以上。
Ubuntu18.04のhome内のディレクトリ名を英語表記にする。
Ubuntu18.04でNvidia GPU(GT 730M)を認識させる
GPU搭載のノートPCにUbuntu18.04を導入した。
早速、GPUを認識させたいと思います。
作業環境
PC | Thinkpad T440s |
---|---|
CPU | Core i7 4600U |
メモリ | 12GB |
ドライブ | SSD 225GB |
GPU | GeForce GT 730M |
OS | Ubuntu18.04 |
作業内容
Nvidia GPUのドライバをインストール
前回はUbuntu16.04で実行している。
kinacon.hatenablog.com
kinacon.hatenablog.com
Ubuntu18.04で同様に作業して行きます。
・画面左上のアクティビティで「soft」と入力して「ソフトウェアとアップデート」を開く。
・タブの「追加のドライバー」を選択する。
・「Nvidia driver metapackeageをnvidia-driver-390から使用します(プロプライエタリ、検証済み)」を選択し、「変更の適用」をクリック。
・インストールが完了したら、再起動する。
【解決】マイクラサーバー(TwilightForest)が落ちる・・・
Pine64A(2GB)をMinecraftのサーバーとして運用している。
しかし、ゲームを進めて、いよいよ黄昏の森ディメンションに行ったところでサーバーが落ちる・・・
今回はこれを解決しました。
実行環境
シングルボードコンピュータ | PineA64 |
---|---|
メモリ | 2GB |
microSD | 64GB |
マイクラサーバー | forge-1.12.2-14.23.4.2705 |
---|---|
導入済MOD | OptiFine_1.12.2_HD_U_E2 |
twilightforest-1.12.2-3.8.689-universal |
作業内容
サーバーへのmodの追加
クラッシュレポートを見てもわからなかったので、起動させてログを見ていたらmodが足りないと言われていた。
ただログにあるmodだけではダメで。起動すると、また別のmodを要求されるのですべてここに記載します。
※どれか忘れてしまったが最新verだとエラーになるため、一つ前のverを使用したものがあります。
追加mod | Version | リンク |
---|---|---|
Baubles | Baubles-1.12-1.5.2 | Overview - Baubles - Mods - Projects - Minecraft CurseForge |
Chisel | Chisel-MC1.12.2-0.2.1.35 | Overview - Chisel - Mods - Projects - Minecraft CurseForge |
Immersive Engineering | ImmersiveEngineering-0.12-85 | Overview - Immersive Engineering - Mods - Projects - Minecraft CurseForge |
Just Enough Items | jei_1.12.2-4.12.1.217 | Overview - Just Enough Items (JEI) - Mods - Projects - Minecraft CurseForge |
Tinkers' Construct | TConstruct-1.12.2-2.10.1.87 | Overview - Tinkers Construct - Mods - Projects - Minecraft CurseForge |
Thaumcraft | Thaumcraft-1.12.2-6.1.BETA25 | Overview - Thaumcraft - Mods - Projects - Minecraft CurseForge |
Mantle | Mantle-1.12-1.3.2.24 | Files - Mantle - Mods - Projects - Minecraft CurseForge |
BloodMagic | BloodMagic-1.12.2-2.3.3-101 | https://minecraft.curseforge.com/projects/blood-magic |
Guide-API | Guide-API-1.12-2.1.6-61 | Overview - Guide-API - Mods - Projects - Minecraft CurseForge |
クライアントへのmod追加
クライアントにはサーバーのmodに加え、以下のmodを追加する必要があった。
追加mod | Version | リンク |
---|---|---|
CTM-MC1.12.2 | CTM-MC1.12.2-0.3.2.18 | Overview - ConnectedTexturesMod - Mods - Projects - Minecraft CurseForge |
以上。
DockerのコンテナでOpenCV(C++)開発環境を構築する
DockerのコンテナでOpenCV(C++)を実行する
dockerのコマンドに新コマンド体系ができたそうだ。
新コマンド体系は動作の内容がわかりやすいが、入力が面倒。
今回は新コマンドになれるために新コマンドで作業を行った。
参考:docker container / image コマンド新旧比較 - Qiita
Dockerの導入
導入方法は以下。
kinacon.hatenablog.com
sudoの省略
cat /etc/group #グループ一覧 sudo groupadd docker #dockerグループ一覧を追加 sudo gpasswd -a $USER docker #dockerグループにuserを追加 sudo service docker restart #dockerデーモンを再起動 exit #再ログイン
WARNINGが出る場合
WARNING: Error loading config file: /home/user/.docker/config.json: stat /home/user/.docker/config.json: permission denied
既にsudoで実行していると所有者rootで.dockerが作られているので所有者をuserに変更する。
sudo chown -R user ~/.docker
docker.sockのエラー
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/json: dial unix /var/run/docker.sock: connect: permission denied
以下のコマンドとPCの再起動で治った。(多分、再起動だけでいいかも)
sudo chgrp docker /var/run/docker.sock
Dockerのversion確認
docker version
コンテナ作成
ベースイメージをpullする
ベースイメージは16.04にしました。
docker image pull ubuntu:16.04
イメージの確認
docker image ls
コンテナ起動
docker container run -it ubuntu:16.04
コンテナ起動後(OSの確認)
cat /etc/os-release
C++開発環境を構築
GUIが使用できないためエディタはnanoを利用。
apt update apt install build-essential cmake nano
※今回のaptのインストールパッケージは「インストールまとめ」にまとめてあります。
OpenCV導入(ソースからライブラリのビルド)
今回はソースからビルドします。
関連パッケージのインストール
ソース取得、展開用 | ca-certificates unzip wget |
---|---|
ビルド用 | pkg-config |
GUI用 | libgtk2.0-dev |
画像の読み書き用 | apt install libjpeg-dev libpng-dev |
動画の読み書き用 | ffmpeg libavcodec-dev libavformat-dev libavresample-dev libswscale-dev |
Usbカメラ取り込み用 | libv4l-dev |
TBBによる並列化を有効化用 | libtbb-dev |
OpenCVのインストール
OpenCVのバージョンは3.4.3です。
以下リリースバージョン
Releases - OpenCV library
ビルド時のログをteeで保存しています。
※OPENCV_VERSIONを変更してバージョン変更できます。
OPENCV_VERSION="3.4.3" mkdir -p /tmp/opencv && cd /tmp/opencv wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip unzip ${OPENCV_VERSION}.zip -d . mkdir /tmp/opencv/opencv-${OPENCV_VERSION}/build && cd /tmp/opencv/opencv-${OPENCV_VERSION}/build/ cmake -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D WITH_FFMPEG=ON -D WITH_TBB=ON .. | tee /tmp/opencv_cmake.log make -j "$(nproc)" | tee /tmp/opencv_build.log make install | tee /tmp/opencv_install.log
OpenCVのバージョン確認
pkg-config --modversion opencv
ソースファイルを削除(コンテナを軽くする)
cd && rm -rf /tmp/opencv
コンテナを一旦exit(STOP)
exit
コンテナIDを確認してコンテナをcommit(イメージとして保存)
docker container ls -a docker container commit [コンテナID] [イメージ名](:[タグ])
チュートリアル実行
事前にチュートリアルはホスト環境で実行確認した。
kinacon.hatenablog.com
コンテナ(環境整備済み)から画像を表示できるようにGUIの設定する。
また、動作確認用プログラム(ソースとcmakelists)をコンテナ内のディレクトリにコピーする
コンテナ(環境整備済み)を起動
docker container run -it --rm \ -v /tmp/.X11-unix/:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY \ [イメージ名](:[タグ])
一旦抜けて(ctl+p、ctl+q)コンテナのIDを確認
docker container ls -a
コンテナからXサーバへの通信を許可
xhost +local:`docker inspect --format='{{ .Config.Hostname }}' [コンテナID]`
コンテナにソースファイルとcmakeファイルをコピー
cd c++/cv_tutorial/ docker container cp CMakelists.txt [コンテナID]:/tmp/ docker container cp DisplayImage.cpp [コンテナID]:/tmp/
コンテナに入る
docker attach [コンテナID]
ビルドして実行
cd /tmp/ mkdir build cd build cmake .. make ./Display ****.png
画像が表示できればOK。
インストールまとめ
※apt 使用時にコンテナ容量を減らす
--no-install-recommendsをつけてインストールする(必須パッケージのみインストール)
最後にapt clean でキャシュを削除
apt update apt install --no-install-recommends -y build-essential cmake nano \ ca-certificates unzip wget \ pkg-config \ libgtk2.0-dev \ libjpeg-dev libpng-dev \ ffmpeg libavcodec-dev libavformat-dev libavresample-dev libswscale-dev \ libv4l-dev \ libtbb-dev apt clean
proxy環境の場合
aptの設定
編集ファイル | /etc/apt/apt.conf |
---|
追記内容 |
---|
Acquire::http::proxy "http://id:pass@proxy_address:port/"; |
Acquire::https::proxy "https://id:pass@proxy_address:port/"; |
cat <<EOF >> /etc/apt/apt.conf Acquire::http::proxy "http://id:pass@proxy_address:port/"; Acquire::https::proxy "https://id:pass@proxy_address:port/"; EOF
wgetの設定
編集ファイル | /etc/wgetrc |
---|
追記内容 |
---|
https_proxy = http://id:pass@proxy_address:port/ |
http_proxy = http://id:pass@proxy_address:port/ |
ftp_proxy = http://id:pass@proxy_address:port/ |
cat <<EOF >> /etc/wgetrc https_proxy = http://id:pass@proxy_address:port/ http_proxy = http://id:pass@proxy_address:port/ ftp_proxy = http://id:pass@proxy_address:port/ EOF
DockerでGUIアプリケーションを実行するための設定
参考:Dockerコンテナの中でGUIアプリケーションを起動させる | Unskilled?
ドメインソケットの共有
-v /tmp/.X11-unix/:/tmp/.X11-unix
DISPLAY変数をコンテナのDISPLAY変数に入れる
-e DISPLAY=$DISPLAY
XサーバーにおけるXクライアントの許可
すべてのクライアントからの通信を許可
xhost +
ローカルからの通信を許可
xhost local:
特定のコンテナ(コンテナのホスト名)だけ許可
xhost +local:`docker container inspect --format='{{ .Config.Hostname }}' [コンテナID]`
dockerコマンド
コンテナの一覧表示(稼働中のみ、停止中を含める場合は-aをつける) |
---|
docker container ls |
ホストからコンテナにファイルをコピーする |
docker container cp ソース [コンテナID]:格納先ディレクトリ |
コンテナ実行にコンテナから抜ける(STATUS:UP) |
ctl+p ctl+q |
コンテナ実行にコンテナから抜ける(STATUS:Exited) |
exit |
実行中のコンテナ(STATUS:UP)に入る |
docker container attach [コンテナID] |
停止中のコンテナを起動する(STATUS:Exited → UP) |
docker container start [コンテナID] |
実行中のコンテナをストップする(STATUS:UP → Exited) |
docker container stop [コンテナID] |
停止中のコンテナを削除する |
docker container rm [コンテナID] |
停止中のすべてのコンテナを削除する |
docker container prune |
コンテナをイメージに保存する |
docker container commit [コンテナID] |
イメージの一覧表示 |
docker image ls |
イメージの削除 |
docker image rm |
使用していないイメージを一括削除 |
docker image prune |
docker container run のオプション
イメージから新規コンテナを起動 |
---|
docker container run [イメージ名](:[タグ]) |
オプション | |
---|---|
-i | ホストの入力をコンテナの標準入出力につなげる |
-t | tty(標準入出力となっている端末デバイス)を使う |
-e | 環境変数を渡す |
--rm | コンテナ終了時に自動で削除する |
-v /ホストディレクトリ:/コンテナのディレクトリ | ホストのディレクトリをコンテナのディレクトリにマウントする(共有する) |
以上。
ThinkPad L530のCPU換装しました。
ThinkPad L530を購入しました。
CPUが脆弱で、Wifiなしなので安く入手できた。
ただ、Windows10のPCが欲しかったので満足。
交換用CPUはチップセット(マーザーボード)の仕様を確認して決めた。
ark.intel.com
「対応する製品」をクリックで確認できる。
仕様
CPU | インテル® Celeron® プロセッサー 1000M |
---|---|
チップセット | インテル® HM76 Express チップセット |
HDD | 320GB |
メモリ | 2GB×2 |
OS | Windows10 |
準備品
PC | ¥7000 | ThinkPad L530 |
---|---|---|
CPU Corei7 | ¥9999 | Core i7 3610QM |
SSD 240GB | ¥4899 | 7mm 3DNAND SATA3 6Gbps 3年保証 |
メモリ 16GB(8GBx2) | ¥10000 | PC3−10600(DDR3−1333) |
SSDケース | ¥753 | データ移行に使用する |
CPUグリース | ¥1080 | MX-4 |
分解用ヘラ | ¥980 | iSesamo 分解工房ロゴあり |
[Intel] モバイル Core i7 3610QM 2.30GHz SR0MN バルク
- 出版社/メーカー: Intel
- メディア: エレクトロニクス
- この商品を含むブログを見る
Zheino SSD 240GB 内蔵2.5インチ 7mm 3D Nand 採用 SATA III 6Gb/s 3年保証
- 出版社/メーカー: Zheino
- メディア: Personal Computers
- この商品を含むブログを見る
Komputerbay 16GB 1333MHz ノートPC用メモリ 204Pin SO-DIMM DDR3-1333 PC3-10600 8GB×2枚組 永久保証
- 出版社/メーカー: KOMPUTERBAY
- メディア: Personal Computers
- この商品を含むブログを見る
玄人志向 STANDARDシリーズ 2.5インチHDDケース SATA接続 USB3.0/2.0対応 GW2.5CR-U3
- 出版社/メーカー: 玄人志向
- 発売日: 2014/04/24
- メディア: Personal Computers
- この商品を含むブログを見る
CPUグリース MX-4 熱伝導性に優れたシリコングリス 絶縁タイプ セット ヘラ 指サック付き(4g) [並行輸入品]
- 出版社/メーカー: ARCTIC
- メディア: エレクトロニクス
- この商品を含むブログを見る
iSesamo【iPhone/iPod/iPad対応修理工具】分解工房オリジナルロゴ版
- 出版社/メーカー: 分解工房/DOTTORPOD
- メディア: エレクトロニクス
- この商品を含むブログを見る
作業内容
WindowsUpdateを実行
こちらのサイトを参考に実行
Windows Update の利用手順 - Windows 10 の場合
1時間半もかかった・・・
あと、Window10って余計なソフト(ゲームかな・・・)がいっぱいあるんだね。
今度、処理しよう。
Biosをアップデート
こちらから取得
・BIOS アップデートユーティリティ ver 2.72
https://support.lenovo.com/jp/ja/downloads/ds029124?caps=true
UbuntuでOpenCV(C++)
前回、C++の開発環境を構築したので
今回はOpenCVを使ってみたいと思います。
実行環境
OS | Ubuntu 16.04.5 LTS |
---|---|
cmake | 3.5.1 |
g++ | 5.4.0 |
OpenCV | 3.3.1-dev |
作業内容
OpenCVのインストール
aptでインストール(ppa追加で違うバージョンも利用可能)
ubuntu16.04では2.4.9.1のようだ。
sudo apt update sudo apt search python-opencv
インストールは以下の記事を参照
kinacon.hatenablog.com
以下の方法でもインストールできる。
・ソースからビルド
・ROSをインストールすると一緒に入る
Ubuntu18.04でのROSインストール方法は以下
https://kinacon.hatenablog.com/entry/2018/08/03/225920kinacon.hatenablog.com
Ubuntu16.04でのROSインストール方法は以下
kinacon.hatenablog.com
本環境はROS(kinetic)が入っているため
OpenCVのバージョンは3.3.1
チュートリアルを実行
以下のチュートリアルを実行した。
Using OpenCV with gcc and CMake — OpenCV 2.4.13.7 documentation
ソースの作成
cd c++ mkdir cv_tutorial cd cv_tutorial gedit DisplayImage.cpp
チュートリアルをそのままコピペして保存
#include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv ) { if ( argc != 2 ) { printf("usage: DisplayImage.out <Image_Path>\n"); return -1; } Mat image; image = imread( argv[1], 1 ); if ( !image.data ) { printf("No image data \n"); return -1; } namedWindow("Display Image", WINDOW_AUTOSIZE ); imshow("Display Image", image); waitKey(0); return 0; }
CMakeLists.txtの作成
gedit CMakeLists.txt
これもそのままコピペする
cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) add_executable( DisplayImage DisplayImage.cpp ) target_link_libraries( DisplayImage ${OpenCV_LIBS} )
cmake_minimum_required | CMakeの最小要求バージョンの設定 |
---|---|
project | プロジェクトの名前を設定 |
find_package | パッケージを設定 cmakeがパッケージを探してくれる |
add_executable | プロジェクトファイルの名前と含まれるソースコードのパスを設定 |
target_link_libraries | プロジェクトの依存ファイルを設定 |
実行ファイルの作成
mkdir build cd build cmake .. make
実行
./DisplayImage ****.jpg
※****.jpgは実行ファイルと同じフォルダに画像ファイルを置いてもいいし、パス指定でも良い。
以上。