Tested some of the kernel versions possible (or not..) for the Next CHIP ARMv7, with mixed results.. I added an Ethernet/USB device (ax88179-based) on the USB hub, and the network connection works fine..
Linux-Next does not yet have the drivers for the Hynix NAND in the CHIP, although – with the rootfs separate on a USB stick – this was not an issue, except for updating the NAND-located kernel and dtb..
.... Fedora 24 (Twenty Four) Kernel 4.7.0-rc7-next-20160713 on an armv7l (ttyS0) ..................... ]# uname -a Linux rgchip 4.7.0-rc7-next-20160713 #2 SMP Wed Jul 13 21:18:40 PDT 2016 armv7l armv7l armv7l GNU/Linux
There are a confusing multitude of patched kernel sources on the Next GitHub site https://github.com/NextThingCo/CHIP-linux , and those I tried did not compile cleanly, or the NAND/UBIFS mount crashed..
...................... CC lib/plist.o drivers/mtd/ubi/build.c:48:2: error: #error TODO #error TODO ^~~~~ scripts/Makefile.build:258: recipe for target 'drivers/mtd/ubi/build.o' failed make: *** [drivers/mtd/ubi/build.o] Error 1 scripts/Makefile.build:403: recipe for target 'drivers/mtd/ubi' failed make: *** [drivers/mtd/ubi] Error 2
................................. [ OK ] Started Permit User Sessions. ubi0: attaching mtd4 ubi0 warning: __ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read only 64 bytes, retry [ OK ] Started Notify NFS peers of a restart. [ OK ] Started Network Manager Script Dispatcher Service. ubi0 warning: __ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read only 64 bytes, retry ubi0 warning: __ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read only 64 bytes, retry [ OK ] Started Command Scheduler. [ OK ] Started Job spooling tools. ubi0 error: __ubi_io_read: error -74 (ECC error) while reading 64 bytes from PEB 0:0, read 64 bytes CPU: 0 PID: 255 Comm: ubiattach Not tainted 4.7.0-rc1++ #3 Hardware name: Allwinner sun4i/sun5i Families Backtrace: [<c010b228>] (dump_backtrace) from [<c010b424>] (show_stack+0x18/0x1c) r7:00000001 r6:00000000 r5:00000040 r4:ffffffb6 [<c010b40c>] (show_stack) from [<c02f1640>] (dump_stack+0x24/0x28) [<c02f161c>] (dump_stack) from [<c03c3af0>] (__ubi_io_read+0x260/0x500) [<c03c3890>] (__ubi_io_read) from [<c03c4550>] (ubi_io_read_ec_hdr+0x50/0x20c) r10:00000000 r9:00000040 r8:00000000 r7:ded85000 r6:df7a5c00 r5:d93a4000 r4:00000000 ..... etc....
I did manage to flash the NAND with a later kernel version – based on 4.4.11… The process was relatively painless, as the re-flashing is controlled by an easy-to-use plugin/app for Chromium/Chrome browsers.. http://docs.getchip.com/chip.html#flash-chip-with-an-os This erases and re-creates the NAND rootfs, which would be an issue normally, but as I have the rootfs on the USB stick, I just needed to re-edit the kernel command line parameter in U-boot to point to the rootfs on /dev/sda1 again..
I had hoped to be able to use the redundant space on the NAND for a swapfile, but the UBIFS filesystem does not support the fallocate command..
After all this, I did find some ‘official’ kernel patches being developed for Hynix NAND support, but these are still work-in-progress… https://patchwork.kernel.org/patch/9187023/ I will probably wait until these are available on Linux-Next, and update the device then..
Robert Gadsdon. July 14, 2016.