ปิด Bluetooth ตอน startup

posted on 11 Feb 2012 16:36 by pongtawat  in linux-unix
ปกติ Ubuntu / Linux Mint จะเปิด Bluetooth เอาไว้ให้เราเป็น default แต่ถ้าไม่ได้ใช้ Bluetooth Mouse แล้วส่วนใหญ่เราคงไม่ได้ใช้ Bluetooth กันมากนัก ดังนั้นปิดมันเสียดีกว่า
 
สั่งปิดง่ายๆ ด้วยคำสั่ง
rfkill block bluetooth
ถ้าอยากให้ปิดตลอดเวลา Start Up ก็เอาไปใส่ใน /etc/rc.local ก็เป็นอันเสร็จ
 
ตามที่มาบอกว่าถ้าเป็น ThinkPad จะต้องไป set ผ่าน ACPI แต่ลองบน T60 (Mint 12) ก็สามารถใช้ rfkill ได้เช่นกัน
 
เพิ่งเปลี่ยนแบตใหม่ (เทียบ) ให้ ThinkPad ทำให้ได้นำแบตไปลองบน Windows และพบว่าใน Power Manager ของ ThinkPad นั้นมีตัวเลือกให้ตั้ง Optimize Battery ให้มีอายุการใช้งานยาวนานขึ้นด้วย เลยได้ลงไปดูรายละเอียดหน่อย
 
พบว่า สำหรับการใช้ Notebook ที่ส่วนใหญ่เสียบปลั๊กเป็นหลักนั้น การปล่อยให้แบตชาร์จอยู่ที่ 100% ตลอดเวลา หรือใกล้ 100% ตลอดเวลานั้นไม่เป็นผลดีสำหรับแบต Li-ion เนื่องจากจะทำให้แบตเสื่อมเร็วกว่าที่ควร โดยเฉพาะเมื่อมีการชาร์จแบบ top-up บ่อยๆ (เช่น 98%->100%) ซึ่งสำหรับคนที่ชอบเสียบปลั๊กเกือบตลอดเวลา ค่าที่เหมาะสมที่จะทำให้แบตอายุยืนคือควรให้แบตมีความจุไม่เกิน 85% (ใครอยากอ่านรายละเอียดเชิญได้ที่ Battery University เลยครับ ละเอียดมาก ส่วนถ้าอยากดูแค่ว่าทำยังไงให้แบตอายุยืน ดูได้ที่ ThinkWiki - Battery treatment)
 
สำหรับคนใช้ Windows นั้นสะดวกสะบายอยู่แล้ว เพราะ ThinkPad เตรียมมาให้พร้อม มีตัวเลือกให้เสร็จสรรพว่าจะให้ชาร์จไว้พร้อมยกไปไหนต่อไหนที่ 100% หรือว่าให้ Optimize ให้อายุแบตยืนยาวขึ้นโดยอัตโนมัติโดยไม่ชาร์จให้เต็ม 100% ซึ่งตัวโปรแกรมก็จะเลือกค่าต่างๆ ให้เอง หรือถ้าไม่พอใจก็ยังสามารถปรับแต่งค่าได้เองอีก โดยเลือกได้ว่าจะให้หยุดชาร์จเมื่อถึงกี่ % และเริ่มชาร์จเมื่อประจุลดเหลือกี่ % โดยโปรแกรมจะไปควบคุมค่าต่างๆ ของ controller ที่ควบคุมการชาร์จโดยตรง
 
สำหรับคนใช้ Ubuntu หรือ Linux อื่นๆ ก็ยุ่งขึ้นมาหน่อย แต่ก็โชคดีที่มีคนทำ module และวิธีเอาไว้ให้หมดแล้ว หลักๆ คือต้องติดตั้ง module tp_smapi ซึ่งจะทำให้อ่านและเขียนค่าจากตัว controller ควบคุมการชาร์จได้ การติดตั้งก็ง่ายดาย แค่
 
apt-get install tp-smapi-dkms
 
ก็จะได้ module ที่จำเป็นมา
(พอติดตั้งเสร็จให้ modprobe tp_smapi หรือไม่ก็ reboot)
 
