这几天弄qemu,发现几个怪问题,先记录在这里:
1. -net socket 的listen选项必须包含name属性,这是一个bug。net_client_init代码中name会一定赋NULL值,net_listen_client_init中则会访问他,因此命令行中需要添加一个name.
2.rtl8139(缺省情况下)竟然对mac地址有选择性支持,guest os为gentoo,内核编译中已经包含8139驱动。
  如下命令启动成功:
qemu-system-x86_64  -m 128 -hda rt1/hda.img -localtime \
 -k en-us\
 -net nic,macaddr=00:e0:fc:00:00:01 \
 -net socket,name=sck,listen=:7001 \
 script=no -boot c &

qemu-system-x86_64  -m 128 -hda rt1/hda.img -localtime \
 -k en-us\
 -net nic \
 -net socket,name=sck,listen=:7001 \
 script=no -boot c &

  如下命令启动成功,但是操作系统无法成功加载网卡:
qemu-system-x86_64  -m 128 -hda rt1/hda.img -localtime \
 -k en-us\
 -net nic 00:e0:fc:00:00:02\
 -net socket,name=sck,listen=:7001 \
 script=no -boot c &

qemu-system-x86_64  -m 128 -hda rt1/hda.img -localtime \
 -k en-us\
 -net nic 00:e0:4f:00:00:01\
 -net socket,name=sck,listen=:7001 \
 script=no -boot c &

qemu-system-x86_64  -m 128 -hda rt1/hda.img -localtime \
 -k en-us\
 -net nic 00:e0:fc:00:00:03\
 -net socket,name=sck,listen=:7001 \
 script=no -boot c &