Thursday, 24 August 2017

Installing 'isorespin.sh' ISOs on Apollo Lake devices


Previously installation on Intel Apollo Lake devices without explicit Linux support in the BIOS required the rEFInd boot manager to be installed manually. Following a number of requests I've now updated my 'isorespin.sh' script to add this automatically to the respun ISO making it transparent duing the installation of the ISO.

I've also changed the script so that it no longer requires the removal of any 'isorespin.log' file first as it will now simply overwrite it. Instead the respun ISO now includes a README file which details how the ISO was spun.



Also the latest Ubuntu Artful 17.10 build includes an Ubuntu fork of the Dash to Dock extension as Ubuntu Dock. So I've respun the daily build from 21st August and added the v4.13-rc6 kernel and the rEFInd boot manager and anyone who want to see how it looks on an Apollo Lake device can download the ISO from here and the upgraded script can be downloaded from 'isorespin.sh'.

Please donate if you find the script useful using the following link http://goo.gl/nXWSGf.





51 comments:

  1. A question. I tried respinning the same 21-aug distro with 13-rc6 for my atom (T100HA). I came up in wayland, even though I tried to login with the "ubuntu" option from the login screen. Wayland, as near as I can tell, doesn't yet support screen rotation, which is a problem with the T100HA as it comes up rotated 90 deg right by default.

    Is there a way around wayland for these early 17.10 releases? Thanks.

    ReplyDelete
    Replies
    1. 17.10 has switched to Wayland and GDM however 'The Xorg session will still be available alongside' ('https://didrocks.fr/2017/08/03/ubuntu--guadec-2017-and-plans-for-gnome-shell-migration/'). Apparently it is just 'a click or two away' ('http://www.omgubuntu.co.uk/2017/08/ubuntu-confirm-wayland-default-17-10') so in theory you should still be okay until 18.04 but I haven't looked into this in any detail at the moment so I can't suggest solution yet.

      Delete
    2. Thanks. I'm going to wait 17.10 out a bit more. Wayland seemed slow and a bit buggy, but the rotation is a real issue. There is plenty of info that Wayland rotation is driver dependent but even then rotation is an issue. Hopefully better in the next few months. Perhaps they will change their minds (again)?

      Delete
    3. BTW the headphone audio patch for the ASUS T100HA has just been applied so should be included in v4.14-rc1 which will be available in around 4 to 6 weeks time.

      Delete
    4. Try respinning a daily build with the following command:

      isorespin.sh -i artful-desktop-amd64.iso -u --apollo -c "sed -i 's/^#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf"

      which should force the login screen to use Xorg and disable Wayland.

      Delete
  2. One other question (while I'm here). What is the difference between the rtl8723bs_4.12.0_amd64.deb and rtl8723bt_4.12.0_amd64.deb (bs vs. bt)? Does is matter? Thanks.

    ReplyDelete
    Replies
    1. 'rtl8723bs_4.12.0_amd64.deb' includes the wifi firmware so it should be used on releases up to 17.04 and 'rtl8723bt_4.12.0_amd64.deb' doesn't thereby allowing it to install correctly on 17.10 and later. Both packages include the bluetooth firmware and userspace files.

      Delete
    2. That info was probably published elsewhere but I appreciate repeating it succinctly here.

      Delete
  3. Hello. Can you help me? I have PC 2 in 1 (Intel Atom) with WIN 10. I would like to install Ubuntu 16.04. Can you write me, how do i do it step by step? Thank you.

    ReplyDelete
    Replies
    1. Try the following on an Ubuntu PC:

      1. Read 'http://linuxiumcomau.blogspot.com.au/2017/06/customizing-ubuntu-isos-documentation.html'
      2. Download Ubuntu 16.04.3 64-bit desktop ISO from 'http://releases.ubuntu.com/16.04.3/ubuntu-16.04.3-desktop-amd64.iso'.
      3. Download 'isorespin.sh' script from 'https://goo.gl/ZnUd6H'.
      4. Make the script executable ('chmod 755 isorespin.sh'
      5. Install any required dependencies (typically 'sudo apt-get install -y squashfs-tools xorriso curl zenity' should surfice).
      6. Respin your ISO ('./isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso -u --atom').
      7. Plug in a USB and note which device it is (say '/dev/sdX').
      8. Unmount and mounted file systems from the USB ('sudo umount /dev/sdX*').
      9. Write your respun ISO to the USB ('sudo dd if=linuxium-v4.13-rc6-ubuntu-16.04.3-desktop-amd64.iso of=/dev/sdX bs=4M').
      10. Boot your Intel Atom 2 in 1 PC from the USB.

      Obviously modify the commands with any required paths and any required file name changes.

      If you only have Windows then first download and install Oracle's VirtualBox on Windows and then create a Linux VM from the same Ubuntu 64-bit desktop ISO and install to a VDI of fixed size (minimum 20GB). Start the new Ubuntu VM and install 'Oracle VM VirtualBox Extension Pack'. You can then start from step 3 and respin the Ubuntu ISO which you should make available through a shared folder (hint: Google 'How to Share Your Computer’s Files With a Virtual Machine'). By installing the extension pack you will also be able to write the respun ISO to a USB using 'dd' from within the Ubuntu VM.

      Don't forget to donate on http://goo.gl/nXWSGf if you are happy with the result.

      Delete
    2. Uff. I'm newbie for do it. Please, can I download some already edited iso somewhere? I once downloaded the modified iso, but I can not find it now. Thank you.

      Delete
    3. i get these two errors when trying the steps above and wonder if you could tell me what i'm doing wrong

      /bin/bash: line 12: gdebi: command not found

      ./isorespin.sh: Local package 'rtl8723bs_4.12.0_amd64.deb' failed to install correctly.

      Delete
    4. Are you connected (or still connected) to the internet when you run the 'isorespin.sh' script? If so what OS are you running on and what was the script command used?

      Delete
    5. I'm having the same issue, "Local package 'rtl8723bs_4.12.0_amd64.deb' failed to install correctly."
      Installed gdebi manually, it didn't help.
      I'm running a VM on Oracle VirtualBox, running Ubuntu 17.10.

      Delete
    6. What is the full text of the error message and what is the 'isorespin.sh' script command you entered?

      Delete
    7. Getting the same problem (pastebin below). I am using 8-28 artful and the latest isorespin.sh. I redownloaded isorespin, rtl8723bt_4.12.0 and artful to check. I also downloaded some earlier isorespin.sh version to check. Same problem. If I remove the *bt*.deb it works fine. I am on a zesty linux box. The bit about the dangling symlink is also new. I have installed both gdebi and gdebi-core on the linux box.

      https://paste.ubuntu.com/25424378/

      Delete
    8. I should add that the linux box is indeed on the internet.

      Delete
    9. @everyone: The following command should fix the 'gdebi' problem which is caused by a the latest 'artful' ISO having a 'dangling' file:

      sudo sed -i 's?if \[ -f \(iso-chroot/etc/resolv.conf[^ ]*\) ]; then?if \[ -f \1 -o -h \1 ]; then?' isorespin.sh

      Just open a terminal and change directory to where you have put the 'isorespin.sh' script then 'copy & paste' the command. Everything should then work. I'll look at uploading an updated version of the script tomorrow (i.e. later today).

      Delete
    10. Yep, that fixed it. Just updated the 8-29 artful with v4.13-rc7. Thanks as always.

      Delete
    11. Thanks. Updated script (i.e. with fix for 'gdebi') now available from the same URL as before ('https://goo.gl/ZnUd6H').

      Delete
  4. I am connected to the internet, my OS is server Ubuntu 17.04 with unity desktop. And I just copied the steps above exactly ./isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso -u --atom. I also tryed 17.04 with the same result. Thank you very much for your the help and all the time you put into this

    ReplyDelete
  5. I'll try it with a different system

    ReplyDelete
    Replies
    1. I can't reproduce this error. It seems that 'apt-get install -y gdebi' must be failing on your setup but I don't know why. Moving to a different system, perhaps a desktop based installation, hopefully will fix it for you.

      Delete
    2. See earlier comment for workaround.

      Delete
  6. Thanks for the awesome script and it's super helpful to install Linux on China devices. However I'm facing a strange issues after upgraded to isorespin v7.3, where all respun ISO can't bootup, and details here:

    - I tried many different flavor of Ubuntu, and their checksum are valid
    - I'm doing respin for apollo-lake, use only args "-u --apollo -i"
    - Using VMware to test
    - Respun ISO wouldn't boot, saids "Operating System not found", wile origin ISO successfully boot.
    - USB wouldn't boot, same error "Operating System not found"
    - I use DD or rufus to write ISO to usb stick, where rufus will refuse to create bootable disk with error "Image does not have an x86 Master Boot Record"

    Before using v7.3, I had 2 bootable respun ISO made by previous version of isorespin(although configure with -u only). However I overwrite the script with the latest version, and I can't compare with.

    Would be glad if you can give a hand here, also can I ask for previous version of isorespin? Thank you.

    ReplyDelete
    Replies
    1. I don't use VMware so I cannot help with anything specific. However why do you need to test? Surely the 'test' will be to boot the respun ISO on your Apollo device?

      I have just tried a VirtualBox 'test' which involved:

      1. write the respun ISO to a USB using Rufus
      2. create a 'vmdk' file from the USB
      3. create a VM using the 'vmdk' file for storage
      4. select 'Enable EFI' under settings for 'system'

      See 'https://goo.gl/8jGYXP' for an image that shows this process. Can you do similar under VMware?

      Delete
    2. By using VMware to test a respun ISO save me a lot of time from creating usb stick and test on my notebook.

      Since using the latest isorespin, all apollo-lake respun iso will cause Rufus to complain about missing master boot record and fail to create boot disc in ISO mode. If I force using DD mode, both VMware & apollo-lake notebook wouldn't boot.

      Virutalbox doesn't support native usb boot unless doing special drive configure, which might be increasing unknown factor and complicate the test, so given up on it.

      As you suggested, I tried VirutalBox again with "enable EFI" and a few self-respun iso, including your latest v4.13-rc6-210817artful-desktop-amd64.iso. All of them boot into a EFI shell and stuck at the shell prompt, and didn't show the UEFI graphical menu.

      Also, I notice that writing your artful ISO with Rufus, it see a boot record and happily wrote a usb stick that can boot on my notebook. So I guess now the questions are:
      - Why rufus saids no master boot record on the my respun ISOs?
      - What's the different between your artful iso and my respun ISOs?
      - Would be glad if I can compare with an older version of isorespin

      Thanks.

      Delete
    3. It sounds like you omitted step 2 'create a "vmdk" file from the USB' and/or possibly step 3. You can see the command for step 2 (and select the 'PhysicalDrive' number specific to your setup) and all the versions of software I used in the screen shot referenced above using the ISO 'linuxium-v4.13-rc6-210817-artful-desktop-amd64.iso'.

      Delete
    4. Well I try again in Virutalbox by creating rawdisk vmdk pointing to the usb stick.
      -The usb stick with your "artful" ISO bootup successfully.
      - All my respun ISOs doesn't. Rufus complain missing MBR again, and if write with DD they will all boot into a UEFI shell which I don't know what to do with.

      When using Rufus to write my respun ISOs, why it keeps complaint about missing master boot record? The respin completed without errors. Any ideas?

      Delete
    5. What is the 'md5sum' for your 'isorespin.sh' script? It should be '5028e434331fee08a568c8d14d5bd4c5'.

      Delete
    6. My checksum match yours.
      However when inspecting the script, there're some unknown stuffs starting from line 3546. as shown in http://goo.gl/Rc6hct. Is it expected?

      Delete
    7. The 'unknown stuffs' are the included files required for respinning so if the 'md5sum' matches then everything should be okay.

      Can you check that your version of Rufus is the same as mine (refer to the earlier screenshot)?

      Delete
    8. Busy for days and sorry for not getting back.
      Guess what...I try again your script on another fresh install of Ubuntu 16.04 Budgie, and problem solved!! Every respun iso works! Jesus that's a waste of both our time... Thanks & sorry for bothering you.

      One last question...16.04 Budgie is rejected by the script. Is it intentionally? :)

      Delete
    9. Yes as Budgie joined Ubuntu as a flavour only from 17.04.

      Delete
  7. Hi, I have a cherry trail with nau88l24 codec and sound is not working. Do you know if the patch for this will be included soon?

    ReplyDelete
    Replies
    1. It should have been included in v4.12.

      Delete
  8. Hi, trying to boot from the USB, only a black screen appears with the text:
    Starting grubx64.efi
    Using load options ''

    Y have the Notebook Jumper EzBook 3 Pro with Intel Apollo Lake N3450.

    rEFInd instaled from Windows.

    I follow your steps:
    1. Read 'http://linuxiumcomau.blogspot.com.au/2017/06/customizing-ubuntu-isos-documentation.html'
    2. Download Ubuntu 16.04.3 64-bit desktop ISO from 'http://releases.ubuntu.com/16.04.3/ubuntu-16.04.3-desktop-amd64.iso'.
    3. Download 'isorespin.sh' script from 'https://goo.gl/ZnUd6H'.
    4. Make the script executable ('chmod 755 isorespin.sh'
    5. Install any required dependencies (typically 'sudo apt-get install -y squashfs-tools xorriso curl zenity' should surfice).
    6. Respin your ISO ('./isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso -u --atom').
    7. Plug in a USB and note which device it is (say '/dev/sdX').
    8. Unmount and mounted file systems from the USB ('sudo umount /dev/sdX*').
    9. Write your respun ISO to the USB ('sudo dd if=linuxium-v4.13-rc6-ubuntu-16.04.3-desktop-amd64.iso of=/dev/sdX bs=4M').
    10. Boot your Intel Atom 2 in 1 PC from the USB.

    ./isorespin.sh -i ubuntu-16.04.3-desktop-amd64.iso -u --apollo

    ReplyDelete
    Replies
    1. Hi,
      I have the same problem with an AP42 (Apollo lake N4200)
      (I'm trying to install lubuntu)

      This version of this iso worked for me : https://drive.google.com/file/d/0B99O3A0dDe67cUJDaElkaGYzaG8/edit
      You just have to copy with rufus (it's simpler than with the dd command)

      Delete
    2. Post a link to the contents of the 'isorespin.log' file using 'pastebinit' or similar.

      Delete
    3. isorespin.log -> https://pastebin.com/YFSQq6x5

      Delete
  9. Hello,

    I tried to compile Lubuntu 17.04 with isorespin.sh (for mini pc AP42 Kodlix) with the following command with virtualbox on mac :

    ./isorespin.sh -i /pathtomyiso -u --apollo
    or
    ./isorespin.sh -i /pathtomyiso --apollo

    Have you already compiled an iso for this version of lubuntu?

    I have no error, I get the ISO file generated by isorespin.
    But when I want to copy the iso with rufus, it does not recognize the iso (kernel control problem?)
    So I used a lot of software (ex: Linux usb builder, unetbootin) but the mini pc does not start ...
    On mac or ubuntu, the command dd gives the same result, the key does not boot (whether in UEFI mode or Legacy mode)
    So I think the problem with the copy on the usb key ...
    Would you have any advice to give me?

    Thank you in advance !

    ReplyDelete
    Replies
    1. I'd try using 'dd' to write the ISO provided above to your USB to see if there is any problem with how you are creating the USB.

      Delete
    2. This does not work with "dd" either unfortunately. Black screen at startup with fixed cursor

      Delete
    3. When you boot make sure you choose the USB partition as you want to boot using rEFInd and not GRUB.

      Delete
  10. Oh linuxium thank you so much for doing this, having all these complaints must drive you nuts but what you are doing is important. So here I go to add to the complaints, sorry. I haven't succeeded yet, I always get a message about running grub64 with '' parameters (sorry to paraphrase). I have a chinese apollo lake laptop and by god it just wont boot linux, depsite my including the -u --atom and the refind thing as well. I used dd in ubuntu to make the iso.
    The edition is ubuntu 17.10 Mate. I guess this might be just a computer doomed to run windows, but thank you for your work.

    ReplyDelete
    Replies
    1. You should use '--apollo' not '--atom'.

      Delete
  11. Hi,

    First thank you for all your work. I have been struggling 24 hours to make your isorespin script work but i can't pass that error:

    cp: failed to preserve ownership for 'mnt/efi/boot/grubx64.efi': Operation not permitted
    cp: failed to preserve ownership for 'mnt/efi/boot': Operation not permitted
    cp: failed to preserve ownership for 'mnt/efi': Operation not permitted
    /bin/bash: line 12: gdebi: command not found

    I searched and found one of your reply to that error

    sudo sed -i 's?if \[ -f \(iso-chroot/etc/resolv.conf[^ ]*\) ]; then?if \[ -f \1 -o -h \1 ]; then?' isorespin.sh

    and did the command a dozen time, even changing the location of the script just to see but it still happen. I tried with Ubuntu 17.10 iso but also with 16.04 so i'm kinda lost here.

    Thx

    ReplyDelete
    Replies
    1. Which version of 'isorespin.sh' are you using? Enter 'isorespin.sh -v' if unsure.

      Delete