Patches - Leo-Mun/UROP_SDN GitHub Wiki

Working with patches

OpenWrt Buildroot๋Š” ๊ฐ„ํŽธํ•œ ํŒจ์น˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ€ผํŠธ(Quilt)๋ฅผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” ์ƒˆ ํŒจ์น˜ ์ถ”๊ฐ€ ๋˜๋Š” ๊ธฐ์กด ํŒจ์น˜ ํŽธ์ง‘๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ํŒจ์น˜ ์ž‘์—…์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Prepare quilt configuration

Quilt๊ฐ€ OpenWrts ์„ ํ˜ธ ํ˜•์‹์œผ๋กœ ํŒจ์น˜๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒํ•˜๋ ค๋ฉด ๊ณตํ†ต diff ๋ฐ ํŒจ์น˜ ์˜ต์…˜์„ ํฌํ•จํ•˜๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ .quiltrc๋ฅผ ๋กœ์ปฌ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

cat > ~/.quiltrc
QUILT_DIFF_ARGS="--no-timestamps --no-index -p ab --color=auto"
QUILT_REFRESH_ARGS="--no-timestamps --no-index -p ab"
QUILT_SERIES_ARGS="--color=auto"
QUILT_PATCH_OPTS="--unified"
QUILT_DIFF_OPTS="-p"
EDITOR="nano"

Adding a new patch

๊ธฐ์กด ํŒจํ‚ค์ง€ ์˜ˆ์ œ์— ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ํŒจ์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ค€๋น„ํ•˜์‹ญ์‹œ์˜ค.

 make package/example/{clean,prepare} V=s QUILT=1 

ํ˜ธ์ŠคํŠธ ์ธก ํŒจํ‚ค์ง€์˜ ๊ฒฝ์šฐ make ๋Œ€์ƒ์„ ์ž์„ธํžˆ ์„ค๋ช… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

make package/example/host/{clean,prepare} V=s QUILT=1

์ด๋ ‡๊ฒŒํ•˜๋ฉด ์†Œ์Šค ํƒ€๋ณผ์˜ ์••์ถ•์„ ํ’€๊ณ  ๊ธฐ์กด ํŒจ์น˜๋ฅผ ํ€ผํŠธ ํŒจ์น˜ ์‹œ๋ฆฌ์ฆˆ (์žˆ๋Š” ๊ฒฝ์šฐ)๋กœ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ถœ๋ ฅ์—๋Š” ์†Œ์Šค๊ฐ€ ์ถ”์ถœ ๋œ ์œ„์น˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ค€๋น„๋œ ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

cd build_dir/target-*/example-*

์ฐธ๊ณ  : build_dir / target - * / BUILD_VARIANT / example- *์—์„œ ์†Œ์Šค๋ฅผ ์ถ”์ถœ ํ•  ๋•Œ ๋ ˆ๋ฒจ์„ ํ•œ ๋‹จ๊ณ„ ๋‚ฎ์ถ”์–ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํŒจํ‚ค์ง€์˜ ์—ฌ๋Ÿฌ ๋นŒ๋“œ ๋ณ€ํ˜•์ด Makefile์— ์ •์˜ ๋œ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

quilt push์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด์˜ ๋ชจ๋“  ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜์‹ญ์‹œ์˜ค.

quilt push -a

quilt ์ƒˆ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๋นˆ ํŒจ์น˜ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

quilt new 010-main_code_fix.patch
  • ์ด๋ฆ„์€ ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผํ•˜๋ฉฐ ๊ทธ ๋’ค์— ํ•˜์ดํ”ˆ๊ณผ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค
  • ์„ ํƒํ•œ ์ˆ˜๋Š” ๊ธฐ์กด ํŒจ์น˜๋ณด๋‹ค ๋†’์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ํŒจ์น˜ ๋ชฉ๋ก์„ ๋ณด๋ ค๋ฉด ํ€ผํŠธ ๊ณ„์—ด์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
  • ํŒจ์น˜ ํŒŒ์ผ ์ด๋ฆ„์€ ์งง์•„์•ผํ•˜์ง€๋งŒ ์„ค๋ช…์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋นˆ ํŒจ์น˜๋ฅผ ์ž‘์„ฑํ•œ ํ›„์—๋Š” ํŽธ์ง‘ ํ•  ํŒŒ์ผ์„ ํŒŒ์ผ๊ณผ ์—ฐ๊ด€์‹œ์ผœ์•ผํ•ฉ๋‹ˆ๋‹ค. ํ€ผํŠธ ์ถ”๊ฐ€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค - ์ผ๋‹จ ํŒŒ์ผ์ด ์ถ”๊ฐ€๋˜๋ฉด ํ‰์†Œ์™€ ๊ฐ™์ด ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํŽธ์ง‘๊ธฐ์—์„œ ์—ด์–ด ๋ณธ ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋Š” quilt edit ๋ช…๋ น์ž…๋‹ˆ๋‹ค.

