4pkのLinuxメモ

Linux(主にGentoo Linux)に関するメモを書き残すブログです。

画面の明るさ変更を可能にするカーネルパラメーター

/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor acpi_osi="

を追加する。

前者を追加することで画面の明るさを変更できるようになる。

後者を追加することで色々設定が変わる。=の先を変えることでsuspendの有効や無効などハードウェアのコントロールまわりの設定が変わる。

詳しくは,どこかに一覧があったけどURLを忘れてしまった。。

=の先を何もなしにしているのにもちゃんと意味がある。

新年の記事

新年あけましておめでとうございます。

4pkです。

2018年は様々なマシンにGentooLinuxを入れてうまく動いたり動かなかったりしてきました。

年の後半は忙しくなってあまり記事も書かずに裏でこそこそ活動していました。

これまでの経験からGentooについていったんまとめ記事的なものを書こうと思います。

記事は別記事にまとめて書く予定です。

参考までに今まで入れてきたマシンの一覧を載せておきます。

 

2010年頃

acer Aspire(めっちゃ古いPenデュアルコアのやつ)

2015年頃

DELL Precision T1650

 2016年頃

・Galleria(2009年のドスパラBTOデスクトップ)

2018年頃

・HP Z420

・HP Z210

Asus Zenbook UX31A

・MacBookAir

・MacBookPro

・Diginnos DG-D09IW2S(ドスパラのWinタブ)

・SurfacePro3

 

記事は,

デスクトップ編(基本編を兼ねる)

ラップトップ編

MacBook

Winタブレット

Surface

ぐらいに分けて書こうと思います。

 

SurfacePro3にGentooLinuxをインストールする(2018/12/30suspend有効化完成版)

 

・概要

うっかりSurfacePro3を落札してしまいました。

しかも,メモリ4GBのSSD128GBという底辺スペックのものを25000円ぐらいで落札。

あーやってしまったと思ったが,ものが届くとメモリ8GBのSSD256GBであった。

どこを間違えたんやと思いながら,

安かったかどうかは議論の余地があるが,MBA以外でまともなスペックのノートがこの値段で買えたならまあええかとなりました。

タイプカバーがついてなかったので,追加で購入。USキーボードのものが国内では人気がなく安いためめっちゃ都合がええやんけと言いながら買いました。

 

Winタブが完結していない中でこっちを先にやってしまいました。

MacBookもまだ途中だし,年内で全部まとまるのか謎です。。

 

Surfaceは普通に使う分には普通に動くのですが,細かい部分は積み上げられた叡智があるので叡智をいただくことで比較的簡単にできます。

 

基本的なところは全部省略します。

基本的なところだけをまとめた記事も製作したいですね。(遠い目)

とりあえず,#gentooinstallbattle カテゴリーでまとめているのでしばらくはそれで追うようにしてください。

追記しないといけない記事もたくさんありますが,もう少し時間をください。

 

 

カーネルコンフィグ

偉大なる叡智は下記にあります。

https://github.com/danielquinn/Gentoo-Surface-Pro-3

ここのkernelディレクトリのReadmeを読んでください。

よくわからん場合,適当に最新のフォルダをそのまま/usr/src/linuxに置いてください。

パッチはしてもしなくても良いかも

.configをgenkernelで読み込むように,/etc/kernels/とかに置いてください。

自分の環境では,rootで実行するのとsudoで実行するので参照フォルダが変わりました。

oldconfigすれば一発でSurface用のカーネルができあがります。

カーネル自体が変わることになるので,

grub-mkconfig -o /boot/grub/grub.cfg

も忘れずに。

多分,なんとかgentoo-surfacepro3が増えてると思います。

 

サスペンドやハイバーネイト

サスペンドは安定化(下方に記載)

ハイバーネイトは復帰後,無線モジュールが死ぬ問題が残っている。

 

・バックライト明るさ変更

GnomeだとうまくいくがMATEだとうまくいかないので,直接変更するコマンドを自作しました。

変更自体は生きてるのですが,キーボードのショートカットキーがうまくいきませんでした。

 

作り方

sudo mkdir /usr/local/bin/custom_command

/etc/profileの一番最後に内容を追記

 

export PATH=$PATH:/usr/local/bin/custom_command

 

custom_commandディレクトリにコマンドのシェルスクリプトを作成する。

コマンド名をbacklight_brightnessにした。

内容は下記

 

#!/bin/sh

 echo -n "明るさの指定(0-937):"
 read value
 sudo -- sh -c "echo $value > /sys/class/backlight/intel_backlight/brightness"

 

明るさは,/sys/class/backlight/intel_backlight/max_brightnessで確認してください。

