ruby2.5のせいでslot conflict

またもやemerge -uDN @worldでコンフリクトです。

lang-ruby/rakeやlang-ruby/rdoc、そしてrubygems(dev-ruby/rubygemsとvirtual/rubygems)がコンフリクトしているそうです。
(すみません。ログを確保し忘れました。)

emergeのメッセージやpackage.gentoo.orgによると、
"Mask ruby25 for removal. This version is no longer supported upstream. Use a newer ruby version, e.g ruby26. Masked for removal in 30 days."
とのことで、どうやらruby25が、もうサポートされなくなったようです。
Gentoo WikiのRubyには、「rubyのアップデートはemerge -uDN @worldで万事解決だぜ!」みたいなことが書いてますが、そのemerge -uDN @worldがrubyのせいで通らないんだっつーの。

というわけで、ググると自分の備忘録が!

gentoolinux.hatenablog.com

では、ruby:25を削除するとどうなるか、-pで見てみます。
(その前に、eselect ruby listでruby26がsetされていることを確認しましょう。
セットはeselect ruby set ruby26で。)

gentoo ~ $ emerge --depclean -pv dev-lang/ruby:2.5

Calculating dependencies... done!
  dev-lang/ruby-2.5.8 pulled in by:
    dev-ruby/did_you_mean-1.2.1 requires dev-lang/ruby:2.5
    dev-ruby/htmlentities-4.3.4 requires dev-lang/ruby:2.5
    dev-ruby/json-2.3.0 requires dev-lang/ruby:2.5
    dev-ruby/minitest-5.11.3 requires dev-lang/ruby:2.5
    dev-ruby/net-telnet-0.2.0 requires dev-lang/ruby:2.5
    dev-ruby/power_assert-1.1.5 requires dev-lang/ruby:2.5
    dev-ruby/rake-12.3.3 requires dev-lang/ruby:2.5
    dev-ruby/rdoc-6.1.2 requires dev-lang/ruby:2.5
    dev-ruby/rubygems-3.0.9 requires dev-lang/ruby:2.5
    dev-ruby/test-unit-3.3.3 requires dev-lang/ruby:2.5
    dev-ruby/xmlrpc-0.3.0 requires dev-lang/ruby:2.5
    virtual/rubygems-15 requires dev-lang/ruby:2.5

>>> No packages selected for removal by depclean
Packages installed:   717
Packages in world:    180
Packages in system:   44
Required packages:    717
Number to remove:     0

なかなかのパッケージ数ですね。
これを削除しましょう。

gentoo ~ $ emerge -C =dev-ruby/did_you_mean-1.2.1 =dev-ruby/htmlentities-4.3.4 =dev-ruby/json-2.3.0 =dev-ruby/minitest-5.11.3 =dev-ruby/net-telnet-0.2.0 =dev-ruby/power_assert-1.1.5 =dev-ruby/rake-12.3.3 =dev-ruby/rdoc-6.1.2 =dev-ruby/rubygems-3.0.9 =dev-ruby/test-unit-3.3.3 =dev-ruby/xmlrpc-0.3.0 =virtual/rubygems-15

(中略)

All selected packages: =virtual/rubygems-15 =dev-ruby/json-2.3.0 =dev-ruby/power_assert-1.1.5 =dev-ruby/htmlentities-4.3.4 =dev-ruby/rdoc-6.1.2 =dev-ruby/net-telnet-0.2.0 =dev-ruby/did_you_mean-1.2.1 =dev-ruby/test-unit-3.3.3 =dev-ruby/xmlrpc-0.3.0 =dev-ruby/rubygems-3.0.9 =dev-ruby/minitest-5.11.3 =dev-ruby/rake-12.3.3

>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.

>>> Waiting 5 seconds before starting...
>>> (Control-C to abort)...
>>> Unmerging in: 5 4 3 2 1
>>> Unmerging (1 of 12) dev-ruby/did_you_mean-1.2.1...
>>> Unmerging (2 of 12) dev-ruby/htmlentities-4.3.4...
>>> Unmerging (3 of 12) dev-ruby/json-2.3.0...
>>> Unmerging (4 of 12) dev-ruby/minitest-5.11.3...
>>> Unmerging (5 of 12) dev-ruby/net-telnet-0.2.0...
>>> Unmerging (6 of 12) dev-ruby/power_assert-1.1.5...
>>> Unmerging (7 of 12) dev-ruby/rake-12.3.3...
>>> Unmerging (8 of 12) dev-ruby/rdoc-6.1.2...
>>> Unmerging (9 of 12) dev-ruby/rubygems-3.0.9...
>>> Unmerging (10 of 12) dev-ruby/test-unit-3.3.3...
>>> Unmerging (11 of 12) dev-ruby/xmlrpc-0.3.0...
>>> Unmerging (12 of 12) virtual/rubygems-15...

