1 |
значит так. попробую описать все экстримально просто - чтобы любой
|
2 |
смог повторить.
|
3 |
|
4 |
Использовались
|
5 |
hcfpcimodem 1.10-r2
|
6 |
gentoo-sources 2.6.18-r4
|
7 |
|
8 |
|
9 |
удаляем старье
|
10 |
#emerge --unmerge hcfpcimodem
|
11 |
|
12 |
убедимся, что /usr/src/linux указывает на наш новый кернел - скажем,
|
13 |
это 2.6.18-gentoo-r4. билдим наш новый кернел.
|
14 |
предлагаю использовать genkernel, у которого в конфиге
|
15 |
/etc/genkernel.conf стоит MENUCONFIG="yes" и BOOTLOADER="grub" если вы
|
16 |
используете grub.
|
17 |
|
18 |
Это позволит нам сонфигурировать и установить наш кернел не вдаваясь в
|
19 |
подробности (хотя если это информация для вас важна, то и не стоит
|
20 |
конфигурировать).
|
21 |
|
22 |
#genkernel all
|
23 |
|
24 |
бутимся в новом кернеле.
|
25 |
|
26 |
|
27 |
затем
|
28 |
|
29 |
#nano -w /usr/src/linux/fs/partitions/devfs.h
|
30 |
|
31 |
------- если нет, то вставляем ----------
|
32 |
#define devfs_add_disk(disk) do { } while (0)
|
33 |
#define devfs_add_partitioned(disk) do { } while (0)
|
34 |
#define devfs_remove_disk(disk) do { } while (0)
|
35 |
------------------------------------------------------
|
36 |
|
37 |
затем
|
38 |
|
39 |
#nano -w /usr/src/linux/include/linux/devfs_fs_kernel.h
|
40 |
|
41 |
------- если нет, то вставляем ----------
|
42 |
#ifndef _CONEXANT_KERNEL_IS_A_SHEET_H
|
43 |
#define _CONEXANT_KERNEL_IS_A_SHEET_H
|
44 |
|
45 |
#include <linux/fs.h>
|
46 |
#include <linux/config.h>
|
47 |
#include <linux/spinlock.h>
|
48 |
#include <linux/types.h>
|
49 |
|
50 |
#include <asm/semaphore.h>
|
51 |
|
52 |
#define DEVFS_SUPER_MAGIC 0x1373
|
53 |
|
54 |
static inline int devfs_mk_bdev(dev_t dev, umode_t mode, const char *fmt, ...)
|
55 |
{
|
56 |
return 0;
|
57 |
}
|
58 |
static inline int devfs_mk_cdev(dev_t dev, umode_t mode, const char *fmt, ...)
|
59 |
{
|
60 |
return 0;
|
61 |
}
|
62 |
static inline int devfs_mk_symlink(const char *name, const char *link)
|
63 |
{
|
64 |
return 0;
|
65 |
}
|
66 |
static inline int devfs_mk_dir(const char *fmt, ...)
|
67 |
{
|
68 |
return 0;
|
69 |
}
|
70 |
static inline void devfs_remove(const char *fmt, ...)
|
71 |
{
|
72 |
}
|
73 |
static inline int devfs_register_tape(const char *name)
|
74 |
{
|
75 |
return -1;
|
76 |
}
|
77 |
static inline void devfs_unregister_tape(int num)
|
78 |
{
|
79 |
}
|
80 |
static inline void mount_devfs_fs(void)
|
81 |
{
|
82 |
return;
|
83 |
}
|
84 |
|
85 |
#endif /* _CONEXANT_KERNEL_IS_A_SHEET_H */
|
86 |
------------------------------------------------------
|
87 |
|
88 |
затем
|
89 |
|
90 |
#nano -w /usr/src/linux/include/linux/version.h
|
91 |
|
92 |
------- если нет, то вставляем ----------
|
93 |
#define UTS_RELEASE "2.6.18-gentoo-r4"
|
94 |
------------------------------------------------------
|
95 |
обратите внимание, строка содержит точное имя нащего кернела
|
96 |
|
97 |
|
98 |
затем
|
99 |
|
100 |
#emerge -D hcfpcimodem
|
101 |
(но не делаем hcfpciconfig)
|
102 |
|
103 |
у меня, например,
|
104 |
затем
|
105 |
|
106 |
#nano -w /usr/lib/hcfpcimodem/modules/GPL/serial_cnxt.c
|
107 |
|
108 |
на строке ~936 делаем следующее (коментим devfs_name):
|
109 |
|
110 |
------------------------------------------------------
|
111 |
....
|
112 |
.driver_name ....
|
113 |
/* .devfs_name = "ttyS"CNXTSERDEV, */
|
114 |
.dev_name ....
|
115 |
.....
|
116 |
------------------------------------------------------
|
117 |
|
118 |
затем
|
119 |
|
120 |
#hcfpciconfig
|
121 |
|
122 |
настраиваем знакомыми способами и пользуем это убогое детище
|
123 |
|
124 |
в самом конце (если не сделано)
|
125 |
|
126 |
#/etc/init.d/hcfpci start
|
127 |
#rc-update add hcfpci default
|
128 |
|
129 |
|
130 |
с уважением, я
|
131 |
|
132 |
--
|
133 |
gentoo-user-ru@g.o mailing list |