Як змусити працювати Firefox в Linux з новітньою версією Flash Player (вище 11.2)
Як відомо, нові версії Adobe Flash Player існує в кількох версіях:
- ActiveX - для Internet Explorer'a (тільки в Windows)
- NPAPI - існував довгий час для всіх інших браузерів, останнім часом зупинився в розвитку (в Linux, для Windows все ще виходить)
- PPAPI - існує з відносно недавнього часу для браузерів на движку Chromium
Рішення придумав Ринат Ібрагімов. програміст з Казані. Він написав обгортку (врапперов) між NPAPI (системою плагінів Firefox) і PPAPI (системою плагінів Chromium). Ця обгортка виглядає для FireFox як звичайний NPAPI-плагін, в той час, як для самого плагіна, вона виглядає як браузер з підтримкою PPAPI (як наприклад Google Chrome).
Тобто, схема роботи така:
Новий Adobe Flash PPAPI врапперов FreshPlayer Ріната Firefox
Отже, як зробити щоб FireFox або IceWeasel змогли працювати з новим Flash Plugin'ом в Debian і Ubuntu:
У моєму випадку, новий Flash Player потрібен в браузері IceWeasel версії 34 (Це той же FireFox але для Debian, просто названий інакше відповідно до ліцензійні обмеження накладаються на торговельну марку FireFox і його логотип).
Якщо у вас не IceWeasel а FireFox - абсолютно нічого не змінюється.
1. Перевірити, яка версія флеша встановлена у вас і видалити її.
Як правило, флеш в Debian / Ubuntu встановлюється за допомогою пакета flashplugin-nonfree. Тому видаляємо його:
# Aptitude remove flashplugin-nonfree
2. Роздобути новий флеш.
Пам'ятаємо, що для роботи нам все-таки потрібен новий флеш - його PPAPI-версія, яка підходить для Хрому, але не підходить (поки) для Firefox.
Зробити це можна одним з таких способів:
Якщо пакет є в репозиторії (у вас Jessie, Wily Werewolf, або wheezy з підключеним Wheezy-backports), тоді:
# Aptitude install pepperflashplugin-nonfree
Якщо скачали deb-пакет, то:
# Dpkg -i ./pepperflashplugin-nonfree.deb
3. Скомпілювати обгортку FreshPlayerPlugin
Саме вона забезпечить зв'язок між новим Flash-плагіном і нашим FireFox'ом.
Встановимо необхідні для збірки пакети (запуск від рута):
Для Debian Wheezy:
# Aptitude install git cmake pkg-config ragel libasound2-dev \ libglib2.0-dev libconfig-dev libpango1.0-dev libgl1-mesa-dev \ libevent-dev libgtk + 2.0-dev libgles2-mesa-dev libxrandr-dev \ libpulse -dev libssl-dev libgtk2.0-dev libicu-dev
Для Debian Jessie і Ubuntu Wily Werewolf:
# Aptitude install git cmake pkg-config ragel libasound2-dev \ libglib2.0-dev libconfig-dev libpango1.0-dev libgl1-mesa-dev \ libevent-dev libgtk2.0-dev libgles2-mesa-dev libxrandr-dev \ libpulse -dev libssl-dev libgtk2.0-dev libavcodec-dev \ libavformat-dev libavfilter-dev libv4l-dev libv4l-0 \ libva-dev libvdpau-dev libicu-dev
Клонуємо репозиторій з вихідними кодами і створюємо папку build (все це вже від імені простого користувача)
$ Cmake -DCMAKE_BUILD_TYPE = RelWithDebInfo. $ make
Після складання в папці з'явиться файл libfreshwrapper-flashplayer.so який і є плагіном для FireFox / IceWeasel і дозволяє використовувати новий флеш.
4. Встановимо і налаштуємо плагін для FireFox / IceWeasel
Файл libfreshwrapper-pepperflash.so потрібно скопіювати в папку
/.mozilla/plugins - вона вже має у вас бути, якщо FireFox / IceWeasel встановлений і хоча-б раз запущений. Якщо ж немає - можна просто створити її вручну.
Виходячи з того, що ми все ще перебуваємо в папці build:
Також, потрібно скопіювати конфігураційний файл з папки. / Data (там лежить приклад) в папку
Після копіювання файлу налаштувань потрібно відкрити його і перевірити параметр pepperflash_path, він повинен вказувати туди, де лежить ваш плагін pepperflash.
Перевірте, чи дійсно там якщо плагін, і якщо так - все в порядку.
5. Перевіримо FireFox / IceWeasel
Не працює на Debian / Jessie amd64 ;-(
Найближчим часом доповню статтю для Jessie-64
буду стежити за новинами)) це буде дуже корисно багатьом
Тільки що повністю виконав установку на Debian Jessie amd64, все працює.
Уточни, що саме не працює у тебе.
(Process: 19445): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
NOT SANDBOXED
[Fresh 19578] not implemented: PPB_OpenGLES2DrawBuffers (Dev); 1.0
ALSA lib pcm_dmix.c: 1022: (snd_pcm_dmix_open) unable to open slave
[Fresh] [error] alsa_create_stream, snd_pcm_open, Немає такого файлу або каталогу
[Fresh] [error] alsa_create_stream, snd_pcm_open, Немає такого файлу або каталогу
[Fresh] [error] do_ppb_audio_create, can not create playback stream
[Fresh] [error] do_ppb_audio_create, can not create playback stream
[Fresh] [error] ppb_audio_start_playback, bad resource
[Fresh] [error] ppb_audio_start_playback, bad resource
У тебе встановлений PulseAudio? Судячи з повідомлень, не вдається запустити звук, причому спочатку він пробує dmix, потім alsa, це може говорити про те, що PulseAudio він чомусь не знайшов.
І ще - спробуй запустити повністю без конфиг-файлу (тобто freshwrapper.conf), у мене працює без нього, і один товариш говорив що йому доводилося щось там в цьому файлі підкручувати щоб домогтися чогось від флеша.
Виникла труднощі, після $ cmake -DCMAKE_BUILD_TYPE = RelWithDebInfo.
сам $ make пише: make: *** Чи не задані цілі і не знайдений make-файл. Зупинка.
Які варіанти?
Debian 8 Jessie testing (i386 32bit)
make'у для роботи потрібен Makefile, причому в тій папці, звідки make запускається, або з вказаною насильно.
Якщо він говорить «не найден make-файл», значить ти його запускаєш не з тієї папки де цей Makefile лежить, або не вказуєш ДЕ він лежить.
Перевір послідовність команд, виконуваних перед запуском make. Ти повинен його запускати з папки build, але при цьому вказувати в кінці команди «..» - вказівка на те, що Makefile лежить рівнем вище.
Виконував кроки послідовно, як зазначено в пості. cmake виконується перебуваючи в папці build, судячи з того що вказується. в статті, то і у мене теж makefile повинен був опинитися на каталог вище ніж build, але як показав термінал, у мене там немає цього файлу. Піду спробую ще раз.
Невірно я тобі підказав. Суть в тому, що спочатку ти запускаєш cmake, а він знаходить всі потрібні бібліотеки, проводить конфігурація, і створює файл Makefile прямо в цій папці. А ось make ти вже запускаєш без параметрів, і він очікує що Makefile буде в цій папці. Якщо цього файлу в цій папці не з'явилося - це значить що cmake відпрацював з помилкою. Треба дивитися його видачу. Перед запуском cmake заново, потрібно спочатку відчистити папку build.
До речі, вчора пробував ребілд обгортку, і з'ясував що тепер в Jessie потрібен пакет libvdpau-dev, додав його до списку необхідних пакетів. Можливо саме через нього у тебе cmake не відпрацьована як треба.
Знайшов варіант з dpkg -i спробував, ребутнулся, встав і полетів. Спасибі за допомогу!
Тобто просто скачав deb-пакет за посиланням? незачто 🙂
Скачав і поставив. У iceweasl він є, 12.1 r720.
Однак як виявилося я поспішив, при запуску flash файлів з'являється класне повідомлення:
І соответствено не починається.
Видалю, спробую скомпілювати.
Ну так LightSpark це ж «open source Flash player implementation» - тобто спроба спільноти реалізувати функціонал флеш плеєра. Думаю він не скоро зможе програвати будь-які SWF файли
Суть саме в тому, що в Chrome знаходиться Flash, що працює через PPAPI, і ми його саме і намагаємося включити в FireFox, який вміє працювати тільки через NPAPI, і ось за допомогою fresh-player, которийти і намагався скомпілювати, якраз створюється міст між NPAPI і PPAPI. Так що без останньої версії флеша з хрому ти все одно б нічого не змусив працювати.
Хм, і то вірно. Ок, пізніше спробую повторно скомпіліть тексти і запустити PPAPI на IceWeasel.
Failed to load «libpepflashplayer.so».
Frashwrapper is a translation layer which needs
PPAPI plugin backend. Ensure your system have
«Libpepflashplayer.so» available.
Paths tried:
Причому, файлик там лежить. Правда при компіляції траплялися якісь рядки червоного кольору.
Вітання. «Libpepflashplayer.so» - це сам PPAPI-плагін. Якщо говорить що його немає, значить швидше за все і справді немає. Для експерименту - встанови Google Chrome, він з собою відразу ж тягне цей плагін, так що має запрацювати. Також, якщо у тебе Debian Jessie або Wheezy з бекпортамі з Jessie, то у тебе повинен бути пакет pepperflashplugin-nonfree
ха! просто закоментіл рядок
pepperflash_path = «
/.mozilla/plugins/libfreshwrapper-flashplayer.so »
в конфіги
І все запрацювало!
Правда хром я перед етім поставив таки.
Ну начебто працює, спасибі!
- Performing Test HAVE_AVPixelFormat
- Performing Test HAVE_AVPixelFormat - Failed
- Performing Test HAVE_AV_PIX_FMT_VDPAU
- Performing Test HAVE_AV_PIX_FMT_VDPAU - Failed
- Performing Test HAVE_AVCodecID
- Performing Test HAVE_AVCodecID - Failed
- Performing Test HAVE_AVCodecContext_get_buffer2
- Performing Test HAVE_AVCodecContext_get_buffer2 - Failed
- Performing Test HAVE_AVVDPAUContext
- Performing Test HAVE_AVVDPAUContext - Failed
- Looking for av_frame_alloc
- Looking for av_frame_alloc - not found
- Looking for av_frame_free
- Looking for av_frame_free - not found
- Looking for avcodec_free_context
- Looking for avcodec_free_context - not found
- checking for module 'libv4l2'
- package 'libv4l2' not found
CMake Error at /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:283 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:337 (_pkg_check_modules_internal)
CMakeLists.txt: 133 (pkg_check_modules)
- Configuring incomplete, errors occurred!
Ніякими силами libv4l2 не встановлюється ... ..
Який дистрибутив?
Всі бібліотеки з інструкції встановив?
Зокрема, там є бібліотеки libv4l-dev і libv4l-0. Встановлено?