削除できたようです。
では、肝心のruby25を削除しましょう。

gentoo ~ $ emerge --depclean -v dev-lang/ruby:2.5

Calculating dependencies... done!
>>> Calculating removal order...

 dev-lang/ruby
    selected: 2.5.8
   protected: none
     omitted: 2.6.8

All selected packages: =dev-lang/ruby-2.5.8

>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.

>>> Waiting 5 seconds before starting...
>>> (Control-C to abort)...
>>> Unmerging in: 5 4 3 2 1
>>> Unmerging (1 of 1) dev-lang/ruby-2.5.8...
No package files given... Grabbing a set.

(以下略)

これで、ruby25が削除されました。
あ、make.confのRUBY_TARGETSは
RUBY_TARGETS="ruby26"
など、ruby25を削除するのをお忘れなく。

めでたくemerge-uDN @worldが通りそうです。

sys-libs/glibc-2.33-r1 emerge エラー CONFIG_IA32_EMULATION

emerge -uDN @worldをしようとすると、またもやハマりました。
sys-libs/glibcがアップデートできません。

 * ERROR: sys-libs/glibc-2.33-r1::gentoo failed (pretend phase):
 *   CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc.

そうですか。
で、調べてみました。

gentoo ~ # grep CONFIG_IA32_EMULATION /usr/src/linux/.config
CONFIG_IA32_EMULATION=y

あら? セットされてますね。
binutilsが古いからという話もあり、過去記事を参考にbinutilsをアップデート。

gentoolinux.hatenablog.com

最新にアップデートしても同じようにコケます。
同じような方がGentoo's Bugzillaにいらっしゃいました。

bugs.gentoo.org

この方は、ebuildのCONFIG_IA32_EMULATIONチェックをコメントアウトしてglibcコンパイル
さらにコメントアウトをもとに戻して再コンパイルし、動作したそうです。

では、私もebuildを改変してみます。

/usr/portage/sys-libs/glibc/glibc-2.33-r1.ebuildの653行目から674行目あたりをすべてコントアウトします。
(↓コメントアウト前ですが、このあたり。)

# ABI-specific checks follow here. Hey, we have a lot more specific conditions that
# we test for...
if ! is_crosscompile ; then
	if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then
		ebegin "Checking that IA32 emulation is enabled in the running kernel"
		echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
		local STAT
		if "${CC-${CHOST}-gcc}" ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
			"${T}/check-ia32-emulation.elf32"
			STAT=$?
		else
			# Don't fail here to allow single->multi ABI switch
			# or recover from breakage like bug #646424
			ewarn "Failed to compile the ABI test. Broken host glibc?"
			STAT=0
		fi
		rm -f "${T}/check-ia32-emulation.elf32"
		eend $STAT
		[[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc."
	fi

fi

このままemergeするとダイジェストでサイズが違うと怒られるので、ebuildコマンドでdigestを改変します。

gentoo ~ # ebuild /usr/portage/sys-libs/glibc/glibc-2.33-r1.ebuild digest

これで、glibcのemergeが走ります。
glibcアップデート後にコメントアウトをもとに戻してもemergeできるのかどうかは、この後実施します。

dev-libs/icuのdependency conflict:

emerge -uDN @worldでicuのコンフリクトエラーが出るので、icuだけ先にアップデートしようとすると、当然コンフリクトエラーが出ますが、どのパッケージがコンフリクトしているかがわかります。

# emerge -up dev-libs/icu

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

dev-libs/icu:0

  (dev-libs/icu-68.2:0/68.2::gentoo, ebuild scheduled for merge) USE="-debug -doc -examples -static-libs" ABI_X86="(64) -32 (-x32)" conflicts with
    >=dev-libs/icu-67.1:0/67.1= required by (dev-lang/spidermonkey-78.10.1:78/78::gentoo, installed) USE="jit -clang -debug -lto -test" ABI_X86="(64)"
                       ^^^^^^^^
    dev-libs/icu:0/67.1=[abi_x86_64(-)] required by (net-fs/samba-4.13.9:0/0::gentoo, installed) USE="acl pam regedit -addc -addns -ads -ceph -client -cluster -cups -debug (-dmapi) (-fam) -glusterfs -gpg -iprint -json -ldap -ntvfs -profiling-data -python -quota (-selinux) -snapper -spotlight -syslog (-system-heimdal) -system-mitkrb5 -systemd (-test) -winbind -zeroconf" ABI_X86="(64) -32 (-x32)" PYTHON_SINGLE_TARGET="python3_8 -python3_7 -python3_9"
                ^^^^^^^^
    dev-libs/icu:0/67.1= required by (mail-mta/postfix-3.5.8:0/0::gentoo, installed) USE="berkdb eai mysql pam sasl ssl -cdb -dovecot-sasl -hardened -ldap -ldap-bind -libressl -lmdb -mbox -memcached -nis -postgres (-selinux) -sqlite" ABI_X86="(64)"
                ^^^^^^^^
    dev-libs/icu:0/67.1= required by (net-mail/dovecot-2.3.13-r1:0/0::gentoo, installed) USE="bzip2 ipv6 mysql pam tcpd zlib -argon2 -caps -doc -kerberos -ldap -libressl -lua -lucene -lz4 -lzma -managesieve -postgres -rpc (-selinux) -sieve -solr -sqlite -static-libs -suid -textcat -unwind -zstd" ABI_X86="(64)"

似たようなハマり方を何度もしていて、同じ対処法なのに、久々すぎたのか気づくのが遅くなりました。
こんな時は同時にアップデートする必要があります。
そうすることで、icuが必要なパッケージを新しいicuでrebuildしていただきます。

# emerge -1 dev-libs/icu dev-lang/spidermonkey net-fs/samba mail-mta/postfix net-mail/dovecot

めでたくemergeが走ります。

dev-ruby/bundlerのemergeに失敗する。

rubyのアップデート中、dev-ruby/bundlerのアップデートに失敗しました。

/etc/portage # emerge -u dev-ruby/bundler

Calculating dependencies... done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) dev-ruby/bundler-2.1.4::gentoo
 * bundler-2.1.4.gem BLAKE2B SHA512 size ;-) ...                                                              [ ok ]
>>> Unpacking source...
 * Running unpack phase for all ...
 * Unpacking .gem file... ...                                                                                 [ ok ]
 * Uncompressing metadata ...                                                                                 [ ok ]
 * Unpacking data.tar.gz ...                                                                                  [ ok ]
>>> Source unpacked in /var/tmp/portage/dev-ruby/bundler-2.1.4/work
>>> Preparing source in /var/tmp/portage/dev-ruby/bundler-2.1.4/work ...
 * Running prepare phase for all ...
 * Running prepare phase for all ...
 * Running source copy phase for ruby25 ...
 * Running source copy phase for ruby26 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-ruby/bundler-2.1.4/work ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/dev-ruby/bundler-2.1.4/work ...
 * Running compile phase for all ...
Traceback (most recent call last):
        2: from /usr/local/bin/rdoc:23:in `<main>'
        1: from /usr/lib64/ruby/site_ruby/2.5.0/rubygems.rb:302:in `activate_bin_path'
/usr/lib64/ruby/site_ruby/2.5.0/rubygems.rb:283:in `find_spec_for_exe': can't find gem rdoc (>= 0.a) with executable rdoc (Gem::GemNotFoundException)
 * ERROR: dev-ruby/bundler-2.1.4::gentoo failed (compile phase):
 *   failed to (re)build documentation
 *
 * Call stack:
 *     ebuild.sh, line  125:  Called src_compile
 *   environment, line 2041:  Called ruby-ng_src_compile
 *   environment, line 1681:  Called _ruby_invoke_environment 'all' 'all_ruby_compile'
 *   environment, line  615:  Called all_ruby_compile
 *   environment, line  699:  Called all_fakegem_compile
 *   environment, line  662:  Called die
 * The specific snippet of code:
 *                   rdoc ${RUBY_FAKEGEM_DOC_SOURCES} || die "failed to (re)build documentation";
 *
 * If you need support, post the output of `emerge --info '=dev-ruby/bundler-2.1.4::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-ruby/bundler-2.1.4::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/dev-ruby/bundler-2.1.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-ruby/bundler-2.1.4/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-ruby/bundler-2.1.4/work/all/bundler-2.1.4'
 * S: '/var/tmp/portage/dev-ruby/bundler-2.1.4/work/all/bundler-2.1.4'

