USB3.0ポートでUSB3.0フラッシュメモリが使えなくなった

どもども, テスト真っ只中のとさいぬです.
今回のテストで一番つらいと思っている最初の2日を無事終え, 大分気が楽になった感じです.
(まだあと8教科残ってますが….)

さて, 僕は普段, USB3.0対応のUSBフラッシュメモリであるSanDisk Extreme USB 3.0 Flash Driveを使っているのですが, 近頃VAIO Zに入れたArch LinuxでこれをUSB3.0ポートに挿すと認識してくれなくなってしまったんです(USB2.0のポートだと動く).

いろいろ調べたら簡単に解決したのでメモ.

かんきょう

  • VAIO Z (VPCZ23AJ)
  • Arch Linux x86_64
  • linux 3.17.0-rc5 (症状自体はlinux-3.15あたりから)

かくにん

物理的に壊れているわけではないので, 何かしらは反応しているはずです.
そこで, USB3.0ポートにUSBフラッシュメモリを接続した後, dmesg コマンドでカーネルが吐くメッセージを確認してみます.

$ dmesg
- 略 -
[13089.757750] usb 1-2: new full-speed USB device number 7 using xhci_hcd
[13089.869144] usb 1-2: device descriptor read/64, error -71
[13089.970031] xhci_hcd 0000:04:00.0: Setup ERROR: setup context command for slot 1.
[13089.970043] usb 1-2: hub failed to enable device, error -22
[13090.124246] usb 1-2: new full-speed USB device number 8 using xhci_hcd
[13090.235485] usb 1-2: device descriptor read/64, error -71
[13090.336506] xhci_hcd 0000:04:00.0: Setup ERROR: setup context command for slot 1.
[13090.336526] usb 1-2: hub failed to enable device, error -22
[13090.490610] usb 1-2: new full-speed USB device number 9 using xhci_hcd
[13090.490999] usb 1-2: Device not responding to setup address.
[13090.692152] usb 1-2: Device not responding to setup address.
[13090.893087] usb 1-2: device not accepting address 9, error -71
[13091.046211] usb 1-2: new full-speed USB device number 10 using xhci_hcd
[13091.046585] usb 1-2: Device not responding to setup address.
[13091.247865] usb 1-2: Device not responding to setup address.
[13091.448729] usb 1-2: device not accepting address 10, error -71
[13091.448880] usb usb1-port2: unable to enumerate USB device

やっぱり何かエラー出ていましたね.

全く関係ないのですが, dmesgコマンドの出力に色がつくようになったんですね.
ずいぶん見やすくなりました.

なおす

device descriptor read/64, error -71 でググってみたところ, この辺の情報がHitしました.

usb 1-4: device descriptor read/64, error -71 | Guy Rutenberg

