linux充电,lightning充电

linux系统中如何查看电池的电量状态

这个问题我解决过哦。

用P/Invoke调 API:kernel32.dll中的GetSystemPowerStatus函数。函数返回系统的电源状态。状态指数系统是在直流电源还是交流电源下运作,电池是否在充电,电池的剩余电量。

先定义结构体:

[StructLayout(LayoutKind.Sequential)]

public struct SYSTEM_POWER_STATUS

{

public byte ACLineStatus;

public byte BatteryFlag;

public byte BatteryLifePercent;

public byte Reserved1;

public int BatteryLifeTime;

public int BatteryFullLifeTime;

}

然后导入外部函数:

[DllImport("kernel32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]

public static extern bool GetSystemPowerStatus(ref SYSTEM_POWER_STATUS systemPowerStatus);

如果调用成功,返回 true,然后分析systemPowerStatus的数据就行。

ACLineStatus为1时,表示正在使用交流电源,为0使用直流电源。

希望能够帮到你。

如何在 Linux 终端下检查笔记本电池状态

在终端下检查笔记本电池状态

我们可以使用下面的三种方法来从命令行中查找到笔记本电池状态。

方法一–使用 upower命令

upower命令预装在大多数的 Linux发行版本中。为了使用upower命令来展示电池的状态,打开终端并运行如下命令:

$ upower-i/org/freedesktop/UPower/devices/battery_BAT0

示例输出:

native-path: BAT0vendor: Samsung SDImodel: DELL 7XFJJA2serial: 4448power supply: yesupdated: Sat 12 May 2018 06:48:48 PM IST(41 seconds ago)has history: yeshas statistics: yesbatterypresent: yesrechargeable: yesstate: chargingwarning-level: noneenergy: 43.3011 Whenergy-empty: 0 Whenergy-full: 44.5443 Whenergy-full-design: 48.84 Whenergy-rate: 9.8679 Wvoltage: 12.548 Vtime to full: 7.6 minutespercentage: 97%capacity: 91.2045%technology: lithium-ionicon-name:'battery-full-charging-symbolic'History(charge):1526131128 97.000 chargingHistory(rate):1526131128 9.868 charging

正如你所看到的那样,我的电池正处于充电状态,并且它的电量百分比是 97%。

假如上面的命令因为某些未知原因不起作用,可以尝试使用下面的命令:

$ upower-i `upower-e| grep'BAT'`

示例输出:

native-path: BAT0vendor: Samsung SDImodel: DELL 7XFJJA2serial: 4448power supply: yesupdated: Sat 12 May 2018 06:50:49 PM IST(22 seconds ago)has history: yeshas statistics: yesbatterypresent: yesrechargeable: yesstate: chargingwarning-level: noneenergy: 43.6119 Whenergy-empty: 0 Whenergy-full: 44.5443 Whenergy-full-design: 48.84 Whenergy-rate: 8.88 Wvoltage: 12.552 Vtime to full: 6.3 minutespercentage: 97%capacity: 91.2045%technology: lithium-ionicon-name:'battery-full-charging-symbolic'History(rate):1526131249 8.880 charging

upower不仅可以显示出电池的状态,它还可以显示出已安装电池的其他完整信息,例如电池型号,供应商名称,电池的序列号,电池的状态,电池的电压等信息。

当然,如果你只想显示电池的状态,你可以可以结合使用upower命令和grep命令,具体命令如下:

$ upower-i$(upower-e| grep BAT)| grep--color=never-E"state|to\ full|to\ empty|percentage"

示例输出:

state: fully-chargedpercentage: 100%

从上面的输出中可以看到我的笔记本电池已经完全充满了。

想知晓更多的细节,可以参看 man页:

$ man upower

方法二–使用 acpi命令

acpi命令可以用来显示你的 Linux发行版本中电池的状态以及其他 ACPI信息。

在某些 Linux发行版本中,你可能需要安装acpi命令。

要在 Debian、 Ubuntu及其衍生版本中安装它,可以使用如下命令:

$ sudo apt-get install acpi

在 RHEL、 CentOS、 Fedora等系统中使用:

$ sudo yum install acpi

或者使用如下命令:

$ sudo dnf install acpi

在 Arch Linux及其衍生版本中使用:

$ sudo pacman-S acpi

一旦acpi安装好后,运行下面的命令:

$ acpi-V

注意:在上面的命令中,V是大写字母。

示例输出:

Battery 0: Charging, 99%, 00:02:09 until chargedBattery 0: design capacity 4400 mAh, last full capacity 4013 mAh= 91%Battery 1: Discharging, 0%, rate information unavailableAdapter 0: on-lineThermal 0: ok, 77.5 degrees CThermal 0: trip point 0 switches to mode critical at temperature 84.0 degrees CCooling 0: Processor 0 of 3Cooling 1: Processor 0 of 3Cooling 2: LCD 0 of 15Cooling 3: Processor 0 of 3Cooling 4: Processor 0 of 3Cooling 5: intel_powerclamp no state information availableCooling 6: x86_pkg_temp no state information available

首先让我们来检查电池的电量,可以运行:

$ acpi

示例输出:

Battery 0: Charging, 99%, 00:01:41 until chargedBattery 1: Discharging, 0%, rate information unavailable

下面,让我们来查看电池的温度:

$ acpi-t

示例输出:

Thermal 0: ok, 63.5 degrees C

如果需要将温度以华氏温标显示,可以使用:

$ acpi-t-f

示例输出:

Thermal 0: ok, 144.5 degrees F

如果想看看交流电适配器是否连接上了没有,可以运行:

$ acpi-a

示例输出:

Adapter 0: on-line

假如交流电适配器没有连接上,则你将看到如下的输出:

Adapter 0: off-line

想获取更多的信息,可以查看 man页:

$ man acpi

【Linux驱动】充电芯片bq24735调试详解

bq24735是一款高效同步电池充电器,当系统供电需求高于适配器最大供电水平时,它通过智能加速技术允许电池向系统中释放能量,从而保护适配器不被损坏。bq24735使用两个充电泵分别驱动n-通道MOSFET,并通过SMBus(I2C总线)控制的输入电流、充电电流和充电电压DAC实现高调节精度,此调节精度可通过系统功率管理微控制器编程。

理解bq24735驱动,必须先理解Android供电系统框架,其中power supply是Linux中从供电驱动抽象出来的子系统,是Linux电源管理的重要组成部分。psy是一个中间层,属于设备驱动的一部分,主要向用户空间汇总各类供电的状态信息。power supply class位于drivers/power/目录中,主要由三部分组成,驱动工程师可以基于它实现具体的PSY drivers,主要处理平台相关、硬件相关的逻辑。

驱动层包括两大模块,与电池监控(fuelgauge)和充放电管理(charger)相关的驱动。fuelgauge驱动负责向上层android系统提供电池的电量及健康状态等信息,同时向charger驱动提供电池的相关信息;charger驱动主要负责电源线的插拔检测,以及充放电的过程管理。

bq24735驱动实现方面,硬件连接图显示,当没有电源供电时,bq24735会直接将电池传递给降压电路,给系统供电;当有电源供电时,bq24735会给电池充电。引脚说明中,只介绍与驱动相关的引脚。bq24735用到的寄存器包括充电电流寄存器、充电电压寄存器等。驱动初始化时,可以通过读取这些寄存器的值来判断驱动是否与硬件匹配。

以下是某平台sysfs文件目录,驱动讲解部分提到,该驱动基于I2C总线,对应结构体变量定义如下。此外,还有一个重要的结构体,这个架构根据项目中平台所画,其他平台架构可能会有所不同。

log显示,开机启动流程首先使用电池供电启动,然后插入电源充电。插入电源后,bq24735会触发中断,然后再断开电源停止充电。

阅读剩余
THE END