Showing posts with label OpenSUSE Tumbleweed. Show all posts
Showing posts with label OpenSUSE Tumbleweed. Show all posts

Installed OpenSUSE Linux to Dualboot with Windows 10, but can't boot to OpenSUSE

How to fix: After Installing OpenSUSE for dualbooting with Windows 10, just boots straight to WIN10 without a choice

Let's say you have installed OpenSUSE with Windows 10, in your UEFI system, you have all the right kernel parameters set and UEFI configs and all the partitions are all set and mounted right, windows 10 was installed before you installed Linux and you got /boot/efi at fat32/vfat FS, but your comp just boots straight to Windows 10 without a choice to boot to OpenSUSE, the reason is Windows will usually try and make its bootloader default again which means openSUSE isn't an option, well the easy fix as long as you got everything right on the basic install would be:


1.) Boot up Windows 10

2.) Then start a terminal console (command prompt), but run as administrator

3.) Issue this command at the console:

bcdedit /set {bootmgr} path \EFI\opensuse\shim.efi

4.) Reboot, and it should give you a choice to boot to OpenSUSE Linux or Windows 10 now, if not look to changing the boot order of operating systems installed in your compter in your computer firmware, and change it to OpenSUSE as mentioned in NOTES below.


*NOTES:
- You can reuse the EFI partition that windows 10 uses, just mount that as /boot/efi with Linux, its recommended that there be only one EFI partition per disk, so if you have 2 disks and you install windows and linux in each disk you can either reuse the efi partition that windows 10 has but make sure its atleast 300MB or bigger, you can resize the partition before installing, but dont delete and format the existing EFI windows 10 is using as it already contains necessary files Windows 10 needs or you can and this is recommended just make another efi partition on the disk linux will be installed in.
- There's an option to use secureboot with OpenSUSE in the install, so you can use UEFI secureboot or not with it.
- There's also the option to change the boot order of OS'es in the BIOS/UEFI firmware of your computer/laptop, however there are many versions and kinds of firmware and each firmware can look somewhat different, so its kinda tough to give a step by step one size fixes all procedure here about that but the option to choose the order should be located in the BOOT category, all you have to do then is make sure you set OpenSUSE as the primary OS at boot, save then exit and restart.

Install Asian CJK Langauge Font Character Support in OpenSUSE (in this case Japanese, Chinese, Korean)

Install Asian Langauge (CJK) Font Character Support in OpenSUSE (in this case Japanese, Chinese, Korean)

1.) The easy and heavy way to do this is to go use YAST (via GUI or ncurses):

YAST then -> System then -> Language 

In the language list you can pick whichever language you want to install character font support but in this example we focus on CJK /or Chinese, Japanese, Korean Languages.

Once you click Chinese, Japanese, Korean Languages, press ok and it will start downloading and installing the packages, this can take awhile as opensuse will download a lot of packages and still depends on your machine and net connection too

The Problem or rather issue with this is it will install everything with the including the kitchen sink approach, it will install so much packages than needed or rather what i call an overkill to support so many fonts and packages for the chosen languages, in the second option i will explain a more leaner way to install CJK language character support and break it down to each of the CJK languages


2.) This second option will be using the Command Line only no GUI, issue command in terminal:

# zypper install arphic-ukai-fonts arphic-uming-fonts ipa-ex-mincho-fonts ipa-mincho-fonts ipa-pmincho-fonts xano-mincho-fonts baekmuk-bitmap-fonts baekmuk-ttf-fonts

or with sans noto google fonts for CJK

# zypper install arphic-ukai-fonts arphic-uming-fonts ipa-ex-mincho-fonts ipa-mincho-fonts ipa-pmincho-fonts xano-mincho-fonts baekmuk-bitmap-fonts baekmuk-ttf-fonts noto-sans-cjk-fonts

In this one command it will install Chinese, Japanese, Korean Font support, below you can choose what to install for CJK support, lets you wanted to install just a leaner version for Japanese or Korean you can just install:

Japnese packages:
ipa-ex-mincho-fonts ipa-mincho-fonts ipa-pmincho-fonts xano-mincho-fonts

so issue command in terminal:
# zypper install ipa-ex-mincho-fonts ipa-mincho-fonts ipa-pmincho-fonts xano-mincho-fonts

