• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Linuxulator und Devices

holm

Well-Known Member
Themenstarter #1
Moin Jungs,

Ich programmiere schon eine Weile mit MSP430-gcc auf diversen TI MSPs herum, habe aber heute mal interessehalber
versucht das Energia (Arduionomäßige) System fü diese Prozessoren zu installieren, ich habe das Linux Paket genommen
und angeworfen ..das funktioniert prinzipiell (da lauert sicher noch was beim programmieren der Chips über USB..danach
schaue ich später)

Ich habe aus den Example Projekten den Blinky ausgewählt und bei den Boards das MSP430 Launchpad mit MSP430G2553,
habe versucht den Sketch zu kompilieren und laufe auf eine Fehlermeldung:
"cc1plus: fatal error: opening output file /dev/null: Permission denied"

Hmm... da gibts ja /compat/linux/dev:
# ls -l /compat/linux/dev
total 0
drwxrwxrwt 2 root wheel 0 15 Juli 16:16 shm

Das soll eigentlich auch so sein, normalerweise werden wohl Device Operationen durch einen Wrapper auf das
system-/dev umgeleitet.

Move ich /compat/linux/dev aus dem Weg, sieht das so aus:
"/usr/home/holm/energia/energia-1.8.10E23/hardware/tools/msp430/bin/msp430-g++ -c -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -w -x c++ -E -CC -mmcu=msp430g2553 -DF_CPU=16000000L -DARDUINO=10811 -DENERGIA=10811 -DENERGIA_MSP_EXP430G2553LP -DENERGIA_ARCH_MSP430 -I/usr/home/holm/energia/energia-1.8.10E23/hardware/tools/msp430/include -I/usr/home/holm/energia/energia-1.8.10E23/hardware/energia/msp430/cores/msp430 -I/usr/home/holm/energia/energia-1.8.10E23/hardware/energia/msp430/variants/MSP-EXP430G2553LP /tmp/arduino_build_721520/sketch/Blink.ino.cpp -o /dev/null
Generating function prototypes...

..da gibts also gar kein Problem.. die compiliererei läuft auch durch. In einem ältlichen Post von 2007 habe ich mal gelesen das /compat/linux/dev gelöscht werden sollte, schön; wenn da nicht das hier wäre:

# cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/da0p2.eli none swap sw 0 0
/dev/da1p2.eli none swap sw 0 0
/dev/da2p2.eli none swap sw 0 0

/dev/ada0s1d /data ufs rw,acls 1 1
/dev/ada0s2a /data2 ufs rw,acls 1 1

proc /proc procfs rw 0 0
# Linux compatibility Layer
linproc /compat/linux/proc linprocfs rw 0 0
tmpfs /compat/linux/dev/shm tmpfs rw,mode=1777 0 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
linsysfs /compat/linux/sys linsysfs rw 0 0
#/dev/da3s1 /mnt ntfs-3g rw,late 0 0


Was denn nun? Ist /compat/linux/dev Kunst oder kann das weg?

Gruß,

Holm
 

holm

Well-Known Member
Themenstarter #2
Huh? 82 Views und Keiner hat eine Idee?
Boah ehy..benutzt wohl Niemand den Linuxulator..

Gruß,
Holm
 

Yamagi

Possessed With Psi Powers
Mitarbeiter
#3
Wenn du ein Linux-Programm hast, was /dev/shm entweder direkt oder über die shm_open()-Funktion der glibc nutzt, musst du es bereitstellen. Andernfalls kann es weg.
 

holm

Well-Known Member
Themenstarter #4
Hmm.. danke das Du Dich um mich kümmerst, allerdings ist Deine Antwort irgendwie nicht recht nützlich.
Was ist wenn ein Programm /dev/null und shm benutzen möchte? Die 4. Variante, das es Keins von Beiden
benutzen will bekomme ich dann selber raus :-)

Gruß,
Holm
 

Kamikaze

Warrior of Sunlight
#5
Eigentlich sollte das funktionieren ohne das /compat/linux/dev weg zu machen. :mad:

Aber Du kannst das shm ja unter /dev/shm mounten.
 

holm

Well-Known Member
Themenstarter #6
..es hatte mich ja auch überrascht mit der Suchmaschine genau auf das Löschen von /compat/linux/dev gestubst worden zu sein, nur so bin ich auf die Idee verfallen das mal probehalber zur Seite zu moven. Offensichtlich versucht der code bei fehlendem /compat/linux/dev/null ein solches anzulegen und landet auf permission denied.. nicht sonderlich erstaunlich. Das bedeutet aber das das Mapping zu /dev/null vom System nicht funktioniert. Mache ich /compat/linux/dev schreibbar, steht darin nach dem Compileraufruf eine Datei null mit dem Output des cc1.

Ich habe derzeit das shm Problem nicht wirklich, der Fall das ich ein Lunix Programm laufen lassen will ist doch recht selten und ob diese Energia Geschichte mich irgendwie voran bringt, wage ich noch zu bezweifeln. Normalerweise benutze ich keine IDEs und schon gar keinen Arduino-Kram, ich bevorzuge make.

Fakt ist aber wohl das da was faul ist...

Hat Jemand Lust auf Experimente? Ich würde dann die Download URL und das was ich gemacht habe mal hier aufmalen.

Gruß,
Holm
 

Yamagi

Possessed With Psi Powers
Mitarbeiter
#7
Eigentlich sollte das funktionieren ohne das /compat/linux/dev weg zu machen.
Ja, denke ich auch. Meinem Verständnis nach ist, wie du ja auch sagst, eine simple Fallback-Magie: Der Kernel schaut für Linux-Prozesse erst in /compat/linux, ob er die gewünschte Datei findet, bzw. den gewünschten Pfad auflösen kann. Klappt das nicht, fällt er auf / zurück. Vielleicht wäre das einen Bugreport wert? Auch da ja gerade das Linuxulator-Projekt läuft.
 

holm

Well-Known Member
Themenstarter #8
Naja.. Das System hier ist nicht ganz aktuell (11.3) ich muß in 14 Tagen ausgezogen sein und in dem gekauften Haus noch ein Bisschen fertig-herumsanieren bis ich einziehen kann, sprich: Mir fehlt die Zeit mich dahinter zu klemmen.

Dieses Energia ist simpel die Arduino Development Umgebung portiert auf die TI MSP430 Prozessoren (und Andere). Man kann das hier
runter laden: https://energia.nu/download/ für MacOS, Linux und Windows.
Ich habe das Linux Binary ausgepackt und die auffindbaren elf files mit brandelf -t linux behandelt, danach energia gestartet.
Man kann z.B: den G2553 auf dem Launchpad als Target auswäheln und aus den Examples das Projekt "Blink" und das versuchen zu compilieren, mehr habe ich damit nicht gemacht.

Gruß,

Holm