コンテキストメニューで手軽にdebパッケージのインストールをしたい。

Visual Studio Codeを使ってると定期的にアップデートが来ますよね。

Windowsだと自動でアプデしてくれた気がするんですけど、

Ubuntuだとdebパッケージダウンロードしてきてインストールする作業が必要になります。

Ubuntu Softwareでインストールがうまくいけばよいのですが、うまくいかなかったときはエラーメッセージを何も吐いてくれなかったりするので少し嫌いです。

そんなことが何回かあったので自分はdpkgコマンドを使ってのインストールを使うのが常になってます。

しかし、これもまた面倒くさい。

端末開いて、ダウンロードフォルダに移動して、コマンド打ってインストール。

いや、書いてみたらそこまで工程が多くなかった。

まあ・・・、気にせず書き続けます。

とりあえず、こんな面倒くさい工程をもう少し簡単にしたいので、

コンテキストメニューからdebパッケージのインストールコマンドを走らせるようにしてみました。

下みたいな感じに。

手順

FileManager-Actionsをインストールして、設定をしただけです。

1. FileManager-Actionsのインストール

$ sudo apt install filemanager-actions
$ sudo apt install nautilus-extension-fma

2. 設定

新しい設定を追加して、以下のようにコマンドとどの種類に反映させたいかの設定を行います。

Command -> Command -> Pathにterminatorまたはgnome-terminalなど好きな端末エミュを開くコマンドを記述します。

Command -> Command -> Parametersに引数を書いていきます。

自分の場合はterminatorを指定使うので引数は以下のようになります。

-e "echo %f; sudo dpkg -i %f; echo 'press any key...'; read"

%fに右クリックしたときに選択したファイルのパスが入ります。

sudo dpkg -i %fはインストールコマンドです。

echo 'press any key...'; readは、キー入力してから端末を閉じるようにしています。これがないとエラーメッセージが出たときに見れないので・・・。

どの種類のファイルに反映させたいかの設定

Basename -> basename filterってところを*.debとするだけです。

こうすることで今回追加したメニューをdebパッケージファイルを選択したときだけ表示させることができます。

これで上記に貼り付けた動画のように動くはずです。

余談

今回はdebパッケージのインストールだけを行いましたが、他にもVisual Studio Codeコンテキストメニューから開くOpen with vscodeを追加するなどができますので試してみると良いと思います。

qiita.com

OpenSiv3dのインストール備忘録 (2020年8月インストール成功確認)

Twitterで意気揚々とOpenGLでマイクラのクローン作ってやるぜって言ってたけど、シェーダーとかなんやら面倒くさくなってOpenSiv3dに逃げることにしました。

許して

今回はその逃げ場であるOpenSiv3dのインストールの備忘録となります。

環境はUbuntu 18.04となります。

インストール方法調べてるとUbuntuでのインストールに苦戦してる人が多かったので書き記すことにしました。

基本的にやったことは以下の通り

必要パッケージのインストール

これは普通にaptでインストールするだけ、自分がインストールしたのは以下のパッケージ

  • libopenal-dev
  • libgif-dev
  • libwebp-dev
  • libogg-dev
  • libvorbis-dev
  • libudev-dev
  • libswresample-dev
  • libturbojpeg0-dev
$ sudo apt install libopenal-dev libgif-dev libwebp-dev libogg-dev libvorbis-dev libudev-dev libswresample-dev libturbojpeg0-dev 

これで必要なパッケージのインストールは完了

# OpenCV4の現在(2020/08/13)の最新版4.4.0のビルド

https://opencv.org/releases/から現在の最新版である4.4.0のソースをダウンロードしてunzipしておきます。

cmakeにちょっとしたオプションをつける以外は公式サイトに書いてあるインストール方法とほとんど変わりません。

OpenCV: Installation in Linux

まずはビルド用のディレクトリを作って・・・

$ cd opencv-4.4.0/ $ mkdir build && cd build/ 

cmakeを使ってビルドします。

ここでpkg-configのオプションをつけといてください。

