You are not logged in.
I understand it can take long time to compile , but in general if it gives a better result we can try to compile it on the odroid itself, just might need some help with the steps
![]()
Lum
The steps don't change its the same as above
you just don't need a crosscompiler , you would use a native one..
so were you have ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-, delete this from the commands
Regards,
tux
Hello Illegalum,wfk,
I created 3 instalable packages with a '4.14.165' kernel from hardkernel repo..
to install it you can follow bellow intructions,
It would be nice to know if it boots, and if ethernet is working correctly,
The idea is creating a image for hc1, with zram as swap using lz4 algo on it
but we need first a stable kernel..
in the share folder bellow is also a 'log' file, with the compilation log process..
if this works nicelly, I will tune the kernel for big.LITTLE on hc1 cpu
Hello Illegalum,
thanks,I took a loot at boot.ini, and adapted it for a mainline kernel 5.5.7, and to Odroid hc1 dtb.
I created a share with the kernel and the boot.ini new files..
This share here, contains the deb packages to try a mainline kernel, and also the new boot.ini file..Backup first your boot.ini file:
cp boot.ini boot.ini.backupThen copy to the sdcard, the contents of the shared folder:
linux-headers-5.5.7_5.5.7-1_armhf.deb,
linux-image-5.5.7_5.5.7-1_armhf.deb,
linux-libc-dev_5.5.7-1_armhf.debCopy also 'boot.ini.new' to /boot,
then boot the board, install the new kernel:
dpkg -i *.deb
change 'boot.ini.new' to 'boot.ini':
mv /boot/boot.ini.new /boot/boot.inithen restart and check if that kernel, works well in your board, if it doesn't:
dpkg -l |grep -E "linux-.*(image|headers|libc-dev)"See the 5.5.7 installed packages and remove them:
apt-get remove --purge linux-headers-5.5.7 linux-image-5.5.7 linux-libc-dev
get back your 'boot.ini' file:
mv /boot/boot.ini.backup /boot/boot.iniAnd restart..
It would be nice to get some feedback from you, since you own one of this boards
Best Regards,
thanks Illegalum,wfk,
At beguining I tought it would be nice to go with mainline, but there are problems with it..
I will create a image with 4.4.165 from hardkernel, with Illegalum, defconfig above, and devuan userspace
EDIT: In fact hardkernel does have a 'odroid-5.4.y' branch, but I don't know how good it is..
Hi Illegalum,
Ok, no problem, no rush
Hi wfk,
For the work Illegalum have done, he experienced problems with the network card, I believe?!( using the devuan image for xu4.. )
I found there are indeed a dts in mainline for hc1..
I compiled 5.5.7 kernel, and I were checking it with Illegalum..
My Kernel gave a kernel panic( I also saw a compiler warning about a pointer not been initialized first.. in compilation process)..
But it could also be that my toolchain is the one to blame..
I am with Linaro 7.5 unfortunately, since ARM only provides amd64 cross toolchains...
So I am locked on 7.5 cross toolchains..
What kernel are you using?
Best Regards,
tux
we've got ourselfs a kernel panic ...
![]()
Lum
Indeed,
When I compiled that kernel I received a warning about a possibility of a pointer not been initialized, maybe its related to that..
I compiled it using the linaro crosscompiling toolchains 7.5, since the ARM ones only have as host amd64(I am on devuan i386..).
at same time it could also be something uboot config related( addresses or else.. )..
I created a basic 'boot.scr' file , its in the share, if you want to try a last time..
You only need to copy it to /boot,
rename '/boot/boot.ini' to something like '/boot/boot.ini.backup',
and restart..
ofcourse this with the new kernel.. if you get again a kernel panic, get previous( original situation.. )..
In that case,
maybe the uboot version you have doesn't support yet the Odroid HC1.. for the few things I read about that board, still there are diferences between them, that's why you can boot XU4 and not HC1 with devuan image..
Hello Illegalum,
thanks,
I took a loot at boot.ini, and adapted it for a mainline kernel 5.5.7, and to Odroid hc1 dtb.
I created a share with the kernel and the boot.ini new files..
This share here, contains the deb packages to try a mainline kernel, and also the new boot.ini file..
Backup first your boot.ini file:
cp boot.ini boot.ini.backup
Then copy to the sdcard, the contents of the shared folder:
linux-headers-5.5.7_5.5.7-1_armhf.deb,
linux-image-5.5.7_5.5.7-1_armhf.deb,
linux-libc-dev_5.5.7-1_armhf.deb
Copy also 'boot.ini.new' to /boot,
then boot the board, install the new kernel:
dpkg -i *.deb
change 'boot.ini.new' to 'boot.ini':
mv /boot/boot.ini.new /boot/boot.ini
then restart and check if that kernel, works well in your board, if it doesn't:
dpkg -l |grep -E "linux-.*(image|headers|libc-dev)"
See the 5.5.7 installed packages and remove them:
apt-get remove --purge linux-headers-5.5.7 linux-image-5.5.7 linux-libc-dev
get back your 'boot.ini' file:
mv /boot/boot.ini.backup /boot/boot.ini
And restart..
It would be nice to get some feedback from you, since you own one of this boards
Best Regards,
Hello Illegalum,
Seems that '/boot/boot.ini' is were uboot is configured..
I don't know its contents, it sould be were dtb/kernel files are loaded..
hello, yes it was nice
Can you do this as root ?
find /boot -type f -exec ls -l {} \;
to see how boot loader is configured
I already compiled a kernel
regards,
tux
Hi , Thank you for your great reply
Lots of info, currently only running a pair of odroid HC1 on linux so guess I will have to try and compile on there.
in general the Hc1 is a striped version of the XU4 , the HC2 is an HC1 on a 3.5 inch bay for a 3.5 inch disk so I don't know if it shows different when loading the kernel
tuxd3v wrote:For hc2, I don't find it
think it will just load as an HC1
I'm now running a devuan version that I converted from a debian emmbeded image Debian-Stretch-1.0~RC2-20180403-XU3-XU4.img.xz
(...)
so how could I inject this kernel in the devuan xu4 image ?and how it is easiest to share the config.gz and dmesg ?
jwheins
Hello,
In that version you are running of Devuan, that you adapted( from debian )...
1) A dmesg, is a command, you just need to type as root:
dmesg
2) To get the kernel config, you just need to type as root:
zcat /proc/config.gz
3) To get a cpuinformation
cat /proc/cpuinfo
This commands return a result a lot of information..
if you could post it here for each individually, it would be nice, or use a "paste" service like this
I assume that, in this image you have, you got network running right?
Anyway, to pass the deb packages or the new kernel,
You can just insert your sdcard in your computer, and copy the deb packages to it( if you don't have ethernet running or ssh on the device ).
Then insert the sdcard into the sbc board, and:
dpkg -i *.deb
Best Regards,
tux
but it would be nice if i can get some help on making the image work for odroid HC1 and HC2
You came to the right place
At least in kernel 5.5.6, exists a device tree source file for it
/arch/arm/boot/dts/exynos5422-odroidhc1.dts
you can build it if you want to
For hc2, I don't find it
Can you do a dmesg, in the system were everything works?
also a zcat /proc/config.gz ?
Thanks,
could be that I make a build for it, but not yet, some day..
To build it, you first need a crosscompiler if you are in another arch..:
you will need a 'arm-linux-gnueabihf' compiler..
if you are in amd64 arch..
apt-get install flex bison make libssl-dev bc quilt rsync fakeroot libncurses-dev
download the crosscompiler,
arm-linux-gnueabihf compiler,
Extract it to the correct place you want, then update your path:
export PATH=$PATH:$PWD/path_to_ToolChain/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin
then :
make -C kernel_path ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean
So now you have your kernel tree clean
So, for hc1...
You have a distro from devuan for Odroid xu4,
https://mirror.leaseweb.com/devuan/devu … xu4.img.xz
In the distro were it is working,
zcat /proc/config.gz
copy that file content to:
'your_kernel_path/.config',
you can also copy same file to:
'your_kernel_path/arch/arm/configs/exynos5422-odroidhc1_defconfig'
this will parse and generate your .config file..
make -C kernel_path ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- exynos5422-odroidhc1_defconfig
Create deb packages to install:
make -C kernel_path ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- deb-pkg -j$(nproc)
several deb packages will be created(deb packages have several things that need to be adjusted, but it will work I believe without that adjustments..)..
You just need to install them on the new system, and adapt names..
or
Generate several directories with Image,dtbs,modules:
make -C kernel_path ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- Image dtbs modules -j$(nproc)
pass everything to new system, update names, don't forget the content of 'boot.scr'.. or boot.cmd , and that's it
This brief explanation for the kernel..
try it, and check if you are able to boot...
Best Regards,
tux
Indeed uther,
The Future of SBCs is clearly opensource and the other vendors products are aspiring to get mainline kernel support..
Lets hope that official 5.7 Kernel will bring this pach's( more than 80 patch's.. ).
In Fact this should have happened already last year( don't know why RaspberryPi Foundation is taking so long.. or why is holding back.. ).
hi tuxd3v, therion. I hope, since therion23 joined, the work wil go much faster
![]()
I've found some time and done the following on stock Raspbian:
hi uther,
thanks, so they don't use zram as swap, on raspbian
they have a lot of modules that could be interesting to match with something similar in mainline
I am on freenode
some issues with my machine prevented me from 2 days, but I am recovering now
Right - that and the talk on freenode gave me a clear view of what you are trying to do
Normally i have three day weekends, and this one starts tomorrow afternoon European time, so as soon as i get the TTL adapter playing nice with macOS, i will test and we will talk again.
Will try to be on freenode when i am actually at the desk, ok? Easier that way.
Thanks therion23,
Ok when you can
Regards,
hello therion23,
The idea would be to have mainline kernel running on raspberryPI4..
Initial support landed recently, now in kernel 5.6 comes thermal driver,
I just saw the commits to mainline
create mode 100644 drivers/thermal/broadcom/bcm2711_thermal.c
delete mode 100644 drivers/thermal/cpu_cooling.c
create mode 100644 drivers/thermal/cpufreq_cooling.c
create mode 100644 drivers/thermal/cpuidle_cooling.c
create mode 100644 drivers/thermal/sun8i_thermal.c
yes, also thermal driver for Allwiner H6( but I have a patch for it, in the meantime, and its applied so, no hurry )
Long Story short,
we( me and uther ), have been trying to have a server Image for RPi4, with mainline support, and trying to avoid the blob madness with RaspberryPi firmware/kernel trees..
The Last image is in this NetWork Share:
The Image is 'devuan-ascii-rpi4-arm64-0.2-beta.img.xz'
'Kernel/headers/Libc-dev' deb packages for '5.5.0' is also in the share( in the event of Success, can be copied to sdcard and installed via 'dpkg -i' )..
'/etc/default/rng-tools'
Point automatically to '/dev/urandom'( just in case.. when we managed to boot it, we will see if a driver exists, we will change to it.. ), in the meantime..
HRNGDEVICE=/dev/urandom
'config.txt'
arm_64bit=1
kernel=bootloader.bin
total_mem=3072
'bootloader.bin':
Is the u-boot that then will load the 'vmlinuz'
'boot.cmd'
The same content as 'boot.scr', but is a text human readable file
'boot.scr'
Is the binary file uboot( 'bootloader.bin' ) will load with all the instructions to start the Linux Kernel for Raspberry Pi4( now..if it just worked would be nice )
'vmlinuz'
Is the Linux Kernel... the name contains a 'z'( vmlinuz ), but the Image is not compressed, so its a 'vmlinux' binary file ( in ARM64 is impossible to boot compressed Kernels, at least for now.. ).
So even tough the name suggests compression its a uncompressed kernel..
-------------------------------------------
The Idea..
config.txt -> bootloader.bin->uboot.scr->vmlinuz init=/sbin/init
The problem,
I don't have a RPi4,
Uther have been doing all the testing( which I am also grateful to him, for helping out on this ).
We tried to reach more colleagues( to increase the probability of Success ), but some say they cannot download the Image, other doesn't stepped in..
For what it seems the Image doesn't boot, it stops in the Rainbow( initially when hdmi is connected to monitor )..
It his needed further testing, getting the Serial uart console data to see what is happening..
Or even changing something, that we were unable to figure out..
If you, can help us out, it would be very nice
We know that the boot process in RPi4 changed, and maybe we are stuck there
hello uther,
when you don't have sdcard inserted it indeed complains about 'arasan-emmc0'..
but I built the driver for it in the last beta..
What is strange to me is that it indeed starts 'start4cd.elf', which is a cut down version of start4.elf..
Which means memory for GPU is low..
On previous rpi's it would work, running the bootloader and it then loading vmlinuz..
By some reason is here doesn't work..
try to encrise 'gpu_mem' in config.txt to 64.
gpu_mem=64
And see if something goes different..
I am still actively trying to find a way to boot it with mainline kernel..
That's correct. Do you want kernel=vmlinuz boot dump also?
thanks,
yeah it would be nice to know why it is breaking..
tuxd3v wrote:In the devuan image you still don't pass the rainbow, right?
Yes.
humm,
The idea of a mainline kernel would be very nice, but it seems we need something more..
And if you change in 'config.txt'
kernel parameter to:
kernel=vmlinuz
You still get stuck at the rainbow?
Thanks in Advance for your help on this
Updated last post with devuan image boot. Check it out.
thanks,
It seems the same for both images,
I believe that is the bootloader part only..
I am compiling a kernel with 'arasan mmc' driver..
In the devuan image you still don't pass the rainbow, right?
The cables are fine, I've triple-check them.
But I think, I've found the answer:
https://raspberrypi.stackexchange.com/q … e-of-no-os
https://www.raspberrypi.org/documentati … _config.mdIt looks that BOOT_UART=1 needs to be set in EEPROM config.
EDIT:
And we have partial success!
Raspbian boot process. I've included poweroff at the end.
Nice Job!!
The first link you showed it prints a emmc controller, arasan-emmc0,
I don't know If I included this driver, in Kernel Image..
I will check, and if its not there I will update image!
In the mean time , can you please test image 'devuan-ascii-rpi4-arm64-0.2-beta.img.xz' ?
tuxd3v, I could use some help with the debugger.
I bought USB-TTL USB-STC-ISP, exactly this one: https://www.instructables.com/id/Usb-to … L-adapter/
I've connected it to RPi according to pin layout:
GND-GND
TxD-RxD
RxD-TxDsudo dmesg | grep tty gives:
[ 1209.718430] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 1221.092566] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 1468.621269] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 1594.576567] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 1715.481278] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 3050.089986] pl2303 ttyUSB0: error sending break = -19 [ 3050.090129] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 3098.506171] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 3255.185416] pl2303 ttyUSB0: error sending break = -19 [ 3255.185575] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 3257.841291] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 3268.828574] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 3270.869657] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 3387.865337] pl2303 ttyUSB0: error sending break = -19 [ 3387.865493] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 3389.352299] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 3487.065227] pl2303 ttyUSB0: pl2303_set_control_lines - failed: -19 [ 3487.065233] pl2303 ttyUSB0: error sending break = -19 [ 3487.065388] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 3590.681308] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 3772.265710] pl2303 ttyUSB0: pl2303_set_control_lines - failed: -19 [ 3772.265715] pl2303 ttyUSB0: error sending break = -19 [ 3772.265865] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 6065.041277] usb 1-2: pl2303 converter now attached to ttyUSB0 [ 6200.681839] pl2303 ttyUSB0: error sending break = -19 [ 6200.681993] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 [ 6202.233228] usb 1-2: pl2303 converter now attached to ttyUSB0
Also tried with minicom. Followed this setup guide: https://www.tincantools.com/minicom/
And theres no output either.
Humm,
maybe trying a modprobe pl2303 debug=1, but I don't know if that will wok anyway, maybe it needs kernel kconfig:
CONFIG_DYNAMIC_DEBUG=y
Sometimes not seeing information have nothing to do with the adapter, but with the bootloader..
I get that same behaviour, on OrangePi OnePlus, that is a pita for it to work..
sometimes 10 restarts are not enough for it, to start printing info to the serial..
Any one Interested in provide thoughts about this?
No problem downloading other distros, even DVD images, but just can't get passed 20~30MB from your storage site, even had another go just before writing this. So, I guess, that's it, I won't be able to help.
You should be doing something wrong, or having your bandwidth very restricted so that a timeout occur.. what can I say..
Hello uther,
Thanks a lot for the effort..
If you unplug and plug it again in your computer what is the 'dmesg' output( last information of it )?
try debugging the output of the boot process with the Raspbian image..to test it..
( If you succeed, then try with the new Image 'devuan-ascii-rpi4-arm64-0.2-beta.img.xz' )
And see if you get something..
Maybe the USB device is numbered differently.. I usually get on my device 'ttyUSB0'.
Edit: I forgot,
The RX of Converter is connected to the TX, of the Board
The TX of Converter is connected to the RX of the board
uther, thanks a lot for the detailed info..
A lot of progress was already made by you!
I will create a new Image with the Last 5.5 kernel, and with a smaller name on the kernel
A possibility could also be check if renaming the kernel to vmlinuz, or kernel.img works..
I will notice you about the new Image.
Thanks a lot!
EDIT:
Updated a new Image to the Share: 'devuan-ascii-rpi4-arm64-0.2-beta.img.xz'
The Image is already with a hand installed 'linux-image-5.5.0-2_arm64.deb'
'Kernel/headers/Libc-dev' deb packages for '5.5.0' is also in the share( in the event of Success, can be copied to sdcard and installed via 'dpkg -i' )..
'/etc/default/rng-tools'
Point automatically to '/dev/urandom'( just in case.. when we managed to boot it, we will see if a driver exists, we will change to it.. ), in the meantime..
HRNGDEVICE=/dev/urandom
'config.txt'
arm_64bit=1
kernel=bootloader.bin
total_mem=3072
'bootloader.bin':
Is the u-boot that then will load the 'vmlinuz'
'boot.cmd'
The same content as 'boot.scr', but is a text readable file
'boot.scr'
Is the binary file uboot will load with all the instructions to start the Linux Kernel for Raspberry Pi4( now..if it just worked would be nice )
'vmlinuz'
Is the Linux Kernel... the name contains a 'z'( vmlinuz ), but the Image is not compressed, so its a 'vmlinux' binary file ( in ARM64 is impossible to boot compressed Kernels, at least for now.. ).
So even tough the name suggests compression its a uncompressed kernel..
The Idea..
config.txt -> bootloader.bin->uboot.scr->vmlinux init=/sbin/init
In this process I don't really know, what happens with the 'start.elf'( till now they were loaded by the Graphics card, in charge of the boot-up process..don't know if that remains the same, or we will need the 'armstubs' compiled for 64 bits to run in the graphics card.. ).
One thing is for sure.. 'start.elf' binaries are 32 bits files..
I don't know if when we do arm_64bit=1 in 'config.txt', the 'start.elf' can be loaded has they are armhf( 32bits.. )..
So we have 2 possibilities at least,
The flashing leds informing a 'kernel.img' file is missing, or informing 'start.elf' cannot be loaded by the graphics.. and so neither the kernel will..