やるきなし

2017/01/16 22:15 / Windows 10 Client が Samba (2:4.2.14+dfsg-0+deb8u2) で構築されているドメインに参加できない

既存ユーザ(一度ログインしたことのあるユーザ)は Windows 10 Client に(ドメインのアカウントで)ログインできるが,新規ユーザはログインできないという問題が発生.おそらくちょっと前にあった更新プログラムの影響かもしれない.

サーバ側は Samba (2:4.2.14+dfsg-0+deb8u2) で smbldap-tools で LDAP に繋いで,Linux とアカウントを共有しているような環境.サーバ側の問題,特に Samba と LDAP の連携まわりを疑ったが,Windows 8 Client ではこのような症状がでていないので,Windows 10 固有の問題らしい.

症状は以下のとおり.

一旦ドメインから抜けたり再度参加したりいろいろ試したが,今度は既存ユーザ(一度ログインしたことのあるユーザ)までログインできなくなると いう状況に.

日本語で調べていたためまったく検索に引っかからなかったのだが,samba.org の https://wiki.samba.org/index.php/Required_Settings_for_Samba_NT4_Domains によると smb.conf

server max protocol = NT1

を書く必要があるとのこと.これで解決した.なお「現在ログオン要求をサービスするログオン サーバーがありません」 に対応する英語メッセージは There are currently no logon servers available to service the logon request.

Related articles

2016/12/30 21:28 / Linux 4.9 -> 4.10-rc1

4.10-rc1 が出ているので .config がどう変更されるのか見てみた.ただし 2016/12/14 23:00 / Linux 4.8 -> 4.9 とはターゲットが異なる(ターゲットは VMware on Windows 上の Guest で CPU は i7-3687U).以下 - は削除されたもの,+ は追加されたもの m->n 等は値の変化を示す.

https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=9d85025b0418163fae079c9ba8f8445212de8568 で REPORTING-BUGS が Documentation/admin-guide/reporting-bugs.rst に rename されているので,make-kpkg で .deb が作れなくなっている./usr/share/kernel-package/ruleset/targets/debug.mk, /usr/share/kernel-package/ruleset/targets/headers.mk で REPORTING-BUGS を install している箇所を comment out して make-kpkg する.

あと arch/x86/kernel/cpu/vmware.c に幾つか修正が施されているようで dmesg の diff (抜粋)は以下のような感じ.

-Host bus clock speed read from hypervisor : 66000000 Hz
+vmware: TSC freq read from hypervisor : 2601.000 MHz
+vmware: Host bus clock speed read from hypervisor : 66000000 Hz
+vmware: using sched offset of 10831029224 ns
-Booting paravirtualized kernel on bare hardware
+Booting paravirtualized kernel on VMware hypervisor

Related articles

2016/12/30 02:42 / 電子マネービューワー FLO:Q(フローク) サービス終了

PaSoRi RC-S380で nanaco の残高が確認できず,変だなと思っていたら http://www.floq.jp/kisekae/ のとおり FLO:Q(フローク)(電子マネービューワー含む)が12月20日でサービスを終了していた.

残高を確認するだけなので FeliCa Balance Viewerをとりあえず使うことにした(Linux版もあるらしい).スマートフォンのNFCをつかってアプリで読んでもよいのだけども.

Related articles

2016/12/29 02:03 / ZenFone 3 検討

スマートフォン(Android)の買い替えを検討中.現在使っているのは HTC One (M7) でスペックは以下.

不満はないが,若干もっさりしだしたのとディスプレイが割れているので,買い替えたい.ASUS の ZenFone シリーズで検討中.

ZS570KL の日本版は Snapdragon 821 になっていて,ストレージも 256G というとんでもないスペック(256Gをなにに使うんだろう...).ZS570KL は https://www.asus.com/jp/News/M3BOvqwUePdKjglj のとおり一旦受注停止していたが 12/22 に受注再開されている.買うのであれば ZS570KL なのだが10万円ぐらいなので逡巡してしまう.対して海外版は7万円強(その分スペックも落ちる).微妙.とりあえず ZE520KL が手頃感もありつつ,今のものと比べてサイズも若干だけ大きい程度なので,当面を凌ぐには良いかもと思いつつある.

