우선 저는 커널 해커가 아니기 때문에 용어가 틀렸다면 사과드립니다.
둘째, 우리 환경을 설명해야 합니다. 작은 단일 보드 컴퓨터(아니요,아니요(무관심한) SoC 제조업체가 제공한 SDK/개발 스택을 기반으로 Linux/Busybox를 실행하고 기본적으로 대규모 그룹에 의해 함께 해킹되는 Raspberry pi(비슷한 버전)엘보니아 코드 슬레이브제로 지원.
구식 커널 빌드 및 Busybox는 일반적으로 사용되는 최신 Linux 명령/도구에 액세스할 수 없음을 의미하며 modprobe
이는 여기서 특히 중요합니다.
우리는 대부분의 WTFery를 격퇴하기 위해 최선을 다했지만 여전히 진행 중인 작업입니다.
지금 우리가 있는 곳은 다음과 같습니다.
필요하지 않은 항목을 제거/비활성화하여 커널 빌드를 정리하려고 시도하는 동안 문제가 발생했습니다. 필요하지 않은 일부 항목(예: CONFIG_DEBUG_FS)을 비활성화하면 전체 힙 모듈이 로드되지 않습니다( insmod
부팅 프로세스 포함) 예를 들면 다음과 같습니다.
[ 16.490979] loop: disagrees about version of symbol set_blocksize
[ 16.497116] loop: Unknown symbol set_blocksize (err -22)
[ 16.503304] loop: disagrees about version of symbol ioctl_by_bdev
[ 16.509440] loop: Unknown symbol ioctl_by_bdev (err -22)
[ 16.515656] loop: disagrees about version of symbol set_user_nice
[ 16.521898] loop: Unknown symbol set_user_nice (err -22)
[ 16.527686] loop: disagrees about version of symbol add_disk
문제는 커널 자체가 장치 플래시 메모리의 한 파티션에 상주하는 반면 사용자 파일 시스템(Busybox 및 앞서 언급한 모듈 포함)과 플래시 업그레이드 도구는 다른 파티션에 상주한다는 것입니다. 업그레이드 루틴은 한 번에 하나의 파티션을 다운로드하고 새로 고칩니다.
따라서 Catch-22 상황이 발생합니다.업데이트하면커널 이미지, .ko 모듈로 인해 마더보드가 부팅되지 않을 위험이 있습니다.파일 시스템 이미지아직 업데이트되지 않았지만 파일 시스템 이미지를 업데이트하면 마더보드가 부팅되지 않을 위험이 있습니다.핵심업데이트되지 않았습니다.
이 문제를 해결할 수 있는 몇 가지 방법이 있지만 고객이 지침을 따르지 않아 마더보드가 파손될 수 있는 기회가 생길 수 있습니다(해당하는 경우).가능한깨뜨려, 누군가~ 할 것이다관리하세요).
그래서 내 질문은 다음과 같습니다
(어떻게) 커널을 수정하거나(주로 일부 항목 제거) 모듈을 다시 빌드하여 커널 + 모듈 등의 한 버전에서 최신 버전으로 이동할 수 있습니까?아니요일시적인 심각한 파손 및 고장 위험이 있습니까?