2022年12月6日火曜日

Apple siliconのNI488.2ドライバが一向に開発される気配がないのでLinuxにもどろうか(事前調査)

 2022年12月時点で,NIがmacOSはx84_64しかサポートしていないので,intel mac を新品で買えない現状では研究室の維持が難しくなってしまう。


さらに,最近のmacOSではウインドウをアクティブにしておかないと,処理が遅くなるようなので,これも測定に悪影響を及ぼす恐れがある。

うっかり測定用プログラムが走っているウインドウ以外をクリックしてしまったりすると,測定プログラムがアイドル状態とみなされてしまうのだろう。


LinuxからmacOSに移った理由の一つが,VNCでのぞいたり場合によっては測定条件を変更したりしたいから。

RDPやmacの画面共有(これは所詮VNCだけど)と違って,サーバ側をLinuxにしてVNC接続すると,別のXが立ち上がるようになっている(複数人で使えるように)。

しかし,測定で使用する場合,今まさにディスプレイで表示しているものをそのまま表示して欲しいので,それではちょっと困る。


しかし!最近救世主のようなVNCサーバに出会えた。

X11VNCとかいうやつらしい。

VNC用のパスワードを発行して,現在デスクトップで表示されているものをそのまま共有できるらしい。

そこらへんにころがっているちょっと古いDOS/V機で十分いける!


そこで,ひさびさにLinux-GPIBのウェブサイトを覗いてみる。

すると,

The 4.x.x and later series kernels are also supported by the packages in the linux-gpib for 3.xx and 2.6.x kernels folder.
The latest stable release (linux-gpib-4.3.5) has been tested on linux version 5.19.0-rc7 from kernel.org 

と書いてある。

先日入れたxubuntu22.04のカーネルを調べるために,uname -rしてみると,5.15.0-56-genericとのこと。


条件的には大丈夫そう。

でもなるべくコンダラひきたくない。


これも続きは後日。








2022年11月30日水曜日

Linuxにmusrfitをインストール(令和版)part 1

 mac上のmusrfitに多少の不安があるので、今後のことも考えてlinuxでも実行できるようにしておくことにした。

 

まずはテストとして10年おちのCeleronマシンにインストール。

Scientific Linux7.9で動いているので、ここにインストールしようとしたのだが、cmakeやコンパイラのバージョンが古すぎてインストールできないという困難に直面。 

重いコンダラ引きたくないので、この際OSからインストールし直し、うまく動いたら新しいラップトップに入れ直すことにした。

 

ディストリビューションの選択は、centos系だとhdf4がインストールできないことはわかっていて、nexusやらでつまずくのが嫌なので、apt系。

すると自ずとLubuntuかXubuntu。

ねずみで癒やされたいのでなれているのでxubuntuに。

現在のバージョンは20.04.1。インストールUSBをwindows PCからunetbootinで作成。

対象のPC、BIOSでUSB drive起動の優先順位をあげて、差し込んで再起動。

インストールはあっというま。

再起動しゴニョゴニョしていると、22.04にアップグレードするかと聞かれる。

頭の片隅にコンダラがちらつくが、調子に乗ってアップグレード。


まずはPSIウェブサイトの指示にしたがいインストール。


$  apt-get install git cmake libboost-dev libboost-filesystem-dev libboost-system-dev libgsl-dev libfftw3-dev libxml2-dev qt5-default qtbase5-dev libqt5svg5-dev


ただし、qt5-defaultというパッケージはないと怒られる。

qtbase5などは問題なく入るので、もし名前が変わっているのならきっと必要パッケージとしてどこかで入るだろうと甘く見て次へ進む。

次が問題のhdf4と5。


$ apt-get install libhdf4-dev libhdf5-dev

 

 問題なくインストール。

つづいてnewxus

$ cd Downloads
$ mkdir nexus
$ cd nexus
$ git clone https://github.com/nexusformat/code.git
$ mkdir build
$ cd build
$ cmake -DENABLE_HDF5=1 -DENABLE_HDF4=1 -DENABLE_MXML=0 ../code
$ cmake --build ./ --clean-first
$ sudo make install

 

こちらも問題なくオッケー。

つづいてroot。

説明を見ると、$HOME$/Appsにインストールするようになったようだ。

まぁ、このご時世複数人でPCを共有することもなかろうと、指示通りに。

