小さなLinux互換カーネルのTilckというものを知ったので少し触ってみました.その後Wikiを見ながらbuild_toolchain script を利用していくつかのユーザスペースアプリケーションを試してみました.
タグ: Linux
LinuxのRAMを制限するメモ
LinuxでRAMの少ない状態のテストをしたいなと思ってコマンドラインオプションにメモリ制限のオプションをつけて試してみました.
Debian で Linux Kernel の initramfs の圧縮形式を変更する🐧🗜️
先日「Debian sidでLinux Kernel(5.11)をbuildするメモ 」を書いたのですが,Twitterで@henrichさんからこんなメッセージが.
/bootの容量のためにはinitramfsの圧縮をgzipからxzやzstdにするのもありですね
— henrich (@henrich) March 23, 2021
そういえば圧縮形式色々あったなと試してみました.
現在の圧縮形式を確認する
$ grep COMPRESS /etc/initramfs-tools/initramfs.conf
# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ]
COMPRESS=gzip
$ file --mime-type /boot/initrd.img-`uname -r`
/boot/initrd.img-5.11.8+: application/gzip
設定は gzip
で,実際のファイルもgzipになっています.
圧縮形式は gzip
以外に bzip2, lz4, lzma, lzop, xz, zstd
が選べるようです.
圧縮形式の比較
$ ls -1sS --block-size=1 ./initrd.img-5.11.8+.*
183033856 ./initrd.img-5.11.8+.raw
81076224 ./initrd.img-5.11.8+.lz4
78315520 ./initrd.img-5.11.8+.lzop
54329344 ./initrd.img-5.11.8+.gzip
51761152 ./initrd.img-5.11.8+.zstd
50081792 ./initrd.img-5.11.8+.bz2
36548608 ./initrd.img-5.11.8+.xz
36540416 ./initrd.img-5.11.8+.lzma
容量がどのくらいになるのか各アーカイバで圧縮してみました.
$ \time -f %e cat ./initrd.img-5.11.8+.raw > /dev/null
0.03
$ \time -f %e lz4cat ./initrd.img-5.11.8+.lz4 > /dev/null
0.38
$ \time -f %e lzop -d -c ./initrd.img-5.11.8+.lzop > /dev/null
0.42
$ \time -f %e zstdcat ./initrd.img-5.11.8+.zstd > /dev/null
0.44
$ \time -f %e zcat ./initrd.img-5.11.8+.gzip > /dev/null
1.38
$ \time -f %e lzma -d -c ./initrd.img-5.11.8+.lzma > /dev/null
3.22
$ \time -f %e xzcat ./initrd.img-5.11.8+.xz > /dev/null
3.37
$ \time -f %e bzcat ./initrd.img-5.11.8+.bz2 > /dev/null
9.39
展開時間も確認してみました.
圧縮形式 | 圧縮データ量(byte) | 展開時間(秒) |
---|---|---|
raw |
183033856 |
0.03 |
lz4 |
81076224 |
0.38 |
lzop |
78315520 |
0.43 |
gzip |
54329344 |
1.38 |
zstd |
51761152 |
0.44 |
bzip2 |
50081792 |
9.39 |
xz |
36548608 |
3.37 |
lzma |
36540416 |
3.22 |
圧縮データの圧縮率などは既定値のままで,展開時間は \time -f %e zcat ./initrd.img-5.11.8+.gzip > /dev/null
若しくは \time -f %e lzma -d -c ./initrd.img-5.11.8+.lzma > /dev/null
のようにして測りました.
サイズでは raw > lz4 ≒ lzop > gzip ≒ zstd ≒ bz2 > xz ≒ lzma な感じで,
展開速度は bz2 > xz ≒ lzma > gzip > zstd ≒ lzop ≒ lz4 > raw な感じです.
Caution
|
時間についてはデスクトップ環境で色々動いている状態で1回しか測っていないので目安程度にしてください. |
Caution
|
ここでは既定値で圧縮しましたが,zstd, lz4, xzについてはinitramfs作成時に圧縮オプションなどが既定値と違うようなので目安程度にしてください. |
容量的にはxz, lzmaが良さそうですが展開時間がとても増えそうです.zstdはgzipより速くて小さくなって良さそうです.
ということでzstdにしてみます.
initramfsを zstd で作り直す
$ sudo git -C /etc diff HEAD /etc/initramfs-tools/initramfs.conf
diff --git a/initramfs-tools/initramfs.conf b/initramfs-tools/initramfs.conf
index 01bdd85..a0c051b 100644
--- a/initramfs-tools/initramfs.conf
+++ b/initramfs-tools/initramfs.conf
@@ -41,7 +41,7 @@ KEYMAP=n
# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ]
#
-COMPRESS=gzip
+COMPRESS=zstd
#
# DEVICE: ...
/etc/initramfs-tools/initramfs.conf
を編集して, COMPRESS
を zstd
に変更します.
$ update-initramfs -h
Usage: update-initramfs {-c|-d|-u} [-k version] [-v] [-b directory]
Options:
-k version Specify kernel version or 'all'
-c Create a new initramfs
-u Update an existing initramfs
-d Remove an existing initramfs
-b directory Set alternate boot directory
-v Be verbose
See update-initramfs(8) for further details.
$ sudo update-initramfs -k `uname -r` -u -v
update-initramfs
で更新を行います.
$ ls -s --block-size=1 /boot/initrd.img-5.11.8+
54542336 /boot/initrd.img-5.11.8+
$ ls -s --block-size=1 /boot/initrd.img-5.11.8+
41611264 /boot/initrd.img-5.11.8+
$ file --mime-type /boot/initrd.img-5.11.8+
/boot/initrd.img-5.11.8+: application/zstd
$ zstd -lv /boot/initrd.img-5.11.8+
*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***
/boot/initrd.img-5.11.8+
# Zstandard Frames: 1
Window Size: 8.00 MB (8388608 B)
Compressed Size: 39.53 MB (41446437 B)
Decompressed Size: 174.55 MB (183032320 B)
Ratio: 4.4161
Check: XXH64
出来上がったファイルを確認すると zstd
になっていました.
再起動しても問題ありませんでした :)
上で確認した容量より大分小さ唸っているのは圧縮レベルの差でしょうか?
initramfs圧縮レベルの確認
$ grep zstd /usr/sbin/mkinitramfs
zstd) compress="zstd -q -19 -T0" ;;
update-initramfs
から呼ばれる mkinitramfs
を確認するとzstdの圧縮レベルオプションは -19
で最高圧縮率でした.(既定値は -3
)
$ \time -f%e zstdcat -T1 /boot/initrd.img-5.11.8+ > /dev/null
0.50
その分展開時間も少し伸びていそうです.
case "${compress}" in
gzip) # If we're doing a reproducible build, use gzip -n
if [ -n "${SOURCE_DATE_EPOCH}" ]; then
compress="gzip -n"
# Otherwise, substitute pigz if it's available
elif command -v pigz >/dev/null; then
compress=pigz
fi
;;
lz4) compress="lz4 -9 -l" ;;
zstd) compress="zstd -q -19 -T0" ;;
xz) compress="xz --check=crc32"
# If we're not doing a reproducible build, enable multithreading
test -z "${SOURCE_DATE_EPOCH}" && compress="$compress --threads=0"
;;
bzip2|lzma|lzop)
# no parameters needed
;;
*) echo "W: Unknown compression command ${compress}" >&2 ;;
esac
周りを見てみると, lz4
は -9
で最高( -12
)ではないけど既定値( 1
)より圧縮率を高くしてあります.xzには整合性チェックがオプションがあるけど容量にはあまり関係ないかな?
その他は既定値のようです.
$ count=1;while [[ $count -lt 19 ]];do zstdcat /boot/initrd.img-5.11.8+ | zstd -T0 -$count -c - > /tmp/zstd-$count.zstd;count=$(( $count+1 ));done
$ ls -1sS --block-size=1 /tmp/zstd-*
56188928 /tmp/zstd-1.zstd
53272576 /tmp/zstd-2.zstd
51761152 /tmp/zstd-3.zstd
51466240 /tmp/zstd-4.zstd
50061312 /tmp/zstd-5.zstd
49614848 /tmp/zstd-6.zstd
47431680 /tmp/zstd-7.zstd
46690304 /tmp/zstd-8.zstd
46424064 /tmp/zstd-9.zstd
45973504 /tmp/zstd-10.zstd
45850624 /tmp/zstd-11.zstd
45686784 /tmp/zstd-12.zstd
45539328 /tmp/zstd-13.zstd
45371392 /tmp/zstd-14.zstd
45309952 /tmp/zstd-15.zstd
44093440 /tmp/zstd-16.zstd
42987520 /tmp/zstd-17.zstd
41705472 /tmp/zstd-18.zstd
41447424 /tmp/zstd-19.zstd
$ ls -1S /tmp/zstd-* | xargs -I{} -n1 sh -c "echo -n \"{} \"; \time -f%e zstdcat -T0 {} > /dev/null"
/tmp/zstd-1.zstd 0.37
/tmp/zstd-2.zstd 0.36
/tmp/zstd-3.zstd 0.40
/tmp/zstd-4.zstd 0.47
/tmp/zstd-5.zstd 0.44
/tmp/zstd-6.zstd 0.42
/tmp/zstd-7.zstd 0.40
/tmp/zstd-8.zstd 0.37
/tmp/zstd-9.zstd 0.35
/tmp/zstd-10.zstd 0.40
/tmp/zstd-11.zstd 0.41
/tmp/zstd-12.zstd 0.38
/tmp/zstd-13.zstd 0.39
/tmp/zstd-14.zstd 0.39
/tmp/zstd-15.zstd 0.43
/tmp/zstd-16.zstd 0.37
/tmp/zstd-17.zstd 0.42
/tmp/zstd-18.zstd 0.53
/tmp/zstd-19.zstd 0.68
圧縮レベルごとの容量と展開時間はこんな感じになりました.色々動いている環境なのでおかしそうなところがありますが大体の目安として.
Kernel build時の動作
Kernel 5.11.9 が来ていたのでビルドしてみました.
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/incr/patch-5.11.8-9.xz
$ cd linux-5.11
$ xzcat ../patch-5.11.8-9.xz | patch -p1
$ grep ^COMPRESS= /etc/initramfs-tools/initramfs.conf
COMPRESS=zstd
$ time make -j`nproc` bindeb-pkg
$ ls -1sS ../*5.11.9*
737300 ../linux-image-5.11.9+-dbg_5.11.9+-5_amd64.deb
59584 ../linux-image-5.11.9+_5.11.9+-5_amd64.deb
8040 ../linux-headers-5.11.9+_5.11.9+-5_amd64.deb
1124 ../linux-libc-dev_5.11.9+-5_amd64.deb
8 ../linux-5.11.9+_5.11.9+-5_amd64.buildinfo
4 ../linux-5.11.9+_5.11.9+-5_amd64.changes
$ sudo apt install ../linux-image-5.11.9+_5.11.9+-5_amd64.deb ../linux-headers-5.11.9+_5.11.9+-5_amd64.deb ../linux
-libc-dev_5.11.9+-5_amd64.deb
$ file /boot/initrd.img-5.11.9+
/boot/initrd.img-5.11.9+: Zstandard compressed data (v0.8+), Dictionary ID: None
$ ls --block-size=1 -s /boot/initrd.img-5.11.9+
41602048 /boot/initrd.img-5.11.9+
$ sudo shutdown -r now 'kernel upgrade'
問題なく zstd になりました.
参考URL
Debianのinitramfsの圧縮形式をzstdにしようというバグレポート.bullseyeはフリーズされているので入らない.
環境
$ dpkg-query -W initramfs-tools-core zstd
initramfs-tools-core 0.140
zstd 1.4.8+dfsg-2.1
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -srm
Linux 5.11.9+ x86_64
Linux Kernel 5.11 をセルフビルドしたメモ
Linux Kernel 5.11 がリリースされました.
F2FSの圧縮周りもアップデートがあるようなので試してみたくなりました.ということでセルフビルドしたらこれまで出なかったエラーが出たのでメモしておきます.
Warning
|
Debian sid amd64の 5.10.0-3-amd64 環境でビルドしました.Linux 5.9はビルドしたことがあるけれど,Linux 5.10はビルドしたことのない環境です. |
Linux 5.11 build時にエラー( BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
)
以下のようなエラーが発生しました.
$ make -j`nproc` bindeb-pkg
〜省略〜
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
〜省略〜
$ grep CONFIG_DEBUG_INFO_BTF ./.config
CONFIG_DEBUG_INFO_BTF=y
CONFIG_DEBUG_INFO_BTF
を無効にすることも可能ですが, dwarves
パッケージでDWARF utilitiesを導入するとこで解決しました.
$ sudo apt install dwarves
その他,DKMSでのVirtualBox moduleのビルドも失敗しました.これはVirtualBoxの対応待ちかなと思います.
ということで,以下のような感じで大丈夫そうです.
Linux 5.11のビルド
$ sudo apt install build-essential linux-source bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz \
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.sign (1)
$ unxz ./linux-5.11.tar.xz (2)
$ gpg --verify ./linux-5.11.tar.sign (3)
gpg: assuming signed data in './linux-5.11.tar'
gpg: Signature made Mon 15 Feb 2021 06:11:32 PM JST
gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Good signature from "Greg Kroah-Hartman <gregkh@linuxfoundation.org>" [unknown]
gpg: aka "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>" [undefined]
gpg: aka "Greg Kroah-Hartman <gregkh@kernel.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E
$ tar tvf ./linux-5.11.tar | lv (4)
$ tar xf ./linux-5.11.tar (5)
$ cd linux-5.11
- sourceと署名を入手
- 解凍
- 署名確認(署名はこちらで確認)
- アーカイブ確認
- アーカイブ展開
$ cp /boot/config-`uname -r` ./.config (1)
$ yes "" | make oldconfig (2)
$ tar xf ../linux_5.10.9-1.debian.tar.xz debian/certs/ (3)
$ time make -j`nproc` bindeb-pkg (4)
:
dpkg-deb: building package 'linux-libc-dev' in '../linux-libc-dev_5.11.0-1_amd64.deb'.
dpkg-deb: building package 'linux-image-5.11.0' in '../linux-image-5.11.0_5.11.0-1_amd64.deb'.
dpkg-deb: building package 'linux-image-5.11.0-dbg' in '../linux-image-5.11.0-dbg_5.11.0-1_amd64.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../linux-5.11.0_5.11.0-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
$ ls -1s ../linux*.deb (5)
7932 ../linux-headers-5.11.0_5.11.0-1_amd64.deb
728724 ../linux-image-5.11.0-dbg_5.11.0-1_amd64.deb
52136 ../linux-image-5.11.0_5.11.0-1_amd64.deb
1124 ../linux-libc-dev_5.11.0-1_amd64.deb
$ sudo apt install ../linux-image-5.11.0_5.11.0-1_amd64.deb ../linux-libc-dev_5.11.0-1_amd64.deb ../linux-headers-5.11.0_5.11.0-1_amd64.deb (6)
- 現在のkernel configをコピーする
- 新しい設定を既定値で設定
- Debianのkernel sourceから証明書をコピー(若しくは
CONFIG_SYSTEM_TRUSTED_KEYS=""
する) - cpu数を指定してビルド開始
- 出来上がったパッケージの確認
- 出来上がったパッケージを導入
$ sudo sbsign --key ~/MOK.priv --cert ~/MOK.pem /boot/vmlinuz-5.11.0 --output vmlinuz-5.11.0 (1)
$ sudo mv ./vmlinuz-5.11.0 /boot/vmlinuz-5.11.0
$ find /lib/modules/5.11.0/updates/dkms/ -type f | xargs -n1 sudo ./scripts/sign-file sha256 ~/MOK.priv ~/MOK.der (2)
- kernelに署名
- DKMSで作成したmoduleに署名
このあたりの処理は自動化できると思うんだけど未確認.
MOKの作成や,セキュアブートについては以下のページが参考になる.
環境
$ dpkg-query -W build-essential linux-source bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves sbsign
tool
bc 1.07.1-2+b2
build-essential 12.9
cpio 2.13+dfsg-4
dwarves 1.20-1
flex 2.6.4-8
kmod 28-1
libelf-dev:amd64 0.183-1
libncurses5-dev:amd64 6.2+20201114-2
libssl-dev:amd64 1.1.1j-1
linux-source 5.10.13-1
sbsigntool 0.9.2-2
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -mr
5.10.0-3-amd64 x86_64
$ uname -mr
5.11.0 x86_64
Linuxマルチモニタ環境のウェブブラウザでスクリーン共有を行うとすべてのスクリーンが共有されてしまう問題がChromiumで解決
例えばモニタの設定がこうなっている状態で
ウェブブラウザでJitsi MeetやZoomなどでスクリーン共有しようとすると複数のスクリーンがすべて一緒になって1つの画面として共有されてしまいます.
例えばLibreOffice でプレゼンテーションモードでセカンダリモニタにスライドをフルスクリーン表示させてそれを共有したいといったことがスクリーン共有で出来ませんでした.フルスクリーン表示の後そのウィンドウを共有することは出来ますが,途中で別のウィンドウを見せたい場合ウィンドウ共有をやり直さなければいけないのでとても面倒です.
これについて調べてみるとChromium では最近修正されたようです :)
以下からChromium のsnapshots binary を入手して試してみました.
試したバージョンは Chromium 85.0.4157.0
でした.
$ wget 'https://download-chromium.appspot.com/dl/Linux_x64?type=snapshots' -O ./chrome-linux.zip
$ unzip -l ./chrome-linux.zip | lv
$ unzip ./chrome-linux.zip
$ $ ./chrome-linux/chrome --version
Chromium 85.0.4157.0
$ ./chrome-linux/chrome --temp-profile --user-data-dir=`mktemp -d`
この環境で Jitsi Meet に接続して画面共有を試してみると Screen 1, Screen 2 とスクリーンごとに共有できるようになっていました :)
Stable に降りてくるのは暫く先でしょうが便利になりそうです.
ちなみにFirefox も少し調べてみましたが,以下のあたりでしょうか?未だ直ってなさそう?古いbugなので他にも上がってそちらで議論されていそうです.
$ dpkg-query -W chromium firefox chromium 81.0.4044.92-1 firefox 76.0.1-2 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
Linux ARM版Vivaldiを入れてみた
Operaの共同創設者でCEOだったJon Stephenson von Tetzchnerによって設立されたVivaldi Technologiesによって開発されているウェブブラウザがあります.
これまでx86/x64プラットホームのWindows/macOS/Linux版が提供されていましたが,2017/12/05にLinux ARM版(armhf)がリリースされました.
- Vivaldi for Linux ARM, Raspberry Pi | Vivaldi Browser
- Vivaldi on Raspberry Pi | Vivaldi Browser Help
Raspberry PiのRaspbianがメインのようですが,他のARM環境でも試したら普通に動きました :)
といってもやはりRAM512MBのようなマシンでは辛いですね.RAM2GBのマシンだと今のところいい感じそうです.Midoriやqutebrowserでうまく表示できないMastodonやgmail/Google+なども問題なく表示できますし,Chromeの拡張機能も使えます.
Linux ARM版Vivaldiの入手と確認
deb pkgダウンロード
$ wget https://downloads.vivaldi.com/stable/vivaldi-stable_1.13.1008.34-1_armhf.deb
hash
hashとか見当たらないけど手元ではこんな感じだった
$ md5sum vivaldi-stable_1.13.1008.34-1_armhf.deb 7515f51385a9a264ad5bb7612438aeda vivaldi-stable_1.13.1008.34-1_armhf.deb $ sha1sum vivaldi-stable_1.13.1008.34-1_armhf.deb 6b103d205f6aa7a5f3b394ba8d32dc9ca87bf0cd vivaldi-stable_1.13.1008.34-1_armhf.deb $ sha256sum vivaldi-stable_1.13.1008.34-1_armhf.deb e7af5d021bf0c2968fcf0271e8f741552e34bcf2d032318eb8ea95356067297d vivaldi-stable_1.13.1008.34-1_armhf.deb $ sha512sum vivaldi-stable_1.13.1008.34-1_armhf.deb f47f2d26e8045af9ba680129feca765cf3f9dc7ea76930071e9688ef50aa78a482b40ba5747fb4470d30520177bda371ec79e5a210a93dcf2e49251425001c6d vivaldi-stable_1.13.1008.34-1_armhf.deb
パッケージ情報確認
$ dpkg-deb -I ./vivaldi-stable_1.13.1008.34-1_armhf.deb 新形式 debian パッケージ、バージョン 2.0。 サイズ 45154158 バイト: コントロールアーカイブ = 9840 バイト。 1269 バイト、 16 行 control 15872 バイト、 442 行 * postinst #!/bin/sh 12544 バイト、 324 行 * postrm #!/bin/sh 1220 バイト、 42 行 * prerm #!/bin/sh Package: vivaldi-stable Version: 1.13.1008.34-1 Architecture: armhf Maintainer: Vivaldi Package Composer <packager@vivaldi.com> Installed-Size: 131921 Pre-Depends: dpkg (>= 1.14.0) Depends: gconf-service, libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.16), libcairo2 (>= 1.6.0), libcups2 (>= 1.4.0), libdbus-1-3 (>= 1.2.14), libexpat1 (>= 2.0.1), libfontconfig1 (>= 2.8.0), libgcc1 (>= 1:4.4.0), libgconf-2-4 (>= 3.2.5), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.28.0), libgtk-3-0 (>= 3.9.10), libnspr4 (>= 2:4.9-2~), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libx11-6 (>= 2:1.4.99.1), libx11-xcb1, libxcb1 (>= 1.6), libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6 (>= 2:1.2.99.4), libxrandr2 (>= 2:1.2.99.3), libxrender1, libxss1, libxtst6, ca-certificates, fonts-liberation, libnss3 (>= 3.26), xdg-utils (>= 1.0.2), wget Recommends: adobe-flashplugin, chromium-codecs-ffmpeg-extra Conflicts: vivaldi-beta, vivaldi-preview Replaces: vivaldi-beta, vivaldi-preview Provides: www-browser Section: web Priority: optional Homepage: https://vivaldi.com Description: A new browser for our friends Vivaldi browser is made with power users in mind by people who love the Web.
導入
とりあえずDebian jessie armhf/Ubuntu 16.04 LTS aarch64で動いている.
Debian/Ubuntu等
$ sudo dpkg -i ./vivaldi-stable_1.13.1008.34-1_armhf.deb
以下のように依存パッケージが足りない場合は,
dpkg: 依存関係の問題により vivaldi-stable:armhf の設定ができません: vivaldi-stable:armhf は以下に依存 (depends) します: libnss3 (>= 3.26)...しかし: パッケージ libnss3:armhf はまだインストールされていません。 dpkg: パッケージ vivaldi-stable:armhf の処理中にエラーが発生しました (--install): 依存関係の問題 - 設定を見送ります
こんな感じで足りないpkgが入るはず.その後見送られていたvivaldi-stableの設定の続きも実行される.
$ sudo apt install -f
64bit ARM環境
aarch64でも試した.
既にadd archtecture armhfして色々入れていた環境に入れてクリーンな環境で検証していないけど多分こんな感じ.
$ sudo dpkg --add-architecture armhf $ sudo apt update $ sudo dpkg -i ./vivaldi-stable_1.13.1008.34-1_armhf.deb $ sudo apt install -f
—-追記—-
クリーンなDragonBoard 410cにDebian stretch aarch64(lonaro)を入れた環境でも確認したがこの手順でokだった :)
—-追記終わり—-
.debが使えない環境
deb以外の環境ではこんな感じで適当な場所に展開して動かせた.
$ mkdir -p ~/opt/vivaldi
$ ar p vivaldi-stable_1.13.1008.34-1_armhf.deb data.tar.xz | tar xJ -C ~/opt/vivaldi
$ rm vivaldi-stable_1.13.1008.34-1_armhf.deb
$ ~/opt/vivaldi/opt/vivaldi/vivaldi
Slackwareだと以下のsctiptが使えそう(未確認)
問題
sandbox
もし,こんなエラーが出たら
$ ~/opt/vivaldi/opt/vivaldi/vivaldi [13021:13021:1205/215600.516642:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/matoken/opt/vivaldi/opt/vivaldi/vivaldi-sandbox is owned by root and has mode 4755. Aborted[This script will find the latest Vivaldi binary package, download it and repackage it into Slackware format.](https://gist.github.com/ruario/dcbba70da900dac68fcc883542ff7ace "This script will find the latest Vivaldi binary package, download it and repackage it into Slackware format.")
こんな感じでオーナーとパーミッションを設定したらok.
$ chmod 4755 ~/opt/vivaldi/opt/vivaldi/vivaldi-sandbox
$ sudo chown root.root ~/opt/vivaldi/opt/vivaldi/vivaldi-sandbox
若しくは --no-sandbox
option
$ ~/opt/vivaldi/opt/vivaldi/vivaldi --no-sandbox
日本語豆腐問題
とりあえず適当な日本語フォント(今回はVLゴシック)を入れて,Vivaldiを再起動で直った.(Dejavuが入っていたので指定してみたけど直らなかった)
$ sudo apt install fonts-vlgothic
関連
- ARM版VivaldiとりあえずRaspberry PiではないARMのDebianで動かしてみた 豆腐は多分設定で直るんだろうけどどこや……
- ここにあった しかしこの板にはまともなフォント入ってなかった
- Dejavuが入ってたのでそれ指定してみたら変わらず
- aarch64でも動かそうとしてたんだけどdisk fullで諦めた
鹿児島Linux勉強会 2017.10に参加
鹿児島らぐの鹿児島Linux勉強会 2017.10に参加してきました.
日時
|
会場
|
例によって自転車でポタポタと桜島フェリー経由で移動.
火山灰や雨が心配でしたが,往路はどちらも問題なく快適でした.
フェリーでメールチェックをするとパケットが250MBを切ったとのメールが.確認すると残り54MB!想定外の減り方です.
確認するとIFTTTの写真連携がmobileで有効になっていたのが原因でした…….
フェリーで渡った後はイルカ眺めてはなまるうどんでかけうんどん食べて中町自転車等駐輪場に駐輪.ジュンク堂書店に寄って,ACアダプタを忘れたのでダイソーアオヤマで
200円のAC-USB変換を購入(会場の電源タップについていたのでいらなかった)
ダイソーアオヤマでは先月売っていた500円のLipoモバイルバッテリーは売り切れていて,300円の1860入りモバイルバッテリーは在庫豊富でした.
丸善とアニメイトも行きたかったけど時間がなくて断念.会場のTUKUDDOへ.
TUKUDDOでは電源アダプタとプロジェクタの用意.ここはプロジェクタにChromeCastが繋がっているので発表者が変わるたびにケーブルを繋ぎ直したりしなくていいので便利
です :)
参加者は途中参加者を含めて6人.内新規の方が1名いらっしゃいました.
発表内容は,
-
ZabbixとVulsをDocker上で連携
その他相談として,
-
システムのアップデートの相談
-
システム等のライフサイクルの話
-
-
(TA募集)
-
などがありました.
自分の発表もう少し伸ばした方が良かったかもと思いつつ脱線しながら時間潰せました.
次回の日程の希望日は特に出ず,早く決めて欲しいという意見が.
とりあえずASNARO-2(イプシロン)打ち上げが延期になったので11/11(Sat)かなーとか言いつつ解散でした.
自分は自転車を回収して県立図書館で本を2冊借りて(キャリアつけ忘れたので少なめに)ニシムタに寄って垂水フェリー経由で帰宅しました.
垂水から雨と風が強くてちょっと難儀しました.雨風は自転車には辛いですね.
次回の情報などはSiteやMLで確認してください.
Vulsの特集あり
AsciiDocFXをARM64環境とかで試す
最近軽めのライブプレビューが出来てARM環境でも動くAsciiDoc環境がないかなーと探しています.今回はAsciiDocFX.
Java製のマルチプラットホームエディタ.ライブプレビュー機能もあり.
Asciidoc FX is a book / document editor to build PDF, Epub, Mobi and HTML books, documents and slides. AsciidocFX is also a winner of https://www.oracle.com/corporate/pressrelease/dukes-award-102815.html[Duke’s Choice Award 2015].
導入
アーカイブをダウンロードして展開するだけ.アーカイブはOS別にJRE同梱版とJREなし版がある.
Linux版JRE同梱版は中を見るとamd64だった.他のarchtectureではNo_JREを選ぶしかなさそう.
$ wget https://github.com/asciidocfx/AsciidocFX/releases/download/v1.5.5/AsciidocFX_Linux_No_JRE.tar.gz
$ tar xvf AsciidocFX_Linux_No_JRE.tar.gz
$ AsciidocFX/bin/AsciidocFX
OpenJDKで動かす場合は openjfx
pkgも必要.
$ sudo apt install openjdk-8-jre openjfx
ARM64 + OracleJava環境では動作させることができていない.
警告
動作はしたが, overlay-scrollbar
が見つからないという警告メッセージが出る.
$ ./AsciidocFX
Gtk-Message: Failed to load module "overlay-scrollbar"
overlay-scrollbar-gtk2
pkgを導入することで解決.
$ sudo apt install overlay-scrollbar-gtk2
使い勝手
-
ライブプレビューがあるのはやはり便利
-
よくずれるけども……
-
-
動作はCore2Duoマシンでも起動には時間がかかるが起動すれば問題なく利用できる
-
ARM64(1.2GHz 64-Bit Quad-Core ARM Cortex A54)+OpenJDK環境ではキー入力からのタイムラグが気になって辛い
-
-
書き出しフォーマットがHTML, PDF, Ebook(mobi/Epub), Docbookと豊富
-
しかしGUIでしか利用できないようでMarpと同じようなもどかしさがある
-
-
基本的に3ペインで,左端はファイラー,アウトライン,最近使ったファイルが利用できるが閉じることも出来る(左端のアクティブなタブをクリック)
-
右端ペインはプレビュー,設定が可能でこれも閉じること出来る(右端のアクティブなタブをクリック)
-
マウスの中ボタンや,shift+Insでの貼付けができない
-
通常のコピー,ペーストもできなくなることがある
-
利用中にフォントが滲むような表示になる
-
エディタ画面やプレビュー画面は更新で直るが他の部分は起動し直さないと直らない
-
てことでマウス中ボタン貼り付けや手持ちのARMで重いってことで選外に.