{"id":2889,"date":"2025-01-05T18:51:34","date_gmt":"2025-01-05T10:51:34","guid":{"rendered":"https:\/\/yowlab.idv.tw\/wordpress\/?p=2889"},"modified":"2025-01-05T19:12:40","modified_gmt":"2025-01-05T11:12:40","slug":"%e5%9c%a8%e7%b7%a8%e8%ad%af-linux-kernel-%e5%be%8c%ef%bc%8c%e7%95%b6%e5%87%ba%e7%8f%be%e6%9f%90%e4%ba%9b%e7%a1%ac%e9%ab%94%e9%9f%8c%e9%ab%94%e6%89%be%e4%b8%8d%e5%88%b0%ef%bc%8c%e6%80%8e%e9%ba%bc","status":"publish","type":"post","link":"https:\/\/yowlab.idv.tw\/wordpress\/?p=2889","title":{"rendered":"\u5728\u7de8\u8b6f Linux kernel \u5f8c\uff0c\u51fa\u73fe\u67d0\u4e9b\u97cc\u9ad4\u6a94\u6848\u627e\u4e0d\u5230\uff0c\u600e\u9ebc\u8fa6\uff1f"},"content":{"rendered":"<p>\u5728\u7de8\u8b6f linux \u6838\u5fc3\u4e4b\u5f8c\uff0c\u6703\u51fa\u73fe\u67d0\u4e9b\u97cc\u9ad4(firmware)\u627e\u4e0d\u5230\u7684\u60c5\u6cc1\uff0c\u5728\u9019\u4e9b\u7f3a\u5c11\u7684\u97cc\u9ad4\u7576\u4e2d\uff0c\u53ef\u80fd\u6703\u5f15\u8d77\u7121\u6cd5\u555f\u7528\u67d0\u4e9b\u786c\u9ad4\u7684\u554f\u984c\uff0c\u90a3\u9019\u554f\u984c\u8981\u5982\u4f55\u89e3\u6c7a\u5462\uff1f<br \/>\n<a href=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_163623.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_163623-1024x495.png\" alt=\"\" width=\"530\" height=\"256\" class=\"alignnone size-large wp-image-2890\" srcset=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_163623-1024x495.png 1024w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_163623-350x169.png 350w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_163623-768x371.png 768w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_163623.png 1317w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/a><\/p>\n<style type=\"text\/css\">\n    li.present01 {line-height:1.5em; background-color:#F5E5C9; padding:5px; border-radius:10px; font-weight:bold; margin:5px;}\n    li.present02 {line-height:1.5em; background-color:#D1EC87; padding:5px; border-radius:10px; font-weight:bold; margin:5px;}\n    li.present03 {line-height:1.5em; background-color:#b3dffa; padding:5px; border-radius:10px; font-weight:bold; margin:5px;}\n    li.present04 {line-height:1.5em; background-color:#FDF6FF; padding:10px; border-radius:10px; font-weight:bold; margin:5px;}\n    ol.lower-alpha {list-style-type:lower-alpha;}\n    ol.lower-roman {list-style-type:lower-roman;}\n    ul.none {list-style-type:none;line-height:1.5em; padding:10px;}\n    ul.note {line-height:1.5em; padding:10px;}\n    .highlight01 {font-weight:bold; line-height:1.5em; background-color:#e7f49c; padding:0px 2px; border:1px; border-radius:10px;}\n    .highlight02 {font-weight:bold; line-height:1.5em; background-color:#F2F26B; padding:1px 1px; border:1px;}\n    .highlight03 {font-weight:bold; line-height:1.5em; background-color:#F9BF72; padding:3px 10px; border:2px; border-radius:10px;}\n    .box01 {margin: 5px; border:1px #19130B solid; border-radius:5px; padding:10px;}\n    .box02 {margin: 5px; font-weight:bold; line-height:1.5em; padding:10px; border:1px #19130B solid; border-radius:5px;}\n    h3 {border:2px #000 solid; border-width:0px 0px 1px 0px; padding-width:0px 0px 3px 0px;}\n    h4 {border:2px #000 solid; border-width:0px 0px 1px 0px; padding-width:3px 0px 3px 0px;margin: 3px 0px 10px 0px ;font-weight:bold; line-height:1.5em;  }\n    h5 {background-color:#eff0f1; padding:10px; font-weight:bold; line-height:2em; border:1px #000 solid; border-width:1px 0px 1px 0px; margin: 5px 0px 20px 0px;}<\/p>\n<p>    pre {margin: 5px; border:0px #19130B solid; border-radius:5px; padding:10px;line-height:2em;}\n<\/style>\n<p>\u9019\u985e\u554f\u984c\uff0c\u4e0d\u96e3\u89e3\u6c7a\uff0c\u7c21\u55ae\u4f86\u8aaa\uff0c\u5c31\u662f\u627e\u5230\u76f8\u5c0d\u61c9\u7684\u300c\u97cc\u9ad4\u6a94\u6848\u300d\uff0c\u7136\u5f8c\u653e\u5230\u5c0d\u7684\u4f4d\u7f6e\uff0c\u5c0d\u7684\u76ee\u9304\u5e95\u4e0b\uff0c\u8b93\u4f5c\u696d\u7cfb\u7d71\u53ef\u4ee5\u627e\u5230\u8207\u4f7f\u7528\u3002<\/p>\n<p>\u90a3\uff5e\u9019\u4e9b\u97cc\u9ad4\u6a94\u6848\u8a72\u53bb\u54ea\u88e1\u627e\u5462\uff1f\u4ee5\u4e0b\u7db2\u5740\u53ef\u4ee5\u627e\u5230\uff1a<br \/>\n<a href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/firmware\/linux-firmware.git\/tree\/\" rel=\"noopener\" target=\"_blank\">https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/firmware\/linux-firmware.git\/tree\/<\/a><br \/>\n<a href=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_164656.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_164656-1024x457.png\" alt=\"\" width=\"530\" height=\"237\" class=\"alignnone size-large wp-image-2893\" srcset=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_164656-1024x457.png 1024w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_164656-350x156.png 350w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_164656-768x343.png 768w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_164656-1536x686.png 1536w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_164656.png 1679w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/a><\/p>\n<p>\u5728\u627e\u5230\u9700\u8981\u6a94\u6848\u5f8c\uff0c\u4e0b\u8f09\u4e26\u5c07\u8a72\u6a94\u6848\u653e\u5230<span class=\"highlight01\"> \/lib\/lib\/firmware\/ <\/span>\u76ee\u9304\u76f8\u5c0d\u61c9\u7684\u4f4d\u7f6e\u4e0b\uff0c\u554f\u984c\u5c31\u53ef\u89e3\u6c7a\u3002<\/p>\n<p>&nbsp;<\/p>\n<h4>\u7c21\u5316\u8207\u52a0\u901f\u4e00\u4e0b<\/h4>\n<p>\u57fa\u672c\u4e0a\uff0c\u4e0b\u8f09\u97cc\u9ad4\u6a94\u6848\uff0c\u653e\u5230\u5c0d\u61c9\u76ee\u9304\u5e95\u4e0b\uff0c\u554f\u984c\u5c31\u89e3\u6c7a\u3002<\/p>\n<div class=\"box01\">\n\u4f46\u662f\uff0c\u82e5\u7f3a\u5c11\u7684\u6a94\u6848\u5f88\u591a\uff0c\u6211\u4e00\u5b9a\u6703\u56e0\u70ba\u4e00\u500b\u4e00\u500b\u6a94\u6848\u4e0b\u8f09\uff0c\u611f\u5230\u5f88\u7126\u8e81\uff0c\u5f88\u7169\uff0c\u7136\u5f8c\u5c31\u653e\u68c4\u4e86\u9019\u4ef6\u4e8b\u3002<\/p>\n<p>\u9084\u597d\uff0c\u53ef\u4ee5\u4f7f\u7528<span class=\"highlight01\"> wget, awk <\/span>\u9019\u5169\u500b\u5de5\u5177\u4f86\u89e3\u6c7a\u7169\u8e81\u554f\u984c\u3002<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<ol>\n<li class=\"present01\">\u5c07\u7f3a\u5c11\u7684\u97cc\u9ad4\u6a94\u6848\u8a0a\u606f\uff0c\u300cW: Possible missing firmware \/lib\/firmware\/rtl_nic\/rtl8125d-1.fw for module r8169\u300d\u5168\u90e8\u8907\u88fd\uff0c\u4e26\u8cbc\u6210\u4e00\u500b\u6a94\u6848<\/li>\n<p>   \u6a94\u540d\u5c31\u53d6\uff1a<span class=\"highlight01\">firmware_error.txt <\/span> \u597d\u4e86\uff01<\/li>\n<p>   <a href=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183334.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183334-1024x488.png\" alt=\"\" width=\"530\" height=\"253\" class=\"alignnone size-large wp-image-2914\" srcset=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183334-1024x488.png 1024w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183334-350x167.png 350w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183334-768x366.png 768w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183334.png 1142w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/a><\/p>\n<li class=\"present01\">\u6574\u7406\u4e00\u4e0b\u6a94\u6848\u5167\u5bb9\uff0c\u5c07<span class=\"highlight01\">W: Possible missing firmware  \/lib\/firmware\/xxxx\/<\/span>\u5168\u90e8\u53bb\u6389\uff0c\u53ea\u7559\u4e0b\u5f8c\u9762\u8a0a\u606f\u3002<\/li>\n<p>   \u53ef\u7528 awk \uff0c\u4e00\u884c\u6307\u4ee4\u5c31\u53ef\u8655\u7406\u6389\u4e86\u3002<\/p>\n<pre>awk -F \"\/\" '{print $5}' firmware_error.txt > firmware_error_01.txt<\/pre>\n<p>   <a href=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183443.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183443.png\" alt=\"\" width=\"748\" height=\"529\" class=\"alignnone size-full wp-image-2915\" srcset=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183443.png 748w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183443-350x248.png 350w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/><\/a><\/p>\n<li class=\"present01\">\u6279\u6b21\u4e0b\u8f09\u97cc\u9ad4\u6a94\u6848<\/li>\n<pre>awk -F\" \" '{print echo \"wget -c https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/firmware\/linux-firmware.git\/tree\/\" $4 echo \"\/\"  $1}' firmware_error_01.txt | sh <\/pre>\n<p>    <a href=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183605.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183605-1024x344.png\" alt=\"\" width=\"530\" height=\"178\" class=\"alignnone size-large wp-image-2916\" srcset=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183605-1024x344.png 1024w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183605-350x117.png 350w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183605-768x258.png 768w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183605-1536x516.png 1536w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_183605.png 1588w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/a>    <\/p>\n<li class=\"present01\">\u5c07\u4e0b\u8f09\u56de\u4f86\u6a94\u6848\uff0c\u653e\u5230 \/lib\/firmware\/ \u76f8\u5c0d\u61c9\u4f4d\u7f6e\u4e2d <\/li>\n<p>   \u4f8b\uff1asudo cp rtl8125d-1.fw \/lib\/firmware\/rtl_nic\/<\/p>\n<p>   \u82e5\u6a94\u6848\u592a\u591a\uff0c\u4e00\u500b\u4e00\u500b\u653e\uff0c\u89ba\u5f97\u592a\u6162\u5f88\u7169\uff0c\u4e5f\u53ef\u4ee5\u5229\u7528 awk \u4f86\u5e6b\u5fd9\u3002<\/p>\n<pre>awk -F\" \" '{print echo \"sudo cp \" $1 echo \" \/lib\/firmware\/\" $4 echo \"\/\"  }' firmware_error_01.txt |sh <\/pre>\n<p>   <a href=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_184934.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_184934.png\" alt=\"\" width=\"652\" height=\"533\" class=\"alignnone size-full wp-image-2923\" srcset=\"https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_184934.png 652w, https:\/\/yowlab.idv.tw\/wordpress\/wp-content\/uploads\/2025\/01\/Screenshot_20250105_184934-350x286.png 350w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/a><\/p>\n<\/ol>\n<p>&nbsp;<\/p>\n<h4>\u81e8\u6642\u88dc\u5145\u7b46\u8a18<\/h4>\n<ol>\n<li>\u5728 vim \u4e0b\uff0c\u5982\u4f55\u522a\u9664\u6bcf\u884c\u7684\u7b2c\u4e00\u500b\u5b57<\/li>\n<p>     :%s\/^.\/\/g<\/p>\n<li>awk -F \u8a9e\u6cd5\uff1a\u82e5\u6307\u5b9a \/ \u70ba\u5206\u9694\u7b26\u6642\uff0c\u8a9e\u6cd5\u5982\u4e0b\uff1a<\/li>\n<pre>awk -F\/ '{print $1, $2}' filename.txt<\/pre>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3>\u53c3\u8003\u8cc7\u6e90<\/h3>\n<ol>\n<li><a href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/firmware\/linux-firmware.git\/tree\/\" rel=\"noopener\" target=\"_blank\">https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/firmware\/linux-firmware.git\/tree\/<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u7de8\u8b6f linux \u6838\u5fc3\u4e4b\u5f8c\uff0c\u6703\u51fa\u73fe\u67d0\u4e9b\u97cc\u9ad4(firmware)\u627e\u4e0d\u5230\u7684\u60c5\u6cc1\uff0c\u5728\u9019 <a class=\"more-link\" href=\"https:\/\/yowlab.idv.tw\/wordpress\/?p=2889\">Continue reading <span class=\"screen-reader-text\">  \u5728\u7de8\u8b6f Linux kernel \u5f8c\uff0c\u51fa\u73fe\u67d0\u4e9b\u97cc\u9ad4\u6a94\u6848\u627e\u4e0d\u5230\uff0c\u600e\u9ebc\u8fa6\uff1f<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[108,109,99],"class_list":["post-2889","post","type-post","status-publish","format-standard","hentry","category-3","tag-awk","tag-firmware","tag-kernel"],"_links":{"self":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2889","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2889"}],"version-history":[{"count":31,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2889\/revisions"}],"predecessor-version":[{"id":2926,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/2889\/revisions\/2926"}],"wp:attachment":[{"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2889"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2889"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yowlab.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}