Rstudio server上でRを使う時に追加しておいた方がいいRHELパッケージのメモ


Rstudio serverをRHEL9上で動かす際にR側でいろいろパッケージを追加する際に必要となるパッケージがあったので、そのメモ

まずは基本

「dnf groupinstall “開発ツール”」で開発ツールをインストール

tidyverseに必要だったもの

install.packages(“tidyverse”) でtidyverseを追加しようとしたら前提となるraggのインストールがfontconfigコマンドが無いことで失敗

→ fontconfig-devel

次のエラーがfribidi was not found in the pkg-config search path

→ fribidi-devel
→ libtiff-devel
→ libjpeg-turbo-devel

Rstudioからpythonを使う際に必要だったもの

Rstudio serverでpythonスクリプトを使う際に、追加パッケージを要求されるが、それが必要としているもの

→ libxml2-devel
→ libcurl-devel
→ libpng-devel

ONTAPのCIFSファイルサーバで複数のホスト名でアクセスできるようにしたい


ONTAPでCIFSファイルサーバを作る時、本来のホスト名とは違うホスト名でもアクセスできるようにしておきたい、ということがある。

(サーバ統合で2台が1台になるけど、どちらでも使える様にした、など)

NetAppの標準設定では、SVMをActive Directoryに参加させる際に指定したNetBIOS名とIPアドレスでのアクセス以外は受け付けないようになっている。

例えば、下記の様に「システムエラー 59」「予期しないネットワーク エラーが発生しました。」といったエラーが出力される。

C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。

'winserver' のユーザー名を入力してください: ADOSAKANA\testuser1
winserver のパスワードを入力してください:
システム エラー 59 が発生しました。

予期しないネットワーク エラーが発生しました。


C:\Users\Administrator>

SVMの設定を確認すると下記の様になっている。

netapp9101::> vserver cifs show -ins
                                          Vserver: svm0
                         CIFS Server NetBIOS Name: SVM0
                    NetBIOS Domain/Workgroup Name: ADOSAKANA
                      Fully Qualified Domain Name: ADOSAKANA.LOCAL
                              Organizational Unit: CN=Computers
Default Site Used by LIFs Without Site Membership:
                                   Workgroup Name: -
                             Authentication Style: domain
                CIFS Server Administrative Status: up
                          CIFS Server Description:
                          List of NetBIOS Aliases: -
 netapp9101::>

上記の場合、「svm0」とIPアドレス指定でのアクセス以外は受け付けない。

他のホスト名でもアクセスできるようにするにはNetBIOS Aliasを追加する必要がある。

(なお、別途、標準では無効となっているNetBIOSを有効にする必要がある。ただし、これを有効にした場合、NetApp SVM名と同じNetBIOS名の告知も始めてしまうので注意)

netapp9101::> vserver cifs add-netbios-aliases -netbios-aliases WINSERVER -vserver svm0
netapp9101::> vserver cifs show -ins
                                          Vserver: svm0
                         CIFS Server NetBIOS Name: SVM0
                    NetBIOS Domain/Workgroup Name: ADOSAKANA
                      Fully Qualified Domain Name: ADOSAKANA.LOCAL
                              Organizational Unit: CN=Computers
Default Site Used by LIFs Without Site Membership:
                                   Workgroup Name: -
                             Authentication Style: domain
                CIFS Server Administrative Status: up
                          CIFS Server Description:
                          List of NetBIOS Aliases: WINSERVER
 netapp9101::>

さて、これでアクセスできるようになったかな?と試してみるが、同じエラーが継続

C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。

'winserver' のユーザー名を入力してください: ADOSAKANA\testuser1
winserver のパスワードを入力してください:
システム エラー 59 が発生しました。

予期しないネットワーク エラーが発生しました。


C:\Users\Administrator>

NetApp KB:Access by NETBIOS Alias fails に該当する問題だった。

今回のADOSAKANAドメインには、既に「WINSERVER」としてコンピュータアカウントがあった。

これが残っていると問題が発生するらしい。

まず、Windows上からコンピュータアカウントWINSERVERに関する情報をsetspn -lコマンドで確認すると下記の様な内容で登録されていた。