Korean packages:

baekmuk-bitmap-fonts baekmuk-ttf-fonts

so issue command in terminal:
# zypper install baekmuk-bitmap-fonts baekmuk-ttf-fonts

Chinese: Actually the chinese packages include several language support including japanese and korean but only partial support in arphic-ukai-fonts arphic-uming-fonts, to show what I meant on what languages are exactly supported in the chinese package details:
arphic-ukai-fonts: contain both Big5 and GB2312 charsets plus some european characters.
    Currently it fully supports the following charsets:
    ISO8859-1,2,3,4,7,9,10,13,14,15 Big5 GB2312-80 Bopomofo Extensions for
    Hakka, Minnan (Unicode 4.0) and MBE variants using the Stylistic
    Alternatives (salt) feature from the OTF spec.
    Partly support is implemented for: HKSCS CNS 11643 GB18030 Japanese
    Korean
                                                                                                  
arphic-uming-fonts: contain both Big5 and GB2312 charsets plus some european characters.                                                                                                   
    Currently it fully supports the following charsets:                                                                                                                    
    ISO8859-1,2,3,4,9,10,13,14,15 Big5 GB2312-80 HKSCS 2004 Bopomofo
    Extensions for Hakka, Minnan (Unicode 4.0) and MBE variants using the
    Alternatives (aalt) feature from the OTF spec.
    Partly support is implemented for: CNS 11643 GB18030 Japanese Korean


Anyways to install issue command in terminal:

# zypper install arphic-ukai-fonts arphic-uming-fonts


Alternatively there is the Google SANS NOTO Fonts you can just install the noto-sans-cjk-fonts: which contains Chinese, Japanese, Korean Font Support from google sans noto CJK fonts, issue command in terminal:
# zypper install noto-sans-cjk-fonts

However this font package though is about 70+MB Download but it will install for support on all 3 CJK languages, you can choose to just install this or install it with the other packages mentioned above, but this by itself can support all 3 langauges, though with a bigger download size, however even if you install all the packages mentioned in this article, it still wont be as much as the gargantuan amount of packages opensuse will install with option 1 mentioned earlier with GUI and ncurses YAST way.




NOTES:
- All fonts packages mentioned here are available from openSUSE-Tumbleweed-Oss REPO or your respective opensuse version OSS REPO, so just make sure you have the OSS repository enabled in your zypper repo list
- List fonts with this command:
$ fc-list
- Rebuilds cached list of fonts (after installing fonts and it doesnt work, run this command):
$ fc-cache -fv
- You could just install everything mentioned here and rebuild the cache font list in one go with this command:
# zypper install arphic-ukai-fonts arphic-uming-fonts ipa-ex-mincho-fonts ipa-mincho-fonts ipa-pmincho-fonts xano-mincho-fonts baekmuk-bitmap-fonts baekmuk-ttf-fonts noto-sans-cjk-fonts && fc-cache -fv

How to Install the Java (JDK) in OpenSUSE

How to Install the real Java (JDK) in OpenSUSE

(Tested Working in OpenSUSE Tumbleweed)

The problem of installing openjdk in opensuse when you think you installed openjdk but when you do a javac -version or call javac from commandline it just doesnt work

Well if you think of quickly installing openjdk 8 with zypper like this in commandline is gonna be enough:


# zypper se java-1_8_0-openjdk

Your actually just installing the JRE despite the name of the package which is likely to confuse anyone not familiar with opensuse, as it did me earlier, in defense of opensuse though, you can see why this is a problem is if you do a search with zypper and pay close attention to the packages and their corresponding summary definitions

# zypper se opendjk

Loading repository data...
Reading installed packages...

