x86 장치에서 실행되는 빌드 루트 생성 커널(3.6.11)과 루트 파일 시스템이 있습니다. 이는 busybox를 사용하며 이를 사용하여 BIOS 하드웨어 시계를 설정하려고 합니다 hwclock
. 전화할 때마다 다음 오류가 발생합니다 hwclock
.
can't open '/dev/misc/rtc': No such file or directory
/dev/rtc
내 시스템에는 장치 파일이 하나만 있기 때문에 이것을 이해합니다 . 그러나 사용하여 열려고 시도했지만 메시지와 함께 실패했음을 strace
알 수 있습니다.hwclock
/dev/rtc
open("/dev/rtc",O_READONLY|O_LARGEFILE) = -1 ENODEV (No such device)
/dev/rtcN
/proc/driver/rtc
커널 구성의 장치 드라이버 섹션에서 실시간 시계에 대한 커널 구성을 확인한 후 (문자 장치) 및 (rtc0에 대한 procfs) 옵션을 활성화했음을 알 수 있습니다 . 또한 PC 스타일의 "CMOS" 플랫폼 RTC 드라이버만 선택했습니다. 그러나 여기 도움말 섹션에서 다음을 읽었습니다.
모든 PC 또는 ACPI 기반 시스템은 물론 일부 기타 마더보드의 실시간 시계에 대한 직접 지원을 받으려면 여기에서 "예"를 선택하십시오. 특히 PC 사우스 브리지, DS12887 또는 M48T86, 일부 다기능 또는 LPC 버스 칩 등과 호환되는 원본 MC146818입니다.
시스템은 이 드라이버가 사용하는 플랫폼 장치를 정의해야 합니다. 그렇지 않으면 해당 장치에 액세스할 수 없습니다.
왜 "/dev/rtc" 파일을 열 수 없는지 혼란스럽습니다. 그것은 존재하며 내가 전화하면 출력을 얻습니다.
cat /proc/driver/rtc
장치를 등록하기 위해 수행해야 할 다른 작업이 있습니까? 드라이버를 모듈로 변경하고 insmod
부팅 후 작업을 수행할 수도 있지만 그것이 좋은 생각인지는 모르겠습니다. 누구든지 이 문제를 해결하는 방법을 제안하거나 문제가 무엇인지에 대한 자세한 내용을 얻을 수 있습니까?
편집하다온라인에서 읽은 후 실행하여 dmesg | grep -i rtc
다음과 같은 결과를 얻었습니다.
[ ... ] RTC time: 16:01:07, date 09/24/13
[ ... ] rtc_cmos 00:02: RTC can wake from S4
[ ... ] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[ ... ] rtc0: alarms up to one year, y3k, 114 bytes nvram
/dev/rtc0
이것은 내가 왜 정적 장치 테이블을 사용하고 있는지 궁금합니다 . 그렇다면 그것을 사용하지 않기 때문에 장치 노드를 buildroot
제공하기 위해 변경해야 합니까 ?/dev/rtc0
udev
답변1
증상 중 일부는 설명할 수 있지만 출근 방법은 말씀드릴 수 없습니다 hwclock
.
단어의 의미를 혼동하는 경우가 많습니다.장비유닉스 환경에서. 이는 다음을 의미할 수 있습니다.
- 문자 또는 블록 장치 유형의 파일 시스템 항목입니다.
- 이 파일 시스템 노드 뒤에 있는 커널 엔터티입니다.
- 하드웨어 버스에 연결된 논리적 개체입니다.
- 하드웨어 구성 요소를 물리적으로 분리합니다.
"No such device(해당 장치 없음)" 메시지에 다음 단어가 표시됩니다.장비커널 엔터티를 나타냅니다. 장치를 등록한 커널 엔터티가 없는 것 같습니다 /dev/rtc
. dmesg 출력에 따르면 CMOS RTC 드라이버가 커널에 존재하며 RTC가 발견되어 번호가 0으로 지정되었습니다.
장치(역시 커널 엔터티의 의미에서)는 장치 파일(위의 첫 번째 의미)을 통해 액세스되며, 식별할 유형(문자 또는 장치), 주요 번호 및 부 번호로 식별됩니다. 이름은 커널과 아무 관련이 없으므로 올바른 파일이 발견되는 한 /dev/rtc
vs에는 문제가 되지 않습니다 . 장치 번호가 올바른지 확인하십시오./dev/rtc0
hwclock
/dev/rtc
crw------- 1 root root 254, 0 Sep 24 13:29 /dev/rtc
/dev/rtc
심볼릭 링크라면 에 대한 링크여야 하며 , rtc0
위와 같이 장치 번호(254,0)를 가져야 합니다.