디바이스 드라이버
글 수 70
2014.03.28 15:17:55 (*.134.169.166)
12060
커널 부팅 후 NAND Flash의 mtd에 접근할 경우에 일반적으로 Permission denied 이 발생합니다.
이것은 NAND 의 mtd 파티션 설정시 mask_flags 에 의하여 다음과 같은 설정을 사용기 때문입니다.
리눅스 커널의 include/mtd/mtd-abi.h에 define 되어 있습니다.
// Some common devices / combinations of capabilities
#define MTD_CAP_ROM 0
#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE)
#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE)
#define MTD_CAP_NANDFLASH (MTD_WRITEABLE)
기본적으로 MTD 파티션 설정시 " .mask_flags = MTD_CAP_NANDFLASH, " 로 되어 있습니다.
이를 경우 MTD_WRITEABLE로 마스크 되기 때문에 쓰기 금지가 설정이 되어 커널 부팅 후 mtd 에 접근할 경우 Permission denied 이 발생합니다.
" .mask_flags = 0, " 으로 설정하면 읽기, 쓰기가 모두 가능하게 됩니다.