LINUX.ORG.RU
ФорумAdmin

с новым ядром не работает принтер


0

1

Есть принтер samsung ML-2015
Заводится автоматом и со старым ядром печатает отлично.
Старое ядро версии 2.6.29 собранное с рам диском и модулями. К старому ядру был модуль usblp 10616 0
Собрал новое ядро версии 3.12.1 без рам диска и модулей - монолит.

В новом ядре (наверное и в старых то же) нет драйвера usblp!!!!

Вот вывод команды lpusb (он одинаков при старом и новом ядре):

Bus 002 Device 011: ID 04e8:326c Samsung Electronics Co., Ltd ML-2010P Mono Laser Printer

Вот вывод команды hwinfo --printer (он практически одинаков при старом и новом ядре):

13: USB 00.0: 10900 Printer
  [Created at usb.122]
  UDI: /org/freedesktop/Hal/devices/usb_device_4e8_326c_3D66BKBL803052K__if0_printer_noserial
  Unique ID: 7bWa.h9tjFuz1iDC
  Parent ID: pBe4.kllrQr_lFX9
  SysFS ID: /devices/pci0000:00/0000:00:02.0/usb2/2-3/2-3:1.0
  SysFS BusID: 2-3:1.0
  Hardware Class: printer
  Model: "Samsung ML-2010"
  Hotplug: USB
  Vendor: usb 0x04e8 "Samsung Electronics Co., Ltd"
  Device: usb 0x326c "Samsung ML-2010"
  SubVendor: "Samsung"
  SubDevice: "ML-2010"
  Revision: "1.00"
  Serial ID: "3D66BKBL803052K."
  Driver: "usblp"
  Driver Modules: "usblp"
  Device File: /dev/usb/lp0
  Device Files: /dev/usb/lp0, /dev/char/180:0, /dev/usblp0
  Device Number: char 180:0
  Speed: 12 Mbps
  Module Alias: "usb:v04E8p326Cd0100dc00dsc00dp00ic07isc01ip02"
  Driver Info #0:
    Driver Status: usblp is active
    Driver Activation Cmd: "modprobe usblp"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #12 (Hub)

При попытке распечатать при новом ядре когда принтер не печатает, задание в cups просто весит как не выполненное и всё, при перезагрузки на старое ядро оно печатается. В новом ядре включил всё что нужно и связанно с микрокодом, usb принтером и с usb вообще. При новом ядре если включить принтер то видно как идёт загрузка микрокода. Новое ядро не хотелось бы собирать с поддержкой модулей!!!!!

Если кто знает в чём проблема помогите пожалуйста!

★★

В новом ядре (наверное и в старых то же) нет драйвера usblp!!!!

Брешешь, вот смотри сам: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/dri...

path: root/drivers/usb/class
Mode	Name	Size	
-rw-r--r--	Kconfig	1488	logstatsplain
-rw-r--r--	Makefile	221	logstatsplain
-rw-r--r--	cdc-acm.c	48998	logstatsplain
-rw-r--r--	cdc-acm.h	3589	logstatsplain
-rw-r--r--	cdc-wdm.c	25352	logstatsplain
-rw-r--r--	usblp.c	        40143	logstatsplain
-rw-r--r--	usbtmc.c	30547	logstatsplain
Единственно, возможно, usblp не может быть собран монолитно, а только модульно, сейчас не могу проверить, проверяй сам.

v4567

Старое ядро версии 2.6.29 ...
Собрал новое ядро версии 3.12.1 ...

Что-то у меня большие сомнения. Если у тебя предыдущее ядро версии 2.6.29, то и другие системные компоненты, glibc, udev, gcc, тоже старых версий, должны быть проблемы с новым ядром в такой старой системе.

Новое ядро не хотелось бы собирать с поддержкой модулей!!!!!

Почему ? В чём необходимость именно монолитного ядра. Т.е. ядра без поддержки загружаемых модулей. Если ты хочешь собрать минималистичное ядро, в котором включены только опции для твоей системы, то собирай, просто постепенно отключай не нужные опции и собирай ядро, но оставь поддержку модулей. Тогда ты сможешь включить поддержку usblp.

Ну и возможно ты просто не включил все нужные зависимости для usblp.

Запусти menuconfig:

cd /usr/src/linux-3.12.1
make menuconfig
Когда menuconfig запустится нажми клавишу «/», введи в поле «usblp», нажми ввод, откроется вывод найденных опций ядра, смотри секцию «Depends», в ней указаны зависимости найденных опций, удостоверься, что включенные в ядре опции удовлетворяют usblp, тогда его поддержку можно будет включить, даже возможно монолитно. Правда не совсем ясно зачем тебе нужно именно монолитное ядро.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

