Language:EN / NE / AE / DE / IT

안녕하세요.


아래의 글은 하기 게시글의 답변입니다.


http://cafe.naver.com/mk802/26148





기본적인 커널 파라미터 값 적용


기본적으로는 echo 명령이나 혹은 sysctl 명령으로 적용합니다.


root@AOL-Debian:~# echo 1 > /proc/sys/net/ipv4/ip_forward


root@AOL-Debian:~# cat /proc/sys/net/ipv4/ip_forward 

1


root@AOL-Debian:~# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

root@AOL-Debian:~# sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0


sysctl -w 내용 : 커널 파라미터 바로 적용하기

sysctl -a : 적용된 커널 파라미터 불러오기

sysctl -a | grep 내용 : 결과에서 `내용`을 포함한 줄만 표시


sysctl -p : /etc/sysctl.conf 와 /etc/sysctl.d 에 있는 설정파일을 읽어서 바로 커널 파라미터에 반영


이런식으로 진행이 됩니다.





/etc/sysctl.conf 파일 수정하기


아래와 같이 수정하시면 되겠습니다.


root@AOL-Debian:~# nano /etc/sysctl.conf


# network speed config

net.ipv4.tcp_window_scaling = 1

net.core.rmem_default = 253952

net.core.wmem_default = 253952

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_rmem = 253952 253952 16777216

net.ipv4.tcp_wmem = 253952 253952 16777216


그리고 값을 반영하기 위해서는 sysctl -p 입력하시면 되겠습니다.


그러면 반영된 값이 보입니다.


root@AOL-Debian:~# sysctl -p

net.ipv4.tcp_window_scaling = 1

net.core.rmem_default = 253952

net.core.wmem_default = 253952

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_rmem = 253952 253952 16777216

net.ipv4.tcp_wmem = 253952 253952 16777216





부팅시 반영이 안되는 문제 해결하기


U5PVR 의 리눅스는 일종의 컨테이너 개념으로 동작함으로 systemd 데몬이 실행중이지 않습니다.


본래 systemd 데몬이 실행되면서 한번만 부팅과정에 커널 파라미터를 지정하도록 되어 있습니다.


아래의 두가지 방법으로 해결이 가능합니다.


1. /etc/rc.local 에서 등록하는 방법


root@AOL-Debian:~# nano /etc/rc.local


sysctl --system


2. 리눅스 펌웨어가 시작될 때 한번 적용하는 방법


root@AOL-Debian:~# ln -s /etc/init.d/procps /etc/rc3.d/S01procps


실제로는 /etc/init.d/procps start 명령 혹은 service procps start 명령이랑 같습니다.


일종의 sysctl --system 명령입니다.


이 명령을 부팅시 시작하기 위해서는 rc3 부팅 단계에 파일이 심링크가 되어 있어야합니다.


그래서 상기와 같이 심링크를 해 줍니다.


(U5PVR 의 부팅 단계는 3단계로 선택되어 있습니다.)


상기 방법은 작동하지 않습니다.


감사합니다. 


다음 패치때 반영하도록 하겠습니다.