Sunday, November 20, 2016

DE0-Nano-Soc update on SD card Images

In my last entry I mentioned problems with the new SD card image and my use of a previous image.

This has now been resolved.

There was what equated to a typo in the device name specified in the .ini file for the sample configuration.
(I say 'equated', because the name was deliberate, but when it was deprecated in favour of a common one across Altera and Zynq platforms, the sample config was not updated)
Thus anything based upon the sample, as mine was, did not work.

The image build system is in the process of being regenerated, once some other glitches are straightened out.

There is now an image with the repo as of 14/02/2017 here
http://deb.machinekit.io/uploads/de0-nano/debian-8.5-console-armhf-2017-02-14/
It includes the multicore code, with the updated hm2_soc_ol driver and
it has a 512MB swap partition, which makes it easier to rebuild and use both cores without running out of memory.

In my last entry, I also advocated the use of gparted to extend the rootfs partition to use the available SD card space.

Having twice had failures using gparted to do just this with SD cards recently, I have hit upon a successful command line strategy.

The images consist of a 1M uboot partition and an approx 3.6G rootfs partition.
If we use the designations on my desktop (which has a lot of other disks), they
are
/dev/sdf1 uboot
/dev/sdf2 rootfs

Because there are no partitions after /dev/sdf2, it is possible to delete the partition, then create a new one starting at exactly the same sector, but encompassing the whole SD card.
Then we need to fix up the file system and expand it to the new partition size.

# check it is as you expect                                                                              
$ fdisk -l /dev/sdf                                                                                                
                                                                                                                         
$ umount /dev/sdf2                                                                                             
                                                                                                                         
$ fdisk /dev/sdf                                                                                                    
                                                                                                                         
# command d to delete partition                                                                     
                                                                                                                         
# select partition 2                                                                                          
                                                                                                                         
# w to write to disc                                                                                         
                                                                                                                         
$ fdisk /dev/sdf                                                                                                    
                                                                                                                         
# n to add, primary partition, same start sector as before, select full size    
                                                                                                                         
# w to write to disc                                                                                         
                                                                                                                         
# now fix the file system                                                                                 
$ e2fsck -f -y /dev/sdf2                                                                                        
                                                                                                                         
# resize the filesystem                                                                                     
$ resize2fs /dev/sdf2                                                                                           


Usual caveats apply, back up any data etc. but works fine for me with a card that gparted just hung for 10 mins and produced an error with.

If you create the rootfs partition slightly smaller than full disk size, you can go back into fdisk and create a 3rd partition, then format that as swap and enter it into the /etc/fstab file.
eg.

$ fdisk /dev/sdf

# n add primary partition number 3 use full size

# w to write to disc

$ mkswap /dev/sdf3

$ echo "UUID=<output-from-mkswap-here> none swap sw 0 0" >> /etc/fstab

Helps greatly if you are actually rebuilding machinekit in-situ.

Or you can use the swapfile method detailed in Michael's gist .
https://gist.github.com/mhaberler/89a813dc70688e35d8848e8e467a1337 
Cat skinning methods are plentiful 😼
 

No comments:

Post a Comment