公開日: 2021年10月19日 / 最終更新日: 2024年10月14日

トラブル顛末集

FreeBSD を利用していて見舞われたトラブルと (できれば) その対処法をこのページで公開してゆこうと思います。対処法については、私なりに調べてそれなりに改善の見られた方法を掲載しますが、それが最善とは限りませんので、あしからずご了承ください。

OS 起動時に「uhub_reattach_port: giving up port reset - device vanished」というメッセージが出続ける問題の暫定対策

FreeBSD Bugzilla - Bug 237666 によると、2021 年 10 月現在まだ修正には至っていないようですが、とりあえず暫定対策?できたのでここに載せておきます。

発生環境

  • パソコン

    ヒューレット・パッカード SPECTRE 13-af520TU
  • FreeBSD バージョン

    % uname -mv
    FreeBSD 12.2-RELEASE r366954 GENERIC  amd64
    
  • USB ハブ

    エレコム U3HC-A429BX

再現手順

再現性がないので明確に示すことができませんが、だいたい次のような手順で発生していたと思います。
  1. パソコンの USB ポート (USB Type-C Thunderbolt) に USB ハブを挿す。
  2. USB ハブに USB メモリを挿してマウント/アンマウントする。
  3. USB ハブを抜く。
  4. PC の電源を落とし、電源ケーブルを抜いてしばらく放置する。
  5. PC の電源ケーブルを接続して PC の電源を入れる。
  6. OS 起動時に「uhub_reattach_port: giving up port reset - device vanished」というメッセージが延々と表示される。
ちなみに、パソコンの電源は USB Type-C の電源ポートから給電しています。また、参考までに Bugzilla のコメント欄では、Thunderbolt ポートは「TB」で通じているようです。

暫定対策?

Greg という方の 2019 年 5 月 1 日の日記を見ると「UEFI をリセットすると症状が出なくなった」ということが書かれています。そこで次のようにしたところ、とりあえず症状は出なくなりました (再発するかもしれないけど)。
  1. UEFI を工場出荷時の設定にリセットしてセーブする。
  2. 再度 UEFI の設定をやり直してセーブする。私の場合は次の項目。
    • Legacy Support: Enabled
    • Secure Boot: Disabled
    • UEFI Boot Order: [OS boot Manager] > rEFInd を最優先
  3. OS を再起動する。

/usr/include/c++/v1/ の下に __taple/*.h と __string/*.h がない!

Picotool をビルドしようとしたときに上記の問題が発生しました。

発生環境

  • FreeBSD バージョン

    % uname -mv
    FreeBSD 13.3-RELEASE-p5 GENERIC amd64
    

発生原因

原因はよくわかりませんが、下記のページによると FreeBSD をアップデートした際に件のファイルが壊れてしまったのではないか?というようなことが書かれています。私も 13.2-RELEASE から 13.3-RELEASE にアップデートしてあったので、そのせいかもしれません。

暫定対策

暫定対策も前出のページに書かれています。for コマンドが組み込まれているシェル (bash や zsh など) で次のように実行してください。
# mkdir /usr/include/c++/v1/__taple/ /usr/include/c++/v1/__string/
# for i in make_tuple_types.h pair_like.h sfinae_helpers.h tuple_element.h tuple_indices.h tuple_like.h tuple_like_ext.h tuple_size.h tuple_types.h; do fetch -o /usr/include/c++/v1/__tuple/ https://raw.githubusercontent.com/freebsd/freebsd-src/release/13.3.0/contrib/llvm-project/libcxx/include/__tuple/${i}; done
# for i in char_traits.h constexpr_c_functions.h extern_template_lists.h; do fetch -o /usr/include/c++/v1/__string/ https://raw.githubusercontent.com/freebsd/freebsd-src/release/13.3.0/contrib/llvm-project/libcxx/include/__string/${i}; done

広告