2015年12月31日木曜日

Gentoo セットアップメモ(2016/01/23追記)

年の瀬に中古のノートPCを買ってきました。持ち運び用にね。
HP Pavilion 10 TouchSmart Notebook PC 10-e003auとかいうなんかやたら長い名前のやつを2万ちょいでゲットだぜ。中古といっても2年くらい前のやつなのでまだ十分使えそう。

以前に宣言したとおり、デスクトップ環境はXfceではなくMATEで。OSはUbuntuじゃなくてドM用のGentoo Linuxで。GentooとMATEの組み合わせを使うのは初めてなので緊張度MAX。以前の記事はメモリ消費量を比較するためにVMに最低限のパッケージを入れただけなのでノーカン。

今まで何度かGentooを設定していますが、毎回似たようなところでハマる脅威の学習能力を誇るので俺得メモを残しておきます。
カーネルバージョンは4.1.12。

BIOS設定どこ?

いきなりハマったのがBIOS設定画面。
インストールイメージをUSBに入れてUSBポートに差し込んで起動…あれ、BIOS画面どっからいくの。F2F8F12を連打しても変わらず。そしてこのPCは中古品なので説明書がない。

F1から順に連打して試してみたら、F9でBIOS画面にたどり着いた。後半すぎる。
UEFIを無効にしてブートメディアを指定。これでようやく一歩踏み出せた。

Media not found

ようやく起動したとおもったら、起動中に
Media not found
とか出て先に進まない。

なにこれ初めて見るエラー。前途多難だーと泣きながら調べたら、それっぽいページをみつけた。
Media not found error when using Gentoo minimal install CD on Lenovo ThinkPad T450s - Unix & Linux Stack Exchange


ほう。つまりUSB3.0が原因とな。
でも例によって説明書がないのでどれが3.0でどれが違うのかわからないからまた順に試してみる。

このマシンのUSBポートは左側に1個、右側に2個あるのですが、今USBメモリを挿してるのは左側。ということはこれがUSB3.0か。
右側の手前に挿して再起動するとキタ━━━━(゚∀゚)━━━━!!
今度は一発OK。

ディスプレイドライバ

カーネルコンパイル前に確認。
# lspci | grep -i "vga"
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Kabini [Radeon HD 8180]
っへーれいでぃおんね。というわけでGentoo Wikiを拝見。

make menuconfig

Wikiによると多分こんなかんじでOK。
Device Drivers  --->
    Generic Driver Options  --->
        -*- Userspace firmware loading support
        [*] Include in-kernel firmware blobs in kernel binary
            (radeon/kabini_ce.bin radeon/kabini_me.bin radeon/kabini_mec.bin radeon/kabini_pfp.bin radeon/kabini_rlc.bin radeon/kabini_sdma.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin)
             (/lib/firmware) Firmware blobs root directory
ながっ。

/etc/portage/make.conf

この1行を追加。
VIDEO_CARDS="radeon"
これでいい感じになった。

無線LAN

これはトラブルじゃなくてただのメモ。NetworkManagerにまかせます。
カーネルコンパイル時にドライバさえ合っていれば、NetworkManagerがよしなにやってくれるはず。

システム起動時に滝のように流れるメッセージの中で、/etc/wpa_supplicant/wpa_supplicant.confがないという悲鳴が一瞬聞こえたのを逃さなかった。
無視しても普通に使えるから放置でもいいかもしれないけど、下手に放置して夜中に化けて出られても困るので助けてあげることにした。
# touch /etc/wpa_supplicant/wpa_supplicant.conf
こんな適当な対応でいいのか?とりあえず悲鳴も聞こえなくなった。

ボリュームコントロール

ボリュームコントロールのアプレットを入れて設定しようとしたら、なんかダイアログが出てきた。
The volume control did not find any elements and/or devices to control. This
means either that you don't have the right GStreamer plugins installed, or
that you don't have a sound card configured.
お、おう。要するにGStreamerのプラグインかサウンドカードを見なおせってことだな。

PulseAudioを有効にしてみる。

# USE="pulseaudio" emerge media-sound/pulseaudio media-plugins/alsa-plugins

サクッと書いてますけど、ここにたどり着くまでにまる1日くらいかかりました。

ドライバの設定を確認してみる。

まずはハードウェアの確認。
# lspci | grep -i "audio"
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Kabini HDMI/DP Audio
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 02)
えっと最初はHDMIかな。てことはボリュームコントロールに関係するのは2番目か。
というわけで/etc/modprobe.d/alsa.confの最後
# Set this to the correct number of cards.
#options snd cards_limit=1
 これを変更
# Set this to the correct number of cards.
options snd cards_limit=2
options snd-hda-intel index=1,0
これでいけた。(とおもったらいけてなかった。↓に追記します)

make menuconfig (2016/01/11 追記)

実はまだいけてなかった。デバイスが"Dummy output"と表示されて、音が出ない。
というわけでカーネルオプションの設定でドライバを入れてみる。
Device Drivers  --->
  <*> Sound card support  --->
    <*>   Advanced Linux Sound Architecture  --->
      HD-Audio  --->
        <*> HD Audio PCI
        <*> Build HDMI/DisplayPort HD-audio codec support
        -*- Enable generic HD-audio codec parser
HDMI端子もあるのでこれもチェック。今度こそいけた。

iPhoneテザリング