2016/12/20 11:54 / nvidia-kernel-dkms 340.96-1 on Linux 4.9

nvidia-kernel-dkms 340.96-1 (Debian GNU/Linux stable) を Linux 4.9 で compile しようとすると以下のようにコケる.

/usr/src/nvidia-current-340.96/os-mlock.c:XX:XX: error: too many arguments to function ‘get_user_pages_remote’

https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=9beae1ea89305a9667ceaab6d0bf46a045ad71e7 の影響の様なので os-mlock.c の

ret = get_user_pages_remote(current, mm, (unsigned long)address,
                            page_count, write, force, user_pages, NULL);

の箇所を以下のように変更.

{
    unsigned int flags = 0;
    if(write) flags |= FOLL_WRITE;
    if(force) flags |= FOLL_FORCE;
    ret = get_user_pages_remote(current, mm, (unsigned long)address,
                                page_count, flags, user_pages, NULL);
}

実際は write=1, force=0 なので,

ret = get_user_pages_remote(current, mm, (unsigned long)address,
                            page_count, FOLL_WRITE, user_pages, NULL);

でもOKなはず.ただし compile は通るが

NVRM: failed to register procfs!
NVRM: request_mem_region failed for 16M @ 0xfa000000. This can
NVRM: occur when a driver such as rivatv is loaded and claims
NVRM: ownership of the device's registers.
NVRM: DRM init failed
NVRM: NVIDIA init module failed!

という感じで modprobe に失敗する.かつ /proc/driver/nvidia/ だけが残されて,再度 modprobe する際は

proc_dir_entry 'driver/nvidia' already registered

とか怒られたり ls /proc/driver/nvidia/ とかすると固まったりする...Linux 4.9 を諦めるか,340.96-1 ではなく backports の 367.57-2~bpo8+1を使うか...

追記(2016/12/27)

/proc/driver/nvidia/ (procfs) の部分については単に nvidia-kernel-dkms 340.96-1 の bug らしい(error handling が抜けている).以下でなんとかなる.

--- a/nv.c
+++ b/nv.c
@@ -809,13 +809,17 @@ int __init nvidia_init_module(void)
     /* create /proc/driver/nvidia/... */
     rc = nv_register_procfs();
     if (rc < 0)
+    {
         nv_printf(NV_DBG_ERRORS, "NVRM: failed to register procfs!\n");
+        rc = -ENODEV;
+        goto failed5;
+    }
 
     if (pci_register_driver(&nv_pci_driver) < 0)
     {
         rc = -ENODEV;
         nv_printf(NV_DBG_ERRORS, "NVRM: No NVIDIA graphics adapter found!\n");
-        goto failed4;
+        goto failed35;
     }
 
     if (nv_drm_init(&nv_pci_driver) < 0)
@@ -1040,6 +1044,9 @@ failed3:
 
     pci_unregister_driver(&nv_pci_driver);
 
+failed35:
+    nv_unregister_procfs();
+
 failed5:
     rm_shutdown_rm(sp);
 
 

goto failed4 の箇所は普通に goto 先を間違っているような気がする.

追記(2016/12/27)

https://devtalk.nvidia.com/default/topic/981852/linux/resolution-patch-attached-for-nvidia-linux-driver-340-98-x86_64-using-linux-kernel-4-9/ から辿れる http://pastebin.com/raw/0XE0e8Wx にある以下のパッチをあてたらうまく動くようになった.

--- kernel/nv-drm.c
+++ kernel/nv-drm.c
@@ -115,7 +115,11 @@ static const struct file_operations nv_drm_fops = {
 };

 static struct drm_driver nv_drm_driver = {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+    .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
+#else
     .driver_features = DRIVER_GEM | DRIVER_PRIME,
+#endif
     .load = nv_drm_load,
     .unload = nv_drm_unload,
     .fops = &nv_drm_fops,

https://patchwork.freedesktop.org/patch/102820/https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=3cbf6a5deb2f4a469de7a90a3cc169e8fcba95e2 によると,drm について比較的新しい driver は DRIVER_MODESET というフラグが用いられているが,実際にこれは「DRIVER_MODERN」(新しい driver)の意味であって super confusing だから古いタイプの driver に DRIVER_LEGACY というフラグを付けることにしたらしい.

Related articles