まずは必要パッケージのインストール。


$ apt-get install libx11-dev libxft-dev libxpm-dev libxext-dev

特に問題なし。

続いてroot。

途中の"git tag -l"によると、現時点でのバージョンはv6-26-10なので、それに合わせて。

 

$ cd $HOME
$ mkdir Apps
$ cd Apps
$ git clone http://github.com/root-project/root.git
$ cd root
$ git tag -l
$ git checkout -b v6-26-10 v6-26-10
$ mkdir root_build
$ cd root_build
$ cmake ../ -Dgminimal=ON -Dasimage=ON -Dmathmore=On -Dminuit2=ON -Dxml=ON -DCMAKE_INSTALL_PREFIX=../root_exec
$ cmake --build ./ --clean-first
$ make install

 

 Celeronのせいか、異常に時間がかかる。

ながくなったので続きは次回。

 

 


2022年10月26日水曜日

musrfitを久しぶりに使おうとしたら,変なエラーが出てしまった

スペクトルを表示しようとmusreditのボタンを押すと以下のような怪しいダイアログが出てしまう。 

musrviewで直に.msrファイルを開こうとしてもエラーが。

% musrview test-histo-ROOT-NPP.msr 

dyld: Library not loaded: /opt/local/lib/libgsl.25.dylib

  Referenced from: /Users/*****/Applications/root/root_exec/lib/libMathMore.so

  Reason: image not found

zsh: abort      musrview test-histo-ROOT-NPP.msr

libgslがないと怒られている。

しかし,実際はlibgslはmacportsでインストールされています。

 % sudo port installed gsl

Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.

The following ports are currently installed:

  gsl @2.6_0

  gsl @2.7_0

  gsl @2.7.1_0 (active)

なるほど,バージョン2.7がインストールされているのにバージョン2.5を呼び出しているのか。。。

古いバージョンをactivateしようにも,2.6以降しかインストールされていない。

実際,/opt/local/libに見に行ってみると,

 % ls -l libgsl*

-rwxr-xr-x  1 root  admin  2228224 12  2  2021 libgsl.27.dylib*

-rw-r--r--  1 root  admin  3939896 12  2  2021 libgsl.a

lrwxr-xr-x  1 root  admin       15 12  2  2021 libgsl.dylib@ -> libgsl.27.dylib

-rwxr-xr-x  1 root  admin   219792 12  2  2021 libgslcblas.0.dylib*

-rw-r--r--  1 root  admin   331056 12  2  2021 libgslcblas.a

lrwxr-xr-x  1 root  admin       19 12  2  2021 libgslcblas.dylib@ -> libgslcblas.0.dylib

(libgsl.dylib@っていうシンボリックリンクがいるのだから,libMathMore.soがそっちを参照しに行けばいいのに,25をよみにいっているところがアホ)

git pullしてrootをソースから作り直してもおなじメッセージが出る。

macportsで古いgslをインストールするのも手なのですが,ちょっと面倒なのでやっちゃいけないのは承知で以下のようにしてみました。

 % ls -l libgsl*                              

lrwxr-xr-x  1 root  wheel       15 10 26 16:06 libgsl.25.dylib@ -> libgsl.27.dylib

-rwxr-xr-x  1 root  admin  2228224 12  2  2021 libgsl.27.dylib*

-rw-r--r--  1 root  admin  3939896 12  2  2021 libgsl.a

lrwxr-xr-x  1 root  admin       15 12  2  2021 libgsl.dylib@ -> libgsl.27.dylib

-rwxr-xr-x  1 root  admin   219792 12  2  2021 libgslcblas.0.dylib*

-rw-r--r--  1 root  admin   331056 12  2  2021 libgslcblas.a

lrwxr-xr-x  1 root  admin       19 12  2  2021 libgslcblas.dylib@ -> libgslcblas.0.dylib

不具合が出るまでこれで行きます。

きちんとスペクトル表示されました。







2022年10月22日土曜日

大学のAdobe Creative Cloud で,「アプリケーション管理にアクセスする権限がありません」と表示される

 大学の古いmac mini (Late 2012, Catalina)にadobe creative cloudをインストールし直して,ログインしてadfs認証パスしたのですが,表題の通り「アプリケーション管理にアクセスする権限がありません」と表示され,アプリのインストールやアップデートができない状態になってしまいました。

