{"id":76325,"date":"2026-02-22T08:34:36","date_gmt":"2026-02-22T00:34:36","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/76325.html"},"modified":"2026-02-22T08:34:36","modified_gmt":"2026-02-22T00:34:36","slug":"%e8%80%81-macbook-%e5%88%ab%e6%89%94%ef%bc%81%e8%a3%85-linux-%e9%83%a8%e7%bd%b2-openclaw-%e5%8f%98%e8%ba%ab-24h-%e6%9c%8d%e5%8a%a1%e5%99%a8","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/76325.html","title":{"rendered":"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668"},"content":{"rendered":"<h2>\u8001 MacBook \u522b\u6254&#xff01;\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668<\/h2>\n<p>\u5f88\u591a\u7528\u6237\u624b\u4e2d\u90fd\u6709\u8001\u6b3e\u7684 MacBook&#xff0c;\u8fd9\u4e9b\u8bbe\u5907\u867d\u7136\u5df2\u7ecf\u4e0d\u9002\u5408\u4f5c\u4e3a\u4e3b\u529b\u529e\u516c\u7535\u8111&#xff0c;\u4f46\u5b83\u4eec\u7684\u6027\u80fd\u4f9d\u7136\u8db3\u4ee5\u8fd0\u884c OpenClaw \u672c\u5730 AI \u670d\u52a1\u3002\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u5c06\u8001\u6b3e MacBook \u6539\u9020\u4e3a 24 \u5c0f\u65f6\u8fd0\u884c\u7684 OpenClaw \u670d\u52a1\u5668\u3002<\/p>\n<h3>\u4e00\u3001\u786c\u4ef6\u8bc4\u4f30<\/h3>\n<h4>1.1 \u8001\u6b3e MacBook \u578b\u53f7\u652f\u6301<\/h4>\n<table>\n<tr>\u578b\u53f7CPU\u5185\u5b58\u5b58\u50a8\u517c\u5bb9\u6027\u63a8\u8350\u5ea6<\/tr>\n<tbody>\n<tr>\n<td>MacBook Pro 2012 (13\u5bf8)<\/td>\n<td>i5-3210M<\/td>\n<td>8GB<\/td>\n<td>256GB SSD<\/td>\n<td>\u826f\u597d<\/td>\n<td>\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>MacBook Pro 2013 (13\u5bf8)<\/td>\n<td>i5-4258U<\/td>\n<td>8GB<\/td>\n<td>256GB SSD<\/td>\n<td>\u826f\u597d<\/td>\n<td>\u2b50\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>MacBook Pro 2014 (13\u5bf8)<\/td>\n<td>i5-4278U<\/td>\n<td>8GB<\/td>\n<td>256GB SSD<\/td>\n<td>\u4f18\u79c0<\/td>\n<td>\u2b50\u2b50\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>MacBook Pro 2015 (13\u5bf8)<\/td>\n<td>i5-5257U<\/td>\n<td>8GB<\/td>\n<td>256GB SSD<\/td>\n<td>\u4f18\u79c0<\/td>\n<td>\u2b50\u2b50\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>MacBook Air 2013 (11\u5bf8)<\/td>\n<td>i5-4250U<\/td>\n<td>4GB<\/td>\n<td>128GB SSD<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>MacBook Air 2014 (11\u5bf8)<\/td>\n<td>i5-4260U<\/td>\n<td>4GB<\/td>\n<td>128GB SSD<\/td>\n<td>\u4e00\u822c<\/td>\n<td>\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>MacBook 2015 (12\u5bf8)<\/td>\n<td>Core M<\/td>\n<td>8GB<\/td>\n<td>256GB SSD<\/td>\n<td>\u826f\u597d<\/td>\n<td>\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>1.2 \u786c\u4ef6\u8981\u6c42<\/h4>\n<table>\n<tr>\u7ec4\u4ef6\u6700\u4f4e\u914d\u7f6e\u63a8\u8350\u914d\u7f6e\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>CPU<\/td>\n<td>Intel i3 \u7b2c 3 \u4ee3<\/td>\n<td>Intel i5 \u7b2c 4 \u4ee3\u53ca\u4ee5\u4e0a<\/td>\n<td>\u652f\u6301 VT-x\/VT-d<\/td>\n<\/tr>\n<tr>\n<td>\u5185\u5b58<\/td>\n<td>4GB<\/td>\n<td>8GB \u6216\u66f4\u9ad8<\/td>\n<td>DDR3<\/td>\n<\/tr>\n<tr>\n<td>\u5b58\u50a8<\/td>\n<td>128GB SSD<\/td>\n<td>256GB SSD \u6216\u66f4\u9ad8<\/td>\n<td>SATA \u6216 NVMe<\/td>\n<\/tr>\n<tr>\n<td>\u7f51\u7edc<\/td>\n<td>Wi-Fi<\/td>\n<td>Wi-Fi &#043; \u6709\u7ebf<\/td>\n<td>\u6709\u7ebf\u7f51\u7edc\u4f18\u5148<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>1.3 \u517c\u5bb9\u6027\u68c0\u67e5<\/h4>\n<p><span class=\"token comment\"># \u5728 macOS \u4e2d\u68c0\u67e5 CPU \u4fe1\u606f<\/span><br \/>\nsysctl -n machdep.cpu.brand_string<\/p>\n<p><span class=\"token comment\"># \u68c0\u67e5\u5185\u5b58\u4fe1\u606f<\/span><br \/>\nsystem_profiler SPMemoryDataType<\/p>\n<p><span class=\"token comment\"># \u68c0\u67e5\u5b58\u50a8\u4fe1\u606f<\/span><br \/>\ndiskutil list<\/p>\n<p><span class=\"token comment\"># \u68c0\u67e5\u7f51\u7edc\u63a5\u53e3<\/span><br \/>\n<span class=\"token function\">ifconfig<\/span><\/p>\n<h3>\u4e8c\u3001Linux \u53d1\u884c\u7248\u9009\u62e9<\/h3>\n<h4>2.1 \u63a8\u8350\u53d1\u884c\u7248<\/h4>\n<table>\n<tr>\u53d1\u884c\u7248\u7248\u672c\u4f18\u52bf\u52a3\u52bf\u63a8\u8350\u5ea6<\/tr>\n<tbody>\n<tr>\n<td>Ubuntu<\/td>\n<td>22.04 LTS<\/td>\n<td>\u793e\u533a\u652f\u6301\u597d&#xff0c;\u6587\u6863\u4e30\u5bcc<\/td>\n<td>\u8d44\u6e90\u5360\u7528\u8f83\u9ad8<\/td>\n<td>\u2b50\u2b50\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>Fedora<\/td>\n<td>38<\/td>\n<td>\u6700\u65b0\u8f6f\u4ef6&#xff0c;\u6027\u80fd\u4f18\u79c0<\/td>\n<td>\u66f4\u65b0\u9891\u7e41<\/td>\n<td>\u2b50\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>Arch Linux<\/td>\n<td>\u6eda\u52a8\u66f4\u65b0<\/td>\n<td>\u9ad8\u5ea6\u53ef\u5b9a\u5236<\/td>\n<td>\u5b66\u4e60\u66f2\u7ebf\u9661<\/td>\n<td>\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>Linux Mint<\/td>\n<td>21<\/td>\n<td>\u7528\u6237\u53cb\u597d&#xff0c;\u7a33\u5b9a<\/td>\n<td>\u8f6f\u4ef6\u7248\u672c\u8f83\u65e7<\/td>\n<td>\u2b50\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<tr>\n<td>Debian<\/td>\n<td>12<\/td>\n<td>\u6781\u5ea6\u7a33\u5b9a<\/td>\n<td>\u8f6f\u4ef6\u7248\u672c\u8f83\u65e7<\/td>\n<td>\u2b50\u2b50\u2b50\u2b50<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>2.2 \u9009\u62e9\u5efa\u8bae<\/h4>\n<p>\u63a8\u8350 Ubuntu 22.04 LTS&#xff1a;<\/p>\n<ul>\n<li>\u957f\u671f\u652f\u6301&#xff08;5 \u5e74&#xff09;<\/li>\n<li>\u793e\u533a\u652f\u6301\u597d<\/li>\n<li>\u6587\u6863\u4e30\u5bcc<\/li>\n<li>Docker \u652f\u6301\u597d<\/li>\n<li>\u9002\u5408\u670d\u52a1\u5668\u4f7f\u7528<\/li>\n<\/ul>\n<h3>\u4e09\u3001\u7cfb\u7edf\u51c6\u5907<\/h3>\n<h4>3.1 \u5907\u4efd\u539f\u6709\u7cfb\u7edf<\/h4>\n<p><span class=\"token comment\"># \u5982\u679c MacBook \u4e0a\u6709\u91cd\u8981\u6570\u636e&#xff0c;\u5148\u8fdb\u884c\u5907\u4efd<\/span><br \/>\n<span class=\"token comment\"># \u4f7f\u7528 Time Machine \u6216\u5916\u90e8\u786c\u76d8\u5907\u4efd<\/span><\/p>\n<p><span class=\"token comment\"># \u5907\u4efd\u7528\u6237\u6570\u636e<\/span><br \/>\n<span class=\"token function\">rsync<\/span> -avz ~\/ \/backup\/home\/<\/p>\n<p><span class=\"token comment\"># \u5907\u4efd\u7cfb\u7edf\u914d\u7f6e<\/span><br \/>\n<span class=\"token function\">tar<\/span> -czf \/backup\/system-config.tar.gz \/etc\/<\/p>\n<h4>3.2 \u4e0b\u8f7d Ubuntu<\/h4>\n<p><span class=\"token comment\"># \u4e0b\u8f7d Ubuntu 22.04 LTS<\/span><br \/>\n<span class=\"token function\">wget<\/span> https:\/\/releases.ubuntu.com\/22.04\/ubuntu-22.04.3-desktop-amd64.iso<\/p>\n<p><span class=\"token comment\"># \u9a8c\u8bc1\u4e0b\u8f7d\u6587\u4ef6\u7684\u5b8c\u6574\u6027<\/span><br \/>\nsha256sum ubuntu-22.04.3-desktop-amd64.iso<\/p>\n<p><span class=\"token comment\"># \u5bf9\u6bd4 SHA256 \u6821\u9a8c\u548c<\/span><br \/>\n<span class=\"token comment\"># \u9884\u671f\u503c&#xff1a;a4acf910c0c9d0e9a8f7d0f1c3c0f0e1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6<\/span><\/p>\n<h4>3.3 \u5236\u4f5c\u542f\u52a8\u76d8<\/h4>\n<p>macOS \u73af\u5883&#xff1a;<\/p>\n<p><span class=\"token comment\"># \u63d2\u5165 USB \u8bbe\u5907&#xff0c;\u67e5\u770b\u8bbe\u5907\u540d\u79f0<\/span><br \/>\ndiskutil list<\/p>\n<p><span class=\"token comment\"># \u5378\u8f7d USB \u8bbe\u5907<\/span><br \/>\ndiskutil unmountDisk \/dev\/disk2<\/p>\n<p><span class=\"token comment\"># \u4f7f\u7528 dd \u547d\u4ee4\u5236\u4f5c\u542f\u52a8\u76d8<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">dd<\/span> <span class=\"token assign-left variable\">if<\/span><span class=\"token operator\">&#061;<\/span>ubuntu-22.04.3-desktop-amd64.iso <span class=\"token assign-left variable\">of<\/span><span class=\"token operator\">&#061;<\/span>\/dev\/rdisk2 <span class=\"token assign-left variable\">bs<\/span><span class=\"token operator\">&#061;<\/span>4m <span class=\"token assign-left variable\">status<\/span><span class=\"token operator\">&#061;<\/span>progress<\/p>\n<p><span class=\"token comment\"># \u540c\u6b65\u7f13\u5b58<\/span><br \/>\n<span class=\"token function\">sync<\/span><\/p>\n<p><span class=\"token comment\"># \u5f39\u51fa USB \u8bbe\u5907<\/span><br \/>\ndiskutil <span class=\"token function\">eject<\/span> \/dev\/disk2<\/p>\n<p>Windows \u73af\u5883&#xff1a;<\/p>\n<p><span class=\"token comment\"># \u4e0b\u8f7d Rufus<\/span><br \/>\n<span class=\"token comment\"># https:\/\/rufus.ie\/<\/span><\/p>\n<p><span class=\"token comment\"># \u8fd0\u884c Rufus<\/span><br \/>\n<span class=\"token comment\"># 1. \u9009\u62e9 USB \u8bbe\u5907<\/span><br \/>\n<span class=\"token comment\"># 2. \u9009\u62e9\u4e0b\u8f7d\u7684 Ubuntu ISO \u6587\u4ef6<\/span><br \/>\n<span class=\"token comment\"># 3. \u5206\u533a\u7c7b\u578b&#xff1a;GPT<\/span><br \/>\n<span class=\"token comment\"># 4. \u76ee\u6807\u7cfb\u7edf\u7c7b\u578b&#xff1a;UEFI&#xff08;\u975e CSM&#xff09;<\/span><br \/>\n<span class=\"token comment\"># 5. \u6587\u4ef6\u7cfb\u7edf&#xff1a;FAT32<\/span><br \/>\n<span class=\"token comment\"># 6. \u70b9\u51fb\u5f00\u59cb<\/span><\/p>\n<h3>\u56db\u3001\u5b89\u88c5 Ubuntu<\/h3>\n<h4>4.1 \u8fdb\u5165\u542f\u52a8\u83dc\u5355<\/h4>\n<p><span class=\"token comment\"># \u91cd\u542f MacBook&#xff0c;\u6309\u4f4f Option \u952e\u8fdb\u5165\u542f\u52a8\u83dc\u5355<\/span><br \/>\n<span class=\"token comment\"># \u9009\u62e9 USB \u8bbe\u5907\u542f\u52a8<\/span><\/p>\n<p><span class=\"token comment\"># \u5982\u679c\u65e0\u6cd5\u4ece USB \u542f\u52a8&#xff0c;\u53ef\u80fd\u9700\u8981&#xff1a;<\/span><br \/>\n<span class=\"token comment\"># 1. \u5728 macOS \u4e2d\u7981\u7528 SIP&#xff08;System Integrity Protection&#xff09;<\/span><br \/>\n<span class=\"token comment\"># 2. \u4f7f\u7528 rEFInd \u5f15\u5bfc\u52a0\u8f7d\u7a0b\u5e8f<\/span><\/p>\n<h4>4.2 \u5b89\u88c5 Ubuntu<\/h4>\n<p><span class=\"token comment\"># \u4ece USB \u542f\u52a8&#xff0c;\u9009\u62e9 &#034;Try or Install Ubuntu&#034;<\/span><br \/>\n<span class=\"token comment\"># \u6309\u7167\u5b89\u88c5\u5411\u5bfc\u5b8c\u6210\u4ee5\u4e0b\u6b65\u9aa4<\/span><\/p>\n<p><span class=\"token comment\"># 1. \u9009\u62e9\u8bed\u8a00<\/span><br \/>\nLanguage: English \u6216 \u4e2d\u6587\u7b80\u4f53<\/p>\n<p><span class=\"token comment\"># 2. \u9009\u62e9\u5b89\u88c5\u7c7b\u578b<\/span><br \/>\nInstallation type: Normal installation<\/p>\n<p><span class=\"token comment\"># 3. \u5b89\u88c5\u7c7b\u578b<\/span><br \/>\n\u9009\u62e9 <span class=\"token string\">&#034;Erase disk and install Ubuntu&#034;<\/span><br \/>\n\u6216\u9009\u62e9 <span class=\"token string\">&#034;Something else&#034;<\/span> \u8fdb\u884c\u81ea\u5b9a\u4e49\u5206\u533a<\/p>\n<p><span class=\"token comment\"># 4. \u5206\u533a\u65b9\u6848&#xff08;\u63a8\u8350&#xff09;<\/span><br \/>\n&#8211; \/boot\/efi: 512MB <span class=\"token punctuation\">(<\/span>EFI System Partition<span class=\"token punctuation\">)<\/span><br \/>\n&#8211; swap: 4GB <span class=\"token punctuation\">(<\/span>\u5982\u679c\u5185\u5b58\u5c0f\u4e8e 8GB<span class=\"token punctuation\">)<\/span><br \/>\n&#8211; \/: 50GB <span class=\"token punctuation\">(<\/span>ext4<span class=\"token punctuation\">)<\/span><br \/>\n&#8211; \/home: \u5269\u4f59\u7a7a\u95f4 <span class=\"token punctuation\">(<\/span>ext4<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 5. \u7528\u6237\u8bbe\u7f6e<\/span><br \/>\n&#8211; Your name: Your Name<br \/>\n&#8211; Your computer&#039;s name: macbook-server<br \/>\n&#8211; Choose a password: your_password<br \/>\n&#8211; Log <span class=\"token keyword\">in<\/span> automatically: \u4e0d\u52fe\u9009&#xff08;\u670d\u52a1\u5668\u73af\u5883&#xff09;<\/p>\n<p><span class=\"token comment\"># 6. \u5b89\u88c5\u5b8c\u6210<\/span><br \/>\n\u70b9\u51fb <span class=\"token string\">&#034;Restart Now&#034;<\/span><\/p>\n<h4>4.3 \u7cfb\u7edf\u521d\u59cb\u5316<\/h4>\n<p><span class=\"token comment\"># \u66f4\u65b0\u7cfb\u7edf<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> update <span class=\"token operator\">&amp;&amp;<\/span> <span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> upgrade -y<\/p>\n<p><span class=\"token comment\"># \u5b89\u88c5\u5e38\u7528\u5de5\u5177<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y <span class=\"token function\">vim<\/span> <span class=\"token function\">git<\/span> <span class=\"token function\">curl<\/span> <span class=\"token function\">wget<\/span> <span class=\"token function\">htop<\/span> net-tools tmux<\/p>\n<p><span class=\"token comment\"># \u914d\u7f6e\u65f6\u533a<\/span><br \/>\n<span class=\"token function\">sudo<\/span> timedatectl set-timezone Asia\/Shanghai<\/p>\n<p><span class=\"token comment\"># \u914d\u7f6e\u4e3b\u673a\u540d<\/span><br \/>\n<span class=\"token function\">sudo<\/span> hostnamectl set-hostname macbook-server<\/p>\n<p><span class=\"token comment\"># \u914d\u7f6e\u7f51\u7edc<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">vim<\/span> \/etc\/netplan\/00-installer-config.yaml<\/p>\n<p>\u7f51\u7edc\u914d\u7f6e\u793a\u4f8b&#xff1a;<\/p>\n<p><span class=\"token key atrule\">network<\/span><span class=\"token punctuation\">:<\/span><br \/>\n  <span class=\"token key atrule\">ethernets<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token key atrule\">enx00e04c123456<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token key atrule\">dhcp4<\/span><span class=\"token punctuation\">:<\/span> yes<br \/>\n      <span class=\"token key atrule\">optional<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token boolean important\">true<\/span><br \/>\n  <span class=\"token key atrule\">version<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">2<\/span><\/p>\n<p>\u5e94\u7528\u7f51\u7edc\u914d\u7f6e&#xff1a;<\/p>\n<p><span class=\"token function\">sudo<\/span> netplan apply<\/p>\n<h3>\u4e94\u3001\u9a71\u52a8\u914d\u7f6e<\/h3>\n<h4>5.1 Wi-Fi \u9a71\u52a8<\/h4>\n<p><span class=\"token comment\"># \u68c0\u67e5 Wi-Fi \u7f51\u5361\u578b\u53f7<\/span><br \/>\nlspci <span class=\"token operator\">|<\/span> <span class=\"token function\">grep<\/span> -i network<\/p>\n<p><span class=\"token comment\"># \u5b89\u88c5 Wi-Fi \u9a71\u52a8<\/span><br \/>\n<span class=\"token comment\"># Broadcom \u7f51\u5361<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y broadcom-sta-dkms<\/p>\n<p><span class=\"token comment\"># Intel \u7f51\u5361<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y firmware-iwlwifi<\/p>\n<p><span class=\"token comment\"># \u52a0\u8f7d\u9a71\u52a8<\/span><br \/>\n<span class=\"token function\">sudo<\/span> modprobe -r b43 b43legacy ssb wl brcmfmac brcmsmac bcma<br \/>\n<span class=\"token function\">sudo<\/span> modprobe wl<\/p>\n<p><span class=\"token comment\"># \u91cd\u542f\u7f51\u7edc<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl restart NetworkManager<\/p>\n<h4>5.2 \u89e6\u6478\u677f\u9a71\u52a8<\/h4>\n<p><span class=\"token comment\"># \u5b89\u88c5\u89e6\u6478\u677f\u9a71\u52a8<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y xserver-xorg-input-synaptics<\/p>\n<p><span class=\"token comment\"># \u914d\u7f6e\u89e6\u6478\u677f<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">vim<\/span> \/etc\/X11\/xorg.conf.d\/50-synaptics.conf<\/p>\n<p>\u89e6\u6478\u677f\u914d\u7f6e\u793a\u4f8b&#xff1a;<\/p>\n<p>Section &#034;InputClass&#034;<br \/>\n    Identifier &#034;touchpad catchall&#034;<br \/>\n    Driver &#034;synaptics&#034;<br \/>\n    MatchIsTouchpad &#034;on&#034;<br \/>\n    Option &#034;TapButton1&#034; &#034;1&#034;<br \/>\n    Option &#034;VertEdgeScroll&#034; &#034;on&#034;<br \/>\n    Option &#034;HorizEdgeScroll&#034; &#034;on&#034;<br \/>\n    Option &#034;PalmDetect&#034; &#034;on&#034;<br \/>\n    Option &#034;PalmMinWidth&#034; &#034;8&#034;<br \/>\n    Option &#034;PalmMinZ&#034; &#034;100&#034;<br \/>\nEndSection<\/p>\n<h4>5.3 \u663e\u5361\u9a71\u52a8<\/h4>\n<p><span class=\"token comment\"># \u68c0\u67e5\u663e\u5361\u578b\u53f7<\/span><br \/>\nlspci <span class=\"token operator\">|<\/span> <span class=\"token function\">grep<\/span> -i vga<\/p>\n<p><span class=\"token comment\"># Intel \u663e\u5361<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y xserver-xorg-video-intel<\/p>\n<p><span class=\"token comment\"># AMD \u663e\u5361<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y xserver-xorg-video-amdgpu<\/p>\n<p><span class=\"token comment\"># NVIDIA \u663e\u5361<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y nvidia-driver-535<\/p>\n<h3>\u516d\u3001\u7cfb\u7edf\u4f18\u5316<\/h3>\n<h4>6.1 \u7981\u7528\u4e0d\u5fc5\u8981\u7684\u670d\u52a1<\/h4>\n<p><span class=\"token comment\"># \u7981\u7528\u84dd\u7259\u670d\u52a1<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl disable bluetooth<br \/>\n<span class=\"token function\">sudo<\/span> systemctl stop bluetooth<\/p>\n<p><span class=\"token comment\"># \u7981\u7528\u6253\u5370\u670d\u52a1<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl disable cups<br \/>\n<span class=\"token function\">sudo<\/span> systemctl stop cups<\/p>\n<p><span class=\"token comment\"># \u7981\u7528 Avahi&#xff08;\u7f51\u7edc\u53d1\u73b0&#xff09;<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl disable avahi-daemon<br \/>\n<span class=\"token function\">sudo<\/span> systemctl stop avahi-daemon<\/p>\n<p><span class=\"token comment\"># \u7981\u7528 ModemManager<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl disable ModemManager<br \/>\n<span class=\"token function\">sudo<\/span> systemctl stop ModemManager<\/p>\n<h4>6.2 \u4f18\u5316\u5185\u6838\u53c2\u6570<\/h4>\n<p><span class=\"token comment\"># \u7f16\u8f91\u5185\u6838\u53c2\u6570<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">vim<\/span> \/etc\/sysctl.conf<\/p>\n<p>\u6dfb\u52a0\u4ee5\u4e0b\u53c2\u6570&#xff1a;<\/p>\n<p># \u7f51\u7edc\u4f18\u5316<br \/>\nnet.core.rmem_max &#061; 16777216<br \/>\nnet.core.wmem_max &#061; 16777216<br \/>\nnet.ipv4.tcp_rmem &#061; 4096 87380 16777216<br \/>\nnet.ipv4.tcp_wmem &#061; 4096 65536 16777216<\/p>\n<p># \u6587\u4ef6\u7cfb\u7edf\u4f18\u5316<br \/>\nfs.file-max &#061; 100000<br \/>\nvm.swappiness &#061; 10<\/p>\n<p># \u865a\u62df\u5185\u5b58\u4f18\u5316<br \/>\nvm.dirty_ratio &#061; 15<br \/>\nvm.dirty_background_ratio &#061; 5<\/p>\n<p>\u5e94\u7528\u5185\u6838\u53c2\u6570&#xff1a;<\/p>\n<p><span class=\"token function\">sudo<\/span> sysctl -p<\/p>\n<h4>6.3 \u914d\u7f6e Swap<\/h4>\n<p><span class=\"token comment\"># \u68c0\u67e5\u5f53\u524d Swap<\/span><br \/>\n<span class=\"token function\">free<\/span> -h<\/p>\n<p><span class=\"token comment\"># \u5982\u679c\u5185\u5b58\u5c0f\u4e8e 8GB&#xff0c;\u5efa\u8bae\u914d\u7f6e Swap<\/span><br \/>\n<span class=\"token comment\"># \u521b\u5efa 4GB \u7684 Swap \u6587\u4ef6<\/span><br \/>\n<span class=\"token function\">sudo<\/span> fallocate -l 4G \/swapfile<\/p>\n<p><span class=\"token comment\"># \u8bbe\u7f6e\u6743\u9650<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">chmod<\/span> <span class=\"token number\">600<\/span> \/swapfile<\/p>\n<p><span class=\"token comment\"># \u521b\u5efa Swap<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">mkswap<\/span> \/swapfile<\/p>\n<p><span class=\"token comment\"># \u542f\u7528 Swap<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">swapon<\/span> \/swapfile<\/p>\n<p><span class=\"token comment\"># \u914d\u7f6e\u5f00\u673a\u81ea\u52a8\u6302\u8f7d<\/span><br \/>\n<span class=\"token builtin class-name\">echo<\/span> <span class=\"token string\">&#039;\/swapfile none swap sw 0 0&#039;<\/span> <span class=\"token operator\">|<\/span> <span class=\"token function\">sudo<\/span> <span class=\"token function\">tee<\/span> -a \/etc\/fstab<\/p>\n<p><span class=\"token comment\"># \u9a8c\u8bc1 Swap<\/span><br \/>\n<span class=\"token function\">free<\/span> -h<\/p>\n<h3>\u4e03\u3001Docker \u73af\u5883\u90e8\u7f72<\/h3>\n<h4>7.1 \u5b89\u88c5 Docker<\/h4>\n<p><span class=\"token comment\"># \u5b89\u88c5 Docker<\/span><br \/>\n<span class=\"token function\">curl<\/span> -fsSL https:\/\/get.docker.com -o get-docker.sh<br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">sh<\/span> get-docker.sh<\/p>\n<p><span class=\"token comment\"># \u542f\u52a8 Docker \u670d\u52a1<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl start <span class=\"token function\">docker<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl <span class=\"token builtin class-name\">enable<\/span> <span class=\"token function\">docker<\/span><\/p>\n<p><span class=\"token comment\"># \u5c06\u5f53\u524d\u7528\u6237\u6dfb\u52a0\u5230 docker \u7ec4<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">usermod<\/span> -aG <span class=\"token function\">docker<\/span> <span class=\"token environment constant\">$USER<\/span><\/p>\n<p><span class=\"token comment\"># \u91cd\u65b0\u767b\u5f55\u4ee5\u4f7f\u7ec4\u6743\u9650\u751f\u6548<\/span><\/p>\n<h4>7.2 \u5b89\u88c5 Docker Compose<\/h4>\n<p><span class=\"token comment\"># \u4e0b\u8f7d Docker Compose<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">curl<\/span> -L <span class=\"token string\">&#034;https:\/\/github.com\/docker\/compose\/releases\/latest\/download\/docker-compose-<span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">uname<\/span> -s<span class=\"token variable\">)<\/span><\/span>&#8211;<span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">uname<\/span> -m<span class=\"token variable\">)<\/span><\/span>&#034;<\/span> -o \/usr\/local\/bin\/docker-compose<\/p>\n<p><span class=\"token comment\"># \u6dfb\u52a0\u6267\u884c\u6743\u9650<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">chmod<\/span> &#043;x \/usr\/local\/bin\/docker-compose<\/p>\n<p><span class=\"token comment\"># \u9a8c\u8bc1\u5b89\u88c5<\/span><br \/>\n<span class=\"token function\">docker-compose<\/span> &#8211;version<\/p>\n<h4>7.3 \u914d\u7f6e Docker<\/h4>\n<p><span class=\"token comment\"># \u521b\u5efa Docker \u914d\u7f6e\u76ee\u5f55<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">mkdir<\/span> -p \/etc\/docker<\/p>\n<p><span class=\"token comment\"># \u7f16\u8f91 Docker \u914d\u7f6e\u6587\u4ef6<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">vim<\/span> \/etc\/docker\/daemon.json<\/p>\n<p>Docker \u914d\u7f6e\u6587\u4ef6&#xff1a;<\/p>\n<p><span class=\"token punctuation\">{<\/span><br \/>\n  <span class=\"token string-property property\">&#034;registry-mirrors&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><br \/>\n    <span class=\"token string\">&#034;https:\/\/docker.mirrors.ustc.edu.cn&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string\">&#034;https:\/\/hub-mirror.c.163.com&#034;<\/span><br \/>\n  <span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;log-driver&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;json-file&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;log-opts&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string-property property\">&#034;max-size&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;10m&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;max-file&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;3&#034;<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;live-restore&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token boolean\">true<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u91cd\u542f Docker&#xff1a;<\/p>\n<p><span class=\"token function\">sudo<\/span> systemctl daemon-reload<br \/>\n<span class=\"token function\">sudo<\/span> systemctl restart <span class=\"token function\">docker<\/span><\/p>\n<h3>\u516b\u3001OpenClaw \u90e8\u7f72<\/h3>\n<h4>8.1 \u521b\u5efa\u5de5\u4f5c\u76ee\u5f55<\/h4>\n<p><span class=\"token comment\"># \u521b\u5efa\u5de5\u4f5c\u76ee\u5f55<\/span><br \/>\n<span class=\"token function\">mkdir<\/span> -p \/opt\/openclaw<br \/>\n<span class=\"token builtin class-name\">cd<\/span> \/opt\/openclaw<\/p>\n<p><span class=\"token comment\"># \u514b\u9686 OpenClaw \u4ed3\u5e93<\/span><br \/>\n<span class=\"token function\">git<\/span> clone https:\/\/github.com\/openclaw\/openclaw.git<\/p>\n<p><span class=\"token comment\"># \u8fdb\u5165\u9879\u76ee\u76ee\u5f55<\/span><br \/>\n<span class=\"token builtin class-name\">cd<\/span> openclaw<\/p>\n<p><span class=\"token comment\"># \u590d\u5236\u914d\u7f6e\u6587\u4ef6<\/span><br \/>\n<span class=\"token function\">cp<\/span> .env.example .env<\/p>\n<p><span class=\"token comment\"># \u7f16\u8f91\u914d\u7f6e\u6587\u4ef6<\/span><br \/>\n<span class=\"token function\">vim<\/span> .env<\/p>\n<p>OpenClaw \u914d\u7f6e\u793a\u4f8b&#xff1a;<\/p>\n<p># OpenClaw \u914d\u7f6e<br \/>\nOPENCLAW_PORT&#061;8080<br \/>\nOPENCLAW_HOST&#061;0.0.0.0<\/p>\n<p># \u6570\u636e\u5e93\u914d\u7f6e<br \/>\nDB_HOST&#061;postgres<br \/>\nDB_PORT&#061;5432<br \/>\nDB_NAME&#061;openclaw<br \/>\nDB_USER&#061;openclaw<br \/>\nDB_PASSWORD&#061;openclaw123<\/p>\n<p># Redis \u914d\u7f6e<br \/>\nREDIS_HOST&#061;redis<br \/>\nREDIS_PORT&#061;6379<br \/>\nREDIS_PASSWORD&#061;<\/p>\n<p># \u6570\u636e\u5b58\u50a8<br \/>\nDATA_PATH&#061;\/data\/openclaw<\/p>\n<p># AI \u6a21\u578b\u914d\u7f6e<br \/>\nAI_MODEL_PATH&#061;\/data\/openclaw\/models<br \/>\nAI_MODEL_TYPE&#061;llama<\/p>\n<p># \u65e5\u5fd7\u914d\u7f6e<br \/>\nLOG_LEVEL&#061;info<br \/>\nLOG_PATH&#061;\/var\/log\/openclaw<\/p>\n<h4>8.2 \u521b\u5efa docker-compose.yml<\/h4>\n<p><span class=\"token function\">vim<\/span> docker-compose.yml<\/p>\n<p>docker-compose.yml \u5185\u5bb9&#xff1a;<\/p>\n<p><span class=\"token key atrule\">version<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#039;3&#039;<\/span><\/p>\n<p><span class=\"token key atrule\">services<\/span><span class=\"token punctuation\">:<\/span><br \/>\n  <span class=\"token key atrule\">openclaw<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token key atrule\">image<\/span><span class=\"token punctuation\">:<\/span> openclaw\/openclaw<span class=\"token punctuation\">:<\/span>latest<br \/>\n    <span class=\"token key atrule\">container_name<\/span><span class=\"token punctuation\">:<\/span> openclaw<br \/>\n    <span class=\"token key atrule\">restart<\/span><span class=\"token punctuation\">:<\/span> always<br \/>\n    <span class=\"token key atrule\">ports<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> <span class=\"token string\">&#034;8080:8080&#034;<\/span><br \/>\n    <span class=\"token key atrule\">volumes<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> \/data\/openclaw<span class=\"token punctuation\">:<\/span>\/data<br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> .\/.env<span class=\"token punctuation\">:<\/span>\/app\/.env<br \/>\n    <span class=\"token key atrule\">environment<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> DB_HOST&#061;postgres<br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> REDIS_HOST&#061;redis<br \/>\n    <span class=\"token key atrule\">depends_on<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> postgres<br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> redis<br \/>\n    <span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> openclaw<span class=\"token punctuation\">&#8211;<\/span>net<\/p>\n<p>  <span class=\"token key atrule\">postgres<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token key atrule\">image<\/span><span class=\"token punctuation\">:<\/span> postgres<span class=\"token punctuation\">:<\/span><span class=\"token number\">14<\/span><br \/>\n    <span class=\"token key atrule\">container_name<\/span><span class=\"token punctuation\">:<\/span> openclaw<span class=\"token punctuation\">&#8211;<\/span>postgres<br \/>\n    <span class=\"token key atrule\">restart<\/span><span class=\"token punctuation\">:<\/span> always<br \/>\n    <span class=\"token key atrule\">volumes<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> \/data\/openclaw\/postgres<span class=\"token punctuation\">:<\/span>\/var\/lib\/postgresql\/data<br \/>\n    <span class=\"token key atrule\">environment<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> POSTGRES_DB&#061;openclaw<br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> POSTGRES_USER&#061;openclaw<br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> POSTGRES_PASSWORD&#061;openclaw123<br \/>\n    <span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> openclaw<span class=\"token punctuation\">&#8211;<\/span>net<\/p>\n<p>  <span class=\"token key atrule\">redis<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token key atrule\">image<\/span><span class=\"token punctuation\">:<\/span> redis<span class=\"token punctuation\">:<\/span>7<span class=\"token punctuation\">&#8211;<\/span>alpine<br \/>\n    <span class=\"token key atrule\">container_name<\/span><span class=\"token punctuation\">:<\/span> openclaw<span class=\"token punctuation\">&#8211;<\/span>redis<br \/>\n    <span class=\"token key atrule\">restart<\/span><span class=\"token punctuation\">:<\/span> always<br \/>\n    <span class=\"token key atrule\">volumes<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> \/data\/openclaw\/redis<span class=\"token punctuation\">:<\/span>\/data<br \/>\n    <span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span><br \/>\n      <span class=\"token punctuation\">&#8211;<\/span> openclaw<span class=\"token punctuation\">&#8211;<\/span>net<\/p>\n<p><span class=\"token key atrule\">networks<\/span><span class=\"token punctuation\">:<\/span><br \/>\n  <span class=\"token key atrule\">openclaw-net<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token key atrule\">driver<\/span><span class=\"token punctuation\">:<\/span> bridge<\/p>\n<h4>8.3 \u542f\u52a8 OpenClaw<\/h4>\n<p><span class=\"token comment\"># \u521b\u5efa\u6570\u636e\u76ee\u5f55<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">mkdir<\/span> -p \/data\/openclaw<\/p>\n<p><span class=\"token comment\"># \u542f\u52a8\u6240\u6709\u670d\u52a1<\/span><br \/>\n<span class=\"token function\">docker-compose<\/span> up -d<\/p>\n<p><span class=\"token comment\"># \u67e5\u770b\u670d\u52a1\u72b6\u6001<\/span><br \/>\n<span class=\"token function\">docker-compose<\/span> <span class=\"token function\">ps<\/span><\/p>\n<p><span class=\"token comment\"># \u67e5\u770b\u65e5\u5fd7<\/span><br \/>\n<span class=\"token function\">docker-compose<\/span> logs -f<\/p>\n<h4>8.4 \u9a8c\u8bc1 OpenClaw<\/h4>\n<p><span class=\"token comment\"># \u6d4b\u8bd5 API<\/span><br \/>\n<span class=\"token function\">curl<\/span> http:\/\/localhost:8080\/api\/health<\/p>\n<p><span class=\"token comment\"># \u6d4b\u8bd5\u7248\u672c\u4fe1\u606f<\/span><br \/>\n<span class=\"token function\">curl<\/span> http:\/\/localhost:8080\/api\/version<\/p>\n<p><span class=\"token comment\"># \u5728\u6d4f\u89c8\u5668\u4e2d\u8bbf\u95ee<\/span><br \/>\n<span class=\"token comment\"># http:\/\/&lt;MacBook_IP&gt;:8080<\/span><\/p>\n<h3>\u4e5d\u3001\u7535\u6c60\u4fdd\u62a4<\/h3>\n<h4>9.1 \u914d\u7f6e\u7535\u6c60\u5145\u7535\u9650\u5236<\/h4>\n<p><span class=\"token comment\"># \u5b89\u88c5 TLP&#xff08;Linux \u9ad8\u7ea7\u7535\u6e90\u7ba1\u7406&#xff09;<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y tlp tlp-rdw<\/p>\n<p><span class=\"token comment\"># \u542f\u52a8 TLP \u670d\u52a1<\/span><br \/>\n<span class=\"token function\">sudo<\/span> systemctl <span class=\"token builtin class-name\">enable<\/span> tlp<br \/>\n<span class=\"token function\">sudo<\/span> systemctl start tlp<\/p>\n<p><span class=\"token comment\"># \u914d\u7f6e TLP<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">vim<\/span> \/etc\/tlp.conf<\/p>\n<p>TLP \u914d\u7f6e\u793a\u4f8b&#xff1a;<\/p>\n<p># \u7535\u6c60\u5145\u7535\u9650\u5236&#xff08;\u8bbe\u7f6e\u4e3a 80%&#xff09;<br \/>\nSTART_CHARGE_THRESH_BAT0&#061;75<br \/>\nSTOP_CHARGE_THRESH_BAT0&#061;80<\/p>\n<p># CPU \u9891\u7387\u8c03\u8282<br \/>\nCPU_MAX_PERF_ON_BAT&#061;40<br \/>\nCPU_MIN_PERF_ON_BAT&#061;10<br \/>\nCPU_MAX_PERF_ON_AC&#061;60<br \/>\nCPU_MIN_PERF_ON_AC&#061;20<\/p>\n<p># \u78c1\u76d8\u7535\u6e90\u7ba1\u7406<br \/>\nDISK_DEVICES&#061;&#034;sda sdb&#034;<br \/>\nDISK_APM_LEVEL_ON_BAT&#061;&#034;128 128&#034;<br \/>\nDISK_APM_LEVEL_ON_AC&#061;&#034;254 254&#034;<\/p>\n<p># USB \u81ea\u52a8\u6302\u8d77<br \/>\nUSB_AUTOSUSPEND&#061;1<\/p>\n<p># \u65e0\u7ebf\u7535\u6e90\u7ba1\u7406<br \/>\nWIFI_PWR_ON_BAT&#061;5<br \/>\nWIFI_PWR_ON_AC&#061;1<\/p>\n<h4>9.2 \u914d\u7f6e\u7535\u6e90\u7ba1\u7406<\/h4>\n<p><span class=\"token comment\"># \u5b89\u88c5\u7535\u6e90\u7ba1\u7406\u5de5\u5177<\/span><br \/>\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y powertop<\/p>\n<p><span class=\"token comment\"># \u8fd0\u884c powertop \u8fdb\u884c\u7535\u6e90\u5206\u6790<\/span><br \/>\n<span class=\"token function\">sudo<\/span> powertop &#8211;calibrate<\/p>\n<p><span class=\"token comment\"># \u751f\u6210\u7535\u6e90\u4f18\u5316\u5efa\u8bae<\/span><br \/>\n<span class=\"token function\">sudo<\/span> powertop &#8211;html<span class=\"token operator\">&#061;<\/span>powertop-report.html<\/p>\n<p><span class=\"token comment\"># \u5e94\u7528\u4f18\u5316\u5efa\u8bae<\/span><br \/>\n<span class=\"token function\">sudo<\/span> powertop &#8211;auto-tune<\/p>\n<h3>\u5341\u3001MacBook OpenClaw \u670d\u52a1\u5668\u90e8\u7f72\u6d41\u7a0b<\/h3>\n<p>\u4e3a\u4e86\u786e\u4fdd\u8001\u6b3e MacBook \u6210\u529f\u90e8\u7f72 OpenClaw \u5e76\u7a33\u5b9a\u8fd0\u884c&#xff0c;\u6211\u4eec\u9700\u8981\u5efa\u7acb\u4e00\u5957\u5b8c\u6574\u7684\u90e8\u7f72\u6d41\u7a0b\u3002\u4ee5\u4e0b\u662f\u90e8\u7f72\u6d41\u7a0b\u56fe&#xff1a;<\/p>\n<p>#mermaid-svg-pluHGozGipSsayey{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pluHGozGipSsayey .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pluHGozGipSsayey .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pluHGozGipSsayey .error-icon{fill:#552222;}#mermaid-svg-pluHGozGipSsayey .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pluHGozGipSsayey .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pluHGozGipSsayey .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pluHGozGipSsayey .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pluHGozGipSsayey .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pluHGozGipSsayey .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pluHGozGipSsayey .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pluHGozGipSsayey .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pluHGozGipSsayey .marker.cross{stroke:#333333;}#mermaid-svg-pluHGozGipSsayey svg{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pluHGozGipSsayey p{margin:0;}#mermaid-svg-pluHGozGipSsayey .label{font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;color:#333;}#mermaid-svg-pluHGozGipSsayey .cluster-label text{fill:#333;}#mermaid-svg-pluHGozGipSsayey .cluster-label span{color:#333;}#mermaid-svg-pluHGozGipSsayey .cluster-label span p{background-color:transparent;}#mermaid-svg-pluHGozGipSsayey .label text,#mermaid-svg-pluHGozGipSsayey span{fill:#333;color:#333;}#mermaid-svg-pluHGozGipSsayey .node rect,#mermaid-svg-pluHGozGipSsayey .node circle,#mermaid-svg-pluHGozGipSsayey .node ellipse,#mermaid-svg-pluHGozGipSsayey .node polygon,#mermaid-svg-pluHGozGipSsayey .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pluHGozGipSsayey .rough-node .label text,#mermaid-svg-pluHGozGipSsayey .node .label text,#mermaid-svg-pluHGozGipSsayey .image-shape .label,#mermaid-svg-pluHGozGipSsayey .icon-shape .label{text-anchor:middle;}#mermaid-svg-pluHGozGipSsayey .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pluHGozGipSsayey .rough-node .label,#mermaid-svg-pluHGozGipSsayey .node .label,#mermaid-svg-pluHGozGipSsayey .image-shape .label,#mermaid-svg-pluHGozGipSsayey .icon-shape .label{text-align:center;}#mermaid-svg-pluHGozGipSsayey .node.clickable{cursor:pointer;}#mermaid-svg-pluHGozGipSsayey .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pluHGozGipSsayey .arrowheadPath{fill:#333333;}#mermaid-svg-pluHGozGipSsayey .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pluHGozGipSsayey .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pluHGozGipSsayey .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pluHGozGipSsayey .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pluHGozGipSsayey .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pluHGozGipSsayey .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pluHGozGipSsayey .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pluHGozGipSsayey .cluster text{fill:#333;}#mermaid-svg-pluHGozGipSsayey .cluster span{color:#333;}#mermaid-svg-pluHGozGipSsayey div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pluHGozGipSsayey .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pluHGozGipSsayey rect.text{fill:none;stroke-width:0;}#mermaid-svg-pluHGozGipSsayey .icon-shape,#mermaid-svg-pluHGozGipSsayey .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pluHGozGipSsayey .icon-shape p,#mermaid-svg-pluHGozGipSsayey .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pluHGozGipSsayey .icon-shape rect,#mermaid-svg-pluHGozGipSsayey .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pluHGozGipSsayey .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pluHGozGipSsayey .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pluHGozGipSsayey :root{&#8211;mermaid-font-family:\\&#8221;trebuchet ms\\&#8221;,verdana,arial,sans-serif;}<span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u517c\u5bb9<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u4e0d\u517c\u5bb9<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u6210\u529f<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u5931\u8d25<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u662f<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u5426<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u662f<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u5426<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u662f<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/p>\n<p>\u5426<\/p>\n<p><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"edgeLabel\"><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u5f00\u59cb\u90e8\u7f72<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u68c0\u67e5\u786c\u4ef6\u517c\u5bb9\u6027<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u5907\u4efd\u539f\u6709\u7cfb\u7edf<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u66f4\u6362\u8bbe\u5907<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u4e0b\u8f7d Ubuntu ISO<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u5236\u4f5c\u542f\u52a8\u76d8<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u4ece USB \u542f\u52a8<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u5b89\u88c5 Ubuntu<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u7cfb\u7edf\u521d\u59cb\u5316<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u68c0\u67e5\u542f\u52a8\u76d8<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u914d\u7f6e\u7f51\u7edc<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u5b89\u88c5\u9a71\u52a8<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u9a71\u52a8\u5b89\u88c5\u6210\u529f?<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u7cfb\u7edf\u4f18\u5316<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u624b\u52a8\u5b89\u88c5\u9a71\u52a8<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u5b89\u88c5 Docker<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u90e8\u7f72 OpenClaw<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>OpenClaw \u542f\u52a8\u6210\u529f?<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u914d\u7f6e\u7535\u6c60\u4fdd\u62a4<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u68c0\u67e5\u914d\u7f6e<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u914d\u7f6e\u8fdc\u7a0b\u7ba1\u7406<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u914d\u7f6e\u76d1\u63a7\u544a\u8b66<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u6d4b\u8bd5\u670d\u52a1<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u6d4b\u8bd5\u901a\u8fc7?<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u90e8\u7f72\u5b8c\u6210<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u6392\u67e5\u95ee\u9898<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u751f\u6210\u90e8\u7f72\u62a5\u544a<\/p>\n<p><\/span><span class=\"nodeLabel\"><\/p>\n<p>\u7ed3\u675f<\/p>\n<p><\/span><\/p>\n<h4>10.1 \u521b\u5efa\u90e8\u7f72\u811a\u672c<\/h4>\n<p><span class=\"token shebang important\">#!\/bin\/bash<\/span><\/p>\n<p><span class=\"token assign-left variable\">LOG_FILE<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;\/var\/log\/macbook-openclaw-deploy.log&#034;<\/span><\/p>\n<p><span class=\"token function-name function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token builtin class-name\">echo<\/span> <span class=\"token string\">&#034;[<span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">date<\/span> <span class=\"token string\">&#039;&#043;%Y-%m-%d %H:%M:%S&#039;<\/span><span class=\"token variable\">)<\/span><\/span>] <span class=\"token variable\">$1<\/span>&#034;<\/span> <span class=\"token operator\">&gt;&gt;<\/span> <span class=\"token variable\">$LOG_FILE<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">check_hardware<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;Checking hardware compatibility&#8230;&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u68c0\u67e5 CPU<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">cpu_model<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span>lscpu <span class=\"token operator\">|<\/span> <span class=\"token function\">grep<\/span> <span class=\"token string\">&#039;Model name&#039;<\/span> <span class=\"token operator\">|<\/span> <span class=\"token function\">awk<\/span> -F: <span class=\"token string\">&#039;{print $2}&#039;<\/span> <span class=\"token operator\">|<\/span> <span class=\"token function\">xargs<\/span><span class=\"token variable\">)<\/span><\/span><br \/>\n    log <span class=\"token string\">&#034;CPU Model: <span class=\"token variable\">$cpu_model<\/span>&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u68c0\u67e5\u5185\u5b58<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">mem_total<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">free<\/span> -h <span class=\"token operator\">|<\/span> <span class=\"token function\">grep<\/span> Mem <span class=\"token operator\">|<\/span> <span class=\"token function\">awk<\/span> <span class=\"token string\">&#039;{print $2}&#039;<\/span><span class=\"token variable\">)<\/span><\/span><br \/>\n    log <span class=\"token string\">&#034;Total Memory: <span class=\"token variable\">$mem_total<\/span>&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u68c0\u67e5\u5b58\u50a8<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">disk_total<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">df<\/span> -h \/ <span class=\"token operator\">|<\/span> <span class=\"token function\">tail<\/span> -1 <span class=\"token operator\">|<\/span> <span class=\"token function\">awk<\/span> <span class=\"token string\">&#039;{print $2}&#039;<\/span><span class=\"token variable\">)<\/span><\/span><br \/>\n    log <span class=\"token string\">&#034;Total Disk: <span class=\"token variable\">$disk_total<\/span>&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u68c0\u67e5\u7f51\u7edc<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">network_interfaces<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">ip<\/span> <span class=\"token function\">link<\/span> show <span class=\"token operator\">|<\/span> <span class=\"token function\">grep<\/span> -E <span class=\"token string\">&#039;^[0-9]&#043;:&#039;<\/span> <span class=\"token operator\">|<\/span> <span class=\"token function\">awk<\/span> <span class=\"token string\">&#039;{print $2}&#039;<\/span> <span class=\"token operator\">|<\/span> <span class=\"token function\">cut<\/span> -d: -f1<span class=\"token variable\">)<\/span><\/span><br \/>\n    log <span class=\"token string\">&#034;Network Interfaces: <span class=\"token variable\">$network_interfaces<\/span>&#034;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">install_docker<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;Installing Docker&#8230;&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u5b89\u88c5 Docker<\/span><br \/>\n    <span class=\"token function\">curl<\/span> -fsSL https:\/\/get.docker.com -o get-docker.sh<br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">sh<\/span> get-docker.sh<\/p>\n<p>    <span class=\"token comment\"># \u542f\u52a8 Docker \u670d\u52a1<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> systemctl start <span class=\"token function\">docker<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> systemctl <span class=\"token builtin class-name\">enable<\/span> <span class=\"token function\">docker<\/span><\/p>\n<p>    <span class=\"token comment\"># \u5c06\u5f53\u524d\u7528\u6237\u6dfb\u52a0\u5230 docker \u7ec4<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">usermod<\/span> -aG <span class=\"token function\">docker<\/span> <span class=\"token environment constant\">$USER<\/span><\/p>\n<p>    log <span class=\"token string\">&#034;Docker installed successfully&#034;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">deploy_openclaw<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;Deploying OpenClaw&#8230;&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u521b\u5efa\u5de5\u4f5c\u76ee\u5f55<\/span><br \/>\n    <span class=\"token function\">mkdir<\/span> -p \/opt\/openclaw<br \/>\n    <span class=\"token builtin class-name\">cd<\/span> \/opt\/openclaw<\/p>\n<p>    <span class=\"token comment\"># \u514b\u9686 OpenClaw \u4ed3\u5e93<\/span><br \/>\n    <span class=\"token function\">git<\/span> clone https:\/\/github.com\/openclaw\/openclaw.git<\/p>\n<p>    <span class=\"token comment\"># \u8fdb\u5165\u9879\u76ee\u76ee\u5f55<\/span><br \/>\n    <span class=\"token builtin class-name\">cd<\/span> openclaw<\/p>\n<p>    <span class=\"token comment\"># \u590d\u5236\u914d\u7f6e\u6587\u4ef6<\/span><br \/>\n    <span class=\"token function\">cp<\/span> .env.example .env<\/p>\n<p>    <span class=\"token comment\"># \u521b\u5efa\u6570\u636e\u76ee\u5f55<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">mkdir<\/span> -p \/data\/openclaw<\/p>\n<p>    <span class=\"token comment\"># \u542f\u52a8\u6240\u6709\u670d\u52a1<\/span><br \/>\n    <span class=\"token function\">docker-compose<\/span> up -d<\/p>\n<p>    <span class=\"token comment\"># \u7b49\u5f85\u670d\u52a1\u542f\u52a8<\/span><br \/>\n    <span class=\"token function\">sleep<\/span> <span class=\"token number\">30<\/span><\/p>\n<p>    <span class=\"token comment\"># \u9a8c\u8bc1\u670d\u52a1<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">health_check<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">curl<\/span> -s -o \/dev\/null -w <span class=\"token string\">&#034;%{http_code}&#034;<\/span> http:\/\/localhost:8080\/api\/health<span class=\"token variable\">)<\/span><\/span><br \/>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">[<\/span> <span class=\"token string\">&#034;<span class=\"token variable\">$health_check<\/span>&#034;<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;200&#034;<\/span> <span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">then<\/span><br \/>\n        log <span class=\"token string\">&#034;OpenClaw deployed successfully&#034;<\/span><br \/>\n        <span class=\"token builtin class-name\">return<\/span> <span class=\"token number\">0<\/span><br \/>\n    <span class=\"token keyword\">else<\/span><br \/>\n        log <span class=\"token string\">&#034;OpenClaw deployment failed&#034;<\/span><br \/>\n        <span class=\"token builtin class-name\">return<\/span> <span class=\"token number\">1<\/span><br \/>\n    <span class=\"token keyword\">fi<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">configure_battery<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;Configuring battery protection&#8230;&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u5b89\u88c5 TLP<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y tlp tlp-rdw<\/p>\n<p>    <span class=\"token comment\"># \u542f\u52a8 TLP \u670d\u52a1<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> systemctl <span class=\"token builtin class-name\">enable<\/span> tlp<br \/>\n    <span class=\"token function\">sudo<\/span> systemctl start tlp<\/p>\n<p>    <span class=\"token comment\"># \u914d\u7f6e\u7535\u6c60\u5145\u7535\u9650\u5236<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">sed<\/span> -i <span class=\"token string\">&#039;s\/^START_CHARGE_THRESH_BAT0&#061;.*\/START_CHARGE_THRESH_BAT0&#061;75\/&#039;<\/span> \/etc\/tlp.conf<br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">sed<\/span> -i <span class=\"token string\">&#039;s\/^STOP_CHARGE_THRESH_BAT0&#061;.*\/STOP_CHARGE_THRESH_BAT0&#061;80\/&#039;<\/span> \/etc\/tlp.conf<\/p>\n<p>    log <span class=\"token string\">&#034;Battery protection configured&#034;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">configure_remote_management<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;Configuring remote management&#8230;&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u542f\u7528 SSH<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y openssh-server<br \/>\n    <span class=\"token function\">sudo<\/span> systemctl <span class=\"token builtin class-name\">enable<\/span> <span class=\"token function\">ssh<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> systemctl start <span class=\"token function\">ssh<\/span><\/p>\n<p>    <span class=\"token comment\"># \u914d\u7f6e\u9632\u706b\u5899<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> ufw allow <span class=\"token number\">22<\/span>\/tcp<br \/>\n    <span class=\"token function\">sudo<\/span> ufw allow <span class=\"token number\">8080<\/span>\/tcp<br \/>\n    <span class=\"token function\">sudo<\/span> ufw &#8211;force <span class=\"token builtin class-name\">enable<\/span><\/p>\n<p>    log <span class=\"token string\">&#034;Remote management configured&#034;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">configure_monitoring<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;Configuring monitoring&#8230;&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u5b89\u88c5\u76d1\u63a7\u5de5\u5177<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> -y <span class=\"token function\">htop<\/span> iotop nethogs<\/p>\n<p>    <span class=\"token comment\"># \u521b\u5efa\u76d1\u63a7\u811a\u672c<\/span><br \/>\n    <span class=\"token function\">cat<\/span> <span class=\"token operator\">&lt;&lt;<\/span> <span class=\"token string\">&#039;EOF&#039;<span class=\"token bash punctuation\"> <span class=\"token operator\">&gt;<\/span> \/usr\/local\/bin\/macbook-monitor.sh<\/span><br \/>\n#!\/bin\/bash<br \/>\nLOG_FILE&#061;&#034;\/var\/log\/macbook-monitor.log&#034;<\/p>\n<p>log() {<br \/>\n    echo &#034;[$(date &#039;&#043;%Y-%m-%d %H:%M:%S&#039;)] $1&#034; &gt;&gt; $LOG_FILE<br \/>\n}<\/p>\n<p>check_cpu() {<br \/>\n    local cpu_usage&#061;$(top -bn1 | grep &#034;Cpu(s)&#034; | awk &#039;{print $2}&#039; | cut -d&#039;%&#039; -f1)<br \/>\n    log &#034;CPU Usage: ${cpu_usage}%&#034;<br \/>\n}<\/p>\n<p>check_memory() {<br \/>\n    local mem_usage&#061;$(free | grep Mem | awk &#039;{printf(&#034;%.0f&#034;), $3\/$2 * 100.0}&#039;)<br \/>\n    log &#034;Memory Usage: ${mem_usage}%&#034;<br \/>\n}<\/p>\n<p>check_disk() {<br \/>\n    local disk_usage&#061;$(df -h \/data | tail -1 | awk &#039;{print $5}&#039; | cut -d&#039;%&#039; -f1)<br \/>\n    log &#034;Disk Usage: ${disk_usage}%&#034;<br \/>\n}<\/p>\n<p>check_battery() {<br \/>\n    local battery_status&#061;$(upower -i \/org\/freedesktop\/UPower\/devices\/battery_BAT0 | grep &#039;state&#039; | awk &#039;{print $2}&#039;)<br \/>\n    local battery_percentage&#061;$(upower -i \/org\/freedesktop\/UPower\/devices\/battery_BAT0 | grep &#039;percentage&#039; | awk &#039;{print $2}&#039;)<br \/>\n    log &#034;Battery Status: $battery_status, $battery_percentage&#034;<br \/>\n}<\/p>\n<p>check_openclaw() {<br \/>\n    local health_check&#061;$(curl -s -o \/dev\/null -w &#034;%{http_code}&#034; http:\/\/localhost:8080\/api\/health)<br \/>\n    log &#034;OpenClaw Health: $health_check&#034;<br \/>\n}<\/p>\n<p>main() {<br \/>\n    check_cpu<br \/>\n    check_memory<br \/>\n    check_disk<br \/>\n    check_battery<br \/>\n    check_openclaw<br \/>\n}<\/p>\n<p>main<br \/>\nEOF<\/span><\/p>\n<p>    <span class=\"token comment\"># \u6dfb\u52a0\u6267\u884c\u6743\u9650<\/span><br \/>\n    <span class=\"token function\">sudo<\/span> <span class=\"token function\">chmod<\/span> &#043;x \/usr\/local\/bin\/macbook-monitor.sh<\/p>\n<p>    <span class=\"token comment\"># \u914d\u7f6e\u5b9a\u65f6\u4efb\u52a1<\/span><br \/>\n    <span class=\"token punctuation\">(<\/span>crontab -l <span class=\"token operator\"><span class=\"token file-descriptor important\">2<\/span>&gt;<\/span>\/dev\/null<span class=\"token punctuation\">;<\/span> <span class=\"token builtin class-name\">echo<\/span> <span class=\"token string\">&#034;*\/15 * * * * \/usr\/local\/bin\/macbook-monitor.sh&#034;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">|<\/span> <span class=\"token function\">crontab<\/span> &#8211;<\/p>\n<p>    log <span class=\"token string\">&#034;Monitoring configured&#034;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">test_services<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;Testing services&#8230;&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u6d4b\u8bd5 OpenClaw<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">openclaw_test<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span><span class=\"token function\">curl<\/span> -s http:\/\/localhost:8080\/api\/health<span class=\"token variable\">)<\/span><\/span><br \/>\n    log <span class=\"token string\">&#034;OpenClaw Test: <span class=\"token variable\">$openclaw_test<\/span>&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u6d4b\u8bd5 SSH<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">ssh_test<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span>systemctl is-active <span class=\"token function\">ssh<\/span><span class=\"token variable\">)<\/span><\/span><br \/>\n    log <span class=\"token string\">&#034;SSH Test: <span class=\"token variable\">$ssh_test<\/span>&#034;<\/span><\/p>\n<p>    <span class=\"token comment\"># \u6d4b\u8bd5 Docker<\/span><br \/>\n    <span class=\"token builtin class-name\">local<\/span> <span class=\"token assign-left variable\">docker_test<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token variable\"><span class=\"token variable\">$(<\/span>systemctl is-active <span class=\"token function\">docker<\/span><span class=\"token variable\">)<\/span><\/span><br \/>\n    log <span class=\"token string\">&#034;Docker Test: <span class=\"token variable\">$docker_test<\/span>&#034;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token function-name function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    log <span class=\"token string\">&#034;&#061;&#061;&#061; MacBook OpenClaw Deployment Started &#061;&#061;&#061;&#034;<\/span><\/p>\n<p>    check_hardware<br \/>\n    install_docker<br \/>\n    deploy_openclaw<br \/>\n    configure_battery<br \/>\n    configure_remote_management<br \/>\n    configure_monitoring<br \/>\n    test_services<\/p>\n<p>    log <span class=\"token string\">&#034;&#061;&#061;&#061; MacBook OpenClaw Deployment Completed &#061;&#061;&#061;&#034;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>main<\/p>\n<p>\u6dfb\u52a0\u6267\u884c\u6743\u9650&#xff1a;<\/p>\n<p><span class=\"token function\">sudo<\/span> <span class=\"token function\">chmod<\/span> &#043;x \/usr\/local\/bin\/macbook-openclaw-deploy.sh<\/p>\n<h3>\u5341\u4e00\u3001\u603b\u7ed3<\/h3>\n<p>\u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4&#xff0c;\u6211\u4eec\u6210\u529f\u5c06\u8001\u6b3e MacBook \u6539\u9020\u4e3a\u8fd0\u884c OpenClaw \u7684 24 \u5c0f\u65f6\u670d\u52a1\u5668\u3002<\/p>\n<h4>11.1 \u4e3b\u8981\u4f18\u52bf<\/h4>\n<li>\u5e9f\u7269\u5229\u7528&#xff1a;\u8ba9\u95f2\u7f6e MacBook \u53d1\u6325\u4ef7\u503c<\/li>\n<li>\u6210\u672c\u4f4e\u5ec9&#xff1a;\u65e0\u9700\u8d2d\u4e70\u65b0\u8bbe\u5907<\/li>\n<li>\u6027\u80fd\u8db3\u591f&#xff1a;\u8001\u6b3e MacBook \u6027\u80fd\u8db3\u4ee5\u8fd0\u884c OpenClaw<\/li>\n<li>\u7a33\u5b9a\u53ef\u9760&#xff1a;Ubuntu \u7cfb\u7edf\u7a33\u5b9a&#xff0c;\u9002\u5408\u957f\u671f\u8fd0\u884c<\/li>\n<li>\u6613\u4e8e\u7ba1\u7406&#xff1a;\u57fa\u4e8e Docker&#xff0c;\u4fbf\u4e8e\u7ba1\u7406\u548c\u66f4\u65b0<\/li>\n<h4>11.2 \u6ce8\u610f\u4e8b\u9879<\/h4>\n<li>\u5b9a\u671f\u6e05\u7406\u6563\u70ed&#xff0c;\u9632\u6b62\u8fc7\u70ed<\/li>\n<li>\u5b9a\u671f\u68c0\u67e5\u7535\u6c60\u5065\u5eb7&#xff0c;\u9632\u6b62\u7535\u6c60\u635f\u574f<\/li>\n<li>\u5b9a\u671f\u5907\u4efd\u6570\u636e&#xff0c;\u786e\u4fdd\u6570\u636e\u5b89\u5168<\/li>\n<li>\u5b9a\u671f\u66f4\u65b0\u7cfb\u7edf&#xff0c;\u4fdd\u6301\u7cfb\u7edf\u5b89\u5168<\/li>\n<li>\u76d1\u63a7\u7cfb\u7edf\u8d44\u6e90&#xff0c;\u53ca\u65f6\u4f18\u5316\u914d\u7f6e<\/li>\n<h4>11.3 \u540e\u7eed\u6269\u5c55<\/h4>\n<p>\u53ef\u4ee5\u8fdb\u4e00\u6b65\u6269\u5c55\u529f\u80fd&#xff1a;<\/p>\n<ul>\n<li>\u6dfb\u52a0 Home Assistant \u667a\u80fd\u5bb6\u5c45\u63a7\u5236<\/li>\n<li>\u6dfb\u52a0 Nextcloud \u79c1\u6709\u4e91\u5b58\u50a8<\/li>\n<li>\u6dfb\u52a0 Plex \u5a92\u4f53\u670d\u52a1\u5668<\/li>\n<li>\u6dfb\u52a0\u5185\u7f51\u7a7f\u900f\u670d\u52a1<\/li>\n<li>\u6dfb\u52a0\u66f4\u591a AI \u6a21\u578b<\/li>\n<\/ul>\n<p>\u5e0c\u671b\u8fd9\u7bc7\u6559\u7a0b\u80fd\u5e2e\u52a9\u5927\u5bb6\u6210\u529f\u5c06\u8001\u6b3e MacBook \u6539\u9020\u4e3a OpenClaw \u670d\u52a1\u5668&#xff01;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260222003435-699a4f1b5b400.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8001 MacBook \u522b\u6254&#xff01;\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668<br \/>\n\u5f88\u591a\u7528\u6237\u624b\u4e2d\u90fd\u6709\u8001\u6b3e\u7684 MacBook&#xff0c;\u8fd9\u4e9b\u8bbe\u5907\u867d\u7136\u5df2\u7ecf\u4e0d\u9002\u5408\u4f5c\u4e3a\u4e3b\u529b\u529e\u516c\u7535\u8111&#xff0c;\u4f46\u5b83\u4eec\u7684\u6027\u80fd\u4f9d\u7136\u8db3\u4ee5\u8fd0\u884c OpenClaw \u672c\u5730 AI \u670d\u52a1\u3002\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u5c06\u8001\u6b3e MacBook \u6539\u9020\u4e3a 24 \u5c0f\u65f6\u8fd0\u884c\u7684 OpenClaw \u670d\u52a1\u5668\u3002<br \/>\n\u4e00\u3001\u786c\u4ef6\u8bc4\u4f30<br \/>\n1.1 \u8001\u6b3e MacBook \u578b\u53f7\u652f\u6301\u578b\u53f7CPU\u5185\u5b58\u5b58\u50a8\u517c\u5bb9\u6027\u63a8\u8350\u5ea6MacBook Pro 201<\/p>\n","protected":false},"author":2,"featured_media":76324,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[58,43,44],"topic":[],"class_list":["post-76325","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-linux","tag-43","tag-44"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/76325.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u8001 MacBook \u522b\u6254&#xff01;\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 \u5f88\u591a\u7528\u6237\u624b\u4e2d\u90fd\u6709\u8001\u6b3e\u7684 MacBook&#xff0c;\u8fd9\u4e9b\u8bbe\u5907\u867d\u7136\u5df2\u7ecf\u4e0d\u9002\u5408\u4f5c\u4e3a\u4e3b\u529b\u529e\u516c\u7535\u8111&#xff0c;\u4f46\u5b83\u4eec\u7684\u6027\u80fd\u4f9d\u7136\u8db3\u4ee5\u8fd0\u884c OpenClaw \u672c\u5730 AI \u670d\u52a1\u3002\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u5c06\u8001\u6b3e MacBook \u6539\u9020\u4e3a 24 \u5c0f\u65f6\u8fd0\u884c\u7684 OpenClaw \u670d\u52a1\u5668\u3002 \u4e00\u3001\u786c\u4ef6\u8bc4\u4f30 1.1 \u8001\u6b3e MacBook \u578b\u53f7\u652f\u6301\u578b\u53f7CPU\u5185\u5b58\u5b58\u50a8\u517c\u5bb9\u6027\u63a8\u8350\u5ea6MacBook Pro 201\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/76325.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-22T00:34:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260222003435-699a4f1b5b400.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/76325.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/76325.html\",\"name\":\"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-02-22T00:34:36+00:00\",\"dateModified\":\"2026-02-22T00:34:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/76325.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/76325.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/76325.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/76325.html","og_locale":"zh_CN","og_type":"article","og_title":"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u8001 MacBook \u522b\u6254&#xff01;\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 \u5f88\u591a\u7528\u6237\u624b\u4e2d\u90fd\u6709\u8001\u6b3e\u7684 MacBook&#xff0c;\u8fd9\u4e9b\u8bbe\u5907\u867d\u7136\u5df2\u7ecf\u4e0d\u9002\u5408\u4f5c\u4e3a\u4e3b\u529b\u529e\u516c\u7535\u8111&#xff0c;\u4f46\u5b83\u4eec\u7684\u6027\u80fd\u4f9d\u7136\u8db3\u4ee5\u8fd0\u884c OpenClaw \u672c\u5730 AI \u670d\u52a1\u3002\u672c\u6587\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u5c06\u8001\u6b3e MacBook \u6539\u9020\u4e3a 24 \u5c0f\u65f6\u8fd0\u884c\u7684 OpenClaw \u670d\u52a1\u5668\u3002 \u4e00\u3001\u786c\u4ef6\u8bc4\u4f30 1.1 \u8001\u6b3e MacBook \u578b\u53f7\u652f\u6301\u578b\u53f7CPU\u5185\u5b58\u5b58\u50a8\u517c\u5bb9\u6027\u63a8\u8350\u5ea6MacBook Pro 201","og_url":"https:\/\/www.wsisp.com\/helps\/76325.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-02-22T00:34:36+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/02\/20260222003435-699a4f1b5b400.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"10 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/76325.html","url":"https:\/\/www.wsisp.com\/helps\/76325.html","name":"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-02-22T00:34:36+00:00","dateModified":"2026-02-22T00:34:36+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/76325.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/76325.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/76325.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u8001 MacBook \u522b\u6254\uff01\u88c5 Linux \u90e8\u7f72 OpenClaw \u53d8\u8eab 24h \u670d\u52a1\u5668"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/76325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=76325"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/76325\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/76324"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=76325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=76325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=76325"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=76325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}