Intel® Makers
Intel® Edison, Intel® Joule™, Intel® Curie™, Intel® Galileo
Announcements
Welcome - This is a Peer-to-Peer Forum only. Intel has discontinued these products but you may find support from other customers on this Forum
9868 Discussions

ubilinux (Debian) now available from Emutex Labs

DHunt5
Valued Contributor I
18,663 Views

Hi all,

There's now a flash-installable version of Debian available for Edison. It's called ubilinux, and is a follow-on from the previous work done on the ubilinux distribution for Galileo and Galileo Gen2.

ubilinux page http://www.emutexlabs.com/ubilinux here

Functionality available out of the box:

Mutli-function gadget (Storage, Network, Serial)

Wifi

Arduino IDE compatibility with sketch download daemon

C and C++ compiler

Python

Node.JS

wpa-supplicant and HostAPD

If there's something missing that you need, just use 'apt-get install' to get it from the pre-selected Debian repositories.

We've chosen the "flashall.sh -b" method to install onto the Edison, as we've increased the size of the root partition to a size that's larger than the max size allowed by the OTA upgrades. This is to give users more space for installing packages. You need a linux platform or a Linux live-boot platform to use the flashall.sh script. See the Installation Instructions here: http://www.emutexlabs.com/ubilinux/29-ubilinux/218-ubilinux-installation-instructions-for-intel-edis... Installation instructions

--START EDIT--

Note: It's probably good if the first thing you do once you get your board connected to the internet is do an "apt-get install ntp" which will automatically set the system clock. Otherwise it's set to a date in the year 2000.

--END EDIT--

--START EDIT--

xFSTK (as mentioned below) is no longer needed if you tweak the flashall.sh script as described in this post:

/message/257617# 257617 https://communities.intel.com/message/257617# 257617

--END EDIT--

Message was edited by: David Hunt

168 Replies
Michael_J_Intel1
Employee
585 Views

OK... I successfully re-compiled the kernel with the WW42 Edison patch, and I'm ready to attempt to install and boot with the new kernel.

However, I'm thinking I need to "backup" my system before I do this (If my kernel is broken for some reason, I'll get to start back at the flash ubilinux step).

Does anyone know if there a "simple" way to check-point of all of the changes I've made on my Edison so that I can re-flash my modified system and get back to this point if I've completely messed up my kernel compile?

AT9
Honored Contributor II
585 Views
Michael_J_Intel1
Employee
585 Views

I'll give that a try... It seems like that should work.

Thanks!

BWebb2
New Contributor III
585 Views

Can we expect an updated ubilinux image based on the ww42 release? I imagine the only real difference would be the kernel. It would be nice if we could just update the kernel and modules on an existing system and save the trouble of re-installing / re-configuring.

MMich22
New Contributor II
585 Views

I did not check the new yocto release but I think that the kernel version did not change. If this is not true, please correct me.

DHunt5
Valued Contributor I
639 Views

New ww42 kernel and modules available via apt-get install

  1. comment in the /boot line in /etc/fstab
  2. mount /boot
  3. Comment in the ubilinux.org line in /etc/apt/sources.list
  4. apt-get update
  5. mv /boot/vmlinux /root (move old kernel out of the way, limitation in dpkg and vfat partitions)
  6. apt-get install kernel-3.10.17-poky-edison-ww42

You should now have a new set of modules in /lib/modules/3.10.17-poky-edison-ww42+

and a new vmlinuz kernel in /boot.

reboot, and 'uname -a' should show:

root@ubilinux:~# uname -a

Linux ubilinux 3.10.17-poky-edison-ww42+ # 4 SMP PREEMPT Wed Oct 29 12:41:25 GMT 2014 i686 GNU/Linux

root@ubilinux:~#

I've changed the name of the kernel to include '-ww42', so we can tell it apart from previous kernels.

Notes:

as there is no .deb created by yocto with vmlinuz, I created a new .deb package with it and all the modules that are currently built with the kernel.

