Ubuntu」カテゴリーアーカイブ

fvwmに、fvwm-menu-desktop を使用し XDG Menusをメニュー追加

fvwmのメニューはカスタマイズが簡単にできるが、自動的に生成されるメニューはDebianメニューを使っていたが、
もっと便利なXDG Menusがあったのでこれを使えるように設定した。
StartFunctionsに以下を追加 

+ I Test (!f $[FVWM_USERDIR]/.XDGMenu) XDGRegen
+ I Read $[FVWM_USERDIR]/.XDGMenu

.XDGMenuファイルがないと、XDGRegenを実行し、そのファイルを読み込む。
XDGRegenは、以下で設定する。

DestroyFunc XDGRegen
AddToFunc XDGRegen
+ I PipeRead 'fvwm-menu-desktop --regen-cmd XDGRegen > \
    $[FVWM_USERDIR]/.XDGMenu; echo "Nop"'
+ I Read $[FVWM_USERDIR]/.XDGMenu

https://www.mankier.com/1/fvwm-menu-desktop

raid1 片方消えていた

16.10を使用してたが、raid1の片方が消えていた。active raid1からデバイス名が消えていた。

$sudo mdadm --manage /dev/md1 --add /dev/sdd5

新たに追加で、追加できたが。なんでだろ。

後日また、消えた。sdd5が
再度addした。
大丈夫か Linux ubuntu16-10-64 4.8.0-37-generic #39-Ubuntu SMP Thu Jan 26 02:27:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Ubuntu 16.10にしたら、ハイバネートできなくなった

http://askubuntu.com/questions/839147/hibernation-with-ubuntu-16-10-fails
これか?

richblのやり方だと起動時にカーネルパニックおこしたわ
crysmanのやり方は、わしの16.04のハイバネートとほぼ同じだが、画面が暗くなって反応しなくなった。
したがって、16.10はわしの環境だと、できないということなのかぁ。

/etc/initramfs-tools/conf.d/resume に RESUME=UUID=91ccfcbe-de30-457e-9998-953ea78588c6 に変更
/etc/default/grubの

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0 quiet splash resume=UUID=91ccfcbe-de30-457e-9998-953ea78588c6"

変更してみた
sudo update-initramfs -u
sudo update-grub
これでもだめだ

https://help.ubuntu.com/community/PowerManagement/Hibernate
これか?

Platform is the default and recommended mode of hibernation. Unfortunately, the “platform” mode of hibernation does not work on some systems with a broken BIOS. In such cases the “shutdown” mode of hibernation might work.

http://askubuntu.com/questions/768136/how-can-i-hibernate-on-ubuntu-16-04
ここにも書いてあるが

結果;うまく動かない

これは?

$sudo apt-get install hibernate
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  uswsusp
提案パッケージ:
  915resolution
以下のパッケージが新たにインストールされます:
  hibernate uswsusp

これもだめ

https://ubuntuforums.org/showthread.php?t=2306178
これは?
http://d.hatena.ne.jp/kakurasan/20080421/p1
これは?
だめだな
Edit /etc/systemd/logind.conf to set HandleLidSwitch=hibernate (optional: permits hibernate to start on lid close)
やってみたどうだ?だめだった。HandleLidSwitchは、ラップトップとかで、そのキーが押された時の動作のようだ。
環境によってカーネルが動作できてない。
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1566302
結論 カーネル次第

inxi -GCS

これが原因か

http://askubuntu.com/questions/76488/system-wont-boot-unless-i-type-exit-at-initramfs-prompt

Boot Degraded RAID
Modify /etc/initramfs-tools/conf.d/mdadm
BOOT_DEGRADED=true
Update initram
sudo update-initramfs -u
Reboot

これか?
だめだった

http://opensuse.opensuse.narkive.com/IOLnQHP2/configuring-a-working-suspend-to-disk-method

これか?

→関連
関連投稿;Ubuntu16.04のサスペンド、ハイバネート

結末として。17.04 zestyに夢を託して、いじってみたが、やはりハイバネート失敗。
LTSに戻すしか方法はなさそうだ。

ちょっと待った!
17.04で遂にハイバネートできそう!
何度もテストをしていたが。ヒントを掴んだ気がする。

