2023年5月8日月曜日

Lubuntuを再インストールしてみるメモ

元々Windows入れて使ってたマシンのSSDがぶっ飛んで補償交換待ちの間の暫定でLinuxを使ってみていたけど同じPCでもソフトシンセやら開発環境が思いの外軽いとかメリットもあったのでこのPCはこのままLinux運用にする選択に決定。


なお、USBメモリに入れたLubuntuが見事に爆死してメモリが壊れたので今回は余っているSSDに入れ直すことにする。インストール元は前回と同じUSBメモリに入ったインストールイメージなんだけど今回は当然だけどめちゃくちゃ高速にインストール終了。USBメモリへの場合は書き込み遅すぎて死んでるのかと思ったレベルだったのでやっぱり書き込み速度の差はエグい位アルネ。安いUSBメモリってSDとかに比べても何であんなに遅いのか謎だけど。SCSI喋ってるのとかは別に関係ないよなぁ・・・。


今回はちょっと趣向を変えてswapやらrootやら無しのSSDまるまる1パーティションでルート(/)にマウント。ファイルシステムはbtrfsにした。クライアントのデスクトップだとこんなんで良いはず。自分でLinuxいじらなくなって久しい(少なくとも転職後は一切触ってないから6年位?)ので流行りが分からないけど結局今のファイルシステムのトレンドってどうなったのよ・・・。なんか結局ext4使い続けてそうな雰囲気ではあるんだけど。


## まずはパッケージの更新


$ sudo apt-get update
$ sudo apt-get upgrade


初回は結構時間がかかるので気長に待つ。余談だけど最近調べるとapt-getでもaptitudeでもなくaptを使わせる例が多い気がするけどトレンドが変わったのだろうか?


## 音が鳴らない問題の解決

$ alsamixer


F6を押してオーディオデバイスを選択する。このPCは内蔵のオーディオデバイス以外にHDMIから音声を出力を出来るので内蔵デバイスを選択する。


カーソルキーの左右でheadphoneを選択し、カーソルキーの上下でボリュームを最大にする。


エスケープキーで抜けたあと設定を保存する

$ sudo alsactl store

## 日本語入力を出来るようにする

$ sudo apt install ibus-mozc
$ sudo apt install fcitx-mozc
$ sudo apt install fonts-ipafont fonts-ipaexfont fonts-takao fonts-vlgothic
$ sudo apt install language-pack-ja

一度ログアウトしサイドログインしなおす。なんか前回USBメモリに入れた時と見た目が違う気がするけど・・・とりあえず深くは追求しない。

「JA」アイコンを右クリックし「preference」を選択

「Input Method」タブを選択しMozcを追加


あとはCtl+Spaceでmozcに切り替えて、半角/全角キーで日本語とアルファベットの切り替えが出来るようになる。

## Google Chromeを入れる
$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
$ sudo apt install ./google-chrome-stable_current_amd64.deb

前回USBメモリに入れたときは重すぎて実用的じゃなかったけどSSDだと普通に使えてそうに見える。やっぱり書き込み速度に引っ張られていたか・・・。

## メールクライアントを入れる
$ sudo apt-get install mutt
$ sudo snap install mailspring

## VisualStudio Code
https://code.visualstudio.com/
から.debファイルをダウンロード
$ sudo dpkg -i code_xxx-xxxx_amd64.deb

## Rust
$ sudo apt-get install curl $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

https://www.rust-lang.org/tools/install

これだけだとビルドでずっこけたのでclangを入れ直し

$ apt install clang lldb lld


## Golang

$ wget https://go.dev/dl/go1.20.4.linux-amd64.tar.gz
$ sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.20.4.linux-amd64.tar.gz
$ vim ~/.profile

下記の行を追加
export PATH=$PATH:/usr/local/go/bin

$ source ~/.profile

とりあえず今日はこんなところで。DAW関連も入れたけどそっちはとりあえずdebパッケージ落として入れただけなので割愛。

あとちょっとaptの件を調べたところ今の理解は下記の通り
- Ubuntu 14.04以降ではaptの仕様が奨励されている
- apt-getの方が制限が厳しくバージョンが固定されるため最新の物を入れたい場合はaptが良いらしい?

過去aptだと色々うまくいかない事が多くてaptは使うべきではないという状況だったと思うけど多分そこが改善されたって事ね。道理でapt-getでは最新になっているのに更新センターのダイアログがポコッと出たわけだ。apt update & upgradeでそれらの更新が行われたので間違いなさそう。ふむ。

あとはsnapはどういう扱いなのかも調べないとかな・・・。

2023年4月19日水曜日