$ cmake -D CMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local .. 

あとは公式のインストール行程に従ってやっていくだけです。

$ make -j7
$ sudo make install

boostの現在の最新版のビルド

aptでインストールしてきたboostだとバージョンが古く、Siv3Dをビルドする途中でboost/geometry/algorithms/densify.hppがないと怒られてしまいます。

aptでインストールしてきたboostは1.65.1で、Siv3Dが要求するdensifyは1.67.0で追加されているものでした。

そのため最新版をビルドします。

これはboostの日本語情報サイトに情報があるので、こちらに書いてある行程に従ってインストールしていきます。

Boostライブラリのビルド方法 - boostjp

$ git clone --recursive https://github.com/boostorg/boost.git
$ cd boost
$ ./bootstrap.sh
$ ./b2 install -j2 --prefix=/usr/local

これで/usr/localにboostの最新版が入りました。

OpenSiv3Dのインストール

ここまで来ればあとは公式のREADMEに従ってインストールするだけです。

OpenSiv3D/README_JP.md at master · Siv3D/OpenSiv3D · GitHub

$ git clone https://github.com/Siv3D/OpenSiv3D.git
$ cd OpenSiv3D $ mkdir Linux/Build
$ cd Linux/Build

公式はninjaというビルドツール使ってますが、まあmakeでも大丈夫なので私はmake使いました。

$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make

これでlibSiv3D.aが生成されればOKです。

動作テストをしたければOpenSiv3D/Linux/Appの方に移動してサンプルをビルドします。

$ cd ../App/ $ cmake .
$ make
$ ./Siv3D_App

libSiv3D.aは他のプロジェクトでも使えるように/opt/OpenSiv3D/Linuxなどのディレクトリを作ってそこにコピーしておきましょう。

RAID1構成のHDDからデータ救出した話

家で運用しているNASが経年劣化らしくお亡くなりになったのでHDDからデータ救出しました。

使用したのはmdadmというソフトウェアRAIDのディスクを管理、構築するものらしいです。

参考にしたのはこちらのサイトというかPDF:

http://www.jaist.ac.jp/tech/archives/h27/pdf/17_fukushima

ほぼ同じような流れでやってますのでPDFの方を見たほうがよさげ。

 

以下実施した作業はUbuntu 18.04 LTS上で行っています

HDD接続

これは簡単、単にHDDをPCにつなげるだけ。

RAID1なので2つあるうちの1つだけでOKです。

SATAケーブルが余っていればマザボに繋げるとかしましょう。

私は以前密林で買っていたサンワサプライSATA-USB3.0変換ケーブルを持っていたのでそいつで繋げました。

安いし電源安定化のためにコンセントから電源取れるし、あったら便利な奴だなと思います。

サンワサプライ SATA-USB3.0変換ケーブル 0.8m USB-CVIDE3

サンワサプライ SATA-USB3.0変換ケーブル 0.8m USB-CVIDE3

  • 発売日: 2011/03/08
  • メディア: Personal Computers

データ救出準備

ソフトウェアRAIDディスク管理、構築用ソフトウェアであるmdadmをインストールします。

普通にUbuntuの公式リポジトリにあるのでaptで落としてきます。 

$ sudo apt install -y mdadm

私の環境ではインストールしたら自動的にHDDのRAIDが認識されたのでPDFみたいな面倒な手順は必要ありませんでした。

もしも以下の画像みたいにmd*みたいなものがそれぞれのパーティションにくっついてなければPDFの方を参考にやってみてください。

$ lsblk

sde 8:64 0 2.7T 0 disk 
├─sde1 8:65 0 4G 0 part 
│ └─md0 9:0 0 4G 0 raid1 
├─sde2 8:66 0 512M 0 part 
│ └─md1 9:1 0 512M 0 raid1 
└─sde3 8:67 0 2.7T 0 part 
└─md2 9:2 0 2.7T 0 raid1

おそらく容量が一番大きいmd2にデータがあると思うのでこれをマウントします。

