[opensuse-arm] openSUSE on Nexbox z68 (GeekBox like TV box)
Hello all! I have a Nexbox z68 android TV box with a RK3368 processor that I want to play with. This box is like the GeekBox but cheaper (I bought mine for 30€). And, of course, also with less connectors, but it’s really cheap for a 2GB RAM / 16GB eMMC box. The hardware of the two box are pretty close, I’ve been able to boot the Ubuntu GeekBox version without any problem. One of missing function is the serial console by default (like a lot of TV box) but I’ve been able to use it with some minor work. If you want to try, give a look at my post on FreakTab (I tried to add the link but it seems that it's not allowed by the forum rules, my message was denied). Now, I want to try openSUSE on it. I saw that Andreas has a WIP on GeekBox (https://en.opensuse.org/HCL:GeekBox) and, as I understand, it’s possible to boot openSUSE with both the vendor U-Boot or the mainline U-Boot. For the moment, I want to stay with the vendor version because at this time I don’t known how to enter MaskRom mode (there is two test points near the eMMC chip, I just need to test it). Here my question (finally!): what openSUSE image do I use? And where to find the initrd? I found a kernel in the generic JeOS image but no initrd... Regards, Loic N�����r��y隊Z)z{.�櫛맲��r��z�^�ˬz��N�(�֜��^� ޭ隊Z)z{.�櫛�0�����Ǩ�
On Mon, 3 Oct 2016 10:54:41 +0000 LOIC DEVULDER <loic.devulder@mpsa.com> wrote:
Hello all!
I have a Nexbox z68 android TV box with a RK3368 processor that I want to play with. This box is like the GeekBox but cheaper (I bought mine for 30€). And, of course, also with less connectors, but it’s really cheap for a 2GB RAM / 16GB eMMC box. The hardware of the two
Hello, I have a Chinese RK based TV box lying on my table. Not sure about the exact details - been a while since I looked at it. The interesting bit is that it has three USB2 A connectors. Two of these are wired to the host controller and the third to the OTG controller. In the Android firmware the box came with there was a settings option to turn the OTG connector from host to device and use ADB and rkflashtool. https://github.com/crewrktablets/rkflashtools With these I pulled the firmware partitions from the device and modded a boot script to keep the OTG connector in device mode and that's as as far as I went. You can try to upload a kernel with rkflashtool without writing the in-device storage which might be helpful for unstable/development kernels. HTH Michal -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
-----Message d'origine----- De : Michal Suchanek [mailto:msuchanek@suse.com] Envoyé : lundi 3 octobre 2016 14:29 À : opensuse-arm@opensuse.org Objet : Re: [opensuse-arm] openSUSE on Nexbox z68 (GeekBox like TV box)
On Mon, 3 Oct 2016 10:54:41 +0000 LOIC DEVULDER <loic.devulder@mpsa.com> wrote:
Hello all!
I have a Nexbox z68 android TV box with a RK3368 processor that I want to play with. This box is like the GeekBox but cheaper (I bought mine for 30€). And, of course, also with less connectors, but it’s really cheap for a 2GB RAM / 16GB eMMC box. The hardware of the two
Hello,
I have a Chinese RK based TV box lying on my table. Not sure about the exact details - been a while since I looked at it.
The interesting bit is that it has three USB2 A connectors. Two of these are wired to the host controller and the third to the OTG controller. In the Android firmware the box came with there was a settings option to turn the OTG connector from host to device and use ADB and rkflashtool. https://github.com/crewrktablets/rkflashtools
I have the same connectors too, and I'm able to read/write eMMC with rkflashtool or upgrade_tool.
With these I pulled the firmware partitions from the device and modded a boot script to keep the OTG connector in device mode and that's as as far as I went.
You can try to upload a kernel with rkflashtool without writing the in-device storage which might be helpful for unstable/development kernels.
What is the rhflashtool option to upload a kernel (or other image I think) Without writing on the eMMC? I agree with you that's could be useful. I undertand how the boot work (I think :-)). The resource.img contains the dtb, the linuxroot is for the / image and the ramfs is for the kernel+initrd. But my problem is that I've downloaded the latest JeOS for Tumbleweed, openSUSE-Tumbleweed-ARM-JeOS.aarch64-rootfs.aarch64-Current.tbz, but I cannot find the initrd file in it...
HTH
Michal -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hello Loic, Am 03.10.2016 um 12:54 schrieb LOIC DEVULDER:
I saw that Andreas has a WIP on GeekBox (https://en.opensuse.org/HCL:GeekBox) and, as I understand, it’s possible to boot openSUSE with both the vendor U-Boot or the mainline U-Boot.
That is likely not correct. It only works with the vendor U-Boot so far. It is possible to boot into U-Boot with mainline-based patches of mine, but not yet from U-Boot into openSUSE for lack of drivers.
Here my question (finally!): what openSUSE image do I use? And where to find the initrd? I found a kernel in the generic JeOS image but no initrd...
Short answer is: Use the JeOS-rootfs for any new boards. Yes, it does not contain an initrd, because it's not for a specific board. Theoretically you could use dracut to create a "no-host" initrd, but then you might run into size limitations for the initrd flash partition. The easiest way for new board enablements is to (cross-)compile an upstream defconfig kernel yourself locally (make CROSS_COMPILE=aarch64-suse-linux- CC=aarch64-suse-linux-gcc-6 ARCH=arm64 ...), boot it and then update/reinstall kernel-default. On the GeekBox I have not yet tried that step, since I would rather have the kernel+initrd loaded from SSD than flashing it to eMMC. Chances are there's no .dts for your device yet, which means you'll need to hack on the kernel yourself anyway, which is quickest with a non-OBS kernel setup and may require you to use linux-next.git. Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hello Andreas, Thanks for the informations.
That is likely not correct. It only works with the vendor U-Boot so far. It is possible to boot into U-Boot with mainline-based patches of mine, but not yet from U-Boot into openSUSE for lack of drivers.
I'm trying with vendor U-Boot, as I currently don't know how to force MaskRom on my board.
Short answer is: Use the JeOS-rootfs for any new boards. Yes, it does not contain an initrd, because it's not for a specific board. Theoretically you could use dracut to create a "no-host" initrd, but then you might run into size limitations for the initrd flash partition.
The easiest way for new board enablements is to (cross-)compile an upstream defconfig kernel yourself locally (make CROSS_COMPILE=aarch64-suse-linux- CC=aarch64-suse-linux-gcc-6 ARCH=arm64 ...), boot it and then update/reinstall kernel-default. On the GeekBox I have not yet tried that step, since I would rather have the kernel+initrd loaded from SSD than flashing it to eMMC.
I tried to boot the kernel provided with JeOS without initrd (converted in ramfs) but I cannot load the kernel :-( I know that the full boot is not possible, due to lack of initrd, but I would have try this just to see if the kernel can start. I have error about missing partition, I need to investigate this further: ... try to start ramfs ERROR: [rk_load_image_from_storage]: bootrk: failed to read ramdisk Unable to boot:ramfs ... So, I will try to cross-compile the kernel.
Chances are there's no .dts for your device yet, which means you'll need to hack on the kernel yourself anyway, which is quickest with a non-OBS kernel setup and may require you to use linux-next.git.
I use the dtb file from the original firmware. But yes it may not be adapted to the 4.7 kernel (by default it's a 3.10). I think the dts from GeekBox can boot, as I'm able to boot Android or Lubuntu GeekBox version without majour issue (LED and IR doesn't work). Regards, Loic
Hi Loic, Am 10.10.2016 um 10:31 schrieb LOIC DEVULDER:
I tried to boot the kernel provided with JeOS without initrd (converted in ramfs) but I cannot load the kernel :-( I know that the full boot is not possible, due to lack of initrd, but I would have try this just to see if the kernel can start. I have error about missing partition, I need to investigate this further: ... try to start ramfs ERROR: [rk_load_image_from_storage]: bootrk: failed to read ramdisk Unable to boot:ramfs ...
You need to supply an empty initrd. From scripts I have around: ./mkbootimg/mkbootimg --kernel linux/arch/arm64/boot/Image \ --ramdisk initrd.cpio.gz -o ramfs.img sudo ./utils/upgrade_tool di ramfs ramfs.img initrd.cpio.gz is a gzip'ed empty cpio archive. Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
Hi Andreas,
-----Message d'origine----- De : Andreas Färber [mailto:afaerber@suse.de] Envoyé : lundi 10 octobre 2016 17:48 À : LOIC DEVULDER - U329683; openSUSE ARM ML (opensuse-arm@opensuse.org) Objet : Re: [opensuse-arm] openSUSE on Nexbox z68 (GeekBox like TV box)
Hi Loic,
Am 10.10.2016 um 10:31 schrieb LOIC DEVULDER:
I tried to boot the kernel provided with JeOS without initrd (converted in ramfs) but I cannot load the kernel :-( I know that the full boot is not possible, due to lack of initrd, but I would have try this just to see if the kernel can start. I have error about missing partition, I need to investigate this further: ... try to start ramfs ERROR: [rk_load_image_from_storage]: bootrk: failed to read ramdisk Unable to boot:ramfs ...
You need to supply an empty initrd. From scripts I have around:
./mkbootimg/mkbootimg --kernel linux/arch/arm64/boot/Image \ --ramdisk initrd.cpio.gz -o ramfs.img sudo ./utils/upgrade_tool di ramfs ramfs.img
initrd.cpio.gz is a gzip'ed empty cpio archive.
Thanks, I've tested this and it's better. Now I can see "Starting kernel ..." message but nothing else :-( I have put console=ttyS2 for the serial console but I need to check if the serial console is on uart2 or uart4. I know that the serial console is shared with sdcard port and, if I remember, is by default uart4. I will try to test with console=ttyS4 tomorrow. Regards, Loic
Hi,
-----Message d'origine----- De : LOIC DEVULDER - U329683 Envoyé : mardi 11 octobre 2016 09:37 À : 'Andreas Färber'; openSUSE ARM ML (opensuse-arm@opensuse.org) Objet : RE: [opensuse-arm] openSUSE on Nexbox z68 (GeekBox like TV box)
Hi Andreas,
-----Message d'origine----- De : Andreas Färber [mailto:afaerber@suse.de] Envoyé : lundi 10 octobre 2016 17:48 À : LOIC DEVULDER - U329683; openSUSE ARM ML (opensuse-arm@opensuse.org) Objet : Re: [opensuse-arm] openSUSE on Nexbox z68 (GeekBox like TV box)
Hi Loic,
Am 10.10.2016 um 10:31 schrieb LOIC DEVULDER:
I tried to boot the kernel provided with JeOS without initrd (converted in ramfs) but I cannot load the kernel :-( I know that the full boot is not possible, due to lack of initrd, but I would have try this just to see if the kernel can start. I have error about missing partition, I need to investigate this further: ... try to start ramfs ERROR: [rk_load_image_from_storage]: bootrk: failed to read ramdisk Unable to boot:ramfs ...
You need to supply an empty initrd. From scripts I have around:
./mkbootimg/mkbootimg --kernel linux/arch/arm64/boot/Image \ --ramdisk initrd.cpio.gz -o ramfs.img sudo ./utils/upgrade_tool di ramfs ramfs.img
initrd.cpio.gz is a gzip'ed empty cpio archive.
Thanks, I've tested this and it's better. Now I can see "Starting kernel ..." message but nothing else :-( I have put console=ttyS2 for the serial console but I need to check if the serial console is on uart2 or uart4. I know that the serial console is shared with sdcard port and, if I remember, is by default uart4.
I will try to test with console=ttyS4 tomorrow.
The serial console is on ttyS0, so the kernel 4.7 from Tumbleweed doesn't boot. I'm able to boot the 3.10 standard kernel (of course!), so I will try to boot on the openSUSE JeOS. I've untar the JeOS image on a ext4 emmc partition and I will try to boot it with the 3.10 kernel. If it's possible, I can then try to compile natively a 4.7 on my box (who said it will take a lot of time :-p). Maybe I'm dreaming but it could be possible :-) Loic
Hi, So I have tested to boot with the "standard" 3.10 kernel and Tumbleweed JeOS and it works! ... ailed to find part:backup 'backup' does not seem to be a partition nor an address Unable to boot:backup try to start ramfs load fdt from resouce. Secure Boot state: 0 kernel @ 0x00280000 (0x00d94c80) ramdisk @ 0x05bf0000 (0x00000038) bootrk: do_bootm_linux... Loading Device Tree to 0000000005600000, end 000000000563b3db ... OK Add bank:0000000000200000, 000000007fe00000 Starting kernel ... [ 0.000000] [0: swapper: 0] Initializing cgroup subsys cpu [ 0.000000] [0: swapper: 0] Initializing cgroup subsys cpuacct [ 0.000000] [0: swapper: 0] Linux version 3.10.0 (yanghui_test@lushen) (gcc version 4.9 20140514 (prerelease) (GCC) ) #26 SMP PREEMPT Sat Feb 27 10:35:14 CST 2016 [ 0.000000] [0: swapper: 0] CPU: AArch64 Processor [410fd033] revision 3 [ 0.000000] [0: swapper: 0] Machine: rockchip,rk3368 [ 0.000000] [0: swapper: 0] rockchip_uboot_logo_setup: mem: 0x0000000002000000@0x000000007dc00000, offset:0x0000000001000000 [ 0.000000] [0: swapper: 0] hdmi init vic is 65536 [ 0.000000] [0: swapper: 0] cvbs init tve.format is 1 [ 0.000000] [0: swapper: 0] cvbs init tve.format is 1 [ 0.000000] [0: swapper: 0] rockchip_uboot_mem_reserve: reserve 0x0000000002000000@0x000000007dc00000 for uboot logo [ 0.000000] [0: swapper: 0] rockchip_ion_reserve [ 0.000000] [0: swapper: 0] ion heap(cma): base(0) size(0) align(0) [ 0.000000] [0: swapper: 0] ion heap(vmalloc): base(0) size(0) align(0) [ 0.000000] [0: swapper: 0] cma: CMA: reserved 16 MiB at 7cc00000 [ 0.000000] [0: swapper: 0] psci: probing for conduit method from DT. [ 0.000000] [0: swapper: 0] psci: PSCIv1.0 detected in firmware. [ 0.000000] [0: swapper: 0] psci: Using standard PSCI v0.2 function IDs [ 0.000000] [0: swapper: 0] PERCPU: Embedded 11 pages/cpu @ffffffc07fd11000 s13440 r8192 d23424 u45056 [ 0.000000] [0: swapper: 0] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 516615 [ 0.000000] [0: swapper: 0] Kernel command line: earlyprintk=uart8250-32bit,0xff690000 console=ttyS2 root=/dev/mmcblk0p5 rw rootfstype=ext4 rootwait init=/sbin/init mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00008000@0x00006000(resource),0x00010000@0x0000E000(ramfs),-@0x0001E000(linuxroot) storagemedia=emmc uboot_logo=0x02000000@0x7dc00000:0x01000000 loader.timestamp=2016-10-03_21:53:38 hdmi.vic=65536 tve.format=1 [ 0.000000] [0: swapper: 0] PID hash table entries: 4096 (order: 3, 32768 bytes) [ 0.000000] [0: swapper: 0] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) ... [ 16.506166] [0: swapper/0: 1] [WLAN_RFKILL]: Exit rfkilL Welcome to openSUSE Tumbleweed! [ 16.506785] [0: swapper/0: 1] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: uart_rts_gpios = 91. ... [ OK ] Started Daily rotation of log files. [ OK ] Started Discard unused blocks once a week. [ OK ] Reached target Timers. [ TIME ] Timed out waiting for device dev-ttyS2.device. [DEPEND] Dependency failed for Serial Getty on ttyS2. [ OK ] Reached target Login Prompts. [ OK ] Started /etc/init.d/after.local Compatibility. [ OK ] Reached target Multi-User System. Starting Update UTMP about System Runlevel Changes... [ OK ] Started Update UTMP about System Runlevel Changes. SSH access is working too: nohostname:~ # id uid=0(root) gid=0(root) groups=0(root) nohostname:~ # uname -a Linux nohostname 3.10.0 #26 SMP PREEMPT Sat Feb 27 10:35:14 CST 2016 aarch64 aarch64 aarch64 GNU/Linux nohostname:~ # cat /etc/os-release NAME="openSUSE Tumbleweed" # VERSION="20160927" ID=opensuse ID_LIKE="suse" VERSION_ID="20160927" PRETTY_NAME="openSUSE Tumbleweed" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:opensuse:tumbleweed:20160927" BUG_REPORT_URL="https://bugs.opensuse.org" HOME_URL="https://www.opensuse.org/" Login is missing on the serial console, I think I need to configure it correctly. Now I will try to compile a new kernel/make a DTS for the board if necessary (very close to Geekbox). Regards, Loic -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
participants (3)
-
Andreas Färber
-
LOIC DEVULDER
-
Michal Suchanek