8月 03

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で重いってことで選外に.

8月 01

OpenJDK環境でAsciidocFXを動かす

AsciidocFXのLinux版はJRE同梱版(amd64のみ)とJREなし版が配布されています.
OpenJDKで動かないなと思っていたのですが,調べてみると以下のようなissueが.

てことでOpenJFXの導入を試してみたらamd64でもarm64環境でも起動しました :)
しかし手元のarm64環境ではキー入力してから表示されるまでのラグが結構気になるので実用にはちょっと辛そうでした.

$ sudo apt install openjfx
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-0ubuntu1.16.04.2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
8月 01

Debian arm64環境にOracle Java導入

AsciidocFXはOpenJDKで動かないぽいのでOracle Java入れてみようとして少しはまりました.

Oracle Javaは java-package を使うようになったのかなるほど

ということでまずは java-package pkgを導入.

$ sudo apt install java-package

Oracleからjreを入手と思ったらarmのjaeおらんかった……

jdkには Linux ARM 32 Hard Float ABI, Linux ARM 64 Hard Float ABI があるのでこれを入れてみる.

しかしぐぬぬ.

$ make-jpkg ./jdk-8u141-linux-arm64-vfp-hflt.tar.gz
Creating temporary directory: /tmp/make-jpkg.wW7eUWpw3m
Loading plugins: /usr/share/java-package/common.sh /usr/share/java-package/javase.sh /usr/share/java-package/jdk-doc.sh /usr/share/java-package/oracle-jdk-doc.sh /usr/share/java-package/oracle-jdk.sh /usr/share/java-package/oracle-jre.sh /usr/share/java-package/oracle-server-jre.sh

Detected Debian build architecture: arm64
Detected Debian GNU type: aarch64-linux-gnu

No matching packaging method was found for jdk-8u141-linux-arm64-vfp-hflt.tar.gz.
Please make sure you are using a tar.gz or a self-extracting archive
Removing temporary directory: done

jdkのarchiveを展開して jaja -version とかしてみると動くようなのでダウンロードするファイルは合っていそう.

バグとして上がっていた.

こちらのパッチを使わせてもらう.

$ wget 'https://bugs.debian.org/cgi-bin/bugreport.cgi?att=2;bug=863247;filename=java-package.patch;msg=10' -O java-package.patch
$ sudo patch -P0 -d / < ./java-package.patch
$ time make-jpkg ./jdk-8u141-linux-arm64-vfp-hflt.tar.gz
  :
real    9m58.079s
user    8m53.790s
sys     1m29.510s
$ sha256sum oracle-java8-jdk_8u141_arm64.deb
93a9b6136195616db7e33749eec783a224a125c2b3529385b548a49f5189af12  oracle-java8-jdk_8u141_arm64.deb
$ sudo dpkg -i oracle-java8-jdk_8u141_arm64.deb

javaをOracleに切り替える.

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                              Priority   Status
 ------------------------------------------------------------
* 0            /usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java     1081      auto mode
  1            /usr/lib/jvm/java-8-openjdk-arm64/jre/bin/java     1081      manual mode
  2            /usr/lib/jvm/oracle-java8-jdk-arm64/jre/bin/java   318       manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/oracle-java8-jdk-arm64/jre/bin/java to provide /usr/bin/java (java) in manual mode
$ java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)

ところで,なぜOracle Javaをarmで動かしたかったかというとAsciidocFXが実用的かどうかを試したかったからでした.しかし警告を出してすぐに終了してしまいました…….
armで未実装の機能を使っている感じでしょうか?

$ AsciidocFX_Linux_No_JRE/AsciidocFX
Java HotSpot(TM) 64-Bit Server VM warning: G1 GC is disabled in this release.

てことで削除しました.(169MBの容量が開放されました)

$ sudo apt purge oracle-java8-jdk java-package
$ sudo rm -rf /usr/share/java-package
6月 05

Debianでもarm64でmozc build

20170605_00:06:13-17276

先日Ubuntu 16.04 arm64環境でmozc pkgを作りました.

今回はDebian stretch arm64でも作ってみました.

環境はQualcomの96BoardのDragonBoard 410cにDebian stretch aarch64のイメージ(dragonboard410c_sdcard_install_debian-233.zip)を使いました.

OSイメージの入手や導入方法などは以下のあたりにあります.