quilt edit src/main.c
  • src / main.c๊ฐ€ 010-main_code_fix.patch์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
  • ์ด ํŒŒ์ผ์€ .quiltrc์˜ EDITOR๋กœ ์ง€์ •๋œ ํŽธ์ง‘๊ธฐ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

ํŽธ์ง‘ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•ด ์ด๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜์‹ญ์‹œ์˜ค.

๋ณ€๊ฒฝ์ด ๋๋‚˜๋ฉด quilt diff ๋ช…๋ น์œผ๋กœ ๊ฒ€ํ†  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

quilt diff

diff๊ฐ€ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์œผ๋ฉด, ํ€ผํŠธ ์ƒˆ๋กœ ๊ณ ์นจ์„ ์ง„ํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์œผ๋กœ 010-main_code_fix.patch ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

quilt refresh

buildroot์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

cd ../../../

์ƒˆ ํŒจ์น˜ ํŒŒ์ผ์„ buildroot๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€์—์„œ update๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

make package/example/update V=s

๋งˆ์ง€๋ง‰์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.

make package/example/{clean,compile} package/index V=s

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŒจ์น˜๋ฅผ ๋‹ค์‹œ ํŽธ์ง‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ํŒจ์น˜๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Edit an existing patch

์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

make package/example/{clean,prepare} V=s QUILT=1

์ค€๋น„๋œ ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

cd build_dir/target-*/example-*

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŒจ์น˜ ๋ชฉ๋ก์„ ๋‚˜์—ดํ•˜์‹ญ์‹œ์˜ค.

quilt series

ํŽธ์ง‘ํ•ด์•ผ ํ•  ํŒจ์น˜๋กœ ์ด๋™ :

quilt push 010-main_code_fix.patch
  • ์œ ํšจํ•œ ํŒจ์น˜ ํŒŒ์ผ ์ด๋ฆ„์„ ์ „๋‹ฌํ•  ๋•Œ, ํ€ผํŠธ๋Š” ์ง€์ •๋œ ํŒจ์น˜์— ๋„๋‹ฌ ํ•  ๋•Œ๊นŒ์ง€๋งŒ ๊ณ„์—ด์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค
  • ํ™•์‹คํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ€ผํŠธ ๊ณ„์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ํŒจ์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ƒ๋‹จ์„ ํ€ผํŠธํ•˜์—ฌ ํ˜„์žฌ ์œ„์น˜๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค
  • ํ˜„์žฌ ์œ„์น˜๊ฐ€ ์›ํ•˜๋Š” ํŒจ์น˜์™€ ์ผ์น˜ํ•˜๋ฉด ํ€ผํŠธ ํŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋Œ€ ์ˆœ์„œ๋กœ ํŒจ์น˜๋ฅผ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค
  • "๊ฐ•์ œ ์‹คํ–‰"ํ‘ธ์‹œ ์˜ต์…˜ (์˜ˆ : quilt push -f 010-main_code_fix.patch)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊นจ์ง„ (์ฆ‰, ๊ฑฐ๋ถ€ ๋œ) ํŒจ์น˜๋ฅผ ๋Œ€ํ™”์‹์œผ๋กœ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

quilt edit ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจ์น˜ ๋œ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ณ  ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

quilt edit src/main.c

ํŒจ์น˜์— ํฌํ•จ๋  ํŒŒ์ผ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค

quilt files

quilt diff๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€ํ† ํ•˜์‹ญ์‹œ์˜ค.

quilt diff

diff๊ฐ€ ๊ดœ์ฐฎ์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉด ํ€ผํŠธ ์ƒˆ๋กœ ๊ณ ์นจ์„ ์ง„ํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์œผ๋กœ ํ˜„์žฌ ํŒจ์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

quilt refresh

buildroot์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

cd ../../../

์—…๋ฐ์ดํŠธ ๋œ ํŒจ์น˜ ํŒŒ์ผ์„ buildroot๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€์—์„œ update๋ฅผ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

make package/example/update V = s

๋งˆ์ง€๋ง‰์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.

package/example/{clean,compile} package/index V=s

์ปค๋„ ํŒจ์น˜ ์ถ”๊ฐ€ ๋˜๋Š” ํŽธ์ง‘

