お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2014-09-09 13:50:14

yu-ki02
メンバ
登録日: 2014-09-09

上のバーに電池残量が表示できません

パネルにバッテリーの電池残量を表示させたいのですが、表示の仕方がわかりません。

"unity Tweak Tool" を使っても表示されず、acpiコマンドを使ってもbattery情報が取得できません。

/proc/acpi/batteryディレクトリの中は空です。
一応、/sys/class/power_supply/ADP1/のなかにファイルがあるのを確認しましたが、どう変更を加えればいいかもわかりません。

どなたか回答お願いします。

OS: ubuntu 14.04LTS
PC: NEC Lavie G

オフライン

 

#2 2014-09-09 19:09:55

taka.zoo.n
メンバ
登録日: 2013-05-30

Re: 上のバーに電池残量が表示できません

ADP1 は AC アダプターに対応します。私が使っているのは Lavie Z なので違っているかも知れませんがバッテリーは多分 BAT1 になるはずです。

/sys/class/power_supply の下にあるのは ADP1 だけですか?もしそうなら端末から

コード:

sudo grep BIX /var/log/dmesg

を実行してみてください。ひょっとして

ACPI Warning: \_SB_.PCI0.LPCB.EC__.BAT1._BIX: Return Package is too small - found 19 elements, expected 20 (20131115/nsprepkg-339)

のようなログがありませんか?もしそうなら BIOS の bug のせいです。もし、カーネルを作り直すことを厭わないのであれば「12.04.02, カーネル 3.5.0-39 → 3.5.0-40 で電池が認識されなくなった(NEC Lavie Z)」が参考になるかと思います。だだ、12.04.02 とは kernel が違うので行番号に若干の差異がでます。
12.04 trusty kernel ではこれでバッテリーが kernel に認識される(/sys/class/power_supply/BAT1 ができる)ようになりますので 14.04 でも同じなのではないかと予想します。

kernel には認識されているがパネルに表示されないという状況の場合は私には分かりません。

オフライン

 

#3 2014-09-09 19:58:18

yu-ki02
メンバ
登録日: 2014-09-09

Re: 上のバーに電池残量が表示できません

どうやら同じような症状のようなので,カーネルをいじってみます.
まだまだ知識が足りないようので,調べながら頑張ります.
情報ありがとうございました.

オフライン

 

#4 2014-09-10 00:23:52

taka.zoo.n
メンバ
登録日: 2013-05-30

Re: 上のバーに電池残量が表示できません

14.04 の linux-image-3.13.0-35-generic(3.13.0-35.62) のソースをダウンロードして12.04 の linux-image-3.13.0-35-generic(3.13.0-35.62~precise1) と比較しました。結構差異があるようですが drivers/acpi/battery.c は同一でした。ですので、基本的には12.04.02 の対処と似たような手順でカーネルを作れば電池を認識するはずです。手順の変更点ですが(項番はそこの#7に書いた手順の項番に対応しています。)

(1) ダウンロードするのは linux_3.13.0.orig.tar.gz と linux_3.13.0-35.62.diff.gz の二つです。kernel のバージョンが上がっても大抵は orig.tar.gz は変わりません。diff.gz はバージョンが上がる度にダウンロードする必要があります。
(2) パッケージを作成するディレクトリに cd して
     tar -xzvf ダウンロードディレクトリ/linux_3.13.0.orig.tar.gz
     cd linux-3.13
     zcat ダウンロードディレクトリ/linux_3.13.0-35.62.diff.gz | patch -p1 -s
を実行してください。正常なら patch は何もメッセージを出さずに終了するはずです。1行でもエラーメッセージが出たら何か問題があります。
(3) battery.c を変更するところは 3.13.0-35 では 122 行めと 365 行めです。問題の行を単に削除した場合、diff -u の出力は

--- battery.c-dist    2014-08-30 08:31:07.561214557 +0900
+++ battery.c    2014-08-30 08:35:53.080249340 +0900
@@ -119,7 +119,6 @@
    struct acpi_device *device;
    struct notifier_block pm_nb;
    unsigned long update_time;
-    int revision;
    int rate_now;
    int capacity_now;
    int voltage_now;
@@ -362,7 +361,6 @@
};

