hexdump0815 / imagebuilder

velvet os - simple script framework to build ubuntu 22.04 lts jammy (in older versions also 20.04 lts focal) and debian 12 bookworm (in older versions also 11 bullseye) bootable usb / sd card images for some arm and intel devices - lots of prebuilt images as well
GNU General Public License v3.0
301 stars 44 forks source link

misc: report a not properly booting image #130

Open hexdump0815 opened 1 year ago

hexdump0815 commented 1 year ago

in case an image does not properly boot on your device, please add a comment here. beforehand plase make sure you read the readme.md for that system - some images need extra customization for one of the supported devices by the image in order to boot properly.

RagnarLodbrok79 commented 1 year ago

I can't make this boot on the chromebook minnie, i't only beeps (another bootable usb works). I made a a bootable USB with dd on linux. I read the specific instructions and I should copy u-boot from partition 3 to partition 1? From gparted i have 4 partitions on the USB-drive. I can find a U-boot on /dev/sdb3, should I put that on /dev/sdb1 ? I can't mount sdb1, how to put it there? Screenshot from 2023-03-02 10-56-38

unixabg commented 1 year ago

Greetings, the extra uboot options are on partition 3 in a folder called extra. In my case I used something like the below to copy the uboot that worked for my to the partition 1 of my sdcard:

mkdir /tmp/p3 mount /dev/mmcblk1p3 /tmp/p3

Now copy the image you want to try to the partition 1

dd if=/tmp/p3/extra/uboot.kpart.cbr-minnie of=/dev/mmcblk1p1

I have veyron_mighty chromebooks but I used the minnie uboot to make mine boot. And I could only get sdcard to work on my chromebooks, not usb sticks. Hope this helps.

RagnarLodbrok79 commented 1 year ago

It worked! Thanks alot! Boots from usb stick as well!

hexdump0815 commented 1 year ago

@RagnarLodbrok79 - i'm happy to hear that it works in the end for you now - thanks to @unixabg for the quick help.

mattschwantes commented 1 year ago

Thank you for this project!

I do have a boot issue on Asus Chromebit RK3288 (i.e. veyron-mickey) using the Debian release from 220820-01.

After dd'ing uboot.kpart.cbr-mickey from /boot/extra to /dev/sdc1 and adjusting extlinux.conf, there is console output on the attached display, but it seems to be unable to read extlinux.conf

I mentioned SDC above as I'm using a USB stick because the chromebit has no SD card slot (perhaps only SD is configured for mickey).

