MitchRatquest / nanopi_neo_synth_buildroot

Tiny ~$15 synth
9 stars 0 forks source link

create mainline fails #1

Open ufechner7 opened 6 years ago

ufechner7 commented 6 years ago

I was running this script on Ubuntu 16.04 and get the following error: rm -f ld.pod /usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I. -I../bfd -I./../bfd -I./../include -O2 -I/home/ufechner/nanopi_neo_synth_buildroot/host/include -DENABLE_PLUGINS -DLOCALEDIR="\"/home/ufechner/nanopi_neo_synth_buildroot/host/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -DELF_LIST_OPTIONS=TRUE -DELF_SHLIB_LIST_OPTIONS=TRUE -DELF_PLT_UNWIND_LIST_OPTIONS=FALSE -O2 -I/home/ufechner/nanopi_neo_synth_buildroot/host/include -c earmelfb_linux_eabi.c /usr/bin/gcc -DHAVE_CONFIG_H -I. -I. -I. -I../bfd -I./../bfd -I./../include -O2 -I/home/ufechner/nanopi_neo_synth_buildroot/host/include -DENABLE_PLUGINS -DLOCALEDIR="\"/home/ufechner/nanopi_neo_synth_buildroot/host/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -DELF_LIST_OPTIONS=TRUE -DELF_SHLIB_LIST_OPTIONS=TRUE -DELF_PLT_UNWIND_LIST_OPTIONS=FALSE -O2 -I/home/ufechner/nanopi_neo_synth_buildroot/host/include -c earmelf_linux_eabi.c /bin/bash ./libtool --tag=CC --mode=link /usr/bin/gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -DELF_LIST_OPTIONS=TRUE -DELF_SHLIB_LIST_OPTIONS=TRUE -DELF_PLT_UNWIND_LIST_OPTIONS=FALSE -O2 -I/home/ufechner/nanopi_neo_synth_buildroot/host/include -static-libstdc++ -static-libgcc -L/home/ufechner/nanopi_neo_synth_buildroot/host/lib -Wl,-rpath,/home/ufechner/nanopi_neo_synth_buildroot/host/lib -o ld-new ldgram.o ldlex-wrapper.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o plugin.o ldbuildid.o earmelf_linux_eabi.o earmelfb_linux_eabi.o ../bfd/libbfd.la ../libiberty/libiberty.a -ldl -ldl libtool: link: /usr/bin/gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -DELF_LIST_OPTIONS=TRUE -DELF_SHLIB_LIST_OPTIONS=TRUE -DELF_PLT_UNWIND_LIST_OPTIONS=FALSE -O2 -I/home/ufechner/nanopi_neo_synth_buildroot/host/include -static-libstdc++ -static-libgcc -Wl,-rpath -Wl,/home/ufechner/nanopi_neo_synth_buildroot/host/lib -o ld-new ldgram.o ldlex-wrapper.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o plugin.o ldbuildid.o earmelf_linux_eabi.o earmelfb_linux_eabi.o -L/home/ufechner/nanopi_neo_synth_buildroot/host/lib ../bfd/.libs/libbfd.a -L/home/ufechner/nanopi_neo_synth_buildroot/build/host-binutils-2.27/zlib -lz ../libiberty/libiberty.a -ldl collect2: error: ld returned 1 exit status Makefile:1142: recipe for target 'ld-new' failed make[6]: *** [ld-new] Error 1 Makefile:1780: recipe for target 'all-recursive' failed make[5]: *** [all-recursive] Error 1 Makefile:1017: recipe for target 'all' failed make[4]: *** [all] Error 2 Makefile:7173: recipe for target 'all-ld' failed make[3]: *** [all-ld] Error 2 Makefile:850: recipe for target 'all' failed make[2]: *** [all] Error 2 package/pkg-generic.mk:234: recipe for target '/home/ufechner/nanopi_neo_synth_buildroot/build/host-binutils-2.27/.stamp_built' failed make[1]: *** [/home/ufechner/nanopi_neo_synth_buildroot/build/host-binutils-2.27/.stamp_built] Error 2 Makefile:16: recipe for target '_all' failed make: *** [_all] Error 2 Any idea?

