|
| Linux på IBM PowerPC Fra : Mikael Hansen |
Dato : 29-07-03 01:17 |
|
Har fået en aflagt IBM 7248-100 PowerPC (PReP, 43P), som jeg vil prøve
at lave en lille FTP server med.
Der var ingen dokumentation med til maskinen, men efter en del søgen på
nettet er det lykkedes mig at få instaleret en Mandrake 9.1
Specielt var denne side til stor hjælp:
http://www.tldp.org/HOWTO/IBM7248-HOWTO/index.html
Men nu er jeg nået dertil hvor jeg skal compile en ny kernel (skal have
IDE kontroleren i drift for at få mere plads end de 1 GB der er på SCSI
disken).
Men her opstår fejl, måske mangler jeg nogle tools.
Make manglede på et tidspunkt powerpc-linux-gcc, prøvede at linke den
til den alm. gcc.
der var vist en ting mere jeg førsygte at linke, kan ikke lige huske
hvilken.
er også i tvivl om kernel-headers er instaleret, jeg kunne ikke finden
den som rpm i distroen.
Nå ville så prøve om jeg kunne kompile kernelen på min Intel P4 1800,
RH7.3 opgraderet til kernel 2.4.19, den kan ihvertfald kompile intel
kerner, og det går også væsentligt hurtigerer her (ca 15 min alt i alt)
Mangler igen powerpc-linux-gcc, linker til gcc, og der var også noget
med en "ld" der manglede en anden version af.
nu får jeg fejl af bl.a. følgende typer:
invalid register name for register variable
unknown register name in `asm'
Assambler messages:
Error: no such instruction: `sc '
Error: no such instruction: `mfcr %ebx'
Error: no such instruction: `sc '
Error: no such instruction: `mfcr %eax'
Error: no such instruction: `sc '
Error: no such instruction: `mfcr %eax'
.....
make: *** [init/main.o] Error 1
er der nogen der har gode ideer, der kan hjælpe mig videre.
De skal lige nævnes at PPC ser ud til at virke fint med standart
instalationen, bortset fra at den ikke kan boote fra harddisken i den
nuværende opsætning. CDROM drevet kan ikke læse CD-RW, om det elles
virker har jeg endnu ikke testet, det har nu heller ikke den store
betydning, instalerede så via nætværk og lod min P4 agere HTTP server.
Er ikke nybegynder i Linux, men heller ikke ekspert. Men har aldrig haft
med PPC at gøre før.
m.v.h. Mikael Hansen
| |
Thomas S. Iversen (29-07-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 29-07-03 06:40 |
|
In article <3F25BCFC.40705@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
> nu får jeg fejl af bl.a. følgende typer:
> invalid register name for register variable
> unknown register name in `asm'
> Assambler messages:
> Error: no such instruction: `sc '
> Error: no such instruction: `mfcr %ebx'
> Error: no such instruction: `sc '
> Error: no such instruction: `mfcr %eax'
> Error: no such instruction: `sc '
> Error: no such instruction: `mfcr %eax'
> ....
> make: *** [init/main.o] Error 1
Jeg har set noget lign. ved krydsoversættelse til min IBM403 PPC processor.
Viste sig, at gcc laver rigtig kode, men kalder en generisk ppc assembler
som ikke kender specifikke PPC403 opkoder. Min løsning:
CC=$(PREFIX)gcc -mstrict-alignment -Wa,-m403
Altså at give gcc besked om at fortælle assembleren at det _skal_ være
403 arkitekturen der specifikt skal bruges.
Håber det kan hjælpe
Thomas, Vanløse
| |
Mikael Hansen (29-07-2003)
| Kommentar Fra : Mikael Hansen |
Dato : 29-07-03 09:05 |
|
Thomas S. Iversen wrote:
> In article <3F25BCFC.40705@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
>
>>nu får jeg fejl af bl.a. følgende typer:
>>invalid register name for register variable
>>unknown register name in `asm'
>>Assambler messages:
>>Error: no such instruction: `sc '
>>Error: no such instruction: `mfcr %ebx'
>>Error: no such instruction: `sc '
>>Error: no such instruction: `mfcr %eax'
>>Error: no such instruction: `sc '
>>Error: no such instruction: `mfcr %eax'
>>....
>>make: *** [init/main.o] Error 1
>
>
> Jeg har set noget lign. ved krydsoversættelse til min IBM403 PPC processor.
> Viste sig, at gcc laver rigtig kode, men kalder en generisk ppc assembler
> som ikke kender specifikke PPC403 opkoder. Min løsning:
>
> CC=$(PREFIX)gcc -mstrict-alignment -Wa,-m403
>
> Altså at give gcc besked om at fortælle assembleren at det _skal_ være
> 403 arkitekturen der specifikt skal bruges.
>
> Håber det kan hjælpe
>
> Thomas, Vanløse
Øh, er det et script der skal ændres, for hved indtastning af:
CC=$(PREFIX)gcc -mstrict-alignment -Wa,-m604
i komandolinien for jeg følgende svar:
bash: PREFIX: command not found
bash: -mstrict-alignment: command not found
eller skal man være root for at sætte dette parameter
jeg går ud fra at jeg skal bruge m604, da det er en 604 CPU i denne maskine.
m.v.h. Mikael
| |
Thomas S. Iversen (29-07-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 29-07-03 07:14 |
|
> Øh, er det et script der skal ændres, for hved indtastning af:
> CC=$(PREFIX)gcc -mstrict-alignment -Wa,-m604
I din Makefile.
Test det først. Tag en fil der fejler, oversæt den manuelt med gcc -S
så du får en assembler fil. Kald den assembler som er default for at
se at fejlen opstår i assembleringsfasen, tilføj derefter -m604 til
kommandoen for assembleren og se om fejlen forsvinder og du får din .o
fil.
Mvh Thomas, Vanløse
| |
Mikael Hansen (29-07-2003)
| Kommentar Fra : Mikael Hansen |
Dato : 29-07-03 09:56 |
|
Thomas S. Iversen wrote:
>>Øh, er det et script der skal ændres, for hved indtastning af:
>>CC=$(PREFIX)gcc -mstrict-alignment -Wa,-m604
>
>
> I din Makefile.
>
> Test det først. Tag en fil der fejler, oversæt den manuelt med gcc -S
> så du får en assembler fil. Kald den assembler som er default for at
> se at fejlen opstår i assembleringsfasen, tilføj derefter -m604 til
> kommandoen for assembleren og se om fejlen forsvinder og du får din .o
> fil.
>
> Mvh Thomas, Vanløse
Det lykkedes mig ikke at få til at virke, her et udsnit fra Makefile,
hvor jeg tror den skal ændres ud fra din beskrivelse:
....
HOSTCC = gcc
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
CROSS_COMPILE = powerpc-linux-
#
# Include the make variables (CC, etc...)
#
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc -mstrict-alignment -Wa,-m604
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
MAKEFILES = $(TOPDIR)/.config
GENKSYMS = /sbin/genksyms
DEPMOD = /sbin/depmod
MODFLAGS = -DMODULE
CFLAGS_KERNEL =
PERL = perl
....
før ændringen hed CC linien
CC = $(CROSS_COMPILE)gcc
jeg syntes også jeg under en søgning efter "powerpc-linux-gcc" så
"binutils" nævt.
m.v.h. Mikael
| |
Thomas S. Iversen (29-07-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 29-07-03 09:11 |
|
In article <3F2636A9.2020806@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
> Det lykkedes mig ikke at få til at virke, her et udsnit fra Makefile,
> hvor jeg tror den skal ændres ud fra din beskrivelse:
Det ser også ud til at være det rigtige sted. Du får stadigvæk samme fejl?
Lav og make.log og se hvad der rent faktisk bliver afgivet af kommandoer
for at oversætte filerne.
Thomas, Vanløse
| |
Mikael Hansen (29-07-2003)
| Kommentar Fra : Mikael Hansen |
Dato : 29-07-03 21:15 |
|
Thomas S. Iversen wrote:
>
> Det ser også ud til at være det rigtige sted. Du får stadigvæk samme fejl?
> Lav og make.log og se hvad der rent faktisk bliver afgivet af kommandoer
> for at oversætte filerne.
>
> Thomas, Vanløse
Øh, hvordan får jeg make til at lave en logfil, har prøvet følgende
make zImage > make.log
men outputtet forekommer mig lidt kort i forhold til alle de
fejlmældinger der ruller over skærmen, men her er outputtet hvis det kan
bruges til noget:
powerpc-linux-gcc -mstrict-alignment -Wa,-m604 -D__KERNEL__
-I/usr/BUILD/usr/src/linux-2.4.21/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-I/usr/BUILD/usr/src/linux-2.4.21/arch/ppc -fsigned-char -msoft-float
-pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring
-DKBUILD_BASENAME=main -c -o init/main.o init/main.c
Mikael
| |
Thomas S. Iversen (29-07-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 29-07-03 19:25 |
|
In article <3F26D5B5.1020002@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
> make zImage > make.log
make zImage &> make.log vil hjælpe.
> powerpc-linux-gcc -mstrict-alignment -Wa,-m604 -D__KERNEL__
> -I/usr/BUILD/usr/src/linux-2.4.21/include -Wall -Wstrict-prototypes
> -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
> -I/usr/BUILD/usr/src/linux-2.4.21/arch/ppc -fsigned-char -msoft-float
> -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring
> -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
Prøv at erstatte sidste linie med:
-DKBUILD_BASENAME=main -S -o init/main.s init/main.c
Derefter prøver du ppc-linux-as -m604 init/main.s
Thomas, Vanløse
| |
Thomas S. Iversen (29-07-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 29-07-03 19:35 |
|
In article <3F26D5B5.1020002@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
Hov Mikael
Den linie der fejler ser da suspekt ud:
mfcr %eax
eax, ebx osv, er da registre på i386 arkitekturen. Gør ihvertfald mig
mistænksom.
Thomas, Vanløse
| |
Mikael Hansen (29-07-2003)
| Kommentar Fra : Mikael Hansen |
Dato : 29-07-03 21:50 |
|
Thomas S. Iversen wrote:
> In article <3F26D5B5.1020002@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
>
> Hov Mikael
>
> Den linie der fejler ser da suspekt ud:
>
> mfcr %eax
>
> eax, ebx osv, er da registre på i386 arkitekturen. Gør ihvertfald mig
> mistænksom.
>
> Thomas, Vanløse
Jeg har ikke sat mig ind i registrer på de forskællige platforme, men
mener at man burde kunne kompile til andre platforme.
Hvis det skal være kan jeg da godt sætte IBM'en op så du kan få adgang
til at pille ved den, hvis du kan se hvad der mangler og har tid til det.
jeg mener ikke jeg så disse fejl da jeg forsøgte at kompile på PPC
platformen,
send evt. en mail med ønsket brugernavn og adgangskode, hvis det har
interesse, du burte kunne gætte hvad der skal ændres i mailadressen.
har fornylig fået ADSL med fast IP, og router, så det er ikke noget
problem at give adgang.
m.v.h. Mikael
| |
Thomas S. Iversen (29-07-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 29-07-03 20:03 |
|
In article <3F26DDED.3060801@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
>> eax, ebx osv, er da registre på i386 arkitekturen. Gør ihvertfald mig
>> mistænksom.
>
> Jeg har ikke sat mig ind i registrer på de forskællige platforme, men
> mener at man burde kunne kompile til andre platforme.
Det kan man også. Det gør jeg ihvertfald med stor succes herhjemme!
Det kan være en makro der bliver ekspanderet forkert
(registre fra x86 og instruktioner fra ppc). Svært at sige.
> Hvis det skal være kan jeg da godt sætte IBM'en op så du kan få adgang
Tak for tilbuddet, men jeg har ikke tid (har ikke en gang tid til
at lege med mit eget issenkram
Mvh Thomas, Vanløse
| |
Mikael Hansen (30-07-2003)
| Kommentar Fra : Mikael Hansen |
Dato : 30-07-03 00:04 |
|
Thomas S. Iversen wrote:
> Tak for tilbuddet, men jeg har ikke tid (har ikke en gang tid til
> at lege med mit eget issenkram
>
> Mvh Thomas, Vanløse
Men åbenbart tid nok til denne NG.
Havnede lige på LPD og fant dette som måske kunne være nyttigt.
# http://www.tldp.org/guides.html
Custom Linux: A Porting Guide - Porting LinuxPPC to a Custom SBC
version: 2.0
author: Shie Erlich, <shie@myrealbox.com>
last update: June 2002
available formats:
1. HTML (read online)
2. HTML (tarred and gzipped package, 24k)
3. PDF (61k)
4. other : plain text, PDF, PostScript, PluckerDB, and XML (DocBook)
source.
This guide describes a work in progress, to port Linux to a custom
PowerPC-based board. This means making the operating system work on
unfamiliar hardware. Anyone, who is on the same track might benefit from
reading this paper, as it highlights the pitfalls and problematic points
along the way.
hilsen Mikael
| |
Mikael Hansen (30-07-2003)
| Kommentar Fra : Mikael Hansen |
Dato : 30-07-03 02:30 |
| | |
Thomas S. Iversen (30-07-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 30-07-03 07:02 |
|
In article <3F26FD6C.4020603@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
> Men åbenbart tid nok til denne NG.
Ja; det tager heldigvis meget kortere tid at skrive usenet
messages med løsningsforslag til problemer end det gør, rent
faktisk at løse problemerne!
Thomas, Vanløse
| |
Mikael Hansen (04-08-2003)
| Kommentar Fra : Mikael Hansen |
Dato : 04-08-03 09:58 |
|
Thomas S. Iversen wrote:
> In article <3F26DDED.3060801@DELETE.post.cybercity.dk>, Mikael Hansen wrote:
>
>>>eax, ebx osv, er da registre på i386 arkitekturen. Gør ihvertfald mig
>>>mistænksom.
>>
>>Jeg har ikke sat mig ind i registrer på de forskællige platforme, men
>>mener at man burde kunne kompile til andre platforme.
>
>
> Det kan man også. Det gør jeg ihvertfald med stor succes herhjemme!
> Det kan være en makro der bliver ekspanderet forkert
> (registre fra x86 og instruktioner fra ppc). Svært at sige.
>
>
> Mvh Thomas, Vanløse
Så lykkedes det mig i weekenden at få lavet de manglende værktøjer til
crooscompiling, binutils & gcc, så nu virker det. Så skal jeg evt. bare
have slukket for nogle service den forsøger at starte op, men som jeg
ikke har brug for, og som derfor ikke er compilet ind i kernelen, bl.a. NFS.
m.v.h. Mikael
| |
|
|