Tiny Core Linux
dCore Import Debian Packages to Mountable SCE extensions => dCore Armv7 => Topic started by: beerstein on January 31, 2014, 05:21:24 AM
-
Hi bmarkus:
I might be able to adapt the Allwinner single core A10 dCore to the dual core Allwinner A20 cubietruck. I could compile a list a questions. May be I only need help in a way such as a road map. I am willing to learn the details by myself. Do you have the time to help me with that?
At the cubieboard forum a lot of members had Raspberries before and switched to CT. So in the long run I would like to see an Allwinner A20 section on this forum. What do you think?
-
My advice to use the Armv7 section of the forum for A20 related discussions and later if it is necessary we can create a sub forum. But definietly not in Rasberry Pi part :)
-
OK thats OK.
From cubietruck forum I learned:
1) the gmac ethernet driver for the 1GHz LAN in CT is already built into the 3.4.75 kernel and not a loadable module
2) A CT tinycore distro will need a CT kernel+modules. There is akernel available at:
cubieforums.com/patwood/
name: A20-kernel-3.4.75-ct.tar.gz
what's in files from Allwinner dCore forum:
uImage - 3.0.42 kernel
uCore - startup ramdisk; contains just enough stuff to get a busybox shell, mkfs, fsck, and udev running; no modules.
uEnv.txt, boot.scr - contain all the kernel parameters and boot-time file loading.
linux-sunxi-modules-3.0.42.tar.gz - modules (drivers) specific to this kernel.
To swap out the kernel, replace uImage and linux-sunxi-modules-3.0.42.tar.gz.
So here is what I think needs to done:
recompile the kernel and replace modules.
But- How to do it?
Is this a lot of work?
-
Hello bmarkus I need your help please:
I made some progress now with my cubietruck. I used a new CT kernel from the cubietruck forum and copied it over my current uImage. I left everything unchanged and I have a cubietruck system now working at the command line and has dhcp connection to the internet. That is great so far. According to the README file in the dCore Allwinner A10 repo I should be able to install an X-desktop.
I set up my tce directory on mmcblk0p1 (/dev/sdc1) using tce-setdrive. I have only one FAT32 partition on my micro SDcard which is sdc1=mmcblk0p1. Now - when I try ro install the first extension:
$ importsce -b Xprogs
I am getting errors like this:
tar:can't create symlink from /usr/local/share/pixmaps/screenshot.png to logo.png : Operation not permitted.
tar:can't create symlink from..... and so on.
Other stuff is copied and my /mnt/mmcblk0p1/ shows all the boot files and my /tce with all the content from my importsce operations. I also modified uEnv.txt to start x at boot. But it does not start x and it seems that it can not execute code.
Question: What might be wrong?
Am I supposed to put the /tce into the boot location /mnt/mmcblk0p1 ????
Or should I shrink the mmcblk0p1 (/dev/sdc1) partition, which is now 100% FAT32 and make a new mmcblk0p2 partition using ext4 or ext2 and put the /tce onto that partition?
If I could find a solution for this problem I could have a dCore -X for cubietruck.
BTW: This board is selling like hot cakes.
-
http://forum.tinycorelinux.net/index.php/topic,16117.0.html
http://forum.tinycorelinux.net/index.php/topic,16337.msg97008.html#msg97008
-
Thank you for your quick response. I will try to scale the partition and insert an ext4 partition and just copy the current /tce over. Hope that works. Does a small swap make sense?
-
I resized sdc1 and put an ext4 partition behind the FAT32 partition. Then the importsce worked fine, but the files in sdc1 (mmcblk0p1) were not visible in dCore any more. But they showed up in USB adaptor on my PC - Strange
-
Any chance out of habit you expected the former tce-drive to be automounted?
-
yes I discovered that I have to mount /dev/sdc1 before I can read it. :( So i was able to edit my uEnv.txt and placed: desktop=flwm_topside at he end of that extraargs line. I also put waitusb=5 in here and learned that this is the line where I can put in tinycore boot codes - if needed.
I still have sdc1 = mmcblk0p1 formated as FAT and mmcblk0p2 as ext4. The importsce seems to work, but still no X desktop.
Question: Do I have to format mmcblk0p1 as ext2 instead of FAT32?
From the link you gave me I understand only the partition where /tce sits needs to linux file system - or??
-
It seems that the cubietruck needs a FAT (VFAT) partition to boot from. I tried ext2 and ext4 and got boot errors. Now I am back to a 50 MB FAT /dev/sdc1 partition which holds the kernel and other .bin .scr .txt files. /dev/sdc2 is now ext4 and covers the reminder of the 2GB microSD card. tce-setdrive brought /tce onto /dev/sdc2 and I was able to importsce the extensions to get an X desktop. After importing the extensions (Xprogs, flwm_topside, wbar and xorg-fbdev there were no files in /home/tc ?
I assume that after something is installed the /home/tc folder should have files and data?
The /usr/local/tce.installed folder is empty although there are extension .sce files in /mnt/mmcblk0p2/tce/sce
The /mnt/mmcblk0p2/tce/import/deb folder contains .deb and .tar.gz files.
It seems that all necessary extensions are loaded but not installed.
So something is not working here?
Just for the fun of it I installed mc (midnight commander) screen activity looked like a successful install, but I was not able to run mc from the CLI.
Here are my questions:
1. Where should I look for executable extensions? Which folder?
2. Is there something as an onboot.lst and .filetool.lst in A10 dCore?
3. How can I make a persistant /home in A10 dCore?
4. How can I istall the local extensions and make the installation persistant.
5. What is that /run folder in the file system good for?
Help please.
-
Thank you Jason for the new A10 dCore.
How much work and time would be involved to port it to A20 cubietruck?
I used the uCore from the previous A10 sytem and added a new cubietruck kernel. LAN works fine but I can not install extensions.
Where can I find help to move on with my project?
-
Start by comparing our kernel config file, found in the A10 download section, with that of the kernel you are using.
If you are able to bool to a prompt then at least initrd is supported in your kernel.
If no extensions are loaded then I suspect no squashfs in your kernel. Will need kernel recompile to include.
-
Thank you Robert. Will try to find that out and post back. I never recompiled a kernel, but I will try to learn it.
-
Here is what patwood from the cubieboard forum posted for me:
"The kernels I've uploaded have squashfs built as a module, not baked into the kernel. However, if you have an initrd working, you should be able to copy /lib/modules/3.4.75-sun4i+/kernel/fs/squashfs/squashfs.ko into it and install it with modprobe or insmod."
Question: How can I copy this into my dCore? and make it permanent?
-
I would not advise to change dcore as it is not a simple initrd that can be easily unpacked and repacked as core.gz. It is pseudo compiled with sunxi tools.
However, additional .gzs are still supported in tce-setup and that is what I would try. You will need to be familiar with cpio and gzip to make this specialized extension. Start only with squashfs and then add others as might be needed. The .gz is loaded before any regular extensions (sces). Give that a try.
-
thanx Robert. Where can I learn or find info about how to turn that /lib/modules/3.4.75-sun4i+/kernel/fs/squashfs/squashfs.ko into a .gz extension. Do I need the complete folder /lib/modules or just the squashfs.ko file?
I looked at the wiki.
-
Hi beerstein,
Creating a cpio.gz archive is covered in the Remastering section of the wiki under the Packing title. It can be done the same way as creating the main core.gz.
-
The goal of dCore is to be generic and able to run on various Arm devices. The fact that these scripts run on Allwinner A10, iMX GK802, and X86 shows it is successful in achieving this goal. dCore saves the Team and Community from having to compile hundreds, if not thousands of extensions.
A simple adjustment of boot.scr and the use of gz style extensions often times allows the use of vendor supplied uboot, kernel and associated modules without the need to compile a kernel and modules. Case in point, the BananaPi Arm Computer. Tiny Core X desktop now booting on the BananaPi A20 single board computer. So should the other various A20 and possibly other Allwinner devices. More to come as I am able to post. I will also post the various tools needed for such adjustments.
-
I installed dCore to my Yarvik Velocity 264 Tablet - it is AllWinner A10 tablet - I like it very much - its stability and modular approach. However A10 is one SoC of bigger family. Fedora Arm Allwinner Remixes has an universal image supporting almost whole Allwinner SoC family: A10, A13 (A10s), A20 and A31 - single image only multiple HW folders (very similar to dCore but more SoCs) - HW depended part seems be rather small. [In the past, I used Fedora 19 ARM remix-R3 on multiple devices - A10 tablet (Yarvik), A13 tablet (myAudio), mk-802S (A10S - A13 family SoC), A20 tablet (LTM7)]
Please could you check Readme (HW list) here - http://fedorapeople.org/~lkundrak/a10-images/README
I am not sure how difficult could be to re-use HW depended part from Fedora Arm Remix for dCore?
-
Hi guys,
Is there any 'step by step" instructions on how to run PiCore on BananaPI. I used RaspberryP before, did some development stuff. Now my BananaPI just arrived and would like to test this on It.
Thanks
-
Hi petrasl,
This is the dCore section, you would be better to ask in the PiCore section the link is below.
http://forum.tinycorelinux.net/index.php/board,57.0.html
-
Hi All,
is there any progress in the Tiny Core implementation into the A20 Banana Pi?
-
Here are my notes on such matter:
When trying to use an existing kernel from another Arm Linux device:
Requirements:
=============
The native kernel must support initrd.
Boot your vendor supplied arm device. Then check kernel by:
gunzip -c /proc/config.gz | grep INITRD
We are looking for the result of:
CONFIG_BLK_DEV_INITRD=y
If this is not the case then you will have to build a new kernel to support Tiny Core.
Note: Sometimes the kernel configuration file is located the /boot directory or may be available on the device support website.
Note: Sometimes an additional "recovery kernel" in included with initrd support and can be used.
Additionally:
=============
loopback block device as a module or in kernel.
squashfs file system as a module or in kernel.
are both required to use any Tiny Core extensions.
If included in the kernel great, if not the above modules can be packed into a .gz extension.
Since all .gz extensions are loaded before any other extensions this should be an easy task.
Optionally you could unpack the uCore and repack to include these modules.
Allwinner Configuration files.
==============================
Configuration file: boot.scr
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The "compiled" boot.scr file contains instructions to uboot for kernel and initrd.
To decrypt boot.scr use:
dd if=boot.scr of=boot.script bs=1 skip=72
The resulting boot.script is a plain text file that you can edit.
Add the initrd boot specifications and, as needed, typically change fatload to ext2load to match existing vendor supplied kernel boot specifications.
To "compile" back to a useable boot.scr do:
./mkimage -C none -A arm -T script -d boot.script boot.scr
Next copy this new boot.scr together with the uEnv.txt to target SDCARD.
Configuration file script.bin:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Often with Allwinner devices there is a script.bin file. This is a "compiled" configuration file of key=value pairs. It is typically placed alongside the kernel, i.e., same partition. The exact name of this file can vary and is specified via uboot.
To decrypt script.bin use: bin2fex
./bin2fex script.bin > script.fex
The resulting script.fex can now be edited with a simple text editor.
When finished convert back via fex2bin
./fex2bin script.fex > script.bin
Reboot to effect.
==================
After any changes to any configuration file a reboot is required.
If it does not boot to a prompt then kernel may not support initrd. In this case you must compile a kernel. Otherwise...
At the boot prompt (see readme 1st for further explanation):
$ tce-setdrive
For a trivial example try:
$ importsce sl
$ loadsce sl
$ sl
If sl fails to load then likely you need the squashfs and loopback modules. Look for it from the vendor supplied SDCARD. If vendor supplied such modules then make a cpio gz and place into the tce-dir and reboot.
As root:
# depmod -a
#exit
$ loadsce sl
$ sl
If successful then proceed with X desktop as explained in the readme files.
-
Hi!
Gents, two questions:
- do you plan to open a dCore HW section for Banana-PI or even a "banana-core"?
- is there a chance to get a BananaPi boot using e.g. a Cubietruck uImage - just for testing? As far as I read both run on Allwinner A20 ARMs, and the A20 should be able to run the A10 compiled code.
Well, reason for asking:
I'd like to run the B-Pi as a samba server (in parallel to a R-PI having a UMTS stick connected for internet access) using the SATA connector. Would be great if dCore or a piCore-variant ;) could do the OS job!
To get myself started I downloaded the cubieboard uImage, uCore etc.
I used the original Bananian uBoot and exchanged the uImage + edit the uEnv.txt.
Unfortunately the green LED remains on (no heartbeat) and in the /dev/ttyS0 I see it got stuck calibrating the delay loop...
So I updated and tried a uImage from the release candidate section. (/tinycorelinux/dCore/armv7/Allwinner-A10/release_candidates/)
What I see is:
U-Boot 2014.04-10694-g2ae8b32 (Sep 03 2014 - 20:53:14) Allwinner Technology
CPU: Allwinner A20 (SUN7I)
Board: Bananapi
I2C: ready
DRAM: 1 GiB
MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: dwmac.1c50000
[...]
Starting kernel ...
<5>Linux version 3.4.103 (root@box) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 PREEMPT Thu Feb 26 11:30:43 PST 2015
CPU: ARMv7 Processor [410fc...] revision 4 (ARMv7), cr=10c53...
<6>sunxi: Allwinner A20 (AW1651/sun7i) detected.
[..]
<6>sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
<6>Calibrating delay loop...
no more ttyS0 output ... no HDMI screen, LEDs red + green are active
If you need the full log, please let me know. I just copied - as I think - the most interesting sections
Any ideas / updates on A20 dCore?
Thanks,
Axel.
-
I am now running dCore on a BananaPi using selfbuild mainline u-boot, mainline selfbuild zImage 4.0.5 and uCore from downloads section. HDMI, Framebuffer, USB, network works.
I can post/send kernel config and Boot.scr if someone wants to try.
Sent from my Nexus 4 using Forum Fiend v1.3.3.
-
Yes, please share it with us!
Do you have Gigabit LAN up & running?
Thanks!
-
I am not able to test anything outside of A10 but I am very interested in any success with dCore and other hardware. I only wish I had the time and means to invest further in A20 and other boards.
-
And I would be happy to host files in an A20 section for others to test and use.
-
Hi @all!
Okay, i will try to show what i did:
Get the source for uboot bootloader, i used 2015.4
wget ftp://ftp.denx.de/pub/u-boot/u-boot-2015.04.tar.bz2
Extract it an look for a matching config in configs/. I used Bananapi_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf- Bananapi_defconfig
I did no modifications, so just compile it
make CROSS_COMPILE=arm-linux-gnueabihf-
after that you got the u-boot-sunxi-with-spl.bin.
Now to the kernel. Since v4.0 there is some good support for the allwinner cpu, thats why i tried to build and run a kernel. First i tried a debian system, and after i got it running, i tried tinycore/dcore on top. So my kernel config changes may not all be nessessary for dcore. Feel free to try for yourself.
First download kernel source, i started with 4.0.5. Newer kernels will likely work, but i didnt tried
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.5.tar.xz
extract it an clean up
make mrproper
For the allwinner, there is the sunxi_defconfig, so use it
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig
Now do the changes. I use the script in ./scripts/config so i dont need to go to all the menus. But you can use it, too. From extracted root directory do
./scripts/config --enable CONFIG_AUTOFS4_FS
bluetooth is optional, i wanted it
./scripts/config --enable CONFIG_BT
./scripts/config --enable CONFIG_BT_RFCOMM
./scripts/config --enable CONFIG_BT_RFCOMM_TTY
./scripts/config --enable CONFIG_BT_BNEP
./scripts/config --enable CONFIG_BT_BNEP_MC_FILTER
./scripts/config --enable CONFIG_BT_BNEP_PROTO_FILTER
./scripts/config --enable CONFIG_BT_HIDP
./scripts/config --enable CONFIG_BT_HCIBTUSB
./scripts/config --enable CONFIG_CGROUPS
cifs is optional, i needed it to use some windows shares
./scripts/config --enable CONFIG_CIFS
./scripts/config --enable CONFIG_CIFS_WEAK_PW_HASH
./scripts/config --enable CONFIG_CIFS_SMB2
./scripts/config --enable CONFIG_INPUT_EVDEV
./scripts/config --enable CONFIG_FHANDLE
./scripts/config --enable CONFIG_FB
./scripts/config --enable CONFIG_FRAMEBUFFER_CONSOLE
./scripts/config --enable CONFIG_FB_SIMPLE
kernel config in /proc is optional, i liked it
./scripts/config --enable CONFIG_IKCONFIG
./scripts/config --enable CONFIG_IKCONFIG_PROC
i mainly enabled ipv6 because of errors during boot of debian, i think its optional
./scripts/config --enable CONFIG_IPV6
./scripts/config --enable CONFIG_BLK_DEV_LOOP
ntfs support is optional
./scripts/config --enable CONFIG_NTFS_FS
./scripts/config --enable CONFIG_NTFS_RW
squashfs is needed for dcore. I was not sure about the compression methods, i included all to be on the safe side
./scripts/config --enable CONFIG_SQUASHFS
./scripts/config --enable CONFIG_SQUASHFS_XATTR
./scripts/config --enable CONFIG_SQUASHFS_LZ4
./scripts/config --enable CONFIG_SQUASHFS_LZO
./scripts/config --enable CONFIG_SQUASHFS_XZ
After all changes do
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- olddefconfig
now build the kernel
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs
i used the -j8 option to speed things up. compiling takes 1:49 minutes on my i7
Now we got the arch/arm/boot/zImage, and the arch/arm/boot/dts/sun7i-a20-<yourboard>.dtb. I used of course the sun7i-a20-bananapi.dtb
Okay, now we need to put it all together. Use an empty sdcard. First install bootloader
dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=1
dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8
Then create a ext4-partition, and copy the zImage and the sun7i-a20-<yourboard>.dtb to the root directory of the sdcard.
Now get the uCore ramdisk image from dcore A10 download section
wget http://distro.ibiblio.org/tinycorelinux/dCore/armv7/Allwinner-A10/uCore
put it into root of sdcard.
Last step is to create the boot.scr. First create a plan text file, like boot.txt with the following content
ext4load mmc 0 0x46000000 zImage
ext4load mmc 0 0x49000000 sun7i-a20-<yourboard>.dtb
ext4load mmc 0 0x41000000 uCore
setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p1 rootwait panic=10 ${extra}
bootz 0x46000000 0x41000000 0x49000000
Now compile it with the tool in the u-boot-directory tools/mkimage
./tools/mkimage -C none -A arm -T script -d boot.txt boot.scr
This creates the boot.scr, put it into the sdcard root directory, too.
Done. If i didnt miss something, then you can put the sdcard into your bord and boot it.
Christof
-
@keks22
yes, gigabit lan is up and running, but i didnt test the performance yet. Only used ssh and rdesktop so far without any hiccups.
-
Great! Thanks!
I hope I'll find the time to run through your all the steps and see my Banana Tree growing :D
vdelf, as an alternative - and if Jason W provides an A20 section - would you be willing to share your binaries or an SD image?
Thanks!
-
I would be happy to share the files. But i have no webspace and files are to big for attachment. Any suggestions (1-click-hoster maybe)?
-
How big are the files, could you email them? I would be happy to create an A20 section.
-
Hi vdelf
Maybe you could upload them to here:
http://www.tinyupload.com/
and then send Jason the link via Email or PM.
-
hey, i like tinyupload.com! here are the files
[EDIT]: Removed links. Rich
-
Thanks, I have posted the files!
http://tinycorelinux.net/dCore/armv7/Allwinner-A20/
-
I planned to test over the week-end. But.. I couldn't resist ;)
So I created the image and ... runs like a charm! No I can play around with SSH and others over the week-end!
@vdelf: Awesome! Great work! Thanks a million!
@Jason W: Thanks also for opening the A20 section!
-
Gents,
got X running with flwm_topside and wbar.
cheers!
-
I appreciate any and all help and contributions, especially in the ARM area where I only have an A10 and ARM is not my specialty. The more devices we can make dCore available for the better. I will try to get more involved in it as time goes on, as that was one of the original reasons for dCore in the first place.
-
Hi vdelf
I removed your links since the files are now being hosted here.
-
I have placed symlinks in the Allwinner-A20 directory to the Allwinner-A10 directory for the uCore and uCore.md5.txt files so all the files will be available and updates to the A10 uCore will be automatically available for A20.
-
Hi!
I have a cubieboard2 (a20) - the image is ready to test on this?
Will be possible to install on nand?
Thanks.
-
hi Zendrael,
some time ago i put together some files for beersein, for his cubieboard2. I did not get any reply, so maybe this works or not. Feel free to try, i think it should work from sd. I have no clue about booting from nand...
here is the archive:
http://s000.tinyupload.com/index.php?file_id=43100638919456436409 (http://s000.tinyupload.com/index.php?file_id=43100638919456436409)
-
Thanks vdelf!
I'll test it in the weekend!
Regards!
-
hi vdelf: Thank you for the files. I was away and will try it out asap and post back. I have a CB2 and a bananaPI-A20.
-
Hi Gents
Finally I got my Marsboard A20 to boot with dCore. Manage to import packages and when I try to do sce-load<package> I get the following error;
mount: mounting /dev/loop0 on /tmp/tcloop/<package> failed: no such device
any suggestions?
-
Hallo Guys!
And first a big THANKS to vdelf! You are awesome!
My Banan Pi is working with dCore.
But I have one question:
Is this version of dCore Jessie or a Wheezy?
I'm a newbie to that so sorry if this question seems dumb, but its important for me !
Thanks!
Sebster
-
I am not familiar with your hardware or that dCore port, hopefully the outputs of the version command:
version
...and uname help:
uname -a
-
Hello again!
Thank you for the tips!
Can someone please provide an updated uCore?
Or can someone tell me how to build one myself I would do so as well...
Basic functions (like wget etc) don't work anymore because of outdated versions of the corresponding repos/installed programs.
Thanks a lot!
-
I plan on getting back involved in the dCore Arm ports, by the first of the year I should have some new hardware as there was an issue with my old.
But any help I can get with the Arm ports is appreciated and I will be happy to host contributed files.
-
I have uploaded an updated uCore via a Raspberry Pi 3 I recieved as a gift which allows me to access, update, and test the image. dCore specific files being outdated were the apparent issue. Hopefully all works as expected now.
-
Updated uCore to the current dCore release.
-
Forgive my jumping into this thread but it sounds like something I have been wondering for a long time. Is it possible to run dCore on some Raspberry Pi? The thought of running regular dCore on these models is absolutely striking. I have tried in vain with a model 2B but I must admit that I do not have any real idea about the differences in hardware among the models.
-
I use a Raspberry Pi 3 to create the uCore image for the Allwinner now as it is armv7 compatible, but the uCore image format is different than in piCore. But since Raspberry Pi is already covered as a Tinycore port, I don't offer it here in the dCore form. And since the Allwinner dCore is only available now for Debian Wheezy it is kind of deprecated anyway.
-
Sorry to bother with my ignorance but what exactly is uCore? I have not found any specific information.
-
http://tinycorelinux.net/dCore/armv7/Allwinner-A10/uCore
-
Hi there,
We need a step-by-step instructions on how to install dCore on a Cubietruck.
Is there anyone able to provide it?
Thanks in advance!!!