しかし何かマウントできない。

$ sudo mount /dev/md2 /media/raid_disk/
mount: /media/raid_disk: 未知のファイルシステムタイプ 'LVM2_member' です.

LVM2_memberとあり、これはどうやらLVMパーティションがあるから出てくるエラー表示らしい。

とりあえずLVM扱うのでlvm2パッケージをインストールします。

sudo apt install lvm2

LVM論理ボリュームを確認します。

$ sudo lvscan
  inactive          '/dev/c/c' [2.71 TiB] inherit

inactiveであるので有効化します。

$ sudo lvchange --available y /dev/c/c

こうすればあとはマウントするだけです。

$ cd /media
$ mkdir raid_disk
$ sudo mount /dev/mapper/c-c /media/raid_disk/

データ救出

上の項目でマウントできたので、あとは普通のドライブと同じようにnautilusとかのファイルマネージャーで必要なデータを救出してください。

f:id:abc10946:20200731215159p:plain

rsyncを用いたLinuxのストレージ移行 (wiki)

この記事は私が自前のwiki上で書いていた記事です。

本記事の自前wiki上での最終更新日時は2020/04/09 00:43:13なので情報が古くなっているかもしれません。


最近、主にゲームサーバとして運用するようになったkryptonサーバは、ストレージがHDDでありswapによる[?]ラグが度々起こりゲーム進行が阻害されていた。

そのうちSSDへ移行しようかと思っていたのでちょうど良い機会であるため重い腰を上げて取り組んでみた。

SSDのパーティショニングとフォーマット

これはcgdiskにより行った。

コンソールソフトウェアにしてはCUIが直感的で使いやすい。

Part. #     Size        Partition Type            Partition Name
----------------------------------------------------------------
   1        512.0 MiB   EFI System                ESP
   2        4.0 GiB     Linux swap                Swap space
   3        234.0 GiB   Linux filesystem          Linux file system

最終的にこのような構成になった。

このkryptonサーバはUEFIなのでEFIパーティションが必須である。

フォーマットは以下の通り。

# mkfs.vfat /dev/sda1
# mkfs.ext4 /dev/sda3

swapについては後でもできるので保留

パーティションのマウント先ディレクトリの作成

ルートパーティションにあたるものは/media/mroot

EFIパーティション/media/mroot/boot/efi

パーティションのマウント

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 238.5G  0 disk 
├─sda1   8:1    0   512M  0
├─sda2   8:2    0     4G  0
└─sda3   8:3    0   234G  0
# mount /dev/sda3 /media/mroot
# mount /dev/sda1 /media/mroot/boot/efi

rsyncによるフルコピー

# rsync -aHAXxSvP --numeric-ids /boot/efi /media/mroot/boot/efi
# rsync -aAXS --info=progress2 --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /media/mroot

fstabの設定

SSDにコピーしたシステムを起動させるため/etc/fstabの設定をする。

blkidでUUIDを確認し、それらを/etc/fstabの該当箇所に書き込むだけだ。

# blkid
/dev/sda1: UUID="3E91-B3DE" TYPE="vfat" PARTLABEL="ESP" PARTUUID="f7a96089-de36-43b3-9e2c-c3a28fd90b05"
/dev/sda2: UUID="7d7093f7-d19b-4d4c-8c85-17029018d878" TYPE="swap" PARTLABEL="Swap space" PARTUUID="2c04a23a-944a-4ad1-97fd-d98516746e47"
/dev/sda3: UUID="f039c202-93b6-491e-bdd4-be488bc50431" TYPE="ext4" PARTLABEL="Linux file system" PARTUUID="d0f9227f-3785-4bf0-ad0b-55414ab46da7"
UUID=f039c202-93b6-491e-bdd4-be488bc50431 / ext4 defaults 0 0
UUID=3E91-B3DE /boot/efi vfat defaults 0 0

grubの設定

/boot/grub/grub.cfg/boot/efi/EFI/ubuntu/grub.cfgの編集をする。

