やるきなし

2018/12/14 09:07 / ハワイ(ホノルル・ワイキキ)メモ

少し前に仕事でハワイに行った際のメモ.全然観光とかしてない.

images/2426.jpg

Related articles

2018/11/18 17:15 / curl on お名前.com 共用サーバーSD CGI (curl: (48) An unknown option was passed in to libcurl)

お名前.com 共用サーバーSDで再び curl が動かなくなった.

最もシンプルに curl https://www.yahoo.co.jp/ を CGI から実行すると以下のように怒られる.

curl: (48) An unknown option was passed in to libcurl

原因は curl と libcurl の version が揃っていないこと.CGIから curl --version すると確かに以下のように curl は 7.54.1 で libcurl は 7.32.0.

curl 7.54.1 (i386-pc-solaris2.10) libcurl/7.32.0 OpenSSL/1.0.2n zlib/1.2.3 libidn/1.26
Release-Date: 2017-06-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP 

具体的なファイルをみてみても,ldd /usr/local/bin/curl が以下で,

    libcurl.so.4 =>  /usr/local/lib/amd64/libcurl.so.4
    libssl.so.1.0.0 =>   /usr/local/lib/amd64/libssl.so.1.0.0
    libcrypto.so.1.0.0 =>    /usr/local/lib/amd64/libcrypto.so.1.0.0
    libldap-2.4.so.2 =>  /usr/local/lib/amd64/libldap-2.4.so.2
    liblber-2.4.so.2 =>  /usr/local/lib/amd64/liblber-2.4.so.2
    libresolv.so.2 =>    /lib/64/libresolv.so.2
    libgen.so.1 =>   /lib/64/libgen.so.1
    libnsl.so.1 =>   /lib/64/libnsl.so.1
    libsocket.so.1 =>    /lib/64/libsocket.so.1
    libz.so =>   /usr/lib/64/libz.so
    librt.so.1 =>    /lib/64/librt.so.1
    libc.so.1 =>     /lib/64/libc.so.1
    libidn.so.11 =>  /usr/local/lib/64/libidn.so.11
    libgcc_s.so.1 =>     /usr/sfw/lib/64/libgcc_s.so.1
    libdl.so.1 =>    /lib/64/libdl.so.1
    libmp.so.2 =>    /lib/64/libmp.so.2
    libmd.so.1 =>    /lib/64/libmd.so.1
    libscf.so.1 =>   /lib/64/libscf.so.1
    libaio.so.1 =>   /lib/64/libaio.so.1
    libiconv.so.2 =>     /usr/local/lib/64/libiconv.so.2
    libdoor.so.1 =>  /lib/64/libdoor.so.1
    libuutil.so.1 =>     /lib/64/libuutil.so.1
    libm.so.2 =>     /lib/64/libm.so.2

libcurl.so.4 関連は以下のような感じ.Symlink 先が最近変更になったらしい...

-rwxr-xr-x 1 root root 202504 Jun 26  2017 /usr/local/bin/curl
-rw-r--r-- 1 root root 770226 Jan 27  2014 /usr/local/lib/amd64/libcurl.a
-rwxr-xr-x 1 root root   1164 Jan 27  2014 /usr/local/lib/amd64/libcurl.la
lrwxrwxrwx 1 root root     16 Nov 14 14:20 /usr/local/lib/amd64/libcurl.so -> libcurl.so.4.3.0
lrwxrwxrwx 1 root root     16 Nov 14 14:20 /usr/local/lib/amd64/libcurl.so.4 -> libcurl.so.4.3.0
-rwxr-xr-x 1 root root 505336 Jan 27  2014 /usr/local/lib/amd64/libcurl.so.4.3.0
-rwxr-xr-x 1 root root 565344 Jun 26  2017 /usr/local/lib/amd64/libcurl.so.4.4.0

ということで LD_PRELOAD=/usr/local/lib/amd64/libcurl.so.4.4.0 curl で curl を起動すると正しく動く.以下 LD_PRELOAD=/usr/local/lib/amd64/libcurl.so.4.4.0 curl --verion の結果.

curl 7.54.1 (i386-pc-solaris2.10) libcurl/7.54.1 OpenSSL/1.0.2n zlib/1.2.3
Release-Date: 2017-06-14
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy 

あと,お名前.com 共用サーバーSDに SSH でログインすると時間が結構ずれてる(WEB サーバは問題なさそう).

参考:

追記 (2019/1/28)

今見てみたらcurlだけで動くようになっていた.逆にLD_PRELOAD=/usr/local/lib/amd64/libcurl.so.4.4.0 curlだとコケる.

ld.so.1: curl: fatal: /usr/local/lib/amd64/libcurl.so.4.4.0: open failed: No such file or directory

ldd /usr/local/bin/curl

    libcurl.so.4 =>  /usr/local/lib/amd64/libcurl.so.4
    libnsl.so.1 =>   /lib/64/libnsl.so.1
    libsocket.so.1 =>    /lib/64/libsocket.so.1
    libssl.so.1.0.0 =>   /usr/local/lib/amd64/libssl.so.1.0.0
    libcrypto.so.1.0.0 =>    /usr/local/lib/amd64/libcrypto.so.1.0.0
    libz.so.1 =>     /usr/lib/64/libz.so.1
    librt.so.1 =>    /lib/64/librt.so.1
    libc.so.1 =>     /lib/64/libc.so.1
    libgcc_s.so.1 =>     /usr/local/lib/amd64/libgcc_s.so.1
    libmp.so.2 =>    /lib/64/libmp.so.2
    libmd.so.1 =>    /lib/64/libmd.so.1
    libscf.so.1 =>   /lib/64/libscf.so.1
    libdl.so.1 =>    /lib/64/libdl.so.1
    libaio.so.1 =>   /lib/64/libaio.so.1
    libdoor.so.1 =>  /lib/64/libdoor.so.1
    libuutil.so.1 =>     /lib/64/libuutil.so.1
    libgen.so.1 =>   /lib/64/libgen.so.1
    libm.so.2 =>     /lib/64/libm.so.2

libcurl.so.4 関連.

-rwxr-xr-x 1 root root 223032 Nov 30 09:51 /usr/local/bin/curl
-rw-r--r-- 1 root root 943778 Nov 30 09:51 /usr/local/lib/amd64/libcurl.a
-rwxr-xr-x 1 root root   1019 Nov 30 09:51 /usr/local/lib/amd64/libcurl.la
lrwxrwxrwx 1 root root     16 Jan 28 13:58 /usr/local/lib/amd64/libcurl.so -> libcurl.so.4.5.0
lrwxrwxrwx 1 root root     16 Jan 28 13:58 /usr/local/lib/amd64/libcurl.so.4 -> libcurl.so.4.5.0
-rwxr-xr-x 1 root root 572608 Nov 30 09:51 /usr/local/lib/amd64/libcurl.so.4.5.0

curl --verion

curl 7.62.0 (x86_64-pc-solaris2.10) libcurl/7.62.0 OpenSSL/1.0.2n zlib/1.2.3
Release-Date: 2018-10-31
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy 

いつのまにか i386-pc-solaris2.10 から x86_64-pc-solaris2.10 に変更になってる...

Related articles

2018/11/11 15:50 / Changed its 'Origin' value from 'Google, Inc.' to 'Google LLC' とかで Google Chrome が Upgrade できない

aptitudeでGoogle Chrome (google-chrome-stable)が Upgrade できない問題発生.

E: Repository 'http://dl.google.com/linux/chrome/deb stable Release' changed its 'Origin' value from 'Google, Inc.' to 'Google LLC'
E: Failed to download some files
W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release: 
E: Some index files failed to download. They have been ignored, or old ones used instead.

https://stackoverflow.com/questions/50942353/e-repository-http-dl-google-com-linux-chrome-remote-desktop-deb-stable-relea/50942354によるとsudo apt updateで名前の変更を許可すれば良いだけの話らしい.

2018/11/06 11:30 / Linux 4.19.0 -> 4.20-rc1

4.20-rc1が出たので.configがどう変更されるのか見てみた.以下 - は削除されたもの,+ は追加されたもの.汎用指向の環境.Linux 5.0 になるのは来年らしい.

DKMS

broadcom-sta-dkms (6.30.223.271-9.1)は以下で compile できない.

