우리는 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
이 보기는 혼란스럽습니다.
나는 tig
git의 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
이제 내부 커널 트리에 적용할 패치가 생겼습니다.