どうやら old_scheme_first を有効にしてやればいいようです.
え゛っ…. oldって……. ちょっとショック(´・ω・`)

// rootで
# echo Y > /sys/module/usbcore/parameters/old_scheme_first

// やっぱsudo使いたいよね
$ sudo sh -c 'echo Y > /sys/module/usbcore/parameters/old_scheme_first'

// これでもよさそう
$ echo Y | sudo tee /sys/module/usbcore/parameters/old_scheme_first

うごいた

$ dmesg
- 略 -
[14028.974874] usb 2-2: new SuperSpeed USB device number 2 using xhci_hcd
[14028.990757] usb-storage 2-2:1.0: USB Mass Storage device detected
[14028.991517] scsi host7: usb-storage 2-2:1.0
[14029.995418] scsi 7:0:0:0: Direct-Access     SanDisk  Extreme          0001 PQ: 0 ANSI: 6
[14029.996769] sd 7:0:0:0: [sdc] 31277232 512-byte logical blocks: (16.0 GB/14.9 GiB)
[14029.997587] sd 7:0:0:0: [sdc] Write Protect is off
[14029.997601] sd 7:0:0:0: [sdc] Mode Sense: 53 00 00 08
[14029.998310] sd 7:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[14030.003468]  sdc: sdc1
[14030.005791] sd 7:0:0:0: [sdc] Attached SCSI removable disk

$ lsusb | grep SanDisk
Bus 002 Device 002: ID 0781:5580 SanDisk Corp. SDCZ80 Flash Drive

注: sysctlの設定とかいじらない限り再起動すると元に戻ってしまうので, 接続するたびにコマンド打たないといけないです

ではではー.

ConoHaはじめたからとりあえずbtrfsにArch Linux入れた

みょーーん.

僕ん家の回線は特に下りが遅く, 何よりプロバイダの都合でウェルノウンポートを開放できないという, イマドキのネット生活には耐え難い仕様をしております.
そんなこともあり以前からVPSを検討していましたが, 主に資金面での問題やその他諸々で契約できずにいました.

そんな中, 先週のOSC@Nagoyaで, なんとConoHa3,000分のクーポンを頂いてしまいまして…
conoha

“これは申し込まなきゃいけないッ” ってことでConoHaはじめました.

Read More »

fcitxでもvi-cooperative modeもどき

みょんみょん

以前, uimの “vi-cooperative mode” を紹介しました.
しかし最近, 諸事情でQt5を扱っているのですが, なんとuimがまともにQt5をサポートしていない!!

segfault
uimの安定板にはQt5のサポートコードがまだ取り込まれておらず, また最新ブランチからビルドしてもQt5アプリをSegmentation Faultさせてしまう始末…

ってことで, fcitx, そしてArch LinuxのCommunityレポジトリにも取り込まれたfcitx-mozcに移行することにしました.
また, 当然fcitxにvi-cooperative modeは無いので, .vimrcに似たようなことができるように設定を書いてみました.

インストール

// いらない
$ yaourt -Rcns uim-mozc mozc

// こんにちわ
$ yaoutr -Sy fcitx-im fcitx-qt5 fcitx-configtool fcitx-mozc

.xprofileを編集

# fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export DefaultIMModule=fcitx
fcitx

ログオフなり再起動

fcitxの設定

通知領域のfcitxアイコンの右クリックで設定を開く
menu

デフォルトの入力言語が日本語入力なのは鬱陶しいので, mozcよりも上に適当なキーボードの設定を追加(僕は英字配列のキーボードを使っているのでEnglishにしました)
kbd

Trigger Input Methodに日本語入力のON/OFFキーを設定
trig

Vimの設定(vi-cooperative modeもどき)

インサートモードから抜けるときにfcitx-remote -c(IMを無効にする)を実行するようにします.
augroup MyVimrcの部分はautocmdが複数回呼ばれてしまうのを防ぐための工夫です.
Vimの極め方 の “リローダブルなvimrcを書く” とかが参考になると思います.

augroup MyVimrc
  autocmd!
augroup END

" fcitx
autocmd MyVimrc InsertLeave * call system('fcitx-remote -c')
"}}}

ウェイ

日本語入力のままコマンドモードに移っても誤爆しなくなったヾ(❀╹◡╹)ノ゙

とはいえ, fcitxさん. いろいろと細かい挙動に不満が…….

  • 日本語入力中にChromiumの通知が出ると, そのまま確定され, さらに通知を出したChromium上に一旦かーそるを移動しないと再び日本語入力を有効にできない
  • 通知が出なくてもなんか突然日本語入力できなくなる
  • 通知領域のアイコン右クリックで出るメニューが若干ズレてる?

ちなみに, バージョンは4.2.8.4です.

ではでは〜

uim-mozcのvi-cooperative modeが神ってる

どーもです。

先週木曜から40度近い発熱をし、医者の診察を受けたところインフルエンザ(B)でした。
今朝やっと熱が下がりましたが、学校に通うには「解熱後2日後」というルールがあるので早くても水曜からですかねぇ。
初回の授業は今後の理解に大きく関わってくるので、あまり欠席したくはなかったのですが……………

さてまぁ、タイトル通りのこと。

Vimで邪悪な日本語を入力しているとします。
insert

そのままESC等でnomal modeに移り、:w等のコマンドを実行しようとして・・・
nomal
こうしちゃうことありますよね。

あまりに不便なのでなにかないかと探したところ、uim-mozcにvi-cooperative modeというものがあるのを発見しました。

uimの設定(mozc設定ダイアログではない)を開き、左側のグループからMozcを選択します。
その中の設定項目にEnable vi-cooperative modeというのがあるのでチェックを入れてみましょう。
mozc

すると、Vimでinsert modeからnomal modeに移るとき、自動的に日本語入力がOFFになります!
便利ですね。

ではでは〜