Programming/Linux_Kernel
kernel 에서 user process 실행하기
decdream
2010. 10. 15. 16:42
call_usermodehelper 라는 함수를 사용하면 됩니다.
envp 의 0에 실행파일의 path 가 들어가는것을 눈여겨 보시기 바랍니다.
#define NAND_DUMP_MAKE_FILE_APPL_PATH "/bin/nand_log_dump_file"
#define DEFAULT_LOG_FILE_SAVE_PATH "--to=/mnt/ums/.tmp/debug/"
char *argv[] = {NAND_DUMP_MAKE_FILE_APPL_PATH, DEFAULT_LOG_FILE_SAVE_PATH, NULL};
char *envp[] = { "HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL };
rst = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);
#define DEFAULT_LOG_FILE_SAVE_PATH "--to=/mnt/ums/.tmp/debug/"
char *argv[] = {NAND_DUMP_MAKE_FILE_APPL_PATH, DEFAULT_LOG_FILE_SAVE_PATH, NULL};
char *envp[] = { "HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL };
rst = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);