Linux 커널 패치 및 개발 소스 트리

Linux 커널 패치 및 개발 소스 트리

우리는 linux3.12를 사용하고 있는데, 이는 이후 버전의 Linux에서 수정된 LED 드라이버에 버그가 있었습니다. Linux 3.15에서 드라이버 변경 사항이 확인되었습니다.리눅스 상호 참조

이제 내 질문은 이러한 변경을 초래한 패치를 찾는 방법입니다.

또 다른 질문은 kernel-3.14.18 트리와 같은 개발 커널 소스 트리에 액세스하는 방법입니다.

답변1

이 변경을 일으킨 패치를 어떻게 찾을 수 있나요?

cgit을 사용하여 이동여기그리고 클릭나무. 찾고 있는 파일을 찾아 클릭하세요.통나무. 그러면 파일의 변경 사항을 볼 수 있습니다.

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/drivers/leds/led-core.c

Linux 커널 소스 코드를 다운로드하려면 kernel.org를 방문하여 버전을 선택하세요.

불안정한 개발 트리는 다음과 같습니다. https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/

답변2

커널 소스 코드 얻기

안정적인 커널 트리를 복제합니다.

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

다음과 같이 변경하세요.

cd linux-stable

오류가 수정된 태그를 확인하세요.

git checkout v3.15

찾고 있는 파일이 무엇인지 drivers/leds/led-core.c, 버그가 수정된 위치(3.15) 및 손상된 위치(3.12)를 알고 있으므로 여기에서 계속할 수 있는 몇 가지 방법이 있습니다.

탓하다

를 사용할 수 있지만 git blame drivers/leds/led-core.c이 보기는 혼란스럽습니다.

나는 tiggit의 Curses 기반 인터페이스를 선호하므로 다음과 같이 하십시오.

tig blame drivers/leds/led-core.c

파일의 각 줄과 해당 커밋을 대화형으로 볼 수 있습니다. 화살표 키를 사용하여 위아래로 이동한 후 다음을 사용할 수 있습니다.입력하다. 그만두다.

42-46행에서 LXR에 링크된 패치를 볼 수 있습니다.

2014-02-04 00:11 Stefan Sørensen 8d82fef         /* never on - just set to off */
2014-02-04 00:11 Stefan Sørensen 8d82fef         if (!delay_on) {
2014-02-04 00:11 Stefan Sørensen 8d82fef                 __led_set_brightness(led_cdev, LED_OFF);
2012-03-23 15:02 Bryan Wu        a403d93                 return;
2014-02-04 00:11 Stefan Sørensen 8d82fef         }

그래서 당신은 언론을 찾고 있습니다 8d82fef.입력하다이 선 중 하나를 건너면 패치를 열 수 있습니다.

이는 최신 패치가 많이 포함된 대용량 파일에 더 유용합니다.

통나무

git log날짜 범위가 필요하므로 "좋음" 및 "나쁨" 레이블을 보면 3.15와 3.12를 합친 내용은 다음과 같습니다.

commit 1860e379875dfe7271c649058aeddffe5afd9d0d
Author: Linus Torvalds <[email protected]>
Date:   Sun Jun 8 11:19:54 2014 -0700

    Linux 3.15

그리고

commit 5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52
Author: Linus Torvalds <[email protected]>
Date:   Sun Nov 3 15:41:51 2013 -0800

    Linux 3.12

따라서 2013년 11월 2일부터 2014년 6월 8일 사이의 모든 것이 패치입니다.

문제의 파일에 대한 로그를 확인하세요.

git log drivers/leds/led-core.c

이 날짜 범위와 일치하는 유일한 패치는 최신 패치입니다.

commit 8d82fef8bbee588d071372eb02439d2053b4bfe4
Author: Stefan Sørensen <[email protected]>
Date:   Tue Feb 4 00:11:42 2014 -0800

    leds: Turn off led if blinking is disabled

반점

이제 문제를 해결한 커밋을 찾고 상위 커밋과 비교하여 해당 커밋의 패치를 가져오기 위해 다음 두 가지 방법 중 하나를 사용했습니다.

git diff 8d82fef8^ 8d82fef8 drivers/leds/led-core.c

필요한 경우 파일로 전송할 수 있습니다.

git diff 8d82fef8^ 8d82fef8 drivers/leds/led-core.c > led-blinking-fix.patch

이제 내부 커널 트리에 적용할 패치가 생겼습니다.

관련 정보