手元では以下のような感じでsd cardに書き込んだ後dipスイッチでsd起動にして起動してeMMCに導入しました.

$ md5sum dragonboard410c_sdcard_install_debian-233.zip
ef17a1602cf0ef300e123a3224e0699d  dragonboard410c_sdcard_install_debian-233.zip
$ unzip -l dragonboard410c_sdcard_install_debian-233.zip
Archive:  dragonboard410c_sdcard_install_debian-233.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
4055891968  2017-05-11 05:25   db410c_sd_install_debian.img
    13953  2017-05-04 21:45   LICENSE
---------                     -------
4055905921                     2 files
$ unzip -p dragonboard410c_sdcard_install_debian-233.zip LICENSE | lv
$ unzip -p dragonboard410c_sdcard_install_debian-233.zip db410c_sd_install_debian.img | pv | sudo dd of=/dev/mmcblk0 bs=4M
$ sync
$ sync
$ sync

後の手順はほぼ前回のUbuntuと同じですが,

dpkg-buildpackage: error: fakeroot not found, either install the fakeroot
package, specify a command with the -r option, or run this as root  

とfakerootが無いと起こられたので導入パッケージにfakerootを追加したのと,

virtual memory exhausted: Cannot allocate memory

という感じでコケたので以下のような感じでスワップファイルを追加して回避しました.前回のUbuntuを入れてる方の機械はRAM2GBなのでRAM1GB+SWAP1GBでも行けると思いますが念の為2GB追加しました.

$ dd if=/dev/zero of=/var/tmp/swap bs=1M count=2048
$ sudo chmod 600 /var/tmp/swap
$ sudo chown 0.0 /var/tmp/swap
$ sudo mkswap /var/tmp/swap
$ sudo swapon /var/tmp/swap
$ free
              total        used        free      shared  buff/cache   available
Mem:         945868      225736      444948       40784      275184      608980
Swap:       2097148           0     2097148

で,パッケージングと導入の手順はこんな感じでした.

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install build-essential devscripts fakeroot
$ sudo apt build-dep mozc
$ apt source mozc
$ wget https://gist.githubusercontent.com/matoken/afce66ce67392c11d3ed20d7bbab5833/raw/2bb0163f30291caa6ba7b41b3d4352c7e6c0b6a7/patch
$ patch -p0 < patch
$ cd mozc-2.19.2623.102+dfsg
$ time dpkg-buildpackage -us -uc -j4
   :
real    111m31.882s
user    88m2.352s
sys     10m59.828s
$ dch -i
$ head debian/changelog 
mozc (2.19.2623.102+dfsg-1.1) unstable; urgency=medium

  * Non-maintainer upload.
  * Update debian/control.
    - Add arm64 to Architecture list.

 -- K.I.Matohara <matoken@gmail.com>  Sat, 03 Jun 2017 22:15:19 +0000

mozc (2.19.2623.102+dfsg-1) unstable; urgency=medium

