Explain Linux And 'our' Linux In Terms Of Games And Software


Letalis Sonus said:
If the place you're downloading it from does not explicitly say for which CPU architecture it was created, it's to 99% a x86 executable.
Usually you can find one of the following CPU architecture names at the downloads:
i386, i486, i586, i686, x86, IA-32: It's for normal desktop PCs or laptops
AMD64, x86_64, EM64T: Same as the above, but the operating system has to be 64bit
ARM, Armel: That's the one you're looking for

OK so if I want to try and compile something i guess the following info is what i would need?


I DL the source code 'xmoto-0.5.2-src.tar.gz' but then can I do the compiling on OSX or do i need to have a systum running a Gnu/Linux distro?

Is there software to download that does teh compiling or is it all command line type stuff?

this game also states 'Additional System Requirements: libjpeg, libpng, zlib, libbz2, SDL, GL, libcurl, lua, ode, SDL_mixer, SDL_net, libsqlite, libcurl, SDL_ttf'

Is that telling me some useful info?
 
Last edited by a moderator:
I just like doing the history bit. For example:

Back in the eighties, the market for computers was a quagmire of different technologies and propriety standards. Essentially, each computer manufacturer wanted to become the standard format and come to rule the entire market (at least, I assume this was the motive). Eventually, it would be the IBM PC AT with it's Intel designed chip that would come to dominate the market. It's hardware expandability proved popular and soon other manufacturers started to create clones that they dubbed 'IBM compatible'. Once an alternative to the IBM copyrighted BIOS became available, the market really took off: some of the big manufacturers we have now started out at this point in time (Dell, HP, not to mention many which fell by the wayside).

Designs based on the Intel x86 and it's successors would come to take over the world. The PC's we use today are built on the legacy base of the IBM AT. So how did the ARM chip come about?

Acorn were a UK computer maker in the eighties. They famously produced a computer commissioned by the BBC dubbed the 'BBC Microcomputer', countless numbers of which were installed in primary and secondary schools across the country. It's successor, the Acorn Archimedes used a new chip design by spin-off company 'Acorn Research Machines' (ARM). The Archimedes never took off but the ARM company carried on with developments of it's chips. Towards the end of the nineties, ARM were offering low powered chips that were ideal for use in portable devices.

Probably the first big success story to use an ARM design was the Gameboy Advance. Then the various models of Ipod, and an almost endless array of mobile phones.

Today, ARM based chips are ubiquitous and outnumber any other CPU architecture (including Intel). However, the chips are mostly in phones.

The chipset used in the Pandora was originally intended for phones. Infact, slight variations of it have been put into the Iphone 3GS, Palm Pre and Nokia N900.
 
Pandora's spec is easy -- its ARM. The distriution particulars as I've said are less important .. even if way off, that can be worked around, but Pandora includes most of what other Linux distro includes.

ARM is the big one, and pretty much every Linux repository for pre-compiled applications will note what platform their serving up for; if not, as above said, assume x86 (and thus not useful), but many ARM Linux repos exist. Specifically, the Angstrom repo is very compatible with Pandora, since Panda runs a descendant of Angstrom. But Debian ARM binaries work on Panda just fine generally -- its ARM thats the issue.

Another point to watch of course -- if an app is designed for a high resolution desktop app, then it may well run on Pandora, but might not much like the smaller res. Again, thats up to the app and not Pandora's fault -- that same app wouldn't work on a netbook or other devices, either.

Anyway, its not really a big problem. The processor is usually denoted in the filename, and almost certainly in the download repository, so its easy to know if you're getting the right thing. (Just like picking Windows XP or Vista or Mac download, you can pick Linux ARM or Linux X86 in most sites that carry such things.)

So yes, its easy, and you don't have to agonize :)



EXAMPLE:

Say you go to Ubuntu site, and look for Packages; go to Games, and scroll down to any of them.

I picked Abuse, see here:

http://packages.ubuntu.com/karmic/games/abuse

Look there right in the download options:

Architecture Package Size Installed Size Files amd64 333.6 kB784 kB [list of files] i386 314.3 kB772 kB [list of files]

See, amd64 and i386.

That means that repository carries two builds, neither of which is ARM build. That is clearly denoted.

Thats how easy it is.

jeff
 
stustaff said:
Thanks for the explanations Mindlord and Letalis particularly made things more understandable. :)

Cobaltage that also is very useful its a shame we are not grader for our english you would certainly get an A+ I can only one day hope to be bothered enough to have my own typing, punctuation and spelling match up to your high standards, until that day i apologise for thinking this were a forum and not college paper... sir ;)

on point 2 however how would you know if something is ARM compiled? is this a trivial thing to do? is there a pre pandora way to do this and test software?

If there were some way to do this it seems like it could be a useful use of my Panda waiting time?

