2015-06-27

20150627

Debian Testing的機器上使用的音效晶片是VIA VT2021
Jessie時還用的好好的,最近升上Stretch又出問題

最近才曉得原來這次更新完前置耳機不是沒有聲音
而是開機後音量自動變成0%,mute也自動開啟
真的找不出解法,只能先這樣orz

~/.xsessionrc
#如果有這個檔案,加入這兩行
amixer -c 0 set Headphone 100% &
amixer -c 0 set Headphone on &

2015-05-01

20150501

比起win98那年代常常一睡不起的情形,現在suspend功能已經很成熟了
家人的PC,除了我去維護的時候會reboot,其他時間都是用suspend
穩定度已經完全可以信賴
Windows上去裝置管理員把鍵盤喚醒的選項關閉就能避免誤觸喚醒
就只能透過電源鍵來喚醒

而Linux上的suspend,GUI只能控制電源鍵的行為
關閉鍵盤喚醒的行為要在/etc/udev/rules.d/新增一個rule

/etc/udev/rules.d/disable-wakeup.rules
#keyboard
SUBSYSTEM=="usb", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="2011" RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/../power/wakeup'"


idVendor和idProduct的值從lsusb的結果去看哪個是你的鍵盤
也可以透過google來取得,我所使用的Filco majestouch在lsusb當中我辨識不出來
直接搜尋並對照lsusb的結果,執行udevadm trigger後
就只能透過電源鍵來喚醒

p.s.系統是debian jessie


Update: 2015/06/22
使用Debian Testing的機器升上Stretch後,上述的方法又沒效了。
ArchWiki惠我良多XD

/etc/udev/rules.d/disable-wakeup.rules
#keyboard
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="2011" RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/../power/wakeup'"

要多加上ACTION=="add",

2015-01-11

20150111

最近研究,關於UEFI總算是有些粗淺的了解。

UEFI的MB會使用NVRAM來儲存你設定的開機選項,或你曾使用過的開機選項。
這幾筆紀錄有時候會自己不見,又有些時候沒有裝上任何硬碟也會顯示。

找到自定義的UEFI的開機紀錄時:
就照著MB中設定的優先權順序跑。

當找不到任何自定義的UEFI的開機紀錄時:
UEFI會去找所有儲存媒體上的/EFI/boot/bootx64.efi來啟動x86_64的系統。
類似BIOS去/dev/sd*找bootloader這樣。
但如果只是這樣,就顯不出UEFI跟BIOS的分別。

可以存放數種的bootloader在EFI分割區,再去選擇自己要啟動的bootloader。
在Linux上可以用efibootmgr來管理NVRAM,通常是會跟grub-efi一起裝上。
Windows也有自帶管理工具bcdedit。
以前的習慣通常是先安裝windows,再安裝Linux。
用grub來管理多重開機的選項,但使用UEFI後就有些不太一樣。
 
debian Jessie目前的行為是將grub安裝到/EFI/debian/grubx64.efi。
但不會去動到原本的/EFI/boot/bootx64.efi。
所以如果是先安裝windows,再安裝debian。
重開機後要看到grub的畫面,必須在boot時選用efibootmgr建立的grubx64.efi的選項。 

ubuntu 13.04的行為則是把grub安裝到/EFI/boot/bootx64.efi。
13.04之後的ubuntu我還沒有試用過,就不清楚 。
如果原本的硬碟上已有安裝windows,必須要先把windows的bootx64.efi備份起來。
以UEFI模式安裝的windows,這檔案似乎是必須存在才能啟動。

我常用來備份Windows的Clonezilla,對於UEFI模式安裝的windows也可以正常使用。
但不知道為了什麼原因,Clonezilla還原後會把UEFI的NVRAM通通清掉。
因此最後我還是把windows的bootx64.efi給搬了出來。
再把grubx64.efi丟到/EFI/boot/bootx64.efi 。

 

最後,grub好像沒有辦法chainloader clover。