簡體   English   中英

我新編譯的內核在 qemu 中丟失了網絡

[英]My newly compiled kernel loses Networking in qemu

我從源代碼編譯了一個內核: make defconfig make kvmconfig make -j 4在此之后,我將生成的 bzImage 用於我的 qemu 命令: qemu-system-x86_64 -hda debian.img -kernel bzImage -append "root=/dev/sda console=ttyS0" -nographic -m 4096 -smp 2 --enable-kvm -net user,hostfwd=tcp::10021-:22 -net nic它掛載了,我得到了一個 shell 和所有東西,但它失去了連接。 在 qemu 中,它記錄: [FAILED] Failed to start Raise network interfaces. See 'systemctl status networking.service' for details. [FAILED] Failed to start Raise network interfaces. See 'systemctl status networking.service' for details. 有人可以指導我嗎? 我已經在 QEMU 和 eth0 網絡上咨詢了Linux vanilla 內核,但它沒有解決我的問題。 另外,我不是在尋找硬核 qemu-bridge-solutions。 我很確定某些網絡驅動程序沒有被加載,但我不知道如何解決它。 或者我可能缺少一些內核 .config 選項。

您正在使用用戶套接字。 為此,qemu 在其主機進程中創建一個常規套接字,並將客戶機中特定端口的數據包轉發到主機套接字。 這是可行的,但我覺得很煩人。

我總是更喜歡創建一個 Tap 設備並使用這些 QEMU 開關將其橋接到我的物理接口:

-netdev tap,ifname=tap0,script=no,downscript=no,id=my_net_id \
-device driver=virtio-net,netdev=my_net_id

這樣您就擁有完整的網絡功能,並且不需要使用一些奇怪的端口重定向。

正在尋找這個問題的答案。 對於其他尋求幫助的人,OP 所指的 dhclient 命令是(在此處找到):

dhclient -v <interface> 

其中 interface 是在ip a結果中顯示的任何網絡適配器。

為了在重新啟動后保持此更改,我通過插入以下內容修改了 /etc/network/interfaces 文件:

auto <interface>
iface <interface> inet dhcp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM