Następna strona Poprzednia strona Spis treści

9. Wstawki umożliwiające jednoczesne dziłanie PLIP i LP

Najlepszą drogą do jednoczesnego dziłania PLIP i LP jest użycie modułów. Możesz załadować moduł plip.o i wyrzucić go kiedy będziesz chciał drukować, lub na odwrót. Jeśli na prawdę potrzebujesz używać PLIP i LP naraz, wypróbuj poniższe wstawki.

9.1 PLIP i LP na tym samym porcie

W tej sytuacji możesz spróbować następujących wstawek do jądra.

Musisz zmodyfikować następujące fragmenty kodu, lecz pamiętaj wykonać kopię bezpieczeństwa:


--- begin ---

******** 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 */

---end---

Zrzeczenie: Otrzymałem te wstawki i opublikowałem je w niezmienionej postaci. Oznacza to, że używasz ich na własną odpowiedzialność. W najgorszym wypadku, skompilujesz jeszcze raz jądro używając starych plików.

9.2 PLIP i LP na osobnych portach

Jeśli masz przynajmniej dwa porty równoległe, możesz wypróbować następujące wstawki, które umożliwią pracę PLIP na jednym porcie, a LP na drugim.


--- begin ---

1. Comment out one line in kernel source file, 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. Kernel configuration

    PLIP (parallel port) support (CONFIG_PLIP) [n] y

    Parallel Printer support [y] y

3. Kernel message at startup

    lp1 at 0x0378, using polling driver
    .....
    NET3 PLIP version 2.0 gniibe@mri.co.jp
    plip2: Parallel port at 0x278, using assigned IRQ 5.

---end---

Zrzeczenie jak w sekcji 8.1


Następna strona Poprzednia strona Spis treści