grubが関係してたのだ!
grub-installをした、システムでない、他のパーティションのシステムから起動させた、17.04でハイバネートができるようになった。しかし、grub-installを行ったシステムでは、ハイバネートできない。
これ大きなヒントになりそうですね。もう少し探ってみるか。

	recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd1,msdos7'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos7 --hint-efi=hd1,msdos7 --hint-baremetal=ahci1,msdos7  14949105-0ead-4826-aab5-155b9042af46
	else
	  search --no-floppy --fs-uuid --set=root 14949105-0ead-4826-aab5-155b9042af46
	fi
	echo	'Linux 4.10.0-19-generic をロード中...'
        linux	/boot/vmlinuz-4.10.0-19-generic root=UUID=14949105-0ead-4826-aab5-155b9042af46 ro  resume=UUID=47ef2af5-e4cd-4f23-9f64-1466b3540905
	echo	'初期 RAM ディスクをロード中...'
	initrd	/boot/initrd.img-4.10.0-19-generic

grub起動時ここの1行から5行目まで削除してコントロールXで起動して、ハイバネートして。再起動時にも同様に行うと、ハイバネート起動に成功することができた。
ただ、毎回、削除するのも面倒だし。消して保存を考えないとならない。

という訳で、設定を保存するためには、どこをいじろうかな。
/etc/grub.d/10_linux にload_video,gfxmodeがあるんで、ここを編集した。
でも、ハイバネートからの起動に失敗することあるんだよね。

 diff /etc/grub.d/10_linux ./10_linux.org 
145,155c145,158
< #  if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then
< #      echo "	load_video" | sed "s/^/$submenu_indentation/"
< #  else
< #      if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
< #	  echo "	load_video" | sed "s/^/$submenu_indentation/"
< #      fi
< #  fi
< #  if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \
< #     ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then
< #      echo "	gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/"
< #  fi
---
>   if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then
>       echo "	load_video" | sed "s/^/$submenu_indentation/"
>   else
>       if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
> 	  echo "	load_video" | sed "s/^/$submenu_indentation/"
>       fi
>   fi
>   if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \
>      ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then
>       echo "	gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/"
>   fi
> 
>   echo "	insmod gzio" | sed "s/^/$submenu_indentation/"
>   echo "	if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/$submenu_indentation/"
157,159d159
< #  echo "	insmod gzio" | sed "s/^/$submenu_indentation/"
< #  echo "	if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/$submenu_indentation/"
< #

ハイバネートからの復帰に失敗することがあり、何とかならないものかと。
amdgpuが自分の環境だと、失敗の原因のようだ。
/etc/modprobe.d/blacklist.conf

#blacklist radeon
blacklist amdgpu

でblacklistにしとく。radeonだけkmsでロードされるようにする。
GRUBでradeon.modeset=1 radeon.dpm=0と記述することにより、ハイバネートが成功するようになった。

/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=47ef2af5-e4cd-4f23-9f64-1466b3540905 radeon.modeset=1 radeon.dpm=0 "

/etc/grub.d/10_linux はオリジナルのものにしたが問題なくハイバネートと復帰ができた。

これで、継続してハイバネートできればよいが。

その後、一日数回ハイバネートしてるが、8日は無事に復帰できている。 

$uptime
 22:38:46 up 8 days, 14:14,  2 users,  load average: 0.89, 0.50, 0.49

つづく

UbuntuにBrotherのプリンターを設定 16.04

http://note.kurodigi.com/post-0-30/ LinuxでBrother製プリンターを使う

/usr/libx32/libstdc++.so.6 をインストールする
$ sudo apt-get install libx32stdc++6
$ sudo apt-get install gdebi
$ sudo gdebi dcpj525nlpr-3.0.1-1.i386.deb
$ sudo gdebi dcpj525ncupswrapper-3.0.0-1.i386.deb