์ปค๋„ ํŒจ์น˜ ์ˆ˜์ • ํ”„๋กœ์„ธ์Šค๋Š” ํŒจํ‚ค์ง€์˜ ๊ฒฝ์šฐ์™€ ๋™์ผํ•˜๋ฉฐ make ๋Œ€์ƒ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ปค๋„์˜ ๊ฒฝ์šฐ ํŒจ์น˜ ์šฉ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์ผ๋ฐ˜ / ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์— ๊ณตํ†ต์  ์ธ ํŒจ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ํ”Œ๋žซํผ / ํ˜„์žฌ ๋Œ€์ƒ์— ๊ด€๋ จ๋œ ํŒจ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋„ ํŠธ๋ฆฌ๋ฅผ ์ค€๋น„ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

make target/linux/{clean,prepare} V=s QUILT=1

์ž์„ธ ์กฐ์ •์„ ์œ„ํ•ด ์†Œ์Šค ํŠธ๋ฆฌ๋Š” linux-architecture ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.

cd build_dir/linux-*/linux-3.*

Barrier Breaker (ํŠธ๋ ํฌ)์˜ ๊ฒฝ์šฐ, ์†Œ์Šค ํŠธ๋ฆฌ๋Š” target-architecture ์„œ๋ธŒ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค (์ž ์žฌ์ ์œผ๋กœ ์„œ๋ธŒ ํ…Œ์ด๋ธ”์ด ์žˆ์Œ).

cd build_dir/target-*/linux-*/linux-3.*

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋นŒ๋“œ ํŠธ๋ฆฌ์—์„œ buildroot ํŠธ๋ฆฌ๋กœ ๋‹ค์‹œ ์ด๋™ํ•˜๋ฉด ๋‹ค์Œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค (์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ํŠธ๋ ํฌ๋กœ ๋Œ์•„ ๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค).

make target/linux/update package/index V=s 
(:! : ์˜ฌ๋ฐ”๋ฅธ ์ ‘๋‘์‚ฌ์ธ platform/000-abc.patch ๋˜๋Š” generic/000-abc.patch๋กœ ํŒจ์น˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๊ทธ ํ›„, ์šฐ๋ฆฌ์˜ ํŒจ์น˜๊ฐ€ ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธํ•˜๊ณ ์žํ•œ๋‹ค๋ฉด, ์šฐ๋ฆฌ๋Š” ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cd ../../../../

๊ทธ๋ฆฌ๊ณ  ์ˆ˜์ •์„์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค ํด๋”๋ฅผ ๋‹ค์‹œ ์ค€๋น„ํ•˜๊ธฐ

make target/linux/{clean,prepare} V=s QUILT=1

์ด ๊ณผ์ •์—์„œ ์ ์šฉ๋œ ๋ชจ๋“  ํŒจ์น˜๊ฐ€ ํ‘œ์‹œ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํŒจ์น˜๋ฅผ ๋ฐฐ์น˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋”ฐ๋ผ generic / or platform /์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ ์šฉ๋œ ํŒจ์น˜๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€

quilt series

์ด์ „ ์„น์…˜์—์„œ ์„ค๋ช…ํ•œ๋Œ€๋กœ _make target/linux/{clean,prepare}_์„ ๋งŒ๋“  ํ›„์—

ํˆด์ฒด์ธ(Tool Chain) ํŒจ์น˜ ์ถ”๊ฐ€ ๋˜๋Š” ํŽธ์ง‘

์˜ˆ : gcc :

tool tree๋ฅผ ์ค€๋น„ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

make toolchain/gcc/{clean,prepare} V=99 QUILT=1

์†Œ์Šค ํŠธ๋ฆฌ๋Š” ์„ ํƒํ•œ lib ๋ฐ gcc์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

cd build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/gcc-4.3.3

ํŒจ์น˜๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค

make toolchain/gcc/update V=99

ํŒจ์น˜ ์ƒˆ๋กœ ๊ณ ์นจ

ํŒจ์น˜๋œ ํŒจํ‚ค์ง€ (๋˜๋Š” ์ปค๋„)๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋ฉด ๊ธฐ์กด ํŒจ์น˜๊ฐ€ ๋” ์ด์ƒ ์ ์šฉ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŒจ์น˜๋ฅผ ์ ์šฉ ํ•  ๋•Œ ํŒจ์น˜๊ฐ€ ์ œ๋Œ€๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํŒจ์น˜ ์‹œ๋ฆฌ์ฆˆ๋ฅผ rebaseํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” refresh make target์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :

make package/example/refresh V=s

์ปค๋„์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

make target/linux/refresh V=s
โš ๏ธ **GitHub.com Fallback** โš ๏ธ