link もっと前
   2018年 12月 1日 -
      2018年 11月 22日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

PC パワーアップ計画

普段、家の PC のパワー不足を感じることはないのですが、linux-next のクロスコンパイルをしていると、vmlinux のリンクが遅いな〜……と感じることが増えました。

比較対象は前の会社のマシンや、今の会社のマシン(割と最近の Core i5 か Core i7 が多い)です。1〜2年しか経ってない Core i7(Skylake, Kabylake 世代)と 4年落ちの AMD A10(Kaveri 世代)を比べれば遅いのは当然ですね。

新しい CPU は Intel にしようかとも思ったのですが、ニュースを見ていると Ryzen 系も大変良さそうだったので、思い切って第 2世代 Ryzen に買い替えることにしました。

PC 部品交換

AMD Ryzen 7 2700 が届きました。3年ほど頑張ってくれた AMD A10 と入れ替えました。今までお疲れさまでした。

メモリは平凡に G.Skill の AMD 向けと銘打っている DDR4-2400 2枚差し 16GB x 2 にしました。ここ数年、メモリはハズレばかりで嫌になったので、4枚差しや極端なオーバークロックメモリは避けました。

マザーボードは ASUS B450-F GAMING にしました。チップセットはミドルエンド向けの B450 です。もしハイエンド向けが良ければ X470 ですが、マルチ GPU 構成にしたい人以外、ほぼ用事がないと思います。値段の差は 5000〜10000円くらいのようです。

マザーボードは GAMING の名の通りゲーマー仕様(?)で、無駄に LED が光っていていたり、妙なプレートが付いていたり、変テコなデザインです。まあ、筐体の蓋を閉めれば光はほとんど見えませんから、気にならないでしょう……。

SSD は Samsung 970 EVO M.2 にしました。元々 Blu-ray ドライブ、HDD、SSD しか差さっておらず、スカスカだった SATA ポートがさらに寂しくなります。

M.2 接続 NVMe SSD の弱点

SSD はかなりややこしいことになっていて、コネクタの物理形状の規格、インタフェース信号の規格、コントローラのプロトコルの規格が、複数種類存在しています。

コネクタ インタフェース コントローラ 特徴
SATA コネクタ SATA AHCI HDD のような形、大抵は 2.5 inch
M.2 スロット SATA AHCI M.2 SSD の B Key(12-19 ピンが欠けている)
M.2 スロット PCI Express AHCI 私は見たことがない、M Key になっているはず
M.2 スロット PCI Express NVMe M.2 SSD の M Key(59-66 ピンが欠けている)
PCI Express スロット PCI Express NVMe グラフィックカードのような形

今まで私が使っていた OCZ Vertex は 1番目、今回購入した Samsung EVO 970 M.2 NVMe は 4番目の組み合わせに対応した製品です。2番目、4番目に両対応の製品もあるようです(B & M Key と呼ばれ、端子に切り欠きが 2つある)。

M.2 NVMe SSD は、SATA ポートやドライブスロットを占有せず省スペースで、速度も有利(NVMe を使えれば)です。ただ欠点もあって、PC の買い替えなどでデータ移行するとき、やや面倒です。

SATA 接続の SSD の場合、古い PC から取り外して新しい PC に繋げばコピーできます。今の時代 SATA ポートが 1つもないマザーボードはないでしょう。SATA から USB に変換するツールもたくさん売っています。

M.2 接続の SSD の場合、マザーボードの仕様により M.2 スロットの有無が異なりますので、もし新しい PC に M.2 スロットがない場合、データ移行が難しくなります。

次の買い替えを考えると M.2 → USB 変換機器(特に PCIe NVMe 対応のもの)を買っておきたいところです。調べてみると JMicron JMS583 という PCI Express と USB 3.0 のブリッジチップを搭載した変換ツールがいくつか発売されていました。買っておこうかなあ。

メモ: 技術系の話は Facebook から転記しておくことにした。大幅に加筆した。

[編集者: すずき]
[更新: 2018年 12月 2日 18:32]
link 編集する

コメント一覧

  • hdk 
    ウチもASUSのマザーボード(MicroATX), Ryzen 7 2700にG.SkillのDDR4-2400で使っています。RAM容量は半分で、古いSATA SSDを再利用したケチケチ構成ですが... Ryzen 7 1700の時と比べると安定性が抜群に良くなっています。安いのに速くていいですね。 
    (2018年12月03日 22:15:50)
  • すずき 
    私も最初、HDD, SSD は使いまわそうと思ったのですが、
    「SSD はいつから使っていたっけ…?」
    と思って、寿命について若干不安になったのと、容量を倍にしても M.2 SSD がお手頃だったので、買い替えてしまいました。
     
    (2018年12月04日 12:49:50)
