#author("2025-05-20T16:30:45+00:00","default:sysosa","sysosa") #author("2025-06-14T09:57:44+00:00","default:sysosa","sysosa") RockyLinux9.1がリリースされた(NOVEMBER 26, 2022) [[kernel]] 無線LAN[[wifi]] ***packagekitを停止 [#uc19a1d5] GUIでログインしていると「このパッケージがupdate可能です」とか言ってくる. うれしい通知だがdnf操作をする際の障害だったり、そもそもupdateなんてしないから出てくるなってこともある. っで停止させる #code(nonumber){{ systemctl stop packagekit systemctl mask packagekit }} で停止できる. そもそもこれが動いていると100% cpuとかにもなって微妙. 計算機ノードとして運用ならGUIログインもないかなと思うのだが、処置した方がいいのかと. ***カーネルを選ぶ [#ka96a31e] #code(nonumber){{ [root@rockylinux9 ~]# grubby --info=ALL [root@rockylinux9 ~]# grubby --set-default-index=1 [root@rockylinux9 ~]# grubby --default-kernel [root@rockylinux9 ~]# reboot }} ***SELinuxを外す [#c429746c] 外さなくてもいいと思うが、どうしても外したい場合は カーネルパラメータ で指定します. 「/etc/selinux/config」は弄らない. #code(nonumber){{ [root@rockylinux9 ~]# grubby --update-kernel ALL --args selinux=0 [root@rockylinux9 ~]# grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg <--- UEFIなら [root@rockylinux9 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg <-- BIOSなら [root@rockylinux9 ~]# reboot }} 「/etc/defaults/grub」を修正してgrub2-mkconfigで更新してましたが、grubbyがいいかも ***IPv6を使わない [#neaa0dd0] あまり意味はないけど #code(nonumber){{ [root@rockylinux9 ~]# grubby --update-kernel ALL --args ipv6.disable=1 [root@rockylinux9 ~]# grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg <--- UEFIなら [root@rockylinux9 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg <-- BIOSなら [root@rockylinux9 ~]# reboot }} ***eth0,eth1の名称を使いたい [#sb6708c0] udevのルールを弄る. もしくは簡単には「/etc/systemd/network/」を掘ってそこに拡張子linkのファイルを置く. 中身はこんな感じ #code(nonumber){{ [root@rockylinux9 ~]# cat /etc/systemd/network/10-eth0-internal.link [Match] MACAddress=bc:24:11:4c:c9:16 [Link] Name=eth0 [root@rockylinux9 ~]# }} eth1も用意するなら「/etc/systemd/network/11-eth1-internal.link」とかで同じようにファイルを作る. 再起動で反映されますが、今までのデバイス名とは違うので ip が定義されるように再調整が必要です ***devtoolset [#uac1e238] rockylinux9のデフォGCCは11.5。これをdevtoolsetでより上のversionに上げれます #code(nonumber){{ dnf install gcc-toolset-14 source scl_source enable gcc-toolset-14 }} ***nvidia driverのインストール [#cd11a4d3] &color(red){みかんせい}; 開発環境が入っていて、今動いているkernelのkernel-develが入っている事. 簡単には下記を実施 #code(nonumber){{ dnf groupinstall "Development Tools" dnf install kernel-devel dnf update reboot }} これで最低限の準備は出来るかなと. っでまずはnouveauを外す #code(nonumber){{ [root@rockylinux9 ~]# grubby --update-kernel ALL --args "nouveau.modeset=0 modprobe.blacklist=nouveau" [root@rockylinux9 ~]# grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg <--- UEFIなら [root@rockylinux9 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg <-- BIOSなら [root@rockylinux9 ~]# reboot }} 次に nvidia-driver を入れる. 1. [[https://www.nvidia.com/ja-jp/drivers/>+https://www.nvidia.com/ja-jp/drivers/]]から使っているGPUカードのドライバーを入手するか 2. nvidia driverのリポジトリを入れてインストール の2つの方法でしょうか 1.はnvidiaからドライバーを入手して #code(nonumber){{ [root@rockylinux9 ~]# bash /Public/cuda/NVIDIA-Linux-x86_64-570.144.run -Z }} 後は再起動で完了 2.は、[[https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html#red-hat-enterprise-linux>+https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html#red-hat-enterprise-linux]] に従って環境整備します 「kernel-devel-matched」と「kernel-headers」が必要そうで、目下の状態を確認します #code(nonumber){{ [root@rockylinux9 ~]# dnf list installed |grep kernel kernel.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-core.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-devel.x86_64 5.14.0-503.14.1.el9_5 @AppStream kernel-headers.x86_64 5.14.0-503.14.1.el9_5 @AppStream kernel-modules.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-modules-core.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-srpm-macros.noarch 1.0-13.el9 @AppStream kernel-tools.x86_64 5.14.0-503.14.1.el9_5 @anaconda kernel-tools-libs.x86_64 5.14.0-503.14.1.el9_5 @anaconda [root@rockylinux9 ~]# }} っと「kernel-headers」はありますが、「kernel-devel-matched」がない。ここで「dnf install kernel-devel-matched」としてしまうと最新版がインストールされてしまうので現状の「uname -r」に合った「kernel-devel-matched」を 「https://dl.rockylinux.org/vault/rocky」から取得して入れます #code(nonumber){{ [root@rockylinux9 ~]# dnf install https://dl.rockylinux.org/vault/rocky/9.5/AppStream/x86_64/os/Packages/k/kernel-devel-matched-5.14.0-503.14.1.el9_5.x86_64.rpm [root@rockylinux9 ~]# dnf list installed |grep kernel : kernel-devel.x86_64 5.14.0-503.14.1.el9_5 @AppStream kernel-devel-matched.x86_64 5.14.0-503.14.1.el9_5 @@commandline kernel-headers.x86_64 5.14.0-503.14.1.el9_5 @AppStream : [root@rockylinux9 ~]# }} と揃えました. 次にepelとnvidiaのリポジトリを登録します。 [root@rockylinux9 ~]# dnf install epel-release [root@rockylinux9 ~]# dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo [root@rockylinux9 ~]# cat /etc/yum.repos.d/cuda-rhel9.repo [cuda-rhel9-x86_64] name=cuda-rhel9-x86_64 baseurl=https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64 enabled=1 gpgcheck=1 gpgkey=https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/D42D0685.pub [root@rockylinux9 ~]# }} [cuda-rhel9-x86_64]リポジトリの中身は「dnf list available --disablerepo=* --enablerepo=cuda-rhel9-x86_64」で確認できます. &size(10){cuda-11-7からcuda-12-9のcudaライブラリが入れられそう}; #code(nonumber){{ [root@rockylinux9 ~]# dnf module list }} にてインストール可能なドライバーが表示されます。openと書かれているのはオープンソース版、無印がプロプライエタリー版. &size(10){確証はないけどdkms版はオープンソース版かなと. コンパイルできるので}; っでここでは オープンソース版 を入れてみます #code(nonumber){{ [root@rockylinux9 ~]# dnf install nvidia-driver-cuda <-- nvidia謹製のopenglが入らないです. GPU計算のみしたいならこちら [root@rockylinux9 ~]# dnf module install nvidia-driver:latest-dkms <-- nvidia謹製のopenglが入ります. 繋がったモニターの描画が早くなるかも }} dnf module install nvidia-driver:latest-dkms ***CUDA 11.4のインストール [#ddb26356] CUDA-11.4はRHEL8系まで対応で、RHEL9系に対応するCUDAは 11.7.1 からリリースされている. なので未対応ながら CUDA-11.4 を適用するしかない. rpmではなく「cuda_11.4.4_470.82.01_linux.run」にて実施 あと #code(nonumber){{ [root@s ~]# vi /etc/profile.d/cuda.sh export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH [root@s ~]# vi /etc/profile.d/cuda.csh setenv PATH /usr/local/cuda/bin:${PATH} setenv LD_LIBRARY_PATH /usr/local/cuda/lib64:${LD_LIBRARY_PATH} [root@s ~]# }} ***OSインストール直後にrootでリモートアクセスができない [#d1512e7d] 従来型に戻すにはPermitRootLoginを「yes」にしてsshdを再起動 #code(nonumber){{ 40c40 < #PermitRootLogin prohibit-password --- > PermitRootLogin yes }} ***OSインストール時のパーティションと追加パッケージなど [#tc992c51] 各領域は下記のようにしていて、swapは目的により819MB(8GB)とかにしている. それ以上必要な場合はファイルを拵えてswaponしてます -/boot/efi (64MB) -/boot (2048MB) -swap (2048MB) -/(root)残り全て ほぼほぼ最小構成でOSを作って、必要なものを追加インストールしている 追加物 #code(nonumber){{ dnf install pciutuls nfs-utils epel-release yum-utils dnf groupinstall "Development Tools" dnf install dkms }} ***cryo-EM関係 [#uc02c1e0] relion #code(nonumber){{ dnf groupinstall "Development Tools" dnf install cmake openmpi-devel libX11-devel fftw-devel libtiff-devel texlive-latex-bin texlive-cm texlive-dvips ghostscript evince python3-tkinter dnf --enablerepo=devel install fltk-fluid mkdir -p /apps/src && cd /apps/src git clone https://github.com/3dem/relion cd relion git checkout ver4.0 && mkdir v40 && cd v40 module load mpi/openmpi-x86_64 cmake .. -DCMAKE_INSTALL_PREFIX=/apps/relion-4.0.0 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.4 -DCUDA_ARCH=35 make && make install }} っがエラー. CUDAのライブラリとGCCが合わない模様. RockyLinux9のGCCは11.3.1、CUDA11.4の許容GCCは11まで. ***php [#odcdd32b] httpdとの連携は php-fpm で行います. &size(10){従来のmod_phpが未サポートへ}; ***nic [#o1ba890a] REHL7まではethXと割り振られていたが以降は別名称になっている. #code(nonumber){{ [root@gate ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:c7 brd ff:ff:ff:ff:ff:ff altname enp11s0 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:d1 brd ff:ff:ff:ff:ff:ff altname enp19s0 [root@gate ~]# }} どうしてもってなら「/etc/default/grub」の「GRUB_CMDLINE_LINUX」に「net.ifnames=0 biosdevname=0」を追記ってあるが、まぁこれは非推奨 #code(nonumber){{ [root@gate ~]# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true [root@gate ~]# grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg [root@gate ~]# reboot [root@gate ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:c7 brd ff:ff:ff:ff:ff:ff altname enp11s0 altname ens192 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:d1 brd ff:ff:ff:ff:ff:ff altname enp19s0 altname ens224 [root@gate ~]# }} っで非推奨な方法を使わずにethXを作ってみる. &size(10){参照先:[[https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#configuring-user-defined-network-interface-names-by-using-udev-rules_consistent-network-interface-device-naming>+https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#configuring-user-defined-network-interface-names-by-using-udev-rules_consistent-network-interface-device-naming]]}; #code(nonumber){{ [root@gate ~]# cat /sys/class/net/ens192/type 1 [root@gate ~]# cat /sys/class/net/ens224/type 1 [root@gate ~]# vi /etc/udev/rules.d/70-persistent-net.rules SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:0c:29:70:ef:c7",ATTR{type}=="1",NAME="eth0" SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:0c:29:70:ef:d1",ATTR{type}=="1",NAME="eth1" [root@gate ~]# dracut -f [root@gate ~]# reboot [root@gate ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:c7 brd ff:ff:ff:ff:ff:ff altname enp11s0 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:d1 brd ff:ff:ff:ff:ff:ff altname enp19s0 [root@gate ~]# }} っな感じでethXが使えます. これはMACアドレスでeth0とeth1を定義してますので別のnicカードを追加しても不変かな. そもそもnic名称がens(pciのスロットインデックス由来)やenp(ハードウエアのコネクタの物理的な場所由来)、eno(オンボードでのインデックス番号由来)によらず macアドレスベースの名称も適用できるようで &size(10){参照先:[[https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#network-interface-naming-policies_consistent-network-interface-device-naming>+https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/configuring_and_managing_networking/index#network-interface-naming-policies_consistent-network-interface-device-naming]]}; #code(nonumber){{ [root@gate ~]# vi /usr/lib/systemd/network/99-default.link NamePolicy=keep kernel database onboard slot path ↓ NamePolicy=mac [root@gate ~]# reboot [root@gate ~]# ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enx000c2970efc7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:c7 brd ff:ff:ff:ff:ff:ff altname enp11s0 altname ens192 3: enx000c2970efd1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:70:ef:d1 brd ff:ff:ff:ff:ff:ff altname enp19s0 altname ens224 [root@gate ~]# }} とnicの名称が mac ベースとなる.