恭迎訪問東莞市穎鑫電子科技有限公司

10年專註電子元器件生产研制

产品品質有保 售後7×24小時效勞

24小時咨詢熱線:13827297626
聯絡我們
tel24小時咨詢熱線: 13827297626

通話:13827297626

話機:13827297626

郵箱:435281082@qq.com

位置:廣東省東莞市樟木頭鎮圩鎮荔苑路7號星耀國際

您的位置:首頁>>開發類資料>>正文

開發類資料

QEMU模擬樹莓派無法訪問本地展現器怎麼解決?

發布時間:2023-05-06 點此:749次

本文主要涉及的問題是在使用EMU模擬樹莓派時無法訪問本地展現器的問題。EMU是一款用於模擬各種硬件平臺的開源虛擬化軟件,而樹莓派是一款廣受恭迎的基於Linux系統的單板計算機。在使用EMU模擬樹莓派時,有些用戶會遇到無法訪問本地展現器的問題,導致無法正常連接互聯網。

樹莓派主板

為了解決這個問題,我們需要先了解一下EMU模擬樹莓派的網絡配置方式。在EMU中,可以通過使用“-netdev user,id=net0”和“-device virtio-net,netdev=net0”命令來配置虛擬機的網絡連接,其中“-netdev user,id=net0”表示使用用戶模式網絡,而“-device virtio-net,netdev=net0”則表示使用virtio網卡連接網絡。

那麼,為什麼會出現無法訪問本地展現器的問題呢?原因是在使用用戶模式網絡時,虛擬機與主機之間是通過NT方式進行網絡連接的,而NT方式會將虛擬機的IP位置轉換為主機的IP位置,導致虛擬機無法直接訪問主機上的展現器。

那麼該如何解決這個問題呢?下面我們將給出詳細的回答。

解決方法一使用橋接模式網絡

橋接模式網絡是一種將虛擬機直接連接到物理網絡中的網絡連接方式,可以使虛擬機與主機之間達成直接通訊,從而可以正常訪問本地展現器。詳細配置方式如下

1. 首先需要關閉虛擬機,使用以下命令創建一個橋接網絡

sudo brctl addbr br0

sudo brctl addif br0 eth0

sudo brctl addif br0 tap0

sudo ifconfig eth0 0.0.0.0 up

sudo ifconfig tap0 0.0.0.0 up

sudo ifconfig br0 192.168.1.100 netmask 255.255.255.0 up

其中,eth0為主機的網卡名稱,tap0為虛擬機的網卡名稱,192.168.1.100為橋接網絡的IP位置。

2. 在啟動虛擬機時,使用以下命令配置橋接模式網絡

qemu-system-arm -kernel kernel-qemu-4.4.34-jessie \

-cpu arm1176 -m 512 -M versatilepb -no-reboot \

-serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \

-net nic,model=virtio -net tap,ifname=tap0,script=no,downscript=no

其中,-net nic,model=virtio表示使用virtio網卡連接網絡,-net tap,ifname=tap0,script=no,downscript=no表示使用tap0網卡連接網絡。

3. 在虛擬機中配置IP位置和網關

sudo ifconfig eth0 192.168.1.101 netmask 255.255.255.0 up

sudo route add default gw 192.168.1.100

其中,192.168.1.101為虛擬機的IP位置,192.168.1.100為橋接網絡的IP位置。

通過以上步驟,就可以成功地將虛擬機連接到物理網絡中,從而可以正常訪問本地展現器。

解決方法二使用端口轉發

另一種解決無法訪問本地展現器的方法是使用端口轉發,即將主機上的展現器端口轉發到虛擬機中,從而達成虛擬機的網絡連接。詳細配置方式如下

1. 在啟動虛擬機時,使用以下命令配置用戶模式網絡

qemu-system-arm -kernel kernel-qemu-4.4.34-jessie \

-cpu arm1176 -m 512 -M versatilepb -no-reboot \

-serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \

-net nic,model=virtio -net user,hostfwd=tcp5022-22

其中,-net nic,model=virtio表示使用virtio網卡連接網絡,-net user,hostfwd=tcp5022-22表示將主機上的展現器端口5022轉發到虛擬機中的22端口。

2. 在虛擬機中連接本地展現器

ssh pi@127.0.0.1 -p 5022

其中,pi為樹莓派的用戶名,127.0.0.1為本地IP位置,5022為端口號。

通過以上步驟,就可以成功地將主機上的展現器端口轉發到虛擬機中,從而達成虛擬機的網絡連接。

本文主要展現了在使用EMU模擬樹莓派時無法訪問本地展現器的問題,並供應了兩種解決方法使用橋接模式網絡和使用端口轉發。雖然這兩種方法各有優缺點,但都可以有效地解決無法訪問本地展現器的問題,使得虛擬機可以正常連接互聯網。

在線客服
效勞熱線

24小時咨詢熱線:

13827297626

徽信咨詢
穎鑫電子
返回頂部