RPi4版 v1.0系に関するご質問はこちらにどうぞ。
可能な範囲でサポートさせていただきます。
-
RPi4版 v1.0系のサポートはこちら
-
オンラインアップデートでv1.0.1を配信しました。
主な変更点
- ファームウェアをβ16時点のものに差し戻しました。(start4cd.elf, fixup4cd.dat)
- Web UIを更新しました。(安定性向上)
- UPLOADプラグインを更新しました。(安定性向上)
- SEARCHプラグインを更新しました。(安定性向上)
ファームウェアの切り戻しについて
core_freqが指定通りに設定されない問題について、直近にリリースされたファームウェアを順に遡って検証してみました。
結論としては2019/11/15版までは正常で、2019/11/19版のファームウェアから発生している問題であることを突き止めました。
v1.0.0のSDイメージには、問題の発生しない版の中で最新にあたる2019/11/15版のファームウェアを同梱しましたが、β16との音質の違いを感じましたので、より注意深い検証が必要と判断し、v1.0.1でいったんβ16のファームウェアに切り戻しています。
ファームウェア・カーネルにおけるRPi4サポートは現在進行形で進んでおり、特にここ半年ほどは目まぐるしいほどのペースで修正が加えられています。
新しいファームウェアは安定性の向上や新機能への対応などのメリットをもたらすものだと考えられますが、バイナリのみで提供されているため、内部にどのような変更が加えられたか知ることは容易ではありません。
動作の安定性と音質の両面を天秤にかけ、採用の可否を判断していくことになりそうです。 -
@パパリウス さん
最近のファームウェアでは core_freq の値を
PLLから計算式で求めているようです。
以下の設定で、core_freq を594
に設定することができました。
※最新のファームウェアで確認しました。【変更内容】
①dt-blob.bin の PLLC の freq を1782000000
へ変更。
1188の場合に、396 (1/3)となっていたため、594 * 3 を設定。
②config.txt の gpu_freq, gpu_freq_min を1
へ変更。
62 のままだと、v3d が 0 になりませんでした。参考にしたURLとは計算式が異なるのですが、上記変更で
core, h264, isp, v3d の freq が期待通りとなりました。 -
助言いただきありがとうございます。
dt-blobを使って調整可能となれば、最新ファームウェアを採用する道が開けますね。
こちらでも検証してみたいと思います。もしよろしければ、参照されたサイトをご紹介いただけませんでしょうか。
このようなファームウェアの仕様変更に至った経緯について何か分かることがあれば大変参考になります。 -
情報提供ありがとうございます。
こちらでもファームウェア(ブートローダ)のコミットログを追いかけてみました。この問題は、11/18版でサポートされたDynamic voltage and frequency scaling (DVFS)によるものだそうです。
RPi4のファームウェアは、低消費電力・低発熱を最優先に改良が続けられているようで、DVFSの実装もその一環です。
11/18版のファームウェアを境にCOREやGPUのクロック指定が従来通りには動かなくなってしまい、オーバークロックを常用するユーザ(例えばゲームエミュレータ関連のコミュニティなど)で大きな混乱が生じ、消費電力/熱対策を優先する開発方針に反発する動きもあったようです。
11/18
firmware: Reduce voltage as part of DVFS
firmware: arm-loader: Inherit 2711 mac-address from the bootloader
See: http://git/vc4/vc4/merge_requests/68711/14
firmware: Fixup chosing of bit depth in legacy graphics
See: https://github.com/raspberrypi/linux/issues/3331
firmware: vec: Setup WideScreen Signalling outside of copy protection
See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=256489
firmware: Add global reset mailbox
firmware: 2711: De-couple start.elf clock setup from the bootloader
firmware: scaler: Correct defines for SCALER_POS0_START_Y_[MASK|SHIFT] (HVS4)
firmware: platform: Fix missing HDMI PHY power down bit11/8
firmware: platform: Differentiate between boostable and turbo clocks
firmware: arm_dt: Set WL_ON and BT_ON from .dtb11/6
firmware: tv_server: Also initialise ts queue on composite
See: https://forum.kodi.tv/showthread.php?tid=348205
firmware: Loop to init hotplug11/1
firmware: Update display_power gencmd with optional display id
firmware: sysman: Fix unsafe check for h264 being enabled
See: https://github.com/popcornmix/omxplayer/issues/749
firmware: platform: Reduce absolute microvolts threshold to 50000010/28
firmware: arm_loader: Fix explicit kernel name handling
See: https://github.com/raspberrypi/firmware/issues/1277
firmware: Added a new display power mailbox call
firmware: Update display_power gencmd with optional display id
See: https://github.com/raspberrypi/linux/issues/3050
firmware: Remove legacy pkgconfig to avoid Mesa conflicts
See: https://github.com/raspberrypi/userland/pull/58510/21
firmware: arm_loader: Add os_prefix option
See: https://github.com/raspberrypi/linux/issues/3237
firmware: Add support for arbitrary memory specification
10/11
firmware: uart1: Revert to the old core-frequency-locking method
See: https://github.com/raspberrypi/firmware/issues/1267
firmware: arm_loader: Provide a sensible device_tree_end default
See: https://github.com/raspberrypi/firmware/issues/1259
firmware: mmal_ril: Fix size reported on ENOSPC error
See: https://github.com/raspberrypi/firmware/issues/1269
firmware: hvs: Trigger the EOLn timer at the field rate when interlaced
See: https://github.com/raspberrypi/firmware/issues/1227
firmware: bootloader_state: Add support for a custom TFTP prefix parameter
firmware: arm_loader: GIC stub => 2711 stu
See: https://github.com/raspberrypi/firmware/issues/125510/7
firmware: Unicam: Request frequency of 250MHz when running camera use cases
firmware: arm_loader: Fix UART unmapping9/30
firmware: bfs: Verify that eth FS has not been closed before using9/24
firmware: platform: Switch to divide by one when arm_freq exceeds 2GHz
firmware: Add EMMC support to 2711 Arasan EMMC driver
firmware: arm_loader: Use /memory@0 if found
See: https://github.com/raspberrypi/linux/pull/3244
firmware: bootloader_state: Fix length for bootloader_config
firmware: arasan_emmc: Fix STB_GPIOOVERRIDE for MMC1 in network boot9/20
firmware: ldconfig: Support [edid=*] to mean any HDMI monitor
See: https://github.com/raspberrypi/firmware/issues/1136
firmware: image_fx: Remove restriction that output stride must match input stride
firmware: image_fx: Remove spamming log line9/17
firmware: arm_loader: Fix initial_turbo getting stuck9/17
firmware: Round up HDMI0 minimum core clock
firmware: board_info: Support bcm2710- and bcm2837- Pi 2 DTBs
See: https://github.com/raspberrypi/linux/issues/3234
firmware: power: bcm2711: Rescale the GPIO pad power
firmware: brfs: Add GENET driver for 2711
firmware: bootloader_state: Add network state and bootmode configuration
firmware: bootloader_state: Fix mask for EEPROM header magic9/13 1a244df8143cd07a7417d212f59ac9f3a037f9b1
firmware: Fixups for composite output mode
See: https://github.com/raspberrypi/firmware/issues/1223
★ firmware: platform: Allow display_power to be queried from gencmd
See: https://github.com/raspberrypi/firmware/issues/1224
firmware: arm_loader: Fix no-DT and upstream handling
See: https://github.com/raspberrypi/firmware/issues/12509/9
firmware: platform: Set up emmc clock earlier
firmware: hdmi: Implement platform_display_power on 2711
See: https://github.com/raspberrypi/firmware/issues/1224
firmware: arm_loader: Pass overscan settings to the kernel
firmware: arm_loader: Add option disable_fw_kms_setup to stop FKMS setup by FW
firmware: hdmi: Use pixel clock multiplier to determine the core clock9/4
firmware: Port file loading revamp to master9/4
firmware: Avoid defaulting to 64-bit kernel on older Pi9/4
firmware: Revamp file loading logic
firmware: power: Allow reading uncached voltage
firmware: arm_loader: Request KMS to use CVT timings
firmware: vc_image: Default YUVUV to non-tall mode, with flag if required
firmware: ldconfig: Implement [pi2/pi3/pi3+] using board types
See: https://github.com/raspberrypi/firmware/issues/12428/30
★ firmware: platform: Remove 10mV of margin8/30
firmware: power: Add 2711-specific PMIC compensation values8/30
firmware: sdhost_arasan: Disable busy wait on EMMC_STATUS_NEW_CARD_DATA_SET8/28
firmware: AWB: Fix for manual WB settings in capture
See: https://github.com/raspberrypi/firmware/issues/12158/21
firmware: arm_loader: Fix initial_turbo getting stuck
See: https://github.com/raspberrypi/firmware/issues/1005
firmware: clock_2711: don't set reserved values for KA in PLL KAIP registers8/9
firmware: AWB: Allow user to set manual gains for the RPi algorithm
firmware: arm_loader: Fix disabling of audio before reboot
firmware: fixed up the custom CVT values to use correct group
firmware: hdmi: Add independent table entries for hdmi_timings on each display
See: https://github.com/raspberrypi/firmware/issues/12188/6
firmware: Fix to allow HDMI audio port route setting
See: https://github.com/raspberrypi/linux/pull/3100
※β12・β16・v1.0.1で採用しているファームウェアは8/1版です。
ここにリストアップしたのは8月から11月にかけての変更内容のみですが、今月に入ってもバージョンアップの頻度は衰えていません。
毎週のようにファームウェアの機能改善が行われているのはすごいことですね。
それだけ関心が高くホットな領域ということでもありますし、仕様が安定してくるのはもうしばらく先ということになりそうです。
-
RPi4で「ファームウェア」というと、下記4種のいずれかを指します。どれを指すかは文脈で判断することになります。
- Raspberry Pi ブートローダ EEPROM
- VL805 USB EEPROM
- GPU ブートローダ (start*.elf, fixup*.dat)
- デバイスドライバ(kernel8.img, 各種カーネルモジュール)
config.txtからcore_freqを読み取って初期化する処理は3)のGPUブートローダが関わっています。
β16で採用していた8/1版ファームウェアとv1.0.0で採用した11/14版で音質の違いを感じたため、8月〜11月のファームウェアをいくつかピックアップして比較してみました。
その結果見えてきたのは、coreの電圧と音質にハッキリとした相関が感じられるということです。
RPi4では低消費電力・低発熱を目指してファームウェアの改善が続けられており、バージョンアップ時に電圧が引き下げられているケースがあります。
音質 core volt GPUブートローダ グループA 0.8525V 8/1版〜8/6版 グループB 0.8507V 8/9版〜8/30(2)版 グループC 0.8455V 8/30(3)版〜 8月にリリースされたバージョンだけでもこれだけの差が見られます。
低消費電力化は好ましい変更だと思っていましたが、、、GPIOやI2Sなどの周辺機能にとっては安定動作のマージンが切り詰められているということなのかもしれません。
今回の音質評価結果を踏まえまして、当面はv1.0.1で採用している『8/1版』を継続して利用していきたいと思います。
-
オンラインアップデートでv1.0.2を配信しました。
カーネルの更新が含まれるため、アップデートに時間がかかります。(数十秒から1分程度)
主な変更点
- カーネルを更新しました。ビルド番号は#102となります。
Linux 4.19.86-v8 #102 SMP PREEMPT Sun May 24 22:26:18 JST 2020 - rpi-dacドライバで32bitをサポートしました。
- config.txtのgpu_freq, gpu_freq_minの初期値を変更しました。(gpu_freq=8, gpu_freq_min=1)
- Spotifyのキャッシュ設定をオフにしました。(RAMディスク/runをキャッシュで埋め尽くしてしまうため)
- Web UIの《SOUND CARD》で選択項目の修正をおこないました。(i-sabre-k2mをi-sabre-q2mに変更)
Web UIの《UPDATE LIBRARY》に、tag_cache/playlistsのバックアップ・リストア機能を追加しました。
BACKUPボタンで、NASの直下にtag_cacheとプレイリスト(/var/lib/mpd/music/playlists)をバックアップします。
RERSTOREボタンで、リストアします。 - カーネルを更新しました。ビルド番号は#102となります。
-
パパリウスさま
ver 1.02にupdateしました。
IAN FifoPi2 で、rpi-dac 32bitで再生するのを確認いたしました。
spotify も短時間ですがきちんとデバイス表示され再生できることを確認いたしました。しかしながら、update library で tag_cache backupのスクリプトが表示されません。
firefox、google chrome、anchia chrome で確認しました。キャッシュをクリアしてもだめです。以上ご報告まで。
-
@mike さん
ご確認ありがとうございます。
バックアップ・リストア機能は、こちらの準備ミスでアップデートから漏れてしまったようです。
明日にでも追加のアップデートを配信したいと思います。 -
オンラインアップデートでv1.0.3を配信しました。
変更点
- Web UIの《UPDATE LIBRARY》に、tag_cache/playlistsのバックアップ・リストア機能を追加しました。
-
パパリウスさま
IAN FiFopi2 を ver 1.0.3 へupdateし、tag_cache/playlists バックアップ機能があることを確認し、きちんとNAS内にセーブされていることを確認いたしました。
NASからの再生、Spotifyからの再生も問題ありません。
また、Sabreberry32pro でも同様に、NASから再生、Spotifyの再生、tag_cache等のバックアップ機能が正常に動作することを確認いたしました。
修正ありがとうございました。
-
@mike さん
先日に続き、ご確認ありがとうございます。
ところで、v1.0.3の音質、、、どうですか? -
パパリウス様 v.1.0.3を試させていただきました。 NASのmpdディレクトリーにtag_cache.0.19.21が保存されてました。
音は聴いて大変驚きました。特に重低音の再生レベルが凄いことになってました。少しレベルを上げたら隣の部屋から妻が飛んできました。低音好きの私には最も好ましく感じております。 -
@パパリウス さん
v1.0.2より良くなりました?
変更点はWebUIの機能追加だけなのに? -
@Pass さん
v1.0.2の音質、いかがでしょうか
(v1.0.3は同じ音質です) -
@パパリウス さん
(v1.0.3は同じ音質です)
ですよねぇ。
ずいぶんよくなりましたね。v1.0.2はsmpdらしい安定感のある音だと思います。
今日はrpi4の2GB版を入手してsmpdは2GBに変更しました。従来の4GB版はminimserverやLMSでサーバーをやらせて、smpdはUpnp化して聴いています。
-
パパリウスさん、皆様
こんばんは。V1.0.1からV1.0.3にしました。
あらら、あらら、、、、(笑い)
これは絶対にバックアップを取っておかねば!
-
パパリウスさま
Ver1.03 は Ver1.01 からはっきり音が変わったように感じました。
みなさまは ver1.01 よりずっとずっと高く評価されているようですね。私は最初はほんとに美しいよく響いてきれいだ、と思ったのですが、ver1.01 でのあのフォルテのクリアな強さは見当たりません。
しばらく聴き進んでいくと、音が少し派手目に感じ始め、時として豊かな響きがまとわりつくようにも思い始めました。実は、ver1.01のときにIAN FiFoPi2 のXOを CCHD-957 に換装しました。ハンダに失敗し汚い仕上がりなので実装に自信ありません。
つまり、SMPD ver1.03 で変わったのか、XOで変わったのか自信はありません。そこで、ver 1.01に戻して確認してみました。
Ver 1.01 はやはりとても強靭な音です。フォルテはピュアに伸びていきスリリングです。ピアニッシモの消えていく音もとても自然で美しいです。
そういえば、rpi-dac はいつも24bit出力だったのに、ver 1.03 ではテストを兼ねて32bitに上げたことを思い出し、24bitに戻してみましたが結果は変わりませんでした。もちろん、我が家のシステムの条件下ではありますが、みなさまとは異なり、好みとしては ver1.01のピュアな強さです。
以上、個人のやや偏向した好みの披瀝となってしまいましたが ver1.03 試聴のご報告であります。 -
@mike さん
ご返信いただきありがとうございます。
v1.0.1からv1.0.2へのバージョンアップでは、高域の顕著な改善と、ボトルネックの移動に伴う帯域バランスの変化(崩れ)がありました。
おそらく、mikeさんの好む音質から遠ざかってしまっただろうと思いまして、ちょっと心配になりお声掛けした次第です。今後のバージョンアップで再びバランスが良化していくものと思いますが、ご要望があればv1.0.1のカーネルへの差し替え手順をご案内いたします。