/boot/grub/grub.cfgはUUIDとあからさまに書いてあるのでそのUUIDを今回の/dev/sda3に置換するだけである。

/boot/grub/grub.cfgのUUIDを置き換えないとGrubシェルが起動してしまう(Grubシェルから起動させようとしてもinitramfsシェルでKernel Panicが起きた)

EFIパーティションの方も同様に下のような行にあるUUIDを書き換える。

search.fs_uuid f039c202-93b6-491e-bdd4-be488bc50431 root hd0,gpt2

あとは起動するだけ

swapの割り当て

# mkswap /dev/sda2
# swapon /dev/sda2
UUID=f039c202-93b6-491e-bdd4-be488bc50431 / ext4 defaults 0 0
UUID=3E91-B3DE /boot/efi vfat defaults 0 0
UUID=7d7093f7-d19b-4d4c-8c85-17029018d878 swap swap defaults 0 0

所感

*swapファイルというものがあるのでswapパーティションは別に必要なかったかなと思う。

今回は仕方なくswapパーティションのまま使った。

参考

E5823をLineageOSにする記録

手元に残っていたE5823にLineageOSをインストールすることにした。

この記事はその作業の備忘録。

まあ、ほぼXDA Developersの記事の和訳みたいになっちゃうけど、仕方ないね。

2020/07/13記述分

なんかいろいろやらかしてE5823が文鎮化したよ。

気をつけてね。 

 2020/07/13記述分

E5823に焼くとき使っていたイメージを別のやつにしたら文鎮から復活したよ。

やったね。

2020/08/13記述分

長い間放置してましたが、なんということかいろいろミスってしまって文鎮になってしまいました。

今度気力が出たときに動くようにしたい(願望)と思います。

 

 

TAパーティションのバックアップについて

LineageOSをインストールする前にTA Paritionをバックアップをする。

このTAパーティションだがXDA Developersによると

1)TAパーティションとは何ですか?

A)Sony Xperiaバイスは、保証状況やDRMキーなどの貴重な情報をすべてTAパーティションに保存しています。

 

2)DRMキーとは何ですか?

A)このTA PartitionにはDRMキーが入っており、このDRMキーはBIONZ画像プロセッサやX-Reality Engineといった技術を有効にするものです。

と記されている。

つまりTAパーティションをバックアップしなければDRMキーが失われると、BIONZによるノイズ処理が無効になりXperiaで撮影した写真の品質が低下する。

そのためTAパーティションをバックアップするわけだが、そのためにはAndroidをダウングレードする必要がある。

ダウングレード

まずはダウングレードから始める。

TAパーティションのバックアップには"iovyroot"を用いるのだが、これはLollipop Kernelでのみしか動かない。

そのためAndroidのダウングレードをする。

ダウングレードの手順はXDA Developersによると以下の通りである。

1 Flashtoolをダウンロードしインストールする。
2 ファームウェアを以下のリンクからダウンロードする。
3 Flashtoolを起動する。
4 雷アイコンをクリック
5 Flash modeを選択
6 Lollipopファームウェアをインストールした場所を指定し選択
7 Wipe Optionですべてのオプションを選択
8 スマホをオフにする
9 Flashtoolがファイル準備をするまで待機する
10 処理が完了したら音量下げボタンを押しながらUSBでPCに接続する
11 完了するまで待機
12 完了したらデバイスを再起動する

今回この手順で行ったところ10で手こずった。

これは単純にドライバーのインストールをしてなかったからだった。

ウィンドウに表示されたエラーログはしっかり読んでおこう。

`<Flashtoolをインストールしたパス>/drivers`にあるFlashtool-drivers.exeで対応するドライバをインストールする。

ドライバインストールの途中でエラーが出たときは署名が不足して起きるエラーなので、Windowsをセーフモードにして『ドライバーの署名の強制を無効にする』を選択する。

詳しくはこちらを参照してほしい。

 

ドライバーをインストールし終わると、おそらく上の工程がうまく進むはず。

再起動してAndroidのバージョンがLollipopになってることを確認したら、デベロッパーモードにする。

