[Solved]eth0 선 꽂는 이벤트가 궁금합니다.

송효진의 이미지

udev 에서 해 보려니
이벤트가 따로 발생하는건지 udev 룰을 몰라서 그런건지 잘 안되네요.
목적은 꽂았을 때 dhcpcd 실행하고, 뽑았을때 eth0 down 하는 것입니다.

그리고 xnote 인데 fn+f6 등의 안잡히는 키코드를 찾아내는 방법도 궁금합니다.

감사합니다.

세이군의 이미지

현재 fn키에 대한 키코드가 알려지지 않았습니다. 그래서 fn+'어떠한키' 조합은 인식되지 않습니다. 단, 그 조합이 다른 키의 역할을 한다면 그 키의 키코드가 나올 것입니다.

bushi의 이미지

/proc/interrupts 로 키보드 인터럽트가 발생하긴 하는 지 먼저 알아보세요.

키코드를 뱉어낸다해도 그게 알려지지 않은 전혀 생뚱맞은 코드라면 여전히 유저영역으로는 전달되지 않습니다.
setkeycodes 로 커널드라이버에게 알려주기전엔 계속 무시됩니다.
(커널 패치가 되기 전의 한영,한자 키처럼요)

아, 그리고

[bushi@rose keyboard]$ sudo /sbin/ethtool eth0 | grep Link
        Link detected: yes
[bushi@rose keyboard]$ sudo /sbin/ethtool eth1 | grep Link
        Link detected: yes
[bushi@rose keyboard]$ sudo /sbin/ethtool eth2 | grep Link
        Link detected: no
[bushi@rose keyboard]$

shell script 로 하려면 계속 폴링하는 수 밖에 없겠습니다.
netlink/hotplug 로는 아무런 이벤트도 날아오지 않더군요.
OTL
송효진의 이미지

cat /proc/interrupts 해보곤 멍하니 처다보고만 있습니다.;;;
뭘 봐야할지 모르겠네요.

eth 이벤트가 없다면 그냥 두는게 좋겠네요.

감사합니다. :D

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

ganadist의 이미지

이더넷 드라이버가 MII를 지원하면 다음과 같이 사용 할 수도 있습니다.

# mii-tool -w
11:24:20 eth0: negotiated 100baseTx-FD flow-control, link ok
11:24:23 eth0: no link
11:24:28 eth0: negotiated 100baseTx-FD flow-control, link ok

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

bushi의 이미지

cat /proc/interrupts
는 노트북 Fn 조합키 때문에 언급했습니다.

댓글에 적었다시피 유저영역으로 키코드가 날아오지 않는다고 해서,
커널이 아무런 이벤트도 감지하지 못했다는 뜻은 아닙니다.
atkbd... PS/2 키보드 인터럽트는 i8042 라는 이름을 가진 놈을 주목하시면 됩니다.
하나는 마우스고 다른 하나는 키보드입니다.

Fn 키조합이 atkbd 와는 전혀 상관없는 다른 경로로 전달된다면,
그에 맞는 드라이버를 제작해서 올리기 전에는 감지할 수 없습니다.

OTL

ganadist의 이미지

bushi wrote:
netlink/hotplug 로는 아무런 이벤트도 날아오지 않더군요.

NetworkManager의 소스를 보니 netlink로 모니터링 하는 것 같습니다.

드라이버에 따라서 ethertool이나 mii로 모니터링 되는지 확인한다음 모니터링해서 다음과 같은 콜백으로 연결 여부를 확인하네요.

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

bushi의 이미지

udev 혹은 hotplug 에 의해 처리될 수 있는 NETLINK_KOBJECT_UEVENT 로는 아무 것도 날아오지 않습니다.
NETLINK_ROUTE, NETLINK_INET_DIAG, NETLINK_GENERIC 로 뭐가 날아올지는 모르겠는데,
이건 script 에서는 처리할 수 없으니 제껴도 상관없을 것 같습니다.

mii-tool 은 비추천합니다.
장치가 이를 지원하는 가도 보장못하고,
설령 한다해도 MAC 을 지나 PHY 에 있는 MII 레지스터를 직접 읽는 방식이라 구비구비 돌아가게 됩니다.

사실, 그러고보면 ether-tool 도 마찬가지긴 합니다.
드라이버에 의해 가공 처리된 정보를 읽기 때문에 장치 의존성은 떨어지지만,
이게 실제로 h/w 상태를 그대로 반영할런지는 의문입니다.
/sys/class/net/eth0/carrier 의 정보랑 비슷한 경우겠죠.

OTL

primewizard의 이미지

도움이 될는지는 모르겠습니다만 참고하세요.
http://miro.tistory.com/28

송효진의 이미지

해주신 조언들을 바탕으로 꽤 쓸만한게 나온듯 하여 위키에 정리하였습니다.
안잡히는 fn 키 조합은 acpi 이벤트 커널모듈을 직접 작성해야 하는것 같아서 GG ㅠㅠ

http://wiki.kldp.org/wiki.php/GentooLaptop

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.