コグノスケ


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

link もっと前
2022年2月19日 >>> 2022年2月6日
link もっと後

2022年2月18日

絶対に日本語を使ってはいけないSeagateのサポートサイト

Seagateのサポートサイト(リンク)は日本語に対応していてありがたいのですが、アカウントを作成する際は日本語を一切使わない方が良いです。

アカウントを「登録」する際は日本語を使っても文句を言わないのに、アカウントの「登録内容を変更」する場合は日本語を使うと文句を言われます。この時点で既におかしな挙動ではありますが、さらにおかしなことにアカウントの登録内容に日本語が含まれていると住所変更ができなくなるなどのおかしな挙動を示します。バグってる感満載です……。

もしアカウントの登録内容に日本語を含めてしまった場合、下記の手順で回避することができました。


アカウントの登録内容に日本語を使ってしまった場合

氏名に日本語を使ってアカウント登録すると「配送先住所」のところに日本語が出てきてしまいます(注: 画像は既に修正した後なので英語になっています)。困ったことに、このままだと交換の申請も住所変更も何もできなくなります。この状態を解消するには、

  • 新たに英語のみのダミー住所を追加
  • 日本語が使われている自分の住所 → ダミー住所へ切り替え
  • 自分の住所を修正
  • ダミー住所 → 自分の住所へ切り替え

とすると回避できます。ダミー住所の追加方法はわかりづらいので画像で説明します。


新たに住所を追加する


新たに英語のみのダミー住所を追加(中身は適当で良い、後で消すから)


日本語が使われている自分の住所 → ダミー住所へ切り替え

自分の住所を修正する方法は、ダミー住所を追加したときと同様です。


ダミー住所 → 自分の住所(修正後)へ切り替え


ダミー住所を消す

最近は多言語対応に失敗したサイトはあまり見かけないため、Seagateのサイトの悲惨さはかなり目立ちますね。日本でのSeagateのHDDの人気を考えると、Seagateには文句が大量に来ているんじゃないでしょうか?このヘンテコなバグもいずれ修正されるでしょう。

編集者:すずき(2022/02/20 01:47)

コメント一覧

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



2022年2月14日

HDDの異音の正体

先日(2022年2月12日の日記参照)購入したHDDにデータをコピーしていると、印刷中のプリンターのような「ガー、ガー」という音が発生していました。


HDDから聞こえる変なシーク音

一体何事か?故障なのか?とも思ったのですが原因がわかりました。ext4ファイルシステムのlazyinitが原因でした。

本来ext4はmkfsが非常に遅く、TB級の巨大な領域をフォーマットすると10分以上時間が掛かります。lazyinitはこの苦痛を和らげるためにmkfsで行うはずだった初期化(inodeテーブルの0クリア)を後回しにする方式だそうです(参考: Ext4 Filesystem - Thomas-Krenn-Wiki)。

遅いmkfsを劇的に高速化する素敵なlazyinitではありますが、mkfsのすぐ後に大量のデータを書き込む用途には不向きです。lazyinitが有効な領域をマウントするとext4lazyinitというカーネルスレッドが定期的に書き込みに来ます。これによりシークが発生してデカい音がしますし、writeの速度もかなり落ちます。

lazyinitの無効化

下記のようにmkfs.ext4のオプションでlazyinitを無効化できます。

lazyinitの無効化
# mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdc1

無効化することでwriteの速度も高速化し、異音も解決しました。

編集者:すずき(2022/02/15 23:43)

コメント一覧

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



2022年2月12日

SeagateのHDDのエラーレート

新しくSeagate ST8000VN004(SATA, 8TB)を買いました。最近のHDDにしては珍しく音がかなりうるさいです……印刷時のプリンターみたいな音がしています。音も気になるんですけど、さらに気になることがあってSMARTでステータスを見てみると、

Seagate ST8000VN004のSMART attributes
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   081   068   044    Pre-fail  Always       -       129582469        ★★★★!?
  3 Spin_Up_Time            0x0003   096   096   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       2
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   100   253   045    Pre-fail  Always       -       131692        ★★★★!?
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       0
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       2
 18 Head_Health             0x000b   100   100   050    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   056   056   040    Old_age   Always       -       44 (Min/Max 34/44)
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       2
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       2
194 Temperature_Celsius     0x0022   044   044   000    Old_age   Always       -       44 (0 20 0 0 0)
195 Hardware_ECC_Recovered  0x001a   081   068   000    Old_age   Always       -       129582469
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       0 (243 14 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       129529342
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       53127

Raw_Read_Error_RateやSeek_Error_Rateが凄まじい値をたたき出しています。比較対象としてWestern Digital WD40EFRX(SATA, 4TB)を見るといずれも0です。

Western Digital WD40EFRXのSMART attributes
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0        ★★★★0です
  3 Spin_Up_Time            0x0027   162   162   021    Pre-fail  Always       -       6900
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       18
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0        ★★★★0です
  9 Power_On_Hours          0x0032   080   080   000    Old_age   Always       -       14956
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       16
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       2
193 Load_Cycle_Count        0x0032   170   170   000    Old_age   Always       -       92796
194 Temperature_Celsius     0x0022   112   100   000    Old_age   Always       -       38
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       20
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

何だこりゃ、やられた!故障か?

どうやら正常らしい

しかしSMARTで異常を検知できるほどなのに普通に読み書きできていて不思議だったので、もう少し調べてみると解説しているサイト(リンク: Seagate's Seek Error Rate, Raw Read Error Rate, and Hardware ECC Recovered SMART attributes)が見つかりました。

どうも気にしなくて良いみたいですね。試しに今まで使っていたSeagate ST4000VN008(SATA, 4TB)のステータスを見ると、Raw_Read_Error_Rateが凄い値になっています。

Seagate ST4000VN008のSMART attributes
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   082   065   044    Pre-fail  Always       -       156528383        ★★★★
  3 Spin_Up_Time            0x0003   094   094   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       36
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   069   060   045    Pre-fail  Always       -       8577083        ★★★★
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       153 (72 27 0)
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       13
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   071   052   040    Old_age   Always       -       29 (Min/Max 21/33)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       29
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       59
194 Temperature_Celsius     0x0022   029   048   000    Old_age   Always       -       29 (0 20 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       44 (25 151 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       10828710302
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       112993489

故障かと思って勢いでSeagateに返品依頼をしてしまいました。故障ではないとわかったのでキャンセルしたいですが、キャンセルする方法がわかりません。頑張って探しましたが、Seagateのサイトの作りは本当にひどくて操作する気が起きなくなりました。まあ、送り返さなければそのうち消されるでしょう。もう放っておきましょう……。

編集者:すずき(2022/02/14 00:12)

コメント一覧

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



2022年2月10日

ガスガンが増えました

目次: 射的

ガスガンが増殖して6個になりました。有名どころ&異なる国を狙って買ってみました。有名どころは他もありますけど、さすがにもう要らないですね。射的で遊ぶにしても、同時にいくつも使わんし……。

いずれも東京マルイというメーカーのガスガンです。


イタリア: Beretta 92


アメリカ: Colt M1911


ベルギー: FN Five-seveN


オーストリア: GLOCK 19


ドイツ: H&K USP Compact


スイス: SIG SAUER P226

実銃は性能が違い(そもそも使用できる弾丸が違う、M1911は .45 ACP、Five-seveNは5.7x28mmマシンガンの弾、他は9x19mmパラベラム弾)ます。しかしおもちゃであるガスガンは、見た目が違うだけで性能がほぼ全部同じです。趣味で選べばOKです。

デザインはベレッタ92とM1911が好きですね。機能美&シンプル。レールが付いているデザインはあんまり好きじゃないです。銃口側がシュッと細めのタイプが好きなんですね。たぶん。

持ちやすさはUSP Compactが良かったです。他も特に不満はないです。ああ、でもM1911とFive-seveNはグリップがでかすぎて若干持ちにくいかも?

あと説明書読んでいて驚いたんですが、操作方法が全然違います。特にセーフティー、デコックはモノによって全然違います。似た形なのに全く統一感がありません。使っている人たちは文句言わんのでしょうか?銃は不思議な世界ですね……。

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

編集者:すずき(2022/04/04 05:20)

コメント一覧

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



2022年2月6日

ZephyrのDevice Tree Overlayと独自のbindings

目次: Zephyr

前回の続きです。ZephyrのDevice Tree Overlay(2022年1月3日の日記参照)で独自のbindingsを定義(compatibleやプロパティの定義)する方法を紹介します。

前回はこんなノードを追加しました。

qemu_riscv64.overlayの例

/* samples/hello_world/boards/qemu_riscv64.overlay */

/ {
	resources {
		compatible = "test-overlay";
		value1 = <1>;
		value2 = <10>;
	};
};

ノードを追加しただけではエラーにはなりませんが、コードからvalue1の値を参照しようとするとビルドエラーになって怒られます。

詳細はZephyrのDevice Tree APIマニュアル(Devicetree API - Zephyr Project Documentation)が参考になります。

Hello worldでvalue1, value2の値を参照する

// samples/hello_world/src/main.c

#include <zephyr.h>
#include <sys/printk.h>

void main(void)
{
	printk("Hello World! %s\n", CONFIG_BOARD);

	printk("value1:%d\n", DT_PROP(DT_INST(0, test_overlay), value1));
	printk("value2:%d\n", DT_PROP(DT_INST(0, test_overlay), value2));
}
ビルド結果
$ ninja
...

zephyr/include/generated/devicetree_unfixed.h:308:34: error: 'DT_N_S_resources_P
_value1' undeclared (first use in this function); did you mean 'DT_N_S_resources
_PATH'?
  308 | #define DT_N_INST_0_test_overlay DT_N_S_resources
      |                                  ^~~~~~~~~~~~~~~~

このあとも大量に怒られる……。

Zephyrはコード内でデバイスツリーの値を参照すると、ビルド時に全て解決される仕組みです。そのためデバイスツリーに不都合な点があるとビルド時に猛烈に怒られます。Zephyrのデバイスツリー処理はPythonとマクロマジックが駆使されていて、コンパイルエラーのメッセージからエラーの原因がすぐにわからないのが難点ですね……。

Linuxは実行時に参照、書き換えが可能なので、ZephyrとLinuxの大きく異なる部分と言えましょう。

デバイスツリー定義yamlファイル

問題の解決にはdts/*.yamlを追加する必要があります。ファイル名はcompatible名.yamlになります。このファイルもOverlayファイル同様に追加するだけでビルドシステムが勝手に感知して処理してくれます。便利ですね。

test-overlay.yamlの位置
samples/hello_world/
├──CMakeLists.txt
├──README.rst
├──boards
│   └──qemu_riscv64.overlay
├──dts
│   └──bindings
│       └──test-overlay.yaml    ★これ★
├──prj.conf
├──sample.yaml
└──src
    └──main.c
test-overlay.yamlの例

# samples/hello_world/dts/bindings/test-overlay.yaml


description: |
    This binding provides AAA and BBB, something for CCC application in Zephyr.

compatible: "test-overlay"

properties:
    value1:
        type: int
        required: true
        description: |
          Identity of AAA of something. This is ...

    value2:
        type: int
        required: true
        description: |
          Identity of BBB of something. This is ...

追加したyamlファイルは非常にシンプルで、compatibleの名前と、value1, value2というint型のプロパティが必須だよ、ということを定義しただけです。

その他のbindingsの定義については、Zephyrのマニュアル(Devicetree bindings - Zephyr Project Documentation)をご覧ください。

ファイルを追加したら改めてビルド&実行しましょう。

bindings追加後のビルド&実行
$ ninja
...

[123/123] Linking C executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
             RAM:       23700 B       256 MB      0.01%
        IDT_LIST:          0 GB         2 KB      0.00%


$ ninja run

[0/1] To exit from QEMU enter: 'CTRL+a, x'[QEMU] CPU: riscv64
*** Booting Zephyr OS build v2.7.99-3416-g7dac931e3662  ***
Hello World! qemu_riscv64
value1:1
value2:10

うまく行きました。Device Tree Overlayとbindingsは同じCコードでボードごとに設定だけ変えたい場合に有用です。

この仕組みはtests下にあるコードでよく使われています。例えばGPIOのテストがわかりやすいでしょう。2つのポートが通信できるか?割り込みが正常に入るか?などがGPIOテストの内容です。

実際に動作させるにはボードごとに配線やピン設定が違いますから、ボードAはピン10と11を使う、ボードBは21と22を使う、というようにボードごとに違う設定を与える必要があります。

設定はコードに書かずにDevice Tree Overlayに逃がして、コードはテストしたい内容のみを記述することで設定もコードもすっきりする、ってわけです。

編集者:すずき(2023/09/24 12:08)

コメント一覧

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



link もっと前
2022年2月19日 >>> 2022年2月6日
link もっと後

管理用メニュー

link 記事を新規作成

<2022>
<<<02>>>
--12345
6789101112
13141516171819
20212223242526
2728-----

最近のコメント5件

  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」

最近の記事3件

  • link 22年7月8日
    すずき (11/08 23:28)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介面白かった漫画の紹介です。知名度はあまり気にせず紹介します。5作品乙女ゲー...」
  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
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 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

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

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/08 23:28