スタバれないところではiPhoneのテザリングを使いたいので、USBテザリングのメモ。
USBテザリングができなくても最悪うぃっふぃーでテザリングできますけど。そう、iPhoneならね。

このへん参考に。

make menuconfig

カーネルをコンパイルするときに、iPhoneテザリング用ドライバを組み込む。
Device Drivers  --->
    [*] Network device support  --->
        <*>   USB Network Adapters  --->
            --- USB Network Adapters
            <*>   Apple iPhone USB Ethernet driver

emerge

関係ありそうなパッケージを入れてみる。
# emerge app-pda/ifuse app-pda/usbmuxd app-pda/libimobiledevice
 そして再起動。
USBケーブルをぶっ挿すと、無事テザリングできました。

1〜2年前はもっといろんなモジュールを手動で組み込んだり設定ファイルをいじったり泣きそうになった記憶があるんですが、Linuxも進化してますね。世の中便利になりました。

Ubuntuだったら何も考えないでUSBケーブルぶっ挿せば使えます。さすがうぶんつ。

webcam(2016/01/23追記)

ウェブカメラがついてるのを忘れていた。まあほとんど使わないんですけど、使わないのと使えないのは全然違う!というわけでとりあえず使えるようにしてみます。
ビューアは依存の少ないGUVCViewにしたった。
# emerge -v media-video/guvcview
早速起動してみると…
カメラがみつからん。ちゃんと接続されてるか確認しる
と言われました(意訳)。接続もなにもくっついてますがな。
こういう場合は大抵ドライバが入ってないと相場が決まってます。そもそも入れた覚えないし。

make menuconfig

というわけでカーネル設定の見直し。
make menuconfig

Gentoo WikiにHP Pavilionの項目があったからこれを参考に設定。型番違うけどね。
Device Drivers  --->
  <*> Multimedia support  ---&gt
    [*]   Cameras/video grabbers support
    [*]   Media USB Adapters  --->
      <M>   USB Video Class (UVC)
      [*]     UVC input events device support
    [*]   V4L platform devices  --->
      <*>   SoC camera support
      <*>   platform camera support
こんなとこかな。なんかメニュー項目がちょっと違う気がするけど、多分カーネルのバージョンが違うせいだな。うん。

カメラが写らない!

guvcviewのエラーは出なくなりましたが、今度はキャプチャ画面に何も写らず真っ暗。
カメラの横のライト(カメラ使ってる時に点灯するっぽいやつ)はちゃんと点灯してるんですけど。

なんでだろうなーといろいろ調べたらたどり着きました。
No picture in guvcview | Trisquel GNU/Linux - Run free!
どうやらカーネル3.16以上だとGUVCViewは最新の2.0.1にしないとダメっぽい。
今入ってるのが1.6.1だからそれが原因かな。

Gentooから2.0.1の安定版が出るまで待たないといかんかなーと思いつつもう少し調べていると、こんな記事を見つけました。
#761388 - guvcview: No image output in any format. - Debian Bug report logs
これによると、
$ guvcview -r 2
こうやって起動するといいらしい。
ためしにやってみると…

キタ━━━━(゚∀゚)━━━━!!

ちゃんと映ったよ。目つき悪い人が!
そして2回目以降はオプションなしで普通に起動しても、メニューから起動してもちゃんと写るようになりました。

タッチスクリーン(2016/01/23追記)

これが一番時間かかりました。
タッチスクリーンなんて多分ウェブカメラ以上に使わないんでしょうけど、使わないのと使えないのは(以下同文

make menuconfig

苦労話はあとにして、とりあえず結論。
Gentoo Forums :: View topic - [solved] ELAN Touchscreen
このへんを参考にしてカーネルオプションを設定。
Device Drivers  --->
  HID support  --->
    HID bus support
      Special HID drivers  --->
        <*> HID Multitouch panels
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support
これで無事タッチしたところにマウスカーソルが移動しました。Xの設定とかは特にいじらないで済んだみたい。

Windowsとかスマホみたいにタッチでスクロールとかはできず、単にタッチしたらその場所でマウス左ボタン押下、離したら解放するだけっぽい感じです。
ファイルをがさっと選択したり、別フォルダに移動したりとかそれくらいならまあ使えるかな、うん。

苦労話

以下、試してもムダだったこと一覧。

touchscreen以下のデバイスドライバ全部

とりあえずドライバを入れてみよう!ということで、make menuconfigInput device support  ---> Touchscreens以下のデバイスドライバを全部組み込んでみたけど効果なし。

INPUT_DEVICES

次に試したのが/etc/portage/make.confの魔改造。
INPUT_DEVICES変数にmutouchを追加して
INPUT_DEVICES="evdev synaptics mutouch"
こんな感じにしてうどんワールド
やっぱり効果なし。

/usr/share/X11/xorg.conf.d

最後にXの設定。この中に99-touchscreen.confとか適当にファイルを作ってこんな項目を追加。
Section "InputClass"
       Identifier "evdev touchscreen catchall"
       MatchIsTouchscreen "on"
       MatchDevicePath "/dev/input/event*"
       driver "evdev"
EndSection
それでも効果なし。

戦いはこれからだ

ようやく最低限の設定が終わりました。来年からテーマやら各種アプリやらを入れて意識高くなります。

昔やったの思い出したり初めてのエラーを試行錯誤で潰したり時には最初からインストールやり直したりと、なんだかんだで1週間くらいかかりました。

それでは良いお年を。

0 件のコメント:

コメントを投稿