%で指定したい人は,valueの値を0−100にして最大の明るさと合うように変換してください。

 

忘れずに実行権限を追加する。

chmod 755 backlight_brightness

 

・残件

意外とうまくいかない部分が多いです。

その中でも特に実用するのに困ったサスペンドの部分だけ先に書きます。

 

サスペンドの有効化

普通にGentooをインストールしたらカーネルが4.14ぐらいのバージョンになっていると思います。

このバージョンのカーネルだとタイプカバーなどは問題なく使えてもサスペンドあたりの機能が正常に動作しないようです。

(だいぶ色々やったけど無理だった)

もう無理なのかと諦めかけていたとき,Ubuntuのフォーラムなどで

4.17だけどうまくいかないんだ

4.18にしたらどうだい?

おお,うまくいったお

みたいなやり取りを何度か見かけたのでとりあえず最新にする試みはするだけしようと思い,4.19までバージョンを上げてみました。

その結果,サスペンドは問題なく動作するようになったのでカーネルのバージョンアップのやり方も復習しながら方法を書いていきます。

 

最新のカーネル取得

overlayで最新のカーネルソースを取れるようにします。

私はlaymanで

sudo layman -a gentoo

でしました。(laymanに関しては割愛)

/usr/portage/sys-kernel/gentoo-sources/の中に最新のカーネルソースがあるので,emergeします。

sudo emerge gentoo-sources-4.19.12.ebuild 

こうすることで,/usr/src/の中に新しいカーネルソースが入ります。

1GBぐらい容量があるので注意してください。

Gentooは便利なのでカーネルの変更をeselectで簡単にすることができます。

sudo eselect kernel list

で確認して,

sudo eselect set 2

などで新しいカーネルを選択してください。

genkernelを導入している場合は,oldconfigを有効にして

sudo genkernel --install all

で特に変えるところもなくいけると思います。

sudo grub-mkconfig -o /boot/grub/grub.cfg

で完了です。

make menuconfigする場合は,.configのバックアップなどをとってからoldconfigなどを用いて行ってください。

 

②USB接続によるwakeupの無効

上記,カーネルを最新にするだけで問題なくSuspendが動作する場合もあるようですが,Suspendした瞬間にUSBのドライバがなんかが動きそれによりSuspendが解除される問題が多々あるようです。(Surfaceに限った話ではない)

そこで,USBの接続などでは復帰しないというのを追加することで対策することができます。

まず,状況の確認から行います。

cat /proc/acpi/wakeup

でwakeupの条件となるものに何が設定されているか確認します。

当環境では,

 

Device S-state Status Sysfs node
WIFI S4 *disabled pci:0000:01:00.0
LID0 S3 *enabled platform:PNP0C0D:00
EC0 S3 *disabled platform:PNP0C09:00
XHC S4 *enabled pci:0000:00:14.0
HDEF S4 *disabled pci:0000:00:1b.0
TPD4 S4 *disabled
TPD7 S0 *disabled
TPD8 S0 *disabled
PEG0 S4 *disabled
PEGP S4 *disabled
PEG1 S4 *disabled
PEG2 S4 *disabled

 

となっていました。

SurfaceUSB3.0のポートが1つしかないので,XHCがenableだと困るという感じです。

手動によるチェック

rootになって

# echo XHC > /proc/acpi/wakeup

と打ってください。

これで一時的に無効になります。

さっきのコマンドでdisableになっているのを確認してちゃんとできるか試してください。

 

このままでは再起動の度に設定が初期化されるので,ちゃんとできてるようなら立ち上がる時点で毎回このコマンドを有効にしたくなります。

そこで,systemctlで毎回できるように設定を作ります。

sudo nano /etc/systemd/system/disable-USB-wakeup.service

など適当にファイル名をつけて中身を

 

[Unit]
Description=Disable USB wakeup triggers in /proc/acpi/wakeup

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo EHC1 > /proc/acpi/wakeup; echo EHC2 > /proc/acpi/wakeup; echo XHC > /proc/acpi/wakeup"
ExecStop=/bin/sh -c "echo EHC1 > /proc/acpi/wakeup; echo EHC2 > /proc/acpi/wakeup; echo XHC > /proc/acpi/wakeup"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

 

などで書きます。当環境はXHCだけなので要らない部分は消しました。

 

sudo systemctl enable disable-USB-wakeup.service

で起動時に設定できます。 

 

 ・gdbus-codegen not found

sudo emerge gdbus-codegen

をしても,中身がないことがあります。

具体的には,コマンドとして,gdbus-codegenがない。本体がない。(bin系にない)

こういうときは,

sudo emerge glib

してください。そしたら入ります。

色々依存関係で突然なくなることが稀にあるようです。

 

 

 

 

WindowsタブレットにGentooをインストール(11/25更新,未完成)

しばらく忙しくて全然OSSの活動ができていませんでした。

先日,KOF大阪に行ってきてタブレットで有名なKapperさんと少し話してLinuxを入れれるタブレットの見分け方などを教えていただきました。

という事で早速今日日本橋に行って,適当なタブレットを買ってきました。

DignnosのDG-D09IW2Sです。

KapperさんはあまりGentooを入れたことがないと言うことで早速Gentooを入れました。

バッテリーがほとんどない状態でUSBのタコ足を持ってないため今日だけで全部完了することは出来ませんでしたが,数日に渡る備忘録です。

 

①USBブートの準備

・USBインストールディスク

なんか適当に作ってください

最初から無線が使えるのでこの手のマシンはUbuntuが楽です

BIOSへの入り方

この機種は,電源ボタンと音量の上キーを押すことでBIOSメニューに入ることが出来ます

もしくは,キーボードをつないだ状態で,Delキーを押しながら起動してください。

BIOSの設定変更

FastBoot:Disable

SecureBoot:Disable

TXE関連:Disable

(Bootオプション:USBドライブを選択)

 

再起動すればUSBブートできるはず

 

パーティション

eMMCドライブなら

gdisk /dev/mmcblk0

でいけます

Winを消す場合,全部dで消してください。

残す場合は,gpartedなどを用いて平和的に容量を開けてください。

 

設定の参考例

Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02
2 6144 268287 128.0 MiB EF00
3 268288 1267711 488.0 MiB 8200
4 1267712 46905230 21.8 GiB 8300

これは,ZenBookの例ですがこんな感じです。

スワップはもっとあった方がいいです。

gdiskの場合コードが覚えれないので,これを見たらすぐわかりますということで。

 

③USBブート後

・基本事項

USBの蛸足がないと詰みます。

この上の段階でも充電しながらやりくりが困難な可能性が高いです。

UbuntuでUSBブートすると最初から無線が使えたり,BTも問題なく使えるのでBTキーボードが使えます。

GentooをインストールするのにUbuntuなんて…と思ってしまいますがUSBポートの数的にやはりUbuntuを使った方が無難です。

 

④#gentooinstallbattleのメモ

UbuntuだとCLIのブラウザが分からん

sudo wget 

http://ftp.jaist.ac.jp/pub/Linux/Gentoo/releases/amd64/autobuilds/current-stage3-amd64-systemd/stage3-amd64-systemd-20181108.tar.bz2

でstage3を落としました。

ブラウザ使って落としてきても良いと思います。

最近はいつもsystemdを落としています。

 

・make.conf

コンパイルオプションのところの書き方が変わってるわね

INPUT_DEVICESのタッチスクリーンの部分の書き方はこの時点では不明なので放置しました

 

うどんわーるどが長いので今日はここで終わります。

飛ばしすぎで分からんという人があれば教えてください。

・インストール完了までの流れ

chroot

(中略)

カーネル

grub-install

Gentooで起動!!

 

・今回ハマったところ 

eMMCを使うのが初めてだったので,カーネルの組み込みを忘れて起動できない状態に陥りました。

https://www.koyu-pro.jp/blog/detail.php?id=2

上記を参照しました。

※MMC認識で必要になるもの

Device Drivers --->
<*> MMC/SD/SDIO card support ---> 
<*> MMC block device driver (NEW) 
<*> Secure Digital Host Controller Interface support
<*>SDHCI support for ACPI enumerated SDHCI controllers

Processor type and features --->
[*]Intel Low Power Subsystem Support

Device Drivers --->
Pin controllers --->
[*] Intel Baytrail GPIO pin control
<*> Intel Sunrisepoint pinctrl and GPIO driver

GPIOあたりが必要かどうかは謎

  

⑤Wirelessnetworkの設定方法

以前の記事を追記して,ちゃんと読めば設定出来るようにしました。

 

GUIの導入方法

今回はmateを例とする。

 

emerge xorg-server mate

sudo nano .xinitrcで.xinitrcを以下の内容で作成

内容

exec mate-session

※何かと便利なのでGnome3も入れた方が良いです

emerge gnome

※めっちゃ時間かかるし重いので注意 

Gnomeで起動するときは

exec gnome-session

 

$ startx

MATEが立ち上がります,ほら簡単!!

(あとでちゃんと書くかも書かないかも)

 

⑦タッチスクリーンの有効化

かなり泥沼に入っています。

これで詰まっているせいでなかなか記事が更新出来ない状態です。

Ubuntuだと何も考えなくても認識するのですが,Gentooだと一苦労の案件。

今日うまくいったとしてもまとめるのに数日はかかります。