$ dpkg-buildpackage -j4
$ ls -la ../*dfsg-1.1_*
-rw-r--r-- 1 linaro linaro  2130510 Jun  4 01:10 ../emacs-mozc-bin-dbgsym_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro   157710 Jun  4 01:10 ../emacs-mozc-bin_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro    28118 Jun  4 01:10 ../emacs-mozc_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro  2765446 Jun  4 01:10 ../fcitx-mozc-dbgsym_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro   224574 Jun  4 01:10 ../fcitx-mozc_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro  3088148 Jun  4 01:10 ../ibus-mozc-dbgsym_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro   189886 Jun  4 01:10 ../ibus-mozc_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro    14134 Jun  4 01:10 ../mozc-data_2.19.2623.102+dfsg-1.1_all.deb
-rw-r--r-- 1 linaro linaro 24825020 Jun  4 01:11 ../mozc-server-dbgsym_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro 12310852 Jun  4 01:11 ../mozc-server_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro  9823936 Jun  4 01:11 ../mozc-utils-gui-dbgsym_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro   755758 Jun  4 01:11 ../mozc-utils-gui_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro    18228 Jun  4 04:00 ../mozc_2.19.2623.102+dfsg-1.1_arm64.buildinfo
-rw-r--r-- 1 linaro linaro     6898 Jun  4 04:00 ../mozc_2.19.2623.102+dfsg-1.1_arm64.changes
-rw-r--r-- 1 linaro linaro  1921396 Jun  4 01:10 ../uim-mozc-dbgsym_2.19.2623.102+dfsg-1.1_arm64.deb
-rw-r--r-- 1 linaro linaro   192712 Jun  4 01:10 ../uim-mozc_2.19.2623.102+dfsg-1.1_arm64.deb
$ sudo apt install ../mozc-server_2.19.2623.102+dfsg-1.1_arm64.deb ../fcitx-mozc_2.19.2623.102+dfsg-1.1_arm64.deb ../mozc-data_2.19.2623.102+dfsg-1.1_all.deb ../mozc-utils-gui_2.19.2623.102+dfsg-1.1_arm64.deb 
$ sudo apt install fcitx-ui-classic

これも一応この辺に置いておきました.多分そのうち消します.(Versionが上がった頃?)

これでとりあえず手元のUbuntu/Debianで利用できるようになりましたが,mozcのバージョンアップ毎にbuildが必要です.なのでBTS予定.あとクロスで試すのとMultiarchも試してみたいです.

参考URL

4月 19

Raspberry PiのFreedomBoxで/var/lib/dpkg/statusが壊れたのを復旧

Raspberry PiでFreedomBoxを試しているのですが,ストレージがmicroSDのせいか修正していたパッケージの依存関係か何かがおかしくなったせいか/var/lib/dpkg/statusが壊れてしまいました.

$ sudo apt update
Hit:1 http://cdn-fastly.deb.debian.org/debian testing InRelease
Reading package lists... Error!
E: Unable to parse package file /var/lib/dpkg/status (1)
W: You may want to run apt-get update to correct these problems
E: The package cache file is corrupted
E: パッケージファイル /var/lib/dpkg/status を解釈することができません (1)
W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません
E: パッケージキャッシュファイルが壊れています

apt-get updateで治るのかなと思って叩いてみましたが駄目でした.

Debian リファレンス第2章 Debian パッケージ管理によると,

2.6.5. パッケージセレクションの復元

もし何らかの理由で “/var/lib/dpkg/status” の内容が腐った場合には、Debian システムはパッケージ選択データーが失われ大きな打撃を被ります。古い “/var/lib/dpkg/status” ファイルは、”/var/lib/dpkg/status-old” や “/var/backups/dpkg.status.*” としてあるので探します。

“/var/backups/” は多くの重要な情報を保持しているので、これを別のパーティション上に置くのも良い考えです。

とのことなので,/var/lib/dpkg/status-oldから復旧をと思いましたがこれも既に壊れているバージョン./var/backups/dpkg.status.0はまだ壊れていなかったのでこれで上書きして復旧したようです.

$ sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

4月 12

ディスクイメージのデバイスマップが簡単に作れるkpartxを試す

以下のページでkpartxというディスクのデバイスマップを作るコマンドがあるのを知りました

そこでまず、kpartxを使って各パーティションのデバイスマップを作ります。
$ sudo /sbin/kpartx -av /opt/atde3-20100309.img
add map loop2p1 : 0 497952 linear /dev/loop2 63
add map loop2p2 : 0 33045705 linear /dev/loop2 498015
$ ls /dev/mapper/
control loop2p1 loop2p2
これでディスクイメージの各物理パーティションに対応したデバイスマップができました。fdiskで見えていたパーティションはそれぞれ、/dev/mapper/loop2p1 /dev/mapper/loop2p2 として参照できるようになっています。

これまでは以下のページのようにfdiskコマンドでパーティション情報を確認してmount時にoffsetを指定していました.

kpartxを使うとこの作業が簡単になりそうなので試してみました.

Debian sid amd64ではそのままkpartxパッケージだったのでこれを導入します.(Ubuntu 17.04 amd64でも同様でした.)

$ sudo apt install kpartx

丁度Raspbian jessie 2017-04-10が出たのでこれで試してみます.

$ unzip -l 2017-04-10-raspbian-jessie-lite.zip 
Archive:  2017-04-10-raspbian-jessie-lite.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
1297862656  2017-04-10 18:58   2017-04-10-raspbian-jessie-lite.img
---------                     -------
1297862656                     1 file
$ time unzip 2017-04-10-raspbian-jessie-lite.zip
Archive:  2017-04-10-raspbian-jessie-lite.zip
  inflating: 2017-04-10-raspbian-jessie-lite.img  

real    2m58.438s
user    0m27.512s
sys     0m2.132s
 sudo /sbin/kpartx -av 2017-04-10-raspbian-jessie-lite.img
add map loop0p1 (254:3): 0 83968 linear 7:0 8192
add map loop0p2 (254:4): 0 2442728 linear 7:0 92160
$ ls -lA /dev/mapper/
合計 0
crw------- 1 root root 10, 236  4月 11 23:37 control
lrwxrwxrwx 1 root root       7  4月 12 06:07 loop0p1 -> ../dm-3
lrwxrwxrwx 1 root root       7  4月 12 06:07 loop0p2 -> ../dm-4
lrwxrwxrwx 1 root root       7  4月 11 23:37 sda3_crypt -> ../dm-0
lrwxrwxrwx 1 root root       7  4月 11 23:37 x220--vg-root -> ../dm-1
lrwxrwxrwx 1 root root       7  4月 11 23:37 x220--vg-swap_1 -> ../dm-2

デバイスマッピングされています.これで簡単にmount出来ました.

$ sudo mount -o ro /dev/mapper/loop0p1 /media/mk/pi-boot
$ sudo mount -o ro /dev/mapper/loop0p2 /media/mk/pi-root/
$ mount | grep /dev/mapper/loop0p
/dev/mapper/loop0p1 on /media/mk/pi-boot type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
/dev/mapper/loop0p2 on /media/mk/pi-root type ext4 (ro,relatime,data=ordered)
$ ls /media/mk/pi-boot
COPYING.linux     bcm2708-rpi-0-w.dtb     bcm2708-rpi-cm.dtb   bcm2710-rpi-cm3.dtb  config.txt    fixup_db.dat  kernel.img   start.elf     start_x.elf
LICENCE.broadcom  bcm2708-rpi-b-plus.dtb  bcm2709-rpi-2-b.dtb  bootcode.bin         fixup.dat     fixup_x.dat   kernel7.img  start_cd.elf
LICENSE.oracle    bcm2708-rpi-b.dtb       bcm2710-rpi-3-b.dtb  cmdline.txt          fixup_cd.dat  issue.txt     overlays     start_db.elf
$ ls /media/mk/pi-root
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

そしてchrootしてみたり

$ sudo mount -o remount,rw /media/mk/pi-root
$ sudo cp -p /usr/bin/qemu-arm-static /media/mk/pi-root/usr/bin
$ sudo chroot /media/mk/pi-root/ /bin/bash
# dpkg --get-selections "*" | wc -l
427

アンマウントして元に戻します.

# exit
$ sudo umount /media/mk/pi-*
$ sudo kpartx -d /dev/mapper/loop0p1
$ sudo kpartx -d /dev/mapper/loop0p2
$ rm ./2017-04-10-raspbian-jessie-lite.img

便利ですね :)
後は圧縮ファイルをそのまま使えると便利なんですがムリカナ?

4月 11

OsMoのTripページからGPXを入手するメモ

土日に撮った写真にジオタグをつけようとそのときロギングしていたGPSのログを吸い出そうとしたら見当たりません.GPSロガーの設定がいつの間にかログを保存しない設定になっていました.ボタン部分のゴム部分に穴が開いてしまって防水ではなくなったので土曜の雨の時カバンに入れていたのでそのときにキーロックし忘れて設定が変わったのかもしれません.

AndroidスマホでOsMoDroidも動作させていたのでこれがログを残していないかと見てみると古いものしかありません.

$ jmtpfs android/
$ ls -ltrA android/内部ストレージ/OsMoDroid | tail -1
-rw-r--r--  1 mk mk  803382  2月 25 21:35 20170225070457.gpx
$ find android -iname "*osmo*"
android/内部ストレージ/osmand/tracks/osmo
android/内部ストレージ/OsMoDroid
android/SDカード/Android/obb/net.osmand.plus/tracks/osmo
$ ls -ltrA android/内部ストレージ/OsMoDroid/ | tail -1
-rw-r--r-- 1 mk mk  803382  2月 25 21:35 20170225070457.gpx

自動的に生成されるTripページにルートが表示されるのでこれが取得できないかソースを見てみました.

それっぽいURLをこんな感じで抜き出して,

$ w3m -dump_source 'https://osmo.mobi/h/d8VhsthhuF9rpEDUCNXjOhHxJHdmiNQNRsoR4AEmpF' | sed -n "s/^.*getJSON('\([^']*\)'.*$/\1/p"
https://api.osmo.mobi/session_get?url=d8VhsthhuF9rpEDUCNXjOhHxJHdmiNQNRsoR4AEmpF&mode=

そのurlの中を見るとJSONでGPXの項目があるのでjqで抜き出す

$ w3m -dump_source 'https://osmo.mobi/h/d8VhsthhuF9rpEDUCNXjOhHxJHdmiNQNRsoR4AEmpF' | sed -n "s/^.*getJSON('\([^']*\)'.*$/\1/p" | jq -r .gpx

https://st.osmo.mobi/htg/d/8/V/hsthhuF9rpEDUCNXjOhHxJHdmiNQNRsoR4AEmpF.gpx

これをDLするとGPXだった.

$ wget https://st.osmo.mobi/htg/d/8/V/hsthhuF9rpEDUCNXjOhHxJHdmiNQNRsoR4AEmpF.gpx

繋げるとこんな感じ

$ w3m -dump_source 'https://osmo.mobi/h/d8VhsthhuF9rpEDUCNXjOhHxJHdmiNQNRsoR4AEmpF' | sed -n "s/^.*getJSON('\([^']*\)'.*$/\1/p" | xargs w3m -dump_source | jq -r .gpx | wget -i -

GPX Viewerで開こうとするとファイルオープン画面から帰ってこなかったですが,GpsPruneだと開けました.ちょっと荒いけど無いよりは全然いいですね.

20170411_01:04:30-17480

4月 05

etckeeperのmanに載っているREADMEを読もうと思ったら無い

Debian sid amd64のetckeeperのmanに載っているREADMEを読もうと思ったらそんなファイルは無い.

$ man etckeeper | grep -B1 README
SEE ALSO
       /usr/share/doc/etckeeper/README.md.gz
$ lv /usr/share/doc/etckeeper/README.md.gz
/usr/share/doc/etckeeper/README.md.gz: No such file or directory
$ ls -lA /usr/share/doc/etckeeper/
合計 40
-rw-r--r-- 1 root root  4679  7月 18  2016 README.mdwn.gz
-rw-r--r-- 1 root root 11645  8月  2  2016 changelog.Debian.gz
-rw-r--r-- 1 root root  1785  7月 18  2016 copyright
-rw-r--r-- 1 root root   948  7月 18  2016 index.mdwn
-rw-r--r-- 1 root root   483  7月 18  2016 install.mdwn
-rw-r--r-- 1 root root    55  7月 18  2016 news.mdwn
-rw-r--r-- 1 root root   309  7月 18  2016 todo.mdwn
$ dpkg -L etckeeper | grep README
/etc/etckeeper/commit.d/README
/etc/etckeeper/init.d/README
/etc/etckeeper/post-install.d/README
/etc/etckeeper/pre-commit.d/README
/etc/etckeeper/pre-install.d/README
/etc/etckeeper/unclean.d/README
/etc/etckeeper/uninit.d/README
/etc/etckeeper/update-ignore.d/README
/usr/share/doc/etckeeper/README.mdwn.gz
$ dpkg-query -W etckeeper
etckeeper       1.18.5-1

/usr/share/doc/etckeeper/README.mdwn.gzが内容からしてそれぽい.
バグぽいので報告しようかと思って既存のバグを眺めると既に報告されて上流で修正済みのようでした.

4月 05

バックライト制御コマンドのybacklight

awesome wmでバックライトの制御にxbacklightコマンドを使っていたのですが,手元のDebian sid amd64環境ではNo outputs have backlight propertyというエラーで現在利用できなくなっています.

$ xbacklight -get
No outputs have backlight property
$ xbacklight = 100
No outputs have backlight property
$ xbacklight + 10
No outputs have backlight property
$ xbacklight - 10
No outputs have backlight property

workaroundとしてこんな感じで手で叩いていてちょっとあれです.持ち出さないPCなのであまり操作しないのでどうにかなってるけど不便です.

$ sudo sh -c "echo 1000 > /sys/class/backlight/intel_backlight/brightness"

しかし,gdm3のログイン画面ではFn+Home/Fm+Endでバックライトの変更が出来ることに気づきました.
なんか進展あったのかな?とバグレポを眺めているとそれらしいものは見つからないけれど,

ybacklightというものが紹介されているのに気づきました.

利用方法はxbacklightと同じです.

$ ybacklight -h
Usage: /home/mk/bin/ybacklight [options]
  Options:
  -d <driver> or -driver <driver>: Use driver <driver> (NB: -display is
                                   also supported for compatibility)
  -help: Print this help
  -set <percentage> or = <percentage>: Set backlight to <percentage>
  -inc <percentage> or + <percentage>: Increase backlight by <percentage>
  -dec <percentage> or - <percentage>: Decrease backlight by <percentage>
  -get: Get backlight percentage
  -time <ignored> or -steps <ignored>: Unsupported, ignored
  -v: Verbose output

読むのはいけますが,変更は出来ません.

$ ybacklight -get
30
$ ybacklight +10
Permissions conflict.  Can't write to: ( /sys/class/backlight/intel_backlight/brightness )

/sys/class/backlight/intel_backlight/brightnessに書き込み権をつけると行けます.

$ ls -l /sys/class/backlight/intel_backlight/brightness
-rw-r--r-- 1 root root 4096  4月  5 06:48 /sys/class/backlight/intel_backlight/brightness
$ sudo chmod o+w /sys/class/backlight/intel_backlight/brightness
$ ls -l /sys/class/backlight/intel_backlight/brightness
-rw-r--rw- 1 root root 4096  4月  5 06:48 /sys/class/backlight/intel_backlight/brightness
$ ybacklight +10
40
$ ybacklight -10
30

ちょっと微妙.

4月 05

gdm3でユーザーリストの非表示が無効になっていたのを調べる

Debian sid amd64のgdm3の画面でユーザーリストを表示しないようにしていたのですが,表示されるようになっていました.

これまでは,
/etc/gdm3/greeter.dconfファイルの以下の設定を有効にしていました.

disable-user-list=true

$ apt-get changelog gdm3( /usr/share/doc/gdm3/changelog.Debian.gz)を見るとこんな記述が,

  * greeter.dconf-defaults: this is a new file to remove the old 
    greeter.gsettings
  * Convert greeter.gsettings to greeter.dconf-defaults at postinst time 
    and use ucf to update the file.
  * Make a direct symlink to the new greeter.dconf-defaults file in the 
    dconf defaults directory.

gdm3 (3.12.1-1)からgreeter.dconf-defaultsに変わったようです.

$ ls /etc/gdm3/
Init  PostLogin  PostSession  PreSession  Xsession  daemon.conf  daemon.conf.dpkg-dist  greeter.dconf  greeter.dconf-defaults  greeter.dconf-defaults.ucf-old

内容はほとんど同じなようです.

$ diff  /etc/gdm3/greeter.dconf /etc/gdm3/greeter.dconf-defaults
26,27d25
< #logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png'
< #fallback-logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png'
31d28
< 
33c30
< disable-user-list=true
---
> # disable-user-list=true
37,38c34,35
< #banner-message-enable=true
< #banner-message-text='Welcome!!!!!!!!!!!!!!!!!!!!!!'
---
> # banner-message-enable=true
> # banner-message-text='Welcome'

ということで/etc/gdm3/greeter.dconf-defaultsdisable-user-list=trueを有効にしたらOKでした.

diff --git a/gdm3/greeter.dconf-defaults b/gdm3/greeter.dconf-defaults
index c5b0786..b0ee10c 100644
--- a/gdm3/greeter.dconf-defaults
+++ b/gdm3/greeter.dconf-defaults
@@ -27,7 +27,7 @@ logo='/usr/share/icons/hicolor/48x48/emblems/emblem-debian-white.png'
 fallback-logo='/usr/share/icons/hicolor/48x48/emblems/emblem-debian-white.png'

 # - Disable user list
-# disable-user-list=true
+disable-user-list=true
 # - Disable restart buttons
 # disable-restart-buttons=true
 # - Show a login welcome message

#ちなみにこのとき$ sudo service gdm3 restartとしたらなんかおかしくなってしまいました…….OSごと再起動したら治りました.

次から気づきやすいように

$ sudo dpkg-reconfigure apt-listchanges

で「APTで表示すべき変更内容の種類を選択してください。」を「両方 – ニュースと changelog の両方」にしておきました.testing/unstable辺りはちゃんと読まないとですね…….

※apt-listchangesが入っていない場合は$ sudo apt install apt-listchanges