linux kernel 커널의 bootargs (kernel parameter) 를 수정 하여 커널을 재빌드 하지 않고도, 일정부분 수정이 가능하다.
커널의 bootarg (kernel parameter) 지원내용
각 커널마다 사용할수있는 커널 파라미터가 다르다.
사용가능한 커널 파라미터는 커널 정식문서 (
관련 문서의 위치 : Docs
> The Linux kernel user’s and administrator’s guide
> The kernel’s command-line parameters
- 커널 v4.14 버젼의 경우 다음의 url 에서 확인이가능하다.
- https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html
- 각 커널버젼마다 문서가 다르니,
v4.14
부분을 각자의 커널버젼에 맞게 직접 url 을 수정하여 입력해도된다.
bootarg 수정하기
각 시스템마다 부트로더가 다를테지만, 대부분의 임베디드 시스템에서는 u-boot
에서 대부분 수정하는것이 대부분일듯.
u-boot 환경변수 설정하기
다음과 같이 boot args 를 확인가능하다.
env print
이때 출력되는 내용중에 bootargs
의 내용을 확인한다.
수정은 다음과 같이한다.
setenv bootargs "xxx"
saveee
적당하게 수정을 한 후에 saveee
명령어를 통해서 u-boot 적용사항을 저장한다. (저장하지 않으면 재부팅시에 사라진다.)
각 시스템마다 다르긴한데... 항상
bootargs
환경변수가 적용되는것이 아니다. 멀티부팅 시스템에서는mmcargs
,sdbargs
등과 같이 좀 다른 환경변수를 쓰기도 한다. 각 시스템에서 어떤args
를 쓰는지 확인해볼것
bootarg 확인하기
정상적으로 적용이 되었다면 부팅후 cat /proc/cmdline
명령어로 확인이 가능하다.
> cat /proc/cmdline
console=ttyLF0,115200 root=/dev/mmcblk0p2
bootargs
를 수정한것이 정상적으로 적용이 되었다면, /proc/cmdline
파일에 적용이 되어있을것이다. 만약, 미적용된다면 다른 환경변수에 세팅을 해야한다.
각 시스템마다 다르긴한데... 항상
bootargs
환경변수가 적용되는것이 아니다. 멀티부팅 시스템에서는mmcargs
,sdbargs
등과 같이 좀 다른 환경변수를 쓰기도 한다. 각 시스템에서 어떤args
를 쓰는지 확인해볼것