echo 60 | sudo tee /sys/class/power_supply/BAT1/charge_control_end_threshold
@reboot root echo 60 > /sys/class/power_supply/BAT0/charge_control_end_threshold >>> /etc/crontab
/sys/class/power_supply
99-name.rules
KERNEL=="BAT0", SUBSYSTEM=="power_supply", ATTR{charge_control_end_threshold}="60"
بعد از خاموش روشن کردن، تنظیمات باید اعمال بشه.فرقی نداره از کدوم روش استفاده کنید. udev یا crontab هر دو یه نتیجه میدن.
ولی udev معمولا برای اینکارها استفاده میشه.
اول برید و ببینید توی این مسیر BAT1 هست یا BAT0 (معمولا از 0 شروع میشه)کد: [انتخاب]/sys/class/power_supply
بعد یه فایل توی مسیر /etc/udev/rules.d/ بسازید. شکل کلی اسمش اینجوری باشه. اول یه عدد، بعد خط فاصله، بعد اسم و آخرش پسوند rules. داشته باشه. مثل این:کد: [انتخاب]99-name.rules
داخلش اینو بنویسید.کد: [انتخاب]KERNEL=="BAT0", SUBSYSTEM=="power_supply", ATTR{charge_control_end_threshold}="60"
بعد از خاموش روشن کردن، تنظیمات باید اعمال بشه.
تا جایی که من بلدم میشه برای سوال دوم یه اسکریپت بسازید که درصد رو از شما بگیره و اون دستور بلند رو با مقداری که دادید اجرا کنه تا لازم نباشه هر بار کل اون دستور رو وارد کنید. یه راه دیگه هم اینه که برای خودتون چنتا alias برای هر حالات مختلف درست کنید.
حالا بگید از کدوم روش میخواهید استفاده کنید؟
این امکان محدود به برند میشه؟
لپ تاپ من acerئه و فایل charge_control_end_threshold توی دایرکتوریای که گفتید رو ندارم
این امکان محدود به برند میشه؟
لپ تاپ من acerئه و فایل charge_control_end_threshold توی دایرکتوریای که گفتید رو ندارم
اینکه این فایل تو دایرکتوری شما وجود نداره رو نمیدونم ولی اینو میدونم ممکنه BAT ها متفاوت باشه مثلا برای من BAT1 هستش بجای BAT0
لپ تاپ من Asus
[left]Command = 60 | sudo tee /sys/class/power_supply/BAT1/charge_control_end_threshold[/left]
سلام بابت پاسخ ممنونم
اگر میشه روش ساختن alias رو توضیح بدین و اینکه اصلا چی هستش؟
در مورد اسکریپت هم ینی خودم میتونم با پایتون بنویسم؟ اگر بله لطفا راهنمایی کنید
ممنونم
alias alias-name='long command'
alias bat-to60='echo 60 | sudo tee /sys/class/power_supply/BAT1/charge_control_end_threshold'
همینجوری برای ۸۰ و درصدهای دیگه هم میشه اعمال کرد. البته بهتره alias های جدید رو توی فایل bash-aliases. توی هوم خودتون بزارید تا فایل bashrc. عوض نشه.#!/bin/bash
while :
do
read -p "Pleas enter percentage (an integer between 1 to 100): " INPUT
if [ $i -gt 0 ] && [ $i -lt 101 ]; then
echo "$INPUT" | tee /sys/class/power_supply/BAT1/charge_control_end_threshold
if [ $? -eq 0]; then
echo "charge_control_end_threshold successfully set to $INPUT"
else
echo "Somthing happend and charge_control_end_threshold could not set to $INPUT"
fi
break
else
echo "Invalid input."
done
chmod +x set-battery
sudo mv set-battery /usr/local/bin
sudo set-battery 65
بهجای ۶۵ میتونید هر عدد صحیح بین ۱ تا ۱۰۰ رو بزارید و لپتاپ تا همون اندازه شارژ میشه.این امکان محدود به برند میشه؟به نظر میاد مدار و چیپ شارژ باتری لپتاپ شما از این قابلیت پشتیبانی نمیکنه. توی لپتاپ من هم این فایل وجود نداره و از این قابلیت پشتیبانی نمیکنه.
لپ تاپ من acerئه و فایل charge_control_end_threshold توی دایرکتوریای که گفتید رو ندارم
با نوشتن متغیر محیطی میشه اینکارو کرد؟نمیدونم میشه یا نه ولی اون چیزی که توی چنتا ارسال بالاتر گفتم درست کار میکنه.
مثل این:کد: [انتخاب][left]Command = 60 | sudo tee /sys/class/power_supply/BAT1/charge_control_end_threshold[/left]
و اینو با chmod 755 اجرایی کنم بعد به PATH اضافه کنم و هر جا خواستم بین 60 و 80 و 100 سوییچ کنم
این راه اصولیه یا خیر ممنونم میشم راهنمایی کنید
نقلقولسلام بابت پاسخ ممنونم
اگر میشه روش ساختن alias رو توضیح بدین و اینکه اصلا چی هستش؟
در مورد اسکریپت هم ینی خودم میتونم با پایتون بنویسم؟ اگر بله لطفا راهنمایی کنید
ممنونم
alias یعنی اسم مستعار. یه مثالش la میتونه باشه. دستوری به اسم la وجود نداره. و وقتی شما میزنید la در اصل ls -a اجرا میشه. میتونید فایل bashrc. رو توی هوم خودتون رو ببینید. alias ها رو اینجوری تعریف میکنند:کد: [انتخاب]alias alias-name='long command'
برای مورد شما میشه اینجوری توی فایل bashrc. تعریف کرد.کد: [انتخاب]alias bat-to60='echo 60 | sudo tee /sys/class/power_supply/BAT1/charge_control_end_threshold'
همینجوری برای ۸۰ و درصدهای دیگه هم میشه اعمال کرد. البته بهتره alias های جدید رو توی فایل bash-aliases. توی هوم خودتون بزارید تا فایل bashrc. عوض نشه.
درباره اسکریپت هم میشه با پایتون نوشتش ولی با bash هم میشه.
من اینو با bash برای شما نوشتم. اول چک میکنه که ورودی بین ۱ تا ۱۰۰ باشه. اگه بود بقیه اجرا میشه، اگه نبود، دوباره از کاربر میخواهد که ورودی بده.
اگه اینو همینجوری یه جای دیگه استفاده کنید، احتمالا به مشکل میخورید، چون بررسی نمیکنه که آیا یاتری وجود داره یا اسم باتری چی هست یا اصلا باتری از این ویژگی پشتیبانی میکنه یا نه.کد: [انتخاب]#!/bin/bash
while :
do
read -p "Pleas enter percentage (an integer between 1 to 100): " INPUT
if [ $i -gt 0 ] && [ $i -lt 101 ]; then
echo "$INPUT" | tee /sys/class/power_supply/BAT1/charge_control_end_threshold
if [ $? -eq 0]; then
echo "charge_control_end_threshold successfully set to $INPUT"
else
echo "Somthing happend and charge_control_end_threshold could not set to $INPUT"
fi
break
else
echo "Invalid input."
done
اینو توی یه فایل به هر اسمی میخواهید بنویسید و ذخیره کنید و حالا دسترسی اجرایی بهش بدید. (فرض میکنیم اسمش رو set-battery گذاشتید)کد: [انتخاب]chmod +x set-battery
الان میتونید بزاریدش توی مسیر /usr/local/bin/ اینجوری هر موقع نیاز داشتید، میتونید با ترمینال ازش استفاده کنید.کد: [انتخاب]sudo mv set-battery /usr/local/bin
الان میتونید اینجوری ازش استفاده کنید.کد: [انتخاب]sudo set-battery 65
بهجای ۶۵ میتونید هر عدد صحیح بین ۱ تا ۱۰۰ رو بزارید و لپتاپ تا همون اندازه شارژ میشه.
بدیهی هست که توی درصدهای پایین (کمتر از ۱۰) ممکنه که درست کار نکنه چون معمولا توی اون شرایط باتری رفتار خطی نداره و اندازه گیری مقدارش توسط لپتاپ، خطای قابل توجهی داره و بهخاطر همین ممکنه نتیجه دلخواه بهدست نیاد.
این امکان محدود به برند میشه؟به نظر میاد مدار و چیپ شارژ باتری لپتاپ شما از این قابلیت پشتیبانی نمیکنه. توی لپتاپ من هم این فایل وجود نداره و از این قابلیت پشتیبانی نمیکنه.
لپ تاپ من acerئه و فایل charge_control_end_threshold توی دایرکتوریای که گفتید رو ندارم