BCLM เป็น wrapper สำหรับการอ่านและเขียนค่าการชาร์จแบตเตอรี่ระดับสูงสุด (BCLM)/CHWA ไปยัง System Management Controller (SMC) บนคอมพิวเตอร์ MAC รองรับทั้ง Intel และ Apple Silicon โครงการนี้ได้รับแรงบันดาลใจจากโซลูชั่นการจัดการแบตเตอรี่หลายแบบรวมถึงการจัดการสุขภาพแบตเตอรี่ของ Apple
จุดประสงค์ในการ จำกัด การชาร์จสูงสุดของแบตเตอรี่คือการยืดอายุแบตเตอรี่และเพื่อป้องกันความเสียหายต่อแบตเตอรี่ แหล่งข้อมูลต่าง ๆ แสดงให้เห็นว่าช่วงการชาร์จที่เหมาะสมสำหรับการทำงานของแบตเตอรี่ลิเธียมไอออนอยู่ระหว่าง 40% ถึง 80% โดยทั่วไปเรียกว่ากฎ 40-80 [1] [2] [3] โครงการนี้มีประโยชน์อย่างยิ่งสำหรับผู้ที่ออกจาก Macs บนเครื่องชาร์จตลอดทั้งวันทุกวัน
วิธีที่ง่ายที่สุดในการติดตั้ง BCLM คือผ่านการ brew
BCLM เขียนด้วย Swift และยังเป็นเรื่องเล็กน้อยที่จะรวบรวม ปัจจุบันสามารถรวบรวมได้บน MacOS Catalina (10.15) หรือสูงกว่า แต่สามารถทำงานบน OS X Mavericks (10.9) หรือสูงกว่า
ZIP รุ่นปล่อยยังมีไบนารีที่ลงนามและรับรองสำหรับผู้ที่ไม่มีเครื่องมือพัฒนาหรืออยู่ในรุ่น MacOS รุ่นเก่า
$ brew tap zackelia/formulae
$ brew install bclm
$ make build
$ make test
$ sudo make install
$ unzip bclm.zip
$ sudo mkdir -p /usr/local/bin
$ sudo cp bclm /usr/local/bin
หมายเหตุ: สำหรับ MacOS รุ่นเก่าอาจจำเป็นต้องติดตั้ง Swift 5 Runtime Support สำหรับเครื่องมือบรรทัดคำสั่งหากคุณได้รับข้อผิดพลาดต่อไปนี้: dyld: Symbol not found
$ bclm
OVERVIEW: Battery Charge Level Max (BCLM) Utility.
USAGE: bclm <subcommand>
OPTIONS:
--version Show the version.
-h, --help Show help information.
SUBCOMMANDS:
read Reads the BCLM value.
write Writes a BCLM value.
persist Persists bclm.
unpersist Unpersists bclm.
See 'bclm help <subcommand>' for detailed help.
สำหรับเครื่อง Intel เมื่อเขียนค่า MacOS จะเรียกเก็บเงินเล็กน้อยเกินกว่าค่าที่กำหนด (~ 3%) เพื่อแสดง 80% เมื่อเรียกเก็บเงินเต็มจำนวนขอแนะนำให้ตั้งค่า BCLM เป็น 77% เมื่อชาร์จในขณะที่ระบบถูกปิดหรือนอนหลับการชาร์จสามารถเกินกว่าค่าที่กำหนดได้มากกว่าค่าเฉลี่ย 3%
$ sudo bclm write 77
$ bclm read
77
สำหรับเครื่อง Apple Silicon จะต้องรองรับค่า 80 และ 100 เท่านั้นและต้องใช้เฟิร์มแวร์> = 13.0
โปรดทราบว่าในการเขียนค่าโปรแกรมจะต้องเรียกใช้เป็นรูท สิ่งนี้ไม่จำเป็นสำหรับการอ่านค่า
SMC สามารถรีเซ็ตได้ด้วยทางลัดเริ่มต้นหรือเหตุผลทางเทคนิคอื่น ๆ อีกมากมาย เพื่อให้แน่ใจว่า BCLM นั้นมีค่าที่ต้องการเสมอควรคงอยู่
สิ่งนี้จะสร้าง plist ใหม่ใน /Library/LaunchDaemons และโหลดผ่าน launchctl มันจะคงอยู่กับค่า BCLM ปัจจุบันและจะอัปเดตในการเขียน BCLM ที่ตามมา
$ sudo bclm persist
ในทำนองเดียวกันมันสามารถ unpersisted ซึ่งจะขนถ่ายบริการและลบ plist
$ sudo bclm unpersist