S | Name                                  | Summary                                                          | Type 
--+---------------------------------------+------------------------------------------------------------------+--------
  | java-1_7_0-openjdk                    | SUSE's implementation of the OpenJDK 7 runtime environment       | package                    <- (the Summary states its just the JRE7)
  | java-1_7_0-openjdk-accessibility      | Accessibility connector for OpenJDK 7                            | package
  | java-1_7_0-openjdk-bootstrap          | SUSE's implementation of the OpenJDK 7 runtime environment       | package
  | java-1_7_0-openjdk-bootstrap-devel    | SUSE's implementation of the OpenJDK 7 Development Environment   | package
  | java-1_7_0-openjdk-bootstrap-headless | OpenJDK 7 runtime environment without X, audio and video support | package
  | java-1_7_0-openjdk-demo               | OpenJDK 7 Demos                                                  | package
  | java-1_7_0-openjdk-devel              | SUSE's implementation of the OpenJDK 7 Development Environment   | package           <- (openJDK 7)
  | java-1_7_0-openjdk-headless           | OpenJDK 7 runtime environment without X, audio and video support | package
  | java-1_7_0-openjdk-javadoc            | OpenJDK 7 API Documentation                                      | package
  | java-1_7_0-openjdk-plugin             | Java Web Start and plugin implementation                         | package
  | java-1_7_0-openjdk-src                | OpenJDK 7 Source Bundle                                          | package
  | java-1_8_0-openjdk                    | OpenJDK 8 Runtime Environment                                    | package                                   <- (the Summary states its just the JRE8)*
  | java-1_8_0-openjdk-accessibility      | OpenJDK 8 accessibility connector                                | package
  | java-1_8_0-openjdk-demo               | OpenJDK 8 Demos                                                  | package
  | java-1_8_0-openjdk-devel              | OpenJDK 8 Development Environment                                | package                            <- (And this is the the true openJDK 8)*
  | java-1_8_0-openjdk-headless           | OpenJDK 8 Runtime Environment                                    | package
  | java-1_8_0-openjdk-javadoc            | OpenJDK 8 API Documentation                                      | package
  | java-1_8_0-openjdk-plugin             | Java Web Start and plugin implementation                         | package
  | java-1_8_0-openjdk-src                | OpenJDK 8 Source Bundle                                          | package
  | java-1_9_0-openjdk                    | OpenJDK Runtime Environment                                      | package                                   <- (the Summary states its just the JRE9)
  | java-1_9_0-openjdk-accessibility      | OpenJDK accessibility connector                                  | package
  | java-1_9_0-openjdk-demo               | OpenJDK Demos                                                    | package
  | java-1_9_0-openjdk-devel              | OpenJDK Development Environment                                  | package                            <-(openJDK 9)
  | java-1_9_0-openjdk-headless           | OpenJDK Runtime Environment                                      | package
  | java-1_9_0-openjdk-javadoc            | OpenJDK API Documentation                                        | package
  | java-1_9_0-openjdk-src                | OpenJDK Source Bundle                                            | package


So if you want to install the openjdk and develop java apps with it, you have to install the openjdk-devel package with the version you want to use, in this example its openjdk 8:

# zypper in java-1_8_0-openjdk-devel

now you can try: java -version and javac -version , and get output like this, whereas you would have gotten the cnf command not found if you tried javac -version if you installed just java-1_8_0-openjdk , as its just the JRE , anyways as with other java installs there is no need to install the JRE version as installing the openjdk-devel the true openjdk package in opensuse, already contains a JRE so you can just do the following commands

$ java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (IcedTea 3.1.0) (suse-1.1-x86_64)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

$ javac -version
javac 1.8.0_101


- Nevertheless the naming convention of the package is still confusing, especially for people new to opensuse, they should just rename the openjdk JRE to openJRE or something, so even on quick glance its self explanatory


Resource Links:


Tumbleweed Android Studio and Java JDK Thread in the OpenSUSE Forum
Trying to get Android Studio to start but I'm getting an error saying JAVA_HOME points to a jre not a jdk, a...
   
Others have complained of the confusing package naming of opensuse like in this blog: thehumble.ninja - A Quick Review of OpenSUSE Tumbleweed! (2015)
an excerpt from this blog
"My only MAJOR complaint is the package naming and development packages. It’s FRUSTRATING hunting down each package, truly a nightmare compared to other distributions."



NOTE: However if you have multiple implementations of Java, when you want to select your preferred java implementation or switch to the one you prefer.

Select which multiple implementations of JRE and JDK and even Java Web Browser Plug-in installed then you can select which one to use with the update-alternatives commands below:

Java application launcher (JRE)
# /usr/sbin/update-alternatives --config java

Java compiler (JDK)
# /usr/sbin/update-alternatives --config javac

Java Web Browser (Web browser plug-in)
# /usr/sbin/update-alternatives --config javaplugin