lpadmin groupにユーザーを登録する(Debianでは不要)これはすでにあったんで略
CUPS Web 管理サイト(http://localhost:631/admin)で設定

Ubuntu16.04のサスペンド、ハイバネート

Ubuntu 16.04でサスペンド、ハイバネートを行う

サスペンドはできるのだが、ハイバネートがうまく動作しない。なぜハイバネート(ハイバネーション)を行いたいのか?

ハイバネーションとは、コンピュータの電源を切る直前の状態を保存して、次に電源を入れたときに電源を切る直前の状態から作業を再開する機能。「休止状態」とも呼ばれる。

サスペンドでもいいんじゃない?と思うだろ

ハイバネーション中はコンピュータの電源を完全に切ってしまうため、(バッテリーの自由放電を除いて)電力を消費しない。ハイバネーションを行うためには、メモリ内容を保存できるだけの空き領域がハードディスクに存在する必要がある。「サスペンド」機能に似ているが、サスペンドは作業状態をメモリに、ハイバネーションはハードディスクに保存する点が異なる。

<電源を完全に切ることが、ハイバネーションとサスペンドの違いである。それは電力を消費しない、つまりエネルギーゼロでメモリの内容を保存できるのである。

電源を切る直前の状態に戻す。いちいちOSやアプリケーションソフトの終了や起動を行う場合よりも時間や手間がかからず、消費電力も抑えることができる。

しかも、ウィンドウズをブートさせてウィンドウズを使用したあと、Ubuntuを立ち上げ、作業の続きをできる。こんな理にかなった方法を使わないことはない。が、Ubuntu 16.04で使えなくなっていた。

Ubuntu 16.04でサスペンド、ハイバネートを行う方法

sudo apt-get purge btrfs-tools

btrfsパーティション、ファイルシステムは使ってないので、要らない。SWAPがRAMより大きく必要になる。

sudo vi /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

このファイルに以下の記述がなければ、書く。

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

そしてリスタート

sudo service polkitd restart
sudo ls /etc/polkit-1/localauthority/50-local.d
com.ubuntu.enable-hibernate.pkla

ここにファイルができた。

で、これでも動かない。手動でハイバネートを行ってみる。

sudo systemctl hibernate

これでもだめな場合、SWAPの設定をする。

sudo edit /etc/default/grub

ここからが以下のサイトを参考に
http://www.linux.org/threads/all-about-swap.6470/ All About Swap

If your kernel supports hibernation, but your system will not hibernate, then try this. In /etc/default/grub, replace “[GRUB_CMDLINE_LINUX=””]” with “[GRUB_CMDLINE_LINUX=”resume=UUID=4236dabb-fa7d-4066-b171-91ffa7afb4f4″]”, then run “update-grub”. Next, execute the command string below.
echo “RESUME=UUID=4236dabb-fa7d-4066-b171-91ffa7afb4f4” > /etc/initramfs-tools/conf.d/resume; update-initramfs -u
You may be wondering what is happening. Well, GRUB is being informed which swap space contains the hibernated system (if hibernation took place). Initramfs is also informed about the swap space used for hibernation. Obviously, the user must type their own UUID in-place of mine. The UUID is a special way to specify partitions.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=47ef2af5-e4cd-4f23-9f64-1466b3540905"

/etc/default/grubに、上の記述し、update-grubを行う。
/etc/initramfs-tools/conf.d/resumeに、不明なUUIDの指定があったので、消してSWAP
UUIDを記入し

resume=UUID=47ef2af5-e4cd-4f23-9f64-1466b3540905"

、update-initramfs -uを行う。
*もちろんこのUUIDは、わしの環境のであるが。

sudo blkid |grep 'TYPE="swap"'

とか

lsblk -o name,fstype,uuid

で探るんじゃ。わしのは、fstabでpriでストライピングしてあるやつだ。よくわからないが片方だけのUUIDであるが、これよくないんかな?だったらストライピングやめるか。普通swap使ってないしなぁ。
これでハイバネートできるようになった。ついでにGRUB画面で画像を表示を行った。
https://help.ubuntu.com/community/Grub2/Displays Grub2/Displays
を参考に /boot/grubにJPGファイルを入れた。

  1. ハイバネートを成功させた
  2. GRUBに画像表示をさせた
  3. ハイバネートからのパスワードをかけた xscreensaverをインストールした。

これでUbuntu 16.04で、作業を中断しても、元の状態に戻せる、ハイバネートが使えるようになった。
ところが……つづきはこちら
https://www.exodabe.com/20170124354.html

コメント、質問、感想はお気軽にどうぞ