C:\Users\Administrator>setspn -l winserver
次の項目に登録されている CN=WINSERVER,CN=Computers,DC=ADOSAKANA,DC=LOCAL:
        HOST/winserver.adosakana.local
        RestrictedKrbHost/winserver.adosakana.local
        HOST/WINSERVER
        RestrictedKrbHost/WINSERVER
        WSMAN/winserver.adosakana.local
        WSMAN/WINSERVER
        TERMSRV/winserver.adosakana.local
        TERMSRV/WINSERVER

C:\Users\Administrator>

次に、NetApp SVMとして登録されているsvm0について確認してみると、だいぶ少ない内容で登録されていた。

C:\Users\Administrator>setspn -l svm0
次の項目に登録されている CN=SVM0,CN=Computers,DC=ADOSAKANA,DC=LOCAL:
        HOST/SVM0
        HOST/svm0.adosakana.local

C:\Users\Administrator>

まず、WindowsのActive Directgory側でコンピュータアカウント「WINSERVER」を削除。

続いてNetApp KBにあるようにsetspn -aコマンドでWINSERVERをsvm0に追加する形で登録

C:\Users\Administrator>setspn -a HOST/WINSERVER svm0
ドメイン DC=ADOSAKANA,DC=local を確認しています

CN=SVM0,CN=Computers,DC=ADOSAKANA,DC=LOCAL の ServicePrincipalNames を登録しています
        HOST/WINSERVER
更新されたオブジェクト

C:\Users\Administrator>

どのような登録になったのかを確認してみると、svm0の出力にwinserverが追加されており、winserverというエントリは無くなったことが分かる。

C:\Users\Administrator>setspn -l svm0
次の項目に登録されている CN=SVM0,CN=Computers,DC=adosakana,DC=local:
        HOST/SVM0
        HOST/svm0.adosakana.local
        HOST/WINSERVER

C:\Users\Administrator>setspn -l winserver
FindDomainForAccount: DsGetDcNameWithAccountW への呼び出しが失敗し、戻り値 0x00000525 が返されました
アカウント winserver は見つかりませんでした

C:\Users\Administrator>

この状態で先ほどエラーになったnet useコマンドを実行すると、正常に実行ができる。

C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。

'winserver' のユーザー名を入力してください: adosakana\testuser1
winserver のパスワードを入力してください:
コマンドは正常に終了しました。


C:\Users\Administrator>

WiFi/Bluetooth搭載のOrange Pi 5Bが登場する?


Orange Pi 公式のビルドスクリプト の最近の更新に「Update for Orange Pi 5 v1.1.2 and support Orange Pi 5B」というのがあった

内容を確認すると

options+=("orangepi5"                 "Rockchip  RK3588S octa core 4-16GB RAM GBE USB3 USB-C NvME")
#options+=("orangepi5b"                 "Rockchip  RK3588S octa core 4-16GB RAM GBE USB3 USB-C WiFi/BT")

とある。

M.2スロットが削除され、WiFi/Bluetoothが搭載されている、ということになっている。

最初の発表の時に出てたスペックがOrange Pi 5Bとして登場してくるようだ

価格がどれくらいの違いがでるのかちょっと気になりますね

Orange Pi 5でChromium OS(openFyde) R102を動かす


2023/05/09追記: このページの記述はR102時代のものです。現状はR108のページを参照のこと


Orange Pi 5のCPUパワーがあればChrome OSが動くんじゃないかと検索してみると、Chromium OSベースのFydeOSのオープンソース版openFydeOrange Pi 5向け移植があるのを発見した。

なんと5日前に最初のコードが公開されて、3日前にイメージファイルが公開されたばかりというもの。

ChromiumOSはディスクI/Oが多いのでmicroSD起動ではなく、M.2 NVMe SSDかM.2 SATA SSDで使うことを推奨されている。

とりあえず、M.2 SATA SSDに書き込んで見ます。

orangepi@orangepi5:~$ ls
Desktop    Downloads  Orangepi5_1.1.0_ubuntu_jammy_desktop_xfce_linux5.10.110.img  Pictures  Templates
Documents  Music      orangepi5-openfyde-r102.img                                  Public    Videos
orangepi@orangepi5:~$ sudo dd if=orangepi5-openfyde-r102.img of=/dev/sda bs=4M conv=fdatasync status=progress
6933184512 bytes (6.9 GB, 6.5 GiB) copied, 16 s, 433 MB/s
1766+1 records in
1766+1 records out
7407221248 bytes (7.4 GB, 6.9 GiB) copied, 19.8569 s, 373 MB/s
orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
GPT PMBR size mismatch (14467228 != 1000215215) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: Kingchuxing 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0A2133E6-2262-584F-8E41-66BED45870B0

