20200326のLinuxに関する記事は10件です。

Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす(インストール編)

はじめに

筆者は Ultra96/Ultra96-V2(ZynqMP) 向けに Debian GNU/Linux を提供しています1。また、XRT(Xilinx Runtime) はXilinx社が提供する開発環境(Vitis)で開発したプログラムをプラットフォームで動かすための環境です2

本来なら MPSoC Edge Device 用の XRT は Xilinx が提供する Linux 環境(Petalinux) でしか動きませんが、この記事では Ultra96/Ultra96-V2 向け Debian GNU/Linux で動かすための手順を幾つかのパートに分けて説明します。

注意

この記事で紹介している Debian Package は Xilinx 社の公式なものではありません。

対応するプラットフォーム

現時点でインストール出来ることを確認しているのは次のプラットフォームのみです。

  • ボード: Ultra96-V2
  • Linux カーネル: Linux 4.19.0 (linux-xlnx 4.19.0 v2019.2)
  • ディストリビューション: Ubuntu 18.04 or Debian10

Linux Kernel は以下の URL にあります。

ディストリビューションは以下の URL にあります。

それぞれの URL を参照して Ultra96 にインストールしてください。また、以下の記事も参考にしてください。

Debian Package の入手

『Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす(ビルド編)』@Qiitaで説明した方法で XRT の Debian Packageをビルドするか、次の URL にある Debian Package をダウンロードしてください。

インストールする前に

インストールする前に以下のパッケージをインストールしておいてください。

  • ocl-icd-opencl-dev (>= 2.2.0)
  • libboost-filesystem-dev (>=1.65)
  • uuid-dev (>= 2.27.1)
  • dkms (>= 2.2.0)
  • libprotoc-dev (>=2.61)
  • libssl-dev (>=1.0.2)
  • protobuf-compiler (>=2.6.1)
  • libncurses5-dev (>=6.0)
  • lsb-release
  • libxml2-dev (>=2.9.1)
  • libyaml-dev (>= 0.1.6)
  • libc6 (>= 2.27)
  • python (>= 2.7)
  • python-pip
  • libudev-dev

上で紹介したパッケージは、xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb をビルドした際に明示的に依存関係にあることを宣言したものです。

また、上記以外にも、以下のパッケージをインストールしておいてください。

  • python-pyopencl

このパッケージがインストールされていないと、xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb のインストールの際に pyopencl を pip でインストールしようとします。pip で pyopencl をインストールする場合は C で書かれたプログラムをコンパイルする必要があり、いろいろとトラブルが発生して結局インストールに失敗しました。最初から Debian/Ubuntu 用にビルド済みの pyopencl をインストールしておいたほうがトラブルが発生しなくて済みます。

XRT(Xilinx Runtime) Package のインストール

dpkg コマンドでxrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb をインストールします。なお、このパッケージをインストールする時、その工程の途中で、dkms の仕組みを使って zocl カーネルモジュールをビルドします。そのためインストールに時間がかかります。

fpga@ubuntu-fpga:~$ cd work/ZynqMP-FPGA-XRT
fpga@ubuntu-fpga:~/work/ZynqMP-FPGA-XRT$ sudo dpkg -i xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb
Selecting previously unselected package xrt.
(Reading database ... 114691 files and directories currently installed.)
Preparing to unpack xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb ...
Unpacking xrt (2.6.0) ...
Setting up xrt (2.6.0) ...
Unloading old XRT Linux kernel modules
rmmod: ERROR: Module zocl is not currently loaded
Invoking DKMS common.postinst for xrt
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
Loading new xrt-2.6.0 DKMS files...
Building for 4.19.0-xlnx-v2019.2-zynqmp-fpga
Building initial module for 4.19.0-xlnx-v2019.2-zynqmp-fpga
Done.
zocl:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.19.0-xlnx-v2019.2-zynqmp-fpga/updates/dkms/
depmod...
DKMS: install completed.
Finished DKMS common.postinst
Loading new XRT Linux kernel modules
Skipping pyopencl installation...

カーネルモジュールのビルド中に、うかつに Ctrl-C 等で中断しないで、終わるまで待ってあげてください。

Device Treeの準備

前節でインストールした Debian Package には XRT の MPSoC Edge Device 用の Linux カーネルモジュール zocl が含まれています。ただし、zocl は Linux にインストールしただけでは有効になりません。zocl を有効にするためには Device Tree が必要です。

ZynqMP-FPGA-Linux は Device Tree Overlay をサポートしています。Device Tree Overlay によって積極的に、 Linux 動作中の FPGA のプログラムやカーネルモジュールの追加および削除を行っています。zocl も Device Tree Overlay を使って有効にします。

以下に zocl を有効にするための Device Tree Overlay の例を示します。

zocl.dts
/dts-v1/; /plugin/;
/ {
        fragment@0 {
                target-path = "/fpga-full";
                __overlay__ {
                        firmware-name = "streaming_lap_filter5.bin";
                };
        };
        fragment@1 {
                target-path = "/amba_pl@0";
                __overlay__ {
                        #address-cells = <2>;
                        #size-cells = <1>;
                        zyxclmm_drm {
                                compatible = "xlnx,zocl";
                                status = "okay";
                                reg = <0x0 0xA0000000 0x10000>;
                        };
                       fclk0 {
                                compatible    = "ikwzm,fclkcfg-0.10.a";
                                clocks        = <&zynqmp_clk 0x47>;
                                insert-rate   = "100000000";
                                insert-enable = <1>;
                                remove-rate   = "1000000";
                                remove-enable = <0>;
                        };
                };
        };
};

この例では zyxclmm_drm ノードが zocl のデバイスツリーを示しています。

さらに、この Device Tree には重要な点があと2点あります。一つ目は、fclk0 で PL Clock 0 を 100MHz に設定している点です。

二つ目は、fpga-full ノードに対してfirmware-name プロパティを追加してビットストリームファイルを指定している点です。これにより Device Tree を Overlay した際に、指定されたビットストリームファイルが FPGA にプログラムされます3

Xilinx のソフトウェア開発環境 Vitis によってビルドされた xclbin ファイルに含まれるビットストリームは、実は Partial Reconfiguration 用のものです。

Partial Reconfiguration というのは、もともと FPGA にプログラムされて動作している状態で、指定されたエリアだけを動的に書き換える技術です。つまり、Partial Reconfiguration する前に、ベースとなるビットストリームファイルが FPGA にプログラムされてなければなりません。また、Partial Reconfiguration の際には、通常の FPGA のプログラムと異なり、FPGA 全体に対してリセットを行いません。

zocl はxclbin ファイルを FPGA にプログラムする際には、Partial Reconfiguration モードでプログラムを行います。したがって zocl ドライバを有効にする前に、ベースとなるビットストリームファイルを FPGA にプログラムしておく必要があるのです。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす(ビルド編)

はじめに

筆者は Ultra96/Ultra96-V2(ZynqMP) 向けに Debian GNU/Linux を提供しています1。また、XRT(Xilinx Runtime) はXilinx社が提供する開発環境(Vitis)で開発したプログラムをプラットフォームで動かすための環境です2

本来なら MPSoC Edge Device 用の XRT は Xilinx が提供する Linux 環境(Petalinux) でしか動きませんが、この記事では Ultra96/Ultra96-V2 向け Debian GNU/Linux で動かすための手順を幾つかのパートに分けて説明します。

注意

この記事で紹介している Debian Package は Xilinx 社の公式なものではありません。

XRT のビルド

ビルド環境

XRT を ZynqMP-FPGA-Linux 向けにビルドするのは少し面倒です。XRT のビルドには Ubuntu や CentOS などの Linux ディストリビューションが必要です。ビルドには色々な開発ツールがインストールされていなければなりません。さらに Debian Package を作るためか、PC をホストにして ARM64 用にクロスコンパイルするのがとても面倒です。

そこで、 Ultra96-V2 に Ubuntu 18.04 を動かして、その上でセルフビルドします。

Ultra96-V2 用の Ubuntu 18.04 は以下の URL で公開しています。

XRT のダウンロード

以下の URL より XRT のソースコードをダウンロードします。

fpga@ubuntu-fpga:~$ cd work
fpga@ubuntu-fpga:~/work$ git clone https://github.com/Xilinx/XRT
Cloning into 'XRT'...
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 43591 (delta 13), reused 7 (delta 0), pack-reused 43561
Receiving objects: 100% (43591/43591), 58.10 MiB | 2.57 MiB/s, done.
Resolving deltas: 100% (33849/33849), done.
Checking out files: 100% (1682/1682), done.
fpga@ubuntu-fpga:~/work$ cd XRT
fpga@ubuntu-fpga:~/work/XRT$

XRT を ZynqMP-FPGA-Linux 用にビルドするためにはいくつかファイルを修正します。ですので、https://github.com/Xilinx/XRT を直接 clone するよりも、fork したほうが良いでしょう。

XRT の変更

XRT のビルド用ファイルにいくつかの修正をしますので、ブランチを作成します。現時点(2020年3月25日)でのmaster ブランチの最新のコミット(aac1e6871e95da47ccff4392d5849462bbd4ecad) をベースにします。

fpga@ubuntu-fpga:~/work/XRT$ git checkout aac1e6871e95da47ccff4392d5849462bbd4ecad 
fpga@ubuntu-fpga:~/work/XRT$ git checkout -b 2019.2_Ultra96
Switched to a new branch '2019.2_Ultra96'