>>> Failed to emerge dev-ruby/bundler-2.1.4, Log file:

>>>  '/var/tmp/portage/dev-ruby/bundler-2.1.4/temp/build.log'

rdocが失敗しているようです。
で、「 `find_spec_for_exe': can't find gem rdoc (>= 0.a) with executable rdoc (Gem::GemNotFoundException)」は設定されているバージョンと実際の実行ファイルのバージョン違いで発生するそうです。
ebuildでそんなことあるかいな? と、思って、rdocの位置を疑いました。

# whereis rdoc
rdoc: /usr/bin/rdoc /usr/local/bin/rdoc
 # which rdoc
/usr/local/bin/rdoc

あらあら、/usr/local/binに入っているrdocを使おうとしていますわ。
よっこしてみましょう。

 # mv /usr/local/bin/rdoc /usr/local/bin/rdoc.bak

これでアップデートできました。
この/usr/local/bin/rdocをリネームすることでどのような影響がでるかは未知数です。

homebridge-httpをやめてhomebridge-http-switchプラグインに移行

Apple HomeKit(Homeアプリ)で自作のリレーを使って照明をOn/Offするために、Homebridgeというサーバーアプリケーションを利用し、HomebridgeからWebioPiを利用するために、homebridge-httpプラグインを使っていました。

gentoolinux.hatenablog.com
gentoolinux.hatenablog.com

で、サーバーのtopコマンドを表示させると、常に上部にhomebridgeがいて、CPUを4%前後使用しているようです。
ずーっとhomebridgeはこれくらいCPUリソースを消費するんだろうなぁ、と、のんきに見守っていましたが、"homebridge cpu usage"で検索してみると、プラグインによってはCPUリソースを消費することがわかりました。

その時使っていたプラグインは次の4つです
・homebridge-broadlink-rm
・homebridge-sonoff-basic-espeasy
・homebridge-http
・homebridge-http-temperature-humidity

/var/homebridgeにあるconfig.jsonからひとつづつプラグインの設定を削除し、topコマンドでCPUリソースを見ていくと、一番利用頻度が高い"homebridge-http"を削除して起動すると、topの上位に表示されなくなりました。

犯人は"homebridge-http"だ!

homebridge-httpは4年前の0.0.9のリリース以降メンテナンスされていません。しかし、一番利用頻度が高いhttpスイッチを完全に削除するわけにはいきません。
代替を探すと、"homebridge-http-switch"が使えそうです。

www.npmjs.com


onとoffのURLを変えることができ、GETだけでなくPOSTメソッドにも対応。
しかも、Onのステイタス文字列も定義可能です。
なにせ、拙宅のリレーは0(Low)でON、1(High)ですので、Onのステイタスを"0"と指定しなければなりません。

まずは、インストールしてみます。

gentoo / # npm install -g homebridge-http-switch

で、/var/homebridge/config.jsonを書き換えます。

homebridge-httpのconfig.json該当部分

{
       "accessory": "Http",
       "name": "SnowBall",
       "switchHandling": "realtime",
       "http_method": "POST",
       "on_url": "http://192.168.0.158:8000/GPIO/26/value/0",
       "off_url": "http://192.168.0.158:8000/GPIO/26/value/1",
       "status_url": "http://192.168.0.158:8000/GPIO/26/value",
       "status_on": "0",
       "status_off": "1",
       "service": "Switch",
       "brightnessHandling": "no",
       "brightness_url": "",
       "brightnesslvl_url": "",
       "sendimmediately": "",
       "username" : "",
       "password" : ""
}

homebridge-http-switchのconfig.json該当部分

{
       "accessory": "HTTP-SWITCH",
       "name": "SnowBall",
       "switchTyoe": "stateful",
       "onUrl":{
                "url":"http://192.168.0.158:8000/GPIO/26/value/0",
                "method": "POST"
                },
       "offUrl": {
                "url":"http://192.168.0.158:8000/GPIO/26/value/1",
                "method": "POST"
                },
       "statusUrl":{
                "url":"http://192.168.0.158:8000/GPIO/26/value",
                "method": "GET"
                },
        "statusPattern": "0"
}

"onUrl"、"offUrl"、"statusUrl”のそれぞれでメソッドを指定できるようです。
"statusPattern"に"statusUrl"で帰ってくるOnの時の文字列を指定します。

これでHomebridgeを再起動してみましたら、topコマンドの上位からhomebrigeが消えました。
めでたしめでたし。

Gentooで長期間アップデートせずにEAPIが古くなってしまった場合の対処

長期間アップデートしていないGentooで久々にemerge -uDN @worldすると、EAPIが古すぎる!と、怒られてしまいます。

The current version of portage supports EAPI '6'. You must upgrade to a
newer version of portage before EAPI masked packages can be installed.
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook. 

で、基本的に、EAPI 6 から EAPI 7 への移行は、次のようなコマンドでアップデートするそうです。

emerge --sync
emerge -qv python
USE='-rsync-verify' emerge -qvO portage
emerge -qv portage

emerge --syncは出来るのですが、その次のpythonがemergeできません。

# emerge -qv python

!!! All ebuilds that could satisfy "python" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-lang/python-3.9.0_alpha6::gentoo (masked by: EAPI 7)
- dev-lang/python-3.8.3::gentoo (masked by: EAPI 7)
- dev-lang/python-3.8.2-r2::gentoo (masked by: EAPI 7)
- dev-lang/python-3.8.2-r1::gentoo (masked by: EAPI 7)
- dev-lang/python-3.7.7-r2::gentoo (masked by: EAPI 7)
- dev-lang/python-3.7.7-r1::gentoo (masked by: EAPI 7)
- dev-lang/python-3.6.10-r2::gentoo (masked by: EAPI 7)
- dev-lang/python-3.6.10-r1::gentoo (masked by: EAPI 7)
- dev-lang/python-2.7.18::gentoo (masked by: EAPI 7)
- dev-lang/python-2.7.17-r2::gentoo (masked by: EAPI 7)

で、次のUSE='-rsync-verify' emerge -qvO portageが詰まります。
エラーをコピペし忘れましたが、python3.7 comannd not foundでcall stackして止まりました。

# eselect python list
Available Python interpreters, in order of preference:
  [1]   python2.7
  [2]   python3.6
  [3]   python3.5 uninstalled

そりゃそうですよね。そもそもPython3.7がインストールされていません。python3.7は上記の通りEAPI 7にマスクされてインストールできません。
この元凶はmake.confのPYTHON_TARGETSを指定することで回避されます。

PYTHON_TARGETS="python2_7 python3_6"

これで、コンパイルは通るようになりましたが、インストールで躓きます。

 * This package will overwrite one or more files that may belong to other
 * packages (see list below).
 *
 * Detected file collision(s):
 *
 *      /usr/share/man/man1/glsa-check.1.bz2
 *      /usr/lib/python-exec/python3.6/glsa-check
 *      /usr/bin/glsa-check

本当はFEATURES='-collision-protect -rsync-verify' emerge -qvO portageとでもやれば良かったのかもしれませんが、コリジョンが発生した3ファイルを移動してみました。

# mv /usr/share/man/man1/glsa-check.1.bz2 /usr/share/man/man1/glsa-check.1.bz2.bak
# mv /usr/lib/python-exec/python3.6/glsa-check /usr/lib/python-exec/python3.6/glsa-check.bak
# mv /usr/bin/glsa-check /usr/bin/glsa-check.bak

これで、USE='-rsync-verify' emerge -qvO portageが通りました。
ようやく最後のemerge -qv portageを実施しようとするも、

# emerge -qv portage

 * IMPORTANT: 39 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


 * IMPORTANT: 2 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.
[ebuild  N    ] app-crypt/openpgp-keys-gentoo-release-20191030  USE="-test"
(途中省略)
[ebuild   R   ] sys-apps/portage-2.3.99-r2  USE="(ipc) native-extensions rsync-verify* xattr -apidoc -build -doc -gen  too-dev (-selinux)" PYTHON_TARGETS="python3_6 (-pypy3) -python3_7 (-python3_8)"
[blocks B     ] <app-portage/gentoolkit-0.4.6 ("<app-portage/gentoolkit-0.4.6" is blocking sys-apps/portage-2.3.99-r2  )

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (app-portage/gentoolkit-0.4.2-r1:0/0::gentoo, installed) pulled in by
    app-portage/gentoolkit required by @selected

  (sys-apps/portage-2.3.99-r2:0/0::gentoo, ebuild scheduled for merge) pulled in by
    sys-apps/portage required by @selected
    >=sys-apps/portage-2.1.6 required by (app-admin/python-updater-0.14:0/0::gentoo, installed) USE="" ABI_X86="(64)"
    sys-apps/portage required by (app-admin/perl-cleaner-2.25:0/0::gentoo, installed) USE="" ABI_X86="(64)"
    sys-apps/portage required by (virtual/package-manager-1:0/0::gentoo, installed) USE="" ABI_X86="(64)"
    portage

先にgentoolkitをアップデートします。

sh

# emerge -u gentoolkit
|

kernel-4.19.97 (kernel-4.19以上)で画面が固まる(起動はしている)

さて、前回Kernel-4.14以上用にlinux-firmwareをlisenceファイルを用意してインストールしました。

gentoolinux.hatenablog.com


で、graphics-driverをATI radeonからAMD GPUに変え、kernel-4.19.97をmakeして起動してみたところ、

fb: switching to amdgpudrmfb from EFI VGA

で、固まりました。
起動自体はできているので、SSHでアクセスすることができます。
dmesg | grep amdgpuで起動ログを見てみると、

# dmesg | grep amdgpu
[    0.625587] [drm] amdgpu kernel modesetting enabled.
[    0.626628] bus: 'pci': add driver amdgpu
[    0.626648] bus: 'pci': driver_probe_device: matched device 0000:00:01.0 with driver amdgpu
[    0.626651] bus: 'pci': really_probe: probing driver amdgpu with device 0000:00:01.0
[    0.626655] amdgpu 0000:00:01.0: no default pinctrl state
[    0.626764] fb: switching to amdgpudrmfb from EFI VGA
[    0.627933] fb: switching to amdgpudrmfb from VGA16 VGA
[    0.679604] amdgpu 0000:00:01.0: VRAM: 64M 0x0000000F00000000 - 0x0000000F03FFFFFF (64M used)
[    0.679612] amdgpu 0000:00:01.0: GART: 1024M 0x0000001000000000 - 0x000000103FFFFFFF
[    0.679959] [drm] amdgpu: 64M of VRAM memory ready
[    0.679965] [drm] amdgpu: 3072M of GTT memory ready.
[    0.681069] [drm] amdgpu: dpm initialized
[    0.681480] amdgpu 0000:00:01.0: Direct firmware load for amdgpu/kabini_pfp.bin failed with error -2
[    0.681489] gfx7: Failed to load firmware "amdgpu/kabini_pfp.bin"

あれ? 私が使っているkabini(AMD Athlon 5350 Radeon R3 HD8400)のfirmwareって、"radeon/kabini_{ce,me,mec,pfp,rlc,sdma1,sdma,uvd,vce}.bin"、つまり、"radeon/kabini_ce.bin radeon/kabini_me.bin radeon/kabini_mec.bin radeon/kabini_pfp.bin radeon/kabini_rlc.bin radeon/kabini_sdma1.bin radeon/kabini_sdma.bin radeon/kabini_uvd.bin radeon/kabini_vce.bin"を指定するんじゃないですか?

wiki.gentoo.org

話が違いますわ。

amdgpu/に指定しなおします。(念のためradeon/も残します。)

/usr/src/linux/.config

CONFIG_EXTRA_FIRMWARE="radeon/kabini_ce.bin radeon/kabini_me.bin radeon/kabini_mec.bin radeon/kabini_pfp.bin radeon/kabini_rlc.bin radeon/kabini_sdma1.bin radeon/kabini_sdma.bin radeon/kabini_uvd.bin radeon/kabini_vce.bin radeon/BONAIRE_uvd.bin radeon/BONAIRE_vce.bin radeon/bonaire_uvd.bin radeon/bonaire_vce.bin amdgpu/kabini_ce.bin amdgpu/kabini_me.bin amdgpu/kabini_mec.bin amdgpu/kabini_pfp.bin amdgpu/kabini_rlc.bin amdgpu/kabini_sdma1.bin amdgpu/kabini_sdma.bin amdgpu/kabini_uvd.bin amdgpu/kabini_vce.bin"

これで、フルHDカーネルバッファが表示できました。