I was just giving you a hard time, of course. But I have noticed that apostrophes seem to be the latest casualty. Soon we'll have to do without vowels or something.

Commercial OS's don't generally run on both x86 and ARM CPUs, so you don't usually have to make the distinction between the CPU types except with Linux (including upcoming Chrome OS, which will run on both x86 and ARM). Windows for ARM is Windows CE. But different CPU architectures require different software.
 
Last edited by a moderator:
stustaff said:
OK so if I want to try and compile something i guess the following info is what i would need?


I DL the source code 'xmoto-0.5.2-src.tar.gz' but then can I do the compiling on OSX or do i need to have a systum running a Gnu/Linux distro?

Is there software to download that does teh compiling or is it all command line type stuff?

this game also states 'Additional System Requirements: libjpeg, libpng, zlib, libbz2, SDL, GL, libcurl, lua, ode, SDL_mixer, SDL_net, libsqlite, libcurl, SDL_ttf'

Is that telling me some useful info?

You can compile a program using OSX for another CPU, but it takes a special set of tools. You would first need to setup a cross-compiler to allow you to make ARM executables on the Mac's platform. Sounds hard, but not really since toolkits for compiling for the Pandora on various platforms will appear shortly after it's released. Since everyone will need them. There is also the possibility of compiling directly on the Pandora. This way no special cross-compiler will be needed.

99% of the time compiling a program takes just 3 simple commands, but they must be done at the "command line" and in the directory that you uncompressed the source package into.
They are:
Code:
./configure
make
install
Sometimes the package will contain a readme that will step you though it, since ./configure might ask you some questions, or have additional parameters that need filled. Most of the time it's dead simple.

Those additional system requirements are the Dependancies that skeezix was referring to. Xmoto depends on those additional packages in order to run, so in order to compile and run it, you must also have the development packages of those dependencies installed as well. Most times libraries such as those listed will be included in the toolchain, sometimes you'll have to add them yourself. Still not a very daunting task.
 
Last edited by a moderator:
skeezix said:
Pandora's spec is easy -- its ARM. The distriution particulars as I've said are less

**REMOVED CONTENT TO MAKE READING EASIER**

Thats how easy it is.

jeff
Ok so there IS an ARM version for 'Debian'... which means it can be done? will run?
 
Last edited by a moderator:
stustaff said:
skeezix said:
Pandora's spec is easy -- its ARM. The distriution particulars as I've said are less

**REMOVED CONTENT TO MAKE READING EASIER**

Thats how easy it is.

jeff
Ok so there IS an ARM version for 'Debian'... which means it can be done? will run?

The only problem with installing stuff manually is the dependency hell: It's one thing to download working binaries and their immediate dependancies... but those dependencies have their own dependencies and so forth. Tracking, downloading and installing all these yourself can be a nightmare, which is why it's done in software these days (package managers). On the Pandora it should be even easier that that... for Linux, extremely easy.
 
Last edited by a moderator:
stustaff said:
Ok so there IS an ARM version for 'Debian'... which means it can be done? will run?
There's basically just 1 step left: If it uses OpenGL (or if a program library it is using does), the program (or the affected library) has to be built for OpenGL ES 2.0 as the Pandora's GPU can't handle normal OpenGL. I don't know if it's possible to create programs supporting both at the same time or if there are even ARM devices supporting normal OpenGL, but the program still needs to explicitly support OpenGL ES 2.0, otherwise someone needs to modify it first.
 
Last edited by a moderator:
zhasha said:
You can't really know what something is compiled for unless the one who compiled it tells you. It's fairly safe to assume that unless otherwise specified, what you're looking at is compiled for i386.
The golden part of free software is that you have the source code, and a lot of the time, just recompiling the software will be enough - as in no further modification needed.
Code:
$ file /bin/bash
/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
 
Last edited by a moderator:
There are some opengl->es adapter libs around; I think even one was used for some of the very old Panda videos; quake3 or something maybe?

(and for the record, yes, Windows had a native ARM branch back in the NT days and doubtless has some MS internal support to this day, but nothing released. So yeah, WinCE and relatives sure, but the point stands.. even Windows has an x86+ARM versions in general public release at the same time :)

jeff
 
B-ZaR said:
zhasha said:
You can't really know what something is compiled for unless the one who compiled it tells you. It's fairly safe to assume that unless otherwise specified, what you're looking at is compiled for i386.
The golden part of free software is that you have the source code, and a lot of the time, just recompiling the software will be enough - as in no further modification needed.
Code:
$ file /bin/bash
/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
ooooo~ I guess it's written in the ELF header then?
 
Last edited by a moderator:
bottom line (simplified explanation)

on the Pandora, you will download programs from the the Pandora app store, all these programs will "just work", you download it, run it, use it, simple