dpkg has issues with vfat partitions (/boot), so apt-get install can't install directly into the /boot partition with an existing vmlinuz tghere, as the softlink creation will fail, causing the installation to fail. That's why it's necessary to move the old kernel out of the way first.

I hope to clean all this up for an easier installation with the next ubilinux release, including all the other suggested changes, flashall.sh, etc. etc.

BWebb2
New Contributor III
639 Views

That is great! Much better than re-installing!

Matthias_H_Intel
Employee
639 Views

Yocto should be able to build either ipk or rpm or deb. It just depends on the PACKAGE_CLASSES variable - see

http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html# var-PACKAGE_CLASSES http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html# var-PACKAGE_CLASSES

DHunt5
Valued Contributor I
639 Views

Yes, I spent a good while generating .debs, and was looking at the kernel-image package which only contains the bzImage which is of no use on Edsion, as it needs the vmlinuz in partition 7's vfat filesystem. Maybe the vmlinuz is in one of the other .debs. I'll take another look.

Matthias_H_Intel
Employee
639 Views

well, ok - wasn't aware that you were aware

Wouldn't know any further details on the packages

DHunt5
Valued Contributor I
639 Views

I just checked the other packages, but no package with vmlinuz. There is one with vmlinux, but that's about 130MB.

I might raise a ticket to see if a package with vmlinuz can be added

Michael_J_Intel1
Employee
639 Views

So, being a NOOB at this kernel compiling stuff (but not afraid to try! <-- possibly a bad combination? <span __jive_emoticon_name="laugh" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="/7.0.2.0/images/emoticons/laugh.png">), I'm a bit confused with all the bzImage, vmlinux, vmlinuz combinations.

