下一页 上一页 目录

8. 使 PLIP 和 LP 协同工作的补丁。

使 PLIP 和 LP 协同工作的最佳方式是使用内核模块:您可以在需要打印时加载 plip.o,反之亦然。如果您确实需要同时使用 PLIP 和 LP,请尝试以下补丁。

8.1 在同一端口上同时使用 PLIP 和 LP。

如果由于某种原因,您希望内核直接支持 PLIP 和 LP,您可以尝试这些补丁。

您必须修改以下代码片段,但在修改之前备份文件


******** modifications to linux/drivers/char/lp.c ***********************
struct lp_struct lp_table[] = {
        { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
NULL, },
/*      { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
NULL, },
        { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
NULL, },
*/
};
#define LP_NO 1

******** modifications to linux/drivers/net/Space.c ********************
#if defined(PLIP) || defined(CONFIG_PLIP)
    extern int plip_init(struct device *);
    static struct device plip2_dev = {
        "plip2", 0, 0, 0, 0, 0x278, 2, 0, 0, 0, NEXT_DEV, plip_init, };
    static struct device plip1_dev = {
        "plip1", 0, 0, 0, 0, 0x378, 7, 0, 0, 0, &plip2_dev, plip_init, };
/*    static struct device plip0_dev = {
        "plip0", 0, 0, 0, 0, 0x3BC, 5, 0, 0, 0, &plip1_dev, plip_init, };
*/
#   undef NEXT_DEV
#   define NEXT_DEV     (&plip1_dev)
#endif  /* PLIP */

当然,这里有标准免责声明:我收到了这些补丁,并且我“按原样”放置了它们。这意味着您需要自行承担风险尝试它们。 无论如何,您最大的麻烦应该只是恢复原始文件并重新编译。

8.2 在不同端口上使用 PLIP 和 LP。

如果您至少有 2 个并行端口,您可以尝试这些补丁,这应该允许您在一个端口上使用 PLIP,在另一个端口上使用 LP。

  1. 注释掉内核源文件 drivers/char/lp.c 中的一行。
    struct lp_struct lp_table[] = {
    { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
    { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
    /* { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, }, */
    }; 
        3 -> 2
    

  2. 内核配置
    PLIP (parallel port) support (CONFIG_PLIP) [n] y
    
    Parallel Printer support [y] y
    
  3. 启动时的内核消息
    lp1 at 0x0378, using polling driver
    .....
    NET3 PLIP version 2.0 gniibe@mri.co.jp
    plip2: Parallel port at 0x278, using assigned IRQ 5.
    

再次声明标准免责声明,如 8.1 节所述。


下一页 上一页 目录