the mistake you are making is to think that Linux always installs applications in the same way that Windows does, it doesn't (it can, but that's not intended for normal use)

in Windows

you find the website for the application you want, browse to the download page, find the latest stable version compatible with the version of Windows you have on your PC, download the zip file or installer, scan it with antivirus (if your wise ;) ) then unzip it and install (or just click on it and Wise or Windows installer installs it), sometimes you have to reboot your PC after installation, depending on your exact configuration, it may or may not run, or may crash your PC.

in Linux (for this example Ubuntu)

find out what your wanted application is called, click "applications/Ubuntu software centre", enter the name of the application in the search box (or use the browser), click "install", sometimes you may need to log out and back in (normally for applications that make changes to the system rather than just normal stuff like games), run it

on Pandora

go to the app site, find application, click "install", run it

in Linux only hard core users download direct from the developers site (unless it's a rare application not included in the repository or you MUST have the latest and greatest version), for most of your software you just download from the repository using the application included with the system, (or in Pandoras case the app store), then run it, you have the assurance that anything in the repository/app store is [a] tested virus free [c] compatible with your system

X-moto is open source, so it should be ported to the app store sooner rather than later (the physics don't look too demanding)

I hope that makes things clearer.
 
hobbyman -- nice summary and getting back to the real issue :) One fix -- for 'pnd files' type, you merely download and drop onto your SD card; there is no install or uninstall needed. We made it eeeeeeasy :)

jeff
 
I think I have a decent example
go here Citrix

See on that Page you will see Citrix for Linux downloads. You will notice that it says x86 client under the first 2 options then on the last one it says ARM Version. The ARM version is what you would download for the Pandora. Most downloads on websites will have a similar wording. I would stick with the Pandora OS and app store as you seem to be a beginner with Linux.

If anything else just download Ubuntu for x86 Processors (MAC or PC) and use that till you get your Pandora so you won't be so new to Linux.
 
hobbyman -- nice summary and getting back to the real issue :) One fix -- for 'pnd files' type, you merely download and drop onto your SD card; there is no install or uninstall needed

thanks, but for a new user I think the app store is simpler and safer, no need to work out which version is stable for example, or in a game where it's got a revised alpha version, no risk of messing up your system and having to reflash, confusion with missing files etc, I suggested just using the app store because I felt it would be less problematic, remember, beta<>better.

If anything else just download Ubuntu for x86 Processors (MAC or PC) and use that till you get your Pandora so you won't be so new to Linux.

good advice, but better to download a "live CD" first, you just burn the ISO file to CD, then reboot your computer with the CD in the drive, it will find Linux on the CD and start with that rather than Windows, then you can try it out, try to get on line etc, when you are done, remove the CD then reboot the PC, you're back in Windows and none of your data has been touched (live CD's run slower than a full install....but it gives you a taste of what Linux is like with no risk of losing Windows, which could be a big problem if you have one of those dumb PC's that doesn't have a recovery/system disk)

puppy Linux is a nice small download and has good support for lot's of stuff, plus networking/internet is pretty much certain to work "out of the box"
 
Well the bit about ELF went zooom over my head :D

But the bit about me obviously being a beginner certainly hit its target ;)

I guess the Pandora repository is going to be the place for me to go.

I would like to learn about this stuff though and whilst Im never going to be a programmer I would like to learn more,

Is it realistic to set up my laptop to run a Linux install from a memory stick to do that? what would be the best one Angstrom? Is there anything i could to to make compiling for pandora easier?

Thanks

oh and yeh I really would like to see x-moto on pandora and dont want to join that club of expecting someone else to do it for me. Although i guess im going to need help ;)
 
stustaff said:
Is it realistic to set up my laptop to run a Linux install from a memory stick to do that? what would be the best one Angstrom? Is there anything i could to to make compiling for pandora easier?
BAM!
 
Last edited by a moderator:
As you're new, I'd stick to something big and friendly; biting off something too bi might just annoy you, so start with something a little more friendly ;)

You can actually install an OS to a USB drive or flash-media and boot from it (just like booting from CD.) You can also install into a virtual machine and then run Linux (or whatever OS is contained there) inside the VM as an application within your main ("hosting") OS. I do that quite a bit .. I carry around several virtual machines with OSes in them on a USB flash gizmo, and can fire them up anywhere.

But a Live CD is probably your best bet to experiment a touch -- just download a Ubuntu .iso, burn it to CD or DVD, and reboot to fiddle. You can even use them to install to a file in Windows filesystem, so as to not have to repartition or mess with your hard drive (though doing that means you can't hibernate the Ubuntu, which is a small price to pay.)

It might be a bit of work to learn how to 'cross compile' an app on one OS and architecture for another though. you don't have to be a developer, but you have to learn Lots of Stuff.

jeff
 
Back
Top