open/close この記事にコメントする



link permalink

ROCK64 のアナログオーディオが動いた

先日(2018年 11月 28日の日記参照)の続きです。linux-next で ROCK64 のアナログオーディオ出力から音が出ました。残る問題は 1つでした。

  • I2S1 はなぜか動かない → 2018年 11月 28日に解決
  • I2S2 は SPDIF と資源が衝突して認識しない → 2018年 11月 11日に解決
  • ACODEC は TRM に何も情報が載っていない

3番目の「ACODEC は TRM に何も情報が載っていない」を回避しました。

ACODEC は I2S 信号をアナログオーディオ信号に変換するハードウェアです。仕様を秘密にするようなハードウェアではないと思いますが、TRM(Technical Reference Manual)に記載がありません。無いものは仕方ないので、rockchip-linux からドライバを移植しました。

残念ながら rockchip-linux はカーネルバージョンが 4.4 と古く、ACODEC ドライバを linux-next に持ってきてもビルドできませんので、適当に直しました。ALSA SoC のドライバを作った経験があって良かった。うん。

とりあえずアナログオーディオは動いたのですが、昨日の日記にも書いた通り、44.1kHz 系を再生すると ACODEC がおかしくなる仕組みは謎のままなので、まだ完成とは言えないです。

ROCK64 はまだまだおもちゃとして遊べそうです。

[編集者: すずき]
[更新: 2018年 12月 3日 10:21]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

ROCK64 の I2S1 が動いた

先日(2018年 11月 11日の日記参照)の続きです。linux-next で ROCK64 の I2S1 が動きました。残る問題は 2つでした。

  • I2S1 はなぜか動かない
  • I2S2 は SPDIF と資源が衝突して認識しない → 2018年 11月 11日に解決
  • ACODEC は TRM に何も情報が載っていない

1番目の「I2S1 はなぜか動かない」の原因が判明しました。

I2S1 だけ死んでいた原因は、日記のコメントで T4 さんに指摘いただいていた通り、RK3328 のクロックゲートの定義がバグっていたことでした。linux の開発 ML に修正パッチをブン投げておきました。先週のどこかで取り込まれたっぽいです。良かった。

RK3328 のクロック分周器はかなり対応範囲が広いので、単純にシステムクロック=fs * 256 とすれば、44.1kHz 系を再生するときシステムクロックが 11.2896MHz になり、48kHz 系を再生するときシステムクロックが 12.288MHz になって、うまく再生されるだろうと考えました。

やってみると 48kHz 系は正常に動作しますが、44.1kHz 系を流すと EINVAL を返してきて、なぜか ACODEC までおかしくなり、リセットするまで一切音が出なくなります。イケてないです。

クロックのレジスタは GPLL * 147 / 6400 = 11.2896MHz に正しく設定されているのに、なぜかクロックドライバは 11.289599MHz だと報告してくるので、サウンドドライバが 44.1kHz の整数倍じゃないと判定して EINVAL を返しています。

良く見ると GPLL の周波数も 491.519999MHz という変な値になっています。なぜ 491.52MHz じゃないのか?491.52MHz なら先ほどの割り算は割り切れるはずなんですけどね。

あと 44.1kHz 系を再生すると ACODEC がおかしくなる仕組みも謎です。ACODEC とクロックに何か関係があるのだろうか?また今度追ってみますか。

メモ: 技術系の話は Facebook から転記しておくことにした。少し加筆。

[編集者: すずき]
[更新: 2018年 12月 2日 16:34]
link 編集する