Device       Start      End Sectors  Size Type
/dev/sda1  6078464 14467180 8388717    4G Linux filesystem
/dev/sda2    69632   135167   65536   32M ChromeOS kernel
/dev/sda3   499712  6078463 5578752  2.7G ChromeOS root fs
/dev/sda4   135168   200703   65536   32M ChromeOS kernel
/dev/sda5   495616   499711    4096    2M ChromeOS root fs
/dev/sda6    65600    65600       1  512B ChromeOS kernel
/dev/sda7    65601    65601       1  512B ChromeOS root fs
/dev/sda8   200704   233471   32768   16M Linux filesystem
/dev/sda9    65602    65602       1  512B ChromeOS reserved
/dev/sda10   65603    65603       1  512B ChromeOS reserved
/dev/sda11      64    65599   65536   32M unknown
/dev/sda12  364544   495615  131072   64M EFI System

Partition table entries are not in disk order.
orangepi@orangepi5:~$

ちなみにAndroidを書き込んだ場合は下記の様なパーテーション構成だったので、似た構成ではある、ってところですね。

orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: Kingchuxing 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1B040000-0000-4531-8000-2CDC00004E46

Device       Start        End   Sectors  Size Type
/dev/sda1     8192      16383      8192    4M unknown
/dev/sda2    16384      28671     12288    6M unknown
/dev/sda3    28672      36863      8192    4M unknown
/dev/sda4    36864      45055      8192    4M unknown
/dev/sda5    45056      53247      8192    4M unknown
/dev/sda6    53248      55295      2048    1M unknown
/dev/sda7    55296     137215     81920   40M unknown
/dev/sda8   137216     333823    196608   96M unknown
/dev/sda9   333824    1120255    786432  384M unknown
/dev/sda10 1120256    1906687    786432  384M unknown
/dev/sda11 1906688    1939455     32768   16M unknown
/dev/sda12 1939456    1941503      2048    1M unknown
/dev/sda13 1941504    8314879   6373376    3G unknown
/dev/sda14 8314880 1000215151 991900272  473G unknown
orangepi@orangepi5:~$

つづいて、今回はM.2 SATA SSDなので、ssd-sataドライバを読み込ませる設定をします。

ただ、/dev/sda1をマウントして stateful_partition/unencrypted に Env.txt を作る、とあるのにディレクトリがない?

orangepi@orangepi5:~$ sudo mount /dev/sda1 /mnt
orangepi@orangepi5:~$ ls /mnt
dev_image  lost+found  unencrypted  var_overlay  vmlinuz_hd.vblock
orangepi@orangepi5:~$ ls /mnt/unencrypted/
import_extensions
orangepi@orangepi5:~$ ls /mnt/stateful_partition/unencrypted
ls: cannot access '/mnt/stateful_partition/unencrypted': No such file or directory
orangepi@orangepi5:~$

とりあえず書いてあるコマンドを実行してみる

orangepi@orangepi5:~$ echo overlays=ssd-sata | sudo tee /mnt/stateful_partition/unencrypted/Env.txt
tee: /mnt/stateful_partition/unencrypted/Env.txt: No such file or directory
overlays=ssd-sata
orangepi@orangepi5:~$ cat /mnt/stateful_partition/unencrypted/Env.txt
cat: /mnt/stateful_partition/unencrypted/Env.txt: No such file or directory
orangepi@orangepi5:~$

まあ、エラーになりますね

stateful_partitionは不要なのかな?と削った /mnt/unencrypted/Env.txt でファイルを作ってみた。

orangepi@orangepi5:~$ echo overlays=ssd-sata | sudo tee /mnt/unencrypted/Env.txt
overlays=ssd-sata
orangepi@orangepi5:~$ cat /mnt/unencrypted/Env.txt
overlays=ssd-sata
orangepi@orangepi5:~$

また、再起動前にmtdblock0にSATA用イメージを書き込みます。

orangepi@orangepi5:~$ sudo dd if=/usr/share/orangepi5/rkspi_loader_sata.img of=/dev/mtdblock0 status=progress
13894144 bytes (14 MB, 13 MiB) copied, 1 s, 13.9 MB/s
32768+0 records in
32768+0 records out
16777216 bytes (17 MB, 16 MiB) copied, 246.949 s, 67.9 kB/s
orangepi@orangepi5:~$

で、Linuxをshutdown してから、microSDを抜き、電源を入れると、openFydeが起動しました。

Fyde OSのオリジナルアカウントかGoogleアカウントでログインすることができます。

Googleアカウントでログインする場合は、普通のChrome OSと同じようにセットアップしていきます。

セットアップが終わるとまあ、普通のChromeOSです

Linux環境も使えます。

ブラウザでWebアクアリウムを動かしてみると10000匹でfps:38となかなかいい感じで動いている。この値はUbuntuでGPU有効で動かした場合より良いものになっている。

また、youtube再生した場合の動作も、openFydeで動かした方がよい感じになっている。

音声再生もきちんと動いている。

ブラウザで日本語入力を試みたところ、日本語入力モードへの切り替えはできたのですが、変換機能がうまく動いていないようで…

いや、ブラウザのURL入力欄では日本語入力ができないだけでした。

FydeOS App Storeを開くと「Android apps」という項目があるのですが、どういうチョイスかよくわからないものがインストールできるようです。

Orange Pi 5でAndroid/Linux共にM.2 SATA SSDから起動できるようになった


Orange Pi 5の中国語DownloadページのAndroid镜像リンクをたどってみたところ、SPIFlash-SATA SSDというディレクトリが・・・

え?と思って、ダウンロードしてRKDevToolを使って書き込みを試して見るも「Switch into SATA storage Fail, did not support to switch in」というエラーで成功しない。

改めて中国ページの官方工具にあるマニュアルを確認してみると「OrangePi_5_RK3588S_用户手册_v0.7.pdf」と英語ページにあるマニュアルよりだいぶバージョンが上がっている。

ただ、M.2 SATA SSDからAndroidを起動する場合の書き込み手順について違う点はなく、原因は不明・・・

(注:最終的にはLinux側でSPIFlashを書き換えるとAndroidの書き込みが成功するようになりました。)

LinuxをM.2 SATA SSDから起動

その他にないかマニュアルを読み直すとM.2 SATA SSDからLinuxを起動する手順が掲載されているので、そちらを試行してみた。

マニュアル上の重要なポイントは以下

実際にやってみる。

まずSPIFlashの書き換えに使うファイルを確認

orangepi@orangepi5:~$ ls -ld /usr/share/orangepi*
drwxr-xr-x 2 root root 4096 Dec 22 19:36 /usr/share/orangepi
drwxrwxr-x 2 root root 4096 Dec 12 17:58 /usr/share/orangepi5
orangepi@orangepi5:~$ ls -l /usr/share/orangepi
total 4
-rw-r--r-- 1 root root 3269 Dec 22 19:34 boot.cmd
orangepi@orangepi5:~$ ls -l /usr/share/orangepi5/
total 16384
-rw-rw-r-- 1 root root 16777216 Dec 12 17:58 rkspi_loader_sata.img
orangepi@orangepi5:~$

SPIFlashを書き換えます。

orangepi@orangepi5:~$ sudo dd if=/usr/share/orangepi5/rkspi_loader_sata.img of=/dev/mtdblock0
[sudo] password for orangepi:
32768+0 records in
32768+0 records out
16777216 bytes (17 MB, 16 MiB) copied, 244.953 s, 68.5 kB/s
orangepi@orangepi5:~$

現状のM.2 SATA SSD上のブートローダ、パーテーションをddでzeroを書き込んで消します。

orangepi@orangepi5:~$ sudo dd bs=1M if=/dev/zero of=/dev/sda count=2000 status=progress
1754267648 bytes (1.8 GB, 1.6 GiB) copied, 2 s, 877 MB/s
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 5.5852 s, 375 MB/s
orangepi@orangepi5:~$
orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
orangepi@orangepi5:~$

次にmicroSD上にコピーしておいたLinuxイメージをM.2 SATA SSDに書き込みます。

orangepi@orangepi5:~$ sudo dd if=Orangepi5_1.0.8_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/sda bs=1M status=progress
8129609728 bytes (8.1 GB, 7.6 GiB) copied, 119 s, 68.3 MB/s
7800+0 records in
7800+0 records out
8178892800 bytes (8.2 GB, 7.6 GiB) copied, 121.861 s, 67.1 MB/s
orangepi@orangepi5:~$

書き込み完了後のパーテーションはこのようになります

orangepi@orangepi5:~$ sudo sync
orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
GPT PMBR size mismatch (15974399 != 1000215215) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 58FCCC02-859A-5041-ADA7-14802AADF341

Device      Start      End  Sectors  Size Type
/dev/sda1   61440   585727   524288  256M Linux extended boot
/dev/sda2  585728 15974366 15388639  7.3G Linux filesystem
orangepi@orangepi5:~$

書き込んだM.2 SATA SSDの/dev/sda1 にあるorangepiEnv.txtを書き換えるためにマウントします。

orangepi@orangepi5:~$ sudo mount /dev/sda1 /mnt
orangepi@orangepi5:~$ df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       256M   95M  162M  37% /mnt
orangepi@orangepi5:~$ ls -l /mnt
total 96104
-rwxr-xr-x 1 root root   230456 Dec 22 19:39 boot.bmp
-rwxr-xr-x 1 root root     3269 Dec 22 19:34 boot.cmd
-rwxr-xr-x 1 root root     3341 Dec 22 19:51 boot.scr
-rwxr-xr-x 1 root root   215221 Dec 22 18:24 config-5.10.110-rockchip-rk3588
drwxr-xr-x 3 root root     4096 Dec 22 19:36 dtb
drwxr-xr-x 3 root root     4096 Dec 22 19:36 dtb-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root 33915392 Dec 22 18:24 Image
-rwxr-xr-x 1 root root 11119990 Dec 22 19:54 initrd.img-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root      154 Dec 22 19:51 orangepiEnv.txt
-rwxr-xr-x 1 root root     1542 Dec 22 19:48 orangepi_first_run.txt.template
-rwxr-xr-x 1 root root  7853912 Dec 22 18:24 System.map-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root 11120054 Dec 22 19:54 uInitrd
-rwxr-xr-x 1 root root 33915392 Dec 22 18:24 vmlinuz-5.10.110-rockchip-rk3588
orangepi@orangepi5:~$

orangepiEnv.txtの最後に「overlays=ssd-sata」を追加します。

orangepi@orangepi5:~$ sudo cp /mnt/orangepiEnv.txt /mnt/orangepiEnv.txt.org
orangepi@orangepi5:~$ sudo vi /mnt/orangepiEnv.txt
orangepi@orangepi5:~$ cat /mnt/orangepiEnv.txt
verbosity=1
bootlogo=true
overlay_prefix=rk3588
fdtfile=rockchip/rk3588s-orangepi-5.dtb
rootdev=UUID=5ead0754-b05b-4f29-8170-b0620e7ae6d2
rootfstype=ext4
overlays=ssd-sata
orangepi@orangepi5:~$

書き込んだらumount

orangepi@orangepi5:~$ sudo umount /mnt
orangepi@orangepi5:~$

このあと、microSDを抜いて、M.2 SATA SSDのみで電源を入れると、M.2 SATA SSDから起動しました。

orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 58FCCC02-859A-5041-ADA7-14802AADF341

Device      Start       End   Sectors   Size Type
/dev/sda1   61440    585727    524288   256M Linux extended boot
/dev/sda2  585728 990183423 989597696 471.9G Linux filesystem
orangepi@orangepi5:~$

Android再挑戦

Linux側でSPIFlashを書き換えたあとであれば成功するかな?と試してみたところ、これまで失敗していたところは問題無く終了し、書き込みが実行されるようになりました。

(microSDをさしっぱなしにしていると途中で失敗するので注意)

Androidの書き込み完了後は自動的に再起動されAndroidが起動します。

なお、起動したAndroidは、WiringOPアプリが追加されている以外はあまり違いがないような感じでした。


2023/01/12追記

新しいM.2 SATA SSDが届いたので、Androidイメージを書き込むべく、とりあえず「sudo dd if=/usr/share/orangepi5/rkspi_loader_sata.img of=/dev/mtdblock0」を行ったあとに、RKDevToolで書き込みを実施してみましたが、書き込みはfailしました。

「sudo dd if=Orangepi5_1.0.8_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/sda bs=1M status=progress」でLinuxイメージを書き込み、一度起動させたあとで、RKDevTool書き込みを試すと、成功しました。

(このとき、Linuxを書き込んだあとのorangepiEnv.txt 修正を忘れたので、Linux起動が途中で失敗してinitramfsで止まりましたが、電源強制オフのあと、Android書き込みには問題ありませんでした。)