パッケージファイル名を変更

オリジナルの XRT では、ビルドした Debian Package の名前は xrt_202010.2.6.0_18.04-arm64-xrt.deb になりますが、Ubuntu 用のパッケージであることを明示するためにxrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb にします。

fpga@ubuntu-fpga:~/work/XRT$ git diff src/CMake/cpackLin.cmake
diff --git a/src/CMake/cpackLin.cmake b/src/CMake/cpackLin.cmake
index 4f45f97a..9f6eebe4 100644
--- a/src/CMake/cpackLin.cmake
+++ b/src/CMake/cpackLin.cmake
@@ -79,7 +79,7 @@ else ()
   SET (CPACK_GENERATOR "TGZ")
 endif()
-SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${XRT_VERSION_RELEASE}.${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CPACK_REL_VER}-${CPACK_ARCH}")
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${XRT_VERSION_RELEASE}.${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${LINUX_FLAVOR}_${CPACK_REL_VER}-${CPACK_ARCH}")
 message("-- ${CMAKE_BUILD_TYPE} ${PACKAGE_KIND} package")
fpga@ubuntu-fpga:~/work/XRT$ git add src/CMake/cpackLin.cmake
fpga@ubuntu-fpga:~/work/XRT$ git commit -m "[add] linux flavor name to built debian package name"
[2019.2_Ultra96 f6d3236b] [add] linux flavor name to built debian package name
 1 file changed, 1 insertion(+), 1 deletion(-)

依存する Debian Package のバージョンの上限を撤廃

オリジナルでは、ビルドした Debian Package が依存する Packageは src/CMake/cpackLin.cmake で次のように設定されています。

src/CMake/cpackLin.cmake
  SET(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS "ocl-icd-opencl-dev (>= 2.2.0), 
libboost-dev (>= ${Boost_VER_STR}), libboost-dev (<< ${Boost_VER_STR_ONEGREATER}), 
libboost-filesystem-dev (>=${Boost_VER_STR}), libboost-filesystem-dev (<<${Boost_VER_STR_ONEGREATER}),
uuid-dev (>= 2.27.1), dkms (>= 2.2.0), libprotoc-dev (>=2.6.1), libssl-dev (>=1.0.2), protobuf-compiler (>=2.6.1), 
libncurses5-dev (>=6.0), lsb-release, libxml2-dev (>=2.9.1), libyaml-dev (>= 0.1.6), 
libc6 (>= ${GLIBC_VERSION}), libc6 (<< ${GLIBC_VERSION_ONEGREATER}),
python (>= 2.7), python-pip, libudev-dev ")

ビルドした Debian Package が依存する Package のうち、libboost-dev、libboost-filesystem-dev、libc6 のバージョンに上限が設定されています。これだと、インストールするディストリビューションの制約が強すぎてインストールに失敗することがあります。例えば、この Debian Package を Debian10 にインストールを試みると失敗します。

そこで、後で問題になるかもしれませんが、次のように cpackLin.cmake を修正してバージョンの上限を撤廃します。

fpga@ubuntu-fpga:~/work/XRT$ git diff src/CMake/cpackLin.cmake
--- a/src/CMake/cpackLin.cmake
+++ b/src/CMake/cpackLin.cmake
@@ -49,7 +49,7 @@ if (${LINUX_FLAVOR} MATCHES "^(Ubuntu|Debian)")
   SET(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "OFF")
   SET(CPACK_DEBIAN_AWS_PACKAGE_DEPENDS "xrt (>= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH})")
   SET(CPACK_DEBIAN_XBTEST_PACKAGE_DEPENDS "xrt (>= ${XRT_VERSION_MAJOR}.${XRT_VERSION_MINOR}.${XRT_VERSION_PATCH}), libjson-glib-dev")
-  SET(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS "ocl-icd-opencl-dev (>= 2.2.0), libboost-dev (>= ${Boost_VER_STR}), libboost-dev (<< ${Boost_VER_STR_ONEGREATER}), libboost-filesystem-dev (>=${Boost_VER_STR}), libboost-filesystem-dev (<<${Boost_VER_STR_ONEGREATER}), uuid-dev (>= 2.27.1), dkms (>= 2.2.0), libprotoc-dev (>=2.6.1), libssl-dev (>=1.0.2), protobuf-compiler (>=2.6.1), libncurses5-dev (>=6.0), lsb-release, libxml2-dev (>=2.9.1), libyaml-dev (>= 0.1.6), libc6 (>= ${GLIBC_VERSION}), libc6 (<< ${GLIBC_VERSION_ONEGREATER}), python (>= 2.7), python-pip, libudev-dev ")
+  SET(CPACK_DEBIAN_XRT_PACKAGE_DEPENDS "ocl-icd-opencl-dev (>= 2.2.0), libboost-dev (>= ${Boost_VER_STR}), libboost-filesystem-dev (>=${Boost_VER_STR}), uuid-dev (>= 2.27.1), dkms (>= 2.2.0), libprotoc-dev (>=2.6.1), libssl-dev (>=1.0.2), protobuf-compiler (>=2.6.1), libncurses5-dev (>=6.0), lsb-release, libxml2-dev (>=2.9.1), libyaml-dev (>= 0.1.6), libc6 (>= ${GLIBC_VERSION}), python (>= 2.7), python-pip, libudev-dev ")
 elseif (${LINUX_FLAVOR} MATCHES "^(RedHat|CentOS|Amazon)")
   execute_process(
fpga@ubuntu-fpga:~/work/XRT$ git add src/CMake/cpackLin.cmake
fpga@ubuntu-fpga:~/work/XRT$ git commit -m "[remove] upper limit of version of depend packages"
[2019.2_Ultra96 b69d97cd] [remove] upper limit of version of depend packages
 1 file changed, 1 insertion(+), 1 deletion(-)

XRT_EDGE_BUILD を追加

オリジナルではホストプロセッサとターゲットプロセッサが同じ場合に XRT_NATIVE_BUILD という変数が "yes" にセットされます。 そして、XRT_NATIVE_BUILD が "yes" の時(ホストプロセッサとターゲットプロセッサが同じ時)に src/runtime_src/core/pcie が、"no" の時(ホストプロセッサとターゲットプロセッサが異なる時)に src/runtime_src/core/edge がビルドされるように src/runtime_src/core/CMakeLists.txt が定義されています。

src/runtime_src/core/CMakeLists.txt
include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  )
add_subdirectory(include)
add_subdirectory(common)
 if (${XRT_NATIVE_BUILD} STREQUAL "yes")
   add_subdirectory(pcie)
   add_subdirectory(tools)
 else()
   add_subdirectory(edge)
 endif()

また、XRT_NATIVE_BUILD が "yes" の時(ホストプロセッサとターゲットプロセッサが同じ時)にインクルードされる src/CMake/nativeLnx.cmake には、次のようにホスト用のドライバをビルド&インストールするようになっています。

src/CMake/nativeLnx.cmakext
    :
    (前略)
    :
include (CMake/dkms.cmake)
include (CMake/dkms-aws.cmake)
include (CMake/dkms-azure.cmake)
include (CMake/dkms-container.cmake)
    :
    (後略)

Ultra96-V2 に Ubuntu 18.04 を動かしてその上でセルフビルドする場合は、ホストプロセッサとターゲットプロセッサが同じ arm64 になります。このままだと、edge 用のではなく pcie 用にビルドされてしまいます。

そこで、次のように src/CMakfile.txt に XRT_EDGE_BUILD 変数を追加します。

src/CMakeLists.txt
    :
    (前略)
    :   
set(XRT_EDGE_BUILD "no")
if (XRT_NATIVE_BUILD STREQUAL "no")
  set(XRT_EDGE_BUILD "no")
endif()
if (DEFINED ENV{XRT_EDGE_BUILD})
  set(XRT_EDGE_BUILD $ENV{XRT_EDGE_BUILD})
endif():
    :
    (後略)

そして XRT_EDGE_BUILD が "yes" の場合は edge 用のビルドを行うように、それぞれのファイルを変更します。

src/runtime_src/core/CMakeLists.txt
include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  )
add_subdirectory(include)
add_subdirectory(common)
 if (${XRT_EDGE_BUILD} STREQUAL "yes")
   add_subdirectory(edge)
 else()
   add_subdirectory(pcie)
   add_subdirectory(tools)
 endif()

src/CMake/nativeLnx.cmakext
    :
    (前略)
    :
if (${XRT_EDGE_BUILD} STREQUAL "yes")
  include (CMake/dkms-edge.cmake)
else()
  include (CMake/dkms.cmake)
  include (CMake/dkms-aws.cmake)
  include (CMake/dkms-azure.cmake)
  include (CMake/dkms-container.cmake)
endif()
    :
    (後略)

そして、edge 用のドライバ(zocl) を Debian パッケージに追加してインストール時に dkms を使ってビルドするように以下のファイルを追加します。

  • src/CMake/dkms-edge.cmake
  • src/CMake/config/dkms-zocl/dkms.conf.in
  • src/CMake/config/edge/postinst.in
  • src/CMake/config/edge/prerm.in

また、XRT_NATIVE_BUILD が "yes" の時(ホストプロセッサとターゲットプロセッサが同じ時)、コンパイルのオプションに "-Wall" と -"Werror" が追加されるような設定が src/runtime_src/CMakeLists.txt にあります。

src/runtime_src/CMakeLists.txt
    :
    (前略)
    :
# TODO CL_TARGET_OPENCL_VERSION is not defined..
if (${XRT_NATIVE_BUILD} STREQUAL "yes")
  add_compile_options("-Wall" "-Werror")
endif()
    :
    (後略)

"-Werror" オプションがあると src/runtime_src/core/edge 以下のビルド時にエラーが出てコンパイルに失敗します。そこで XRT_EDGE_BUILD が "yes" の時はコンパイルオプションに "-Wall" と "-Werror" が追加されないように src/runtime_src/CMakeLists.txt を修正します。

src/runtime_src/CMakeLists.txt
    :
    (前略)
    :
# TODO CL_TARGET_OPENCL_VERSION is not defined..
if (${XRT_EDGE_BUILD} STREQUAL "no")
  add_compile_options("-Wall" "-Werror")
endif() :
    (後略)

最後に build/build.sh を修正して、ホストプロセッサが arm64 かつ "-edge" オプションが追加された場合は XRT_EDGE_BUILD が "yes" になるように修正します。

build/build/sh
    :
    (前略)
    :
f [[ $CPU == "aarch64" ]] && [[ $edge == 1 ]]; then
  mkdir -p $edge_dir
  cd $edge_dir
  if [[ $nocmake == 0 ]]; then
    echo "$CMAKE -DRDI_CCACHE=$ccache -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT\\
_COMPILE_COMMANDS=ON ../../src"
    time env XRT_EDGE_BUILD=yes $CMAKE -DRDI_CCACHE=$ccache -DCMAKE_BUILD_TYPE=\\
Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../../src
  fi
  if [[ $docs == 1 ]]; then
    echo "make xrt_docs"
    make xrt_docs
  else
    echo "make -j $jcore $verbose DESTDIR=$PWD"
    time make -j $jcore $verbose DESTDIR=$PWD
    time ctest --output-on-failure
    time make package
  fi
  cd $BUILDDIR
fi
    :
    (後略)

ビルドに必要な Debian Package をインストール

ビルドに必要なパッケージをインストールします。幸い XRT には、ビルドに必要なパッケージをインストールするスクリプトが用意されています。

./src/runtime_src/tools/scripts/xrtdeps.sh を super user 権限で実行すると、apt プログラムにより足りない Debian Package がインストールされます。

fpga@ubuntu-fpga:~/work/XRT$ sudo ./src/runtime_src/tools/scripts/xrtdeps.sh
Installing packages...
Reading package lists... Done
Building dependency tree
Reading state information... Done
    :
(中略)
    :
The following packages were automatically installed and are no longer required:
  libgl2ps1.4 libibverbs1 liblept5 libnetcdf-c++4 libnl-route-3-200
  libopencv-flann-dev libopencv-flann3.2 libopencv-ml-dev libopencv-ml3.2
  libopencv-photo-dev libopencv-photo3.2 libopencv-shape-dev
  libopencv-shape3.2 libopencv-ts-dev libopencv-video-dev libopencv-video3.2
  libtcl8.6 libtesseract4 libtk8.6 libxss1
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.

ビルド

build ディレクトリに移動して、そこにある build.sh に "-edge" オプションをつけて実行することで、ビルドが開始されます。Ultra96/Ultra96-V2 だとけっこう時間がかかります。私の環境では1時間ほどかかりました。

fpga@ubuntu-fpga:~/work/XRT$ cd build/
fpga@ubuntu-fpga:~/work/XRT/build$ ./build.sh -edge
cmake -DRDI_CCACHE=0 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE= ../../src
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/gcc-8
-- Check for working C compiler: /usr/bin/gcc-8 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/g++-8
-- Check for working CXX compiler: /usr/bin/g++-8 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Host system processor is aarch64
-- Target system processor is aarch64
    :
(後略)
    :
fpga@ubuntu-fpga:~/work/XRT/build$ 

ビルドが終了すると、build/Edge ディレクトリの下に Debian Package が出来ています。

fpga@ubuntu-fpga:~/work/XRT$ cd build/
fpga@ubuntu-fpga:~/work/XRT/build$ ls -1 Edge/xrt_*
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xbtest.deb
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xbtest.tar.gz
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb
Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.tar.gz

このうち Ultra96/Ultra96-V2 に必要な Debian Package は、Edge/xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb です。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ultra96/Ultra96-V2 向け Debian GNU/Linux で XRT(Xilinx Runtime) を動かす(概要編)

はじめに

筆者は Ultra96/Ultra96-V2(ZynqMP) 向けに Debian GNU/Linux を提供しています1。また、XRT(Xilinx Runtime) はXilinx社が提供する開発環境(Vitis)で開発したプログラムをプラットフォームで動かすための環境です2

本来なら MPSoC Edge Device 用の XRT は Xilinx が提供する Linux 環境(Petalinux) でしか動きませんが、この記事では Ultra96/Ultra96-V2 向け Debian GNU/Linux で動かすための手順を幾つかのパートに分けて説明します。

注意

この記事で紹介している Debian Package は Xilinx 社の公式なものではありません。

XRT とは

XRT(Xilinx Runtime) は Xilinx社が提供する開発環境(Vitis)で開発したプログラムをプラットフォームで動かすための環境です2。XRT はユーザー空間とカーネルドライバのコンポーネントの組み合わせとして実装されています。

XRT は github で ソースコードが公開されています。

下図に XRT のソフトウェアスタックを示します(上のgithub リポジトリ より引用)。

Fig.1 XRT Software Stack

Fig.1 XRT Software Stack


ZynqMP-FPGA-Linux

筆者は github に UltraZed/Ultra96/Ultra96-V2 のプラットフォームとして Debian GNU/Linux をビルドして提供しています。

もともと Xilinx は Zynq や ZynqMP で Linux 環境を構築するためのツールとして PetaLinux ツールを提供しています。最初は私も PetaLinux を使って Linux 環境を構築する予定でしたが、どうにもイケてない点が二つありました。

一つ目は、私の環境(Windows7+VMware+Ubuntu 16.04LTS)では、正常にビルド出来なかった事です。何故か途中で(たいてい FSBL か PMUFW) Vivado SDK がヌルポで落ちて失敗します。腹立たしい事にだいたい10回中1回くらい成功するので、何回も同じコマンドを実行することでなんとかビルドできたりするのですが、時間ばっかりかかって精神衛生上良くありません。

二つめは、PetaLinux のコンフィギュレーションが良く判らないことです。PetaLinux は Yocto をベースにしていて、Boot Loader、Linux Kernel、Root File System、Tool Chain を一括管理して構築しています。それはそれで便利なのでしょうが、今回のように未サポートのボードにポーティングするとなると、例えばデバイスツリーにちょっと変更を加えたいとか、Linux Kernel のコンフィギュレーションを少し変えてコンパイルしてみたいとか、Root にツールをインストールしておきたい等、変更>構築>実験のサイクルを回すのには時間がかかりすぎる上に、どの設定をいじればいいのか判らないという問題がありました。

結局、PetaLinux は使わずに、Boot Loader、Linux Kernel、Root File System を個別に構築した方が簡単だと判断しました。そのおかげで、Boot Loader(主に U-Boot)や Linux Kernel のコンフィギュレーションを自由で変更出来たり、Root File System に私が良く使っている Debian を使えたり、かなり自由に構築することが出来ました。

ZynqMP-FPGA-XRT

XRT を ZynqMP-FPGA-Linux 向けにビルドするのは少し面倒で時間がかかります。ZynqMP-FPGA-Linux 用に XRT(Xilinx Runtime) を Debian パッケージにしたものを github で公開しています。ビルドが面倒な方はこちらをお使いください。

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

中まで全部775/664とか777/666とか755/644とか

chmod には便利な -R オプションがあります。chmod -R 775 [dir] とすると、[dir]の中にあるファイル・子ディレクトリ・その中のファイル・・・と全て chmod 775 してくれます。
便利なのですが、ディレクトリとファイルは別のパーミッションにしたいのに全部775になって不便なので、そうならないようにするコマンドです。

ディレクトリは775/ファイルは664

chmod が必要な状況として1番あるあるかと思います。
たとえばこういうディレクトリの状況だとします。
image.png
ディレクトリを775、ファイルを664にしたいときは、これを叩きます。

775/664.chmod
chmod -R "=r,u+w,g+w,+X" [dir]

image.png
ディレクトリが775、ファイルが664になりました。

ディレクトリは777/ファイルは666

あんまりやる機会が無いかもしれませんが、引き継ぎの際に事故らないように取り敢えず・・・ということもあるかと思います。
777/666にするやり方はこうです。

777/666.chmod
chmod -R "=r,u+w,g+w,o+w,+X" [dir]

image.png
ディレクトリが777、ファイルが666になりました。

ディレクトリは755/ファイルは644

いわゆる普通の状態にしたいときです。

755/644.chmod
chmod -R "=r,u+w,+X" [dir]

image.png
ディレクトリが755、ファイルが644になりました。

備考

画像のlsコマンドはexaを使っています。 l -Texa -la -T のエイリアスになっています。
カラフルな ls ができる exa コマンドの詳細はこちらの記事などをご覧ください。。

ls よりも exa を使おう!モダンな Linux コマンド達を紹介 - Qiita
https://qiita.com/navitime_tech/items/c249269a3b47666c784b

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Sabayon Linux の Portage Profile が 17.0 から 17.1 に / Daily builds のインストールメディアを使い最新版 Sabayon を導入してみる

執筆動機

今回の変更は Sabayon 新規導入時にわりと戸惑う部分かな?と感じたので。

Portage Profile が更新

Sabayon の Portage Profile が 17.0 から 17.1 へと変更されたので、Entropy/equo と Portage/emerge を併用する場合、特に注意が必要です。

アナウンスによると「今回の更新以降、どのパッケージも /lib32 や /usr/lib32 以下にファイルをインストールすることがなくなり、また、/lib はシンボリックリンクではなくなります」とのこと。

Sabayon has changed profile to 17.1
https://forum.sabayon.org/viewtopic.php?t=35754&p=185327#p185325
https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html

Sabayon is based on Gentoo, and Gentoo has a concept of profiles that can be thought as distro wide configuration.

In Sabayon the profile has been switched (or will be switched when you perform an update) to default/linux/amd64/17.1/desktop, following Gentoo. From now on, no package installs to /lib32 or /usr/lib32 and /lib is no longer a symbolic link.

Profile switch has been automated to provide you a seamless experience, however there is a couple of things you may want to be aware of.

Following notice is especially directed towards power users.

Applies to all users

No package installs to /lib32 or /usr/lib32, however it is possible that you have some stale packages with files installed there. It is not required to clean them up, but you may consider doing so.

Important: do this only if you are sure that you are already on the new profile! If /lib is NOT a symbolic link, and both /lib32 and /usr/lib32 are symbolic links, you are on an updated system and can continue. Otherwise do the update first.

If in doubt, ignore this step.

a. As a sanity check of the qlist tool used in the process, verify that this command:

qlist -eC app-portage/portage-utils

produces several lines that contain some paths.

b. Find packages that install to /lib32 or /usr/lib32.

equo query list installed -qv | while read pkg; do qlist -eC "$pkg" | grep -q -E "^/lib32/|^/usr/lib32/" && echo "$pkg"; done

Note: if the list of packages exceeds 10, you are probably not updated to the new layout. Make sure to update first.

c. This command should only produce list of old and useless packages. In the first case, just remove them with equo. If you are not sure whether the package can be removed, stop at this point (and ask for help if you would like to continue).

d. Using the command from point b., confirm that there are no packages that install to these directories (execute it again). If there are none, you can remove the symbolic links: rm /lib32 /usr/lib32.

Additional information for Portage users

If you don't use Portage (emerge) you can skip this section.

Make sure to execute:

eselect profile set default/linux/amd64/17.1/desktop

There could be packages that install to lib32 directories which you emerged yourself. Rebuilding them is recommended. After doing it, you can follow steps a-d above if you like.

That's all!

Additional information from Gentoo for the curious:
https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html

amd64 17.1 profiles are now stable によると、amd64 17.1 profile では 64bit アプリケーション/ライブラリ向けには、lib64 ディレクトリが用意され、lib は lib64 へのシンボリックリンクではなく独立のディレクトリとして用意されるとのこと。どうやらこの流れで lib32 が廃止されるようです。

A new set of 17.1 amd64 profiles has been added to the Gentoo
repository in Dec 2017. These profiles switch to a more standard
'no SYMLINK_LIB' multilib layout, and require explicit migration as
described below. They are considered stable at the moment, and we would
like to request all users to upgrade their systems. The old profiles
will be deprecated in the near future.

In the new profiles, the lib->lib64 compatibility symlink is removed.
64-bit libraries need to be installed directly to lib64. /lib
and /usr/lib become real directories, that are used for cross-arch
and native non-library packages (gcc, clang) and 32-bit libraries
on the multilib profile (which improves compatibility with prebuilt x86
packages).

野良ビルドの際はライブラリのインストール先に気を付けて。

Sabayon のデイリービルドイメージ

現在最新安定版イメージが 19.03 であり、これから最新版に更新するのは少々手間です。よって、新規インストール時はデイリービルドイメージから導入するのが色々楽かもしれません。

ダウンロード

https://www.sabayon.org/mirrors/

Daily

http://ftp.tsukuba.wide.ad.jp/Linux/sabayon/iso/daily/daily.html
https://ftp.riken.jp/Linux/sabayon/iso/daily/daily.html

Monthly

http://ftp.tsukuba.wide.ad.jp/Linux/sabayon/iso/monthly/monthly.html
https://ftp.riken.jp/Linux/sabayon/iso/monthly/monthly.html
http://ftp.kddilabs.jp/Linux/packages/sabayonlinux/iso/monthly/monthly.html

※ Monthly は 2019 年 3 月で止まっている模様

インストール

あとはお好きなフレーバー(GNOMEとかKDEとか)のイメージを好みのメディアに焼いてインストール。

インストーラの取り扱いに関しては、19.03と大きく変わる部分はありません。
※ 今回の更新で標準の壁紙が変わりました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxについてまとめさせていただきました

概念

シェルとlinuxカーネル
カーネルが内側で、その外側に存在するのがシェル。
カーネルは道具というイメージでPC内で働く機能を持っている。
シェルは人間のコマンドとカーネルの仲介となり、カーネル実行できるように人間のコマンドを翻訳している。

またシェルを自分好みに変更できる(コマンド入力でシェルを切り替えることができる!)。主に使われているシェルはbashである。

ログインシェル→ログインした時に自動的に反映されるシェルの事

シェルスクリプト→元々あるコマンドを組み合わせて自分だけのコマンドを作る事

コマンドの書き方

コマンド+場所+オプション

コマンドとは実行したい内容を命令する

場所とはPCの場所や物を指定する。
・ディレクトリー→箱みたいなの
・ファイル→紙みたいなの

オプションとは
コマンドの後ろに-をつけてオプションをつける事で、コマンドをより細かく使える。
同じオプション(文字)の入力の仕方でも、コマンドによって内容は変わる

エイリアス

alias 名前 コマンド→コマンド内容を定義できる、シェルスクリプトのかわいい版
unalias 名前→定義を無効にする
type 名前→どんな定義か知る

set shopt→オプションのオンオフを決める

シェル変数(環境変数)

bash内での変数を定義できる
注意は=では式と式の間にスペースを作らない
→自分の定義した変数が利用できるようにするにはexport シェル変数をしないといけない

元々入っているシェル変数
PATH→全てのコマンド(シェル)が入っている場所を教えてくれる(一つの場所とは限らない)
LANG→エラー文が何語で出るか教えてくれる

PATHを通すとはそのファイルをカーネルとして扱うようにすること。そのファイルが人間のコマンド→シェルによって読み出されるようにすること。
PATHの通し方に関してはこちらの方がわかりやすく説明されています。
MacでPATHを通す

ファイルのオーナー

全てのファイルにはオーナーが存在する
しかしファイルを扱う人はオーナーだけではない

オーナー、グループ、その他である。
グループとはそのパソコンに登録しているユーザーの事、その他はそうではない人
それぞれによってそのファイルに出来ることが変わってくる

ls -lでファイルの詳細を見ると確認できる

そこにはファイルを扱う人によって操作できる範囲が書かれている

操作できる範囲
r→読み出し
w→書き込み
x→実行

rw-rw-r--→のようにオーナー、グループ、その他の順で何ができるか分かる

chmad→これらの権限の変更ができる

スーパーユーザー
→rwx全てが出来るユーザー

su→スーパーユーザーにログイン
sudo コマンド→一時的にスーパーユーザーになってコマンド実行

プロセスとジョブ

プロセスはコマンドによってメモリ内で発生している作業。一つのコマンドによって複数のプロセスが発生する事もある

psでプロセスが見れる。 pidがプロセス番号

ジョブとは作業している時に別の資料を見れるようにするためにある、一度その作業を一時停止してから別の資料を見れるようにする。その作業のことをジョブという

一時停止方法
ctl+z→作業を一時停止してジョブとして認識

ジョブの一覧を見る方法
jobs→ジョブ番号と何の作業を一時停止しているか知る

fg %ジョブ番号→作業再開

kill %ジョブ番号→そのジョブの一時停止をやめる

bg %ジョブ番号→作業を再開、コピーとか使われる

リダイレクトとパイプライン

リダイレクトは入力と出力の場所変更

入力リダイレクト→コマンド < 読み取る場所
読み取る場所を変更する

出力リダイレクト→コマンド > 読み出す場所
読み出す場所を変更する

エラー構文出力→ コマンド 2> 読み出す場所
→エラー内容を保存

dev/null→ここには何を書き込まれても、なにも残らず。なにを取り出しても何も出てこない

ファイルを空っぽにしたい時は
ファイル < /dev/null
をすると良い

パイプラインとはコマンドとコマンドをつなげるために間にl を入れる

シェルスクリプト

シェルスクリプトとはコマンドを組み合わせて作った自分だけのシェルの事

お手本
シェルのある場所にシェルスクリプト用のファイルを作る、名前の後ろに.shと付ける

ファイルの中の1行目には
#! ファイルの場所
を書く

chomadで権限を与える

source 自作シェルファイル名
or
. 自作シェルファイル名
で実行
自作シェルスクリプトの中にaliasコマンドがあればsourceを使う

アーカイブと圧縮

アーカイブとは複数のファイルやディレクトリをまとめたファイルの事、アーカイブの名前は後ろに.tarと付ける

圧縮とはファイルのサイズを小さくすること

tar cf アーカイブ名前 アーカイブにしたいディレクトリ
tar tf アーカイブ→アーカイブの中身確認
tar xf アーカイブ→アーカイブを解凍

gzip 圧縮元ファイル→圧縮、圧縮ファイルは元のファイル名に.gzがついた名前になる
gzip -d 圧縮ファイル名→解凍

bzip2はgzipより圧縮する
xyはbzip2より圧縮する

アーカイブと圧縮を一気にやる方法

tar czf 圧縮アーカイブ名(〜.tar.gz) 元ディレクトリ
→アーカイブして圧縮

tar xzf 圧縮アーカイブ名(〜.tar.gz)→解凍

tar cjf 圧縮アーカイブ名(〜.tar.bz2) 元ディレクトリ
→アーカイブしてbzip2に圧縮

tar cJf 圧縮アーカイブ名(〜.tar.xy) 元ディレクトリ
→ アーカイブしてxyに圧縮

zip -r 圧縮アーカイブ(.zip) 元ディレクトリ
→アーカイブにして圧縮を一気にやる、

zip -er 圧縮アーカイブ(.zip) 元ディレクトリ
→アーカイブにして圧縮を一気にやる、パスワードもつけれる

unzip 圧縮アーカイブ→解凍

パッケージのダウンロード

パッケージとはソフトウェアを動かすのに必要なアーカイブ
パッケージにも形式がある。rmp型とdeb型。型によってインストールの仕方も変わる

yum型
yum install パッケージ名→インストール
yum erase/remove パッケージ名→削除
yum search all 検索ワード→パッケージを検索
yum info パッケージ名→情報を知る

deb型
sudo apt-get install パッケージ名→インストール
sudo apt-get remove パッケージ名→削除
apt-cache search 検索ワード→検索
apt-cache show パッケージ名→情報を知る

リモートログインとssh

リモートログインとは自分のパソコンから別のサーバーにログインする事

その時に相手のサーバーのIPアドレスとsshが必要になる。IPアドレスはパソコンの住所。sshはサーバーとサーバーとの間となるトンネルのような存在。

ログイン方法
ssh ユーザー名 相手のIPアドレス

またリモートサーバーにsshを介してデータを送る事をポートフォワーディング、トンネルリングと呼ぶ

前提
自分、相手それぞれのサーバーにはポートという情報を出港させる場所をたくさん持っている。

ポートフォワーディングのやり方
ssh -L ローカルポート番号 リモートIPアドレス リモートポート番号
→これでデータ送信ができる

主なコマンド1

cd 場所→移動
pwd→今どこのディレクトリにいるか知る
ls 場所→今いるディレクトリに何が入っているかを知る

.→今いる場所を示す
..→親のディレクトリの場所を示す
~ or 何もなし→ホームディレクトリの場所を示す。homeディレクトリの中の自分のアカウントの中身を示す!
/→ルートディレクトリの場所を示す!、これはパソコンの本当に一番上のディレクトリ

主なコマンド2

mkdir→ディレクトリを作る
touch→ファイルを作る
rm→ファイル削除
rm -r→ディレクトリ削除
rmdir→空のディレクトリ削除
cat -n→ファイルの中身を知れる、スクロール出来ない
less→ファイルの中身を見れて、スクロール可能

cp→同じ場所での複製、別の場所での複製、上書きコピーもできる
cp a b→ bが既に存在してなければ複製、存在していればbにaの内容を上書き、
cp a ディレクトリ→ディレクトリに複製

mv→転送or名前の変更
mv ファイル ファイル→ファイル名を2回目へ変更
mv ファイル ディレクトリ→ディレクトリにファイルを移動

ln→ファイルにリンク(別名)を作る

find 検索開始ディレクトリ 条件→条件にあったものを開始ディレクトリから探していく(こちらの記事が非常にわかりやすかったです。【find・grep】特定の文字列を含むファイルのリストを取得する方法。)
locate→findより速く検索できる
man→コマンドの使い方を知る
which→コマンドがどこにあるか知る

主なコマンド3

wc→ファイルの行数、単語数、バイト数が分かる
sort→並び替え デフォではアルファベット順になる
uniq→重複した行を消す

cut d 区切り文字 -f フィールド番号 ファイル名を
→ファイルの中のそれぞれの行を区切り文字で分けて、フィールド番号番目の内容だけど、catのように読み出す

つまりファイルの中身が行ごとに同じ感じでないといけない!

tr 置換前文字 置換後文字→ファイルの文字の置換をする、1文字1文字しかできない
tr -d 文字→ファイルの文字の削除をしてくれる

tail , head→ファイルの最後や最初の10行の内容を教えてくれる

diff 比較元ファイル 比較ファイル→何が変わったかを教えてくれる

grep 言葉 ファイル→言葉を含むファイルを教えてくれる、-nをつけると行数付き -iをつけると大文字小文字関係なく -rをつけると今のディレクトリより下の層全てを調べてくれる

他にも言葉の部分をメタ文字として任意の文字でも検索できるようにできる
(こちらの記事が非常にわかりやすかったです。【find・grep】特定の文字列を含むファイルのリストを取得する方法。)

sed→trでできなかった単語単位で置換できる
sed アドレス数d ファイル→ファイルのアドレス行目を削除
sed -n アドレス数p ファイル→ファイルのアドレス行目を表示
sed 's/A単語/B単語' ファイル→ファイルの中のA単語をB単語に置換する

awk '{print フィールド数}'→ファイル内の指定したフィールド数の内容だけを表示

du ファイル→ファイルの使用容量を知れる

ディレクトリの種類

/bin→重要なコマンドがこの中に格納されている
/home→ホームディレクトリ、リナックスユーザー毎に割り当てられる個人用の箱(つまりcdでホームに行くと自分のアカウントの中身に飛ぶ)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Sabayon Linux と分散コンピューティング( Folding@home / Rosetta@home )で COVID-19(新型コロナウイルス感染症)に対抗する

イタリアがひどいことになり、Sabayon が今どうなってるのか気になっていましたが、フォーラムに新型コロナウイルスに対抗する話が出ていました。

Sabayon Linux はイタリア発祥の Gentoo 系ディストリビューションです。

間違い晒し

記事の一部に誤った手順を記載していました。ごめんなさい。

以下、間違った手順を紹介してしまった画像。

COVID-19 - コピー.jpg

こんな感じで良いはず。 ← ダメ。指定すべきはプロジェクトナンバーであってチームナンバーではありません。 ← 残念。FAQ によると、プロジェクトナンバーを直接指定することは出来ないそうです。“I support research fighting” で COVID-19 を指定できれば簡単なのですが。

※ 訂正文でも間違ってしまい申し訳ない。

2020/3/28タイトルを一部修正

不正確な表記・記述をしていました。ごめんなさい。

修正前
COVID-19(新型コロナウイルス)

修正後
COVID-19(新型コロナウイルス感染症)

COVID-19:

  • Coronavirus disease 2019
  • 新型コロナウイルス感染症
  • 2019新型コロナウイルスによる急性呼吸器疾患

SARS-CoV-2:

  • 新型コロナウイルス
  • SARSコロナウイルス-2
  • Severe acute respiratory syndrome coronavirus 2(直訳すると『重症急性呼吸器症候群コロナウイルス2』)

出典:

https://ja.wikipedia.org/wiki/2019新型コロナウイルスによる急性呼吸器疾患
https://ja.wikipedia.org/wiki/2019新型コロナウイルス
https://en.wikipedia.org/wiki/Severe_acute_respiratory_syndrome_coronavirus_2

AIDS と HIV みたいな使い分け。

ソース

https://forum.sabayon.org/viewtopic.php?f=94&t=35718

Tutti possono aiutare la ricerca per combattere il coronavirus con il proprio PC.

Sabayon フォーラムのイタリア語のサブフォーラム内記事。

機械翻訳

https://translate.google.co.jp/translate?sl=it&tl=ja&u=https%3A%2F%2Fforum.sabayon.org%2Fviewtopic.php%3Ff%3D94%26t%3D35718

誰もが自分のPCでコロナウイルスと戦うための研究を助けることができます。

source language をイタリア語、target language を日本語として機械翻訳。

Folding@home

https://foldingathome.org/
https://ja.wikipedia.org/wiki/Folding@home

Folding@home(FAH、フォールディング・アット・ホーム[3])は、2000年10月から北アメリカのスタンフォード大学を中心に行われている分散コンピューティングプロジェクトおよび、それに使用されているコンピュータプログラム。

たんぱく質の折りたたみ構造を解析することで、これに関係する様々な疾病(アルツハイマー病、がん、パーキンソン病、狂牛病など)の治療に役立てるのが目的。このプログラムをダウンロードし、パーソナルコンピュータなどで動作させると研究に必要な計算が行われ、その計算結果がインターネットを通じてスタンフォード大学に送られる。また、このプロジェクトではCPUだけでなく、GPGPUによる処理も行う事が出来る。

やること

出典:https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185189

ルートログイン

$ su -

folding@home の導入

# equo install sci-biology/foldingathome

ユーザーを"foldingathome"グループに追加

# gpasswd --add <あなたのユーザー名> foldingathome

”foldingathomeなんてグループねーよ!”って怒られた場合は以下を実行

# groupadd --system foldingathome
# gpasswd --add <あなたのユーザー名> foldingathome

folding@home の開始

# systemctl start foldingathome

folding@home のステータス確認

$ systemctl status foldingathome

アクセス権の問題が生じている場合は適切に変更し、サービスを再起動

$ su -
# chmod 775 --recursive /opt/foldingathome
# systemctl restart foldingathome

ローカルクライアントに接続

$ firefox https://client.foldingathome.org/

サービスが動いているのに繋がらない場合、ufwの設定やルーター側のファイアウォール設定を見直す必要があるかもしれません。

適切なプロジェクトに参加

FAHControl

COVID-19_03 - コピー.jpg

Web インターフェイス

COVID-19_02 - コピー.jpg

"I support research fighting" のプルダウンメニューで "Any disease" を指定することで COVID-19 関連プロジェクトに計算リソースを提供します。

3/26 現在、COVID-19 関連プロジェクトのみに計算リソースを提供することは出来ないそうです。

Folding@home の COVID-19 特設ページ

https://foldingathome.org/covid19/

To focus on Covid19 research set your category to any.

Folding@home の COVID-19 関連 FAQ

https://foldingforum.org/viewtopic.php?f=24&t=32463

  1. How do I choose to help with the COVID-19 related projects ?
    To help in the fight against COVID-19, you need to select
    - Webcontrol : "Any disease" in the list "I support research fighting"
    - Advanced Control/FAHControl : Configure > Advanced, select "Any" in the list "Cause Preference"
    The COVID-19 related projects are on top priority and will be assigned automatically.

  2. Can I choose to work only on the COVID-19 related projects ?
    No, you can't.
    In FoldingHome, you never choose to work on only one project (or family of projects). The setting described above is a preference, but if no work is available to match your preferences, the system is designed to send you what need to be done at the time of your work request.

以下、上記のGoogle翻訳

  1. COVID-19関連プロジェクトの支援をどのように選択すればよいですか?
    COVID-19との戦いを支援するには
    -Webcontrol:「I support research fighting」リストで「Any disease」を選択
    -Advanced Control / FAHControl:Configure > Advanced、「Cause Preference」リストで「Any」を選択
    COVID-19関連プロジェクトは最優先事項であり、自動的に割り当てられます。

  2. COVID-19関連のプロジェクトでのみ作業することを選択できますか?
    いいえ、できません。
    FoldingHomeでは、1つのプロジェクト(またはプロジェクトのファミリー)だけで作業することを選択することはありません。 上記の設定は設定ですが、設定に一致する作業がない場合、システムは、作業要求時に実行する必要があることを送信するように設計されています。

Sabayon のフォーラムのポスト

Re: COVID-19: il PC può aiutare
Post by sabayonino » Mon Mar 16, 2020 18:35

Allo stato attuale i progetti dedicati al COVID-19 sono i seguenti :

The Current Folding@home project IDs that correspond with Coronavirus (COVID-19) research are 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11759, 11760, 11761, 11762, 11763, 11764, 14328, 14329, 14530, 14531, and 14532.

出典:
https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185269

以下、上記のGoogle翻訳

Re:COVID-19:PCがお手伝いします

sabayoninoによる投稿 » 2020年3月16日18:35

現在、COVID-19専用のプロジェクトは次のとおりです。

コロナウイルス(COVID-19)の研究に対応する現在のFolding@homeプロジェクトIDは、11741、11742、11743、11744、11745、11746、11747、11748、11749、11750、11751、11752、11759、11760、11761、11762です。 、11763、11764、14328、14329、14530、14531、および14532

おまけ

folding@home はマルチプラットフォームなので Mac や Windows からも参加出来ます。
https://foldingathome.org/support/faq/installation-guides/windows/
https://foldingathome.org/support/faq/installation-guides/linux/
https://foldingathome.org/support/faq/installation-guides/mac/

Android から参加する場合は適当な Boinc クライアントから行けるかも。
https://foldingathome.org/faqs/high-performance/fah-on-boinc/
https://play.google.com/store/apps/details?id=edu.berkeley.boinc&hl=ja

↓iOS向けにはこんなアプリがありました。
https://apps.apple.com/jp/app/boinc-statistics/id1275779531

Sabayon でバイナリパッケージに問題(2020年3月26日現在)

困りました

リポジトリ由来の folding@home が立ち上がりません。

esi@esi-pc ~ $ ls -l /opt/foldingathome
合計 8268
-rwxr-xr-x 1 foldingathome foldingathome 6825315 11月  3 02:08 FAHClient
-rwxr-xr-x 1 foldingathome foldingathome 1631413 11月  3 02:08 FAHCoreWrapper
lrwxrwxrwx 1 foldingathome foldingathome      34  3月 26 22:51 libcrypto.so.10 -> ../../usr/lib64/libcrypto.so.1.0.0
lrwxrwxrwx 1 foldingathome           141      34  3月 26 20:07 libcrypto.so.10.bak -> ../../usr/lib64/libcrypto.so.1.0.0
lrwxrwxrwx 1 foldingathome foldingathome      31  3月 26 22:51 libssl.so.10 -> ../../usr/lib64/libssl.so.1.0.0
lrwxrwxrwx 1 foldingathome           141      31  3月 26 20:07 libssl.so.10.bak -> ../../usr/lib64/libssl.so.1.0.0
-rw-r--r-- 1 foldingathome foldingathome    2010 11月  3 02:08 sample-config.xml
esi@esi-pc ~ $ /opt/foldingathome/FAHClient
/opt/foldingathome/FAHClient: /opt/foldingathome/libssl.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: symbol lookup error: /opt/foldingathome/libssl.so.10: undefined symbol: krb5_rc_initialize
esi@esi-pc ~ $

emerge を併用してみました

そこで、emerge で dev-libs/openssl-compat や sci-biology/foldingathome を入れました……が、その後も同じエラーに遭遇。うーむ。

参考文献

https://wiki.sabayon.org/index.php?title=HOWTO:_Safely_mix_Entropy_and_Portage
https://wiki.gentoo.org/wiki/Knowledge_Base:Autounmask-write
https://wiki.gentoo.org/wiki/Eix
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base/ja#任意自由選択:_ミラーサーバーを選択する

equo と emerge の併用準備

emergeの併用準備
su -
export LANG=en_US.UTF-8
eselect profile list
eselect profile set default/linux/amd64/17.1/desktop
cd /etc/portage/package.env/
ln --symbolic --force ../package.env.amd64 ./package.env.amd64 # シンボリックリンクが壊れている場合はこれで修正
cd
equo rescue spmsync --ask
nano --nowrap /etc/entropy/client.conf # ※1
equo install dev-vcs/git --ask
equo install app-portage/layman --ask
layman --list
layman --add sabayon
layman --add sabayon-distro
equo install app-portage/eix --ask
wget https://gist.githubusercontent.com/rdnetto/522839021a240650c20d/raw/41bdbac11fc31bf97b6aa27873f6fb0616e8cbc6/sync-entropy-files.sh --output-document=/var/lib/entropy/sync-entropy-files.sh
chmod +x /var/lib/entropy/sync-entropy-files.sh
for d in package.accept_keywords package.keywords package.mask package.use; do test -d /etc/portage/$d || mkdir /etc/portage/$d; done
for d in $(find /etc/portage/package.* -maxdepth 0 -type d); do touch $d/zzz_autounmask; done
# equo install app-portage/mirrorselect --ask # Portage で日本のミラーを指定したい場合
# mirrorselect --interactive --output >> /etc/portage/make.conf # mirror の設定を追記
emerge-webrsync
layman --sync-all
nano --nowrap /etc/eix-sync.conf # ※2
eix-sync
equo conf update
※1 “ignore-spm-downgrades”の記述を“disable”から“enable”に書き換えアンコメント
ignore-spm-downgrades = enable
※2 以下を記述
*
! /var/lib/entropy/sync-entropy-files.sh

emerge で dev-libs/openssl-compat と sci-biology/foldingathome を導入

ソフトウェアの導入
equo install dev-libs/openssl-compat --ask
equo install sci-biology/foldingathome --ask
equo install dev-util/patchelf --ask
emerge dev-libs/openssl-compat --ask
emerge sci-biology/foldingathome --ask
equo rescue spmsync --ask

spmsync
Update Entropy installed packages repository merging Source Package Manager changes.

https://wiki.sabayon.org/index.php?title=En:List_Of_Equo_Functions#spmsync

ダメでした(2020年3月26日現在)

esi@esi-pc ~ $ /opt/foldingathome/FAHClient
/opt/foldingathome/FAHClient: /opt/foldingathome/libssl.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: symbol lookup error: /opt/foldingathome/libssl.so.10: undefined symbol: krb5_rc_initialize
esi@esi-pc ~ $ 

Rosetta@home

http://boinc.bakerlab.org/rosetta/
https://ja.wikipedia.org/wiki/Rosetta@home

Rosetta@home(ロゼッタ・アット・ホーム)とはワシントン大学のデイビット・ベイカー(英語版)教授の研究室が運営する分散コンピューティングのプロジェクトのひとつである。

たんぱく質の構造などを解析し、将来的にはエイズや癌やアルツハイマー型認知症、マラリアなどの様々な病気を研究する研究者を助けることが目的である。

インストール

boincのインストール
su -
export LANG=en_US.UTF-8
equo install sci-misc/boinc --ask
systemctl enable boinc-client # システム始動時に自動起動させる
systemctl start boinc-client # boinc-client を開始する
systemctl status boinc-client # boinc-client の状態を表示する
reboot # システムを再起動

起動と Rosetta@home への参加

起動

boincの起動
$ boincmgr

Rosetta@home への参加の流れ

VirtualBox_Sabayon_27_03_2020_08_53_47 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_54_37 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_55_35 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_56_48 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_58_44 - コピー.png
VirtualBox_Sabayon_27_03_2020_09_34_52 - コピー.png

参考文献

https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185189
https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185323
https://www.boincitaly.org/forum/biologia-e-medicina/1793-thread-ufficiale-rosetta-home.html?start=2080#132968

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Sabayon Linux と分散コンピューティング( Folding@home / Rosetta@home )で COVID-19(新型コロナウイルス)に対抗する

イタリアがひどいことになり、Sabayon が今どうなってるのか気になっていましたが、フォーラムに新型コロナウイルスに対抗する話が出ていました。

Sabayon Linux はイタリア発祥の Gentoo 系ディストリビューションです。

間違い晒し

記事の一部に誤った手順を記載していました。ごめんなさい。

以下、間違った手順を紹介してしまった画像。

COVID-19 - コピー.jpg

こんな感じで良いはず。 ← ダメ。指定すべきはプロジェクトナンバーであってチームナンバーではありません。 ← 残念。FAQ によると、プロジェクトナンバーを直接指定することは出来ないそうです。“I support research fighting” で COVID-19 を指定できれば簡単なのですが。

※ 訂正文でも間違ってしまい申し訳ない。

ソース

https://forum.sabayon.org/viewtopic.php?f=94&t=35718

Tutti possono aiutare la ricerca per combattere il coronavirus con il proprio PC.

Sabayon フォーラムのイタリア語のサブフォーラム内記事。

機械翻訳

https://translate.google.co.jp/translate?sl=it&tl=ja&u=https%3A%2F%2Fforum.sabayon.org%2Fviewtopic.php%3Ff%3D94%26t%3D35718

誰もが自分のPCでコロナウイルスと戦うための研究を助けることができます。

source language をイタリア語、target language を日本語として機械翻訳。

Folding@home

https://foldingathome.org/
https://ja.wikipedia.org/wiki/Folding@home

Folding@home(FAH、フォールディング・アット・ホーム[3])は、2000年10月から北アメリカのスタンフォード大学を中心に行われている分散コンピューティングプロジェクトおよび、それに使用されているコンピュータプログラム。

たんぱく質の折りたたみ構造を解析することで、これに関係する様々な疾病(アルツハイマー病、がん、パーキンソン病、狂牛病など)の治療に役立てるのが目的。このプログラムをダウンロードし、パーソナルコンピュータなどで動作させると研究に必要な計算が行われ、その計算結果がインターネットを通じてスタンフォード大学に送られる。また、このプロジェクトではCPUだけでなく、GPGPUによる処理も行う事が出来る。

やること

出典:https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185189

ルートログイン

$ su -

folding@home の導入

# equo install sci-biology/foldingathome

ユーザーを"foldingathome"グループに追加

# gpasswd --add <あなたのユーザー名> foldingathome

”foldingathomeなんてグループねーよ!”って怒られた場合は以下を実行

# groupadd --system foldingathome
# gpasswd --add <あなたのユーザー名> foldingathome

folding@home の開始

# systemctl start foldingathome

folding@home のステータス確認

$ systemctl status foldingathome

アクセス権の問題が生じている場合は適切に変更し、サービスを再起動

$ su -
# chmod 775 --recursive /opt/foldingathome
# systemctl restart foldingathome

ローカルクライアントに接続

$ firefox https://client.foldingathome.org/

サービスが動いているのに繋がらない場合、ufwの設定やルーター側のファイアウォール設定を見直す必要があるかもしれません。

適切なプロジェクトに参加

FAHControl

COVID-19_03 - コピー.jpg

Web インターフェイス

COVID-19_02 - コピー.jpg

"I support research fighting" のプルダウンメニューで "Any disease" を指定することで COVID-19 関連プロジェクトに計算リソースを提供します。

3/26 現在、COVID-19 関連プロジェクトのみに計算リソースを提供することは出来ないそうです。

Folding@home の COVID-19 特設ページ

https://foldingathome.org/covid19/

To focus on Covid19 research set your category to any.

Folding@home の COVID-19 関連 FAQ

https://foldingforum.org/viewtopic.php?f=24&t=32463

  1. How do I choose to help with the COVID-19 related projects ?
    To help in the fight against COVID-19, you need to select
    - Webcontrol : "Any disease" in the list "I support research fighting"
    - Advanced Control/FAHControl : Configure > Advanced, select "Any" in the list "Cause Preference"
    The COVID-19 related projects are on top priority and will be assigned automatically.

  2. Can I choose to work only on the COVID-19 related projects ?
    No, you can't.
    In FoldingHome, you never choose to work on only one project (or family of projects). The setting described above is a preference, but if no work is available to match your preferences, the system is designed to send you what need to be done at the time of your work request.

以下、上記のGoogle翻訳

  1. COVID-19関連プロジェクトの支援をどのように選択すればよいですか?
    COVID-19との戦いを支援するには
    -Webcontrol:「I support research fighting」リストで「Any disease」を選択
    -Advanced Control / FAHControl:Configure > Advanced、「Cause Preference」リストで「Any」を選択
    COVID-19関連プロジェクトは最優先事項であり、自動的に割り当てられます。

  2. COVID-19関連のプロジェクトでのみ作業することを選択できますか?
    いいえ、できません。
    FoldingHomeでは、1つのプロジェクト(またはプロジェクトのファミリー)だけで作業することを選択することはありません。 上記の設定は設定ですが、設定に一致する作業がない場合、システムは、作業要求時に実行する必要があることを送信するように設計されています。

Sabayon のフォーラムのポスト

Re: COVID-19: il PC può aiutare
Post by sabayonino » Mon Mar 16, 2020 18:35

Allo stato attuale i progetti dedicati al COVID-19 sono i seguenti :

The Current Folding@home project IDs that correspond with Coronavirus (COVID-19) research are 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11759, 11760, 11761, 11762, 11763, 11764, 14328, 14329, 14530, 14531, and 14532.

出典:
https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185269

以下、上記のGoogle翻訳

Re:COVID-19:PCがお手伝いします

sabayoninoによる投稿 » 2020年3月16日18:35

現在、COVID-19専用のプロジェクトは次のとおりです。

コロナウイルス(COVID-19)の研究に対応する現在のFolding@homeプロジェクトIDは、11741、11742、11743、11744、11745、11746、11747、11748、11749、11750、11751、11752、11759、11760、11761、11762です。 、11763、11764、14328、14329、14530、14531、および14532

おまけ

folding@home はマルチプラットフォームなので Mac や Windows からも参加出来ます。
https://foldingathome.org/support/faq/installation-guides/windows/
https://foldingathome.org/support/faq/installation-guides/linux/
https://foldingathome.org/support/faq/installation-guides/mac/

Android から参加する場合は適当な Boinc クライアントから行けるかも。
https://foldingathome.org/faqs/high-performance/fah-on-boinc/
https://play.google.com/store/apps/details?id=edu.berkeley.boinc&hl=ja

↓iOS向けにはこんなアプリがありました。
https://apps.apple.com/jp/app/boinc-statistics/id1275779531

Sabayon でバイナリパッケージに問題(2020年3月26日現在)

困りました

リポジトリ由来の folding@home が立ち上がりません。

esi@esi-pc ~ $ ls -l /opt/foldingathome
合計 8268
-rwxr-xr-x 1 foldingathome foldingathome 6825315 11月  3 02:08 FAHClient
-rwxr-xr-x 1 foldingathome foldingathome 1631413 11月  3 02:08 FAHCoreWrapper
lrwxrwxrwx 1 foldingathome foldingathome      34  3月 26 22:51 libcrypto.so.10 -> ../../usr/lib64/libcrypto.so.1.0.0
lrwxrwxrwx 1 foldingathome           141      34  3月 26 20:07 libcrypto.so.10.bak -> ../../usr/lib64/libcrypto.so.1.0.0
lrwxrwxrwx 1 foldingathome foldingathome      31  3月 26 22:51 libssl.so.10 -> ../../usr/lib64/libssl.so.1.0.0
lrwxrwxrwx 1 foldingathome           141      31  3月 26 20:07 libssl.so.10.bak -> ../../usr/lib64/libssl.so.1.0.0
-rw-r--r-- 1 foldingathome foldingathome    2010 11月  3 02:08 sample-config.xml
esi@esi-pc ~ $ /opt/foldingathome/FAHClient
/opt/foldingathome/FAHClient: /opt/foldingathome/libssl.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: symbol lookup error: /opt/foldingathome/libssl.so.10: undefined symbol: krb5_rc_initialize
esi@esi-pc ~ $

emerge を併用してみました

そこで、emerge で dev-libs/openssl-compat や sci-biology/foldingathome を入れました……が、その後も同じエラーに遭遇。うーむ。

参考文献

https://wiki.sabayon.org/index.php?title=HOWTO:_Safely_mix_Entropy_and_Portage
https://wiki.gentoo.org/wiki/Knowledge_Base:Autounmask-write
https://wiki.gentoo.org/wiki/Eix
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base/ja#任意自由選択:_ミラーサーバーを選択する

equo と emerge の併用準備

emergeの併用準備
su -
export LANG=en_US.UTF-8
eselect profile list
eselect profile set default/linux/amd64/17.1/desktop
cd /etc/portage/package.env/
ln --symbolic --force ../package.env.amd64 ./package.env.amd64 # シンボリックリンクが壊れている場合はこれで修正
cd
equo rescue spmsync --ask
nano --nowrap /etc/entropy/client.conf # ※1
equo install dev-vcs/git --ask
equo install app-portage/layman --ask
layman --list
layman --add sabayon
layman --add sabayon-distro
equo install app-portage/eix --ask
wget https://gist.githubusercontent.com/rdnetto/522839021a240650c20d/raw/41bdbac11fc31bf97b6aa27873f6fb0616e8cbc6/sync-entropy-files.sh --output-document=/var/lib/entropy/sync-entropy-files.sh
chmod +x /var/lib/entropy/sync-entropy-files.sh
for d in package.accept_keywords package.keywords package.mask package.use; do test -d /etc/portage/$d || mkdir /etc/portage/$d; done
for d in $(find /etc/portage/package.* -maxdepth 0 -type d); do touch $d/zzz_autounmask; done
# equo install app-portage/mirrorselect --ask # Portage で日本のミラーを指定したい場合
# mirrorselect --interactive --output >> /etc/portage/make.conf # mirror の設定を追記
emerge-webrsync
layman --sync-all
nano --nowrap /etc/eix-sync.conf # ※2
eix-sync
equo conf update
※1 “ignore-spm-downgrades”の記述を“disable”から“enable”に書き換えアンコメント
ignore-spm-downgrades = enable
※2 以下を記述
*
! /var/lib/entropy/sync-entropy-files.sh

emerge で dev-libs/openssl-compat と sci-biology/foldingathome を導入

ソフトウェアの導入
equo install dev-libs/openssl-compat --ask
equo install sci-biology/foldingathome --ask
equo install dev-util/patchelf --ask
emerge dev-libs/openssl-compat --ask
emerge sci-biology/foldingathome --ask

ダメでした(2020年3月26日現在)

esi@esi-pc ~ $ /opt/foldingathome/FAHClient
/opt/foldingathome/FAHClient: /opt/foldingathome/libssl.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: /opt/foldingathome/libcrypto.so.10: no version information available (required by /opt/foldingathome/FAHClient)
/opt/foldingathome/FAHClient: symbol lookup error: /opt/foldingathome/libssl.so.10: undefined symbol: krb5_rc_initialize
esi@esi-pc ~ $ 

Rosetta@home

http://boinc.bakerlab.org/rosetta/
https://ja.wikipedia.org/wiki/Rosetta@home

Rosetta@home(ロゼッタ・アット・ホーム)とはワシントン大学のデイビット・ベイカー(英語版)教授の研究室が運営する分散コンピューティングのプロジェクトのひとつである。

たんぱく質の構造などを解析し、将来的にはエイズや癌やアルツハイマー型認知症、マラリアなどの様々な病気を研究する研究者を助けることが目的である。

インストール

boincのインストール
su -
export LANG=en_US.UTF-8
equo install sci-misc/boinc --ask
systemctl enable boinc-client # システム始動時に自動起動させる
systemctl start boinc-client # boinc-client を開始する
systemctl status boinc-client # boinc-client の状態を表示する
reboot # システムを再起動

起動と Rosetta@home への参加

起動

boincの起動
$ boincmgr

Rosetta@home への参加の流れ

VirtualBox_Sabayon_27_03_2020_08_53_47 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_54_37 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_55_35 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_56_48 - コピー.png
VirtualBox_Sabayon_27_03_2020_08_58_44 - コピー.png
VirtualBox_Sabayon_27_03_2020_09_34_52 - コピー.png

参考文献

https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185189
https://forum.sabayon.org/viewtopic.php?f=94&t=35718#p185323
https://www.boincitaly.org/forum/biologia-e-medicina/1793-thread-ufficiale-rosetta-home.html?start=2080#132968

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

WSL Ubuntu18.04にDockerをインストールする

【概要】

WSL Ubuntu18.04 ltsにDockerをインストールする。

【環境・バージョン】

・OS: WSL Ubuntu18.04
・Arch: amd64
・Docker version: 19.03.8

【導入手順】

① aptのパッケージリストをアップデートする

$ sudo apt-get update

② パッケージをインストールする

$ sudo apt-get install -y \
  > apt-transport-https \
  > ca-certificates \
  > software-properties-common

③ DockerのGPGキーを追加する

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

OK

入力が正しくできていればOKと表示されます。

④ リポジトリを追加する

$ sudo add-apt-repository \
  > "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  > $(lsb_release -cs) \
  > "stable"

※[arch=amd64]のamd64の部分は使用しているLinuxのアーキテクチャによって変わります。archコマンドでアーキテクチャを確認可

リポジトリが追加できたらaptのアップデートも行います。

$ sudo apt-get update

これでDockerをインストールする準備が整いました。

⑤ Dockerをインストールする

$ sudo apt-get install docker-ce

インストールができたら以下のコマンドでDockerのバージョンを確認します。

$ docker version

すると…

Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        afacb8b7f0
 Built:             Wed Mar 11 01:25:46 2020
 OS/Arch:           linux/amd64
 Experimental:      false
 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

無事インストールできています。ただし下の2行のエラーメッセージを見る限りDockerがまだ起動していないようです。この問題は別のエントリで解決します。

【参考資料】

プログラマのためのDocker教科書第二2版

https://qiita.com/soumi/items/5b01d88c187b678c0474

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LAMP環境を超短手数で構築する

Javaのインストール

ここからダウンロード
解凍します
環境変数作成
名前:JAVA_HOME 値:解凍してできたフォルダのパス
環境変数修正
名前:PATH 値:解凍してできたフォルダ内のbinフォルダを追記
インストール完了

Vagrantのインストール

ここからダウンロード
インストーラーを実行する
インストール完了
WindowsでVirtualBoxを使用する場合、仮想化支援機能(VT-x/AMD-V)をBIOSから有効にする。Hyper-Vを無効化する

ツールのダウンロード

ここからダウンロード
解凍します

仮想環境とのファイル共有設定

解凍したツールの中は下記になっています

|-- run_sample-master
|   |-- docs
|   |-- fairysupport_run
|   |-- synced_folder
|   `-- vagrant

vbguestプラグインのインストール
vagrantフォルダ内のvagrant_plugin_vbguest.batをダブルクリック
完了

Vagrant起動

vagrantフォルダ内のvagrant_up.batをダブルクリック

起動完了

LAMP環境構築

fairysupport_runフォルダ内のrun_quick_lamp.batをダブルクリック

構築完了

ファイル共有確認

ツールを解凍してできたフォルダ内のsynced_folder\vm1内を見ると仮想環境内の/var/www/htmlディレクトリのファイルが入っているのが確認できます

ssh接続

構築したLAMP環境にPuTTYで接続してみます
puttygenを起動
a.png
Conversions→Import keyをクリック
run_sample-master\vagrant\.vagrant\machines\vm1\virtualbox\private_key
を選択
b.png
Save private keyをクリック
private_key.ppkという名前で保存
c.png

PuTTY起動
e.png

認証→参照をクリック
先ほどputtygenで作成したprivate_key.ppkを選択
f.png

セッションをクリック
ホスト名:127.0.0.1
ポート:2230
セッション名:127.0.0.1:2230
を入力して
保存をクリック
g.png
開くをクリックして接続する
h.png
vagrantユーザーでログイン
i.png

PHPインストール確認

php -v
と入力
j.png

MySQLインストール確認

mysql -uroot -ppass@123word
と入力
k.png

Apacheインストール確認

http://localhost:8080/index.php
にブラウザからアクセス
正しく表示されることを確認する

使ったツール

LAMP環境構築は以上で完了です
今回fairysupport runというツールを使って構築しました
このツールは複数のサーバに対して同じシェルを実行できるツールです(1サーバだけに対して使用してもかまわない)
使用したツールのサンプルはLAMP環境を2つつくるサンプルです
したがってVirtualBoxマネージャーを見るとvmが2つ起動しています
今回の作業でLAMP環境が2つできました
ローカルで1つあればいいという場合、
(1)ツールを解凍してできたフォルダ内のvagrant\Vagrantfileファイルを修正
  config.vm.define :vm2 do |server|からendまでをコメントにする
(2)ツールを解凍してできたフォルダ内のfairysupport_run\server.properties.localファイルを修正
  server2ではじまる箇所をコメントにする
(1)(2)を行うと1サーバに対してのみLAMP構築になります

また、ツールを解凍してできたフォルダ内のfairysupport_run\server.properties.localファイルの内容を修正すれば、どのサーバに対しても今回と同じLAMP環境を構築できます

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む