I have "successfully" natively recompiled a kernel with ww42 patches, and Xenomai 2.6.3 (using the ipipe patch for a 3.10.32 kernel). I did have to manually patch 3 kernel files, but those changes appeared pretty straight forward (although I know a lot of this is magic, so nothing in what I'm doing is guaranteed to work)...

I used

make deb-pkg

and got 3 nicely packaged .deb files.

Expanding the size of the /boot partition, moving the old kernel out of the way, and installing the kernel using

dpkg -i *.deb

appeared to work fine, although the name of the kernel image in /boot had the kernel version in it. I truncated the name to vmlinuz, and rebooted (I guess I could also use a hard link, I think I've seen that done...).

Uboot seemed to find the kernel, with the proper compile date, but the system hung without any console messages (which probably means it's finding my kernel ). Thank goodness I got guidance here for how to create a rootfs backup!

Should I be using a different kernel "format"?

I guess my next step is to enable the CONFIG_EARLY_PRINTK option and recompile to see if I can get more details on what's wrong.

One thing I'm not sure of, though is how to modify parameters on the kernel command line...

DHunt5
Valued Contributor I
639 Views

u-boot on Edison expects vmlinuz (not vmlinux) to be present in the vfat boot partition (partition 7). NOT bzImage in the /boot folder in the ext4 partition, which is entiretly redundant. Why that's still there I don't know. That one caught me out for quite a while...

So if you bitbake your new kernel, look for vmlinuz (it'll be in there somewhere under build/tmp in the Yocto environment), and copy that to the vfat partition (mounted at /boot in latest ubilinux), reboot, and it should use vmlinuz. It should be about 5-7MB, maybe a bit bigger, if you've added lots of stuff.

Dave.

RDrag
New Contributor I
639 Views

Has anyone tried the USB gadget functionality in Ubilinux for mass storage? That's the only part that doesn't work for me, Windows only shows me the RNDIS interface, an ACM serial port and a CDC Serial (not sure what the difference is). But I see no storage. Is there anything I need to do in Ubilinux to enable this?

BWebb2
New Contributor III
639 Views

On Linux it pops up a file manager dialog when I plug it in, although I haven't tried copying anything to it. I haven't tried on Windows.

DHunt5
Valued Contributor I
639 Views

drazvan,

It's the same drivers on the Debian side as in Yocto. Check the windows drivers setup from the Intel docs.

Dave.

RDrag
New Contributor I
639 Views

Thank you, it looks like this was a Windows issue somehow - I was able to find the disk in the Device Manager but Windows would not mount it automatically. I started the Disk Manager and it showed no volumes on that disk - so I went ahead and created one, then Windows was able to mount it. That's kind of strange since the same volume was mountable under Linux just fine. Anyway, it works now, so I'll just blame Windows and move along . Thank you!

idata
Community Manager
639 Views

David, thank you for your excellent works.

I'm in trouble to lack of I2S audio support on Yocto.

Because ubilinux is another "standard" linux, I expect "standard" I2S support.

But if ubilinux has same kernel to Yocto,

it maybe has same problem to Yocto. Isn't it?

DHunt5
Valued Contributor I
639 Views

Yes, it's the same kernel. It's built using bitbake in the Yocto environment, and then copied to the Debian image or system.

So if it's a kernel driver that's missing, you'll need to build the kernel with the needed drivers.

If it's a missing library issue, you should be able to apt-get. Failing that, compile from source.

Rgds,

Dave.

idata
Community Manager
639 Views

Not sure if it was mentioned already, but by downloading dfu-util.exe from https://dl.dropboxusercontent.com/u/54378433/dfu-util/dfu-util.exe here, I was able to run flashall.bat from a Windows 8.1 command prompt and successfully flash my edison.

Thank you David!

---Mirco.

jfeng4
Beginner
568 Views

Hi Micro,

I tried you suggestions on win7, however I got the following error, Can you help to find out if I missed some steps or wrong:

Steps:

1. Download ublinux from http://www.emutexlabs.com/ubilinux EmutexLabs

2.Download dfu-util.exe and put it into toflash directory.

3. Open a CMD window with admin privilege.

4. Execute flashall.bat

5. Insert the Edison USB cable

Error Output on Host:

D:\work\intel-edison\ubilinux-edison-ww44.5.tar\toFlash>flashall.bat

Using U-boot target: edison-blank

Now waiting for dfu device 8087:0a99

Please plug and reboot the board

Dfu device found

Flashing IFWI

Flash failed on --alt ifwi00 -D "D:\work\intel-edison\ubilinux-edison-ww44.5.tar\toFlash\edison_ifwi-dbg-00-dfu.bin"

Flash failed on --alt ifwib00 -D "D:\work\intel-edison\ubilinux-edison-ww44.5.tar\toFlash\edison_ifwi-dbg-00-dfu.bin"

Flashing U-Boot

Flash failed on --alt u-boot0 -D "D:\work\intel-edison\ubilinux-edison-ww44.5.tar\toFlash\u-boot-edison.bin"

Output From Edison:

******************************

PSH KERNEL VERSION: b0182727

WR: 20104000

******************************

SCU IPC: 0x800000d0 0xfffce92c

PSH miaHOB version: TNG.B0.VVBD.0000000c

microkernel built 23:15:13 Apr 24 2014

******* PSH loader *******

PCM page cache size = 192 KB

Cache Constraint = 0 Pages

Arming IPC driver ..

Adding page store pool ..

PagestoreAddr(IMR Start Address) = 0x04899000

pageStoreSize(IMR Size) = 0x00080000

*** Ready to receive application ***

U-Boot 2014.04 (Oct 12 2014 - 15:29:52)

Watchdog enabled

DRAM: 980.6 MiB

MMC: tangier_sdhci: 0

In: serial

Out: serial

Err: serial

Hit any key to stop autoboot: 0

Target:blank

Partitioning already done...

Flashing already done...

GADGET DRIVER: usb_dnl_dfu

#

DFU complete CRC32: 0x677be95a

DOWNLOAD ... OK

Ctrl+C to exit ...

#

DFU complete CRC32: 0x677be95a

DOWNLOAD ... OK

Ctrl+C to exit ...

#

DFU complete CRC32: 0xe3b8ab8c

DOWNLOAD ... OK

Ctrl+C to exit ...

Thanks

Jinjun

Reply