UPD:
Ну и как бы написано следующее в drivers/usb/class/Kconfig :

config USB_PRINTER
	tristate «USB Printer support»
	help
	  Say Y here if you want to connect a USB printer to your computer's
	  USB port.

	  To compile this driver as a module, choose M here: the
	  module will be called usblp.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

kostik87

Спасибо за помощь!

Брешешь, вот смотри сам: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/dri...

Да действительно эти файлы есть.

НО ДЕЛО ВОТ В ЧЁМ!!!

Распаковал архив, зашёл в него, выполнил команду: make mrproper, потом выполнил команду: make menuconfig, далее в конфигураторе ничего не нажимал (модули не отключал) набрал «/» потом в поиске набрал usblp и нажал энтер и выдало мне: No matches found. ПО ВИДИМОМУ ФАЙЛЫ ЕСТЬ НО ОНИ НЕ ПОДКИНУТЫ В ЯДРО......!!!!!!!!!!?????????????

v4567 ★★ ()
Ответ на: комментарий от Elyas

Как их подкинуть в ядро?

Имею ввиду в конфигуратор.

вместо usblp попробуй искать usb_printer

Да это включал не работает.

v4567 ★★ ()
Ответ на: комментарий от v4567

С новыми ядрами иначе работает заполнение /dev файлами устройств. Возможно проблема в этом, а не в отсутствии драйвера.

Elyas ★★★★★ ()
Ответ на: комментарий от kostik87

Если у тебя предыдущее ядро версии 2.6.29, то и другие системные компоненты, glibc, udev, gcc, тоже старых версий, должны быть проблемы с новым ядром в такой старой системе.

Не должно быть проблем.

zed_0xff ()
Ответ на: комментарий от v4567

ПО ВИДИМОМУ ФАЙЛЫ ЕСТЬ НО ОНИ НЕ ПОДКИНУТЫ В ЯДРО

Скорее всего не активирована какая-то опция, которая нужна для этой фичи; ну, например, поддержка USB. Сделай make xconfig, он показывает все опции, даже «недоступные».

P. S. Проверь:

Device Drivers -->
  USB Support -->
    <*> Support for Host-side USB
    (...)
    --- USB Host Controller Drivers
    (Select the HCD that your system uses. If you do not know which one
     to select, run "lspci -v | grep HCI" from another terminal)
    <*> EHCI HCD (USB 2.0) support ( or )
    <*> OHCI HCD support           ( or )
    <*> UHCI HCD (most Intel and VIA) support

Kroz ★★★★★ ()
Ответ на: комментарий от v4567

make mrproper, потом выполнил команду: make menuconfig

Да, сделай make mrproper && make defconfig && make menuconfig . Это позволит конфигурить ядро с нуля, а не подхватывать старую конфигурацию. У меня тоже 3.12 не подхватил старый конфиг, а у тебя еще и предыдущая версия древняя-древняя.

Kroz ★★★★★ ()
Ответ на: комментарий от v4567

Ты прочитал второе сообщение в теме, теперь нужно искать не usblp, а USB_PRINTER .

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Ты прочитал второе сообщение в теме, теперь нужно искать не usblp, а USB_PRINTER .

Да прочитал. Я уже писал что включал эту опцию и с ней принтер не работает.

вместо usblp попробуй искать usb_printer

Да это включал не работает.

v4567 ★★ ()
Ответ на: комментарий от v4567

Но всё же не ответил на вопросы, зачем именно монолитное ядро? И что ты под этим понимаешь?

Возможно, нужно всё же собирать модульно поддержку CONFIG_USB_PRINTER (usblp).

kostik87 ★★★★★ ()
Ответ на: комментарий от v4567

Сделай make xconfig, он показывает все опции, даже «недоступные».

usblp опять не нашёл.

Да, сделай make mrproper && make defconfig && make menuconfig . Это позволит конфигурить ядро с нуля, а не подхватывать старую конфигурацию.

не помогло, старую конфигурацию не подхватывает.

v4567 ★★ ()
Ответ на: комментарий от v4567

Но всё же не ответил на вопросы, зачем именно монолитное ядро? И что ты под этим понимаешь?

Под монолитным ядром понимаю ядро без модулей. Использую монолитное просто потому что не привык работать с модульным и всегда когда собираю своё ядро собираю его без модулей.

v4567 ★★ ()
Ответ на: комментарий от v4567

kostik87

Ответьте Вы мне лучше на вопрос, почему файлы usblp есть, а вот в конфигураторе usblp нет.

v4567 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.