Linux2009. 9. 14. 16:08
간단하게 네트워크 공유 상태를 갱신해주는 녀석이라고 보면된다.
zeroconfig 라고도 하는데 음.. 아무튼 samba에서도 연관이 있으니, avahi 데몬은 켜주는게 쓰게 편할듯 하다.

[링크 : http://www.asianux.co.kr/support/updateView.php?no=1526]
[링크 : http://en.wikipedia.org/wiki/Avahi_%28software%29]
Posted by 구차니
Linux2009. 9. 11. 19:13
cat /proc/filesystems

proc 파일 시스템에
filesystems라는 파일에 사용가능한 FS-type이 있다고 한다.

]$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cpuset
nodev   binfmt_misc
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   usbfs
nodev   pipefs
nodev   futexfs
nodev   tmpfs
nodev   inotifyfs
nodev   eventpollfs
nodev   devpts
        ext2
nodev   ramfs
        iso9660
nodev   mqueue
        ext3
nodev   rpc_pipefs
nodev   autofs
nodev   nfsd

위의 내용은 FC6 2.6.18-1.2796.fc6xen의 filesystem 내용이다.
음.. CIFS나 SMB가 없는데 어떻게 삼바를 마운트 하나 -ㅁ-?
[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/proc/GetSMSInfo]


아무튼, 그리고 저기의 nodev의 의미는 실제장치명을 필요로 하지 않는 녀석이라고 한다.
머.. mount시에 일반적으로
mount -o "타입" "장치명" "마운트될 위치"
으로 실행이 되는데, 굳이 장치명을 기술하지 않아도 되는 녀석이라는 의미이려나?
[링크 : http://kldp.org/node/92546]
Posted by 구차니
Linux2009. 9. 2. 17:59
$ man grep
       -v, --invert-match
              Invert the sense of matching, to select non-matching lines.

-v 옵션은 invert match로 문장을 포함하지 않는 줄을 출력해준다.


사용예 : 주석이 아닌 줄만 찾기
Posted by 구차니
Linux/Ubuntu2009. 9. 1. 09:34
apt-get은 네트워크 검색을 하기 때문에(물론 하드에서 받아 놓지만) 필요한 패키지를 검색할 수 있다.
물론 GUI 프론트 엔드인, Synaptic Package Manager로 해도 되지만, 리눅스의 기본은 콘솔아니겠는가!!! ㅋㅋㅋ

검색시에는 apt-cache 라는 명령어를 사용한다.
 $sudo apt-cache search "패키지 이름"

설치시에는 apt-get 이라는 명령이를 사용한다.
 $sudo apt-get install "패키지 이름"

[링크 : http://kldp.org/node/55227]

[링크 : http://linux.die.net/man/8/apt-get]
[링크 : http://linux.die.net/man/8/apt-cache]
Posted by 구차니
Linux/Ubuntu2009. 8. 31. 13:40
fedora용 패키지라서 그런지 rpm으로 나와있는데, 이녀석들을 설치하려고 하니
rpm: To install rpm packages on Debian systems, use alien. See README.Debian.
error: cannot open Packages index using db3 - No such file or directory (2)
error: cannot open Packages database in /var/lib/rpm
이런 에러를 발생시킨다.

일단 rpm을 위한 DB가 존재하지 않아서인데
이를 설치하기 위해서는
$ sudo mkdir /var/lib/rpm
$ sudo rpm --initdb
를 실행하고 나서 하면된다. --initdb 명령의 경우에는, 아무런 출력 메시지가 없었다.



아래와 같은 에러가 발생하면서 설치가 안된다면
error: can't create transaction lock on /var/lib/rpm/__db.000
sudo rpm 으로 실행하면 된다.

[링크 : http://kldp.org/node/53463]



alien 이라는 debian 프로그램은, rpm을 deb로 변환해준다고 한다.

[링크 : http://embraceubuntu.com/2005/09/23/installing-using-an-rpm-file/]

'Linux > Ubuntu' 카테고리의 다른 글

gnome panel에 온도 정보 넣기  (0) 2009.11.02
apt-cache 패키지 검색 하기  (0) 2009.09.01
ubuntu에서 compiz 돌리기  (2) 2009.06.02
우분투에는 iptable 대신 ufw가 있다!  (2) 2009.05.07
ubuntu에 cvs / svn 설치하기  (0) 2009.04.30
Posted by 구차니
Linux2009. 8. 21. 19:50
임베디드 시스템은 대개 모니터가 없기 때문에
시리얼 포트를 console로 사용한다.

그런 이유로, 시리얼 포트는 Terminal 모드로 열리게 되고,
그 시리얼 포트는 공용으로 사용하게 된다.

이러한 터미널 모드로 열린 녀석을 점유하기 위해서는 다른 녀석들의 프로세스를 죽이는 방법뿐이라는데..
상대는 셸과 커널이다... 죽이면 죽는다.. OTL
게다가 respawn 될테니 이길수가 없다...!!


아무튼 이러한 상황에서 /dev/ttyAS0 에서
프로그램을 실행하여 시리얼 입력을 받게 할경우,

원인은 모르겠지만 "\t\n\n" 을 먼저 보낸 후, 메시지를 보내야만 받는 현상이 있었다.
물론 100% 받는것도 아니고 대략 50~70% 정도의 응답을 하고, 프로그램적으로 하지 않고
손으로 직접입력하면 탭하나에 문자 하나 겨우 입력하는 수준이다. 그것도 타이밍을 맞추어야 겨우 하나 들어간다.


[링크 : http://linux.about.com/od/ttl_howto/a/hwtttl17t17.htm]
Posted by 구차니
Linux2009. 8. 10. 13:28
SYNOPSIS
       ifconfig [interface]
       ifconfig interface [aftype] options | address ...

       [-]broadcast [addr]
              If  the  address argument is given, set the protocol broadcast address for this interface.  Otherwise, set
              (or clear) the IFF_BROADCAST flag for the interface.

ifconfig에서 보면은
# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet addr:123.45.67.8  Bcast:123.45.127.255  Mask:255.255.192.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8829 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:607276 (593.0 KiB)  TX bytes:1480 (1.4 KiB)
          Interrupt:133

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
위와 같이 나오는데 Bcast라는 항목이 존재한다.
물론 ifconfig에서 설정을 해줄 수도 있지만, 굳이 설정하지 않으면
자동으로 계산해서 값을 넣어준다.

결론 : 그냥 ip와 netmask만 설정하면 된다.
Posted by 구차니
Linux2009. 8. 7. 18:39
사소하지만 ifconfig로 설정할때 필요 하다보니.. 흐음..

]$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: 0000::0000:0000:0000:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5359086 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5852086 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1210879185 (1.1 GiB)  TX bytes:3916944358 (3.6 GiB)
          Interrupt:20 Base address:0x6000

inet은 192.168.10.10 이고
Mask는 255.255.255.0 이다
Bcast는 192.168.10.255 이다.

일단 inet과 Bcast는 가장 끝자리 차이인데
Mask에서 가려진 부분만 255로 변경되었다.
다르게 말하자면, inet 과 Mask를 and 연산으로 한것에서 0 부분이 255로 바뀐 셈인데
이걸 계산으로 간단하게 풀자면

inet | (Mask ^ 0xFFFFFFFF)

로 계산이 된다.
마스크를 XOR 연산으로 전부 뒤집어 주면
255.255.255.0 은 0.0.0.255 가 되며
이것을 IP와 or 연산을 하게 되면
192.168.10.255가 나오게 된다.

ip address 10.75.20.201/16 is 10.75.255.255

[링크 : http://www.experts-exchange.com/Networking/Linux_Networking/Q_10255126.html]

broadcast address

    The broadcast address is usually made up from the network number by setting all bits of the host part. Some IP implementations (systems derived from BSD 4.2, for instance) use a different scheme in which all host part bits are cleared instead. The broadcast option adapts to these strange environments. If a broadcast address has been set, ifconfig displays the BROADCAST flag.

[링크 : http://tldp.org/LDP/nag2/x-087-2-iface.ifconfig.html]

Posted by 구차니
Linux2009. 8. 7. 16:08
머.. 스크립트라고 해서 다를 건 없었다.

그냥 execl("경로 + 파일명", "파일명", "인자1", ... , NULL);

예를 들어
/root/test.sh를 실행하고 eth0 down 이라는 인자가 필요 하다면

execl("/root/test.sh", "test.sh", "eth0", "down", NULL);
이렇게 하면된다.



참 쉽죠잉?

[링크 : http://www.gnu.org/software/libc/manual/html_node/Process-Creation-Example.html]
[링크 : http://www.opengroup.org/onlinepubs/009695399/functions/exec.html]

'Linux' 카테고리의 다른 글

ifconfig broadcast 설정 안해도 된다!  (0) 2009.08.10
ifconfig Bcast 계산방법  (0) 2009.08.07
busybox route 명령어  (0) 2009.08.06
grep -r 옵션은 주의!  (0) 2009.08.06
쉘스크립트 - 변수 / 변수 치환  (2) 2009.08.04
Posted by 구차니
Linux2009. 8. 6. 17:22
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
default         192.168.10.1    0.0.0.0         UG    0      0        0 eth0

route 명령은 라우팅 테이블에 추가/삭제를 하는데 사용된다.
일단 눈에 들어 오는것은 Flags로 U / UG 라는 것이 있다.

       Flags  Possible flags include
              U (route is up)
              H (target is a host)
              G (use gateway)
              R (reinstate route for dynamic routing)
              D (dynamically installed by daemon or redirect)
              M (modified from routing daemon or redirect)
              A (installed by addrconf)
              C (cache entry)
              !  (reject route)

이러한 의미인데, UG라고 되어 있으면, route is up / use gateway라는 의미이다.
간단하게, 이 녀석이 게이트웨이라는 의미로 받아들이면 될 듯 하다.

아무튼,
ip route flush all로 모든 라우팅 테이블을 비우고 나서
route add default dev eth0를 하면

# route add default dev eth0
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     0      0        0 eth0

이렇게 Genmask 값도 다르고, Flags도 U로 체크가 된다.

아무튼 의도대로 UG가 찍히게 하려면,
조금은 거리가 멀어 보이는 ifconfig를 이용해야 한다.

udhcpc의 default.script 내용인데
#!/bin/sh
# Sample udhcpc renew script

RESOLV_CONF="/etc/resolv.conf"

[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"

/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

if [ -n "$router" ]
then
        echo "deleting routers"
        while /sbin/route del default gw 0.0.0.0 dev $interface
        do :
        done

        metric=0
        for i in $router
        do
                /sbin/route add default gw $i dev $interface metric $((metric++))
        done
fi

이런식으로 라우팅 테이블을 추가하게 된다.



결론 : IP 관련 설정은 ifconfig - route 순으로 진행하면 된다.

----
2011.11.08 추가
여기서보면 flag 상태가 있는데 여기서 flag값의 의미는 다음과 같습니다.

U = Route is "UP"
H = Route is for a single host
G = Route requires a hop across a gateway

즉 다시 말씀드리자면 UP은 destination까지의 경로가 살아있다는 얘기입니다. 거의 대부분은 다 UP상태입니다. 그리고 H는 destination이 network 주소가 아니라 single host일 경우가 됩니다. 그리고 G는 destination까지의 경로가 router를 거친다는것을 의미합니다. 그리고 U만 있는경우는 destination이 network주소일 경우입니다.
 
[링크 : http://h30499.www3.hp.com/t5/HP-UX/route-add-및-delete-에-관한-자료/td-p/1165815?profile.language=ko ] 



Posted by 구차니