ラベル ASUS X200LA の投稿を表示しています。 すべての投稿を表示
ラベル ASUS X200LA の投稿を表示しています。 すべての投稿を表示

2018年4月29日日曜日

Linux kernel 4.16.5でRealtekのUSB SD/MMC card readerを使う

以前は普通に使えていた気がするのだが、いつの間にやらSD cardを挿入しても認識しなくなっていた (`/dev/mmcblk0p1`のようなdevice fileが作られない)ので、原因を調べてみた。

結論から言うと、必要なdevice driversが組み込まれていなかったのが原因だった。

環境


* ASUS X200LA
* Debian GNU/Linux (amd64, sid)
* Linux kernel 4.16.5
* Realtek RTS5129 card reader controller


実際の手順


何を探せばいい?


`lsusb`を使うと実際に使えるかどうかは別として接続されている (認識している?)devicesを表示してくれるので、それを元にしてkernelに組み込むべきdevice driver(s)を探せばいい。

今回の場合は:

% lsusb
...
Realtek Semiconductor Corp. RTS5129 Card Reader Controller
...

RealtekのRTS5129というdeviceに対するdriverを探す。

対応しているdriverやmoduleは?


kernelを自前でbuildしているので、取り敢えず`make menuconfig`を使い、それっぽいoptionがないかを探してみる。"realtek"で検索してみたところ、それっぽいoptionが見付かった:

`MMC_REALTEK_USB` ("Device Drivers" → "MMC/SD/SDIO card support" → "Realtek USB SD/MMC Card Interface Driver") = `rtsx_usb_sdmmc`

そのまんまな名前だ。helpにもそれっぽいことが書かれているので試してみる価値はあると思ったのだが、なぜかmenuに表示されておらず、故にy/mで選択もできない。その原因は依存関係が満たされていないためだった:

`MISC_RTSX_USB` ("Device Drivers" → "Misc devices" → "Realtek USB card reader") = `rtsx_usb`

このoptionをy/m何れかに設定すると、`MMC_REALTEK_USB`を選択する項目が表示されこちらもy/m何れか選択できるようになる。

動作確認


Kernelをrebuildしてinstall、rebootした後に、SD cardを差し込んで認識されることを確認。`lsmod`でも見てみる:

% lsmod | rg mmc
mmc_block
rtsx_usb_sdmmc
mmc_core
rtsx_usb

2016年5月5日木曜日

ASUS X200LAのFocaltech touchpadがうまく動かなくなった件

概要

  • Debian SidでX関連packageの変更?によりsynclientが動かなくなった
  • /etc/X11/xorg.conf.d/以下にsynaptics関連のfileを配置したら直った

不具合とworkaround

以前のpostで、ASUS X200LAに搭載されているFocaltech touchpadをsynclientで設定すると使いやすくなると書いたが、Linux kernelのupgradeに際してrebootした後、tapなどが動作しなくなっていることに気付いた。

何かの拍子に設定が戻ったのかとsynclient -lで設定を確認してみようとしたら"Couldn't find synaptics properties. No synaptics driver loaded?"を吐く。~/.xsessionにtouchpadを設定する一連のcommandsを書いているので、synclientのこのerrorのせいで動作がおかしくなっている。

当初はkernelを疑って以前のversionに戻したり、幾つかkernel optionsを弄ってみたが関係ないと分かった。

結局、cp -i /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/を実行した後にXをrestartしたら解決した。よくわからないが、Linux kernelではなく、X側の設定で何かしら変更があったようだ。

参考リンク