Lubuntuが起動しなくなる

特にシステムの更新等もしていない中、某音楽アプリが固まってそのまま動かなくなったので強制再起動したら起動しなくなる。こういうところね・・・経験上デスクトップ環境としてLinuxを使っていると少なからずこういう唐突に起動しない事態に陥ることが他のWindows/Macと比較するとかなり高い確率である。(不思議とサーバ運用だとあまり経験が無い)いくらGUIがまともになってきてもこういう時にすっと修復できないものはPCとかに詳しくない人にはいくら動作が軽くてもオススメしたくない。そもそも、こういう状況が起きるべきではないけど。そのためにファイルシステムを工夫しているはずなのに・・・。Chromebookとかはもっとまともだと良いけど。

 

愚痴はさておき、起動時のログを見る限りNetworkManagerが起動できずにそのままシステムも起動できない状態になっている模様。別にネットワーク関連動かなくても起動自体はしてほしいところだけど・・・。

 

で、とりあえずシフトを押しながら起動してRecoveryモードで起動してみるけどネットワークを有効に出来ないので上書きで何かパッケージを入れ直すとか何も出来ない。正直何故NetworkManagerが起動しないのかさっぱり分からず取っ掛かりが何か欲しい所。なのでちょっと詳しく情報を追ってみる。NetworkManagerが駄目なのだけが分かっているのでそこに絞ってまずは調査。


$ journalctl -xe -u NetworkManager

 

この中で明らかに怪しい情報が見つかる。libgssapi_krb5.so.2に何かした記憶がないが恐らくは壊れているんでしょう

 

Apr 19 12:10:30 xxxxxxxx systemd[1]: Starting Network Manager...
Apr 19 12:10:30 xxxxxxxx NetworkManager[703]: /usr/sbin/NetworkManager: error while loading shared libraries: /lib/x86_64-linux-gnu/libgssapi_krb5.so.2: ELF file data encoding not little-endian
Apr 19 12:10:30 xxxxxxxx systemd[1]: NetworkManager.service: Main process exited, code=exited, status=127/n/a
Apr 19 12:10:30 xxxxxxxx systemd[1]: NetworkManager.service: Failed with result 'exit-code'.
Apr 19 12:10:30 xxxxxxxx systemd[1]: Failed to start Network Manager.
Apr 19 12:10:30 xxxxxxxx systemd[1]: NetworkManager.service: Scheduled restart job, restart counter is at 4.
Apr 19 12:10:30 xxxxxxxx systemd[1]: Stopped Network Manager.


という訳で破損確認と差替えを行いたい。が、前述の通りネットワークにつながらないので何か新しいファイルを拾ってきて比較等々の作業が難しい状況。どうしたものかと思ったけど今使っているlubuntuをインストールする際のUSBメモリをまだ消していなかった事を思い出してそちらから起動して確認してみることにする。このライブラリの所在を確認しバイナリ比較。

 

$ cmp /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 /media/xxxxxx/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

/media/xxxxxx/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 differ: byte 6, line 1


案の定差分が出てくる。一応念の為詳細確認をする為に"-bl"オプションをつけてみる


$ cmp -bl /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 /media/xxxxxx/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

