32-bit Linux for DB410c?

Hi all, first time poster.

I downloaded the Debian Stretch 64-bit OS image and loaded it on my DB410c. Now I would like to try a 32-bit Linux instead. I have been unable to find a downloadable image. Can anyone recommend one? Thanks.

Matt

i don’t think we have any 32 bit image ‘ready’ to use. but it has been tested, and it works. the kernel will still be a 64 bit kernel, as we don’t support (and don’t plan to) 32-bit kernel for APQ8016.

you can create a 32 bit debian rootfs with debootstrap (or any other linux distro). If you want to use OE builds, it might be simpler since we have a special 32 bit machine for db410c, see https://github.com/ndechesne/meta-qcom/blob/master/conf/machine/dragonboard-410c-32.conf.

Wow thanks for the ultra fast response.

I don’t believe the 64-bit kernel will be a problem. My requirement for a 32-bit OS comes from a 32-bit DIO native library that loads into a 32-bit JVM. I’m stuck without a 64-bit version of that lib.

I got the 64-bit OS and 64-bit JVM already working properly on Debian 64-bit. However the 32-bit JVM is ignored as not a runnable binary. I figured a 32-bit OS would do it. If you can think of another way to run a 32-bit process on the 64-bit Debian, that’s okay too.

Matt

Ha, as soon as I wrote down my actual problem, another solution struck me: try crossgrading the 64-bit Debian with a 32-bit architecture, specifically armhf. I followed the steps in the comment for doing exactly that on this site (https://github.com/openhab/openhabian/issues/57) and now the 32-bit JVM runs okay. I can now try the 32-bit DIO lib too.

Thanks again for the quick response. It forced me to rethink my problem. Cheers.

Matt

right, you’ve done the right thing! Debian has support for multi-arch, so you can install arm64 and armhf packages on the same rootfs and run 32 and 64 applications (simultaneously).

Now that I have that working, I do have another level of questions. My DIO library provides access to I2C. I’ve wired in my I2C device (Adafruit Bicolor LED matrix Adafruit Bicolor LED Square Pixel Matrix with I2C Backpack : ID 902 : $15.95 : Adafruit Industries, Unique & fun DIY electronics and kits) and it will not communicate. I’ve tried wiring it into either i2c-0 and i2c-1. However those don’t show as having any devices when issuing ‘i2cdetect’. Only i2c-3 shows up with any devices when issuing ‘i2detect -y -r 3’. The DB410c only routes i2c-0 and i2c-1 to the low speed connector, which was the connector I planned to use. Is there anything I need to do to enable i2c-0 or i2c-1 to use them? This is on the Debian 9.1 OS image. Any clues appreciated.

BTW, I know the LED matrix generally works because it works on an Arduino Uno, and RPi 3 and an Edison. Those yet are already 3.3V instead of 1.8V. If I need a level shifter, I will chase that down next.

Yes, you need a level shifter :wink:

With a shifter (I used the 96boards-sensors board) I’m able to drive SSD1306 based displays via I2C on DB410C. I even made a video:

Note that the audio mezz is one of the cheapest ways to get a level shifter for 96Boards platforms right now. However be warned that the level shifters on audio mezz board do not tolerate long wires (in the video you will see a long wire between the mezzanine board and the display. Long wires will result in false triggers the edge detection logic in the shifters causing corrupt data (96boards-sensors does not have edge detection in the level shifters; so it cannot clock the bus a fast but does tolerate longer wires). Anyhow, if you use an audio mezz then keep your wires as short as possible!

1 Like

Thanks Daniel.

I will give the sensors board a try as next step.I also picked up a few different level shifters from Adafruit. Hopefully one of them will win out in the end. BTW, I can keep the wires short in any case.

Much appreciate the support!!! Great forum.

Matt