最近為了開發給在 Snappy 架構下的 Ubuntu Core 用的、可以自動化 USB storage 讀寫測試的工具,採用了 kvm 虛擬機器作為開發環境。因為要測試標的是 USB ,所以花了一點時間了解了一下如何連結實體的 USB storage 裝置到使用 kvm 啟動的 image 。
在 Ubuntu desktop 下使用指令:
要注意的是指定最後面兩個參數的值時比較麻煩,因為該值會根據 host machine 的狀態而改變。我自己是這樣找對應的值:
在 Ubuntu desktop 下使用指令:
sudo kvm -m 512 -redir :8090::80 -redir :8022::22 the-image-you-want-to-test.img -usb -device usb-host,hostbus=2,hostaddr=11
要注意的是指定最後面兩個參數的值時比較麻煩,因為該值會根據 host machine 的狀態而改變。我自己是這樣找對應的值:
- 插入 USB storage
- 使用指令 lsusb 去看上面的 Bus and Device number ,把這兩個數字記下
- 退出 USB storage
- 啟動 kvm ,啟動時,根據上面的 Bus and Device number 分別填數 hostbus and hostaddr 。要注意的是這時候 hostaddr 要加 1 (因為重新插拔了一次。現在的 Linux kernel 會給裝置編號加一表示是新找到的裝置,用來和前一次區隔)
- 這時候再插入 USB storage ,原本在 host machine 會自動掛載的行為不會發生(推測 event signal 被 kvm 攔下來了);稍候也可以看到在 guest machine 中的 dmesg 指令指出有新的 USB storage 插入了。
沒有留言:
張貼留言