Assembler messages:
Error: can't open arch/x86/kernel/macros.s for reading: No such file or directory

arch/x86/kernel/macros.s/usr/src/linux-headers-4.20.0-hoge-01/arch/x86/kernel/ に配置してあげると compile できる.

nvidia-kernel-dkms (390.87-2) は conftest の段階で以下の error.これ以上はひとまず追わず.

#error INIT_WORK() conftest failed!
#error kmem_cache_create() conftest failed!
#error on_each_cpu() conftest failed!
#error smp_call_function() conftest failed!
#error acpi_walk_namespace() conftest failed!
#error pci_dma_mapping_error() conftest failed!
#error wait_on_bit_lock() conftest failed!
#error radix_tree_replace_slot() conftest failed!

追記 (2018/12/14)

まず上記 conftest の失敗は arch/x86/kernel/macros.s を見に行くことが原因.nvidia-legacy についても同様.以下で解決.Version は nvidia-kernel-dkms (390.87-3) と nvidia-legacy-340xx-kernel-dkms 340.107-3.

# cd /usr/src/nvidia-current-390.87
# ln -s /usr/src/linux-headers-4.20.0-rcX-hogege-01/arch .
# cd /usr/src/nvidia-legacy-340xx-340.107
# ln -s /usr/src/linux-headers-4.20.0-rcX-hogege-01/arch .
# cd /usr/src/nvidia-legacy-340xx-340.107/uvm
# ln -s /usr/src/linux-headers-4.20.0-rcX-hogege-01/arch .

nvidia-current (390.87-3) は以下で compile に失敗する.Kernel の mm: change return type to vm_fault_tによる変更に由来する.

/var/lib/dkms/nvidia/current-390.87/build/nvidia-drm/nvidia-drm-gem-nvkms-memory.c: In function ‘__nv_drm_vma_fault’:
/var/lib/dkms/nvidia/current-390.87/build/nvidia-drm/nvidia-drm-gem-nvkms-memory.c:240:11: error: implicit declaration of function ‘vm_insert_pfn’; did you mean ‘vmf_insert_pfn’? [-Werror=implicit-function-declaration]
     ret = vm_insert_pfn(vma, address, pfn + page_offset);
           ^~~~~~~~~~~~~
           vmf_insert_pfn

以下の patch で解決.

--- a/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
+++ b/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
@@ -230,31 +230,15 @@ static int __nv_drm_vma_fault(struct vm_area_struct *vma,
     struct nv_drm_gem_nvkms_memory *nv_nvkms_memory = to_nv_nvkms_memory(
         to_nv_gem_object(gem));
     unsigned long page_offset, pfn;
-    int ret = -EINVAL;
+    vm_fault_t ret;
 
     pfn = (unsigned long)(uintptr_t)nv_nvkms_memory->pPhysicalAddress;
     pfn >>= PAGE_SHIFT;
 
     page_offset = vmf->pgoff - drm_vma_node_start(&gem->vma_node);
 
-    ret = vm_insert_pfn(vma, address, pfn + page_offset);
-
-    switch (ret) {
-        case 0:
-        case -EBUSY:
-            /*
-             * EBUSY indicates that another thread already handled
-             * the faulted range.
-             */
-            return VM_FAULT_NOPAGE;
-        case -ENOMEM:
-            return VM_FAULT_OOM;
-        default:
-            WARN_ONCE(1, "Unhandled error in %s: %d\n", __FUNCTION__, ret);
-            break;
-    }
-
-    return VM_FAULT_SIGBUS;
+    ret = vmf_insert_pfn(vma, address, pfn + page_offset);
+    return ret;
 }
 
 /*

2018/10/14 03:06 / procmail レシピメモ

いつも procmail のレシピの書き方の細かい部分を忘れるのでメモ.

:0c
* ^TO_myn@a.example.org
! myn@c.example.org

:0c
* ^TO_.*@b.example.org
! myn@c.example.org

これでmyn@a.example.org宛のメール,もしくはドメイン@b.example.org宛のメールだったら,ローカル配送とともにmyn@c.example.orgに転送される.

レシピの開始

Condition line

Action line

参考: