導航:首頁 > 源碼編譯 > qemu啟動編譯的內核出現卡頓

qemu啟動編譯的內核出現卡頓

發布時間:2024-08-27 22:36:27

① 實例演示 | 用Kmp分析內核崩潰原因

本文將通過實例展示如何在linux系統中利用kmp分析內核崩潰的原因,以aarch64架構的4.19內核為例。


kmp服務與內核崩潰轉儲


kmp是Linux內核中一個基於kexec的高級崩潰轉儲機制,當系統發生內核崩潰時,它會捕獲內存狀態並保存為vmcore文件。通過kernel command line參數crashkernel指定預留內存大小,可通過cat /proc/meminfo檢查預留情況。


啟用kmp服務

首先,確保安裝了kexec-tools,可通過RPM包管理器安裝。啟動kmp服務並檢查其狀態,然後通過發送sysrq-trigger信號觸發內核崩潰,系統會自動重啟並在/var/crash目錄生成coremp文件。


qemu中使用kmp

在qemu中模擬內核崩潰,通過設置panic選項和使用mp-guest-memory命令,可以生成coremp文件。接著,可以利用crash工具對vmcore文件進行分析,確保crash工具版本與內核版本匹配。


crash工具分析vmcore


內核崩潰後,分析crash轉儲文件,首先需要使用crash工具與對應的vmlinux文件結合。通過編譯並安裝arm64版本的crash工具,執行crash命令進行深度分析,定位問題具體代碼位置。


內核panic實例

以內核訪問空指針導致的panic為例,通過編寫驅動模塊並插入內核,我們可以看到call trace。反匯編代碼和crash分析可以幫助我們確認是哪個分支出錯,如head成員的值指向0導致的崩潰。


總結,kmp和crash工具是強大的內核崩潰分析工具,通過實際操作和分析,我們可以更有效地診斷和修復內核崩潰問題。

② virtualbox里的linux在啟動的時候提示說memory for crash kernel(0*0 to 0*0)notwithin permissible range

解決辦法:
這個信息由於沒有配置kmp服務的原因,並沒有什麼危害可以忽略。
kmp是一個新的,而且非常可信賴的內核崩潰轉儲機制。崩潰轉儲數據可以從一個新啟動的內核的上下文中獲取,而不是從已經崩潰的內核的上下文。當系統崩潰時,kmp使用kexec啟動到第二個內核。第二個內核通常叫做捕獲內核(capture kernel),以很小內存啟動,並且捕獲轉儲鏡像。

方法一,在圖形模式下配置:
我們可以採用下面的圖形界面進行配置和啟用,步驟如下:
----配置kmp。
選擇菜單「Applications」——「system tools」——「kmp」,彈出「Kernel Dump Configuration」窗口,選中Enable kmp,設置New kmp Memory(MB): 128MB(推薦大小)
----重新啟動系統。

方法二: 編輯/etc/grub.conf,在內核行的末尾添加 crashkernel=128@16M。
舉例:
kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M
修改之後,重啟系統。128M內存(從16M開始)不被正常的系統使用,為捕獲內核保留。
現在,保留內存已經設置了,打開kmp初始腳本,啟動服務:
# chkconfig kmp on
# service kmp start

試試以上的方法,不行的話,再跟問!!!

③ KVM、QEMU和KQemu有什麼區別

1、KVM是一套虛擬機管理系統,包括內核虛擬構架和處理器相關模塊,其借用了 QEMU其它一些組件,KVM的非內核部分是由QEMU實現的;載入了模塊後,才能進一步通過其他工具創建虛擬機。

2、QEMU是另外的一套虛擬機管理系統,Kqemu是QEMU的加速器,可以認為是QEMU的一個插件;QEMU可以虛擬出不同架構的虛擬機,如在x86平台上可以虛擬出power機器。

3、KVM負責cpu虛擬化+內存虛擬化,實現了cpu和內存的虛擬化,但KVM不能模擬其他設備。QEMU是模擬IO設備(網卡,磁碟),KVM加上QEMU之後就能實現真正意義上伺服器虛擬化。因為用到了上面兩個東西,所以一般都稱之為QEMU-KVM。

(3)qemu啟動編譯的內核出現卡頓擴展閱讀:

1、KVM 技術已經從最初的基礎SOHO辦公型,發展成為企業 IT 基礎機房設施管理系統。可以從kvm 客戶端管理軟體輕松的直接訪問位於多個遠程位置的伺服器和設備。

2、QEMU在GNU/Linux平台上使用廣泛。具有高速度及跨平台的特性,通過KQEMU這個閉源的加速器,QEMU能模擬至接近真實電腦的速度。

3、KQEMU現可運行在基於x86或x86_64的Linux2.4或Linux 2.6主機上。

④ qemu如何使用

qemu常用網路模式是user、tap。
user使用有局限性,
1) 由於其在QEMU內部實現所有網路協議棧,因此其性能較差。
2) 不支持部分網路功能(如ICMP),所以不能在客戶機中使用ping命令測試外網連通性。
3) 不能從宿主機或外部網路直接訪問客戶機。需要作地址重定向。
tap方式網路沒有這些限制。
通過tap又可以實現bridge和nat方式的網路連接。

閱讀全文

與qemu啟動編譯的內核出現卡頓相關的資料

熱點內容
演算法失效分析 瀏覽:756
gcc編譯選項給gdb調試 瀏覽:588
ios和android前景好 瀏覽:62
蘋果如何藍牙傳送安卓app 瀏覽:550
方舟編譯器mod怎麼用 瀏覽:760
伺服器地址欄在哪裡 瀏覽:395
做安檢還是程序員好 瀏覽:529
程序員最火的bug 瀏覽:938
騰訊文件夾英文怎麼寫 瀏覽:127
pdf內碼 瀏覽:434
微信小程序文件夾怎麼發給好友 瀏覽:971
java不能被繼承的類 瀏覽:163
蘋果app網址怎麼添加 瀏覽:910
php明年的今天 瀏覽:115
麒麟970也能用方舟編譯器么 瀏覽:476
金融實驗大作業python 瀏覽:795
雲伺服器搭建聊天室 瀏覽:603
怎麼在手機上下載荔枝app 瀏覽:18
湖南戴爾伺服器雲空間 瀏覽:363
聯想驅動怎麼解壓 瀏覽:268