安装了FreeBSD的计算机一般是做为服务器使用的,很多时候并没有连接键盘。当计算机启动后,再接上键盘,这是键盘并不工作。这是为什么呢?看一下kernel配置文件: device atkbd0 at atkbdc? irq 1 flags ox1 改为: device atkbd0 at atkbdc? irq 1 为什么要去掉flag配置 呢?用man atkbd命令看有如下信息: bit 0 (FAIL_IF_NO_KBD) By default the atkbd driver will install even if a keyboard is not actually connected to the system. This option prevents the driver from being installed in this situation. 比特0 (FAIL_IF_NO_KBD) 默认情况下即使没有连接键盘也装载atkbd驱动。这个选项使在这种情况下不再装载atkbd驱动。 以上描述有些令人糊涂,我们关注的是内核kernel,不是驱动。在man帮助里,"默认"指的是驱动,而不是内核。默认情况下,即使没有连接键盘,驱动也进行装载。另一方面,GENERIC内核使用flags 0x1,在没有连接键盘的时候卸载键盘驱动。 进行如上修改后重新编译内核,这样就可以解决系统启动后再连接键盘,键盘不工作的问题了。 那么为什么GENERIC内核不是默认总装载键盘驱动呢,答案是并不希望这样做,由于syscons的限制,系统无法同时处理多个键盘输入。因此,如果atkbd没有找到键盘,那么就让USB键盘驱动去找找是否有USB键盘安装。 对USB键盘有类似的问题,但还不知道该如何处理。