<snip>
338550   0 ^@    10 ^H
338553 340 M-`   64 4
338554   1 ^A     0 ^@
338569  40        4 ^D
338581   0 ^@    10 ^H
338585  22 ^R     1 ^A
338586   1 ^A     0 ^@
338587   0 ^@    20 ^P
338589   1 ^A     3 ^C
338606   0 ^@   100 @
338609   0 ^@    64 4
338617  64 4     37 ^_
338618   0 ^@     1 ^A
338625   0 ^@    10 ^H
<snip>


見た所で何がどう違うのかはこれだけだと分からないけど結構差があることは分かった。次のステップとして起動するメディアのこのライブラリを起動しないファイルシステム側にコピーしてみます。


$ sudo mv /media/xxxxxx/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 /media/xxxxxx/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2.bak
$ sudo cp /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2 /media/xxxxxx/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

で起動しないメディアから再起動。結果としてはこれだけで普通に起動しました。壊れたのがこの1ファイルだけかは分からないけど少なくとも起動に関わるところはこれだけだったという事なのでしょう。なんとか復活しました。


本当は何故、どう壊れたのか、他に壊れたものは無いのかは把握しておきたいところではあるけど・・・どう調査すべきなんだろうなこういうのって。普段使いがUNIXな人たちってどうしているんだろうか。

2023年2月15日水曜日

Lubuntuで日本語入力を行う為の設定(トラブルシューティング)

ちょっとPCのSSDがぶっ飛んだのをきっかけでUSBメモリにLubuntuを入れて起動させたものの色々問題が起きていた一つがこの日本語の問題。

 

色々なサイトで解決方法として下記の事を書いているんだけど書いてある内容だけで完全な解決にならなかったので一応メモを書いておく。


他のページに書かれている内容

localeを日本語にしていてもfcitx + mozcが最初から入っていない問題の解決

$ sudo apt install fcitx-mozc

 

日本語フォントが入っていない問題の解決
$ sudo apt install fonts-ipafont fonts-ipaexfont fonts-takao fonts-vlgothic

 

そもそも日本語の環境が出来ていない場合の解決 
$ sudo apt install language-pack-ja
 
大抵はこれをやってサービスの再起動かログオフログインすれば使えるとか書いているが少なくとも手元の環境ではもう1ステップ必要だった。Lubuntu使うの初めてで設定やUI分かっていなかったのでまぁあえて書く話ではないのかもしれないが

追加でやる必要があるかもしれない内容 

右下にキーボードのアイコンがあるので右クリックをしてConfigureを選択 
 
 
おそらくはControl+Spaceや半角キーで日本語を入力できない場合はこのように日本語のキーボードが一つしかない状態のはず。 
 
 

なので左下の+ボタンを押して手作業で追加をしてやる必要がある

ここでポイントはLocaleの設定次第ではリストにmozcが出てこないので"Only show Current Language"を必要に応じて外してMozcを探すこと。個人的に日本語LocaleでLinuxを使うとコンソールとかから突くときに色々問題が起きたりして好きじゃないので英語でインストールをしたのでここでハマったのかなと思います。

 

最終的にこういう風になればok。これでCtl+Spaceでこの2つの切り替えが行われる様になるはず


以上でおそらくは日本語が入力できるようになったはず。

 

さて、次は音がスピーカーから鳴らない(でも何故かイヤホン端子からは鳴る)問題かな

2018年8月4日土曜日

SpresenseでHello world

 

はじめに


SONY Spresenseという変態(誉め言葉)ボードが出たので思わず目的もなくポチってしまったのでメモを残していこうと思います。



とりあえずArduino的に使うのは全く興味ないので「とりあえず」はNuttXをいじろうと思います。基本的には公式ページ

https://developer.sony.com/ja/develop/spresense/developer-tools/get-started-using-nuttx/set-up-the-nuttx-environment#HOW_TO_BUILD_CONFIGURATION_JA

に情報があるのでそれ通りにやればよいという話ですが何点か補足を兼ねて書いておこうと思います。まず用意した環境はコンナカンジ。

  • PC (Win10) 母艦
  • Virtualbox
  • Ubuntu 16.04 LTS ServerのVM (Virtualbox用)
  • Spressense(メインボード+拡張ボード)
  • USBケーブル (マイクロ)

これで全てデス。UbuntuはGUIいらないのでServerを最小限の構成でインストールしています。またインストール後は母艦からputtyでVMにつないでいます。

ソースを取得するための前準備


まず最初にgithubにアクセスする為にユーザー登録及びssh keyの登録が必要になるようです。

https://qiita.com/yysskk/items/974c9c55d66a26515651

あたりを参考にすると良さそうです。書く順番が逆になってしまっていますが、こちらはVMへの登録が必要なのでVMの設定が先なので注意

開発環境用のVM(Virtual Machine)

 

バージョン

 開発環境のOSとしてUbuntu 64bitが奨励されているようです。Ubuntuは長期メンテされる偶数のバージョンを使う感じでよいと思いますが2018/08/04時点での最新は18.04 LTSになります。最初こちらでやろうと思ったのですが、標準で色々必要なパッケージが無かったりして面倒くさそうだったのでとりあえず16.04 LTSにしました。ある程度余裕が出来てきたら再度環境を見直してみます。

追加で必要なパッケージ

それからServerの場合作業を行う前に事前に二つのパッケージのインストールが必要になります。

$ sudo apt-get install openssh-server

こちらは母艦からつなぐために必要です。Virtualboxのコンソールからいじる場合は不要ですがファイルの転送とかにも使えるのであっても良いと思われます。

$ sudo apt-get install build-essential

make等のコマンドが足りないのでこれを入れておく必要があります。

ネットワーク関連

また、母艦との通信を行うために下記の設定をしています。よくブログでホストオンリーアダプターを設定せいという記述がありますが外との通信もしたいのでブリッジを選んでいます。



USB

あとVMでUSBにアクセスさせる為に下記の設定をしています。とりあえずターゲットをPCとUSBで接続し、右サイドの+付きのアイコンをクリックするとUSBシリアルブリッジのCP2102Nが見えると思うので、それを選択してUSBデバイスフィルターに追加します。



最後にUbuntu側からシリアルポート(USB)へアクセスする場合「/dev/ttyUSB0」(末尾の数字はぶら下がっているデバイスの数にもよります)へのアクセスをしますがこちらは基本的には管理者権限がいるので

$ sudo ./tools/flash.sh -l /home/dev/spresense/firmware/spresense -c /dev/ttyUSB0
$ sudo ./tools/flash.sh -c /dev/ttyUSB0 nuttx.spk
$ minicom -D /dev/ttyUSB0 -b 115200 -s

のような形でsudoを使う必要があるので注意です。これへの対策はオフィシャルのドキュメントの「1.1.2. USB接続の設定」に書かれている物が該当するはずです。

最後に


とりあえずここまでを終えると準備完了です。あとは手順通りにやれば下記の様にHello worldが動くはずです。手順は使用するバージョンまで固定しているのでハマりポイントは少ないのではないかと思います。


とりあえず最低限の環境は出来たので、ここから色々弄ってみたいと思います。

2016年4月2日土曜日

VolumioにNASを登録する

VolumioにNAS(samba)が登録出来ないなんて事が起きた

> + show advance options を開く.
> Mount flags の欄に,",sec=ntlm" を追加.
> これは mount.cifs のデフォルトのはずなのだが,なぜか明示的に指定しないと接続できない.

これが原因でした。下記の場所に書いてあった通りだけど一応メモ。

http://yjo-blog.blogspot.jp/2015/02/volumio-15-apt-get-upgrade-nas-mount.html

2014年9月29日月曜日

MicroServer N54LにESXiを入れる

NTT-Xのセールで数台購入していたMicroServer N54LにESXiを入れてみる。

とりあえずメモリ4GB/HDD500GBの無印構成のままいきます。

この機種はデフォルトは光学ドライブが無い&何かレールが要りそうな雰囲気だったのでインストーラの起動にはTrancesendの8GBのUSBメモリを使用。起動メモリの作成にはいろんなサイトに書かれているのと同様にUNetbootinを使用します。

まず、ここでハマりポイント1。2014/09/29現在フリーのESXiは5.5Update2が最新ですが、このバージョンを使用するとインストーラのブートの途中で止まってしまいました。原因は良く分かりませんがハードのチェックに引っかかってしまっている?誰か原因知っていたら教えて下さい。

と、そんなわけで5.5Update1を使用します。こちらは普通に起動できますが上記のツールを使用すると何やら上書きするかというメッセージが出るのでYesを押して上書きをしてください。(しないとこれまた起動に失敗するメモリが出来上がると思います。Update2では少なくともそうだった。)

これで作成したメモリを本体にさして起動をかけます。今回はそのUSBメモリをそのまま起動ディスクとして使う構成にしようと思うので蓋を開いてマザーにザクッとさしてそこから起動します。
起動そのものは出荷時の状態ではBIOS設定等をいじる必要も無く勝手にUSBメモリから起動すると思うのですが、ここでハマりポイント2。標準構成の4GBのままの場合はインストールプロセスの終盤でメモリサイズのチェックにひっかかるのでちょっとしたパッチを充てる必要があります。

インストーラを起動後、「Welcome to the VMware ESXi 5.5.0 Installation」と出てきたところで、
おもむろにALT+F1を押す。コンソールに落ちるのでID:root / PW:なし でログイン。

# cd /usr/lib/vmware/weasel/util
# rm upgrade_precheck.pyc
# cp upgrade_precheck.py upgrade_precheck.py.old
# vi upgrader_precheck.py

1105行目

MEM_MIN_SIZE = (4 * 1024) * SIZE_MiB



MEM_MIN_SIZE = (1 * 1024) * SIZE_MiB

に修正して、保存、終了。その後インストーラのプロセスを再起動します。

# ps -c | grep weasel

でプロセスIDを確認し

# kill -9 'PID' ('PID'の部分は上記コマンドで確認したID。例えば"kill -9 35795"みたいな感じ)

上記コマンドをうつと先ほどのWelcome画面にくるので、ライセンスに同意等をしインストール先を聞かれるのでインストーラを起動しているUSBメモリを選択します。

その後

  • キーボードは日本語キーボード(繋いでいるものに合わせて)
  • ルートのパスワードは好きな物を
  • インストールするかを聞かれるので指示に従う

これでインストールが始まります。暫く放置してインストール完了後リブートをすると勝手にUSBメモリから起動して使える状態になります。

その後の設定はクライアントから弄る事になりますが、今回はここまでで。