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.
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)
Daha sonra JVM settings-dən local JRE folder-in path-ını veririk:
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:
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:
Bir daha Firefox-u restart edib yoxlasaq görərik ki, əvvəlki boş screen yenisi ilə əvəzləndi.
İ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.