static struct acpi_offsets extended_info_offsets[] = {
-    {offsetof(struct acpi_battery, revision), 0},
    {offsetof(struct acpi_battery, power_unit), 0},
    {offsetof(struct acpi_battery, design_capacity), 0},
    {offsetof(struct acpi_battery, full_charge_capacity), 0},

と(時刻以外は)なるはずです。

(6) バージョン番号は作成するカーネルに応じて変更してください。

上記は 12.04 で実行して確かめたもので、14.04 ならではの変更が何か必要になるかもしれません。
それから以前書き忘れたのですが、本体ディスクに空きが無いなどの理由で USB メモリー中にカーネルを作成する場合は ext2, ext3, ext4 など symbolic link をサポートするファイルシステムを作成してください。FAT のままではダメです。本体 HDD に空きが十分あるのならそちらを使うことをお勧めします。

オフライン

 

#5 2014-09-26 11:16:24

yu-ki02
メンバ
登録日: 2014-09-09

Re: 上のバーに電池残量が表示できません

丁寧な説明ありがとうございます.

ためしてみたところ,makeすると以下のエラーが発生しました。

make[1]: *** `scripts/kconfig/qconf.o' に必要なターゲット `scripts/kconfig/.tmp_qtcheck' を make するルールがありません.  中止.
make: *** [xconfig] エラー 2

どうすればよいでしょうか?

オフライン

 

#6 2014-09-26 18:57:52

taka.zoo.n
メンバ
登録日: 2013-05-30

Re: 上のバーに電池残量が表示できません

make[1]: *** `scripts/kconfig/qconf.o' に必要なターゲット `scripts/kconfig/.tmp_qtcheck' を make するルールがありません.  中止

このエラーメッセージは見たことがありませんが、Makefile を眺めてみたところ、qt 関連のパッケージが不足していることが考えられます。
とりあえず、次のコマンドの実行結果を教えてください。

コード:

pkg-config --modversion QtCore
pkg-config --modversion QtGui
pkg-config --modversion Qt3Support
pkg-config --modversion qt
pkg-config --modversion qt-mt

オフライン

 

#7 2014-09-26 19:48:30

yu-ki02
メンバ
登録日: 2014-09-09

Re: 上のバーに電池残量が表示できません

1行目のコマンドを実行したところ以下の結果が出ました.
他のコマンドも同じ結果です.

コード:

Package QtCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `QtCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'QtCore' found

オフライン

 

#8 2014-09-26 21:33:09

taka.zoo.n
メンバ
登録日: 2013-05-30

Re: 上のバーに電池残量が表示できません

qt4 開発環境も qt3 開発環境もないのが原因かと思われます。
が、この先どうすればよいかが私には分かりません。
12.04 ですとパッケージ qt4-dev-tools と libqt4-dev をインストールすれば問題は解決するはずですが、14.04 ではどうすれば良いんでしょうかね?
http://packages.ubuntu.com/trusty/allpackages には記載がありません。ここをみると 14.04 は qt5 が基本なのですね。)
ただ、これは kernel の再構築とは独立な、純粋に Qt の問題なので新たにスレッドを開いて「12.04 の qt4-dev-tools と libqt4-dev に相当する 14.04 のパッケージ名」を聞かれた方が良いと思います。(単に同名のパッケージをインストールすれば良いだけかも知れませんし、14.04 の他のパッケージと干渉しないようになにか手立てが必要なのかもしれません。手元に 14.04 がないのでこの辺は私にはまったく分かりません。)
インストールしたら pkg-config --modversion QtCore QtGui Qt3Support でバージョンが表示されることを確かめてください。問題がなければ kernel の再構築を再開してください。

オフライン

 

#9 2014-09-30 16:22:43

yu-ki02
メンバ
登録日: 2014-09-09

Re: 上のバーに電池残量が表示できません

とりあえずqt4-dev-tools と libqt4-devをインストールしましたが、まだqt,qt-mtがないようです。
ほかに何をインストールすべきでしょう。

以下のエラーがでました。

コード:

HOSTCXX scripts/kconfig/qconf.o
/bin/sh: 1: g++: not found
make[1]: *** [scripts/kconfig/qconf.o] エラー 127
make: *** [xconfig] エラー 2

オフライン

 

#10 2014-09-30 20:18:11

taka.zoo.n
メンバ
登録日: 2013-05-30

Re: 上のバーに電池残量が表示できません

apt-get か synaptic で g++ パッケージをインストールしてください。binutils-dev をまだインストールしていなければそれもインストールしてください。

とりあえずqt4-dev-tools と libqt4-devをインストールしましたが、まだqt,qt-mtがないようです。

pkg-config の引数にするパッケージ名 qt と qt-mt は qt3 のものです。
QtCore, QtGui と Qt3Supoort は qt4 のものです。これらは ubuntu のパッケージ qt4-dev-tools と libqt4-dev に含まれています。
kernel 再構築には qt3 開発環境か qt4 開発環境のどちらかがあれば make xconfig は通るはずです。(参考までに: make xconfig では qt3 は qt4 がないときのみ使われるようです。)

オフライン

 

#11 2014-10-01 10:05:12

yu-ki02
メンバ
登録日: 2014-09-09

Re: 上のバーに電池残量が表示できません

無事電池残量が表示されるようになりました。
本当にありがとうございました。

オフライン

 

Board footer

Powered by FluxBB