เมื่อ tp_smapi ทำงาน ก็จะได้ directory
 
/sys/devices/platform/smapi/
 
ขึ้นมา ซึ่งสำหรับคนที่ไม่มี UltraBay Battery ด้วย ก็จะมีแค่ subdirectory BAT0 ที่สำคัญ
ในนั้นจะมีไฟล์ค่าต่างๆ ที่เกี่ยวข้องกับแบตมากมาย แต่ที่เราสนใจตอนนี้คือ
 
start_charge_thresh และ stop_charge_tresh
 
ชื่อก็ตรงไปตรงมา
start_charge_tresh คือ % ที่จะเริ่มชาร์จแบต ถ้าไม่ต่ำกว่านี้จะไม่ชาร์จ
stop_charge_tresh คือ % สูงสุดที่จะชาร์จ คือจะไม่ชาร์จเกินกว่านี้
 
วิธีแก้ไขค่าก็ echo ใส่ไปเลย เช่น
 
# echo 80 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
 
แต่วิธีนี้ค่าจะไม่อยู่เมื่อ reboot เครื่อง ถ้าจะให้ค่าคงอยู่ต้องใช้ sysfsutils ช่วย โดยติดตั้งก่อนด้วย
 
apt-get install sysfsutils
 
จากนั้นให้ไปแก้ไฟล์ /etc/sysfs.conf เพื่อใส่ค่าต่างๆ ของ /sys ที่ต้องการให้ตั้งค่าเวลา boot ลงไป ของเราในที่นี้ก็เพิ่มบรรทัดต่อไปนี้ลงไป
 
# ThinkPad Battery Charge Control
devices/platform/smapi/BAT0/start_charge_thresh=50
devices/platform/smapi/BAT0/stop_charge_thresh=80
 
(เริ่มชาร์จเมื่อลดลงเหลือ 50% และหยุดชาร์จเมื่อชาร์จถึง 80%)
ส่วนใครจะใช้ค่าเท่าไหร่ก็แล้วแต่จะลองดูครับ เท่าที่หาดูไม่มีใครบอกว่าค่าไหนดีที่สุด
 
สำหรับค่าอื่นๆ และรายละเอียดต่างๆ ตามไปดูในที่มาได้เลยครับ
 
อ้อ หมายเหตุไว้ว่า ค่าต่างๆ ที่ตั้งเหล่านี้ ไม่มีผลเวลาไม่ได้เปิดเครื่องนะครับ คือถ้าปิดเครื่องแล้วเสียบปลั๊กชาร์จไว้ ตัว controller ก็จะใช้ค่าตามปกติ คือชาร์จให้เต็ม
 
ที่มา: ThinkWiki - tp_smapi
 
ปล. มีเรื่องต่อเนื่อง HDAPS อีก เอาไว้ต่อวันหลังละกัน
 

Purge config file ที่หลงเหลือ

posted on 30 Jun 2011 11:07 by pongtawat  in linux-unix
ตามปกติถ้าเราใช้ apt-get/aptitude remove ตัว APT จะไม่ลบ data และ config file ของ package ที่เรา remove ออกให้ ต้องสั่งเป็น apt-get --purge remove ... หรือต้องตามด้วย apt-get purge ... ถึงจะลบออกหมดจริงๆ
 
ถ้าเรามี package ที่ remove ไปแล้ว และอยากจะลบไฟล์ที่หลงเหลืออยู่ สามารถทำได้โดย
 
aptitude search '~c'
 
เพื่อดูว่ามี package อะไรบ้างที่ยังคงมี config หลงเหลือ,
 
aptitude purge '~c'
 
เพื่อ purge package ทั้งหมดที่ยังคงมี config เหลืออยู่
 
หรือถ้าใครชอบให้ลบออกด้วยการ purge ทุกครั้ง (ไม่ต้องมาคอยใส่ --purge) ก็สามารถเพิ่ม config ต่อไปนี้ไปใน APT config file ได้
 
Apt::Get::Purge "true";