2018/07/28

CUPS Web ブラウザインタフェースが「見つかりません」

CUPS Web ブラウザインタフェース(http://localhost:631)にアクセスると「見つかりません」と表示されます。

/etc/cups/cups-file.confのコメントアウトされていたDocumentRootを適切に設定したところ、正しく表示されるようになりました。

$ sudo lv /etc/cups/cups-files.conf

〜省略〜

# Location of the static web content served by the scheduler...
#DocumentRoot /usr/share/doc/cups
DocumentRoot /usr/share/doc/cups-2.2.8/html

 〜省略〜


CUPSを再起動します。
$ sudo /etc/rc.d/init.d/cups restart
cups: restarted scheduler.

2018/06/12

PortabookのPlamo Linuxでバッテリー動作時は省電力モードにする

PortabookのPlamo Linuxでバッテリー動作時は省電力モードにするようにしました。

まずacpi_listenで電源を抜き挿しした際に発生するイベントを調べます。

# acpi_listen
ac_adapter ACPI0003:00 00000080 00000001 <-- 電源を挿した
battery PNP0C0A:01 00000080 00000001
battery PNP0C0A:01 00000081 00000001
ac_adapter ACPI0003:00 00000080 00000001
battery PNP0C0A:01 00000080 00000001
battery PNP0C0A:01 00000081 00000001
ac_adapter ACPI0003:00 00000080 00000000 <-- 電源を抜いた
battery PNP0C0A:01 00000080 00000001
battery PNP0C0A:01 00000081 00000001
ac_adapter ACPI0003:00 00000080 00000000
battery PNP0C0A:01 00000080 00000001
battery PNP0C0A:01 00000081 00000001


電源を挿した際に発生するイベントの捕捉と、させる動作の作成です。

# cat /etc/acpi/events/ac-pluged
event=ac_adapter ACPI0003:00 00000080 00000001
action=/etc/acpi/ac-pluged.sh


電源を挿した際にさせる動作です。

# cat /etc/acpi/ac-pluged.sh
#!/bin/sh
echo '1' > '/proc/sys/kernel/nmi_watchdog'
echo '' > '/proc/sys/vm/dirty_writeback_centisecs'
echo 'on' > '/sys/bus/usb/devices/1-4/power/control'
echo 'on' > '/sys/bus/pci/devices/0000:00:1f.0/power/control'
echo 'on' > '/sys/bus/pci/devices/0000:00:14.0/power/control'
echo 'on' > '/sys/bus/pci/devices/0000:00:02.0/power/control'
echo 'on' > '/sys/bus/pci/devices/0000:00:0b.0/power/control'
echo 'on' > '/sys/bus/pci/devices/0000:00:00.0/power/control'
echo 'on' > '/sys/bus/pci/devices/0000:00:1a.0/power/control'
# /usr/sbin/iw dev wlan0 set power_save off

exit 0


電源を抜いた際に発生するイベントの捕捉と、させる動作の作成です。

# cat /etc/acpi/events/ac-unpluged
event=ac_adapter ACPI0003:00 00000080 00000000
action=/etc/acpi/ac-unpluged.sh


電源を抜いた際にさせる動作です。

# cat /etc/acpi/ac-unpluged.sh
#!/bin/sh
echo '0' > '/proc/sys/kernel/nmi_watchdog'
echo 'auto' > '/proc/sys/vm/dirty_writeback_centisecs'
echo 'auto' > '/sys/bus/usb/devices/1-4/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:02.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:0b.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.0/power/control'
# /usr/sbin/iw dev wlan0 set power_save on

exit 0


電源を抜き挿しした際にさせる動作の中で実行しているコマンドは、powertopコマンドをインストールして調べました。

省電力モードにする際は
# powertop --auto-tune
を実行すれば良いのですが、省電力モードを解除するのにコマンド一発で出来るのか分かりませんでした。

なら、省電力モードにする際もpowertopをインストールしていなくても実行出来るようにしようにしようかなと。


この設定をして省電力モードにしてはみたのですが、あまり効果はない気がします。

2018/06/11

PortabookのPlamo LinuxでGNU Screenのhardstatusにバッテリー残量を表示する

PortabookのPlamo LinuxでGNU Screenのhardstatusにバッテリー残量を表示しました。


まず次のコマンドを実行します。

$ upower --enumerate
/org/freedesktop/UPower/devices/line_power_ADP1
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/DisplayDevice


upower --enumerateの実行結果のどれかが正解らしいです。
とりあえずupower -iの引数に指定してみます。

$ upower -i /org/freedesktop/UPower/devices/line_power_ADP1
native-path: ADP1
power supply: yes
updated: 2018年06月11日 20時19分05秒 (942 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: no
icon-name: 'ac-adapter-symbolic'

$ upower -i /org/freedesktop/UPower/devices/battery_BAT0
native-path: BAT0
model: VIPER49
serial: 12345678
power supply: yes
updated: 2018年06月11日 20時35分05秒 (40 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 15.8346 Wh
energy-empty: 0 Wh
energy-full: 18.0348 Wh
energy-full-design: 18.24 Wh
energy-rate: 4.0128 W
voltage: 4.031 V
time to empty: 3.9 hours
percentage: 88%
capacity: 98.875%
icon-name: 'battery-full-symbolic'
History (charge):
1528716905 88.000 discharging
History (rate):
1528716905 4.013 discharging

$ upower -i /org/freedesktop/UPower/devices/DisplayDevice
power supply: yes
updated: 2018年06月11日 20時39分05秒 (15 seconds ago)
has history: no
has statistics: no
battery
present: yes
state: discharging
warning-level: none
energy: 15.5458 Wh
energy-full: 18.0348 Wh
energy-rate: 4.0622 W
time to empty: 3.8 hours
percentage: 86%
icon-name: 'battery-full-symbolic'

/org/freedesktop/UPower/devices/battery_BAT0 か
/org/freedesktop/UPower/devices/DisplayDevice のどちらかが正解かと思いますが、より情報が取れている上の方を採用することにしました。
確証は持てませんが。


次のようなシェルスクリプトを作成してbattery percentageを取得します。

$ cat ‾/bin/battery_percentage
#!/bin/sh

upower -i /org/freedesktop/UPower/devices/battery_BAT0 ¥
| grep percentage ¥
| awk '{print $2}'

exit 0


.screenrcに次のように記述してhardstatusにバッテリー残量を取得します。

backtick 0 0 60 /home/hanaguro/bin/battery_percentage
hardstatus alwayslastline "Bat %0` | %c %m/%d | %w"


画像のようにhardstatusにバッテリー残量が表示されました。

2018/06/04

PortabookのPlamo Linux7.0b2(相当)でサスペンド

PortabookのPlamo Linux7.0b2(相当)でサスペンドし、その状態から復帰させる場合、以下の手順で行うことにしました。

(1) Fn + F2押下でディスプレイの電源を消す
(2) Fn + F5(Muteボタン)押下でサスペンド

(3) パワーボタン押下でサスペンドから復帰、さらにネットワークをリスタート
(4) Fn + F2押下でディスプレイの電源をつける


現在サスペンド中とかの情報が/sysとか/procから取ることができればパワーボタンだけで済ませるのですが、現状わからないのでFn + F5(Muteボタン)を利用することにしました。

ちなみにディスプレイの開閉でサスペンドとサスペンドからの復帰が行うことも考えましたが、
/proc/acpi/button/lid/LID0/state
は一度ディスプレイを閉じるとずっとcloseのままになってしまい使い物になりませんでした。


まずはacpi_listenコマンドでイベントを調べます。

# acpi_listen
button/mute MUTE 00000080 00000000 K <-- (Fn + F5)Muteボタン押下
button/power PBTN 00000080 00000000 <-- 電源ボタン押下


/etc/acpi/events以下にmutebtnというファイルを作成し、button/muteイベントが発生した際にどのファイルが実行されるかを記述します。

# cat /etc/acpi/events/mutebtn
event=button/mute
action=/etc/acpi/mutebtn.sh

muteボタン押下で/etc/acpi/mutebtn.shを呼ぶようにしました。


button/muteイベントが発生した際に実行されるファイルではpm-suspendコマンドを実行することでサスペンドします。

/etc/acpi/mutebtn.shでは
# cat /etc/acpi/mutebtn.sh
#!/bin/sh
pm-suspend


サスペンドからの復帰はパワーボタン押下です。/etc/acpi/events以下にpwrbtnというファイルを作成し、button/powerイベントが発生した際に実行されるファイルを記述します。

# cat /etc/acpi/events/pwrbtn
event=button/power
action=/etc/acpi/pwrbtn.sh

電源ボタン押下で/etc/acpi/pwrbtn.shを呼ぶようにしました。


button/powerイベントが発生した際に実行されるファイルでは/etc/init.d/networkをリスタートします。
サスペンドからの復帰後は無線LANが無効になってしまうためです。

# cat /etc/acpi/pwrbtn.sh
#!/bin/sh
/etc/init.d/network restart

2018/05/26

PortabookにPlamo Linux 7.0β1をインストール

PortabookにPlamo Linux 7.0β1をインストールしてみました。

インストール手順をメモしておかなかったのですが、覚えている限りの気になった点をメモしておきます。

1. インストーラーからインストール
→ キーボードを認識せず
→ USBキーボードを使用した
→ 内蔵eMMCを認識せず
→ USBメモリにインストールした

2. USBメモリにインストール
→ setupを実行する前にfdiskかcfdiskでESPを独立したパーティションとして作成
→ mkfs.vfatが無かったので、ダメ元でmkfs.fat -F32 -s2 /dev/sda1としてフォーマット
→ インストーラーでUEFI用のGRUBのインストールに失敗した(うろ覚え)ので、setup終了後にchrootしたりして手動でGRUBをインストール

3. USBメモリにインストールしたPlamoを起動 
→ GRUBが起動するところまではいった
→ GRUBコマンドで起動したが、Booting in blind modeから先に進まない
→ GRUBコマンドでinsmod efi_gopを実行
→ GRUBコマンドで起動したがカーネルパニック
→ GPD WIN用のカーネル(4.16.0-rc4)をコピー
→ GRUBコマンドで起動したが、カーネルパニック
→ mkinitrd(Plamoには未収録)でinitrdを作成したところ、ログインプロンプトまで行ったと思われるが、起動中に画面が真っ黒に
→ i915.modeset=0を追加
http://hanagurotanuki.blogspot.jp/2018/05/usbplamo-linux-70.html

4. USBメモリのPlamoをPortabook内蔵eMMCにコピー
→ ESPはPortabookにあったものをmkfs.fat -F32 -s2 /dev/mmcblk0p1としてフォーマット
→ 手順は次のURLと同じ https://hanagurotanuki.blogspot.jp/2016/12/gpd-winemmcplamo-linux.html
→ eMMCの"/"(/dev/mmcblk0p3)に基本的にcp -aでコピーしただけ(それで良いのかは不明)
→ /dev/mmcblk0p3にchrootして/devや/sysなどを適切にmountし、GRUBをインストール

5. 内蔵eMMCのPlamoを起動
→ GPD WIN用のカーネル(4.16.0-rc4)では起動せず
→ mkinitrd(Plamoには未収録)でinitrdを作成したところ、ログインプロンプトまで行った
→ 試しにPlamo標準カーネルのinitrdを作成したところ、起動したけれどキーボードを認識せず(うろ覚え)

6. カーネル再構築
→ initrdを作成して起動している4.16.0-rc4でlsmodし、モジュールではなく組み込んだ方が良さそうなものを組み込む
→ Portabook用のパッチを当てる https://github.com/mongonta0716/portabook
→ initrdを作成しなくても起動した