散々苦労して思ったことは,タッチスクリーンよりBlueToothキーボードの方がGentooをいじるには重要だということに気付きましたね…(CLIなら要らんし,GUIでもショートカット駆使すればどうにでも)

 

Ubuntuの設定を真似することで動くようになりました。

Ubuntuカーネルはほぼ全ての機能が有効になってるような状態です。

どこまで削っても動くのかを確かめないと本質的な部分が見えてこない状態なので,もう少しお待ちください。

 

⑧mikutterinstallbattle

#gentooinstallbattle の最後のステップ

 

・日本語フォントの導入方法

emerge kochi-substitute

フォントが雑魚いのでvlgothicでも入れましょう

emerge vlgothic

あと,ほた氏のフォントがおすすめ

emerge koruri

 

・絵文字関連

別記事を参照

 

⑨入れておくと便利なツールなど

 

・genlop

emerge genlop

genlop -c

で現在のemergeの情報が見れます。

 

・pkill

sudo pkill mate-session

などでログアウトができる

 

・電源管理系

別記事参照

 

BlueToothの導入(重要)

カーネル

wikiより

[*] Networking support --->
      <M>   Bluetooth subsystem support --->
              [*]   Bluetooth Classic (BR/EDR) features
              <*>     RFCOMM protocol support
              [ ]       RFCOMM TTY support
              < >     BNEP protocol support
              [ ]       Multicast filter support
              [ ]       Protocol filter support
              <*>     HIDP protocol support
              [*]     Bluetooth High Speed (HS) features
              [*]   Bluetooth Low Energy (LE) features
                    Bluetooth device drivers --->
                      <M> HCI USB driver
                      <M> HCI UART driver
      <*>   RF switch subsystem support --->
    Device Drivers --->
          HID support --->
            <*>   User-space I/O driver support for HID subsystem

gpasswd -a ユーザー名 plugdev

をしないと,ユーザーに対して許可が出ないらしい

bluzと言うパッケージをemergeする

hciconfigを打ちたい場合は以下のUSEフラグを追加してemergeする

USE="deprecated" emerge bluz

ここまですれば

bluetoothctlでコマンドから設定可能

GUIで設定する場合は,Gnome3を入れると良い(前参照)

startxでGnome3から立ち上がればGUIBlueToothの設定をすることが出来ます。

 

自動で立ち上がるようにするやつと起動するやつ

systemctl enable bluetooth

systemctl start bluetooth

enableにして自動で立ち上がるようにすることで,一度登録したデバイスはログイン前でも接続出来るようになります。

 

・ccache(手抜き)

wikiより以下

emerge ccache

root #mkdir -p /gentoo/ccache
root #chown root:portage /gentoo/ccache
root #chmod 2775 /gentoo/ccache
FILE /gentoo/ccache/ccache.conf
# Maximum cache size to maintain
max_size = 100.0G

# Allow others to run 'ebuild' and share the cache.
umask = 002

# Preserve cache across GCC rebuilds and
# introspect GCC changes through GCC wrapper.
compiler_check = %compiler% -v

# I expect 1.5M files. 300 files per directory.
cache_dir_levels = 3
FILE /etc/portage/make.conf
FEATURES="${FEATURES} ccache"
CCACHE_DIR="/gentoo/ccache"

 

.bashrcに以下を追記

FILE ~/.bashrc
export PATH="/usr/lib/ccache/bin${PATH:+:}$PATH"
export CCACHE_DIR="/gentoo/ccache"

 

 

 

 

 

僕達は凍結された

僕達は凍結された

 

Suspend

Suspend

Suspend

 あ~

 

鯖に埋もれた 記憶の彼方
そうさ僕達は 凍結された

空の上からふぁぼの種を
撒き散らした
この鳥から 悲しみ
消したかった

ねえ 東京の京橋
見上げていると
sushiがわかないか
今でも

To My Account
永久 凍結されたけれど
まだ syuuとkatsyoshi 残ってる
To My Craft
全てを燃やして 次に行こうよ
ほら 鳥の像に 炎がかかる

 

リアルタイムで やりとり出来ず
今は遅れて 通知が鳴る

7日間でカウントダウンして
機能停止
土日の間で
人を象に移した

そう Twitter
協力をする
過去もあったんだ
ほんとさ

To My Account
明日を信じ続けていれば
このAPIもPremiamuに変わる
To My Client
傷つき 記録残していこう
次 薄い本の 売上で ふぐ食う

 

To My Application

背中の羽はなくしたけれど
まだ 泥の初期アプリ に入ってる
To My SNS
ユーザー捨てて 夢を見てるよ
ほら 鳥の顔に 本が被る