あ、言い忘れてたけどさっきの手順はもちろんデベロッパーモードにしないとできないよ。

TAパーティションをゲットする!!

Lollipopでデベロッパッパーになったら、iovyroot使ってTAパーティションをバックアップするだけ。

なんだけど

Google Driveからダウンロードしようとすると規約違反で消されてやがるし、XDA Developerの他ページからダウンロードしようとするとウイルス扱いでChromeくんがダウンロードしてくれないです。

まあ、そりゃAndroid脆弱性使ったコードが入ってるんだもん、そりゃウイルスとして扱って検閲するよね。

でも、今はその脆弱性使ったプログラムが必要なんだ。

 

ってことで別の方法探してたらどうやら前バージョンの方だとChromeくんの検閲を抜けられるらしい。

なのでこ↑こ↓掲示板で親切な人がmediafireのリンク貼ってるのでここからダウンロードする。

あとはダウンロードしたzipを解凍して中にあるtabackup.batを実行すればTAパーティションをゲットできる。

このときなんかエラー起きたんだけど、なんやかんやしたら直ったので頑張って。

ごめん酒飲んでたせいか知らんけど記憶から抜け落ちてるんだ。

記憶から消えてるってことはそこまで重要じゃない簡単な作業っぽいのでいいよね

 

Bootloaderのアンロック

 

で、まあTAパーティションゲットできたらbootloaderのアンロックをする。

これもXDA Developersに、やり方書いてる。

1 設定>開発者向けオプションに行く

2 OEMロック解除を有効にする

3 SONYの開発者用ページに行って指示どおりにやる

4 IMEIナンバーを3のページのフォームに書いて送信、するとbootloader Unlockコードがもらえる

5 スマホの電源をオフる

6 FlashtoolのBLUをクリックする

7 音声下げボタンを押しながらUSBでPCにつなげる

8 処理が完了したらボリュームボタンから手を離し、PCから外す

9 音声上げボタンを押しながらUSBでPCにつなげる

10 ダイアログがPCの方に出てくるのでUnlockコードを入力する

11 処理が終わるのを待つ 

SONYの開発者用ページは下の画像みたいになってる。

f:id:abc10946:20200712232839p:plain

右の英文読めばある程度分かると思うけど書いておく

OEMロック解除まではすんなりできると思う。

電話アプリのダイヤル画面で*#*#7378423#*#*を入力すると何か黒い画面が出てくる。

これのService Info > COnfiguration > Rooting StatusのBootloader unlockedがYesになってればOK

このConfigurationに書いてあるIMEIをSONY開発者用ページの下にあるEnter IMEIフォームに入力すると太字で強調されたあからさまにこれを覚えとけよっていう英数字のコードが出てくるのでこれをコピペして10で出てくるダイアログでコピペする。

その後の手順はそのままやればOK

 

とりあえず今回はここまで続きは明日くらいに書くかも。

 

参考

https://wiki.lineageos.org/devices/suzuran/install

https://forum.xda-developers.com/z5-compact/general/how-to-backup-restore-ta-partition-root-t3479532

タイトル変えた

最近自分が社会不適合者だと認識しはじめた。

まあ友人からするとそんなの全く社会不適合者に入らないらしい。

うるさい、知らん。

俺がそう思うからそうなのだ。

というわけで私は社会不適合者です。

単に社会不適合者と名乗るのも面白くないので、以前ハマっていたゲームのタイトルFallout(放射性降下物)にちなんで社会性降下物とTwitter名を変えました。

というわけで社会降下物です。

たぶんそのうちもとに戻すんだろうけど、今のところはこのままで行きます。

 

さて、ブログのタイトルについてですが某フィリップ・K・ディックの某有名な小説のタイトルですね。中身読んだことないですが。

英訳とかつけられるなら『Do social fallouts dream of nuclear fission』とかになるのかな

 

以上、院試の面接近くて緊張でゲロ吐きそうになってる合間に錬成された記事でした。

面接こえーよ・・・