Connecting to ILO with firefox on Ubuntu: the Java issue

İLO nədir? (bax. Wikipedia)
Ubuntu 14.04-də Firefox versiya 34.0-dən İLO-ya qoşulub, Virtual Media-dan İSO image əlavə etmək istədikdə naməlum qara pəncərə gəlir və heç bir əlavə funksionallığı olmur.

Qeyd edək ki,
java-7-openjdk-amd64
icedtea-7-plugin

İnstall olunub.

Mövzunu addım-addım getməliyik ki, problemə mərhələli yanaşmanı da göstərmiş olaq.
IcedTea plugin-inin rəsmi dokumentasiyasına əsasən, IcedTeaPlugin.so faylı mozilla-nın plugin direktoriyasındakı libjavaplugin.so faylına symlink olunmalıdır:

sh@sh--work:~$ cd /usr/lib/mozilla/plugins
sh@sh--work:~$ ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so libjavaplugin.so
sh@sh--work:/usr/lib/mozilla/plugins$ ls -l | grep libjavaplugin.so
lrwxrwxrwx 1 root root     64 Dec 12 15:52 libjavaplugin.so -> /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Verilmiş tələbi yerinə yetirdikdən sonra, Java-nın hansı error-ları verdiyini müəyyən etmək üçün, IcedTea pluginin debug halda aktiv edib Firefox-u start etməliyik.
Əgər hal-hazırda firefox açıqdırsa onu kill edin və terminaldan aşağıdakı qaydada yenidən start edin:

ICEDTEAPLUGIN_DEBUG=true firefox 2>&1 | tee plugin.log

Yuxarıdakı komandaya əsasən plugin.log faylı yaranacaq. Log faylından hansı problemlərin olduğunu müəyyən edə biləcik.
İlk error aşağıdakı kimidir:

java.text.ParseException: Unparseable date: "cüm Dek 12 15:02:15 AZT 2014"
	at java.text.DateFormat.parse(DateFormat.java:357)
	at net.sourceforge.jnlp.util.logging.headers.PluginMessage.<init>(PluginMessage.java:73)
	at net.sourceforge.jnlp.util.logging.JavaConsole.processPluginMessage(JavaConsole.java:523)
	at net.sourceforge.jnlp.util.logging.JavaConsole.access$1100(JavaConsole.java:87)
	at net.sourceforge.jnlp.util.logging.JavaConsole$13.run(JavaConsole.java:554)
	at java.lang.Thread.run(Thread.java:745)

Unparseable date: “cüm Dek 12 15:02:15 AZT 2014” – Məndə Local olaraq ayın tarixinin göstərilməsi Azərbaycan dilinə uyğundur. Görünən budur ki, bunu tanımır.
Dolayısı ilə bunu dəyişməliyik:
Settings — Language Support — Regional Formats-dan dəyişiklik edib English(United States) edirik.
language_support

Yenidən aktiv Firefox-u kill edin, yenidən DEBUG mode-da restart edin. Görəcəksiniz ki, yuxarıdakı error aradan qalxdı.
Keçirik log faylda rastlanan 2ci error-a:

java.io.FileNotFoundException: /home/sh/.config/icedtea-web/deployment.properties (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:146)
	at java.io.FileReader.<init>(FileReader.java:72)
	at net.sourceforge.jnlp.config.DeploymentConfiguration.parsePropertiesFile(DeploymentConfiguration.java:650)
	at net.sourceforge.jnlp.config.DeploymentConfiguration.findSystemConfigFile(DeploymentConfiguration.java:474)
	at net.sourceforge.jnlp.config.DeploymentConfiguration.load(DeploymentConfiguration.java:287)
	at net.sourceforge.jnlp.config.DeploymentConfiguration.load(DeploymentConfiguration.java:257)
	at net.sourceforge.jnlp.runtime.JNLPRuntime$DeploymentConfigurationHolder.initConfiguration(JNLPRuntime.java:394)
	at net.sourceforge.jnlp.runtime.JNLPRuntime$DeploymentConfigurationHolder.<clinit>(JNLPRuntime.java:389)
	at net.sourceforge.jnlp.runtime.JNLPRuntime.getConfiguration(JNLPRuntime.java:424)
	at net.sourceforge.jnlp.config.DirectoryValidator.<init>(DirectoryValidator.java:224)
	at net.sourceforge.jnlp.config.DeploymentConfiguration.move14AndOlderFilesTo15Structure(DeploymentConfiguration.java:824)
	at net.sourceforge.jnlp.config.DeploymentConfiguration.move14AndOlderFilesTo15StructureCatched(DeploymentConfiguration.java:728)
	at sun.applet.PluginMain.main(PluginMain.java:139)

Araşdırmama əsasən bu error-un qarşısını İcedTea-ni configləməklə almaq olur.
İcedTea özünün xüsusi config proqramı ilə gəlir aşağıdakı kimi run etmək lazımdır:

sh@sh–work:~$ itweb-settings

Ilk öncə Security hissəsindən default High olan hissəni Low edirik.
(QEYD: ILO ilə işinizi bitirdikdən sonra, mütləq bu göstəricini geri qaytarın)
low_security

Daha sonra JVM settings-dən local JRE folder-in path-ını veririk:

openjdk_x64

Apply edirik, save edirik və yenidən firefox DEBUG halda start edirik.
Yeni error log faylından belə görürük ki, yuxarıdakı error da aradan qalxdı. Lakin hələ də biz Virtual Media-əlavə edə bilmirik.
Daha dəqiq print screen-dəki davam edir:

unnamed_screen_ilo

Error log-a baxmağa davam edirik və daha bir maraqlı erroru görürük:

java.lang.UnsatisfiedLinkError: /tmp/cpqma-1c6dc3fa: /tmp/cpqma-1c6dc3fa: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
	at java.lang.Runtime.load0(Runtime.java:795)
	at java.lang.System.load(System.java:1062)
	at com.hp.ilo2.virtdevs.DirectIO.<clinit>(DirectIO.java:87)
	at com.hp.ilo2.virtdevs.MediaAccess.devices(MediaAccess.java:183)
	at com.hp.ilo2.virtdevs.virtdevs.ui_init(virtdevs.java:363)
	at com.hp.ilo2.virtdevs.virtdevs.start(virtdevs.java:142)
	at sun.applet.AppletPanel.run(AppletPanel.java:476)
	at java.lang.Thread.run(Thread.java:745)

Bu error Java-nın bit versiyasının problemidir. Yəni, əgər diqqət etdinizsə biz, 64 bit-lik JRE istfadə edirdik. Burdan belə nəticə çıxır ki, 32-bitlik JRE ilə bu error-u aradan qaldıra bilərik. Bunun üçün 32-bitlik Java-nı install edək:

sh@sh–work:~$ sudo apt-get install openjdk-7-jre:i386

Daha sonra İcedTea-nin config-ini dəyişək və yeni 32-bitlik JRE path-i əlavə edək:

32-bit_jre

Bir daha Firefox-u restart edib yoxlasaq görərik ki, əvvəlki boş screen yenisi ilə əvəzləndi.

virtual_media

İndiki halda biz məqsədimizə çatmış olduq.
İşlədiyim müddətdə əlavə maraqlı həllər olarsa, onları yazıya əlavə edəcəm.
Həmçinin ola bilsin mövzunun daha yeni davamı olsun.

Təşəkkürlər.

Səs: +10. Bəyənilsin Zəifdir

Müəllif: Şəhriyar Rzayev

Şərh yazın