以前この症状になった記憶があったので,google先生に聞いてみたところ,立命館大学のサイトにヒントが書いてありました。

/Library/ApplicationSupport/Adobe/OOBE/Configs/ServiceConfig.xml

の中の,

<visible>false</visible>

の行を

<visible>true</visible>

にsudo viで変更して,Creative Cloud を再起動してadobeのログインをし直すと,無事解決。

2022年10月4日火曜日

macOSでVisual Studio CodeとLaTeXを使うならDropbox

 タイトルが全てです。

Visual Studio Code側では,最初,settings.jsonにレシピとツールをクソ真面目に書いて,ptex2pdf -uだけを複数回実行するのか,ubibtexを間にいれるのかを区別してコンパイルしていたのですが,結局latexmkに頼れば一発だったので,前回のポストのようにしました。

iCludDrive上のファイルは扱えなかったのに,Dropbox上のファイルは問題なく扱える。

正確には,iCloud上のTeX文章もVisual Studio Codeのターミナルを使えばコンパイルできるのですが,⌘sで保存した時にコンパイルという便利さが失われるのでiCloud上のファイルを使うのはやめました。


もともとDropBoxやめようと思ったのは,iPad上のTexifier.appがDropboxを扱えなくなったからなのですが,そもそもiPadはクラウドタイプセットメインになりつつあるので,iPadでTeX文章書くことを諦めるます。

もう少し調べたら何かあるのかもしれませんが。。。。


2022年9月27日火曜日

AtomからVSCodeに移行し,LaTeX機能拡張をインストール

 Atomやっと使い慣れてきて,CでもPythonでもTeXでも便利に使っていたのですが,なんと開発終了という悲しい情報を知り,さて何に乗り換えようかと考えています。


ウインドウを散らかす性格のため,TeXのプレビューが同じウインドウに表示されるエディタがいいので,vimやemacsは選択肢から外れます。

そうすると,にMicrosoftのVisual Studio Codeが上がってきました。

Microsoft?という先入観でちょっと抵抗があったのですが,Atomと似ていて使いやすそう。


早速導入。

環境は,MacPortsでTexLive2022がインストールされている状況。

Visual Studio Codeのバージョンは1.71.2

取り急ぎLaTeX機能拡張が欲しかったので,LaTex Workshop v8.29.0をインストール。

⌘+,で環境設定。

右上のアイコンをクリックすると,設定ファイル(settings.json)をエディットできる。

私は最近uplatexを主に使っているので,ここでtoolとしてptex2pdfに-uオプションをわたして実行すればいいのだが,bibtexをまわすときとまわさないときでレシピを分ける必要がありそう。

ここで色々調べてみると,latexmkをつかうと,その辺を判断してbibtexをまわしたりまわさなかったりしてくれる模様。

日本語の処理を楽ちんにするため,uplatexでdviをつくってdvipdfmxでpdf化する方向で設定したい。

latexmkは,ホームディレクトリの下に.latexmkrcというファイルを用意しておけばその通り実行してくれる模様。


公式マニュアル($ man latexmk)を実行してざっと文章を斜め読みしながら.latexmkrcの書式について一通りしらべて,私の目的(VSCodeから実行する)なら,以下の項目だけを設定すればいい模様。

まず一番大切なのは,$pdf_mode

dviからpdfの流れにする場合は3にする。

次にtypesetコマンドの設定。

これは,$latex

それから$bibtex$dvipdf$makeindexを設定しておけば最低限動きそう。

それだけ設定した私の.latexmkrcはこんな感じ。

#!/usr/bin/env perl

$pdf_mode         = 3;

$latex            = 'uplatex -halt-on-error';

$bibtex           = 'upbibtex';

$dvipdf           = 'dvipdfmx %O -o %D %S';

$makeindex        = 'mendex %O -o %D %S';

これを動かすVSCodeのsettings.jsonはこんな感じ。

{
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"%DOC%"
]
}
],
"latex-workshop.view.pdf.viewer": "tab",
"workbench.colorTheme": "Solarized Dark",
}

すっかり忘れていたけど,iCloud Drive上のファイルは扱えません。

VSCode側かLaTeX Workshop側かわかりませんが,おそらくフルパスで処理しようとしてパスにスペースが入っているところでおかしなことになるのかと思われます。それさえなければこの環境はよさそう。

2022年8月29日月曜日

