Running FreeBASIC on virtual or real Raspberry Pi.

General discussion for topics related to the FreeBASIC project or its community.
Post Reply
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Running FreeBASIC on virtual or real Raspberry Pi.

Post by D.J.Peters »

(Sorry about my bad english)
If you like to port your fine game/demo or library to ARM or learning ARM assembler
or you will try fbc for ARM without a ARM computer you can use a Raspberry Pi image for QEMU.

How to run Raspberry Pi on your Windows* box.
(* of course you can use the PI and kernel image from the zip file with your linux qemu also)

note:
user: pi
password: raspberry

1) get qemu with the RPI image. qemu.zip

2) extract the archive

3) click on qemu/qemu/run.bat

4) you can setup your virtual or real PI

In my case I changed:

keyboard layout (german)
locale (de_DE@Euro)
timezone (Europe/Berlin)
set a new password for user: pi (the default is: raspberry)
boot in to graphical environment NO

select finish

Do you like to reboot YES

5) login user: pi
enter your new password
Image
after you logged in you are in your HOME folder

6) Now it's time to update your PI (your host OS in this case your windows need's a working internet connection)

Code: Select all

>sudo apt-get update
>sudo apt-get dist-upgrade
7) start the X server (graphical desktop)

Code: Select all

>startx
Image
If you logout from the desktop manager you will return to the text prompt.
to shutdown linux type

Code: Select all

>sudo halt
!!! Never close the QEMU window while linux is running !!!

Try to install your first app for example geany your prefered IDE for FreeBASIC.
(geany a smal IDE good for FreeBASIC, C/C++ and many more)

Code: Select all

>sudo apt-get install geany
...
Setup FreeBASIC on your virtual or real PI.
Download, extract and install: fbc_linux_armv6_rpi_0204_2016-03-27.zip in your HOME 'pi' folder.

Code: Select all

>wget http://users.freebasic-portal.de/stw/builds/linux-armv6-rpi/fbc_linux_armv6_rpi_0331_2019-07-28.zip
>unzip fbc_linux_armv6_rpi_0331_2019-07-28.zip
>cd fbc_linux_armv6_rpi
>chmod -x ./install.sh
>sudo sh ./install.sh -i
FreeBASIC compiler successfully installed in /usr
>cd ..
>fbc -version
You have a working FreeBASIC for ARM now. :-)
Time to run geany for our first test. (you will find it in the app menu)

Code: Select all

>startx
Image
You can see compiling graphics code will fail we have to install some missing libs.
Type in the terminal window

Code: Select all

>sudo apt-get install libX11-dev
>sudo apt-get install libXext-dev
>sudo apt-get install libXpm-dev
>sudo apt-get install libXrandr-dev
>sudo apt-get install libncurses5-dev
Image

That's all, have fun with FreeBASIC on ARM.

Joshy
Image
Last edited by D.J.Peters on Aug 03, 2019 23:28, edited 6 times in total.
St_W
Posts: 1626
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by St_W »

I did that for testing automated RasperryPi builds on my Jenkins "server". Unfortunately Rapian inside qemu ran veeeerrry slow at that computer. I both tried several ready-to-use packages (like the one you suggest) and installing directly from the official raspian image.

I tried cross-compiling on Debian too, but there isn't really a good and complete toolchain available. I haven't tried other linux distros yet, but e.g. ubuntu may provide a better toolchain.

However, interest in (git-)builds for other platforms than windows seems to be very small anyway. Nevertheless, thank you for your instructions - I'll probably try again one day and on that day it will be nice to have some documentation.
MrSwiss
Posts: 3910
Joined: Jun 02, 2013 9:27
Location: Switzerland

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by MrSwiss »