reverbrick commented 4 years ago

Also fails for me: ./../misc/create_inode.c:399:18: error: conflicting types for ‘copy_file_range’ static errcode_t copy_file_range(ext2_filsys fs, int fd, ext2_file_t e2_file, On 5.3.0-40-generic #32~18.04.1-Ubuntu

MitchRatquest commented 4 years ago

Did you install the packages as seen under the Readme? sudo apt-get -y install build-essential gcc g++ binutils make screen libncurses5-dev unzip bc cvs mercurial

If this doesn't work, you could try my other repo here: https://github.com/MitchRatquest/HackadaySynth Which uses a more modern buildroot, and is generally a better base for building audio projects.

reverbrick commented 4 years ago

Thanks a lot for a quick response. I am already very happy with image attached as all I need is PD, but you know, generating it myself would be another lesson. HackadaySynth also failed, but I do not remember the cause of it. Will retry and report back. Could you please also guide me on how to run things on boot? rc.local is not in, init.d is there, but i miss update-rc.d. Any clue? Thanks for your work!!

MitchRatquest commented 4 years ago

The HackadaySynth has a more modern kernel, and I found performance to be slightly better with the rt-tests.

To make something run on boot, create a shell script in /etc/init.d/. It should be named S##, and will run in order starting from 0. You can see some examples in the overlay here: https://github.com/MitchRatquest/nanopi_neo_synth_buildroot/tree/master/configs/mainline/overlay/etc/init.d

So on boot, it'll go from S00 to S99, and on shutdown from S99 to S00.

reverbrick commented 4 years ago

Great Mitch! You a really helpful. Building HackadaySynth is still running on my side. I see you have Orca in which makes me very happy as my live rig consists sunvox/lib pd/lib and a new addition is exactly Orca. I was even talking Devine Lu Linvega on turning it into hardware project. He's a nice guy as you! Just drop me a line about where you head with this project. Maybe I could be of help. We're already connected via twitter (@reverbrick). Best of luck!! Daniel

MitchRatquest commented 4 years ago

Thanks for the praise! I did message Devine about packing Orca-c into a synth, and he said that was cool. That guy is great.

I remember looking into sunvox, but without GPU support in the H3 chips, I never went forward with it. As far as I know, support for the Mali-400 was finally pushed in 5.2, and is in the latest buildroot package. I have been meaning to push to that version and test it out, but I haven't gotten there yet.

This project was originally created to learn how linux actually works, and how to use an embedded toolchain. I then tried out for the Hackaday contest, using what I learned from this repo to build something. I went with an STM32 for the key/knob/encoder inputs, a cheap chinese soundcard for audio, my own take on the adafruit power module, and a nanopi neo core. Then, just as I got the news that I didn't make the finals in the contest, I got a job in the tech field, and my motive to come home and do more linux stuff was really muted. I still did two more revisions after that, but with commuting across town and all that jazz, I haven't returned with the full force I want to.

I did experiment with the F1c100s from allwinner, and without floating point support, its terrible for pd. I intend to use it to make a nice MP3 player though.

When I return to this project I want to use either an I2S module for stereo input/output, or an XMOS solution for multiple audio IO. The GD32 version of the stm32 from china is cheaper and faster than the microcontroller I used two years ago, and I'd use a better USB2.0 hub.

There is a lot of work to be done, in devops, hardware, firmware, and software. One step at a time, right?

reverbrick commented 4 years ago

World is really small when you focus on certain thing. Also I really know what you talk about. I also dropped my projects on wavetable hardware synth for 4 years as I run out of money to fund it and went back to dumb job. Now I am back wanting to do something. Maybe we should have a chat someday. For now rclocal runs well, I have my nanopineo air running Automatonism patches processing my usb mike without noticeable delay. HackadaySynth still compiles...

reverbrick commented 4 years ago

If that comes to trying sunvox_lib, I have some tests made with C and on Bela platform, I do midi to sunvox instrument mapping. I can share the code so you don't need to reinvent the wheel in case you are interested. Do you use some forum/other platform to communicate? I understand github is not a proper one ...

reverbrick commented 4 years ago

Ok so HackadaySynth fails with: Error: arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts:123.9-16 syntax error FATAL ERROR: Unable to parse input tree scripts/Makefile.lib:294: recipe for target 'arch/arm/boot/dts/sun8i-h3-nanopi-neo.dtb' failed make[3]: [arch/arm/boot/dts/sun8i-h3-nanopi-neo.dtb] Error 1 make[3]: Waiting for unfinished jobs.... Makefile:1251: recipe for target 'dtbs' failed What else should I attach?

MitchRatquest commented 4 years ago

I'd be interested in a sunvox lib example. I have never used it, but it seems to have a cult following.

With regards to the dtb issue, I thought I had this solved. I have just pushed a fix to master. Please do:

git pull rm -rf build/linux-5.2.21/ make

And let me know how that goes.

reverbrick commented 4 years ago

Yeah, that was smooth, I pulled the changes and it compiled straight away. I am trying it now...thanks a lot!!! Here is my messy attempt to get sunvox running. This could possibly shorten your way to get there: https://drive.google.com/open?id=1D_wbP9aCtR7r7oSECIXd1TXtOhSKQkEf Note sunox.so is rpi version. You can grab other versions here: https://www.warmplace.ru/soft/sunvox/sunvox_lib-1.9.5d.zip

reverbrick commented 4 years ago

One more thing? Has HackadaySynth other root password??

MitchRatquest commented 4 years ago

The password should be root. To see/change this setting, go to the top directory and type make menuconfig, and navigate to System Configuration, go down to Root password, and press enter to change it. I ended up setting the password for some openssh reason.

The rpi version should work, as this is setup of buildroot is for an armv7l, hard-float cpu.

Thanks for the example usage of the sunvox lib!

reverbrick commented 4 years ago

Ok so I must do something wrong. What I did is created sd card from imges/sdcard.img and booted my nano. Login fails for both ssh (via usbgadget) and via tty. Menuconfig shows (root). I must have messed something. Help :)

