A. linux系統重啟網卡後網路不通(NetworkManager篇)
<div style="font-weight: 400;">
<span></span>
<h1>個人博客:<a href="https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fwww.mianshi.host" target="_blank" rel="nofollow">點擊這里進入</a></h1>
<span></span>
<h3>一.故障現象</h3>
<blockquote>
<p>RHEL7.6系統,使用nmcli綁定雙網卡後,再使用以下命令重啟network服務後主機網路異常,導致無法通過ssh遠程登錄系統。</p>
</blockquote>
<p> <code># systemctl restart network</code></p>
<span></span>
<h3>二.理論知識</h3>
<blockquote>
<p>Network service的制御網路介面配置信息改動後,網路服務必須從新啟動,來激活網路新配置的使得配置生效,這部分操作和從新啟動系統時時一樣的作用。制御(控制)是/etc/init.d/network這個文件,可以用這個文件後面加上下面的參數來操作網路服務。例如:
<code># /etc/init.d/network restart</code>
同樣也可以用service這個命令來操作網路服務例如:
<code># service network restart</code>
<code># systemctl restart network</code> (NetworManager)是檢測網路、自動連接網路的程序。無論是無線還是有線連接,它都可以令您輕松管理。對於無線網路,網路管理器可以自動切換到最可靠的無線網路。利用網路管理器的程序可以自由切換在線和離線模式。網路管理器可以優先選擇有線網路,支持 VPN。網路管理器最初由 Redhat 公司開發,現在由 GNOME 管理</p>
</blockquote>
<span></span>
<h3>三.環境分析</h3>
<blockquote>
<p>系統版本:Red Hat Enterprise Linux Server release 7.6
內核版本:3.10.0-957.el7.x86_64
硬體類型:Huawei 2288H V5
首先檢查系統網路配置,該系統配置兩塊bonding設備,分別是:
bond0:業務網路
bond1: Oracle RAC心跳網路 分析系統日誌,當重啟network服務時(systemctl restart network),系統messages日誌中無明顯異常,測試發現,當停止NetworkManager服務後,問題現象消失,即執行如下操作:</p>
</blockquote>
<p> <code># systemctl stop NetworkManager</code></p>
<blockquote>
<p>此時再次重啟network服務:</p>
</blockquote>
<p> <code># systemctl restart network</code></p>
<blockquote>
<p>可以很快ping通bond0的業務地址10.116.6.194。 進一步分析發現,如果不停止NetworkManager服務,而是修改網卡配置文件,在bonding網卡和組成bonding的slave網卡的配置文件中增加一行配置,也可以解決該問題。</p>
</blockquote>
<p> <code>NM_CONTROLLED=no</code></p>
<blockquote>
<p>參考紅帽RHEL7配置網卡bonding的官方文檔: <a href="https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Faccess.redhat.com%2Fdocumentation%2Fen-us%2Fred_hat_enterprise_linux%2F7%2Fhtml%2Fnetworking_guide%2Fsec-network_bonding_using_the_command_line_interface" target="_blank" rel="nofollow">https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-network_bonding_using_the_command_line_interface</a>
可以看到,官方文檔的配置示例中設置了NM_CONTROLLED=」no」:
<img src="https://upload-images.jianshu.io/upload_images/24736011-d9a54d4b359b41d0.png" alt="">
<img src="https://upload-images.jianshu.io/upload_images/24736011-466df81c683a5113.png" alt=""></p>
</blockquote>
<span></span>
<h3>四.原廠問題建議</h3>
<blockquote>
<p>該問題是由於NetworkManager服務引起,可以通過如下兩種方法解決:</p>
</blockquote>
<ul>
<li>在網卡配置文件中增加參數NM_CONTROLLED=no(「no」的引號可以不寫),設置後重啟network服務生效。設置NM_CONTROLLED=no的目的是將網路設備脫離NetworkManager服務的管理,設置後該網路設備僅由network服務管理,不受NetworkManager服務控制,因而nmcli命令對該網路設備不再生效;</li>
<li>停止並禁用NetworkManager服務,停用後所有網路設備由network服務管理,不能通過nmcli命令來管理網路設備:</li>
</ul>
<p> <code># systemctl stop NetworkManager</code>
<code># systemctl disable NetworkManager</code></p>
<span></span>
<h3>五.解決方案</h3>
<blockquote>
<p>據上所述,可關閉NetworkManager服務或在BOND配置文件中添加參數,但因環境需要,需使用nmcli命令,故無法關閉NetworkManager,在多輪測試中進行思考,既然NetManager與network服務沖突,但nmcli命令屬於NetworkManager,systemctl一般用來管理network,考慮兩者管理命令可能也存在沖突後進行了一波測試,使用NetworkManager的nmcli進行網卡的重啟操作,使用以下命令後,網路可以即刻ping通並通過SSH連接</p>
</blockquote>
<p> <code># nmcli connection down 網口名稱</code>
<code># nmcli connection up 網口名稱</code></p>
<span></span>
<h3>六.結論</h3>
<blockquote>
<p>因NetworkManager與network服務存在沖突,且雙網卡綁定時所使用的的nmcli進行綁定,nmcli歸屬於NetworkManager,故重啟網卡時應用nmcli命令up/down,不應使用systemctl進行網卡重啟</p>
</blockquote>
B. 全志h3功耗
全志h3功耗:全志A20雙核雙顯,主頻1GHz,Cotex-A7架構。
在與intel集顯搭配時實現手動切換;在與 AMD 平台(比如Fusion APU)搭配時,當獨顯進行渲染時,可利用 APU 的通用計算能力進行 DirectCompute 計算,必要時也可進行協助處理與渲染。綜合了雙 GPU 性能,這其實就是一種 APU-to-dGPU 的 ATI Hybrid CrossFireX 交火模式。
系統支持:
Windows 7以上系統已經支持核心顯卡和獨立顯卡的智能切換,MAC的Lion也已經支持了,但Linux由於分支較多,而且雙顯卡切換是要系統內核支持的。要完美的系統內核支持,最好用3.0以上的內核,再加上完美的配置才行的,Linux下雙顯卡的配置不是很方便的,只能用命令行來配置。
C. Linux是哪個國家開發的操作系統。
芬蘭赫爾辛基人
類UNIX操作系統,其內核由林納斯·本納第克特·托瓦茲於1991年第一次釋出,它主要受到Minix和Unix思想的啟發,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的Unix工具軟體、應用程序和網路協議。
它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。Linux有上百種不同的發行版,如基於社區開發的debian、archlinux,和基於商業開發的Red Hat Enterprise Linux、SUSE、oracle linux等。
(3)h3linux擴展閱讀
林納斯·本納第克特·托瓦茲(Linus Benedict Torvalds,1969年12月28日- ),芬蘭赫爾辛基人,著名的電腦程序員,Linux內核的發明人及該計劃的合作者,畢業於赫爾辛基大學計算機系,1997年至2003年在美國加州矽谷任職於全美達公司;
現受聘於開放源代碼開發實驗室(OSDL:Open Source Development Labs, Inc),全力開發Linux內核。與妻子托芙(Tove,芬蘭前女子空手道冠軍)育有三個女孩。著有自傳《樂者為王》。
D. 能不能告訴我樹莓派與其他的Linux開發板比如正點原子的alpha開發板的區別呢
對於開發板,我玩過很多,感覺沒什麼太大區別,對於初學者,資料要詳細,一般都是交怎麼玩,只要學會怎麼燒寫uboot、內核,怎麼編譯uboot、內核,怎麼搭建開發環境,一般會給交叉編譯工具鏈,uboot Linux內核 qt庫等源碼包,他們都是編譯過得,按照步驟來,都完成了,剩下的路就要看自己的了,如果是應用程序開發,不用太管硬體和驅動方向,和Windows上面編程差不多,如果你是玩硬體的,學學linux驅動開發,linux系統移植,這些方面手冊一般都沒有,需要論壇上面找或者相關書籍,我用過ARM9(天嵌的),A8(友善之臂的),H3(友善的),感覺下來,基礎資料都差不多,都能教你基本操作,具體選什麼方向,還得看自己
E. 關於linux下的多線程使用sem信號量的運行問題
不是信號量的問題
printf函數,是先寫到輸出緩沖,遇到\n時,或者緩沖區滿時,或者有強制輸出(fflush)時,才會將緩沖區里的內容輸出到屏幕上(標准輸出設備:stdout)。你的代碼裡面並沒有以上3個觸發條件的任意一種,所以printf的內存沒有實際輸出到屏幕上。
你只要在每個printf函數後面加上fflush(stdout);就可以了。
F. orange pi pc ,ubuntu 下,h3 linux 系統編譯,按照教程配置,找不到編譯器,怎麼解
sudo bash ./xxx.sh
貌似ubuntu的shell腳本都需要提升一下許可權.