1

Здравствуйте! У кого-нибудь работает fbgrab? Или чем ещё можно сделать снимок консоли без X?

2 (27.04.2014 20:48:26 отредактировано Lupo Alberto)

У меня работает.

Был, был и весь вышел...

3

Здорово, что работает! А у меня такая бяка:
http://f16.ifotki.info/thumb/45a8383da6e4269829443c7f25e49437d9429d181277693.png
Не подскажете куда копать?

4

Packum пишет:

Не подскажете куда копать?

А какой фреймбуфер консоли вы используете?

Был, был и весь вышел...

5 (27.04.2014 21:54:48 отредактировано Packum)

Вот с этим у меня проблемы! Как это узнать? В ядре включен fbcondecor. Добавлен на уровень boot.
Если вручную включить тему консоли, - то она отображается. К сожалению в автозапуск никак не удалось пока поставить.
Но это уже другая проблема. Тут я наверное что-то с grub2 нахимичил. MPlayer воспроизводит фильмы с драйвером fbdev2.
У меня ноутбук без дискретки. Процессор Intel i5 2520m.

6 (27.04.2014 22:27:07 отредактировано Packum)

Наверное inteldrmfb. В /etc/default/grub записано:

 Консоль:
"root=/dev/sda3 video=inteldrmfb:1366x768-32@60,mtrr:3,ywrap splash=verbose,theme:natural_gentoo console=tty1 quiet"

Но тема автоматом тоже не ставится.

7

Попробуйте использовать vesafb.

Был, был и весь вышел...

8

Когда-то оно работало с grub-0,97. И bootsplash и fbcondecor. Fbgrab правда тогда не пробовал.
Работало именно с inteldrmfb. Видимо где-то я ошибся в конфиге граба2. Или что-то изменилось с тех пор,
а я не заметил. Печально. На всякий случай вот конфиг граба: http://bpaste.net/show/240865/

9

Packum пишет:

Тут я наверное что-то с grub2 нахимичил.

Больше похоже что с параметрами ядра нахимичил, раз уж запускается тема в ручную.

Скорее всего драйвер установлен модулем а не в ядре.

Если устройство /dev/fb0 существует то должно все работать.

Если делать скриншот под пользователем, то пользователь должен быть в группе tty

Попробуйте собрать через genkernel с темой, так как у вас параметр root=/dev/sda3 вместо real_root=/dev/sda3 то смею предположить что собирали ядро в ручную(без genkernel).

Может быть еще какое устройство есть(/dev/fb1) то попробуйте через него сделать снимок

 Консоль:
$ fbgrab -d /dev/fb1 -c1 file.png

-c1 номер консоли с которой делается снимок.

10

Может и с ядром нахимичил. Такое ощущение, что параметры ядром вообще не принимаются, хотя обновляю
grub2 каждый раз после изменения.
  Скриншоты fbgrab делает, но кривые. (3 пост).

11

Packum пишет:

Может и с ядром нахимичил. Такое ощущение, что параметры ядром вообще не принимаются, хотя обновляю
grub2 каждый раз после изменения.
  Скриншоты fbgrab делает, но кривые. (3 пост).

На счет того что тема не запускается при загрузке, скорее всего с ядром нахимичил, а то что fbgrab делает кривые скриншоты, то тут посмотрел, fbgrab не работает с kms фреймбуфером, на досуге попробую как нибудь заняться, если получится отпишу решение.

12

Вот нашел в мане ffmpeg, можно делать скриншоты консоли.

пользователь должен быть в группах video и tty

 Консоль:
$ ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg

С KMS фреймбуфером работает норм.

13

Свершилось! Получился снимок! Спасибо большущее!
http://f16.ifotki.info/thumb/003a3d8ae4634286ed5d22e1bd2aebcdd94298181462751.jpg

14

...попробовал, однако, ругнулось:

+ открыть спойлер
~/ ffmpeg -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg
ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 10 2014 16:26:13 with gcc 4.8.2 (GCC) 20140206 (prerelease)
  configuration: --prefix=/usr --disable-debug --disable-static --enable-avresample --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Option frames:v (set the number of frames to record) cannot be applied to input file /dev/fb0 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for input file /dev/fb0.
Error opening input files: Invalid argument

Поставил опцию frames:v перед файлом скриншота, всё «сфотографировалось»  bx

+ открыть спойлер
~/ ffmpeg -f fbdev -r 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg 
ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 10 2014 16:26:13 with gcc 4.8.2 (GCC) 20140206 (prerelease)
  configuration: --prefix=/usr --disable-debug --disable-static --enable-avresample --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
[fbdev @ 0x1824a60] w:1366 h:768 bpp:32 pixfmt:bgra fps:1/1 bit_rate:33570816
[fbdev @ 0x1824a60] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, fbdev, from '/dev/fb0':
  Duration: N/A, start: 1398848122.471403, bitrate: 33570 kb/s
    Stream #0:0: Video: rawvideo (BGRA / 0x41524742), bgra, 1366x768, 33570 kb/s, 1 tbr, 1000k tbn, 1 tbc
[swscaler @ 0x1811280] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'screenshot.jpeg':
  Metadata:
    encoder         : Lavf55.33.100
    Stream #0:0: Video: mjpeg, yuvj444p, 1366x768, q=2-31, 200 kb/s, 90k tbn, 1 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> mjpeg)
Press [q] to stop, [?] for help
[swscaler @ 0x1811280] Warning: data is not aligned! This can lead to a speedloss
frame=    1 fps=0.0 q=1.9 Lsize=N/A time=00:00:01.00 bitrate=N/A    
video:29kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead -100.075104%
Был, был и весь вышел...

15

Lupo Alberto пишет:

...попробовал, однако, ругнулось:


Ну данный пример был из мана, там еще был пример как записывать видео с консоли, тут похоже просто разные версии ffmpeg обрабатывают по разному, на версии 1.0.8 данный пример позволяет получить скриншот, хотя по идее правильнее frames выставлять после указания источника с которого будет производиться конвертация, в данном случае это /dev/fb0.

16

Простите ещё раз нуба, а как бы заблокировать вывод этой команды? Слишком большой!

17 (30.04.2014 18:22:59 отредактировано Lupo Alberto)

Packum пишет:

Простите ещё раз нуба, а как бы заблокировать вывод этой команды? Слишком большой!

█▓▒░lupo@asus-x201e█▓▒░ Ср апр 30 05:18:48 
~/ ffmpeg -f fbdev -r 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg &>/dev/null
█▓▒░lupo@asus-x201e█▓▒░ Ср апр 30 05:18:52 
~/ 

Точнее, в «чистой» консоли так:
http://storage8.static.itmages.ru/i/14/0430/s_1398867833_6623374_7cfca1f347.jpeg

Был, был и весь вышел...

18

Большое спасибо! Сделаю, пожалуй из этого маленький скриптик. Здорово пригодится!

19

ormorph, удалось поставить fbsplash в автозагрузку, только при использовании initramfs, как Вы и советовали.
Пришлось воспользоваться Genkernel. Сколько ни бился, - иначе никак, хотя при grub-0,97 такое было возможно. ac
Спасибо всем!

20

Packum пишет:

Сколько ни бился, - иначе никак, хотя при grub-0,97 такое было возможно.

Скорее всего просто забыли как делали раньше, во всех случаях нужен initramfs тыц, хотя если поставить fbcondecor  в автозагрузку при условии что  в загрузчике запускается видео драйвер с  фреймбуфером, он должен запустить тему прописанную в /etc/conf.d/fbcondecor.