@joshy,
tested your installation-instructions on Win8.1 pro 64.
Had a small connection problem by downloading the libXext-dev, the first time.
Therafter everything went according to plan, rrrm ... your instructions ;-).
It works as per your description, very good effort ... had almost never such a
complete documentation (which didn't miss anything), CONGRATULATION!!!

Thanks a lot for sharing!

@St_W,
it is a bit slow, but isn't that true for every emulator?

regards MrSwiss
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by D.J.Peters »

I published a new 2019 version.

I created a ~4GB sd-card image and upgraded Debian wheezy.
Of course at first I installed the latest version of FreeBASIC and all the dev libs on the fresh running wheezy.
I added geany, mc the midnight commander, gimp, gftp etc ...

download: qemu_pi.zip

extract the archive on a drive or folder where you have write access.

windows:
c: or d:\qemu_pi\

linux:
$HOME/qemu_pi/

I compressed the sd-card image from ~4GB down to 1.5GB with FreeBASIC.

compress.bas and decompress.bas are included.
(It's fun to see compress working I used one 8-bit FBimage 64x64 = 4096 bytes same as an SD card sector so it's a visual task also)

How ever before you can run the virtual pi run decompress at first:
decompress creates from "wheezy-sd-card-2019.pkg" the file "wheezy-sd-card-2019.img" that are loaded/mounted from virtual pi

Windows:
execute decompress.exe
(of course don't trust any downloaded *.exe and compile decompress.bas self)

Linux:
cd qemu_pi
fbc decompress.bas
./decompress

runing the virtual pi

Windows:
execute virtualpi.exe
(of course don't trust any downloaded *.exe and compile virtualpi.bas self)

Linux:
edit the path to your qemu-system-arm in virtualpi.bas
change
const qemu = ".\qemu-system-arm.exe"
to (or with complete path in front)
const qemu = "qemu-system-arm"

fbc virtual_pi.bas
./virtual_pi

Now the virtual pi should boot

user: pi
password: raspbian

After you logged in the FreeBASIC message are shown
(it's the message of the day the content can be edit in file in /etc/mod

read it and have fun !

Joshy

edit: some hints

Don't delete the compressed sd-card image "wheezy-sd-card-2019.pkg" !
A virtual running pi is slow but perfect to learn deeper root linux stuff
like creating or changing partitions or filesystems
setting up web/name or other kinds of servers
and many other critical tasks.

How ever if something goes wrong you can't destroy your virtual hardware :-)
but your virtual sd-card image "wheezy-sd-card-2019.img" can be damaged as root (faster as you think) !
don't worry if your deeper changes won't work after an "sudo reboot" run decompress and all will be fine.

press: [ctrl] & [alt] & [f] toggles to full screen and back at any time in console or desktop mode !

with one exception if you are in full screen console mode
press: [ctrl] & [alt] & [f] to go back in window mode before you run "startx" !

to change your key map, set your locale, set your timezone and optional change your password use:
>sudo raspi-config

shot down Linux:
log out from desktop manager (if you typed startx before) and type
>sudo halt
now you can close the the virtual pi window.

Why and how ?

I tried qemu pi from 2014 see first post !

I used my own step by step instructions on a Windows 10 64-bit box (2014 I used XP 32-bit)

but after a log in nothing worked as accepted
>sudo apt-get update
or
>sudo apt-get upgrade
or
>sudo apt-get install geany ...

I found out Debian wheezy isn't supported anymore (it was replaced by Debian jessie)

How ever I don't give up :-)

I learned how to use wget to clone a complete server !
and I made a copy of all the latest Debian wheezy repository stuff ~15GB on my own server.

Than I deleted or commented out the old repository servers in: /etc/apt/sources.list
after that I deleted all inside the folder /etc/apt/sources.list.d/
and create a new file /etc/apt/sources.list.d/raspi.list
with one line that pointed to my own server

Bingo all the sudo apt-get stuff worked as it should :-)

Two days later I found an official backup of the latest wheezy repository
and replaced my own server in /etc/apt/sources.list.d/raspi.list with the back up server.

So you can use apt-get to install more software or source codes of all programs or Linux commands

But I learned much more in one night:
"how to resize a partition on a running Linux where the file system are mounted on this partition !!!"
"how to resize the filesystem to the new size of the partition"
"how to write stuff on the forum that no once will read :-)"
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by srvaldez »

Hi D.J.Peters :-)
is there a way to increase the screen size of the emulator?
I find the screen resolution too small
I run the emulator on macOS and I discovered that the @ and " keys are swapped, is there a keyboard option for the emulator?
Knatterton
Posts: 165
Joined: Apr 19, 2019 19:03

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by Knatterton »

D.J.Peters wrote:"how to write stuff on the forum that no once will read :-)"
That's impossible. There will be always fools like me. :-)
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by srvaldez »

D.J.Peters wrote: "how to write stuff on the forum that no once will read :-)"
I sympathize with that, one reason I restrain myself from posting, on the other hand, how about connecting a real PI to my desktop using no machine? https://www.nomachine.com https://www.nomachine.com/tips-on-how-t ... -nomachine
caseih
Posts: 2157
Joined: Feb 26, 2007 5:32

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by caseih »

Another good remote desktop solution you can use with the pi is X2Go. It's based on some of the same technologies as NoMachine is, but is in the Rasbian default software respository so it's an easy install.

https://wiki.x2go.org/doku.php/wiki:repositories:start
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by srvaldez »

thanks for the tip caseih :-)
Helium5793
Posts: 42
Joined: Jun 21, 2016 13:06

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by Helium5793 »

I am curious. I installed fbc on Rpi and it goes to /usr. On my fedora installation on a regular computer it installs into /usr/local/ why the difference? It confuses geany when it is looking for the fbc compiler.
John
systemctl
Posts: 182
Joined: Mar 27, 2020 5:15

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by systemctl »

Helium5793 wrote:I am curious. I installed fbc on Rpi and it goes to /usr. On my fedora installation on a regular computer it installs into /usr/local/ why the difference? It confuses geany when it is looking for the fbc compiler.
John
Geany is not a big deal. You could customize it.

Did you installed the unofficial .deb? .deb package tends to put things in /usr. FreeBASIC's install.sh installed to /usr/local to not mess with files installed by .deb package. It's completely normal. I also install my local compiled softwares to /usr/local. Read more about Linux's filesystem hier.
Helium5793
Posts: 42
Joined: Jun 21, 2016 13:06

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by Helium5793 »

I took care of geany, no problem. I was just curious about why one installation was one place, and the other went elsewhere. Seems like that stuff ought to be standardized. Thanks,
John
TJF
Posts: 3809
Joined: Dec 06, 2009 22:27
Location: N47°, E15°
Contact:

Re: Running FreeBASIC on virtual or real Raspberry Pi.

Post by TJF »

Helium5793 wrote:Seems like that stuff ought to be standardized.
It's pretty much standardized. Since files in folder /usr get overriden by the package manager, only the this software should write there. You can find out if you installed by the package manager by executing

dpkg -l free*

If the generated list contains a freebasic entry, you installed a freebasic package.

All other installations should go to an other folder. The install.sh script in the linux bundle writes to /usr/local by default. But you can customize that path.

Note: Geany uses the system shell (dash) for executing commands. So when you include /usr/local/bin to the PATH in dash-configuration, you need not enter the full path in the Geany command.
Post Reply