MitchRatquest commented 4 years ago

When you try to login via USB gadget, what does the error message say? When you try to login via TTY, what does it say? It sounds like your openssh config was not patched to allow root logins. Can you open /etc/ssh/sshd_config and see that the PermitRootLogin is set to yes?

Please download this image and try it.https://github.com/MitchRatquest/HackadaySynth/blob/vanilla_nanopi_realtime/pd-orca-trx-img.tar.gz

reverbrick commented 4 years ago

Hey, thanks for help again.

On tty: Login incorrect

On ssh: Permission denied, please try again.

sshd_config has only this commented out:

PermitRootLogin prohibit-password

Your image fails with: [ 2.057984] 002: ---[ end Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance. ]---

:(

MitchRatquest commented 4 years ago

You should set the PermitRootLogin to yes.

What board are you using? nanopi neo core? How are you flashing the SD card?

reverbrick commented 4 years ago

I'll try that. I use nanopi neo air and flashing with ubuntu's built in "startup disk creator", I use it all the time.

reverbrick commented 4 years ago

PermitRootLogin to yes did the trick over ssh!! :) Let me look inside... For now I got: orca /usr/bin/orca: exec: line 14: /usr/local/lib/orca/orca: not found pd -sh: pd: not found

reverbrick commented 4 years ago

Mitch, any chance for a hint about missing pd? Is it intentional that it is not in? What is your way of running it? You just put compiled binary right after generating image? Have some free time so I thought I should revisit the subject. Regards

MitchRatquest commented 4 years ago

Yeah, it looks like the issue was with patching in the create_mainline script. Can you open an issue on that repo and we can continue the conversation there?

reverbrick commented 4 years ago

Sure, thanks, will do.