コメント一覧

  • T4 
    まずは、おめでとうございます。

    いきなりですが、本題にはいります
    https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next/+log/master/include/dt-bindings/clock/rk3328-cru.h
    https://github.com/rockchip-linux/kernel/commits/release-4.4/include/dt-bindings/clock/rk3328-cru.h

    上の二つを見比べてみて下さいな
    (上のには、如何にも日本人ぽい人がいるが 貴方かな?)

    ---

    オイオイ、一年も前に解ってた話じゃないか
    私は、これみてムッときたね。
    *) 前回の11日時点では既に解かってたけど、敢えて書かなかった
     あまりネタばらしが過ぎると、貴方の楽しみを奪うことになるからね

    以前、Torvalds が、"メンテも碌にしないくせにツリーにだけは入れたがる" って中指立てて怒ってた
    その気持ちが、私にもよくわかるよ。

    ---

    > 11.289599MHz だと報告してくるので…
    律儀に端数まで返してくるので、こんなの↓使って誤魔化してるみたいよ
    sound/soc/rockchip/rockchip_i2s.c
     div_bclk = DIV_ROUND_CLOSEST(mclk_rate, bclk_rate);
    うろ覚えなので、もしかしたらハズレかもしれない…
     
    (2018年12月04日 10:00:27)
  • すずき 
    ありがとうございます。Linux のコミットログに出ている名前は私ですね。

    クロック周りではありませんが RK3228 がデグレしたというメールも貰っているので、私のような素人がいじるより Rockchip の人たちが linux-next に入れてくれれば良いんですけども…。

    DIV_ROUND_CLOSEST は rockchip-linux を見ているときに発見しましたが、まだ試していないです。こんなんで動くならもうそれでいいかとも思っています。。。 
    (2018年12月05日 02:04:10)
  • すずき 
    RK3228 じゃなくて RK3288 だった。 
    (2018年12月05日 02:19:07)
  • T4 
    やっぱり貴方でしたか、ご苦労さまでした。

    > クロック周りではありませんが RK3228 がデグレしたというメールも貰っているので…
    > Rockchip の人たちが linux-next に入れてくれれば良いんですけども…。
    望み薄だと思うな
    ビジネス上必要だから仕方なくやってるだけで、貢献しようとか言う気持など 更々無いようにしかみえない。

    ----

    > 整数倍じゃないと判定して EINVAL を返しています。

    DIV_ROUND_CLOSEST で効果あるのは↑部分だけだね、次に進めるようになるだけで↓には効果なしです

    > なぜか ACODEC までおかしくなり、リセットするまで一切音が出なくなります

    そもそも詳細仕様が不明だから、対処方法は人夫々になるだろうね
    コレが正解というのは無いと思う。

    私も、該当の症状が消えた時点で その対処方法で良し として、
    もうそれ以上は追ってない。
     
    (2018年12月05日 09:20:25)
  • すずき 
    Linux に contribute するかどうかは、
    企業の判断によるので、仕方ないですね…。

    rockchip-linux があるだけマシなのかもしれません。

    ACODEC はまだ追っていませんが、TRM に仕様も何もないので、
    ご指摘の通り、正解は不明ですね。Rockchip の方々が登場するまでは、
    とりあえず動けば良いんじゃないかと思っています。 
    (2018年12月10日 12:33:16)
open/close この記事にコメントする



link permalink

電車広告

山手線の新型車両の車内広告は、横並びの 3つの液晶ディスプレイを使いますが、各社で広告の見せ方が違って面白いです。

左から並べたとき、

  • 動画A、B、C(日テレ、日産)
  • 動画A、A、A(シスコ、モビット)

動画、静止画の混在パターンもありました。

  • 静止画a、動画A、静止画a(Google、JR)
  • 動画A、静止画a、動画A

静止画のみのパターンもあります。

  • 静止画a、b、c(シースリー)
  • 静止画a、a、a(官公庁)

不思議なもので、3画面全て動画じゃなくても見栄えはします。しかし同じ静止画にされると、映っているものに関わらず、手抜き感を強く感じます。

メモ: 技術系の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2018年 11月 27日 23:42]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2018年 12月 1日 -
      2018年 11月 22日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 12/10 12:33

カレンダー

<2018>
<<<12>>>
------1
2345678
9101112131415
16171819202122
23242526272829
3031-----

最近のコメント 5件

  • link 18年11月28日
    すずき 「Linux に contribute す...」
    (更新:12/10 12:33)
  • link 18年11月28日
    T4 「やっぱり貴方でしたか、ご苦労さまでした。...」
    (更新:12/05 09:20)
  • link 18年11月28日
    すずき 「RK3228 じゃなくて RK3288 ...」
    (更新:12/05 02:19)
  • link 18年11月28日
    すずき 「ありがとうございます。Linux のコミ...」
    (更新:12/05 02:04)
  • link 18年12月01日
    すずき 「私も最初、HDD, SSD は使いまわそ...」
    (更新:12/04 12:49)

最近の記事 3件

link もっとみる
  • link 18年11月29日
    すずき 「[ROCK64 のアナログオーディオが動いた] 先日(2018年 ...」
    (更新:12/03 10:21)
  • link 18年12月01日
    すずき 「[PC パワーアップ計画] 普段、家の PC のパワー不足を感じる...」
    (更新:12/02 18:32)
  • link 18年11月28日
    すずき 「[ROCK64 の I2S1 が動いた] 先日(2018年 11月...」
    (更新:12/02 16:34)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報