I tried using kpart from the other devices including speedy, minnie, and jerry, but none of those produced video output (perhaps they expected a built-in display which chromebit doesn't have)

I'll add another post with the console output:

mattschwantes commented 1 year ago

... Model: Google Mickey Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 Switch to partitions #0, OK mmc0(part 0) is current device MMC Device 1 not found No mmc device at slot 1 Starting USB... Bus usb@ff580000: USB DWC2 Scanning bus usb@ff580000 for devices... 1 USB device(s) found Scanning usb for storage devices...0 storage device(s) found

Device (0): unknown device No ethernet found. ...

mattschwantes commented 1 year ago

The chromebit usb2.0 port currently has an unpowered hub attached. That hub has one USB flash drive, one USB ethernet dongle, and a single USB keyboard-mouse combo dongle attached.

I tried using different USB drives and different USB ethernet dongles, but the result was unchanged.

I have this successfully booting arch linux arm. To do that though, it was necessary to use an older image from 2017. The more recent kernels would not boot successfully (I noticed you built an older 2017 version of u-boot for speedy. Perhaps a 2017 mickey kpart would fix this).

unixabg commented 1 year ago

Greetings, @mattschwantes - I have veyron_mighty chromebooks and I had to use the extra/uboot.kpart.cbr-minnie to get them to boot. You might try that or the others in the extra folder. I did still use the mighty dtb and I could not get mine to boot from usb, only sdcard for some reason.

hexdump0815 commented 1 year ago

@mattschwantes - thanks for the positive feedback ... it could be that usb support is broken in some of the u-boot binaries (i had to compile different older versions as later ones were broken for some devices) ... maybe the postmarketos guys have fixed this (they fixed some u-boot issues for veyron) - i'll have to try to build a u-boot from their tree and see if it helps ... i think i even have a mickey around somewhere, but it might take some time util i get to it ... you could maybe try to dd the vmlinux.kpart (instead of the u-boot.kpart) from the boot partition (3rd) to the first partition to boot the kernel directly - maybe this works in the meantime as it works without u-boot inbetween

mattschwantes commented 1 year ago

Thanks for your suggestion @unixabg. I tried the files for other veyron devices from the extra folder, but unfortunately those others didn't have video output.

Thank you @hexdump0815 for your suggestion! I used dd if=vmlinux.kpart-5.19.1-stb-cbr+ of=/dev/sdc1 this time and the Chromebit booted directly to XFCE with no errors. It seems to run well on veyron-mickey, other than the non-functional graphics acceleration. Please let me know if you want to test anything in particular on mickey.

hexdump0815 commented 1 year ago

@mattschwantes - thanks for testing, i have added a note to the veyron readme: https://github.com/hexdump0815/imagebuilder/commit/e29da873e4bca9b1791d31ac89ed215d7de8c3b9 ... this should be useable with the only limitation that initrd loading is not possible this way ... long term we should have a look at u-boot and in case there is no way to get this working then the pmos guys have hacked some kind of initrd support to the regular boot sequence

gpu accel is disabled by default as it is not 100% stable in all scenarios - should be easy to test by commenting out the lines in https://github.com/hexdump0815/imagebuilder/blob/main/systems/chromebook_veyron/extra-files/etc/modprobe.d/blacklist-panfrost.conf i.e. in /etc/modprobe.d/blacklist-panfrost.conf

good luck and best wishes - hexdump

starfoxdot64 commented 1 year ago

I'm working with veyron-jerry at the moment, looks like it's hanging - I've also seen this problem with Arch Linux ARM, but it managed to initialize the screen and show a console during boot.

I guess this is confirmation that the CTL Chromebook J4 doesn't work? I've given it a couple tries, checked my configs, and I'm not seeing a change (even over HDMI). Just in case I'm missing something, I'm including pictures of my partition layout, and my extlinux.conf.

image image

unixabg commented 1 year ago

@starfoxdot64 - it looks like you are trying to get usb to boot and not sdcard. If you might read https://github.com/hexdump0815/imagebuilder/issues/130#issuecomment-1454021880 and in the next entry @mattschwantes confirms that it works. I can also confirm that that suggestion works on booting from usb on left side of eduGear M4 chromebook veyron_mighty.

starfoxdot64 commented 1 year ago

@starfoxdot64 - it looks like you are trying to get usb to boot and not sdcard. If you might read https://github.com/hexdump0815/imagebuilder/issues/130#issuecomment-1454021880 and in the next entry @mattschwantes confirms that it works. I can also confirm that that suggestion works on booting from usb on left side of eduGear M4 chromebook veyron_mighty.

Alright, I'll have to give that a shot later. I'll admit, I didn't look over the comments in this issue thread since it's not specific to Veyron boards, but that's definitely a good pointer for testing.

I can't say i'm the most optimistic though, since the CTL Chromebook J4+ is in the untested portion of veyron-jerry models.

xAbdaziz commented 1 year ago

Hello, I have X96Q2 TV box (H313 SoC) I tried to flash last feb build, and it's just stuck on red led, after connecting UART this shows in console: U-Boot SPL 2021.04-18166-g647b392bf2-dirty (Jan 27 2023 - 08:09:08 +0100) DRAM:This DRAM setup is currently not supported.

Here is my stock UART console log in case it's useful: https://pastebin.com/9w0EiapP

hexdump0815 commented 1 year ago

@starfoxdot64 - i think the chances should be good to get jerry working, maybe try the different u-boot options (even the non jerry ones) until you get the u-boot menu and if you are there try all options given there ...

hexdump0815 commented 1 year ago

@xAbdaziz - maybe your box is one of the newer ones with lpddr3 (h313 is just a low quality h616)? - the only way then is to build your own u-boot based on https://oftc.irclog.whitequark.org/linux-sunxi/2023-02-27#31929559 (if that even works at all) ... for that please keep in mind that gcc should not be 11 or 12 - see: https://oftc.irclog.whitequark.org/linux-sunxi/2023-03-02#31938041 ... otherwise using the images on tv boxes is "if it works it works - otherwise its bad luck" - too little consistency across devices to put too much effort into them

good luck and best wishes - hexdump

ps: there is also some lpddr4 code which might be worth a try: https://github.com/iuncuim/u-boot/commit/2a59bd30a82396f78279a972e79a9b04b56af2c7 via: https://oftc.irclog.whitequark.org/linux-sunxi/2022-12-09#31699422

xAbdaziz commented 1 year ago

@xAbdaziz - maybe your box is one of the newer ones with lpddr3 (h313 is just a low quality h616)? - the only way then is to build your own u-boot based on https://oftc.irclog.whitequark.org/linux-sunxi/2023-02-27#31929559 (if that even works at all) ... for that please keep in mind that gcc should not be 11 or 12 - see: https://oftc.irclog.whitequark.org/linux-sunxi/2023-03-02#31938041 ... otherwise using the images on tv boxes is "if it works it works - otherwise its bad luck" - too little consistency across devices to put too much effort into them

good luck and best wishes - hexdump

ps: there is also some lpddr4 code which might be worth a try: iuncuim/u-boot@2a59bd3 via: https://oftc.irclog.whitequark.org/linux-sunxi/2022-12-09#31699422

Thanks, yes it seems that i have LPDDR3 RAM I will try compiling U-Boot from that repo and report back 👍🏻

xAbdaziz commented 1 year ago

@xAbdaziz - maybe your box is one of the newer ones with lpddr3 (h313 is just a low quality h616)? - the only way then is to build your own u-boot based on https://oftc.irclog.whitequark.org/linux-sunxi/2023-02-27#31929559 (if that even works at all) ... for that please keep in mind that gcc should not be 11 or 12 - see: https://oftc.irclog.whitequark.org/linux-sunxi/2023-03-02#31938041 ... otherwise using the images on tv boxes is "if it works it works - otherwise its bad luck" - too little consistency across devices to put too much effort into them

good luck and best wishes - hexdump

ps: there is also some lpddr4 code which might be worth a try: iuncuim/u-boot@2a59bd3 via: https://oftc.irclog.whitequark.org/linux-sunxi/2022-12-09#31699422

Looks like warpme already tried that repo and it didn't work for him :(

hexdump0815 commented 1 year ago

@xAbdaziz - as you do not seem to fear to compile your own u-boot etc., maybe just ask at the #linux--sunxi irc channel - people there are usually quite helpful and might help to debug it together if someone is willing to do the compiling and testing ...

starfoxdot64 commented 1 year ago

@starfoxdot64 - i think the chances should be good to get jerry working, maybe try the different u-boot options (even the non jerry ones) until you get the u-boot menu and if you are there try all options given there ...

@hexdump0815 I got it working with the veyron-speedy uboot build, but it's not booting the bookworm image. I have uboot's shell now though, which is progress. ^^

hexdump0815 commented 1 year ago

@starfoxdot64 - do you get any error messages when it tries to boot? you boot from sd-card right?

starfoxdot64 commented 1 year ago

@starfoxdot64 - do you get any error messages when it tries to boot? you boot from sd-card right?

I found that it just wasn't detecting my USB on the right port. It works on the left, but Debian doesn't boot when using Jerry or Speedy's kernel. Mighty works though - I'm still figuring this out, but so far the J4+ isn't responding well to the Jerry presets/kernel.

hexdump0815 commented 1 year ago

@starfoxdot64 - nice to see the progress ... maybe it is not really a jerry in the mainline code? also the mighty of @unixabg in https://github.com/hexdump0815/imagebuilder/issues/110 seems to be some mix of minnie and mighty on the mainline side at the end :)

lets maybe move any further discussion over to https://github.com/hexdump0815/imagebuilder/issues/81 where it fits a bit better now

gociii commented 1 year ago

is this expected to work on odroid-c1? ( as it uses the same SoC ) It doesn't boot.

Tried release 210808-04 bullseye on odroid-c1 and doesn't boot either.

hexdump0815 commented 1 year ago

@gociii - it might be worth a try, but one thing missing for sure is some boot block - you may try to steal one from some other image (via dd: reading: dd if=/dev/otherimagedevice of=boot.dd bs=512 count=32768 status=progress - writing to your written image: dd if=boot.dd of=/dev/yourwrittenimagedevice bs=512 seek=1 skip=1 count=32767) and depending on how the boot block works some adjustments of the boot scripts in /boot are most probably required as well - a dtb file for the c1 should be included i think. and there is no hdmi support.

best wishes and good luck - hexdump

danboid commented 1 year ago

Hi @hexdump0815

Is it possible to boot your debian sid image directly from NVMe on the VF2? I have updated my VF2 to the latest u-boot and firmware which supposedly allows this. If so, could you please provide instructions.

I have tried without any success to get the official StarFive Debian '69' image to boot off NVMe, I get a kernel panic when I try to boot it from NVMe:

https://forum.rvspace.org/t/nvme-boot-using-visionfive2-software-v2-11-5/2464/17

It seems you've applied a few patches to your kernel so hopefully it can boot from NVMe OK?

There is also a port of Arch to the VF2 which runs great off SD card but I've not been able to get that to boot from NVMe because I was unable to mount its BTRFS partition to adjust the fstab so please explain how to correctly mount your images BTRFS partition if I need to edit fstab.

Thanks

hexdump0815 commented 1 year ago

sorry for the deleyed response, i'm mostly offline right now - i did not add or test direct nvme boot you, but looks like you got it somehow working: http://forum.rvspace.org/t/nvme-boot-using-visionfive2-software-v2-11-5/2464/20

danboid commented 1 year ago

@hexdump0815 Kind of, but only by manually entering a few u-boot commands. This proves to me that is not a problem with your kernel, its me that doesn't know how to use u-boot properly.

isaygo commented 1 year ago

is it possible to write it to internal ssd?

hexdump0815 commented 1 year ago

@isaygo - on which system?

isaygo commented 1 year ago

@isaygo - on which system?

cb5-311 2GB And i've also cant boot all images not 6.** kernel from your list

hexdump0815 commented 1 year ago

did you write the correct u-boot kpart image for the 2gb model as mentioned in the readme at https://github.com/hexdump0815/imagebuilder/tree/main/systems/chromebook_nyan ? ... a cb5-311 2g is the system i'm usually test boot the nyan images with :)

isaygo commented 1 year ago

did you write the correct u-boot kpart image for the 2gb model as mentioned in the readme at https://github.com/hexdump0815/imagebuilder/tree/main/systems/chromebook_nyan ? ... a cb5-311 2g is the system i'm usually test boot the nyan images with :)

like with latest image i've do

mkdir /tmp/u-boot mount /dev/sda /tmp/u-boot dd if=/tmp/u-boot/extra/2g-noflicker of=/dev/sda1

hexdump0815 commented 1 year ago

strange - that should work - maybe try the other u-boot options as well and please keep in mind the screen stays black for a while until something appears on it (kind of 30-60 seconds i think)

isaygo commented 1 year ago

strange - that should work - maybe try the other u-boot options as well and please keep in mind the screen stays black for a while until something appears on it (kind of 30-60 seconds i think)

so, my step by step:

  1. download https://github.com/hexdump0815/imagebuilder/releases/tag/220611-01
  2. unzip
  3. win32diskimager 4/ mkdir /tmp/u-boot mount /dev/sda /tmp/u-boot dd if=/tmp/u-boot/extra/(tab)-2g of=/dev/sda1

for debian and ubuntu - the same, fliking and then - black screen

ive 2Gb model cb5-311 -t7NN
Only 6.x.x kernel image works fine

hexdump0815 commented 1 year ago

@isaygo - maybe the hardware differes then, so that u-boot is not able to handle it properly - mine is cb5-311-t0b2 ... can you maybe connect some usb ethernet and see if it is maybe still alive over network and just the screen missing? this would make debugging this much easier.

isaygo commented 1 year ago

@isaygo - maybe the hardware differes then, so that u-boot is not able to handle it properly - mine is cb5-311-t0b2 ... can you maybe connect some usb ethernet and see if it is maybe still alive over network and just the screen missing? this would make debugging this much easier.

Ive such idea, but no usb adapter ( seeing the led of usb flash i think its alive, but no screen

hexdump0815 commented 1 year ago

@isaygo - what you may try is to try first the u-boot you have installed with setting a different default in extlinux/extlinux.conf in the third partition (https://github.com/hexdump0815/imagebuilder/blob/main/systems/chromebook_nyan/extra-files/boot/extlinux/extlinux.conf#L3-L5) and if that does not bring any change, you may combine this with experimenting with the different u-boot versions in the extra folder of the third partition instead of the 2g noflicker version you used so far.

isaygo commented 1 year ago

@isaygo - what you may try is to try first the u-boot you have installed with setting a different default in extlinux/extlinux.conf in the third partition (https://github.com/hexdump0815/imagebuilder/blob/main/systems/chromebook_nyan/extra-files/boot/extlinux/extlinux.conf#L3-L5) and if that does not bring any change, you may combine this with experimenting with the different u-boot versions in the extra folder of the third partition instead of the 2g noflicker version you used so far.

Thanks a lot, and sorry for my stupidity, just remove "-fhd" Works better, yet consumes less memory. It's a pity there is no hardware support for video. I will now figure out how to transfer to eMMC. Thank you for your work

hexdump0815 commented 1 year ago

@isaygo - i'm happy to hear that you got some steps forward - for installing to emmc maybe this helps: https://github.com/hexdump0815/imagebuilder/blob/main/doc/install-to-emmc-on-arm-chromebooks.md

isaygo commented 1 year ago

@isaygo - i'm happy to hear that you got some steps forward - for installing to emmc maybe this helps: https://github.com/hexdump0815/imagebuilder/blob/main/doc/install-to-emmc-on-arm-chromebooks.md

I think about dd. it is safe? I just can't find where the bootloader is, on emmc? Can I return the chrome os if I want?

hexdump0815 commented 1 year ago

@isaygo - yes dd is safe as described in the readme (i.e. using different image versions to boot and to be written to emmc - otherwise the btrfs might get confused about two devices with the same btrfs fs uuid)

there is no need to worry about the bootloader on chromebooks as that is located in some separate spi flash, so one can erase the emmc without any risc and chrmoeos can also always be restored via recovery image as long as the original bootloader remains in the spi flash ... this is what makes chromebooks so nicely and rather risk-free useable ... maybe aside from the fact that one needs to get a bit used to the bootloader and partitioning :)

vfonov commented 11 months ago

Was able to boot https://github.com/hexdump0815/imagebuilder/releases/tag/230218-05 on ASUS C100P after some tinkering, see https://github.com/hexdump0815/imagebuilder/issues/16#issuecomment-1725478127

TheNathan0 commented 11 months ago

@vfonov, you may want to unblacklist Panfrost GPU driver and enable desktop composting for much better performance. HexDump originally blacklisted it back when Panfrost was unstable but from my testing and experience Panfrost has become a solid and stable GPU driver. It's also pretty speedy.

jmsvigno commented 11 months ago

@hexdump0815 i used the last image and says: U-Boot SPL 2021.04-18166-g647b392bf2-dirty (Jan 27 2023 - 08:09:08 +0100) DRAM:This DRAM setup is currently not supported. my tvbox uses ik316/h313 axp is 305 and the hardware is EMCP 1gb of ram and 8 below are the dts files and images that extract from the tvbox front1ik316 ik313.dts.txt ik3131.dts.txt

vfonov commented 11 months ago

@vfonov, you may want to unblacklist Panfrost GPU driver and enable desktop composting for much better performance. So, I did that, but didn't notice big improvement. Maybe there is something else that needs to be enabled?

hexdump0815 commented 11 months ago

@jmsvigno - it is written in the allwinner_h616 readme that some newer h313/h616 boxes will not work, besides that there is no support for tv boxes: either they work or they don't - sorry

jmsvigno commented 11 months ago

ok, but how could I recompile the legacy version, trying to set the u-boot parameters, I saw that it uses the linux kernel 4.9.170.com Android 10

Em seg., 25 de set. de 2023 17:46, hexdump0815 @.***> escreveu:

@jmsvigno https://github.com/jmsvigno - it is written in the allwinner_h616 readme that some newer h313/h616 boxes will not work, besides that there is no support for tv boxes: either they work or they don't - sorry

— Reply to this email directly, view it on GitHub https://github.com/hexdump0815/imagebuilder/issues/130#issuecomment-1734438051, or unsubscribe https://github.com/notifications/unsubscribe-auth/BCDII7GIRGCUR4URPE5VBB3X4HUOZANCNFSM6AAAAAAVAPZXC4 . You are receiving this because you were mentioned.Message ID: @.***>

andre2b commented 11 months ago

Hello. I read in the readme file that newer LPDDR3 TV boxes are not supported. I have one of those. I've tried to boot from numerous Allwinner images without sucess, the only image that boots on my device is a Mini Arch image ( MiniArch-20230212-6.3.5-board-h313.x96_q_lpddr3-SD-Image.img.xz from [https://github.com/warpme/miniarch/releases]) but it gives me only a command line without network.

My question is, would it be possible to extract the U-boot or device tree (I don't know the reason why all the images won't boot :( from that image that boots and "transport" it to one of hexdump0815's images to make it boot?

Sorry for the noob question, but I would really like to try a Linux desktop one my TV Box.

PS: Congratulations for the awesome work.