我正試圖寫入Android外殼中的字符設備。但是mksh會針對整個操作範圍迴應「未知錯誤517」。我試圖用strace來追蹤這個問題,但它沒有幫助。對於AOS 4.4中的所有設備節點,這種情況也會發生,但在4.2中不會發生。Android shell中的「未知錯誤517」是什麼意思?
這是我做的:
# chmod 666 /dev/smd0
Unable to open /dev/smd0: Unknown error 517
# cat /dev/smd0
tmp-mksh: cat: /dev/smd0: Unknown error 517
該裝置是存在的,我都可以創建它(mknod的),並刪除它,所以它不是一個權限問題,據我所看到的。
# ls /dev/smd0
crw-rw---- 1 1000 1000 222, 0 Feb 13 2014 /dev/smd0
所有我在strace的得到的是:
ioctl(10</dev/tty>, SNDCTL_TMR_STOP or TCSETSW, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(10</dev/tty>, TIOCSPGRP, [23069]) = 0
[pid 23069] open("/dev/smd0", O_RDONLY|O_LARGEFILE) = -1 EPROBE_DEFER (Unknown error 517)
[pid 23069] open("/dev/smd0", O_WRONLY|O_LARGEFILE) = -1 EPROBE_DEFER (Unknown error 517)
[pid 23069] write(2</dev/pts/5>, "Unable to open /dev/smd0: Unknown error 517\n", 44) = 44
在shf.c文件mksh來源看不提供任何見解無論是。
我還發現,在Linux內核源EPROBE_DEFER
標籤,在該文件中:../include/linux/errno.h:
#define EPROBE_DEFER 517 /* Driver requests probe retry */
任何想法可能會導致這個問題?
這是一個令人困惑的答案。你說'mksh'只是使用仿生的,但是你指出的仿生源,並沒有提到實際出現的錯誤。那麼這些字符串從哪裏來? – not2qubit