ParallelsClientを用いてLinuxのデスクトップをxrdpでmacOSから遠隔操作(追記あり)

 macOSからwindowsを遠隔操作する際は,Parallels Crientを使うとスピードの面でもキーボード配列の面でも良いので使っていました。

一方でmacOSからlinuxに繋ぐときは,XDMCPやVNCを使っています。

しかし,終了の仕方,起動の仕方にノウハウがありちょこちょこ変なことが起こったりするので,どうにかならないかと思っていました。


最近,xrpdについての記事をちょこちょこ見かけるようになったので,もしかしたらlinuxサーバもrdpを使うとmacから操作できるのではないかと思い,やってみました。


とりあえず私の環境は,古いのですがLinuxのサーバ側はScientificLinux7.9で,クライアントはmacOS BigSur。Montereyでも試しましたがほとんど一緒でした。

Linux側は多分CentOSでも一緒で,RedHat系のディストリビューションならきっとどれも同じでしょう。

Linux側へのxrdpのインストールは色々なところに情報がありますが,vncサーバのインストールも必要なようです。私は元々tigervncを入れてあったのでそこは意識することはありませんでした。


あとは,systemctlでxrdpを起動すれば何もせず接続できました。

# systemctl start xrdp

もし自動起動させたければ,

# systemctl enable xrdp


macからの接続は,Parallels Clientを起動し,新規接続から,標準RDPを選びます。

特に設定する項目はなく,サーバーのところにLinux側のIPアドレスを入れるだけでオッケー。
フレンドリ名は自分が見分けられる単純な名前にすれば良いようです。

ここまでの設定が済むと,そのまま接続すると認証エラーという画面が出てちょっと気分が悪いです。
これはおそらく接続する時にユーザ名とパスワード情報を同時に送信しているからだと思います。
これをログイン画面と解釈してLinux側のユーザ名とログイン名を入れれば何の問題もなくLinux側へログインができます。
認証エラーと言われることがあまり気持ち良くないのであれば,Parallels Client側の詳細設定でユーザ名とパスワードをあらかじめ入れておけばオッケーです。
ParallelsClientのトップ画面で,先程設定した接続を右クリックすると(私はすでにいくつか接続を設定してしまっていますが)
『自動ログイン』にチェックを入れていなくても私の場合上記の認証エラー画面がでます。
ここでLinux側のユーザ名とパスワードをあらかじめ入れておけば認証エラー画面が出ずに,そのままLinux側の画面が出ます。

ここで表示されるデスクトップは,ディストリビューションデフォルトのもので,デスクトップマネージャーのようなものが表示されないので,sessionを選択することなどができませんが,おそらく設定でどうにかできるとは思いますが,それはまた今後。

2022/08/31追記
バージョン19から新規接続の画面が以下のように変わり,デフォルトの設定だとなぜか接続できなくなります。
いくつか試した結果,デフォルトだとRetinaディスプレイのとんでもない解像度で接続に行ってしまいエラーになるようですので,接続前にディスプレイの解像度をたとえば1920x1080などに変えておくとエラーなく接続できるようです。

まず,新規接続は以下の画面でIPアドレスを入れるのではなく,左下にある『代替RDP接続を作成』から進みます。

すると以下の画面になるのでここでLinuxサーバ側のIPアドレスを入れます。
フレンドリ名は多分なんでもいいと思います。


詳細設定画面で,以下のように解像度をおさえめにするとうまく接続できるようです。














2022年4月12日火曜日

MacのzoomでiPadの画面共有ができなくなり驚く(解決済み)

 オンライン授業では,ケーブル接続したiPad上でGoodNoteに手書きしてそれを画面共有していました。

ところが,ある時それができなくなり小一時間焦りました。

症状としては,zoom会議中に『画面の共有』をクリックしても,『iPhone/iPad(ケーブル使用)』の選択肢が出てこないのです。



 結論としては,これはアプリでいくら設定を探してもダメで,ブラウザでアカウントに入り, 

<zoonのurl>/profile/setting

へ移動して,

『主催するミーティングでのデスクトップ画面の共有を無効にします』

の項目のチェックが入っているとデスクトップ画面の共有ができなくなるとともにiPhoneやiPadの画面も共有できなくなるという設定でした。


自分でもいつのまにこの項目にチェックを入れいていたのか覚えていませんでしたが,解決してよかった。